¾ экспериментальная работа с программами поиска максимального элемента в массиве, формирование значений элементов одномерного массива, поиска элементов с определенными свойствами, заполнения массива по заданным правилам;
¾ выполнение самостоятельной работы.
Массивы, положение элементов в которых описывается двумя индексами, называют двумерными. Логическая структура такого массива может быть представлена прямоугольной матрицей. Каждый элемент матрицы однозначно определяется указанием номера строки и номера столбца. Образом памяти компьютера в наших предыдущих рассуждениях был одномерный массив ячеек. Как происходит отображение логической структуры двумерного массива в физическую? Известны два способа: отображение строками и отображение столбцами. Двумерный массив на языке Турбо Паскаль определяется по-разному.
Примеры описания массивов:
Const MaxN=...; МaxМ=...;{*Максимальные значения количества строк и столбцов двумерного массива.*}
Type ОМуArray =Array[l..MaxM] Of integer;{*0дномерный массив из целых чисел.*}
TMyArray=Array[l..MaxN] Of ОМуArray;{*Одномерный массив, элементами которого являются одномерные массивы из целых чисел.*}
или
Type TMyArray=Array[l..MaxN,l..MaxM] Of Integer; {*Двумерный массив из целых чисел.*}
В учебнике отдается предпочтение второму способу описания двумерного массива.
Для работы с двумерными массивами изготовим шаблон. Он включает ввод данных из файла и вывод элементов двумерного массива в файл. Размеры двумерного массива вводятся из файла. Далее по тексту, если этого не требует задача, процедуры ввода и вывода двумерного массива не приводятся.
Отметим еще одну технологическую особенность работы, точнее напомним, ибо она уже рассматривалась. Экран должен быть разбит на три окна, которые одновременно обозримы. Изменение значений во входном файле (не забывайте его записывать) и запуск программы приводят к изменению выходного файла. Эти изменения видны без дополнительных операций по переходу от одного окна к другому. Текущим должен быть каталог с файлами программы, Input.Txt и Output.Txt. Названия входного и выходного файлов, естественно, могут быть другими. (Работа с окнами)
Возможно формирование массива с использованием датчика случайных чисел и путем ввода данных с клавиатуры, но мы не будем останавливаться на этом.
Примечание
Обычно значения размерности массива вводят с клавиатуры, а сам массив — из файла. «Разрыв» по данным. Процедура TInit полностью обеспечивает ввод массива — это законченный фрагмент логики с одной точкой входа и одной точкой выхода. Фрагмент работает с конкретными данными и взаимодействует с остальной логикой по определенным правилам. Разрыв не логичен как по управлению, так и по данным. Структуризация задачи должна осуществляться как по управлению, так и по данным, иначе какой же переход к объектно-ориентированному программированию? Если на уровне деклараций или формального ознакомления с конструкциями или инструкциями, то это не наш путь.