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

UptoLike

85
S.мним. = Хмним. + Yмним.
Type Complex = record Re, Im: real
End;
Var X, Y, S:Complex;
Begin with X do begin
Writeln(ввод вещественной и мнимой части х);
Readln (Re, Im) end;
Y.Re := 7;
Y.Im := 8;
With S do begin
Re :=X.Re + Y.Re;
Im :=X.Im + Y.Im
End;
Writeln (Сумма двух комплексных чисел);
With S do
Writeln (Re, +i , Im);
End.
Нельзя внутри оператора with изменять индекс массива типа записи.
Это нужно делать помимо with!
Записи с вариантами
Основная идея вариантной записи состоит в том, чтобы находясь в
пределах одной записи можно определить несколько альтернативных
записей. Любая запись может состоять из постоянной и вариантной
(переменной) части. Вариантная часть всегда располагается в конце и имеет
следующую структуру:
Вариантная часть записи:
Type tdat = record day : 1..31
case
Имя
селектора
Наименование
типа
of
Список
полей
Константное
выражение
,
:
:
;
(
)
86
Mes: 1..12; God: 1900..2002 end;
Pol = (wom, man);
Res = record fam, name: string;
Case six: pol of
Wom: (Glas: (blue, green,brown);{цвет глаз}
(Smos: Boolean);{курит или нет}
Man: (Datr: tdat) {дата прохождения воинской службы}
end;
Для записи в оперативной памяти отводится одно место по
максимально возможной записи с учётом варианта.
Пример 22:
Определение суммарного количество необходимого бензина и
суммарное число жителей, которое можно эвакуировать.
Обозначение: cor-емкость бензобака;
kol-количество посадочных мест.
Type vid = (foot,bicycle,car,motor,grus);
rec = record
fam, ul:string[20];
case vidtr:vid of
foot, bicycle:(); {пустой список полей}
car, motor, Grus:(cor, kol: byte) end;
var M:array[1..1000] of rec;
S, SG:integer; i:integer; p:byte;
begin
S:=0;
SG:=0;
Ф.И.О. Ули
ц
а
foot
(
пешком)
b
ic
y
cle
Grus
co
r
kol
сo
r
kol
kol
motor
сo
r
car
Жители
населённого
пункта
Вид транспорта
       S.мним. = Хмним. + Yмним.                                                      Mes: 1..12; God: 1900..2002 end;
       Type Complex = record Re, Im: real                                             Pol = (wom, man);
          End;                                                                       Res = record fam, name: string;
       Var X, Y, S:Complex;                                                          Case six: pol of
        Begin with X do begin                                                        Wom: (Glas: (blue, green,brown);{цвет глаз}
         Writeln(′ввод вещественной и мнимой части х′);                                      (Smos: Boolean);{курит или нет}
          Readln (Re, Im) end;                                                        Man: (Datr: tdat) {дата прохождения воинской службы}
          Y.Re := 7;                                                               end;
          Y.Im := 8;                                                              Для записи в оперативной памяти отводится одно место по
          With S do begin
                                                                            максимально возможной записи с учётом варианта.
          Re :=X.Re + Y.Re;
          Im :=X.Im + Y.Im                                                         Пример 22:
                     End;
       Writeln (′Сумма двух комплексных чисел′);                                 Определение суммарного количество необходимого бензина и
       With S do                                                            суммарное число жителей, которое можно эвакуировать.
       Writeln (Re,′ +i ′, Im);                                                  Обозначение: cor-емкость бензобака;
       End.                                                                                    kol-количество посадочных мест.
      Нельзя внутри оператора with изменять индекс массива типа записи.
Это нужно делать помимо with!                                                                               Жители
                                                                                                          населённого
                                                                                                            пункта
                           Записи с вариантами
      Основная идея вариантной записи состоит в том, чтобы находясь в
пределах одной записи можно определить несколько альтернативных               Ф.И.О.       Улица             Вид транспорта

записей. Любая запись может состоять из постоянной и вариантной
(переменной) части. Вариантная часть всегда располагается в конце и имеет        foot
следующую структуру:                                                           (пешком)         bicycle           car           motor        Grus

       Вариантная часть записи:
                                                                                                            cor         kol   сor     kol    сor     kol
                     Имя                     Наименование
       case       селектора         :            типа
                                                            of
                                                                                   Type vid = (foot,bicycle,car,motor,grus);
                                                                                            rec = record
                                                                                        fam, ul:string[20];
        Константное                              Список                                   case vidtr:vid of
         выражение          :           (        полей
                                                            )                                 foot, bicycle:();                       {пустой список полей}
                                                                                             car, motor, Grus:(cor, kol: byte) end;
              ,                                                                       var M:array[1..1000] of rec;
                                ;                                                      S, SG:integer; i:integer; p:byte;
                                                                                       begin
                                                                                          S:=0;
       Type tdat = record day : 1..31
                                                                                          SG:=0;
                                        85                                                                         86