Этапы разработки программы. Разработка или выбор алгоритма решения поставленной задачи. Оформление документации на программу, страница 14

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

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

<фиксированная часть полей>

[<вариантная часть полей>;]end;

var  <имя переменной>:<имя типа записи>;

Фиксированные записи.

Фиксированная запись – тип данных, состоящий из фиксированного числа логически связанных полей, возможно, различного типа.

Синтаксис фиксированной части:

<Фиксированная часть списка полей>::=

<имя поля 1>:<имя типа1>;

<имя поля n>:<имя типа n>;

Пример: type stud = record

name : string[30];

gr : string[7];

age : integer;

oc : array [1..4] of integer;

end;   

var st : stud;

Доступ к элементу записи организуется с помощью уточненного имени.

<имя переменной типа запись>.<имя поля>

st.gr := ‘САПР – 91’;

При неоднократном обращении к одному и тому же полю записи или к нескольким полям одной и той же записи удобно пользоваться оператором при соединения:

Синтаксис: with <имя переменной>do<оператор>;

Пример: with st do

begin

gr := ‘САПР 91’;     

kol ex := 4      

end;

Замечание: Оператор присоединения позволяет использовать вместо составных имен – имена полей, при этом имя записи вносится в заголовок оператора присоединения. Программа получается компактнее, а транслятор при использовании оператора with подготавливает ссылку на запись один раз, что увеличивает быстродействие программы.

В языке PASCAL нет какого – либо ограничения на типы полей записи. Они могут быть описаны непосредственно на своем уровне, или ранее как собственный тип.

Пример:

type pr = record

fio : string[30]

kaf : string[20];

end;

type univ = record

kol st : integer;

st : array[1..2000] of  stud;

kol prep : integer;

prep : array[1..800] of  pr;

end;

var un : univ;

Доступ: un.rector.fio := ‘Евстигнеев’;

Вариантные записи

Вариантные записи позволяют сохранять структуры данных, которые имеют общую часть, одинаковую во всех структурах, и небольшие отличающиеся части в различных структурах. Общая часть описывается как фиксированная, а отличающиеся части оформляются в вариантную часть.

Синтаксис вариантной части:

Case<имя селектора варианта>:<тип селектора> of

<значение 1> : (<список полей>);  

…………………..

<значение n> : (<список полей>);

Пример:  type person = record

name,adres : string[20];                    

case hobby : (computer, music) of  

computer : (type c : string[20];);      

music : (Instrum : array[1..3] of string[10];)        

end;

Поле hobby определяет хобби человека и может иметь разную структуру в зависимости от его интересов. Так, для человека увлекшимся компьютером структура hobby имеет поле: тип компьютера, если же человек увлекся музыкой, то в массиве строк перечисляются инструменты, на которых он играет.

Замечание: В памяти компьютера под записи с вариантами всегда отводится максимально необходимое число ячеек (т.е. из расчета на вариант с самыми большими полями). В примере объем требуемой под запись памяти будет определятся по варианту music.

12.2.2 Структуры и объединения языка C.

Структура – это пользовательский тип данных, элементы которого могут иметь различный тип.

Синтаксис объявления:

1)  struct[<идентификатор типа>]

{<список полей>}<идентификатор>[ ,<идентификатор>]

2)  struct<идентификатор типа> <идентификатор>[ ,<идентификатор>]

Во втором случае <идентификатор типа> ссылается на структурный тип, объявленный в другом месте программы.<Список полей> - список одного или более объявлений переменных являющихся элементами структуры.

Пример:

1) struct stud

{

char name[30];

char gr[7];

int age;

int oc[4];

}st.

2) stud st;

Замечание: В Си++ не обязательно указывать ключевое слово struct.

Доступ к элементу структуры организуется с помощью уточненного имени.

1)  <имя объекта (переменная типа структура)>.<идентификатор поля структуры>

2)  <указатель на структуру>à <имя поля>