uses crt;
var
a:array [1..100,1..100] of real;
n,m,k:integer;
begin
clrscr;
randomize;
write('N='); read(n);
write('M='); read(m);
for n:=1 to n do
for m:=1 to m do
a[n,m]:=random(100)-50;
for n:=1 to n do
begin
for m:=1 to m do
write(a[n,m],' ');
writeln;
end;
for n:= 1 to n do
begin
k:=0;
for m:= 1 to m do
begin
if a[n,m]<0 then
k:=k+1;
end;
writeln('К<span>ол-во отрицательных элементов '</span><span>,n</span><span>,</span><span>' строки: '</span>,k);
end;
end.
N=8, m=0 - это значит, что числа должны быть 8-битными.
Чтобы перевести число в доп.код, нужно взять инверсию и прибавить 1.
A = -44 = -(00101100) = 11010011 + 1 = 11010100
B = -6 = -(00000110) = 11111001 + 1 = 11111010
Складываем
A + B = 11010100 + 11111010 = 11001110
Для проверки в 10 коде переводим опять из доп.кода.
-(11001110) = 00110001 + 1 = 00110010 = -(32 + 16 + 2) = -50
-44 + (-6) = -50
Все правильно.