• XSS.stack #1 – первый литературный журнал от юзеров форума

Нужно срочно помочь плоучю 200р

BeoWolf

HDD-drive
Пользователь
Регистрация
22.02.2008
Сообщения
40
Реакции
0
Парни очень срочна нужна ваша помощь нужно вот эту задачю решить через процедыры и функцийй :

Постановка задачи: Дан двумерный массив размером 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.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх