Поскольку 8 = 2^3, для того, чтобы перевести число из восьмеричной системы счисления в двоичную, достаточно перевести каждую цифру в двоичную систему счисления, дополнив запись нулями, чтобы получилось три двоичные цифры на одну восьмеричную.
Получается, в двоичной записи содержится 7 единиц.
begin
var n := ReadInteger('n =');
var a := ArrRandom(n, -10, 99);
a.Println;
a.TakeWhile(p -> p > 0).DefaultIfEmpty.Average.Println
end.
Объяснение:
TakeWhile(p -> p > 0) - отбирает элементы от начала до тех пор, пока условие p > 0 истинно, т.е. со значением, большим нуля.
DefaultIfEmpty - если первое же значение не положительно, результатом будет один элемент, равный нулю (нельзя найти среднее, если элементов не отобрано вообще, получим 0/0)
Average - находит среднее отобранных элементов
Тип название(аргументы);
void function(int a, char c);
Доя сравнения этиих чисел переведём оба в десятичную систему счисления.
2563 в шестиричной системе = 3 + 6 * 6 + 5*36 + 2*216 = 651 в десятичной системе счисления.
1964 в восьмиричной системе счисления = 4 + 6* 8 + 9*64 + 1*512 = 1140.
Следовательно второе число больше.
Вроде-бы контрол пробел но если не правильно могу подсказать на MacBook