М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Arina150605
Arina150605
20.06.2021 19:51 •  Информатика

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

👇
Ответ:
qwaszxpolkmn129
qwaszxpolkmn129
20.06.2021

добрый вечер, самый оптимальный вариант использовать алгоритм де-йкстры (при поиски пишите без " - "), по правилам сообщества ссылки оставлять не могу, но на вики довольно хорошо расписано как его реализовать. там же есть и псевдокод. думаю если поищите в интернете найдете реализацию на pascal.

буду за отметку "лучший ответ"

4,6(80 оценок)
Ответ:
133fdsf7za
133fdsf7za
20.06.2021
Хорошо, давайте рассмотрим пошаговое решение задачи.

Шаг 1: Чтение весовой матрицы графа из файла
- Откройте файл, содержащий весовую матрицу графа, для чтения.
- Считайте матрицу построчно и сохраните значения в двумерный массив.
- Закройте файл после чтения.

Шаг 2: Ввод начальной и конечной вершин с клавиатуры
- Попросите пользователя ввести номер начальной вершины и сохраните значение в переменной.
- Попросите пользователя ввести номер конечной вершины и сохраните значение в другой переменной.

Шаг 3: Определение кратчайшего маршрута
- Создайте два пустых списка: список посещенных вершин и список расстояний до каждой вершины из начальной вершины.
- Инициализируйте список расстояний так, чтобы расстояние до начальной вершины было равно 0, а для всех остальных вершин - бесконечность.
- Создайте переменную "текущая вершина" и установите ее равной начальной вершине.
- Пока текущая вершина не станет конечной:
- Добавьте текущую вершину в список посещенных вершин.
- Для каждой непосещенной вершины, смежной с текущей:
- Если сумма расстояния до текущей вершины и веса ребра между текущей и смежной вершиной меньше, чем текущее расстояние до смежной вершины, обновите расстояние.
- Выберите следующую непосещенную вершину с минимальным расстоянием из списка расстояний.
- Установите текущую вершину равной выбранной вершине.

Шаг 4: Вывод кратчайшего маршрута
- Создайте пустой список, который будет хранить кратчайший маршрут.
- Начиная с конечной вершины, добавляйте вершины в список маршрута, двигаясь от конечной к начальной вершине по обновленным расстояниям.
- Разверните список маршрута, чтобы получить правильную последовательность вершин.

Шаг 5: Вывод результата
- Выведите на экран кратчайший маршрут и его длину.

Данное решение использует алгоритм Дейкстры для нахождения кратчайшего маршрута во взвешенном графе. Алгоритм работает во временной сложности O(E*log(V)), где E - количество ребер в графе, а V - количество вершин.
4,4(64 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ