описания - матрица
описания - матрица расстояний; инициализация данных}
solve;{решатель}
out;{вывод результата}
end.
Процедуры init и out очевидны (должны писаться «на автомате»). Уточняем процедуру solve. Первый «набросок».
Procedure solve;
var ?
<процедуры и функции>;
begin
init_solve;{инициализация переменных процедуры solve}
find_tree;{построение каркаса}
eiler_way;{поиск эйлерова цикла}
komm_way;{поиск пути коммивояжера}
end;
Прежде чем продолжать уточнение, необходимо определить структуры данных этой части логики и взаимодействие ее составных частей. Во-первых, при построении каркаса необходимо иметь список ребер, отсортированный в порядке возрастания их весов (алгоритмы Краскала и Прима). Следовательно, на входе процедуры find_tree матрица расстояний A, на выходе - B, рабочие структуры - массив для хранения списка ребер. Внутренние процедуры: формирование списка ребер и сортировки. Продолжим рассмотрение. Эйлеров цикл необходимо где-то хранить, пусть это
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа