program z1;
var a:array [1..20] of integer;
i,s,k:integer;
begin
randomize;
s:=0;
k:=0;
write('Массив: ');
for i:=1 to 20 do
begin
a[i]:=random(90)+10;
if a[i] mod 2 <> 0 then
begin
s:=s+a[i];
k:=k+1
end;
write(a[i],' ')
end;
writeln;
writeln('Среднее арифметическое нечётных элементов: ',s/k:0:1)
end.
Объяснение:
Задаём значение элемента с random
Проверяем значение элемента на нечётность, если условие истинно, то считаем сумму и количество элементов
Выводим значение элемента на экран
Выводим среднее арифметическое (результат деления суммы на количество) нечётных элементов
10101:101
Сначала нужно представить в 8 битном формате (8 знаков) получается
00010101 : 00000101
сдвигаем делитель (00000101) влево пока позиция старшего значения единицы, в нем, не совпала с позицией старшего значения единицы в делимом (00010101). Получается делитель равняется 00010100. И запоминаем количество сдвигов (2).
Нам нужно представить делитель в дополнительном коде(это типо обратное число + 1 вот так: 00010100 прямой код = 11101011 + 1 = 11101100 дополнительный код). Если в начале цифры 1 то это отрицательной число таким образом -делитель = делитель в доп. коде.
Вычитаем из делимого (00010101) делитель (11101100) получается 00000001(частный), с остатком 1 (частный остаток). Вспоминаем количество сдвигов (2) и столько же сдвигаем влево наш частый получается 100 и 1 остаток.
В общем все сложно а результат 10101 : 101 = 100 и 1 в остатке.
А еще точнее 100.00110011
Объяснение:
Вот ссылка там можешь решать подобные задачи и объяснение там лучше моей: http://www.reshinfo.com/delenije_1.php
просто значение Разрядная сетка постав 8 бит
ну остальное сам поймешь