Синтаксис объявления записи:
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) <указатель на структуру>à <имя поля>
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.