Программирование алгоритмов обработки двумерных массивов

Цель работы: научиться разрабатывать и отлаживать программы с использованием матриц.

Описание двумерного массива (матрицы):

TYPE

<имя> = ARRAY[диап1,диап2] OF <базовый_тип>;

где [диап] - диапазон для одного индекса.

Пример. Вычислить суммы элементов

в столбцах двумерного числового массива

А размером [1..3,1..4].

Текст программы для СА (рис. 9):

Program lr7_1;

CONST a: array[1..3,1..4] of integer =

((1,2,3,4),(1,2,3,4),(1,2,3,4));

VAR

s: array[1..4] of integer; {массив сумм}

i, j: integer;

BEGIN

for j:=1 to 4 do

begin

s[j]:=0;

for i:=1 to 3 do

s[j]:=s[j]+a[i,j];

write(' s[',j,']=',s[j])

end;

END.

Задание 1 (программа 7_1)

1. Даны матрицы A,B: array [1..4,1..4] of real. Вычислить матрицу С поэлементным сложением соответствующих элементов матриц А и В.

2. Дана матрица B: array [1..5,1..5] of real. Найти для нее транспонированную матрицу.

3. Даны матрица A: array [1..4,1..4] of real и константа К. Вычис­лить матрицу С=А*К.

4. Сформировать массив по правилу 1 0 0... 0

2 1 0... 0

3 2 1... 0

...

10 9 8... 1.

5. Даны натуральное N и элементы квадратной вещественной матрицы А пято-го порядка. Вычислить N-ю степень каждого элемента этой матрицы

ij1ij, аij2ijij, аij3= аij2ij и т.д., где i,j=1,2,...,5).

6. Сформировать массив по правилу 0 0 0...0

0 1 0...0

0 0 2...0

0 0 0...9.

7. Сформировать массив последовательностью натуральных чисел:

1 2... 10

11 12... 20

21 22... 30

...

91 92... 100.

8. Сформировать двумерный массив:

1 2 3 4 5

5 1 2 3 4

4 5 1 2 3

3 4 5 1 2

2 3 4 5 1.

9. Дана матрица A: array [1..N,1..N] of integer. Сформировать век­тор В из максимальных элементов каждой строки.

10. Дана матрица A: array [1..6,1..6] of integer и переменная Х. Элементы нечет-ных строк матрицы А заменить на Х.

11. Дана матрица B: array [1..5,1..5]. Получить массив С удалени­ем (либо об-нулением) n-й строки и k-го столбца из матрицы В.

12. Определить, является ли заданная квадратная матрица девятого порядка ма

гическим квадратом, т. е. такой, в которой суммы элементов во всех строках и столбцах одинаковы.

13. Определить, является ли заданная целая квадратная матрица шестого порядка симметричной (относительно главной диагонали).

14. Дана вещественная матрица A: array [1..7,1..4]. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент оказался в верхнем левом углу.

15. Дана вещественная матрица размером 4х8. Упорядочить ее стро­ки по не- убыванию сумм их элементов.

16. Для заданной целой матрицы размером 6х8 элементов напечатать индексы всех ее седловых точек. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно на­ибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце.

17. Дана матрица A: array [1..6,1..2] вещественных чисел. Рассмат­ривая A [i,1] и A [i,2] как координаты точек на плоскости, определить радиус наименьшего круга (с центром в начале координат), внутрь кото­рого попадают все эти точки.

18. Дан массив F: array [1..N,1..M] of byte, определить количество «особых» элементов в нем. Элемент считается «особым», если он больше суммы остальных

элементов своего столбца.

19. Дана матрица D: array [1..5,1..6] of integer. Упорядочить эле­менты строк в нем по убыванию.

20. Дан массив М координат точек на плоскости. Найти наибольшее расстоя-ние между этими точками.

Задание 2 (программа 7_2)

Сформировать таблицу Пифагора.

Задание 3 (программа 7_3)

Модифицировать программу 6_3 таким образом, чтобы значения X, F1 и F2 были представлены двумерным массивом, состоящим из трех строк.

Лабораторная работа 8


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: