Var I,j:integer;
K:real;
Begin
for i:=1 to kol do begin
for j:=1 to kol do begin
if i=j then {если диагональ}
begin {меняем местами главную и обратную}
K:=a[i,j];
Mas[i,j]:=Mas[i,kol-i+1];
Mas[i,kol-i+1]:=K
end;
write (Fout,Mas[i,j]:6:2); {выводим в файл}
end;
writeln(Fout);
end;
end;
ЗАДАЧА 24 Написать процедуру вычисления суммы крайних элементов (т.е. находящихся в крайних строках и столбцах) произвольного вещественного массива и суммы его внутренних элементов. Размеры массива: M x N, где M и N не превосходят 10, передаются в процедуру через параметры.
Type
Massiv = array [1..10,1..10] of real; { описание типа массива}
Procedure summa (Var Mas:Massiv;st,kol:integer);
Var I,j:integer;
krai,centr:real;
Begin
krai:=0; {обнуляем сумму крайних}
centr:=0; {обнуляем сумму внутренних}
for j:=1 to kol do
begin
krai:=krai+Mas[1,j];
krai:=krai+Mas[st,j];
end;
for i:=2 to (st-1) do
begin
krai:=krai+Mas[i,1];
krai:=krai+Mas[i,kol];
end;
writeln ('сумма крайних элементов =',krai:8:4);
for i:=2 to st-1 do
for j:=2 to kol-1 do
centr:=centr+Mas[i,j];
writeln('сумма центральных элементов',centr:8:4);
end;
ЗАДАЧА 25 Написать процедуру, которая получает через параметры два двумерных вещественных массива размерами М х N элементов каждый и возвращает ЭТИ массивы переделанными следующим образом: 1) каждый элемент первого массива равен сумме соответствующих элементов исходных массивов; 2) каждый элемент второго массива равен разности соответствующих элементов исходного первого и исходного второго массива. Тип массивов один (привести описание), М и N не больше 20.
Type
Massiv = array [1..20,1..20] of real; { описание типа массива}
Var A,B:massiv;
Процедура без вывода массивов, только счиатет их
Procedure MProc (Var Mas1,Mas2:Massiv;st,kol:integer);
Var I,j:integer;
K:real;
Begin
for i:=1 to M do
for j:=1 to N do
begin
K:=Mas1[i,j]+Mas2[i,j];
Mas2[i,j]:=Mas1[i,j]-Mas2[i,j];
Mas1[i,j]:=K;
end;
end;
ЗАДАЧА 26 Написать функцию, возвращающую порядковый номер первого встретившегося нулевого значения в передаваемом ей одномерном целочисленном массиве из N элементов. Если нулевого элемента в массиве не находится, функция должна стать равной нулю. Размер массива не превосходит 1000.
Type
Massiv = array [1..1000] of integer; { описание типа массива}
FUNCTION nl(Var Mas:Massiv; N:integer):integer;
Var i:integer;
Begin
for i:=1 to N do
if Mas[i]=0 then {если ноль}
begin nl:=i; {присваиваем номер элемента }
break; end { возвращаемся в основную программу}
else nl:=0; {если ноль не встретился, то возвращаем в ноль }
end;