Добавил:
БГУИР ПОИТ Дистанционное Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ч2 ИПР1 В5 / ИПР1

.pas
Скачиваний:
1
Добавлен:
27.09.2021
Размер:
6.11 Кб
Скачать
{5. Информация об участниках спортивных соревнований содержит
название команды, ФИО игрока, возраст.
Вывести информацию о спортсменах, возраст которых не достиг 18 лет.

В программе предусмотреть сохранение вводимых данных в
типизированный файл и возможность чтения из ранее сохраненного
типизированного файла. Результаты выводить на экран и в текстовый файл.}

program IPW_1;
uses crt;
type
Tsport = record
Fteam:string[15];// Название команды
Fname_1:string[30]; // Ф
Fname_2:string[30]; // И
Fname_3:string[30]; // 0
Fdate:double; // Возраст
end;

Var
Mas:array [1..20] of Tsport;
f:text;
Zap:Tsport;
n:integer;
v:integer;

procedure vvod; // Ввод данных в текстовый файл
var
i:integer;
begin
Assign(f,'IPW1.txt');
Rewrite(f);
writeln;
writeln('Введите количество записей:');
readln(n);
for i:=1 to n do
begin
writeln('Введите ',i,' запись');
writeln('Введите название команды:');
readln(Zap.Fteam);
writeln('Введите фамилию игрока:');
readln(Zap.Fname_1);
writeln('Введите имя игрока:');
readln(Zap.Fname_2);
writeln('Введите отчество игрока:');
readln(Zap.Fname_3);
writeln('Введите возраст участника:');
readln(Zap.Fdate);
writeln;
writeln(f,i,' ',Zap.Fteam,' ',Zap.Fname_1,' ',Zap.Fname_2,' ',Zap.Fname_3,' ',Zap.Fdate);
end;
close(f);
end;

procedure reading; // Чтение текстового файла и вывод значений на экран
var i:integer;
s:string;
begin
assign(f,'IPW1.txt');
reset(f);
writeln;
writeln(' ______________________________________________________________________');
writeln('| № | Команда | Фамилия | Имя | Отчество | Возраст |');
writeln('|______________________________________________________________________|');
while not (eof(f)) do
begin
readln(f,s); // Считываем строку
s:=trim(s)+' '; // Убираем пробелы
while pos(' ',s)>0 do // Удаляем лишние пробелы
delete(s,pos(' ',s),1);
i:=strtoint(copy(s,1,pos(' ',s)-1)); // Номер
delete(s,1,pos(' ',s));
mas[i].Fteam:=copy(s,1,pos(' ',s)-1); // Название команды
delete(s,1,pos(' ',s));
mas[i].Fname_1:=copy(s,1,pos(' ',s)-1); // Фамилия
delete(s,1,pos(' ',s));
mas[i].Fname_2:=copy(s,1,pos(' ',s)-1); // Имя
delete(s,1,pos(' ',s));
mas[i].Fname_3:=copy(s,1,pos(' ',s)-1); // Отчество
delete(s,1,pos(' ',s));
mas[i].Fdate:=strtoint(copy(s,1,pos(' ',s)-1)); // Возраст
writeln('|',i:3,'|',mas[i].Fteam:13,'|',mas[i].Fname_1:13,'|',mas[i].Fname_2:13,'|',mas[i].Fname_3:14,'|',mas[i].Fdate:9,'|');
end;
writeln(' ______________________________________________________________________');
writeln;
close(f);
end;

procedure eighteen; // Поиск совершеннолетних
var i,p,r:integer;
s:string;
begin

// Чтение файла для заполнения переменных
assign(f,'IPW1.txt');
reset(f);
while not (eof(f)) do
begin
readln(f,s);//читаем строку
s:=trim(s)+' ';//убираем пробелы
while pos(' ',s)>0 do//удалим лишние пробелы
delete(s,pos(' ',s),1);
i:=strtoint(copy(s,1,pos(' ',s)-1));//номер
delete(s,1,pos(' ',s));//удалим
mas[i].Fteam:=copy(s,1,pos(' ',s)-1);//название команды
delete(s,1,pos(' ',s));//удалим
mas[i].Fname_1:=copy(s,1,pos(' ',s)-1);// Фамилия
delete(s,1,pos(' ',s));//удалим
mas[i].Fname_2:=copy(s,1,pos(' ',s)-1);// Имя
delete(s,1,pos(' ',s));//удалим
mas[i].Fname_3:=copy(s,1,pos(' ',s)-1);// Отчество
delete(s,1,pos(' ',s));//удалим
mas[i].Fdate:=strtoint(copy(s,1,pos(' ',s)-1));// возраст
end;

// Сортировка по возрасту 18 лет
writeln;
p:=0;
for r:=1 to i do
if mas[r].Fdate<18 then
begin
p:=p+1;
if p=1 then
begin
writeln(' ______________________________________________________________________');
writeln('| № | Команда | Фамилия | Имя | Отчество | НЕТ 18! |');
writeln('|______________________________________________________________________|');
end;
writeln('|',r:3,'|',mas[r].Fteam:13,'|',mas[r].Fname_1:13,'|',mas[r].Fname_2:13,'|',mas[r].Fname_3:14,'|',mas[r].Fdate:9,'|');
end;

if p>0 then
begin
writeln(' _____________________________________________________________________ ');
writeln;
end;

if p=0 then
begin
writeln(' _____________________________________________________________________ ');
writeln('| Всем участникам 18 лет или больше! |');
writeln(' _____________________________________________________________________ ');
writeln;
end;
close(f);
end;

begin
Writeln('1 - Ввод данных в текстовый файл;');
Writeln('2 - Чтение данных с текстового файла;');
Writeln('3 - Вывод участников младше 18 лет;');
Writeln('4+ - Выход;');
readln(v);
while v<4 do
begin
case v of
1:vvod;
2:reading;
3:eighteen;
end;
Writeln('1 - Ввод данных в текстовый файл;');
Writeln('2 - Чтение данных с текстового файла;');
Writeln('3 - Вывод участников младше 18 лет;');
Writeln('4+ - Выход;');
readln(v);
end;
end.
Соседние файлы в папке Ч2 ИПР1 В5