1. Выполните сложение двоичных чисел: а) 101+111 б) 1011+110 в) 1101+110 г) 1010+1111 д) 111+1011 е) 11,011+101,01 2. Выполните вычитание двоичных чисел: а) 1010-110 r) 11011,11-101,01 6) 1100-11 1) 1111-10,11 в) 1011-101,11 е) 1101, 101-1001,01
3. Выполните умножение двоичных чисел: а) 101. 11 r) 1011 - 11,01 6) 110 - 101 A) 1111,01 - 101 в) 111, 11 е) 101,11 1,101
// Внимание! Если программа не работает, обновите версию!
1)
begin
var a,b:real;
Read(a,b);
if (a>0) and (b>0) then Writeln('Произведение равно ',a*b)
else Writeln('Сумма квадратов равна ',a*a+b*b)
end.
2)
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
for var i:=0 to a.Length-1 do
if i.IsOdd then a[i]:=0
else
if (i+1) mod 5 =0 then a[i]*=2;
a.Println;
end.
Пример
n= 17
7 -49 -21 84 87 12 27 86 -29 -55 -32 -83 -24 96 -3 -3 -78
7 0 -21 0 174 0 27 0 -29 0 -32 0 -24 0 -6 0 -78
Замечание
"Каждый второй" и "каждый пятый" дают пересечение на каждом десятом. И получается. что каждый десятый элемент должен быть обнулён. как каждый второй и удвоен, как каждый пятый, так что все равно получим ноль.
var a:array[1..n] of integer;
i,s:integer; sr:real;
begin
Randomize;
writeln('Массив:');
for i:=1 to n do
begin
a[i]:=random(21);
write(a[i]:3);
end;
writeln;
s:=0;
for i:=1 to n do s:=s+a[i];
sr:=s/n;
writeln('Среднее арифметическое = ',sr:6:2);
writeln('Номера элементов, больших среднего арифметического:');
for i:=1 to n do
if a[i]>sr then write(i:3);
writeln;
end.
Пример:
Массив:
9 19 14 8 7 10 5 10 6 14 15 2 11 17 13
Среднее арифметическое = 10.67
Номера элементов, больших среднего арифметического:
2 3 10 11 13 14 15