Тема: Комбинированный тип данных. Цель:
Комбинированный тип данных – это структурированный тип, состоящий из фиксированного числа компонент разного типа. Комбинированный тип имеет ещё и другое название – запись.
Обычно запись содержит совокупность разнотипных атрибутов, относящихся к одному объекту. Например, данные об учащихся, которые получили оценки за тест. Анкета ФИООценка Такая структура называется двухуровневым деревом. В Паскале эта информация может храниться в одной переменной типа Record.
Type "имя записи" = Record "поле 1" : "тип 1"; "поле 2" : "тип 2";... "поле n" : "тип n" End; Описание записи
Type Anketa=Record FIO:String; Ochenka: 1..5; End;
К каждому элементу записи можно обратиться, используя составное имя, которое имеет следующую структуру:. sr.Ochenka sr.Ochenka:=4;
Поля записи могут иметь любой тип, в частности сами могут быть записями. Такая возможность используется в том случае, когда требуется представить многоуровневое дерево. Анкета ФИООценка Дата рождения Год Месяц День
Описание записи Type Anketa=Record FIO:String; Dat: Record God: integer; Mes: string; Den: End; Ochenka: 1..5; End; sr.Dat.Den:=20; Обращение
For i: = 1 To 25 Do Begin Readln(klass[i].fam); Readln(klass[i].b1); Readln(klass[i].b2); Readln(klass[i].b3); Readln(klass[i].b4); Readln(klass[i].b5); End; Доступ к полям записи
Любая обработка записей, в том числе ввод и вывод, производится поэлементно. for i:=1 to 5 do with sr[i] do begin write('фамилия: '); readln(FIO); write('оценка за тест: '); readln(Ochenka); end; В этом примере использован оператор присоединения, который имеет следующий вид. With do ;
program tt; Type Anketa=Record FIO:String; Ochenka: 1..5; End; Var sr:array [1..5] of Anketa; i:integer; begin for i:=1 to 5 do with sr[i] do begin write('фамилия: '); readln(FIO); write('оценка за тест: '); readln(Ochenka); end; for i:=1 to 5 do if sr[i].Ochenka=2 then writeln( sr[i].FIO); end.