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

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

.pas
Скачиваний:
1
Добавлен:
27.09.2021
Размер:
6 Кб
Скачать
{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