{Один
из к/ф, вышедший на экран в 1990 г.?} program
Search (fin, fout); uses
crt; year:1950..1999;{год
выхода на экран} fin,
fout
:text;{ имя файловой переменной} p:char;
{'y'/'n' - повторение теста} numb:char;
{номер файла с тестовыми данными} begin clrscr; {Оболочка
для тестирования}
repeat
Подготовка
файлов chdir('d:\LAB3');{установка
директории с тестами} {Инициализация
выходного файла}
assign
(fout,
‘res.txt’); rewrite
(fout); writeln(fout,
'К/ф, вышедший на экран в 1990 г.:'); Writeln
('Введите номер файла: 1 или 2'); readln(numb); {Инициализация
входного файла} assign
( fin,'film'+numb+'.txt');{сцепление
имени и номера файла} reset(fin);
{Решение
задачи а)} {Поиск
первого к/ф, вышедшего на экран в 1990 г.}
repeat {Ввод
способом
1} readln(fin,name,year);
until
eof(fin) or (year=1990); if
eof(fin) then
writeln(
fout, 'Такого
нет') else
writeln
(fout, name); close(fin);
close(fout);
writeln
('Повторить? (y/n)'); p
:= readkey; until
(p='N') or (p='n'); end.
_Тест
1 . _ Тест 2
Мария
1988 Адам и Ева 1990 Прибытие
поезда 1885 Уникум 1993 Солярис
1983 Цыган 1990 Сталкер
1984 Хлопотун 1992 Даки
1975
Var name:string [20];{ название к/ф}






-
Тестирование в режиме диалога с двумя файлами входных данных.
Создать файл с исходными данными, где не существует объекта с заданным значением
признака. Сохранить файл (например, в LAB3\film2.txt).
Пример.
Игла
1979 Уникум
1993 Сталкер
1974
Сделать изменения в программе, предусмотрев выбор нужного входного файла в режиме
диалога. Для того, чтобы не набирать полное имя файла, можно задать имена файлов, отличающиеся только номерами: film1.txt и film2.txt. Тогда, если numb – номер файла (типа char), то строка с именем файла получается путем сцепления символьных констант и символьной переменной: 'film'+numb+'.txt'. Теперь можно организовать диалог с запросом только номера файла, а полное имя получить в программе с помощью символьного выражения. Добавить в программу оболочку для тестирования и провести тестирование.
-
Сдать задачу а) преподавателю. На экране монитора должны быть 4 окна: с програм -
мой, двумя входными файлами и файлом результатов. Выбор файла с входными данными должен вестись в диалоге с указанием номера этого файла.
-
Сформулировать задачу б) и расширить спецификацию.
Пример. Задача b): “Найти год и название самого последнего фильма, вышедшего на
экран ”.
Расширить раздел Выходные данные, добавив в выходную форму печать новых резуль -
татов.
Изучить раздел 7.11 “Поиск экстремума в файле”. Записать метод нахождения объекта с максимальным (минимальным) значением признака в раздел Метод.
Добавить в программу фрагмент {Решение задачи б)}, реализующий поиск нужного объекта с максимальным или минимальным значением признака.
Замечание. Так как входной файл в программе будет читаться повторно, то не забыть закрыть его и установить в начальное положение (процедура reset).
Сдать задачу преподавателю по правилам п.8.
-
Ознакомиться с разделом 8.3. Реализовать в программе ввод данных способом 2. Для
этого в программе определить строковую переменную, в которую будет считываться строка файла.
Например,
var
stroka : string [80];
Используя процедуры для обработки строковых переменных (см. раздел 8.3), заменить
в программе способ 1 ввода данных на способ 2.
Пример.
{Ввод
данных способом 2} readln
(strока);
{Выделение
name
и year
из str}
-
Отладить программу для составленных функциональных тестов и сдать работу
преподавателю, выполняя условия п.8.
