1 Представить расчет перевода десятичных чисел таблицы, расположенной в теоретической части практического занятия, в минус-двоичную систему счисления методом деления на основание системы (q= -2). Если есть, укажите ошибки.
2. Перевести десятичное число в минус-двоичную систему счисления методом деления на основание системы (q= -2).
а) 31 в) 25
б) -26 с) -35
3 Перевести десятичную дробь А = 0,125 в минус-двоичную систему счисления с точностью до трех знаков после запятой.
а) 0,145 в) 0,642
б) -0,415 с) 0,255
begin
var m:=ReadInteger('Число строк=');
var n:=ReadInteger('Число стролбцов=');
var a:=MatrixRandom(m,n,-99,99);
var imax:=-1; var jmax:=0;
var imin:=0; var jmin:=0;
var min:=100; var max:=-100; // больше большего, меньше меньшего
for var i:=0 to m-1 do begin
for var j:=0 to n-1 do begin
Write(a[i,j]:4);
if (a[i,j]>0) and (a[i,j] mod 2=0) then begin
if a[i,j]<min then begin imin:=i; jmin:=j; min:=a[i,j] end;
if a[i,j]>max then begin imax:=i; jmax:=j; max:=a[i,j] end
end
end;
Writeln
end;
if imax<>-1 then begin
Writeln('Минимальный четный положительный элемент A[',
imin+1,',',jmin+1,']=',a[imin,jmin]);
Writeln('Максимальный четный положительный элемент A[',
imax+1,',',jmax+1,']=',a[imax,jmax])
end
else
Writeln('В массиве нет положительных четных элементов')
end.
Тестовое решение
Число строк= 5
Число стролбцов= 8
-59 98 55 -92 -98 68 5 -82
63 49 41 7 51 22 55 -4
-78 42 -35 -60 -6 -15 -34 -28
-14 55 -44 22 74 -50 -98 85
50 2 65 39 -47 -59 -7 -87
Минимальный четный положительный элемент A[5,2]=2
Максимальный четный положительный элемент A[1,2]=98
for i:=1 to 9 do write(i); writeln(10);
for i:=0 to 8 do write(i); writeln(9);
for i:=1 to 2 do write('0'); for i:=1 to 7 do write(i); writeln('8');
for i:=1 to 3 do write('0'); for i:=1 to 6 do write(i); writeln('7');
for i:=1 to 4 do write('0'); for i:=1 to 5 do write(i); writeln('6');
for i:=1 to 5 do write('0'); for i:=1 to 4 do write(i); writeln(5);
for i:=1 to 6 do write('0'); for i:=1 to 3 do write(i); writeln('4');
for i:=1 to 7 do write('0'); for i:=1 to 2 do write(i); writeln(3);
for i:=1 to 8 do write('0'); write('1');writeln('2');
for i:=1 to 9 do write('0'); writeln(1);
end.
Как сделать более кратко не знаю. Но эта программа работает.