Реферат: Нахождение пути от одного населённого пункта к другому
Для реализации запроса имени файла и чтения данных из файла в массив используется процедура load, которая сначала выводит запрос имени файла на экран, осуществляет ввод имени файла, открывает файл, имя которого вводится пользователем, считывает данные в массив городов, затем в массив дорог.
Для поиска пути между городами используется процедура FindPath, которая осуществляет вывод списка городов на экран, опрос клавиатуры, при этом пользователь может выбрать курсором начальный и конечный населённый пункт в своём пути, процедура FindPath вызывает с параметрами рекурсивную процедуру, которая производит поиск оптимального маршрута между выбранными городами.
Для поиска маршрута используется рекурсивная процедура findnext, которой при её вызове передаются следующие параметры:
a(vec) - вектор, каждому городу соответствует номер в маршруте или ноль, если города нет в маршруте;
tv(integer) - город, следующий в маршруте;
nv(integer) - город, в который необходимо добраться;
lv(integer) - количество пройденных городов.
На каждом этапе процедура проверяет все, не пройденные достигнутые вершины, и либо находит заданный путь, если достигнута конечная вершина, либо вызывает саму себя для всех, не пройденных вершин.
1.3 Кодирование
Краткая функциональная спецификация.
Процедура InputData
Назначение: Осуществляет ввод исходных данных пользователем с клавиатуры.
Входные данные: нет.
Выходные данные: нет.
Не вызывает никаких процедур.
Вызывается из основной программы.
Процедура OutputData
Назначение: Осуществляет вывод данных на экран.
Входные данные: нет.
Выходные данные: нет.
Не вызывает никаких процедур.
Вызывается из основной программы.
Процедура Load
Назначение: Осуществляет запрос имени, чтение файла данных с этим именем в массив городов и в массив дорог.
Входные данные: нет.
Выходные данные: нет.
Не вызывает никаких процедур.
Вызывается из основной программы.
Процедура Save