- •Лабораторная работа №1. Работа в среде Norton Commander
- •Лабораторная работа n 2. Среда программирования turbo pascal 7.0
- •Лабораторная работа n 3. Программирование в среде turbo pascal 7.0
- •Лабораторная работа n°4.Ознакомление со средствами компиляции и отладки в среде Turbo Pascal 7.0.
- •Лабораторная работа n 5. Ввод/вывод на языке программирования Паскаль
- •Лабораторная работа n 6.Программирование алгоритмов линейной структуры
- •Лабораторная работа n 7. Программирование алгоритмов ветвящейся структуры
- •Лабораторная работа n 8. Программирование алгоритмов циклической структуры
- •Лабораторная работа n 9.Одномерные массивы
- •Лабораторная работа n 10. Многомерные массивы
Лабораторная работа n 10. Многомерные массивы
====================
Цель и задача работы : продолжение изучения структурированных
---------------------- данных. Понятие двумерный массив.
Теоретические положения.
------------------------
Двумерным массивом называется матрица. Все ограничения, наложен-
ные на одномерные массивы остаются в силе и для двумерного массива,
т.е. значение индекса не должно выходить за пределы допустимого
диапазона, элементы должны иметь один и тот же тип. Основным отличием
многомерных массивов, в частности двумерных, от одномерных является
то, что в качестве элементов многомерного массива могут быть мас-
сивы.
Массив можно описать несколькими способами, один из них (формат
описания массивов) был приведен в предыдущей работе:
TYPE MATR=ARRAY [BOOLEAN,1..12] OF INTEGER;
VAR A: MATR; I,J: INTEGER;
В первой строке описали тип MATR, как двумерный целочисленный
массив с двумя строками (тип BOOLEAN имеет всего два значения) и 12
столбцами. Переменная A имеет тип MATR, т.е. A - переменная, являю-
щаяся двумерным целочисленным массивом с 2 строками и 12 столбцами.
Пример:
I:=5; J:=6;
A[J>I,(J+I) DIV 10]:=25; (*т.Е. A[FALSE,3]:=25;*)
Варианты заданий : задана матрица NXM, где N>1, M>1
------------------
1) Вычеркнуть из матрицы I-тые строки и J-тые столбцы, удовлетворя-
ющие условию: I*J=Z (где Z задаваемый параметр от N до большего из N и M)
2) Заданы две матрицы (NXM,MXN), перемножить эти матрицы
3) Заданы две матрицы (NXM), получить сумму этих матриц
4) J-тый столбец матрицы умножить на K
5) Транспонировать матрицу
6) Умножить матрицу на заданное число X
7) Четные строки матрицы заменить на X
8) В матрице поменять местами I-тую строку и J-тый столбец
9) В матрице поменять местами I-тую и J-тую строки
10) Переставляя строки и столбцы матрицы, добиться, что бы в левом
верхнем углу оказался наибольший элемент матрицы (один из них)
11) Упорядочить матрицу построчно по возрастанию
12) Вычислить сумму элементов матрицы (на рисунке выделены символом X)
1 M
+-----------+
1 IXXXXXXXXXXXI
IX+-------+XI
IXI IXI
IXI IXI
IX+-------+XI
N IXXXXXXXXXXXI
+-----------+
13) Вычислить сумму элементов матрицы вдоль ее диагоналей
14) Вычислить сумму элементов матрицы (N и M - нечетные и N=M),
1 M расположенных внутри меньшего из квадратов
+------+
1 I /\ I
I/XXXX\I
I\XXXX/I
N I \/ I
+------+
15) Определить, является ли заданная матрица симметричной относи-
тельно главной диагонали (N=M)
16) Осуществить поворот матрицы против часовой стрелки на 90 градусов
17) Вычислить сумму элементов матрицы (выделены символом X)
1 M
+---------------+
1 I\ /I
IXX\ /XXI
IXXXX\ /XXXXI
IXXXXXX\ /XXXXXXI
IXXXXXX/ \XXXXXXI
IXXXX/ \XXXXI
IXX/ \XXI
N I/ \I
+---------------+
18) Упорядочить матрицу по убыванию по столбцам
19) Определить, является ли заданная матрица ортонормированной,
т.е. скалярное произведение каждой пары различных строк (столб-
цов) равно нулю
20) Определить, является ли заданная матрица магическим квадратом,
т.е. суммы элементов всех строк и столбцов одинаковы
21) Определить один из седловых элементов матрицы (наибольший в
строке и наименьший в столбце)
22) Найти скалярное произведение строки матрицы с наименьшим эле-
ментом на столбец матрицы с наибольшим элементом
23) Получить треугольник паскаля (биноминальные коэффициэнты)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
24) Осуществить поворот смежных с элементом матрицы [I,J] элементов
на 90 градусов против часовой стрелки (1<I<N,1<J<M)
25) Определить минимальный вектор-строку и максимальный вектор-
столбец (минимальным вектором из векторов (1,5,3,4) и
(1,5,4,4) будет вектор (1,5,3,4), т.К. 3-Я координата первого
вектора меньше 3-ей координаты второго вектора).
26) Вычислить сумму элементов,лежащих на диагоналях матрицы N*N
(обратить внимание на четность-нечетность числа N ).
27) Найти сумму последнх элементов каждой строки и каждого
столбца
28) Определить среднее арифметическое элементов,лежащих на
пересечении строк,номера которых кратны трем и столбцов,
номера которых кратны двум.
29) Определить номера строк матрицы, в которых знаки элементов
чередуются
30) Наити разность сумм элементов,расположенных над главной
и под неглавной диагональю матрицы.
31) Вычеркнуть из матрицы строки и столбцы, на пересечении которых
находятся наибольший и наименьший элементы матрицы.
32) Упорядочить элементы матрицы по возрастанию на каждой диагонали.