Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses
- System.IO;
- const
- SE_TXT_INPUT = 'input.txt';// Имя входного текстового файла
- type
- structure = record // Структура записи
- params1: string[20];// Поле "Фамилия спортсмена"
- params2: string[20];// Поле "Вид спорта"
- params3: integer;// Поле "Возраст спортсмена"
- params4: integer;// Поле "Продолжительность занятия спортом"
- end;// The end structure
- function Declension(x: byte): string;
- begin
- var temp := x <= 9 ? #32 + x + #32 : IntToStr(x) + #32;
- if x in [11..14] then Result := temp + 'лет'
- else
- case x mod 10 of
- 1: Result := temp + 'год';
- 2..4: Result := temp + 'года';
- 0, 5..9: Result := temp + 'лет';
- end;
- end;
- begin
- try
- var arr: array of structure := new structure[0];// Объявим массив для хранения данных
- var file1 := OpenRead(SE_TXT_INPUT);// Открываем файл "SE_TXT_INPUT" для чтения
- while not file1.Eof do
- begin
- var temp := file1.ReadlnString.Split(#44); // Считываем строку из файла "SE_TXT_INPUT" и формируем массив
- SetLength(arr, Succ(arr.Length));// Выделяем память
- with arr[Pred(arr.Length)] do// Разбиваем строку на поля
- begin
- params1 := temp[0];
- params2 := temp[1];
- params3 := StrToInt(temp[2]);
- params4 := StrToInt(temp[3]);
- end;
- end;
- file1.Close;// Закрываем файл "SE_TXT_INPUT"
- WriteLn(Информация);
- for var i := Low(arr) to High(arr) do// Выведим на экран спортсменов, которые занимаются плаванием
- begin
- if arr[i].params2.ToLower = 'плавание' then
- with arr[i] do
- WriteLn(params1 + #9 + Declension(params3) + #9 + 'занимается ' + params2 + 'м ' + #9 + Declension(params4));
- end;
- except
- on Exception do
- writeln('Ошибка: Файл "' + SE_TXT_INPUT + '" не найден :(');
- end;
- end.
Add Comment
Please, Sign In to add comment