// PascalABC.NET 3.1, сборка 1219 от 16.04.2016 begin var a:=ArrRandom(40,-12,12).Where(x->abs(x)>=2).Take(20).ToArray; a.Sorted.Println; var sn:=abs(a.Where(x->x<0).Sum); var sp:=abs(a.Where(x->x>0).Sum); if sn>sp then Writeln('Модуль суммы отрицательных чисел больше') else if sn<sp then Writeln('Модуль суммы положительных чисел больше') else Writeln('Модули сумм положительных и отрицательных чисел равны') end.
1. Перевод из десятичной с/с в двоичную с/с осуществляется таким образом: делите число на основание с/c, пока число не будет меньше основания, смотрите на остатки справа налево и записываете их, получается нужное число в двоичной с/c, то есть: 14/2 = 7, остаток 0, 7/2 = 3, остаток 1, 3/2 = 1, остаток 1, 1 < 2, остаток 1. Смотрим на остатки от деления (справа налево): 1110. Это и есть число 14 в двоичной. Запишем:
2. Перевод из восьмеричной с/с в двоичную с/с осуществляется триадами. 3 в двоичной с/c = 11, т.к. триады, то 011 (0 перед числом здесь значения не имеет), 4 в двоичной с/с = 100. Запишем:
begin
var a:=ArrRandom(40,-12,12).Where(x->abs(x)>=2).Take(20).ToArray;
a.Sorted.Println;
var sn:=abs(a.Where(x->x<0).Sum);
var sp:=abs(a.Where(x->x>0).Sum);
if sn>sp then Writeln('Модуль суммы отрицательных чисел больше')
else
if sn<sp then Writeln('Модуль суммы положительных чисел больше')
else Writeln('Модули сумм положительных и отрицательных чисел равны')
end.
Тестовое решение:
-12 -10 -7 -7 -4 3 4 5 5 5 6 6 6 8 9 9 10 10 11 11
Модуль суммы положительных чисел больше
14/2 = 7, остаток 0, 7/2 = 3, остаток 1, 3/2 = 1, остаток 1, 1 < 2, остаток 1. Смотрим на остатки от деления (справа налево): 1110. Это и есть число 14 в двоичной. Запишем:
2. Перевод из восьмеричной с/с в двоичную с/с осуществляется триадами. 3 в двоичной с/c = 11, т.к. триады, то 011 (0 перед числом здесь значения не имеет), 4 в двоичной с/с = 100. Запишем:
3. ⇒
ответ: