Масиви (Pascal)

Завдання 1. Даний двомірний масив (матриця) розмірністюm* n елементами якого є цілі числа. Виконати "дзеркальне відображення" елементів матриці щодо вертикальної осі симетрії (поміняти місцями елементи першого стовпця з останнім, другого з передостаннім тощо).

programVertMirrow;usescrt;constm = 10; < число рядків > n = 15; < число стовпців > type TMatr =array[1..m,1..n]ofInteger; var Matr: TMatr; < число рядків > Finp: Text; < файл вихідних даних > B: Integer; i,j: Integer; процесор PrintMatr; var i,j: Integer; begin for i := 1 to m do begin for j := 1 to n do Write (Matr[i,j]:5); Writeln; end; Writeln;end;beginClrScr; < Читання вихідних значень матриці > Assign (Finp, 'FINP.DAT'); Reset (Finp); for i := 1 to m do begin for j := 1 to n do Read (Finp, Matr[i,j]);Readln(Finp); end; Writeln ('Вихідна матриця:'); PrintMatr; < "Дзеркальне відображення" матриці щодо > < вертикальної осі симетрії > for j := 1 to n div 2 do < Беремо стовпці від 1 > < до середнього > for i := 1 to m do < Змінюємо місцями симетричні стовпці > begin B := Matr[i,j]; Matr[i,j]: = Matr[i,n-j+1]; Matr[i,n-j+1]: = B end; Writeln ('Перетворена матриця:'); PrintMatr; end.

Завдання 2. Дано квадратну матрицю порядку n, елементами якої є цілі числа. Вивести значення елементів на друк, виконавши обхід матриці "спіраллю", як показано на наступному малюнку

Розглянемо схему, що показує закономірності зміни індексів до виконання обходупо "спіралі".

p - номер поточного витка "спіралі"

Програма, що відповідає наведеній схемі, матиме такий вигляд: