Для ввода с клавиатуры используются стандартные процедуры read и readln. Они могут вызываться как без параметров, так и со списком параметров. Параметры в списке перечисляются через запятую и должны быть переменными простого типа (кроме перечислимого типа и интервального типа, построенного на базе перечислимого), либо типа string. Процедура readln после ввода пропускает данные до конца текущей строки ввода.
Процедуры write, writeln, read, readln - единственные, для которых можно указывать список параметров произвольной длины.
Для ввода-вывода в текстовый файл используются те же процедуры, но в качестве первого параметра указывается файловая переменная:
writeln(f,'abc',1,True,2.4);
Перечень источников:
1. Алексеев А.Ю., Ивановский С.А., Куликов Д.В. Динамические структуры данных. Практикум по программированию/ ГЭТУ. СПб., 1997- 356с
2. Ефимова О.Е., Морозова В., Шафрин Ю. Информационные технологии.- М.: 1998. – 457с.
3. Опалева Э.А., Самойленко В.П. Технология программирования: Учеб.пособие/ГЭТУ. –С.-Пб., 1995- 567 с .
Тип лекции: текущая
План:
1. Определение массива.
2. Описание массивов.
3. Действия над массивами.
4. Двумерные массивы.
Простые типы данных позволяют использовать в программе одиночные объекты - числа, символы, строки и т.п. В Турбо Паскале могут использоваться также объекты, содержащие множество однотипных элементов. Это массивы -- формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое. К необходимости применения массивов мы приходим всякий раз, когда требуется связать и использовать целый ряд родственных величин. Например, результаты многократных замеров температуры воздуха в течение года удобно рассматривать как совокупность вещественных чисел, объединенных в один сложный объект -- массив измерений. При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов. Например:
а: array [1..10] of real;
b: array [0..50] of Char;
с: array [-3..4] of Boolean;
Как видим, при описании массива используются зарезервированные слова ARRAY и OF (массив, из). За словом ARRAY в квaдрaтныx скобкax указывается тип-диапазон, с помощью которого компилятор oпеределяет общее число элементов массива. Тип-диапазон задается левой и правой границами изменения индекса массива так что массив А состоит из 10 элементов, массив В - из 31, а массив C - из 8 элементов. За словом OF указывается тип элементов, образующих массив. Доступ к каждому элементу массива в программе осуществляется с помощью индекса - целого числа (точнее, выражения порядкового типа), служащего своеобразным именем элемента в массиве (если левая граница типа-диапазона равна 1, индекс элемента совпадает с его порядковым номером).
Все массивы, обрабатываемые в программе, должны быть обязательно описаны.
1 способ:
TYPE
<Имя типа>= ARRAY [<Тип индекса>] OF <Тип компонента>;
VAR
<Идентификатор>:<Имя типа>;
2 способ:
VAR
<Идентификатор>: ARRAY [<Границы изменения индекса>] OF <Тип компонента>;
ПРИМЕР:
TYPE
Klass=(k1,k2,k3,k4);
Znak=ARRAY [1..225] OF Char;
VAR
M1:Znak;
M2:ARRAY[1..60] OF Real;
M3:ARRAY [1..4] OF Klass;
M4:ARRAY[1..5,1..4] OF Integer;
Если в качестве базового типа взят другой массив, образуется структура, которую принято называть многомерным массивом.
TYPE
Vektor=ARRAY [1..4] OF Integer;
Massiv=ARRAY [1..4] OF Vektor;
VAR
Matr:Massiv;
Если в такой форме описания массива задан один индекс, массив называется одномерным. Если два индекса – двумерным, N- индексов - N- мерным.
Размерность массивов в настоящее время ограничена только объёмом оперативной памяти конкретной ЭВМ.
Для описания массива можно использовать предварительно определённые константы.
CONST
G1=4;
G2=6;
VAR
A:ARRAY [1..G1,1..G2] OF Real;
Элементы массива располагаются в памяти последовательно. Элементы с наименьшим значением индекса хранятся в более низких адресах памяти. Многомерные массивы располагаются таким образом, что самый правый индекс изменяется самым первым. Если
B:ARRAY [1..2,1..3] OF Real;
То, в памяти элементы массива будут размещены по возрастанию адресов
B[1,1] B[1,2] B[1,3] B[2,1] …
Матрица располагается в оперативной памяти по строкам.
Отличительной особенностью Паскаля является то, что для ввода и вывода массивов необходимо организовывать цикл.
Для ввода одномерного массива В из 20 элементов:
WRITELN (‘введи массив В (20)’);
FOR I:= 1 TO 20 DO READ (В[I]);
Для вывода того же массива в виде столбца с пояснительным текстом на экран:
WRITELN (‘ массив В (20)’);
FOR I:= 1 TO 20 DO WRITELN (‘B(‘, I, ‘) = ‘, B[I]: 6:2);
Если этот же массив нужно вывести на печать необходимо («подцепить» в команде USES раздел PRINTER):
WRITELN (LST, ‘массив В (20)’:8);
FOR I:= 1 TO DO WRITELN (LST, ‘B (‘ , I, ‘) =’ , B[I] : 10:2);
Для ввода матрицы М (5,6):
WRITELN (‘ введи матрицу М (5,6);
FOR I: = 1 TO 5 DO
FOR J= 1 TO 6 DO READ (M[I,J]);
Для вывода матрицы на экран, для просмотра в виде матрицы:
WRITELN (‘ матрица М (5,6) ‘: 15);
FOR I:= 1 TO 5 DO BEGIN WRITELN;
FOR J:= 1 TO 6 DO WRITE (M[I,J] :8 :2)
END;
Если нужно вывести эту же матрицу на печать:
WRITELN (LST, ‘ матрица М (5,6) ‘:15 );
FOR I:= 1 TO 5 DO BEGIN WRITELN (LST);
FOR J:= 1 TO 6 DO WRITE (LST, M[I,J] :8:2)
END;
Если в программе используется процедура или функция пользователя и возникает необходимость передать массив в это блок или из него, массивы работают как формальные и фактические параметры, приходится массивы описывать с использованием раздела описания типов.