КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Массивы записей
End. Begin Операции над записями With s.data_rogd do begin End Begin With R do Доступ к компонентам записи Type Type <имя типа> = record <имя типа 1>:<тип>; <имя типа 2>:<тип>; <имя типа 3>:<тип>; … <имя типа n>:<тип>; end; Записи находят широкое применение при обработке табличной информации. В качестве примера рассмотрим представление таблице в виде записи на языке Паскаль.
data=record { вложенная запись дата } day:1..31; month:1..12; year:integer; end; person=record { запись о персоне } family:string[15]; name:string[15]; data_rogd:data; end; var s: person; { s – хранит одну строку (запись) таблицы! } К каждому компоненту записи можно обратиться, используя имя переменной комбинированного типа (!, а не имя типа) и имя поля, разделенные точкой. Такие имена называются составными именами. s.family:= ’Иванов’ Точку в составном имени иногда называют оператором доступа. Поле с именем data_rogd – это тоже запись, состоящая из трёх полей. Поэтому доступ к полям внутри поля data_rogd осуществляется добавлением еще одной точки в составном имени. s.data_rogd.day:=15; s.data_rogd.month:=4; s.data_rogd.year:=1978; Приведенные операторы присваивания можно записать короче, если использовать оператор присоединения < опертаоры > Где R – переменная типа. day:15; month:=4; year:1978; end; В общем случае оператор присоединения выглядит так: With R1, R2,…,Rn do < оператор > Что полностью эквивалентно With R1 with R2,R3…,Rn do < оператор > Если две переменные из списка комбинированных переменных оператора присоединения имеют поля, обозначаемые одним и тем же идентификатором, то внутри оператора присоединения этот идентификатор обозначает поле той переменной, которая указана в списке позже.
var r1:record a,b,c:integer end; r2:record a,d:integer end; with r1,r2 do begin a:=1; b:=1; c:=3; end; Эквивалентно: begin r2.a:=1; r1.b:=2; r1.c:=3 end; 1. Над компонентами записи можно выполнять любые операции, которые допустимы для типов, к которым относятся эти компоненты. 2. Для записи в виде целостного объекта определена единственная операция – присваивание, т.е. переменной типа запись можно присвоить значение другой переменной. Пример: var s1,s2:person; … s1:=s2; … В практических задачах часто используются как составные части других типов: массивов, списков, деревьев. Рассмотрим массив tabl, элементами которого являются записи person Var tabl:array[1..30] of person; { tabl – хранит 30 записей!} При обращении к полям записей, которые являются элементами массива, применяются две операции: индексирования массива (<>) и доступа к элементу(.). Порядок следования указанных операций следующий <имя массива записей>[<индекс элемента массива>].<имя поля> Например Tabl[1].family:’Иванов’ Если операция индексирования будет применятся к массиву, которые является компонентом самой записи то получим конструкцию. <имя переменной типа запись>.<имя поля>[<индекс элемента массива>] Например: s.family[4]:=’m’; Требуется написать программу, которая подсчитывает средний балл для каждого студента группы И-11. Program average; const n=30; type vedomost = record { экзаменац. ведомость } fio:string[15]; p1,p2,p3,p4: 1..5; { оценки по 4-м предметам } sb:real end; var i:integer; gruppa_i11:array[1..n] of vedomost;
Дата добавления: 2014-01-07; Просмотров: 353; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |