Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР №2.docx
Скачиваний:
13
Добавлен:
24.03.2021
Размер:
565.27 Кб
Скачать

Задание № 4

Написать программу, которая считывает из файла kn202mnn .note все данные и выводит на экран в виде таблицы, выполненной по образцу таблицы 1.

Таблица 1. – Образец таблицы для четвертого пункта задания

Фамилия

Имя

Отчество

Пол

Возраст

Гураков

Алексей

Валерьевич

М

39

Мещеряков

Павел

Сергеевич

М

35

Описание:

В программе описана запись Homme type Homme = record, а также вспомогательная запись date type date = record для хранения дня рождения студента и подсчета его возраста в четвертом задании.

В программе объявляются все необходимые переменные, типизированный файл f: file of Homme; ассоциируется с файлом assign (f, 'kn202mnn.note'); в том же каталоге, что и программа, открывается на чтение командой reset (f);.

Чтение из файла организовано с помощью цикла while not eof (f) do, в котором происходит также вычисление возраста студента по формуле 2021 - Birthday.year

Перед циклом выводится отформатированный заголовок. Остальное форматирование производится непосредственно на месте вывода записи на экран.

Затем файл закрывается close (f);.

Код программы:

type

date = record

month: 1..12;

day: 1..31;

year: smallint

end;

type

Homme = record

Familiya: string[20];

Name: string[20];

Otchestvo: string[20];

Birthday: date;

sex: char;

end;

var

note: Homme;

f: file of Homme;

age: integer;

currentdate: date;

begin

write('Введите текущий год в формате ГГГГ : ');

readln(currentdate.year);

write('Введите текущий месяц: ');

readln(currentdate.month);

write('Введите текущий день: ');

readln(currentdate.day);

assign(f, 'kn202mnn.note');

reset(f);

writeln('----------------------------------------------------------------');

writeln('| ', 'Фамилия':10, '| ':7,'Имя':10,'| ':7, 'Отчество':9,'|':7, 'Пол', '|','Возраст','|');

writeln('----------------------------------------------------------------');

while not eof (f) do

begin

read(f, note);

age:= currentdate.year - note.Birthday.year;

if ((note.Birthday.month > currentdate.month) or ((note.Birthday.month = currentdate.month) and (note.Birthday.day > currentdate.day))) then

age:= age - 1;

writeln('| ', note.Familiya:0, ' ': (15 - length(note.Familiya)), '| ', note.Name,

' ': (15 - length(note.Name)), '| ', note.Otchestvo:0, ' ': (15 - length(note.Otchestvo)),

'| ', note.sex, ' ': (2 - length(note.Sex)), '| ', age: 3, ' |');

writeln('----------------------------------------------------------------');

end;

close(f);

end.

Результаты работы программы:

  1. Результат работы программы по заданию 4

Выводы:

Результат записи данных в файл из задания № 3 полностью восстановлен и выведен на экран в виде таблицы 1.

Список литературы

  1. Острейковский В. А. Информатика : учебник для вузов / В. А. Острейковский. — М. : Высш. шк., 1999.

  2. Вирт Н. Алгоритмы и структуры данных / Н. Вирт. — М. : Мир, 1989.

  3. Епанешников А. М. Программирование в среде Turbo Pascal 7.0 / А. М. Епанешников, В. А. Епанешников. — 3-е изд., стер. — М. : ДИАЛОГ-МИФИ, 1996.

  4. Культин Н .Б. Turbo Pascal в задачах и примерах / Н. Б. Культин. — СПб.: БХВ-Петербург, 2000.

  5. Немнюгин С. А. Turbo Pascal / С. А. Немнюгин. — СПб. : Питер, 2000.

  6. Шпак Ю. А. Turbo Pascal 7.0 на примерах / Ю. А. Шпак ; под ред. Ю. С. Ковтанюка. — Киев : Юниор, 2003.