Курсовая работа: Поиск кратчайшего пути в многоугольнике
yWay[1]:=a;
ny:=1;//кол-во точек, использованных в пути
while c>0 do begin
c:=c-1;
yyy:=False;
for i1:=-1 to 1 do begin
for j1:=-1 to 1 do begin
if (i1=0) and (j1=0) then continue;//чтобынепроверятьсамуточку
if metka1[i+i1,j+j1]<>c then continue;
ny:=ny+1;//увеличение длины пути
yWay[ny].x:=i+i1;//добавление точки
yWay[ny].y:=j+j1;// в путь
if (i+i1=b.x) and (j+j1=b.y) then exit;
i:=i+i1;
j:=j+j1;
yyy:=TRUE;//используется для выхода из первого цикла “FOR”
break;
end;
if yyy then break;
end;
end;
end;
Текст программы
В данном пункте приводятся тексты основного модуля без текста модуля для расчёта пути, так как его главная часть приведена выше.
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls,Sgraph;