zadach69.PAS

{* Задача 69 *}

Unit ZADACH69;
Interface
Implementation
Begin
 writeln('Определить комб тип для представления анкеты школьника, включающей в себя его ФИО, возраст, № школы, № класса, оценки по пяти предметам. Ввести инфу о нескольких учениках (или задать типизированной константой) и напечатать фамилии учеников, обучающихся в № 105 на 4 и 5.');
End.

Program zadach69;

Uses zadach69.pas; {* Эту строку можно удалить *}
Uses Crt; {* Подключаем внешние файлы *}
Type {* Используемые типы *}
  TOcenki = Record                Fizika   : byte;
  Matem    : byte;
  Istor    : byte;
  Fizra    : byte;
  Litera   : byte;
  End;
  TUchen  = Record            SureName : String[64];
  Name     : String[64];
  SecName  : String[64];
  Age      : byte;
  NSchool  : word;
  NClass   : byte;
  Ocenki   : TOcenki;
  End;
Const {* Константы *}
  LenKart = 10;
  H = [4, 5];
  cKart : Array [1..LenKart] Of TUchen =                     ((Surename : 'Иванов';
  Name : 'Иван';
  SecName : 'Иванович';
  Age : 10;
  NSchool : 105;
  NClass : 4;
  Ocenki : (Fizika : 4;
  Matem : 5;
  Istor : 4;
  Fizra : 5;
  Litera : 5)),                        (Surename : 'Петров';
  Name : 'Петр';
  SecName : 'Петрович';
  Age : 12;
  NSchool : 104;
  NClass : 6;
  Ocenki : (Fizika : 3;
  Matem : 3;
  Istor : 4;
  Fizra : 5;
  Litera : 3)),                        (Surename : 'Сидоров';
  Name : 'Олег';
  SecName : 'Иванович';
  Age : 9;
  NSchool : 105;
  NClass : 4;
  Ocenki : (Fizika : 5;
  Matem : 5;
  Istor : 3;
  Fizra : 3;
  Litera : 3)),                        (Surename : 'Семенюк';
  Name : 'Сергей';
  SecName : 'Вадимович';
  Age : 11;
  NSchool : 4;
  NClass : 5;
  Ocenki : (Fizika : 5;
  Matem : 5;
  Istor : 3;
  Fizra : 5;
  Litera : 5)),                        (Surename : 'Рабинович';
  Name : 'Абрам';
  SecName : 'Цуневич';
  Age : 10;
  NSchool : 105;
  NClass : 4;
  Ocenki : (Fizika : 5;
  Matem : 5;
  Istor : 5;
  Fizra : 5;
  Litera : 5)),                        (Surename : 'Гольдштейн';
  Name : 'Иссак';
  SecName : 'Вайнбергович';
  Age : 10;
  NSchool : 105;
  NClass : 4;
  Ocenki : (Fizika : 5;
  Matem : 5;
  Istor : 5;
  Fizra : 5;
  Litera : 5)),                        (Surename : 'Путин';
  Name : 'Владимр';
  SecName : 'Владимирович';
  Age : 11;
  NSchool : 105;
  NClass : 5;
  Ocenki : (Fizika : 5;
  Matem : 5;
  Istor : 5;
  Fizra : 5;
  Litera : 5)),                        (Surename : 'Лукашенко';
  Name : 'Александр';
  SecName : 'Григорьевич';
  Age : 14;
  NSchool : 105;
  NClass : 4;
  Ocenki : (Fizika : 3;
  Matem : 3;
  Istor : 3;
  Fizra : 5;
  Litera : 3)),                        (Surename : 'Буш';
  Name : 'Джордж';
  SecName : 'Джорджевич';
  Age : 15;
  NSchool : 10;
  NClass : 10;
  Ocenki : (Fizika : 2;
  Matem : 2;
  Istor : 2;
  Fizra : 5;
  Litera : 2)),                        (Surename : 'Череззаборногозадерищенский';
  Name : 'Иван';
  SecName : 'Иванович';
  Age : 12;
  NSchool : 14;
  NClass : 7;
  Ocenki : (Fizika : 4;
  Matem : 5;
  Istor : 4;
  Fizra : 5;
  Litera : 5)));
Var {* Объявление переменных *}
  i   : word;
  Sum : word;
  Begin
  clrscr; {* Очистка экрана *}
  writeln('На 4 и 5 в школе 105 учатся:');
For i := 1 To LenKart Do {* Увеличиваем i от 1 до LenKart с шагом 1 *}
  with cKart[i] Do
If NSchool = 105 Then
  Begin
with Ocenki Do
If (Fizika In H) And (Matem In H) And (Istor In H) And                 (Fizra In H) And (Litera In H) Then
  writeln(Surename)
End;
Repeat
  Until keypressed; {* После нажатия любой клавиши цикл остановится *}
  End....