Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
31.03.2015
Размер:
79.87 Кб
Скачать

19

Лабораторная работа №3.

ИНФОРМАЦИОННЫЙ ПОИСК

Целью работы является решение задачи поиска объекта в последовательности данных простого типа, представленных в файле, и анализ зависимости структуры алгоритма от ключа

поиска.

Приобретаются такие навыки и приемы программирования, как работа с текстовыми файлами, повышение эффективности программы, работа со строковыми типами, способы программной реализации ввода данных из файла, поиск экстремума в последовательности.

Условие задачи. В каждой строке текстового файла задана информация о

некотором объекте с именем Q и признаком P.

Просматривая файл, выдать сообщение:

  1. О первом найденном объекте с заданным значением признака р;

б) об объекте с максимальным (минимальным) значением признака Р.

Дополнительные требования.

Ввод данных при решении задачи должен осуществляться из файла двумя способами.

Способ 1. Данные Q и P вводятся из каждой строки файла.

Способ 2. Каждая строка файла вводится как символьная строка (типа string), а затем

данные P и Q выделяются из символьной строки.

Выходные данные при решении задачи должны выводиться в файл.

Методические указания

Вначале выполняются задачи a), б) для ввода данных способом 1, затем задачи a), б) для

ввода данных способом 2.

Этапы выполнения лабораторной работы

Выполнение лабораторной работы должно состоять из этапов, описанных ниже. В качестве иллюстрации поэтапного выполнения работы рассматривается задача: “ Найти один из кинофильмов, вышедший на экран в 1990 г. ”.

  1. Составить спецификацию задачи, подбирая имена переменных и файлов, отражаю-

щие смысл задачи.

Пример. Спецификация.

Задача. Найти один из кинофильмов, вышедший на экран в 1990 г.

Входные данные.

Состав: лит name – название фильма,

цел year - год выхода на экран;

Диапазон: name  20 символов; 1950  year  1999;

<name> <year>

fin

конец файла

Выходные данные.

Состав: лит name – название фильма

К/ф, вышедший на экран в 1990 г.:

 <name>

 Такого нет

fout

Метод.

Ввод данных из файла реализуется способом 1.

Поиск в файле завершается, если найден 1990 год. Если такой год не найден, то поиск

завершается по условию конец файла.

  1. Создать директорию для лабораторной работы на рабочем диске (например,d:\LAB3),

где будут записаны файлы с программой, входными данными и выходными данными.

3. Разработать программу для контроля входных данных(см. ниже),сохранив ее в LAB3.

{Один из к/ф, вышедший на экран в 1990 г.?}

program Search (fin, fout);

var name:string [20];{ название к/ф}

year:1950..1999;{год выхода на экран}

fin, fout :text;{ имя файловой переменной}

begin

{Инициализация выходного файла}

assign (fout, ‘res.txt’);

rewrite (fout);

writeln(fout, 'К/ф, вышедший на экран в 1990 г.:');

{Инициализация входного файла}

assign ( fin,'film1.txt');

reset(fin);

{Ввод способом 1 и контрольная печать данных}

readln(fin,name,year);

writeln (fout, name,year);

readln(fin, name,year);

writeln (fout, name,year);

close(fin);

end.

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

Поэтому запускать компилятор надо с рабочего диска, где находятся программы пользователя.

В качестве рабочего рекомендуется использо- вать жесткий диск.

Использование в каче -стве рабочего диска съемного диска увеличива- ет время выполнения программы.

4. Тестирование с использованием одного файла входных данных.

Создать файл с входными данными (каждый объект с признаком – в отдельной строке), где существует один или несколько объектов с заданным значением признака.

Сохранить файл (например, в LAB3\film1.txt). Записать в спецификацию, раздел Функциональные тесты.

Прибытие поезда 1885

Асса 1987

Терминатор 2 1990

Пример. film1.txt (fin)

Выполнить программу и проверить соответствие данных в файлах film1.txt и res.txt.

  1. Для разработки алгоритма программы необходимо ознакомиться с разделом 7.5.

  1. Изменить текст программы для решения задачи а) способом 1.

Для тестирования программы и сдачи работы преподавателю на экране монитора дол -

жны быть 3 окна: с программой, входным файлом и файлом результатов. Выполнив программу и убедившись в правильности результата поиска нужного объекта, следует подготовить тест для случая, когда объекта с заданным значением признака не существует. Для этого можно воспользоваться тем же входным файлом, заменив у объектов значения признаков, равные P, на другие. Например, заменив год 1990 на 1991.

Программа имеет следующий окончательный вид для решения задачи а) способом 1:

Соседние файлы в папке Metod1_2010