Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vernye_zadachi.docx
Скачиваний:
1
Добавлен:
24.09.2019
Размер:
42.77 Кб
Скачать

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;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]