Объявление массива.
Лекция 14
END.
Begin
Var
A,B,X,Y : Extended;
Read(A,B,X);
Y:= A*X + B;
Writeln(' A=',A,' B=',B,' X=',X);
Writeln(' Y=',Y);
В данном случае после заголовка программы записан комментарий (так как текст заключен в фигурные скобки). Далее указан раздел переменных (начинается с ключевого слова Var). В разделе операторов сначала осуществляется обращение к процедуре ввода входных данных, затем вычисляется значение У и с помощью процедуры Writeln осуществляется вывод исходных данных и результата на экран.
4.6.9. Данные типа массив.
До сих пор мы рассматривали простые типы данных. Значением любого из этих типов является отдельное данное (тривиальная структура). Кроме простых типов в ТР имеются еще и производные типы. Каждое значение производного типа представляет собой нетривиальную структуру, то есть это значение имеет более чем одну компоненту. Типичным представителем производных типов является массив.
Массив - это упорядоченный набор фиксированного количества некоторых значений одного типа В ТР отдельный элемент массива обозначается индексированной переменной вида:
имя массива [индекс,индекс,….]
в качестве индекса можно использовать константы, переменные и выражения порядкового типа. Пример A[12], A[K], A[N + 1], B[K, 3].
При объявлении массива необходимо указать тип элементов массива и тип индекса. Элементы массива могут быть всех тех типов которые мы рассматривали (Real, Char, Integer, …).
Наиболее часто в качестве типа индекса используется тип диапазон.
Данные типа массив можно объявить двумя способами:
- объявить массив сразу в разделе описания переменных;
- в разделе типов объявить идентификатор типа, а затем использовать его для описания массива в разделе переменных.
Обычно при описании структурных переменных используется второй способ.
Форма объявления в этом случае имеет вид:
Type идт = Array [диапазон] Of тип элементов массива;
Var список Имен массивов : идт ; .
Здесь идт - идентификатор типа; Array(массив) и Of(из) – зарезервированные слова
Пример.
Type Rm1 = Array [ 1 . . 50 ] Of Integer;
Rm2 = Array [1 . . 80, 1 . . 5 ] Of Extended;
Var Msa, Fm : Rm1;
Rez : Rm2;
Массив можно объявить сразу в разделе переменных, но такой массив нельзя будет передавать через список параметров подпрограмм.
Пример: Var Msa, Fm : Array [ 1 . . 50 ] Of Integer;
4.7. Ввод и вывод данных.
4.7.1. Ввод данных.
В ТР имеется две возможности для ввода значений данных в память:
- ввод с клавиатуры;
- ввод из внешнего файла.
Ввод с клавиатуры.
В этом случае значения вводимых данных набираются на клавиатуре и сначала заносятся в стандартный входной файл Input. Слово "стандартный" означает, что этот файл определен в компиляторе ТР и программисту нет необходимости беспокоится о его создании и описании. Значения вводимых данных одновременно с занесением в файл Input отображаются на экране монитора. Для занесения значений данных в ОЗУ необходимо нажать клавишу Enter. До тех пор пока клавиша Enter не нажата значения данных можно редактировать.
Достоинством этого способа ввода является простота организации ввода - в программе надо просто указать обращение к процедуре ввода данных.
Недостатки:
- если входных данных много, то слишком утомительно вводить их каждый раз вручную (обычно при многократном решении задачи изменяется мало данных из набора входных данных);
- легко сделать ошибку в отдельном значении (выполнение программы придется повторить);
Ввод из внешнего файла.
Слово "внешний" означает, что этот файл не связан с компилятором ТР и хранится он как самостоятельный файл (с расширением txt) - его можно редактировать в любом текстовом редакторе.
Когда надо ввести значения данных программа обращается к внешнему файлу и автоматически считывает из него значения данных.
Достоинства:
- ввод значений входных данных осуществляется автоматически;
- не требуется каждый раз набирать на клавиатуре весь набор входных данных, достаточно во входном файле заменить значения только изменяемых данных;
- очень удобно проводить отладку программы, так как обычно в процессе отладки надо многократно выполнять программу для одного набора данных.
Недостаток: в программе необходимо предусмотреть средства для связи программы с внешним файлом, операции открытия и закрытия этого файла. Процедуры ввода данных в ТР.
В ТР ввод значений данных осуществляется с помощью процедур:
Read( ФП, Р1, Р2, … Рк);
Readln( ФП, Р1, Р2, … Рк);
где Р1, Р2, … Рк - список имен входных данных;
ФП - файловая переменная (предназначена для организации связи программы с внешним файлом). При вводе с клавиатуры ФП не указывается.