Парни очень срочна нужна ваша помощь нужно вот эту задачю решить через процедыры и функцийй :
Тоесть вот исходный уже готовый рабочий код на паскале но мне надо его сделать через procedure и function чтобы я его в дельфи мог реализовать на деюсь на вашу помощь вот сам готовый год :
Код:
Постановка задачи: Дан двумерный массив размером n*m, заполненный случайным образом.
1. Заменить все элементы первых трех столбцов на квадратный корень из них.
2. Вставить после каждой четной строки первую строку.
3. Удалить все столбцы, в которых первый элемент больше предпоследнего,
4. Поменять местами средние строки с первой и последней
Тоесть вот исходный уже готовый рабочий код на паскале но мне надо его сделать через procedure и function чтобы я его в дельфи мог реализовать на деюсь на вашу помощь вот сам готовый год :
Код:
Код:
Program Z3;
const n = 4;
m = 5;
var i, j,k,k1,k2,p,n1,m1,m2,nsr1,nsr2,c: integer;
A: array [1..n*2, 1..m] of integer;
begin
{формирование массива случайным образом}
randomize;
for i:= 1 to n do
for j:= 1 to m do
A[i, j]:= -5+random(10);
Writeln ('Исходный массив');
For i:=1 to n do
begin
For j:=1 to m do
write(a[i,j]:5);
writeln;
end;
readln;
{1 Заменить все элементы первых трех столбцов на их квадраты }
for i:= 1 to n do
for j:= 1 to 3 do
A[i, j]:=Sqr(A[i, j]);
Writeln ('Преобразованный массив (1)');
For i:=1 to n do
begin
For j:=1 to m do
write(a[i,j]:5);
writeln;
end;
readln;
{2 Вставить после каждой нечетной строки первую строку}
k:=0;
For p:=n downto 1 Do
If odd(p) then
Begin
k1:=p;
For i:=n+k Downto k1+1 Do
For j:=1 To m Do
a[i+1,j]:=a[i,j];
For j:=1 to m Do a[k1+1, j ] :=a[1,j];
inc(k);
end;
Writeln ('Преобразованный массив (2)');
For i:=1 to n+k do
begin
For j:=1 to m do
write(a[i,j]:5);
writeln;
end;
readln;
{3 Удалить все столбцы, в которых первый элемент больше последнего }
k2:=0;
For p:=m downto 1 Do
If a[1,p]>a[n+k,p] then
Begin
k1:=p;
For j:=k1 To m-1 Do
For i:=1 To n+k Do a[i,j]:=a[ i,j+1];
For i:=1 To n+k Do a[i,m]:=0;
inc(k2);
end;
Writeln ('Преобразованный массив (3)');
For i:=1 to n+k do
begin
For j:=1 to m-k2 do
write(a[i,j]:5);
writeln;
end;
readln;
{4 Поменять местами средние строки с первой и последней}
n1:=n+k;
m1:=m-k2;
If odd(n1) then
begin
nsr1:= n1 div 2 +1;
nsr2:=nsr1;
end
else
begin
nsr1:=n1 div 2;
nsr2:=nsr1+1;
end;
For j:=1 to m1 do
begin
c:=a[1,j];
a[1,j]:=a[nsr1,j];
a[nsr1,j]:=c;
c:=a[n1,j];
a[n1,j]:=a[nsr2,j];
a[nsr2,j]:=c;
end;
Writeln ('Преобразованный массив (4)');
For i:=1 to n1 do
begin
For j:=1 to m1 do
write(a[i,j]:5);
writeln;
end;
readln;
end.