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
Все правильно.
Var a:array[1..7]of integer;
p3,p5,s,i,k,min,n:integer;
srz:real;
begin
p5:=1; p3:=1; min:=25;
for i:=1 to 7 do
begin
read(a[i]);
if a[i]<>0 then
begin
if a[i] mod 5=0 then p5:=p5*a[i];
if a[i] mod 3=0 then p3:=p3*a[i];
if a[i] mod 2=0 then
begin
s:=s+a[i];
k:=k+1;
end;
if a[i]<min then
begin
min:=a[i];
n:=i;
end;
end;
end;
srz:=s/k;
writeln;
write('proizv kratnih trem:',p3,' proizv kratnih peti:',p5,' srednee znachenie chet elementov:',srz,' minimalnoe:',min,' nomer minimalnogo:',n);
end.
*r*f*
как я понял, то так, эта маска покроет, те что нам нужно и не покроет остальные