В десятичной системе счисления всё идёт так: сначала цифры от 1 до 10 - 1 = 9, потом появляется 1 в разряде десятков, а единицы пробегают от 0 до 9, потом в десятках 2, 3, ..., 9, единицы от 0 до 9, после этого появляется новый разряд (сотни), в котором тоже сначала 1, и т.д. В остальных системах счисления всё так же, только переход через разряд будет не после появления девятки (там, где цифр не хватает, начинают идти буквы: A = 10, B = 11 и т.д.):
Есть такие массивы (НО ОНИ ЕСТЬ ТОЛЬКО В PASCAL ABC NET), которые называются <em><u>д</u></em><em><u>и</u></em><em><u>н</u></em><em><u>а</u></em><em><u>м</u></em><em><u>и</u></em><em><u>ч</u></em><em><u>е</u></em><em><u>с</u></em><em><u>к</u></em><em><u>и</u></em><em><u>е</u></em>. Это такие массивы, длину которых ты назначаешь сам в теле программы. Здесь тебе нужно использовать именно их, так как ты заранее не знаешь, сколько будет положительных компонентов.
Program t2; var a: integer; Begin write ('Введите колличество суток'); read (a);writeln ('Колличество часов ', a*24);writeln ('Колличество минут ',a*24*60);writeln ('Колличество секунд ',a*24*60*60); end.
a.TakeWhile(p -> p > 0).DefaultIfEmpty.Average.Println
end.
Объяснение:
TakeWhile(p -> p > 0) - отбирает элементы от начала до тех пор, пока условие p > 0 истинно, т.е. со значением, большим нуля.
DefaultIfEmpty - если первое же значение не положительно, результатом будет один элемент, равный нулю (нельзя найти среднее, если элементов не отобрано вообще, получим 0/0)