- •14)Оператор выбора case of
- •11) Структурный тип строка, как специальная форма массива
- •10)Структурный тип строка, основы обработки строк
- •7)Функции: описания и вызовы функций.
- •8)Процедуры: описание и вызовы процедур.
- •6)Особенности использования параметров в процедурах и функциях.
- •25)Общая конструкция языка Паскаль.
- •24)Алфавит языка, ключевые слова, идентификаторы.
- •23)Структура программы.
- •22)Стандартные типы данных, операции, выражения.
- •21)Оператор присваивания.
- •18)Композиция условий и операторов.
- •17) Операторы итерационных циклов.
- •4)Области действия имён в программах.
- •2)Понятие о типе Множество в Турбо Паскале.
- •1)Запись как объединение неоднородных данных.
- •Обработка записей.
- •27)Понятие о языках программирования.
- •26)Система программирования turbo pascal 7.0.
- •28)Аппаратное и программное обеспечение компьютера.
- •30)Принцип программного управления.
- •29)Программы, управляемые событиями.
1)Запись как объединение неоднородных данных.
До сих пор мы имели дело только со структурными типами, объединяющими в одно целое однотипные данные (массивы или множества). Однако во многих задачах управления и в других областях часто необходимо структурировать неоднородные (разнотипные) данные. Например, анкета служащего содержит такие данные, как фамилия, имя, отчество (строковый тип), год рождения (целый тип), разряд (целый тип) и многие другие данные. Объединение таких данных общий структурный тип-анкета затруднительно сделать в рамках массива или множества.
Естественным средством структурирования в этом и подобных случаях является структурный тип - Запись. Этот структурный тип специально введен для объединения любого конечного числа неоднородных данных. Объединяемые данные составляют поля записи.
Однако, объединяя неоднородные данные, мы уже не можем рассчитывать иметь эффективный доступ к полям посредством их индексации (т.е. вычислимых имён), как это было в случае массивов: это может привести к несоответствию типов в выражениях. Доступ к полям записи осуществляется посредством составных имён (имён с точкой), имеющим, как и простые имена переменных, статическую природу .
Запись является одной из наиболее общих форм композиции неоднородных данных. Она распространяется не только на объединение полей-типов данных, но и на объединение полей-типов данных с процедурами и функциями, приводя к понятию объекта, как новой категории программных структур. Рассмотрим структурный тип Запись применительно к объединению полей-типов данных.
Описание типа Запись и доступ к полям записи
Тип Запись описывается в следующей форме:
type < имя типа-запись> = record < список полей > end;
где: < список полей > - последовательность разделов, разделяемых точкой с запятой; каждый раздел имеет структуру < список имен полей > : < тип поля >. Типом поля может быть любой тип, кроме типа файл. Если тип поля также является записью, мы имеем дело с иерархической структурой записей. Например:
type stud = record numb:byte;name:string[16]; aver:real end;{запись о студенте}
gr = record title:string; studs: array[1..15] of stud; end; {данные о группе }
Для работы с записями необходимо описать переменные типа-запись.
Например:
var stud1:stud; {данные о студенте styd1} grA1:gr; {группа А1}
Допустимы также типизированные константы типа-запись, устанавливающие значения полям записи в виде списка констант-полей, перечисляемых через точку с запятой.
Например:
const st00:stud = (numb:0; name:''; aver:0.0);
Доступ к элементам записи осуществляется посредством составного имени, в котором указывается имя переменной-записи и имя поля записи, разделяемые точкой. Так, например, доступ к полю среднего балла студента stud1 имеет вид: stud1.aver. Если запись описывает иерархическую структуру с несколькими уровнями, то составное имя содержит кроме имени записи также имена всех промежуточных полей-уровней, разделяемые точками. Например, для доступа к полю среднего балла 8 студента группы следует использовать составное имя: grA1.studs[8].aver.