Полями, с указанием идентификаторов полей и типа каждого поля. Формат: type




Скачать 43.17 Kb.
Дата 07.10.2016
Размер 43.17 Kb.
ЗАПИСИ

Компьютеры широко используются в различных, информационно-поисковых системах (адресное бюро, телефонная справочная служба, и т.п.). В реальных ин­формационных системах приходится обрабатывать и хранить большие объемы дан­ных.

Иногда для решения задач, в которых возникает необходимость хранить и об­рабатывать совокупности данных различного типа, используются отдельные масси­вы для каждого типа данных, а для установления соответствия между ними вводят­ся соответствующие индексы.

Итак, реальные данные об объектах часто описываются величинами разных ти­пов. Например, товар на складе описывается следующими величинами: наименова­ние, количество, цена, наличие сертификата качества и т. д. В этом примере наиме­нование — величина типа string, количество — integer, цена — real, наличие серти­фиката качества можно описать величиной типа boolean. Для записи комбинации объектов разных типов в Паскале применяется комбинированный тип данных — запись.

Запись представляет собой наиболее общий и гибкий структурированный тип данных, так как она может быть образована из неоднотипных компонентов и в ней явным образом выражена связь между элементами данных, характеризующими ре­альный объект.
ОПИСАНИЕ ТИПА ЗАПИСЬ

Запись — это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начи­нается идентификатором record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля.

Формат:

type

<�имя типа> = record

<�идентификатор поля>:<�тип компонента>;



<�идентификатор поля>:<�тип компонента>



end;

var

<�идентификатор, ... > : <�имя типа>;
Пример:

Type

Car = record

Number : integer; {Номер}

Marka : string[20]; {Марка автомобиля}

FIO : string[40]; {Фамилия, инициалы владельца}

Address: string[60] {Адрес владельца}

end;

var

M, V : Car;

В данном примере запись Car содержит четыре компонента: номер, название марки машины, фамилию владельца и его адрес. Доступ к полям записи осуществ­ляется через переменную типа "запись". В нашем случае это переменные М и V типа Саг.

Идентификатор поля должен быть уникален только в пределах записи, однако во избежание ошибок лучше делать его уникальным в пределах всей программы. Объем памяти, необходимый для записи, складывается из длин полей.

Значения полей записи могут быть использованы в выражениях. Имена отдель­ных полей не применяются по аналогии с идентификаторами переменных, посколь­ку может быть несколько записей одинакового типа. Обращение к значению поля осуществляется с помощью идентификатора переменной и идентификатора поля, разделенных точкой. Такая комбинация называется составным именем. Напри­мер, чтобы получить доступ к полям записи Саг, надо записать:



М.Number, M.Marka, M.FIO, M.Address

Составное имя можно использовать везде, где допустимо применение типа поля. Для присваивания полям значений используется оператор присваивания.



Пример:

М.Number := 1678;

M.Marka:=’ГАЗ -24’;

M.FIO:='Демьяшкин В.А.';

М.Address:='ул.Пушкина 12 — 31';

Составные имена можно использовать, в частности, в операторах ввода-выво­да:



Read(M.Number, M.Marka, M.FIO, M.Address);

Write(M.Number:4, M.Marka:?, M.FIO: 12, M.Address:25) ;

Допускается применение оператора присваивания и к записям в целом, если они имеют один и тот же тип. Например,



V := М;

После выполнения этого оператора значения полей записи V станут равны зна­чениям соответствующих полей записи М.

В ряде задач удобно пользоваться массивами из записей. Их можно описать следующим образом:

type

Person = record

FIO : string[20];

Age : 1..99;

Prof : string[30]

end;

var

List: array[1..50] of Person;

Обращение к полям записи имеет несколько громоздкий вид, что особенно не­удобно при использовании мнемонических идентификаторов длиной более пяти символов. Дня решения этой проблемы в языке Паскаль предназначен оператор with, который имеет следующий формат:


with <�переменная типа запись> do <�оператор>;
Один раз указав переменную типа запись в операторе with, можно работать с именами полей как с обычными переменными, т. е. без указания перед идентифи­катором поля имени переменной, определяющей запись.

Пример:


Присвоить значения полям записи Саг с помощью оператора with.

with M do begin

Number:= 2347;

Marka:=’ГАЗ – 24’;

FIO:= 'Петров В.И.';

Address:='ул.Остужева,5'

end;

задача №1: Опишите запись Car, содержащую поля с номером автомобиля, его маркой, именем владельца и адресом владельца. Сформируйте массив из 5 элементов типа Car. Выведите на дисплей информацию по одному из пяти автомобилей.

Uses Crt;

Type car=record

number : integer;

marka: string[20];

fio: string[40];

adres: string[60]

end;

Var garag: array[1..5] of car;

i,n: integer;

Begin

ClrScr;

for i:=1 to 5 do

begin

clrscr;

writeln('Введите данные о ',i,'-й машине:');

with garag[i] do

begin

write('номер: '); readln(number);

write('марка: '); readln(marka);

write('фио владельца: '); readln(fio);

write('адресс владельца: '); readln(adres);

end;

end;

clrscr;

writeln('Ввод окончен! ');

readln;

clrscr;

write('Данные по какой машине вывести (1..5): '); readln(n);

clrscr;

writeln(' Данные по ',n,'-й машине: ');

with garag[n] do

begin

writeln(' номер: ',number);

writeln(' марка: ',marka);

writeln(' фио владельца: ',fio);

writeln('адресс владельца: ',adres);

end;

readln

End.


База данных защищена авторским правом ©infoeto.ru 2022
обратиться к администрации
Как написать курсовую работу | Как написать хороший реферат
    Главная страница