// PascalABC.NET 3.3, сборка 1573 от 04.11.2017
// Внимание! Если программа не работает, обновите версию!
type
Призывник=record
ФИО:string[48];
Пол:char;
Рост:byte;
Вес:byte;
Рекомендация:shortint
end;
begin
var buf:Призывник;
var f:file of Призывник;
Assign(f,'Prizyvnik.bin'); Rewrite(f);
while True do begin // выход по break
Writeln('Введите данные очередного призывника');
Writeln('Фамилия, имя, отчество или * для окончания ввода: ');
buf.ФИО:=ReadlnString;
if buf.ФИО='*' then break;
buf.Пол:=UpCase(ReadlnChar('Пол (М/Ж):'));
Write('Рост, см: '); Readln(buf.Рост);
Write('Вес, кг: '); Readln(buf.Вес);
buf.Рекомендация:=(buf.Рост-buf.Вес)-100;
Write(buf.ФИО,' ',buf.Пол,' ',buf.Рост,' ',buf.Вес,': ');
if buf.Рекомендация>0 then Writeln('Поправиться на ',
buf.Рекомендация,' кг.')
else
if buf.Рекомендация<0 then Writeln('Похудеть на ',<br> -buf.Рекомендация,' кг.')
else Writeln('Норма!');
Write(f,buf)
end;
f.Close
end.
Пример работы программы
Введите данные очередного призывника
Фамилия, имя, отчество или * для окончания ввода:
Иванов Петр Сергеевич
Пол (М/Ж): М
Рост, см: 176
Вес, кг: 72
Иванов Петр Сергеевич М 176 72: Поправиться на 4 кг.
Введите данные очередного призывника
Фамилия, имя, отчество или * для окончания ввода:
Петров Иван Афанасьевич
Пол (М/Ж): М
Рост, см: 175
Вес, кг: 76
Петров Иван Афанасьевич М 175 76: Похудеть на 1 кг.
Введите данные очередного призывника
Фамилия, имя, отчество или * для окончания ввода:
Тарасова Валентина Анатольевна
Пол (М/Ж): Ж
Рост, см: 168
Вес, кг: 68
Тарасова Валентина Анатольевна Ж 168 68: Норма!
Введите данные очередного призывника
Фамилия, имя, отчество или * для окончания ввода:
*
Программа для контрольного чтения полученного файла
type
Призывник=record
ФИО:string[48];
Пол:char;
Рост:byte;
Вес:byte;
Рекомендация:shortint
end;
begin
var buf:Призывник;
var f:file of Призывник;
Assign(f,'Prizyvnik.bin'); Reset(f);
while not Eof(f) do begin
Read(f,buf);
Write(buf.ФИО,' ',buf.Пол,' ',buf.Рост,' ',buf.Вес,': ');
if buf.Рекомендация>0 then Writeln('Поправиться на ',
buf.Рекомендация,' кг.')
else
if buf.Рекомендация<0 then Writeln('Похудеть на ',<br> -buf.Рекомендация,' кг.')
else Writeln('Норма!');
end;
f.Close
end.
Пример
Иванов Петр Сергеевич М 176 72: Поправиться на 4 кг.
Петров Иван Афанасьевич М 175 76: Похудеть на 1 кг.
Тарасова Валентина Анатольевна Ж 168 68: Норма!