var a: array[1..nm, 1..nn] of integer; i, j, m, n, k, imin, imax, nmin, nmax: integer;
begin Write('Введите число строк и столбцов матрицы: '); Readln(m, n); Randomize; Writeln('Исходная матрица'); for i := 1 to m do begin for j := 1 to n do begin a[i, j] := Random(101) - 50; Write(a[i, j]:4) end; Writeln end; if m = n then begin imax := 1; imin := 1; nmax := a[1, n]; nmin := nmax; for i := 2 to n do begin k := a[i, n - i + 1]; if nmax < k then begin imax := i; nmax := k end; if nmin > k then begin imin := i; nmin := k end end; a[imax, n - imax + 1] := nmin; a[imin, n - imin + 1] := nmax end else begin i := 2; while i <= m do begin for j := 1 to n do a[i, j] := 0; i := i + 2 end; end; Writeln('Матрица-результат'); for i := 1 to m do begin for j := 1 to n do Write(a[i, j]:4); Writeln end; Writeln end.
Введём обозначения x - назад 2 у - вперёд 3 Всего команд 40 поэтому х+у = 40. Также сказано, что команд назад 2 на 10 больше: х-у = 10 Составим систему уравнений.
выразим из 2 уравнения х, получим: х = 10 + у подставим этот х в 1 уравнение: 10 + у + у = 40 упрощаем: 2у = 30 упрощаем: у = 15 подставим в выраженный ранее х: х = 10 + 15 = 25
Мы получили команд назад 2 - 25, то есть кузнечик в сумме сдвинулся назад на 2*25 = 50, а вперёд на 3*15 = 45. Если мы вычтем из 1 результата 2 то получим 5 - число указывает смещение кузнечика. То есть всю программу можно заменить одной командой: назад 5.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
с информатикой Определите результат действий фрагмента скрипта
nm = 20;
nn = 20;
var
a: array[1..nm, 1..nn] of integer;
i, j, m, n, k, imin, imax, nmin, nmax: integer;
begin
Write('Введите число строк и столбцов матрицы: ');
Readln(m, n);
Randomize;
Writeln('Исходная матрица');
for i := 1 to m do
begin
for j := 1 to n do
begin
a[i, j] := Random(101) - 50;
Write(a[i, j]:4)
end;
Writeln
end;
if m = n then begin
imax := 1; imin := 1; nmax := a[1, n]; nmin := nmax;
for i := 2 to n do
begin
k := a[i, n - i + 1];
if nmax < k then begin imax := i; nmax := k end;
if nmin > k then begin imin := i; nmin := k end
end;
a[imax, n - imax + 1] := nmin; a[imin, n - imin + 1] := nmax
end
else begin
i := 2;
while i <= m do
begin
for j := 1 to n do a[i, j] := 0;
i := i + 2
end;
end;
Writeln('Матрица-результат');
for i := 1 to m do
begin
for j := 1 to n do Write(a[i, j]:4);
Writeln
end;
Writeln
end.
Тестовые решения:
Введите число строк и столбцов матрицы: 5 5
Исходная матрица
29 40 -24 34 16
32 -45 9 -10 27
-45 30 -50 -24 -50
15 33 3 12 36
46 -46 0 2 43
Матрица-результат
29 40 -24 34 16
32 -45 9 -10 27
-45 30 46 -24 -50
15 33 3 12 36
-50 -46 0 2 43
Введите число строк и столбцов матрицы: 5 6
Исходная матрица
27 3 -18 36 -48 22
-27 -19 4 -36 -50 -9
-48 -25 9 -36 10 26
10 -22 -15 -40 -42 38
-31 32 41 -17 -26 22
Матрица-результат
27 3 -18 36 -48 22
0 0 0 0 0 0
-48 -25 9 -36 10 26
0 0 0 0 0 0
-31 32 41 -17 -26 22