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

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

.docx
Скачиваний:
1
Добавлен:
27.09.2021
Размер:
350.73 Кб
Скачать

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра программного обеспечения информационных технологий

Факультет ФИНО

Специальность ПОИТ

Индивидуальная практическая работа № 1

по дисциплине «Основы алгоритмизации и программирования»

часть 2

Вариант № 5

Выполнил студент: Бордон Е.С.

группа 991051

Зачетная книжка № 99105004

Минск 2020

Задание:

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

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