Как попарно поменять столбцы в двумерном массиве - Turbo Pascal

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

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

Поторопился отправить запрос на тему: "Как попарно поменять столбцы в двумерном массиве". Всё таки я её сделал сам. А вот как расположить эти два массива рядом не получается. Вот эта программа:
На выходе имеем:
Почему то не получается расположить эти два массива рядом

Решение задачи: «Как попарно поменять столбцы в двумерном массиве»

textual
Листинг программы
uses Crt;
const N = 4;
var A: array[1..N, 1..N] of integer;
    i, j, X: integer;
begin
ClrScr;
randomize;
writeln(' Исходный массив:');
for i:= 1 to N do
 begin
  for j:= 1 to N do
   begin
    A[i, j]:=-5+Random(50);
    write(A[i, j]:3);
   end;
  writeln;
 end;
{Блок попарного обмена столбцами}
for j:=1 to n div 2 do
for i:=1 to n do
 begin
  X:= A[i, j];
  A[i, j]:= A[i, n- j + 1];
  A[i, n - j + 1]:= X;
 end;
gotoXY(5*n,1);
write(' Изменённый массив:');
for i:=1 to N do
 begin
  gotoXY(5*n,1+i);
  for j:= 1 to N do
  write(A[i, j]:3);
 end;
readln
end.

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

  1. Объявлены переменные:
    • A - двумерный массив размером NxN для хранения целочисленных значений;
    • i, j, X - целочисленные переменные для выполнения операций в циклах.
  2. Задано значение константы N равное 4, что означает размерность массива.
  3. Выполняется итерация по исходному массиву A двумя вложенными циклами:
    • внешний цикл от 1 до N (т.е. по строкам);
    • внутренний цикл от 1 до N (т.е. по столбцам).
  4. В каждой ячейке массива A[i, j] случайным образом присваивается значение в диапазоне от -5 до 45 (включительно).
  5. Выводится значение каждой ячейки массива A[i, j] в отдельной строке.
  6. Выполняется блок попарного обмена столбцами:
    • внешний цикл от 1 до N/2 (т.е. по чётным индексам столбцов);
    • внутренний цикл от 1 до N (т.е. по всем индексам строк).
  7. В каждой итерации внутреннего цикла выполняется:
    • переменная X принимает значение ячейки A[i, j];
    • значение ячейки A[i, j] присваивается значению ячейки A[i, N-j+1] (т.е. ячейка A[i, N/2+i-1] получает значение X);
    • значение ячейки A[i, N-j+1] присваивается значению переменной X.
  8. Выполняется смещение курсора в начало нового массива (5*N,1).
  9. Выводится изменённый массив A с помощью двух вложенных циклов:
    • внешний цикл от 1 до N (т.е. по строкам);
    • внутренний цикл от 1 до N (т.е. по столбцам).
  10. Каждое значение ячейки массива A[i, j] выводится в отдельной строке с помощью функции write(A[i, j]:3).

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

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