Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания по PascalABC.doc
Скачиваний:
2
Добавлен:
30.08.2019
Размер:
344.06 Кб
Скачать

Описание типов

Раздел описания типов начинается со служебного слова type, после которого следуют строки вида

имя типа = тип;

Например,

type

myint = integer;

arr10 = array [1..10] of integer;

pinteger = ^integer;

A = class

i: integer;

constructor Create(ii: integer);

begin

i:=ii;

end;

end;

При описании рекурсивных структур данных указатель на тип может фигурировать раньше описания самого типа в определении другого типа:

type

PNode = ^TNode;

TNode = record

data: integer;

next: PNode;

end;

При этом важно, чтобы определения обоих типов находились в одном разделе type.

Следующее описание, однако, ошибочно:

type

TNode = record

data: integer;

next: ^TNode;

end;

(сообщение об ошибке: "Тип TNode полностью не определен").

Ввод и вывод. Форматы вывода

Для вывода в окно вывода используются стандартные процедуры write и writeln. Они могут вызываться как без параметров, так и со списком параметров. Параметры в списке перечисляются через запятую и должны иметь простой тип (кроме перечислимого типа и интервального типа, построенного на базе перечислимого), либо тип string, либо тип указателя. Процедура writeln после вывода своих параметров осуществляет переход на следующую строку.

В процедурах вывода write и writeln после каждого выводимого значения типа может указываться формат вывода, представляющий собой двоеточие, после которого следует целое число или выражение. Это число или выражение задает ширину поля вывода, то есть количество позиций, отводимых под выводимое значение. Если длина выводимого значения меньше ширины поля вывода, то выводимый текст дополняется слева пробелами до нужной ширины; в результате выводимое значение выравнивается по правому краю. Если длина выводимого значения больше ширины поля вывода, то формат вывода игнорируется. Вещественные и комплексные значения с форматом вывода вида :m всегда выводятся в экспоненциальной форме.

Например, если a, b - целые переменные, то при выполнении операторов

a:=-2437; b:=13555;

writeln(a:6,'Привет!':9);

writeln(b:1);

в окно вывода будет выведен следующий текст:

-2437 Привет!

13555

Для вещественных и комплексных значений можно также использовать формат :m:n, где m и n - целые значения. Значение m задает ширину поля вывода, а значение n количество знаков после десятичной точки. Например:

writeln(-14.859:10:3); // ___-14.859

writeln(-14.859:10:5); // _-14.85900

writeln(-14.859:10:2); // ____-14.86

writeln(-14.859:10:0); // _______-15

writeln(-14.859:10:7); // -14.8590000

writeln((0,1):10:1); // _(0.0,1.0)

(здесь символом _ изображены пробелы).

Для ввода с клавиатуры используются стандартные процедуры read и readln. Они могут вызываться как без параметров, так и со списком параметров. Параметры в списке перечисляются через запятую и должны быть переменными простого типа (кроме перечислимого типа и интервального типа, построенного на базе перечислимого), либо типа string. Процедура readln после ввода пропускает данные до конца текущей строки ввода.

Процедуры write, writeln, read, readln - единственные, для которых можно указывать список параметров произвольной длины.

Для ввода-вывода в текстовый файл используются те же процедуры, но в качестве первого параметра указывается файловая переменная:

writeln(f,'abc',1,True,2.4);