Вы находитесь на странице: 1из 5

Практическая работа №14

Тема: Формирование и обработка двумерных массивов


Цель работы: получить навыки программирования работы с двумерными
массивами
Порядок выполнения работы:
1. Повторить теоретический раздел.
2. Решить задачи (задания 1-9)

Краткая теория
Двумерный массив в Pascal
Матрица или двумерный массив – это прямоугольная таблица чисел (или
других элементов одного типа). Каждый элемент матрицы имеет два
индекса (номер строки и номер столбца).

Исходные данные для решения многих задач можно представить в


табличной форме:

Таблица результатов производственной деятельности нескольких филиалов


фирмы может быть представлена так:
zavod1: array [1..4] of integer;
zavod2: array [1..4] of integer;
zavod3: array [1..4] of integer;
Или в виде двумерного массива так:
Объявление двумерного массива:
var A: array[1..3,1..4] of integer;
Описание, ввод и вывод элементов двумерного массива
Варианты описания двумерного массива
1. Описание массива в разделе переменных:
const N = 3;
M = 4;
var A: array[1..N,1..M] of integer;
2. Описание массива через раздел type:
const
M=10;
N=5;
type
matrix=array [1..M, 1..N] of integer;
var A: matrix;
Ввод двумерного массива m x n с клавиатуры:
for i:=1 to N do
for j:=1 to M do begin
write('A[',i,',',j,']=');
read ( A[i,j] );
end;
Заполнение случайными числами:

«Красивый» вывод элементов двумерного массива m x n:


Следующий фрагмент программы выводит на экран значения элементов
массива по строкам:

1 for i:=1 to N do begin


2 for j:=1 to M do
3 write ( A[i,j]:5 );
4 writeln;
5 end;

Рассмотрим следующую задачу: Получены значения температуры


воздуха за 4 дня с трех метеостанций, расположенных в разных регионах
страны:
Номер станции 1-й день 2-й день 3-й день 4-й день
1 -8 -14 -19 -18
2 25 28 26 20
3 11 18 20 25
Т.е. запись показаний в двумерном массиве выглядела бы так:
t[1,1]:=-8; t[1,2]:=-14; t[1,3]:=-19; t[1,4]:=-18;
t[2,1]:=25; t[2,2]:=28; t[2,3]:=26; t[2,4]:=20;
t[3,1]:=11; t[3,2]:=18; t[3,3]:=20; t[3,4]:=25;
Объявление двумерного массива:
var t: array [1..3, 1..4] of integer;

Задание 1: Необходимо:
1. Распечатать температуру на 2-й метеостанции за 4-й день и на 3-й
метеостанции за 1-й день.
2. Распечатать показания термометров всех метеостанций за 2-й день.
3. Определить среднюю температуру на 3-й метеостанции.
4. Распечатать, в какие дни и на каких метеостанциях температура была
в диапазоне 24-26 градусов тепла.
Задание 2. Найти сумму элементов массива (прямоугольной таблицы)
размером [m x n]
Задание 3. Найти максимальный элемент массива размером [m x n]
Задание 4.
Найти сумму всех элементов массива (переменная sum) 5 x 4, а также сумму
элементов, составляющих столбцы таблицы (двумерного массива). Для
хранения сумм столбцов чисел использовать одномерный массив (s).

Задание 5.
Найти сумму элементов двумерного массива [m x n] по строкам:
2 8 1 9 : sum = 20
3 1 7 2 : sum = 13
4 5 6 2 : sum = 17

Главная и побочная диагональ при работе с двумерными матрицами в Pascal


Главная диагональ квадратной матрицы n x n (т.е. той, у которой
количество строк равно количеству столбцов) проходит с верхнего левого
угла матрицы (элемент 1,1) до правого нижнего угла матрицы (элемент n,n).
Побочная диагональ квадратной матрицы n x n проходит с нижнего
левого угла матрицы (элемент n,1) до правого верхнего угла матрицы
(элемент 1,n).
Формулу поиска элементов диагоналей проще всего искать, нарисовав
элементы матрицы:

1,1 1,2 1,3 1,4

2,1 2,2 2,3 2,4

3,1 3,2 3,3 3,4

4,1 4,2 4,3 4,4

 
Учитывая, что первая цифра в программе будет соответствовать счетчику i,
а вторая — счетчику j, то из таблицы можно вывести формулы:
Главная диагональ матрицы в Паскаль имеет формулу:
i=j
Побочная диагональ матрицы в Паскаль имеет формулу:
n=i+j-1 (или j=n-i+1)
где n — размерность квадратной матрицы
Пример: Вывести на экран сначала главную диагональ квадратной
матрицы из N строк и N столбцов, а затем ее побочную диагональ.
Решение:

Задание 6:
Найти отдельно сумму элементов главной и побочной диагонали квадратной
матрицы
1 7 3 7
2 1 8 3
5 7 6 4
8 2 3 1
-------
sum1 = 9
sum2 = 30

Задание 7: Сформировать матрицу размерностью n. Вывести ее на экран.


Затем преобразовать ее, заменив необходимые элементы на 0:
Задание 8: Сформировать матрицу размерностью n. Вывести ее на экран.
Затем преобразовать ее, заменив необходимые элементы на 0:

Задание 9: Сформировать матрицу размерностью n. Вывести ее на экран.


Затем преобразовать ее, заменив необходимые элементы на 0:

Задание 9: Составить программу, позволяющую с помощью датчика


случайных чисел сформировать матрицу размерностью N. Определить:
 минимальный элемент, лежащий ниже побочной диагонали;
 произведение ненулевых элементов последней строки.