В этот рах предлагаю Вам разобраться, что эе такое записи в языке турбо-Паскаль, а так же не много расскажу о моём отпуске в Таиланде.
Под записью понимается структура данных, объединяющая под одним именем данные различных типов. Запись состоит из фиксированного числа элементов, называемых полями. Поле – это переменная определенного типа. Различные поля могут быть разных типов. При описании типа-записи после зарезервированного слова record следует перечислить все поля с указанием их типов. Заканчивается описание записи словом end.
Например:
type
Person=record
FIO : string[40];
Year : word;
Adress: string[40];
end;
В данном случае тип-запись Person предназначен для хранения сведений о некотором человеке – его фамилии, имени, отчества, года рождения и адреса.
Доступ к конкретному полю записи осуществляется по имени переменной и имени поля, записанноым через точку:
var
person1, person2 : Person;
. . .
person1.Year:=1983;
person2.Year:=person1.Year;
. . .
Для того, чтобы не писать каждый раз имя записи при обращении к ее полям, можно использовать оператор над записями WITH. Его структура выглядит следующим образом:
WITH имя_записи DO
оператор
где WITH, DO – зарезервированные слова;
оператор — любой оператор языка Турбо-Паскаль.
В этом случае внутри оператора можно указывать только поле записи. Например:
with person1 do
begin
FIO:='Петров Алексей Леонидович';
Year:=1984;
Adress:='г.Томск, пр. Ленина, 1-43';
end;
Рассмотрим пример работы с записями. В некотором файле tovar.dat в виде записей содержится информация о товарах: наименование, цена, единица измерения, количество проданного товара за текущий день. Нужно написать программу, определяющую общую сумму выручки за день.
Пример 23
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.


Комментарии
Комментариев пока нет - будьте первым.