Лекция №13. Комбинированные типы - записи

При работе с массивами основное ограничение заключается в том, что все элементы массива должны быть одного типа. Иногда для решения задач необходимо хранить и обрабатывать данные различного типа. Для таких данных применяется комбинированный тип данных – записи.

Запись – это структура данных, состоящая из фиксированного количества компонентов, называемых полями записи. В отличие от массива, компоненты (поля) могут быть разного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.

Записи объявляются следующим способом:

1. Сначала объявляется тип записи:

Type

ИмяТипа = record

ИмяПоля1:ТипПоля1;

ИмяПоля2: ТипПоля2;

. . .

end;

2. Затем объявляются переменные соответствующего типа:

Var

ИмяПеременной: ИмяТипа;

Например:

Type

Avto = record

Number: integer; {номер автомобиля}

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

Fio: string[40]; {фамилия владельца}

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

End;

Var

m,v: avto;

Type

Birthday = record

Day, Month: byte; {день и месяц рождения}

Year: word; {год рождения}

End;

Var

a,b: BirthDay;

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

M.number, m.marka, m.fio, m.address

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

m.number:= 1234;

m.marka:= 'Audi – 200';

m.fio:= 'Иванов В.В.';

m.address:= 'ул. Гагарина, 25, кв. 47';

a.day:= 25;

b.year:= 2012;

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

readln(m.number, m.marka, m.fio, m.address);

write(m.number:4, m.marka:10, m.fio:13, m.address:23);

Нельзя использовать в операторах ввода/вывода запись целиком.

Как и в массиве, значения переменных типа записи можно присваивать другим переменным того же типа, например:

a:= b;

v:= m;

После выполнения этого оператора значения полей записей vи aстанут равными значениям соответствующих полей записейmи b.

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

Type

Person = record

Fio: string[20];

Age: 1..99;

Prof: string[30];

End;

Var

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

Чтобы упростить доступ к полям записи, используется оператор присоединения with:

With <переменная> do <оператор>;

Здесь With, do - зарезервированные слова, <переменная> – имя переменной типа запись, за которым следует список вложенных полей, <оператор> – любой оператор ТР. Один раз указав переменную типа запись в операторе with, можно работать с именами полей как с обычными переменными.

Например:

With m do

Begin

number:= 1234;

marka:= 'Audi – 200';

fio:= 'Иванов В.В.';

address:= 'ул. Гагарина, 25, кв. 47';

end;

Лекция №14. Методы структурного программирования. Процедуры и функции как средства структурного программирования

Процедуры пользователя

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

Такие разработанные программистом самостоятельные блоки называются подпрограммами пользователя. Они являются основой модульного программирования. Использование подпрограмм позволяет сосредоточить в них подробное описание некоторых операций. В основной же программе указываются только имена этих подпрограмм, чтобы выполнить эти операции. Такие вызовы подпрограммы возможны неоднократно из разных участков основной программы.

Достоинства подпрограмм:

­ Программы, в которых используются подпрограммы, легче отлаживать и тестировать;

­ Независимость подпрограмм позволяет содержать отдельный алгоритм, поэтому, при изменении его меняется только подпрограмма;

­ Составление подпрограмм можно поручать другим программистам. Так осуществляется разделение работы по программированию;

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

В ТР подпрограммы реализованы посредством процедурифункций.Все процедуры и функции подразделяются на встроенныеи определенные пользователем. Встроенныепроцедуры и функции являются частью языка ТР. Процедуры и функции пользователя пишутся программистом.



Наши рекомендации