Информатика на пять О нас
 Добавить в избранное
5byte.ru
 Теория
 8 класс
 9 класс
 10 класс
 11 класс
Задания
 8 класс
 9 класс
 10 класс
 11 класс
Книги
Тесты
ЕГЭ
Turbo Pascal 7
 Описание
 Задачи
HTML
Рефераты

6.4. Запись

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

Пример.

type  
  Complex = record {Тип комплексных чисел}
     Re: Real;  
     Im: Real  
  end;
  Data = record {Тип - дата рждения}
     Year: Integer;  
     Month: 1..12;  
     Day: 1..31  
  end;  
  Person = record {Тип - сведения о сотруднике}
     Name: string[20] ;  
     Sex: (Male, Female);  
     Age: Integer;  
     Married: Boolean  
  end;  

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

type
   Complex = record
   Re, Im: Real
end;

После введения типа-записи можно затем задать переменные или типизированные константы этого типа - записи.

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

Так, для введенных выше типов можно задать, например, следующие переменные и константы:

var
   X, Y, Z: Complex;
   Dat: Data;
сonst
   Birthday: Data = (Year: 1971; Month: 12; Day: 9 );
   Ivanov: Person = (Name: 'Иванов'; Sex: Male; Age: 40; Married: True);

Примечание. Тип-запись можно вводить и непосредственно при определении переменных или типизированных констант. Например, фрагмент

var
   X, Y, Z: record
     Re, Im: Real
   end;

определяет те же комплексные переменные, что и в предыдущем примере.

Доступ к полям записи осуществляется указанием имени переменной (константы) и имени поля, записываемого через точку, например:

Ivanov..ge,
X.Re,
Dat.Day и т. д.

Пример. Использование полей записей.

X.Re = 15;
X.Im = 17;
Y.Re = -X.Re;
Y.Im = -X.Im;
Ivanov.Married := False;

Для того чтобы не выписывать каждый раз имя записи при обращении к ее нолям, можно использовать оператор над записями WITH. Его структура выгляни следующим образом:

with <имя записи> do <оператор>;

В этом случае внутри оператора можно указывать только поле записи. Например, фрагмент:

with X do
  begin
    Re := 1.5;
    Im := 1.7;
    Y.Re := -Re;
    Y.Im := -Im
  end;
with Ivanov do
  Married := False;

эквивалентен фрагменту из предыдущего примера.

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

Пример. Использование вариантной части.

Type  
  Figure = (Square, Triangle, Circle);  
  Param = record  
    X ,Y: Real; {точка привязки}
    case Fig: Figure of {параметры фигур}
      Square: (Side: Real);  
      Triangle: (Side1, Side2, Angle: Real);  
      Circle: (Radius: Real)  
  end;  
var MySquare , MyCircle: Param;  

Вариантная часть начинается словом case, за которым следует переменная выбора варианта (в примере Fig) с указанием типа. Далее указываются константы, значения которых может принимать переменная выбора варианта (в примере - Sguare, Triangle, Circle). За каждой константой через двоеточие в круглых скобках записываются поля данного варианта записи с указанием их типов. Круглые скобки необходимы, даже если для данного варианта вариантная часть отсутствует. Следует отметить, что вариантная часть не завершается своей операторной скобкой end, как у обычной конструкции CASE, т.к. далее идет завершающая операторная скобка end всего типа.

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

Fig := Sguare;
MySguare. Side := 5.0;
Fig := Circle;
MyCircle. Radius := 7.5;

В Turbo Pascal эту операцию делать необязательно, хотя, если переменная выбора задана, ее затем можно в программе посмотреть, чтобы определить, какой задан вариант. Более того, задание значения переменной выбора ни на что не оказывает влияния, и следующий фрагмент эквивалентен рассмотренному выше:

Fig := Circle;
MySguare. Side := 5.0;
Fig := Sguare;
MyCircle. Radius := 7.5;

В тип-записи допустимо не вводить переменную выбора вариантов, а перечислить лишь разные варианты, например:

Transf = record
   case Integer of
     1: (_Word: Word);
     2: (_TwoSymb: array!1..2] of Char)
end;





 У Вас есть материал пишите нам
 
    Copyright © 2008    
  Top.Mail.Ru