Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 12

Ориентированные графы

05.11.2013, 22:31. Показов 2156. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто может помогите пожалуйста нужно написать программу:Задана система двусторонних дорог, где для любой пары городов есть соединяющий их путь. Найти город с минимальной суммой расстояний до остальных городов. Путь между двумя городами в две стороны может быть разным. Нужно произвести поиск кратчайшего пути между двумя городами по алгоритму Флойда.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2013, 22:31
Ответы с готовыми решениями:

Объектно ориентированные технологии
Описать объект, имеющий необходимые поля, конструктор, деструктор, и перечисленные методы. Разработать тестовую программу для иллюстрации...

Графы
Сформировать умения разрабатывать алгоритмы и программы с использова-нием алгоритмов на графах Программное обеспечение: TURBO PASCAL 7.1 ...

Графы
Где можно почитать, как решать графы на pascal?

2
27 / 6 / 3
Регистрация: 24.10.2013
Сообщений: 43
05.11.2013, 22:37
Лучший ответ Сообщение было отмечено Nastya1006 как решение

Решение

Рассмотрим взвешенный орграф G с N вершинами. Алгоритм Флойда находит в нем длину минимальных путей из каждой вершины в каждую.

Реализация алгоритма предельно проста. Мы будем записывать решение в массив V размера NxN: V[i,j] - длина минимального пути из i в j. Вначале V=G. Мы пробегаем все вершины j,i,k и, в том случае если V[i,k] больше чем V[i,j]+V[j,k], то есть пройти из i в k через j быстрее, чем напрямую, мы изменяем значение V[i,k] на V[i,j]+V[j,k].
Реализация алгоритма:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const 
  MaxN = 100;
var 
  N : Integer;
  G : array [1 .. MaxN,1 .. MaxN] of Integer;
  V : array [1 .. MaxN,1 .. MaxN] of Longint;
procedure Floyd;
var 
  I,J,K : Integer;
begin 
  for I:=1 to N do
  for J:=1 to N do
    V[I,J] := G[I,J];
  for I:=1 to N do
    V[I,I] := 0;
  for J:=1 to N do
 for I:=1 to N do
 for K:=1 to N do
    if (V[I,J]<>-1) and (V[J,K]<>-1) and 
    ((V[I,K]=-1) or (V[I,K]>V[I,J]+V[J,K])) then
      V[I,K] := V[I,J] + V[J,K];
end;
Добавлено через 1 минуту
или же тут на форуме
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
type
Graph = array[1..nn,1..nn] of integer;
 
Procedure Floyd(var a, p: graph);
var i,j,k:integer;
c: graph;
 
begin
//A - матрица содержащая кратчайшие пути.
//P - матрица, сохраняющая маршруты.
Randomize;
for i:=1 to nn do
for j:=1 to nn do
c[i,j] := random(100);
for i:=1 to nn do
for j:=1 to nn do
begin
if Terminated then exit;
Synchronize(UpdateProgress);
a[i,j]:=c[i,j];
p[i,j]:=0;
end;
for i:=1 to nn do a[i,i]:=0;
for k:=1 to nn do
for i:=1 to nn do
for j:=1 to nn do
if (a[i,k]+a[k,j] < a) then
begin
if Terminated then exit;
a[i,j]:=a[i,k]+a[k,j];
p[i,j]:=k;
end;
end;
0
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 12
06.11.2013, 00:07  [ТС]
Спасибо большое,и извините за наглость, а можно эту решение этой программы реализовать, не с помощью массива, а списка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.11.2013, 00:07
Помогаю со студенческими работами здесь

Графы
Все указана на картинках

Графы
Задача на графы: На олимпиаду прибыло N человек. Некоторые из них знакомы между собой. Можно ли опосредованно перезнакомить их всех...

Графы
Не могу решить задачу. Помогите с решением!!! В заданном графе необходимо определить существует ли цикл, проходящий по каждому ребру...

Графы
Кто-нибудь может дать ссылку на ресурс, в котором написано что такое графы и что с ними едят)))

Графы
Помогите пожалуйста не понимаю как это работает, прошу помогите (сделайте медвежью услугу), заранее спасибо


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru