Дан двумерный массив А. Расставить его столбцы в следующем порядке:первый,последний,второй,предпоследний и т.д - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Дан двумерный массив А. Расставить его столбцы в следующем порядке: первый,последний,второй,предпоследний и т.д Желательно с процедурами Init, print,insert

Решение задачи: «Дан двумерный массив А. Расставить его столбцы в следующем порядке:первый,последний,второй,предпоследний и т.д»

textual
Листинг программы
const n=3;m=7;
type mas=array[1..n,1..m] of integer;
var a:mas;j,mm:integer;
procedure init(var x:mas);
var i,j:integer;
begin
 for i:=1 to n do
  for j:=1 to m do
   x[i,j]:=random(11)
end;
procedure print(x:mas;mm:string);
var i,j:integer;
begin
 writeln(mm,':');
 for i:=1 to n do
  begin
   for j:=1 to m do write(x[i,j]:3);
   writeln
  end;
 writeln
end;
procedure insert(var x:mas;st1,st2:integer);
var i,j,temp:integer;
begin
 for i:= 1 to n do
   begin
    for j:=st2 downto st1+1 do
     begin
       temp:= a[i,j];
       a[i,j]:=a[i,j-1];
       a[i,j-1]:=temp
     end
   end
end;
begin
 init(a);
 print(a,'A');
 j:=2;
 while j<=m do begin insert(a,j,m); inc(j,2) end;
 print(a,'A''');
end.

Объяснение кода листинга программы

В данном коде объявлены следующие переменные: n, m - числа, обозначающие размеры двумерного массива; mas - тип данных, представляющий двумерный массив; a - переменная, в которую записывается двумерный массив; j, mm - переменные, используемые для циклов в процедурах init и print; temp - временная переменная, используемая в процедуре insert для обмена значениями; i, j - переменные, используемые для внутренних циклов в процедуре insert. В процедуре init происходит инициализация значений двумерного массива случайными числами от 1 до 10. В процедуре print выводится содержимое двумерного массива в формате A: [1 2 3 4 5 6 7], где A - название строки, а числа в квадратных скобках - значения элементов массива. В процедуре insert происходит вставка элемента в двумерный массив. Элемент, который нужно вставить, определяется переменной st2, а позиция вставки - переменной st1. Вставка происходит следующим образом: для каждой строки массива, начиная со строки st2 и до конца строки (включительно), происходит проверка на наличие свободного элемента. Если свободный элемент есть, то его значение копируется в temp, значение текущего элемента заменяется на значение temp, а затем происходит переход к следующему свободному элементу. После выполнения всех операций вставки выводится содержимое двумерного массива во второй раз.

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы