<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3785538</guid>
        <pubDate>Fri, 14 Dec 2018 10:28:07 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3785538</link>
        <description><![CDATA[Ильнур: <strong class='tag-b'>andrew.virus</strong>,<br>
Добрый день&#33; Хотел у вас узнать: методы описанные в статье возможно ли применить в Excel VBA к поиску маршрута по схеме (схема состоит из фигур Shapes и присоединенных/наложенных к ним линий)?]]></description>
        <author>Ильнур</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3236571</guid>
        <pubDate>Tue, 13 Nov 2012 00:11:40 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3236571</link>
        <description><![CDATA[UnknownSpace: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=255614&view=findpost&p=3235800'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andrew.virus &#064; <time class="tag-quote__quoted-time" datetime="2012-11-11T11:06:54+00:00">11.11.12, 11:06</time></span><div class='quote '><strong class='tag-b'>UnknownSpace</strong>, код алгоритма Флойда на Delphi можно посмотреть в статье <a class='tag-url' href='http://mirgames.ru/blog/basic/4.html' target='_blank'>&quot;Основы поиска путей&quot;</a> ...<br>
<br>
з.ы.: там помимо данного алгоритма приведены и другие (алгоритм Дейкстры, воновой алгоритм, ...) с разбором достоинств и недостатков ....</div></div><br>
Дядька, мне нужна реализация ИМЕННО твоего кода, который ты выкладывал&#33; =.(]]></description>
        <author>UnknownSpace</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3235800</guid>
        <pubDate>Sun, 11 Nov 2012 11:06:54 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3235800</link>
        <description><![CDATA[andrew.virus: <strong class='tag-b'>UnknownSpace</strong>, код алгоритма Флойда на Delphi можно посмотреть в статье <a class='tag-url' href='http://mirgames.ru/blog/basic/4.html' target='_blank'>&quot;Основы поиска путей&quot;</a> ...<br>
<br>
з.ы.: там помимо данного алгоритма приведены и другие (алгоритм Дейкстры, воновой алгоритм, ...) с разбором достоинств и недостатков ....]]></description>
        <author>andrew.virus</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3223922</guid>
        <pubDate>Tue, 23 Oct 2012 20:32:52 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3223922</link>
        <description><![CDATA[UnknownSpace: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=255614&view=findpost&p=3223261'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andrew.virus &#064; <time class="tag-quote__quoted-time" datetime="2012-10-22T17:33:13+00:00">22.10.12, 17:33</time></span><div class='quote '></div></div><br>
пожалуйста, если ты не сильно занят можешь подправить код?<br>
За ранее спасибо&#33;]]></description>
        <author>UnknownSpace</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3223261</guid>
        <pubDate>Mon, 22 Oct 2012 17:33:13 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3223261</link>
        <description><![CDATA[andrew.virus: <strong class='tag-b'>UnknownSpace</strong>, откроется но для использования непосредственно в Delphi придется немного подправить код вывода ...]]></description>
        <author>andrew.virus</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3222830</guid>
        <pubDate>Sun, 21 Oct 2012 21:08:51 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=3222830</link>
        <description><![CDATA[UnknownSpace: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=255614&view=findpost&p=2110318'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andrew.virus &#064; <time class="tag-quote__quoted-time" datetime="2008-11-08T13:21:07+00:00">08.11.08, 13:21</time></span><div class='quote '><strong class='tag-b'>nell</strong> как я вижу по книжке Новикова алгоритм нужно сделать ... 8-) <br>
<br>
вот код реализации данного алгоритма в моем исполнении:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Program Algoritm_Floid;</div><div class="code_line">{Программа поиска кратчайшего пути между вершинами и его длины при</div><div class="code_line">помощи алгоритма Флойда}</div><div class="code_line">Uses Crt,Graph,Graphs;</div><div class="code_line">Const</div><div class="code_line">&nbsp;&nbsp; M=19; {Предельное число вершин графа}</div><div class="code_line">&nbsp;&nbsp; R=200; {Радиус окружности на которой лежат вершины (центры окружностей)}</div><div class="code_line">Type</div><div class="code_line">&nbsp;&nbsp; Dmas = Array[1..M,1..M] Of Integer;</div><div class="code_line">Var</div><div class="code_line">&nbsp;&nbsp; N, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{Число вершин графа}</div><div class="code_line">&nbsp;&nbsp; I,J,</div><div class="code_line">&nbsp;&nbsp; Nac, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{Номер начальной вершины}</div><div class="code_line">&nbsp;&nbsp; Kon: Integer; {Номер конечной вершины}</div><div class="code_line">&nbsp;&nbsp; T, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{Матрица, хранящая длины путей}</div><div class="code_line">&nbsp;&nbsp; H, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{Матрица, хранящая пути}</div><div class="code_line">&nbsp;&nbsp; C: Dmas; &nbsp; &nbsp; &nbsp;{Матрица, хранящая длины дуг}</div><div class="code_line">{===========================================================================}</div><div class="code_line">{ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Процедуры используемые в программе &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">{===========================================================================}</div><div class="code_line">&nbsp;Procedure Dlina;</div><div class="code_line">&nbsp;{----------------------------------}</div><div class="code_line">&nbsp;{Процедура задания матрицы длин дуг}</div><div class="code_line">&nbsp;{----------------------------------}</div><div class="code_line">&nbsp;Begin</div><div class="code_line">&nbsp;GotoXY(7,7);</div><div class="code_line">&nbsp;Write(&#39;Введите число вершин графа: &#39;);</div><div class="code_line">&nbsp;Readln(N); {Задание значения числа вершин}</div><div class="code_line">&nbsp;If N&#62;M Then Halt; {Если вершин больше чем константа M, то выход из программы}</div><div class="code_line">&nbsp;Clrscr; {Очистка экрана}</div><div class="code_line">&nbsp;&nbsp;If N&#62;5 Then &nbsp;{Автоматическое задание значений длин дуг}</div><div class="code_line">&nbsp;&nbsp; &nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;If I=J Then C[I,J]:=0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Else C[I,J]:=Random(100)+1 {Генерация текущего значения}</div><div class="code_line">&nbsp;&nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; Begin &nbsp; &nbsp;{Задание длин дуг вводом с клавиатуры}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If I&#60;&#62;J Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Write(&#39;Введите вес дуги [&#39;,I,&#39;,&#39;,J,&#39;]:= &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Readln(C[I,J]) {Ввод с клавиатуры значения длины дуги}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Else If I=J Then C[I,J]:=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp;{Вывод полученной матрицы дуг}</div><div class="code_line">&nbsp;&nbsp;Clrscr; {Очистка экрана}</div><div class="code_line">&nbsp;&nbsp;Writeln(&#39;Матрица длин дуг&#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;Write(&#39; &nbsp; &#39;);</div><div class="code_line">&nbsp;&nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Write(&#39; &nbsp;&#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Write(&#39; &#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(White); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Write(C[I,J]:3,&#39; &#39;); {Вывод текущего элемента матрицы}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Writeln</div><div class="code_line">&nbsp;&nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp;Readln {Задержка экрана}</div><div class="code_line">&nbsp;&nbsp;End;</div><div class="code_line">&nbsp;&nbsp;{---------------------------------------------------------------------}</div><div class="code_line">&nbsp;&nbsp;Procedure Floid;</div><div class="code_line">&nbsp;&nbsp;{-----------------------------------------------}</div><div class="code_line">&nbsp;&nbsp;{Процедура нахождения кратчайших путей и их длин}</div><div class="code_line">&nbsp;&nbsp;{-----------------------------------------------}</div><div class="code_line">&nbsp;&nbsp;Var</div><div class="code_line">&nbsp;&nbsp; &nbsp; I,J,K: Integer;</div><div class="code_line">&nbsp;&nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; T[I,J]:=C[I,J]; {Начальная установка длин путей}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; If C[I,J]=100 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;H[I,J]:=0 {Нет дуги из вершины &quot;I&quot; в &quot;J&quot; вершину}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;H[I,J]:=J {Есть дуга из вершины &quot;I&quot; в &quot;J&quot; вершину}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp; &nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;For K:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; If (I&#60;&#62;J) And (T[J,I]&#60;&#62;100) And (I&#60;&#62;K) And (T[I,K]&#60;&#62;100)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;And ((T[J,K]=100) Or (T[J,K]&#62;T[J,I]+T[I,K])) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; H[J,K]:=I; {Запоминаем новый путь}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; T[J,K]:=T[J,I]+T[I,K] {Запоминаем длину данного нового пути}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If T[J,J]&#60;0 Then Break {Нет решения: вершина входит в цикл отрицательной длины}</div><div class="code_line">&nbsp;&nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp;{Вывод полученной матрицы путей}</div><div class="code_line">&nbsp;&nbsp;Clrscr; {Очистка экрана}</div><div class="code_line">&nbsp;&nbsp;Writeln(&#39;Матрица путей&#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;Write(&#39; &nbsp; &#39;);</div><div class="code_line">&nbsp;&nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Write(&#39; &nbsp;&#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Write(&#39; &#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(White); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Write(H[I,J]:3,&#39; &#39;); {Вывод текущего элемента матрицы}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Writeln</div><div class="code_line">&nbsp;&nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp;Readln; {Задержка экрана}</div><div class="code_line">&nbsp;&nbsp;{Вывод полученной матрицы длин путей}</div><div class="code_line">&nbsp;&nbsp;Clrscr; {Очистка экрана}</div><div class="code_line">&nbsp;&nbsp;Writeln(&#39;Матрица длин путей&#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;Write(&#39; &nbsp; &#39;);</div><div class="code_line">&nbsp;&nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Write(&#39; &nbsp;&#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Write(&#39; &#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(White); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Write(T[I,J]:3,&#39; &#39;); {Вывод текущего элемента матрицы}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Writeln</div><div class="code_line">&nbsp;&nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp;Readln; {Задержка экрана}</div><div class="code_line">&nbsp;&nbsp;Clrscr; {Очистка экрана}</div><div class="code_line">&nbsp;&nbsp;GotoXY(10,10);</div><div class="code_line">&nbsp;&nbsp;Write(&#39;Введите номер начальной вершины пути: &#39;); Readln(Nac);</div><div class="code_line">&nbsp;&nbsp;GotoXY(10,12);</div><div class="code_line">&nbsp;&nbsp;Write(&#39;Введите номер конечной вершины пути: &#39;); Readln(Kon);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;Write(&#39;Длина пути из вершины &#39;,Chr(64+Nac),&#39; в вершину &#39;,Chr(64+Kon),&#39; равна: &#39;,T[Nac,Kon]);</div><div class="code_line">&nbsp;&nbsp;Readln &nbsp;{Задержка экрана}</div><div class="code_line">&nbsp;&nbsp;End;</div><div class="code_line">&nbsp;{--------------------------------------------------------------------------}</div><div class="code_line">&nbsp;&nbsp;Procedure Koordinata;</div><div class="code_line">&nbsp;&nbsp;{-----------------------------------}</div><div class="code_line">&nbsp;&nbsp;{Процедура вывода найденных значений}</div><div class="code_line">&nbsp;&nbsp;{-----------------------------------}</div><div class="code_line">&nbsp;Var</div><div class="code_line">&nbsp;&nbsp; Q,W: Real;</div><div class="code_line">&nbsp;&nbsp; &nbsp; K: Char;</div><div class="code_line">&nbsp;&nbsp; &nbsp; X1,X2,Y1,Y2,</div><div class="code_line">&nbsp;&nbsp; &nbsp; X: Integer;</div><div class="code_line">&nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; Open_Graph; {Подключение графического режима}</div><div class="code_line">&nbsp;&nbsp;Q:=2*Pi/N; {Установка значения угла между границами сектора}</div><div class="code_line">&nbsp;&nbsp;{Задание координат вершин графа}</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; W:=I*Q; {Установка текущего угла}</div><div class="code_line">&nbsp;&nbsp; &nbsp; {Установка координат}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;X1:=300+Trunc(R*cos(W)); Y1:=235+Trunc(R*sin(W));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;X2:=300+Trunc((R+25)*cos(W)); Y2:=235+Trunc((R+25)*sin(W));</div><div class="code_line">&nbsp;&nbsp; &nbsp; {-------------------}</div><div class="code_line">&nbsp;&nbsp; &nbsp; K:=Chr(64+I); {Задание текущего названия вершины}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetColor(White); {Задание цвета названий вершин}</div><div class="code_line">&nbsp;&nbsp; &nbsp; OutTextXY(X2,Y2,K); {Вывод названия вершины}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetColor(Green); {Задание цвета вершины}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For J:=1 To 7 Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Circle(X1,Y1,J) {Вывод концентрических окружностей для задания вершины на экране}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp; &nbsp;{Вывод кратчайшего пути}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;X:=Nac;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;W:=Q*Nac; {Установка текущего угла}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{Установка координат}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;X1:=300+Trunc(R*cos(W)); Y1:=235+Trunc(R*sin(W));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{-------------------}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SetColor(Red);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;PutPixel(X1,Y1,Red);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; X:=H[X,Kon]; {Переход на следующую вершину в пути}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; W:=Q*X; {Установка текущего угла}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {Установка координат}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; X2:=300+Trunc(R*cos(W)); Y2:=235+Trunc(R*sin(W));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {-------------------}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Line(X1,Y1,X2,Y2);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; X1:=X2;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Y1:=Y2</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Until X=Kon;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetColor(White);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;OutTextXY(3,450,&#39;Press any key, please...&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Readln; &nbsp;{Задержка экрана}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Close_Graph; {Отключение графического режима}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Clrscr</div><div class="code_line">&nbsp;&nbsp; &nbsp;End;</div><div class="code_line">&nbsp;{----------------------------------------------------------------------}</div><div class="code_line">{===========================================================================}</div><div class="code_line">Begin</div><div class="code_line">{-----------------------}</div><div class="code_line">{Основной блок программы}</div><div class="code_line">{-----------------------}</div><div class="code_line">&nbsp;ClrScr; {Очистка экрана}</div><div class="code_line">&nbsp;TextBackGround(Black); &nbsp;{Задание цвета фона}</div><div class="code_line">&nbsp;TextColor(White); &nbsp; &nbsp; &nbsp; {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp;Clrscr;</div><div class="code_line">&nbsp;&nbsp;Dlina; &nbsp; &nbsp; {Задание длин дуг}</div><div class="code_line">&nbsp;&nbsp;Floid; &nbsp; &nbsp; {Поиск кратчайшего пути и его длины}</div><div class="code_line">&nbsp;&nbsp;Koordinata {Вывод найденных значений}</div><div class="code_line">End.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
з.ы.: полный пример в архиве, там пара дополнительных модуля для Pascal ....</div></div><br>
andrew.virus<br>
<br>
твой код на делфи 7  откроется?]]></description>
        <author>UnknownSpace</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2578337</guid>
        <pubDate>Sun, 25 Apr 2010 19:45:20 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2578337</link>
        <description><![CDATA[Sergey_1990: А ты уверен, что прога четко работает? У меня там какая то матрица, длин путей, с нулями вся получается&#33;?]]></description>
        <author>Sergey_1990</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2578333</guid>
        <pubDate>Sun, 25 Apr 2010 19:28:33 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2578333</link>
        <description><![CDATA[andrew.virus: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=255614&view=findpost&p=2578302'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Sergey_1990 &#064; <time class="tag-quote__quoted-time" datetime="2010-04-25T18:07:38+00:00">25.04.10, 18:07</time></span><div class='quote '>Если ребра нету, то в вводится 0?</div></div><br>
да, если нет ребра то 0, иначе указывается длина пути]]></description>
        <author>andrew.virus</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2578302</guid>
        <pubDate>Sun, 25 Apr 2010 18:07:38 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2578302</link>
        <description><![CDATA[Sergey_1990: andrew.virus<br><br>Если ребра нету, то в вводится 0?]]></description>
        <author>Sergey_1990</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2110482</guid>
        <pubDate>Sat, 08 Nov 2008 19:26:42 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2110482</link>
        <description><![CDATA[nell: <strong class='tag-b'>albom</strong> Смотрю в книгу - ..вижу непонятно что, это про меня, спасибо, теперь все работает  <br>
<strong class='tag-b'>andrew.virus</strong> Когда-нибудь я тоже так смогу... А код я все-таки свой буду сдавать... ну может слегка модифицированный :) Спасибо огромное, надеюсь со всем разберусь]]></description>
        <author>nell</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2110318</guid>
        <pubDate>Sat, 08 Nov 2008 13:21:07 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2110318</link>
        <description><![CDATA[andrew.virus: <strong class='tag-b'>nell</strong> как я вижу по книжке Новикова алгоритм нужно сделать ... 8-) <br>
<br>
вот код реализации данного алгоритма в моем исполнении:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Program Algoritm_Floid;</div><div class="code_line">{Программа поиска кратчайшего пути между вершинами и его длины при</div><div class="code_line">помощи алгоритма Флойда}</div><div class="code_line">Uses Crt,Graph,Graphs;</div><div class="code_line">Const</div><div class="code_line">&nbsp;&nbsp; M=19; {Предельное число вершин графа}</div><div class="code_line">&nbsp;&nbsp; R=200; {Радиус окружности на которой лежат вершины (центры окружностей)}</div><div class="code_line">Type</div><div class="code_line">&nbsp;&nbsp; Dmas = Array[1..M,1..M] Of Integer;</div><div class="code_line">Var</div><div class="code_line">&nbsp;&nbsp; N, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{Число вершин графа}</div><div class="code_line">&nbsp;&nbsp; I,J,</div><div class="code_line">&nbsp;&nbsp; Nac, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{Номер начальной вершины}</div><div class="code_line">&nbsp;&nbsp; Kon: Integer; {Номер конечной вершины}</div><div class="code_line">&nbsp;&nbsp; T, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{Матрица, хранящая длины путей}</div><div class="code_line">&nbsp;&nbsp; H, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{Матрица, хранящая пути}</div><div class="code_line">&nbsp;&nbsp; C: Dmas; &nbsp; &nbsp; &nbsp;{Матрица, хранящая длины дуг}</div><div class="code_line">{===========================================================================}</div><div class="code_line">{ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Процедуры используемые в программе &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">{===========================================================================}</div><div class="code_line">&nbsp;Procedure Dlina;</div><div class="code_line">&nbsp;{----------------------------------}</div><div class="code_line">&nbsp;{Процедура задания матрицы длин дуг}</div><div class="code_line">&nbsp;{----------------------------------}</div><div class="code_line">&nbsp;Begin</div><div class="code_line">&nbsp;GotoXY(7,7);</div><div class="code_line">&nbsp;Write(&#39;Введите число вершин графа: &#39;);</div><div class="code_line">&nbsp;Readln(N); {Задание значения числа вершин}</div><div class="code_line">&nbsp;If N&#62;M Then Halt; {Если вершин больше чем константа M, то выход из программы}</div><div class="code_line">&nbsp;Clrscr; {Очистка экрана}</div><div class="code_line">&nbsp;&nbsp;If N&#62;5 Then &nbsp;{Автоматическое задание значений длин дуг}</div><div class="code_line">&nbsp;&nbsp; &nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;If I=J Then C[I,J]:=0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Else C[I,J]:=Random(100)+1 {Генерация текущего значения}</div><div class="code_line">&nbsp;&nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; Begin &nbsp; &nbsp;{Задание длин дуг вводом с клавиатуры}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If I&#60;&#62;J Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Write(&#39;Введите вес дуги [&#39;,I,&#39;,&#39;,J,&#39;]:= &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Readln(C[I,J]) {Ввод с клавиатуры значения длины дуги}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Else If I=J Then C[I,J]:=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp;{Вывод полученной матрицы дуг}</div><div class="code_line">&nbsp;&nbsp;Clrscr; {Очистка экрана}</div><div class="code_line">&nbsp;&nbsp;Writeln(&#39;Матрица длин дуг&#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;Write(&#39; &nbsp; &#39;);</div><div class="code_line">&nbsp;&nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Write(&#39; &nbsp;&#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Write(&#39; &#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(White); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Write(C[I,J]:3,&#39; &#39;); {Вывод текущего элемента матрицы}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Writeln</div><div class="code_line">&nbsp;&nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp;Readln {Задержка экрана}</div><div class="code_line">&nbsp;&nbsp;End;</div><div class="code_line">&nbsp;&nbsp;{---------------------------------------------------------------------}</div><div class="code_line">&nbsp;&nbsp;Procedure Floid;</div><div class="code_line">&nbsp;&nbsp;{-----------------------------------------------}</div><div class="code_line">&nbsp;&nbsp;{Процедура нахождения кратчайших путей и их длин}</div><div class="code_line">&nbsp;&nbsp;{-----------------------------------------------}</div><div class="code_line">&nbsp;&nbsp;Var</div><div class="code_line">&nbsp;&nbsp; &nbsp; I,J,K: Integer;</div><div class="code_line">&nbsp;&nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; T[I,J]:=C[I,J]; {Начальная установка длин путей}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; If C[I,J]=100 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;H[I,J]:=0 {Нет дуги из вершины &quot;I&quot; в &quot;J&quot; вершину}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;H[I,J]:=J {Есть дуга из вершины &quot;I&quot; в &quot;J&quot; вершину}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp; &nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;For K:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; If (I&#60;&#62;J) And (T[J,I]&#60;&#62;100) And (I&#60;&#62;K) And (T[I,K]&#60;&#62;100)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;And ((T[J,K]=100) Or (T[J,K]&#62;T[J,I]+T[I,K])) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; H[J,K]:=I; {Запоминаем новый путь}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; T[J,K]:=T[J,I]+T[I,K] {Запоминаем длину данного нового пути}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If T[J,J]&#60;0 Then Break {Нет решения: вершина входит в цикл отрицательной длины}</div><div class="code_line">&nbsp;&nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp;{Вывод полученной матрицы путей}</div><div class="code_line">&nbsp;&nbsp;Clrscr; {Очистка экрана}</div><div class="code_line">&nbsp;&nbsp;Writeln(&#39;Матрица путей&#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;Write(&#39; &nbsp; &#39;);</div><div class="code_line">&nbsp;&nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Write(&#39; &nbsp;&#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Write(&#39; &#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(White); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Write(H[I,J]:3,&#39; &#39;); {Вывод текущего элемента матрицы}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Writeln</div><div class="code_line">&nbsp;&nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp;Readln; {Задержка экрана}</div><div class="code_line">&nbsp;&nbsp;{Вывод полученной матрицы длин путей}</div><div class="code_line">&nbsp;&nbsp;Clrscr; {Очистка экрана}</div><div class="code_line">&nbsp;&nbsp;Writeln(&#39;Матрица длин путей&#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;Write(&#39; &nbsp; &#39;);</div><div class="code_line">&nbsp;&nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Write(&#39; &nbsp;&#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(Green); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Write(&#39; &#39;,Chr(64+I),&#39; &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TextColor(White); {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp; &nbsp; For J:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Write(T[I,J]:3,&#39; &#39;); {Вывод текущего элемента матрицы}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Writeln</div><div class="code_line">&nbsp;&nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp;Readln; {Задержка экрана}</div><div class="code_line">&nbsp;&nbsp;Clrscr; {Очистка экрана}</div><div class="code_line">&nbsp;&nbsp;GotoXY(10,10);</div><div class="code_line">&nbsp;&nbsp;Write(&#39;Введите номер начальной вершины пути: &#39;); Readln(Nac);</div><div class="code_line">&nbsp;&nbsp;GotoXY(10,12);</div><div class="code_line">&nbsp;&nbsp;Write(&#39;Введите номер конечной вершины пути: &#39;); Readln(Kon);</div><div class="code_line">&nbsp;&nbsp;Writeln;</div><div class="code_line">&nbsp;&nbsp;Write(&#39;Длина пути из вершины &#39;,Chr(64+Nac),&#39; в вершину &#39;,Chr(64+Kon),&#39; равна: &#39;,T[Nac,Kon]);</div><div class="code_line">&nbsp;&nbsp;Readln &nbsp;{Задержка экрана}</div><div class="code_line">&nbsp;&nbsp;End;</div><div class="code_line">&nbsp;{--------------------------------------------------------------------------}</div><div class="code_line">&nbsp;&nbsp;Procedure Koordinata;</div><div class="code_line">&nbsp;&nbsp;{-----------------------------------}</div><div class="code_line">&nbsp;&nbsp;{Процедура вывода найденных значений}</div><div class="code_line">&nbsp;&nbsp;{-----------------------------------}</div><div class="code_line">&nbsp;Var</div><div class="code_line">&nbsp;&nbsp; Q,W: Real;</div><div class="code_line">&nbsp;&nbsp; &nbsp; K: Char;</div><div class="code_line">&nbsp;&nbsp; &nbsp; X1,X2,Y1,Y2,</div><div class="code_line">&nbsp;&nbsp; &nbsp; X: Integer;</div><div class="code_line">&nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; Open_Graph; {Подключение графического режима}</div><div class="code_line">&nbsp;&nbsp;Q:=2*Pi/N; {Установка значения угла между границами сектора}</div><div class="code_line">&nbsp;&nbsp;{Задание координат вершин графа}</div><div class="code_line">&nbsp;&nbsp;For I:=1 To N Do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; W:=I*Q; {Установка текущего угла}</div><div class="code_line">&nbsp;&nbsp; &nbsp; {Установка координат}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;X1:=300+Trunc(R*cos(W)); Y1:=235+Trunc(R*sin(W));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;X2:=300+Trunc((R+25)*cos(W)); Y2:=235+Trunc((R+25)*sin(W));</div><div class="code_line">&nbsp;&nbsp; &nbsp; {-------------------}</div><div class="code_line">&nbsp;&nbsp; &nbsp; K:=Chr(64+I); {Задание текущего названия вершины}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetColor(White); {Задание цвета названий вершин}</div><div class="code_line">&nbsp;&nbsp; &nbsp; OutTextXY(X2,Y2,K); {Вывод названия вершины}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetColor(Green); {Задание цвета вершины}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For J:=1 To 7 Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Circle(X1,Y1,J) {Вывод концентрических окружностей для задания вершины на экране}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp; &nbsp;{Вывод кратчайшего пути}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;X:=Nac;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;W:=Q*Nac; {Установка текущего угла}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{Установка координат}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;X1:=300+Trunc(R*cos(W)); Y1:=235+Trunc(R*sin(W));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{-------------------}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SetColor(Red);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;PutPixel(X1,Y1,Red);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; X:=H[X,Kon]; {Переход на следующую вершину в пути}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; W:=Q*X; {Установка текущего угла}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {Установка координат}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; X2:=300+Trunc(R*cos(W)); Y2:=235+Trunc(R*sin(W));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {-------------------}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Line(X1,Y1,X2,Y2);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; X1:=X2;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Y1:=Y2</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Until X=Kon;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetColor(White);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;OutTextXY(3,450,&#39;Press any key, please...&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Readln; &nbsp;{Задержка экрана}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Close_Graph; {Отключение графического режима}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Clrscr</div><div class="code_line">&nbsp;&nbsp; &nbsp;End;</div><div class="code_line">&nbsp;{----------------------------------------------------------------------}</div><div class="code_line">{===========================================================================}</div><div class="code_line">Begin</div><div class="code_line">{-----------------------}</div><div class="code_line">{Основной блок программы}</div><div class="code_line">{-----------------------}</div><div class="code_line">&nbsp;ClrScr; {Очистка экрана}</div><div class="code_line">&nbsp;TextBackGround(Black); &nbsp;{Задание цвета фона}</div><div class="code_line">&nbsp;TextColor(White); &nbsp; &nbsp; &nbsp; {Задание цвета текста}</div><div class="code_line">&nbsp;&nbsp;Clrscr;</div><div class="code_line">&nbsp;&nbsp;Dlina; &nbsp; &nbsp; {Задание длин дуг}</div><div class="code_line">&nbsp;&nbsp;Floid; &nbsp; &nbsp; {Поиск кратчайшего пути и его длины}</div><div class="code_line">&nbsp;&nbsp;Koordinata {Вывод найденных значений}</div><div class="code_line">End.</div></ol></div></div></div></div><br>
з.ы.: полный пример в архиве, там пара дополнительных модуля для Pascal ....]]></description>
        <author>andrew.virus</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2109758</guid>
        <pubDate>Fri, 07 Nov 2008 14:35:49 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2109758</link>
        <description><![CDATA[albom: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=255614&view=findpost&p=2109719'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>nell &#064; <time class="tag-quote__quoted-time" datetime="2008-11-07T13:47:49+00:00">07.11.08, 13:47</time></span><div class='quote '><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">for j:=1 to p do</div><div class="code_line">&nbsp;&nbsp; &nbsp;t[i,j]:=c[i,j];</div><div class="code_line">&nbsp;&nbsp; &nbsp;if c[i,j]=GM then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;H[i,j]:=0 &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; H[i,j]:=j;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end;</div></ol></div></div></div></div></div></div>Отсутствуют операторные скобки <strong class='tag-b'>begin</strong>/<strong class='tag-b'>end</strong>.<br>
<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=255614&view=findpost&p=2109719'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>nell &#064; <time class="tag-quote__quoted-time" datetime="2008-11-07T13:47:49+00:00">07.11.08, 13:47</time></span><div class='quote '><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if (i&#60;&#62;j)and(T[j,i]&#60;&#62;GM)and(i&#60;&#62;k)and (T[i,k]&#60;&#62;GM)and(T[j,k]=GM) or (T[j,k]&#62;T[j,i]+T[i,k])</div></ol></div></div></div></div></div></div>У <strong class='tag-b'>or</strong> приоритет ниже, чем у операции <strong class='tag-b'>and</strong>. Опять нужны скобки (уже обычные).<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=255614&view=findpost&p=2109719'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>nell &#064; <time class="tag-quote__quoted-time" datetime="2008-11-07T13:47:49+00:00">07.11.08, 13:47</time></span><div class='quote '><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">GM:real;</div></ol></div></div></div></div></div></div>Зачем тут real? Везде же был integer.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=255614&view=findpost&p=2109719'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>nell &#064; <time class="tag-quote__quoted-time" datetime="2008-11-07T13:47:49+00:00">07.11.08, 13:47</time></span><div class='quote '>И еще вопрос не по теме. Я когда запускаю программу, она прерывается и выдает ошибку file not found ...но при это созданный exe файл нормально работает, т.е все нашлось и прочиталось. На другом компьютере ошибки нет, с директориями все в порядке. Не знаете в чем дело?</div></div>Смени рабочий каталог.]]></description>
        <author>albom</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2109719</guid>
        <pubDate>Fri, 07 Nov 2008 13:47:49 +0000</pubDate>
        <title>алгоритм Флойда</title>
        <link>https://forum.sources.ru/index.php?showtopic=255614&amp;view=findpost&amp;p=2109719</link>
        <description><![CDATA[nell: Мне нужно было используя в точности алгоритм из книжки написать программу. Вот алгоритм <br>
<a class='tag-url' href='http://radikal.ru/F/s39.radikal.ru/i086/0811/9e/bea52131eed9.jpg.html' target='_blank'><img class='tag-img' src='http://s39.radikal.ru/i086/0811/9e/bea52131eed9t.jpg' alt='user posted image'></a><br>
и код программы<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Uses Crt;</div><div class="code_line">Const</div><div class="code_line">PP=50;</div><div class="code_line">Type</div><div class="code_line">Graph = array[1..pp,1..pp] of integer;</div><div class="code_line">Var</div><div class="code_line">p:integer;</div><div class="code_line">&nbsp;</div><div class="code_line">Procedure Floyd (var t:graph; c:graph; var h:graph);</div><div class="code_line">var i,j,k:integer;</div><div class="code_line">GM:real;</div><div class="code_line">begin</div><div class="code_line">GM:=10000;</div><div class="code_line">for i:=1 to p do</div><div class="code_line">for j:=1 to p do</div><div class="code_line">&nbsp;&nbsp; &nbsp;t[i,j]:=c[i,j];</div><div class="code_line">&nbsp;&nbsp; &nbsp;if c[i,j]=GM then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;H[i,j]:=0 &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; H[i,j]:=j;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">for i:=1 to p do</div><div class="code_line">for j:=1 to p do</div><div class="code_line">for k:=1 to p do</div><div class="code_line">&nbsp;&nbsp; if (i&#60;&#62;j)and(T[j,i]&#60;&#62;GM)and(i&#60;&#62;k)and (T[i,k]&#60;&#62;GM)and(T[j,k]=GM) or (T[j,k]&#62;T[j,i]+T[i,k])</div><div class="code_line">&nbsp;&nbsp; then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; H[j,k]:=H[j,i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; T[j,k]:=T[j,i]+T[i,k]</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">Procedure ReadFileGraph (var T:graph);</div><div class="code_line">var</div><div class="code_line">&nbsp;i,j:integer;</div><div class="code_line">&nbsp;f: text;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Writeln (&#39;Reading from the text file&#39;);</div><div class="code_line">&nbsp;&nbsp;Assign (f,&#39;nell.txt&#39;);</div><div class="code_line">&nbsp;&nbsp;reset(f);</div><div class="code_line">&nbsp;&nbsp;Readln(f,P);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for i:=1 to p do for j:=1 to p do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; read(f,t[i,j]); close(f);</div><div class="code_line">end;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;t,c,h:graph;</div><div class="code_line">&nbsp;&nbsp;i,j: integer;</div><div class="code_line">begin</div><div class="code_line">ClrScr;</div><div class="code_line">ReadFileGraph(c);</div><div class="code_line">floyd(t,c,h);</div><div class="code_line">writeln(&#39;------------------------------------------&#39;);</div><div class="code_line">for i:=1 to p do</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;for j:=1 to p do write (t[i,j]:3);</div><div class="code_line">&nbsp;&nbsp;writeln</div><div class="code_line">end;</div><div class="code_line">writeln(&#39;------------------------------------------&#39;);</div><div class="code_line">for i:=1 to p do</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;for j:=1 to p do write (h[i,j]:3);</div><div class="code_line">&nbsp;&nbsp;writeln</div><div class="code_line">end;</div><div class="code_line">readln;</div><div class="code_line">end.</div></ol></div></div></div></div><br>
...и результат<br>
<a class='tag-url' href='http://www.radikal.ru' target='_blank'><img class='tag-img' src='http://i058.radikal.ru/0811/b9/c5503d114f75.jpg' alt='user posted image'></a><br>
В общем что-то мне подсказывает, что матрица путей (это где все нули) должна выглядеть иначе.<br>
Файл был вот такой<br>
5<br>
10000 1 3 10000 10000<br>
1 10000 2 10000 10000<br>
4 1 10000 1 2<br>
10000 10000 1 10000 1<br>
10000 10000 2 1 10000<br>
<br>
И еще вопрос не по теме. Я когда запускаю программу, она прерывается и выдает ошибку  file not found ...но при это созданный exe файл нормально работает, т.е все нашлось и прочиталось. На другом компьютере ошибки нет, с директориями все в порядке. Не знаете в чем дело?]]></description>
        <author>nell</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	