Основы алгоритмизации и программирования. Часть третья. Структурированные типы данных. Асламова В.С - 42 стр.

UptoLike

83
имя переменной или элемента массива типа Record. После точки
указывается имя поля, а не его тип.
Внутри одной записи имена должны быть неповторяющиеся,
разрешается использовать одинаковые имена полей в разных записях даже
если они входят в какую то общую запись. Разрешается использовать
одинаковые имена для идентификации переменной и поля записи.
Type numrec = record a:real; B:integer end;
Grad = record a:real; f:byte end;
Person = record number:numrec;
Gr:Grad; pers:string[10] end;
Var pers:person; a:real;
Доступ к полю записи
:
Пример:
Программа, выполняющая операции над комплексными числами.
Type Complex = record Re, Im:real End;
Var X, Y:Complex;
Pair:Integer;
begin
X.Re :=2; X.Im:=5; {Инициация Х}
Y:=X; {Инициация Y}
Pers
numbe
r
pers
A B A F
Pers.pers
Pers.number.a Pers.Gr.a
Имя
переменной
типа Record
Имя поля
[
]
.
Индекс
массива
Индекс
84
writeln(X = , X.Re :5:1, X.Im :5:1, i);
writeln(Y = , Y.Re :5:1, Y.Im :5:1, i);
{X+Y}
writeln (Sum = , X.Re + Y.Re :5:1, X.Im+Y.Im :5:1, i);
{X*Y}
writeln (Product = , X.Re*Y.Re – X.Im*Y.Im :5:1, X.Re*Y.Im +
X.Im*Y.Re :5:1,i);
end.
После выполнения получим:
X = 2.0 5.0i
Y = 2.0 5.0i
Sum = 4.0 10.0i
Product = -21.0 20.0i
Оператор присоединения With
Оператор with используется для удобства доступа к полям записи.
Оператор присоединения with:
Этот префикс компилятор присоединяет слева ко всем компонентам
записи, упомянутым в операторе.
Можно через запятую писать имена полей вложенных записей одной
переменной.
Пример:
С помощью оператора with сумму комплексных чисел можно
посчитать следующим образом.
Х = 2 + 3i Y = 7 + 8i
S.вещ. = Хвещ. + Yвещ.
Имя переменной
типа record
do
оператор
with
,
;
Префикс
имя переменной или элемента массива типа Record. После точки                           writeln(′X = ′, X.Re :5:1, X.Im :5:1, ′i′);
указывается имя поля, а не его тип.                                                    writeln(′Y = ′, Y.Re :5:1, Y.Im :5:1, ′i′);
      Внутри одной записи имена должны быть неповторяющиеся,                           {X+Y}
разрешается использовать одинаковые имена полей в разных записях даже                  writeln (′Sum = ′, X.Re + Y.Re :5:1, X.Im+Y.Im :5:1, ′i′);
если они входят в какую то общую запись. Разрешается использовать                      {X*Y}
одинаковые имена для идентификации переменной и поля записи.                           writeln (′Product = ′, X.Re*Y.Re – X.Im*Y.Im :5:1, X.Re*Y.Im +
          Type numrec = record a:real; B:integer end;                                  X.Im*Y.Re :5:1,′i′);
               Grad = record a:real; f:byte end;                                       end.
               Person = record number:numrec;                                          После выполнения получим:
               Gr:Grad; pers:string[10] end;
                                                                                       X = 2.0 5.0i
          Var pers:person; a:real;
                                                                                       Y = 2.0 5.0i
                                          Pers                                         Sum = 4.0 10.0i
                                                                                       Product = -21.0 20.0i


                number                                     pers
                                                                                                  Оператор присоединения With

                                                                                  Оператор with используется для удобства доступа к полям записи.
         A               B            A            F           Pers.pers               Оператор присоединения with:
                                                                                                   Префикс
  Pers.number.a              Pers.Gr.a
                                                                                               Имя переменной
       Доступ к полю записи:                                                    with             типа record          do        оператор      ;

                                                                                                      ,
     Имя
                   Индекс
  переменной
                   массива        [       Индекс       ]   .      Имя поля
                                                                                     Этот префикс компилятор присоединяет слева ко всем компонентам
  типа Record
                                                                             записи, упомянутым в операторе.
                                                                                   Можно через запятую писать имена полей вложенных записей одной
     Пример:                                                                 переменной.
     Программа, выполняющая операции над комплексными числами.
                                                                                  Пример:
      Type Complex = record Re, Im:real End;
         Var X, Y:Complex;                                                         С помощью оператора with сумму комплексных чисел можно
           Pair:Integer;                                                     посчитать следующим образом.
      begin                                                                         Х = 2 + 3i                Y = 7 + 8i
        X.Re :=2; X.Im:=5;                   {Инициация Х}                          S.вещ. = Хвещ. + Yвещ.
        Y:=X;                                {Инициация Y}
                                  83                                                                             84