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

Лабы / Other / ЯП_лаб_9

.doc
Скачиваний:
2
Добавлен:
18.02.2023
Размер:
64 Кб
Скачать

Лабораторная работа № 9

Тема: Программирование с использованием алгоритмов поиска

Цель: Изучить алгоритмы линейного и бинарного поиска. Научиться разрабатывать программы с использованием динамических структур на смежной памяти.

Ход работы

В задании необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем - поиск записи в списке двумя алгоритмами (линейным м бинарным). Сначала в программе должен вводиться размер списка (целое число), а сам список создается в виде динамического массива структур (использовать функции malloc, calloc, free). Ввод одной записи осуществляется в одной строке в соответствии с форматом.

После ввода списка программа переходит в диалоговый режим: запрос - ответ. Т.е. пользователь вводит искомое значение, а программа выдает ответ. Затем пользователь вводит следующее искомое значение, а программа - ответ и т.д. Признак завершения работы программы - ввод пустой строки при запросе искомого значения. Под ответом понимается вывод на экран найденной записи или, если запись не найдена, сообщения, что такой записи нет. Описание структур приводится после вариантов задания. Выбор алгоритма (линейный или бинарный) осуществляется пользователем. Поиск осуществляется по уникальному полю. Варианты заданий:

1

СТУДЕНТ

20 баллов

2

КНИГА

20 баллов

3

МАШИНА

20 баллов

4

ФАЙЛ

20 баллов

5

ПРОЦЕССОР

20 баллов

6

МАРШРУТ

20 баллов

7

ТЕЛЕФОННЫЙ НОМЕР

20 баллов

8

ВИДЕОДИСК

20 баллов

9

САМОЛЕТ

20 баллов

10

ПОЕЗД

20 баллов

11

БИЛЕТ

20 баллов

12

СООБЩЕНИЕ

20 баллов

13

УСТРОЙСТВО

20 баллов

14

НАКЛАДНАЯ

20 баллов

15

ФИРМА

20 баллов

ДОПОЛНИТЕЛЬНО:

 Реализация вычисления статистики поиска каждым алгоритмом премируется 10 баллами.

 Реализация проверки единственности значения данных уникального поля в записи премируется 10 баллами.

 Реализация выбора алгоритма поиска через параметры командной строки премируется 10 баллами.

Статистика поиска - среднее число итераций по списку при каждой операции поиска.

Уникальность значения поля - это отсутствие повторения данного значения в остальных записях списка.

Параметры командной строки должны быть следующими:

 a:метод - алгоритм поиска (linear - линейный, binary - бинарный);

При отсутствии или некорректном параметре командной строки должно выводиться соответствующее сообщение. Пример вызова программы с алгоритмом бинарного поиска: proga.exe a:binary.

СТУДЕНТ:

  • фамилия, имя, отчество (строки по 15 символов);

  • номер зачетной книжки (целое шестизначное число, уникальное поле);

  • дата рождения (в формате дд.мм.гггг).

Формат ввода: Фамилия Имя Отчество [№ зачетной книжки], Дата рождения

КНИГА:

  • фамилия и инициалы автора (строка 15 символов);

  • название книги (строка 20 символов);

  • год издания (целое четырехзначное число);

  • код ISBN (целое десятизначное число, уникальное поле).

Формат ввода: код ISBN: Фамилия И. О. «Название», год

МАШИНА:

  • марка (строка 15 символов);

  • модель (строка 5 символов);

  • серийный номер (целое семизначное число, уникальное поле);

  • год выпуска (целое четырехзначное число).

Формат ввода: Марка Модель [Серийный номер], Год выпуска

ФАЙЛ:

  • имя файла (строка 30 символов, уникальное поле);

  • размер файла (целое число);

  • дата создания (в формате дд.мм.гггг);

  • время создания (в формате чч:мм).

Формат ввода: Имя файла, размер файла, дата и время создания

ПРОЦЕССОР:

  • производитель (строка 10 символов);

  • модель (строка 15 символов);

  • тактовая частота (целое число);

  • порядковый номер (целое десятизначное число в 16-ричной системе, уникальное поле).

Формат ввода: Производитель Модель Тактовая частотаMHz Порядковый номер

МАРШРУТ:

  • номер маршрута (целое четырехзначное число, уникальное поле);

  • станция отправления (строка 15 символов);

  • конечная станция (строка 15 символов);

  • время отправления (в формате чч:мм);

  • время прибытия (в формате чч:мм).

Формат ввода: Номер маршрута Станция отправления (Время отправления) - Конечная станция (Время прибытия)

ТЕЛЕФОННЫЙ НОМЕР:

  • номер (целое семизначное число, уникальное поле);

  • ФИО владельца (строка 30 символов);

  • дата подключения (в формате дд.мм.гггг);

  • тарифный план (строка 15 символов).

Формат ввода: Номер ФИО владельца Дата подключения «Тарифный план»

ВИДЕОДИСК:

  • серийный номер (целое десятизначное число, уникальное поле)

  • название (строка 20 символов);

  • продолжительность (целое число, в минутах);

  • кинокомпания (строка 15 символов).

Формат ввода: Серийный номер Название фильма (Кинокомпания), Продолжительность

САМОЛЕТ:

  • серийный номер (целое восьмизначное число, уникальное поле)

  • марка - модель (строка 20 символов);

  • год выпуска (целое четырехзначное число);

  • время налета (целое число, в часах).

Формат ввода: Серийный номер Марка - модель, Год выпуска, Время начета

ПОЕЗД:

  • номер (целое трехзначное число, уникальное поле)

  • название (строка 20 символов);

  • станция отравления (строка 20 символов);

  • станция назначения (строка 20 символов);

  • количество вагонов (целое число).

Формат ввода: Номер «Название» (Станция отправления - Станция назначения), Количество вагонов

БИЛЕТ:

  • номер (целое шестизначное число, уникальное поле)

  • название сеанса (строка 30 символов);

  • дата и время сеанса (в формате дд.мм.гггг чч:мм);

  • номер ряда (целое число);

  • номер места (целое число).

Формат ввода: Номер «Название сеанса» Дата и время, Номер ряда, Номер места

СООБЩЕНИЕ:

  • номер устройства (целое трехзначное число)

  • ID сообщения (целое восьмизначно число в 16-ричной системе, уникальное поле);

  • текст (строка 30 символов);

  • дата и время отправления (в формате дд.мм.гггг чч:мм).

Формат ввода: Номер устройства: ID сообщения «Текст» Дата и время отправления

УСТРОЙСТВО:

  • тип устройства (строка 15 символов);

  • модель (строка 10 сиволов);

  • фирма производитель (строка 15 символов);

  • серийный номер (цифро-символьный код длиной 20 знаков, уникальное поле);

  • дата изготовления (в формате дд.мм.гггг).

Формат ввода: Тип устройства Модель (Фирма), Номер, Дата изготовления

НАКЛАДНАЯ:

  • номер накладной (целое число, уникальное поле);

  • дата накладной (в формате дд.мм.гггг);

  • общая сумма по накладной (вещественное число);

  • ФИО оператора (строка 20 символов).

Формат ввода: Номер: «Дата», Сумма, ФИО оператора

ФИРМА:

  • название (строка 20 символов);

  • УНН (целое десятизначное число, уникальное поле);

  • ФИО владельца (строка 20 символов);

  • дата основания (в формате дд.мм.гггг).

Формат ввода: Название [УНН], ФИО владельца, Дата основания

Контрольные вопросы

1. Дайте понятие поиска.

2. Опишите классификацию видов поиска.

3. Опишите алгоритм линейного поиска.

4. Какие преимущества и недостатки имеет алгоритм линейного поиска.

5. Опишите алгоритм бинарного поиска.

6. Какие преимущества и недостатки имеет алгоритм бинарного поиска.

7. Какие библиотечные функции реализуют алгоритмы поиска.

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