- •Конспект лекций
- •1.4 Общая структура программы
- •1.5 Стандартные процедуры и функции
- •1.6 Процедуры ввода/вывода
- •2. Простые типы данных
- •2.1 Целые типы
- •2.2 Вещественные типы
- •2.3 Cимвольный тип данных
- •2.4 Логический тип данных.
- •2.5 Ограниченные типы
- •2.6 Перечислимые типы
- •2.7 Описание типов
- •2.8 Преобразование типов
- •2.9 Порядок вычисления выражений
- •3. Операторы языка Паскаль
- •3.1 Оператор присваивания
- •3.2 Составной оператор
- •3.3 Условный оператор
- •3.4 Оператор выбора case
- •3.5 Оператор цикла с параметром (цикл for)
- •3.6 Оператор цикла с предусловием (цикл while)
- •1 Вариант:
- •2 Вариант:
- •3 Вариант:
- •3.7 Оператор цикла с постусловием (цикл repeat)
- •3.8 Вложенные циклы
- •3.9 Оператор перехода goto
- •4. Массивы
- •4.2 Сортировка элементов массива
- •4.3 Многомерные массивы
- •5. Подпрограммы (процедуры и функции)
- •5.1 Процедуры
- •5.2 Функции
- •5.3 Области действия имен
- •5.4 Параметры процедур и функций
- •5.5 Побочные эффекты при использовании подпрограмм
- •5.6 Передача массивов в подпрограммы
- •5.7 Параметры-костанты
- •5.8 Массивы открытого типа
- •5.9 Рекурсия в подпрограммах
- •6. Строковый тип данных
- •6.1 Описание строк
- •6.2 Операции со строками
- •6.3 Процедуры и функции для работы со строками
- •7. Стандартные модули Турбо-Паскаля
- •7.1 Модули турбо3 и graph3
- •7.2 Модуль overlay
- •7.3 Модуль dos
- •7.4 Модуль system
- •7.5 Модуль printer
- •7.6 Модуль crt
- •7.7 Модуль graph
- •8. Записи
- •8.1 Определение записи
- •8.2 Оператор над записями
- •8.3 Вложенные записи
- •8.4 Массив записей
- •8.5 Записи с вариантами
- •9. Файлы
- •9.1 Определение файла
- •9.2 Процедуры и функции для работы с файлами
- •9.3 Нетипизированные файлы
- •10. Интегрированная среда Турбо Паскаля
- •10.1 Как начать работу с Турбо Паскалем
- •10.2 Ваша первая программа
8.5 Записи с вариантами
Кроме фиксированного списка полей, запись может содержать вариантную часть, определяющую несколько вариантов структуры записи. Различие может касаться количества полей и их типов.
Вариантная часть содержит несколько альтернатив, для каждой из которых в скобках указывается список полей, присущих данному варианту.
Например, в библиотечном каталоге хранятся не только книги, но и журналы. Кроме названия, для книг хранится автор, год издания и количество страниц, а для журналов – номер и год выпуска.
b.name:=’Введение в Паскаль’;
b.autor:=’Абрамов В.И.’;
b.year:=1980;
b.str:=253;
или
b.name:=’Мир ПК’;
b.nomer:=2;
b.god:=1998;
Вариантная часть может быть только одна и должна располагаться в конце записи. Она начинается со слова CASE, за которым следует переменная выбора варианта с указанием типа. Затем перечисляются варианты записи с указанием их полей.
В стандарте Паскаля перед тем, как использовать один из вариантов записи, переменной выбора варианта необходимо присвоить соответствующее значение. В Турбо-Паскале это делать необязательно (!).
case <переменная выбора>: тип of
вариант1: (поле1: тип;
поле2: тип;
…
полеN: тип);
вариант2: (поле1: тип;
поле2: тип;
…
полеK: тип);
Пример:
type izdanie = (book, magazine);
zap = record
name: string;
case tip: izdanie of
book: (autor: string;
year: integer;
str: integer);
magazine: (nomer: byte;
god: integer);
end;
var b: zap;
begin
if tip = book then writeln (b.name, b.autor, b.year, b.str)
else writeln (b.name, b.nomer, b.god);
end.
В запись с вариантами можно не вводить переменную выбора, перечислить только разные варианты.
type dostup = record
case integer of
1: (one_word: word);
2: (byte1: byte;
byte2: byte);
end;
9. Файлы
9.1 Определение файла
В Паскале файл относится к структурированным типам данных, как массив и запись. Файл представляет собой последовательность компонентов одного типа, расположенных на внешнем устройстве (например, магнитный диск). Тип компонентов файла может быть любым, кроме файлового. Количество компонентов в файле не оговаривается и ограничивается только объемом памяти на внешнем устройстве.
В Турбо-Паскале выделяют 3 типа файлов:
Текстовые файлы – используются для хранения текстовой информации в виде символов, объединенных в строки.
Описание: var <файловая переменная>: text;
Например, var f1: text;
Типизированные файлы – используются для хранения данных определенного типа.
Описание: var <файловая переменная>: file of <тип>;
Например, var f1: integer;
var f2: real;
var f3: ‘A’..’z’;
Нетипизированные файлы – используются для организации доступа к любым данным, независимо от их структуры (тип компонентов не указывается).
Описание: var <файловая переменная>: file;
Например, var f: file;