В двумерном массиве поменять все знаки на противоположные.
входной массив
выходной массив
-2
-2
-2
-2
-4
-4
-6
-6
Очевидно, расчетная часть программы должна выглядеть следующим образом :
for i:=1 to 5 do
for j:=1 to 5 do a[i,j]:=-a[i,j];
А сама программа полностью может выглядеть, например, так:
program N10;
var
a : array [1..5,1..5] of integer; {Объявление массива a из 25 элементов}
i,j : integer;
begin
writeln('Вводите 25 чисел');
for i:=1 to 5 do
for j:=1 to 5 do readln(a[i,j]); {Ввод двумерного массива}
writeln('исходный массив');
for i:=1 to 5 do
begin
for j:=1 to 5 do write(a[i,j],' '); {Вывод двумерного массива}
writeln;
end;
for i:=1 to 5 do
for j:=1 to 5 do a[i,j]:=-1*a[i,j]; {замена знака элементов массива на противоположенный}
writeln('результирующий массив');
for i:=1 to 5 do
begin
for j:=1 to 5 do write(a[i,j],' '); {Ввод двумерного массива}
writeln;
end;
end.
Задача 11. В двумерном массиве найти максимальный элемент.
Расчетная часть задачи может выглядеть, например, так:
max:= a[1,1]
for i:=1 to 5 do
for j:=1 to 5 do
if max>a[i,j] then max:=a[i,j];
Задача 14.
Выяснить, является ли двумерный массив (5*5) магическим квадратом.
Простейшее решение заключается в том, что бы найти переменные
S1 S2 ... S5 – суммы строк от первой до 5-ой
T1 T2 ... T5 – суммы столбцов от первого до 5-го
D1 D2 – суммы элементов 1-ой и 2-ой диагоналей
А затем написать оператор IF типа
IF (S1=D2) and (S2=D2) and (S3=D2) and (S4=D2) and (S5=D2) and (T1=D2) and (T2=D2) and (T3=D2) and (T4=D2) and (T5=D2) and (D1=D2) then writeln ('квадрат магический')
else writeln ('квадрат НЕмагический');
Некоторые из Вас справедливо могут заметить: а если массив будет 100 строк на 100 столбцов, тогда таким способом очень неудобно решать. Согласен - тогда надо придумать алгоритм, который решает данную задачу. Придумывание новых алгоритмов - это самая сложная задача в программировании. Ей и посвящена следующая глава. Надеюсь, что когда и если Вам удастся разобраться с материалом следующей главы, Вы сами придумаете лучший алгоритм решения задачи 14.
Задача 19. Найти количество нулей в заданном столбце
Расчетная часть программы может быть такова:
readln(j);
k:=0;
for i:=1 to 5 do
if a[i,j]=0 then k:=k+1;
writeln(k);
Задачи 20 и 21, несмотря на сложные и, на первый взгляд, различные формулировки, обе требуют найти минимальный элемент из максимальных по строкам. Это можно сделать, например, так: