Информатика -продвинутый курс




СТРУКТУРЫ ДАННЫХ - часть 10


С компонентами записи можно обращаться как с переменными соответствующего типа. Обращение к компонентам записи осуществляется с помощью указания имени поля через точку. Пусть, например, переменная х имеет тип address, т.е. в программе имеется описание var x: address. Тогда допустимы следующие присваивания:

x.haus := 52; х.street:='пр.Мира'; x.city:= 'Красноярск';

x.flat:= 135; x.index :='б60049'

Проиллюстрируем работу с записями на задаче, в которой требуется найти сумму и произведение двух комплексных чисел:

zl=al+i*blиz2=a2+i*b2.

Программа 16

program cornpl;

type compi = record

re : real;

im : real

end;

var zl,z2,s,p : compl;

begin

writeln('компл.число a+i*b вводите

двумя числами

а и

Ь: 'it-write('введи 1 число: '); readln(zl.re,zl.im);

write('введи 2 число: '); readin(z2.re,z2.im);

s.re := zl.re + z2.re;

s.im := zl.re + z2.im;

p.re := zl.re * z2.re - zl.im * z2.im;

p.im := zl.re * z2.im + z2.re * zl.im;

writeln('s=',s.re:4:2,' + i *',s.im:4:2);

write('p=',p.re:4:2,' + i *',p.im:4:2)

end.

Громоздкость обозначений в программе компенсируется большей наглядностью алгоритма за счет структуризации данных. Во многих случаях, если требуется производить операции с полями фиксированной записи, можно для сокращения обозначений использовать оператор присоединения with. Его структура такова:

with <имя записи> do <оператор>;

В этом случае в операторе, написанном после служебного слова do, имена полей указанной записи описываются без имени записи и точки. Например, печать суммы s в предыдущем примере можно организовать с использованием оператора with так:

with s do writeln('s=',re:4:2,'+i*',im:4:2);

В операторах присваивания разрешается использовать не только имена полей, но и имена записей.

Тип поля может быть записью.

Например:

man = record

fio:record

fam, im, otch : string[10];

end;

data : record

day: 1..31;

mes:1..12;

god:integer

end;

pol: char;

telef: record

dom,rab : string[10];




Содержание  Назад  Вперед