Делим 1607 на 2 до тех пор, пока не сможем (то есть пока делимое число не станет равным единице). Получим результат:
11001000111
Нам дана двухбайтовая ячейка. Переведём из байт в биты.
2 байта = 2 · 8 бит = 16 бит.
Нолик или единица по отдельности - это один бит (условно; на самом деле - это выделяемая под них память). В нашем результате 11 бит (то есть 11 ноликов и единичек в сумме), остальные 5 остались незаполненными - отсюда и заполнение нулями (поскольку они ничего в результате не поменяют - таково устройство памяти и двоичного кода).
Program aaa; var Y:array[1..1000,1..1000] of longint; n,m,i,j,count5,countm9,s5,sm9:longint; begin writeln('введите размерность массива'); read(n,m); writeln('введите массив'); for i:=1 to n do for j:=1 to m do read(Y[i,j]); count5:=0; countm9:=0; s5:=0; sm9:=0; for i:=1 to n do for j:=1 to m do begin if Y[i,j]>5 then begin inc(count5); s5:=s5+Y[i,j] end; if Y[i,j]<-9 then begin inc(countm9); sm9:=sm9+Y[i,j] end; end; writeln('всего элементов больше 5:',count5,' ,сумма этих элементов равна:',s5); writeln('всего элементов меньше -9:',countm9,' ,сумма этих элементов равна:',sm9) end.
0000011001000111
Объяснение:
Делим 1607 на 2 до тех пор, пока не сможем (то есть пока делимое число не станет равным единице). Получим результат:
11001000111
Нам дана двухбайтовая ячейка. Переведём из байт в биты.
2 байта = 2 · 8 бит = 16 бит.
Нолик или единица по отдельности - это один бит (условно; на самом деле - это выделяемая под них память). В нашем результате 11 бит (то есть 11 ноликов и единичек в сумме), остальные 5 остались незаполненными - отсюда и заполнение нулями (поскольку они ничего в результате не поменяют - таково устройство памяти и двоичного кода).
var
Y:array[1..1000,1..1000] of longint;
n,m,i,j,count5,countm9,s5,sm9:longint;
begin
writeln('введите размерность массива');
read(n,m);
writeln('введите массив');
for i:=1 to n do
for j:=1 to m do
read(Y[i,j]);
count5:=0;
countm9:=0;
s5:=0;
sm9:=0;
for i:=1 to n do
for j:=1 to m do
begin
if Y[i,j]>5 then
begin
inc(count5);
s5:=s5+Y[i,j]
end;
if Y[i,j]<-9 then
begin
inc(countm9);
sm9:=sm9+Y[i,j]
end;
end;
writeln('всего элементов больше 5:',count5,' ,сумма этих элементов равна:',s5);
writeln('всего элементов меньше -9:',countm9,' ,сумма этих элементов равна:',sm9)
end.