Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИГА_Учимся программировать TURBO PASCAL 7.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.62 Mб
Скачать

Var а, в : array[1..N, 1..N] of integer;

К, M, I, j: INTEGER;

BEGIN

WRITE('BBEДИTE РАЗМЕР МАТРИЦЫ М = ');

READLN (M);

WRITELN('ИСХОДНАЯ МАТРИЦА');

K:=1;

FOR I:= 1 TO M DO

FOR J := 1 TO M DO

BEGIN

A[l, J] := K;

К := K+1;

IF J<M THEN WRITE(A[I, J]: 4)

ELSF WRITELN(A[I, J]: 4)

END;

WRITELN(MATPИЦА ПОСЛЕ ПРЕОБРАЗОВАНИЯ');

FOR I := 1 ТО М DO

FOR J := 1 ТО М DO

BEGIN

В [I, J]:= A [I, N+1-J]

IF J<M THEN WRITE(B[I, J]: 4)

ELSE WRITELN(B[I, J]: 4)

END;

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим размеры массива А и присваиваем значения его эле­ментам;

- присваиваем значения элементам матрицы В и выводим их на экран.

Переменные:

А, В - двумерные массивы;

М - количество строк и столбцов массива;

I, J - переменные цикла;

К - вспомогательная переменная.

Задача 7.11 Дана квадратная матрица N х N, состоящая из натуральных чисел. Зеркально отразить ее эле­менты относительно главной диагонали. Вывести результат на экран.

Рассмотрим матрицу 3 х 3 и посмотрим, что происходит с эле­ментами при зеркальном отражении?

А 11

А 12

А 13

А 11

А 21

А 31

А 21

A 22

А 23

А 12

A 22

А 32

А 31

А 32

А 33

А 13

A 23

А 33

Если считать, что после преобразования у нас появилась новая матрица В, то соответствие между элементами устанавливается следующим образом:

В 11  А 11

В 12  А 21

В 21  А 12

В 22  А 22 и т. д., т. е. В [I, J] A [L, М].

Внимательно изучив соответствие, можно утверждать, что для элементов матрицы N х N справедлива следующая система урав­нений: Отсюда правило преобразования элементов выглядит следую­щим образом: В [I, J] = A [J, I].

Программа, решающая данную задачу, выглядит так:

PROGRAM PRG7_11;

CONST N = 100;

Var а, в : array[1..N, 1..N] of integer;

К, М, I, J : INTEGER;

BEGIN

WRITE ('BBEДИTE РАЗМЕР МАТРИЦЫ М = ');

READLN (M);

WRITELN('ИCXOДНАЯ МАТРИЦА');

К:=1;

FOR I := 1 ТО М DO

FOR J := 1 ТО М DO

BEGIN

A[l, J] := К;

К := К+1;

IF J<M THEN WRITE(A[I, J] : 4)

ELSE WRITELN(A[I, J] : 4)

END;

WRITELN('MATPИЦА ПОСЛЕ ПРЕОБРАЗОВАНИЯ');

FOR I := 1 TO M DO

FOR J := 1 TO M DO

BEGIN

B[l, J] := A[J, I];

IF J<M THEN WRITE(B[I, J] : 4)

ELSE WRITELN(B[I, J] : 4)

END;

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим размеры массива А и присваиваем значения его эле­ментам;

- присваиваем значения элементам матрицы В и выводим их на экран.

Переменные:

А, В - двумерные массивы;

М - количество строк и столбцов массива;

I, J - переменные цикла;

К - вспомогательная переменная.

Задача 7.12 Дана квадратная матрица N.x N, состоящая из натуральных чисел. Зеркально отразить ее эле­менты относительно побочной диагонали. Вывес­ти результат на экран

Рассмотрим матрицу 3 х 3 и посмотрим, что происходит с элементами при зеркальном отражении.

А 11

А 12

А 13

А 33

А 23

А 13

А 21

А 22

А 23

А 32

А 22

А 12

А 31

А 32

А 33

А 31

А 21

А 11

Если считать, что после преобразования у нас появилась новая матрица В, то соответствие между элементами устанавливается следующим образом:

В 11  А 33

В 12  А 23

В 21  А 32

В 22  А 22 и т. д., т. е. В [I, J] A [L, М].

Внимательно изучив соответствие, можно утверждать, что для элементов матрицы N х N справедлива следующая система урав­нений: Отсюда правило преобразования элементов выглядит следую­щим образом: B[I, J] = A [N + 1 - J, N + 1 -I].

Программа, решающая данную задачу, выглядит так:

PROGRAM PRG7_12;

CONST N = 100;