Цель: Научится работать с отдельными элементами двумерного массива, со строками (столбцами), диагоналями (главными, побочными).
План занятия:
· структура двумерного массива и его описание;
· работа с двумерным массивом по заданным правилам;
· выполнение самостоятельной работы.
Ход работы:
Теоретические сведения:
Массивы, положение элементов в которых описывается двумя индексами, называют двумерными. Логическая структура такого массива может быть представлена прямоугольной матрицей. Каждый элемент матрицы однозначно определяется указанием номера строки и номера столбца. Образом памяти компьютера в наших предыдущих рассуждениях был одномерный массив ячеек. Как происходит отображение логической структуры двумерного массива в физическую? Известны два способа: отображение строками и отображение столбцами. В конкретной системе программирования используется один из них. Рассмотрим первый, как обычно на примере. Пусть есть двумерный массив А из целых чисел (тип Integer — 2 байта). Количество строк равно 5, количество столбцов — 4. Пусть первый элемент А[1,1] записан в ячейке с номером 1000. Вычислим адрес А[4,3]. Addr(A[4,3])= 1000+2*(4*(4-1)+(3-1))=1028. Что мы делали? В каждой строке записано по 4 элемента. В трех строках — 12 элементов, в 4-й строке до 3-го элемента записано 2 элемента. Складываем и умножаем на 2, ибо 2 байта необходимо для хранения одного элемента. В общем случае для массива A[N,M] из элементов, занимающих V байт памяти, формула имеет вид: Addr(A[i,j])=Addr(A[1,1])+V*(M*(i-1)+(j-1)).
Двумерный массив на языке Турбо Паскаль определяется по-разному.
Примеры:
Const MaxN=...; MaxМ=...; {Максимальные значения количества строк и столбцов двумерного массива}
Туре ОМуАrrау=Аrrау[1. . МахМ] Of Integer; {Одномерный массив из целых чисел}
TMyArray=Array[1 . . MaxN] Of ОМуАrrау; {Одяомеряый массив, элементами которого являются одномерные массивы из целых чисел}
или
Tуре TMyArray=Array[1 .. MaxN, 1..MaxM] Of Integer; {Двумер-
ный массив из целых чисел}
В пособие отдается предпочтение второму способу описания двумерного массива.
Задания для самостоятельной работы:
Упражнение 1:
ü (четные компьютеры) Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по строкам. Результат выводим на экран в виде нового массива – столбца.
ü (нечетные компьютеры) Написать программу, которая вводит с клавиатуры двумерный массив по строкам и вычисляет среднеее арифметическое его элементов в строке. Результат выводим на экран в виде нового массива – столбца.
Упражнение 2:
Написать программу, которая вычисляет
ü (четные компьютеры )сумму диаганальных элементов квадратной матрицы.
ü (нечетные компьютеры) определитель квадратной матрицы второго порядка.
Дополнительное задание:
1. Написат программу, которая проверяет, является ли введенная с клавиатуры квадратная матрица магическим квадратом.
Пример:
2 9 4
7 5 3
6 1 8
2. Дана прямоугольная матрица А(10,15), заполненная случайным образом от 0 до 29 включительно. Выдать на печать максимальное значение элементов данной матрицы.
3. Дана прямоугольная матрица А(10,15), заполненная случайным образом от 0 до 29 включительно. Найти сумму значений всех элементов данной матрицы.
4. Дана матрица А(10, 20), заполненная случайным образом в диапазоне от -10 до 19 включительно. Подсчитать количество положительных значений элементов каждой строки матрицы.
5. Дана матрица, состоящая из 10 строк или 5 столбцов и заполненная случайным образом в диапазоне от 0 до 29. Сформировать одномерный массив из сумм значений элементов каждого столбца матрицы.