
- •Переменные
- •Типы переменных и констант
- •Целые типы данных языка Turbo Pascal
- •Стандартные математические функции, используемые
- •Арифметические выражения
- •Операторы
- •Оператор присваивания
- •Ввод и вывод результатов вычислений
- •Общая структура программы на Turbo Pascal
- •Пример выполнения задания 1
- •Тема 2 Логические выражения Условный оператор
- •Условный оператор
- •Пример выполнения задания 2
- •Тема 3 Использование циклических структур. Операторы цикла с предусловием и с постусловием
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Пример выполнения задания 3
- •Тема 4 Использование циклических структур. Оператор цикла с параметром
- •Пример выполнения задания 4
- •Тема 5 Использование и обработка одномерного массива
- •Описание одномерного массива
- •Часто встречающиеся задачи на одномерный массив
- •Пример выполнения задания 5
- •Тема 6 Использование и обработка двумерного массива
- •Задачи с использованием главной или побочной диагонали матрицы
- •Пример выполнения задания 6
- •Тема 7 Организация программ с использованием функций
- •Пример выполнения задания 7
- •Тема 8 Организация программ с использованием процедур
- •Параметры
- •Пример выполнения задания 8
- •Тема 9 Текстовые файлы
- •Символьный тип данных
- •Операции над строками
- •Особенности работы со строками
- •Редактирование строк
- •Сору (s:string; start, len:integer):string;
- •Преобразование строк
- •Процедуры и функции для работы с текстовыми файлами
- •Примеры выполнения задания 9
- •Тема 10
- •Работа с комбинированными типами данных
- •(Записями)
- •Общие сведения
- •Особенности работы с записями
- •Пример выполнения задания 10
- •Тема 11 Типизированные файлы
- •Процедуры и функции для работы с типизированными файлами
- •Прямой доступ к элементам файла
- •Примеры выполнения задания 11
Особенности работы с записями
1. Обращение к записи в целом возможно только в операторе присваивания, где слева и справа от знака присваивания используются имена записей одинакового типа, например: b := a;
Естественно, что до выполнения этого оператора значения всех полей переменной – записи a должны быть определены. Во всех прочих случаях оперируют отдельными полями записи.
2. Реализуется прямой доступ к любому полю записи. Чтобы обратиться к отдельному полю записи, необходимо задать имя переменной типа запись и через точку указать имя нужного поля, например:
a. re := 1.54; a. im := – 2.45;
Такое имя называется составным.
Поскольку обращение к каждому полю записи идет по его имени, то при определении типа запись порядок указания ее полей не играет роли и может быть произвольным.
3. Допускается любая степень вложенности одной записи в другую. Любое поле записи может быть само записью, например:
type stud = record
name : string[15];
data: record
day : 1 .. 31:
month : 1 .. 12;
year : integer
end;
sex : ( m, w )
end;
var cc : stud;
Значения переменной сс можно задать, определив значения всех полей, например, следующим образом:
cc. name := 'Миронов А. В. ';
cc. data. day := 15;
cc. data. month := 11;
cc. data. year := 1989;
cc. sex := m;
4. Для упрощения работы с записями используется оператор присоединения with . Он позволяет заменить составные имена, характеризующие каждое поле, просто именами полей, а имена записи определить в операторе присоединения:
with M do S;
гдеМ – имя записи,
S – оператор, простой или составной.
Оператор S представляет собой область действия оператора присоединения, в пределах которой можно не использовать составные имена.
Иначе говоря, оператор присоединения позволяет работать с полями записи, как с простыми переменными.
Без оператора присоединения: |
С оператором присоединения |
Пример 1 |
|
a.re := 1.54; a.im := 2.45
|
with a do begin re := 1.54; im := 2.45 end; |
Пример 2 |
|
data.day := 15; data.month := 12; data.year:=1989
|
with data do begin day := 15; month := 12; year:=1989 end; |
5. Допускается использование записей в качестве компонент других сложных типов, например, массивов. Массив комплексных чисел можно задать так:
var mascomp : array [1 .. 10] of comp;
Оператор присваивания нового значения полю re во второй записи массива имеет вид:
mascomp [2] .re := 1.54.
При вводе элементов массива из записей с клавиатуры обычно используют оператор присоединения:
write(‘Введи комплексное число’);
for i := 1 to 10 do
with mascomp[i] do
begin writeln (‘действительная часть: ’);
readln(re);
write(‘мнимая часть: ’);
readln(im)
end;