В этот рах предлагаю Вам разобраться, что эе такое записи в языке турбо-Паскаль, а так же не много расскажу о моём отпуске в Таиланде.
Под записью понимается структура данных, объединяющая под одним именем данные различных типов. Запись состоит из фиксированного числа элементов, называемых полями. Поле – это переменная определенного типа. Различные поля могут быть разных типов. При описании типа-записи после зарезервированного слова record следует перечислить все поля с указанием их типов. Заканчивается описание записи словом end.
Например:
1 2 3 4 5 6 7 8 |
type Person=record FIO : string[40]; Year : word; Adress: string[40]; end; |
В данном случае тип-запись Person предназначен для хранения сведений о некотором человеке – его фамилии, имени, отчества, года рождения и адреса.
Доступ к конкретному полю записи осуществляется по имени переменной и имени поля, записанноым через точку:
1 2 3 4 5 6 7 8 |
var person1, person2 : Person; . . . person1.Year:=1983; person2.Year:=person1.Year; . . . |
Для того, чтобы не писать каждый раз имя записи при обращении к ее полям, можно использовать оператор над записями WITH. Его структура выглядит следующим образом:
1 2 3 4 |
WITH <em>имя_записи </em>DO <em> оператор</em> |
где WITH, DO – зарезервированные слова;
оператор — любой оператор языка Турбо-Паскаль.
В этом случае внутри оператора можно указывать только поле записи. Например:
1 2 3 4 5 6 7 8 |
with person1 do begin FIO:='Петров Алексей Леонидович'; Year:=1984; Adress:='г.Томск, пр. Ленина, 1-43'; end; |
Рассмотрим пример работы с записями. В некотором файле tovar.dat в виде записей содержится информация о товарах: наименование, цена, единица измерения, количество проданного товара за текущий день. Нужно написать программу, определяющую общую сумму выручки за день.
Пример 23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
uses Crt; type Tovar = record Name : string[20]; Price : real; Measure : string[5]; Amount : word; end; TovarFile = file of Tovar; var t:Tovar; f:TovarFile; S:real; BEGIN S:=0; Assign(f,’tovar.dat’); Reset(f); while not Eof(f) do begin read(f,t); {чтение из файла очередной записи} with t do S:=S+Price*Amount; {накопление суммы} end; Close(f); ClrScr; Writeln('Сумма продаж за день составила ',S:8:2,' руб'); Readln; END. |