Задача 1 1) 18 меняем на 2 => убралась 1 восьмерка. 2) 288 меняем на 3 => убралось ещё 2 восьмерки и всего 3. 3) 3888 меняем на 1 => убралось ещё 3 восьмерки и всего 6. Далее цикл повторяется убирая по 6 восьмёрок каждый раз. 80:6=13 и 2 в остатке, т.е. после 13-го цикла строка будет 188. Ещё раз заменим 18 на 2 и останется 28. На этом работа редактора закончится. Итог - строка 28 Задача 2 Здесь цикл из 4 операций: 3 раза меняем по 3 восьмерки на двойку и 1 раз меняем 3 двойки на восьмерку, т.е. всего убирается 9 восьмерок и добавляется 1 восьмерка. Таких циклов полностью будет 62:8=7 и 6 в остатке. Т.е. по окончании 7-го цикла останется строка из 6 восьмерок. Они заменяется на 2 двойки и работа редактора закончится. Итог - строка 22 Задача 3 Здесь цикл из 5 операций: Дважды 4444 меняем на 77 и один раз 777 на 4. Остаётся 74444 Ещё 1 раз 4444 на 77 и 1 раз 777 на 4. Итого убирается 10 четвёрок. Всего их 192, значит всего циклов 192:10=19 и остаётся 2 четверки, которые уже не меняются. Итог: строка 44.
Const m=5; n=6; type arr=array[1..m,1..n] of integer; procedure p1(var a:arr); var i,j:integer; begin for i:=1 to m do for j:=1 to n do a[i,j]:=random(51); end; procedure p2(var a:arr); var i,j:integer; begin for i:=1 to m do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end; procedure p3(var a:arr); var i,j,s,max,min,jmax,jmin,c:integer; begin max:=0; min:=m*50*50; for j:=1 to n do begin s:=0; for i:=1 to m do s:=s+a[i,j]*a[i,j]; if s>max then begin max:=s; jmax:=j; end; if s<min then begin min:=s; jmin:=j; end; end; writeln('jmax = ',jmax,' jmin = ',jmin); for i:=1 to m do begin c:=a[i,jmax]; a[i,jmax]:=a[i,jmin]; a[i,jmin]:=c; end; end;
var b:arr; begin Randomize; p1(b); writeln('Исходный массив:'); p2(b); p3(b); writeln('Полученный массив:'); p2(b); end.
type arr=array[1..m,1..n] of integer;
procedure p1(var a:arr);
var i,j:integer;
begin
for i:=1 to m do
for j:=1 to n do a[i,j]:=random(51);
end;
procedure p2(var a:arr);
var i,j:integer;
begin
for i:=1 to m do
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
end;
procedure p3(var a:arr);
var i,j,s,max,min,jmax,jmin,c:integer;
begin
max:=0; min:=m*50*50;
for j:=1 to n do
begin
s:=0;
for i:=1 to m do s:=s+a[i,j]*a[i,j];
if s>max then begin max:=s; jmax:=j; end;
if s<min then begin min:=s; jmin:=j; end;
end;
writeln('jmax = ',jmax,' jmin = ',jmin);
for i:=1 to m do
begin
c:=a[i,jmax]; a[i,jmax]:=a[i,jmin]; a[i,jmin]:=c;
end;
end;
var
b:arr;
begin
Randomize;
p1(b);
writeln('Исходный массив:');
p2(b);
p3(b);
writeln('Полученный массив:');
p2(b);
end.
Пример:
Исходный массив:
34 47 38 31 18 19
12 0 43 30 2 33
20 49 43 16 45 14
31 32 29 30 50 26
44 32 30 50 1 23
jmax = 3 jmin = 6
Полученный массив:
34 47 19 31 18 38
12 0 33 30 2 43
20 49 14 16 45 43
31 32 26 30 50 29
44 32 23 50 1 30