IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Алгоритм Дейкстры, Не меняется путь
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Anton

Репутация: -  0  +


Доброго времени суток уважаемые эксперты, у меня возникла проблема с программой на алгоритм Дейкстры. При изменении стоимости путей, путь всё равно не меняется, не знаю как это исправить. Помогите пожалуйста.


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, Menus, ExtCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
OpenDialog1: TOpenDialog;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
SaveDialog1: TSaveDialog;
Label1: TLabel;
Label2: TLabel;
Bevel1: TBevel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure Button2Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.N2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;

procedure TForm1.N3Click(Sender: TObject);
begin
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FIleName);
end;
procedure TForm1.Button1Click(Sender: TObject);

var i,j,min:integer;
dlinna: array [0..24] of integer;
d: array [1..12] of integer;
nachalo: array [0..24] of integer;
konec: array [0..24] of integer;
r: array [0..24] of string[8];
k: integer;
put:string[20];
s: string[2];
///////////////////
begin
Memo2.Clear;
put:='';
d[1]:=0;
for i:=2 to 12 do
d[i]:=10000;
for i:=0 to 24 do
r[i]:=memo1.Lines[i];
///////////////////
///////////////////начало
for i:=0 to 24 do
for j:=1 to 8 do
begin
if r[i][j]=',' then begin
if j=3 then begin s:=r[i][1]; s:=s+r[i][2]; nachalo[i]:=strtoint(s); end;
if j=2 then nachalo[i]:=strtoint(r[i][1]);
end;
s:='';
end;
///////////////////конец
for i:=0 to 24 do
for j:=1 to 8 do
begin
if r[i][j]='=' then begin
if j=5 then begin s:=r[i][3]; s:=s+r[i][4]; konec[i]:=strtoint(s); end;
if j=4 then konec[i]:=strtoint(r[i][3]);
if j=6 then begin s:=r[i][4]; s:=s+r[i][5]; konec[i]:=strtoint(s); end;
end;
s:='';
end;
for i:=0 to 24 do
for j:=1 to 8 do
begin
if r[i][j]='=' then
begin
if r[i][j+2]<>';' then s:=r[i][j+1]+r[i][j+2] else s:=r[i][j+1];
dlinna[i]:=strtoint(s);
end;
s:='';
end;
k:=1;
put:='1';
repeat
min:=10000;
for i:=0 to 24 do
if nachalo[i]=k then
begin
d[konec[i]]:=d[k]+dlinna[i];
if d[konec[i]]<min then
begin
min:=d[konec[i]];
k:=konec[i];
end;
end;
put:=put+' '+inttostr(k);
until k=12;
memo2.lines.Add(put);
label1.Caption := 'Минимальная стоимость: ' + FloatToStr(min);
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.N7Click(Sender: TObject);
Var ExB: WORD;
begin
ExB:=MessageBox(handle,pchar('Программу выполнил студент, Николаенко Антон Юрьевич, группы КТм-701'),
pchar('Алгоритм Дейкстры'),0);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo2.Clear;
end;

end.



Программа с файлом задания в приложении Прикрепленный файл  lab1.rar ( 173.92 килобайт ) Кол-во скачиваний: 558
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Бывалый
****

Группа: Пользователи
Сообщений: 318
Пол: Мужской

Репутация: -  0  +


Привет! Скачай лучше рабочий алгоритм http://sources.codenet.ru/?cid=12
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Во-первых, это на С/С++, а во-вторых, чего ж ты сам-то рабочий алгоритм не скачиваешь? Иди, качай, коли такой умный, очередь свою кольцевую... Или другим советовать - просто?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Бывалый
****

Группа: Пользователи
Сообщений: 318
Пол: Мужской

Репутация: -  0  +


volvo суть форума и заключается в помощи человеку чем либо..я думаю не лишнее будет ему перейти по ссылке и посмотреть.


Во-первых, это на С/С++, а во-вторых, чего ж ты сам-то рабочий алгоритм не скачиваешь? Иди, качай, коли такой умный, очередь свою кольцевую... Или другим советовать - просто?-----вот этим вы ему явно ни чем не помогли......
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 20:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name