Объявление массива.


Лекция 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, … Рк - список имен входных данных;

ФП - файловая переменная (предназначена для организации связи программы с внешним файлом). При вводе с клавиатуры ФП не указывается.