[ ivanicas @ 17.04.2004. 13:49 ] @
Meni je ludi profesor zadao da uradim neki program za raspust al nista nije objasnio! Ako neko moze da pomogne bila bih zahvalna! Vrlo! Javljajte se sto pre. Raspust je jos samo 2 dana! UPOMOC!
[ rilax @ 17.04.2004. 14:29 ] @
E, ajd' daj taj zadatak da vidimo kakav je...
[ Bojan Kopanja @ 17.04.2004. 16:58 ] @
Da, ajde javi sta treba da radi program, pa da raspalimo !!!
[ Gojko Vujovic @ 18.04.2004. 12:21 ] @
Evo pošto sam ja dobio ovo na private a naravno nemam vremena da ga rešavam, pa vi izvolite:

Napraviti Delphi projekat koji unosi gradove i rastojanja medju njima u string grid-u.Rastojanja su izrazena celim brojevima ako 2 grada nisu direktno povezana putem treba uneti -1. Program po selektovanju dva grada nalazi minimalan put izmedju njih. Ako puta nema vraca poruku da gradovi nisu povezani!
[ bancika @ 18.04.2004. 13:56 ] @
znam ovo, da pogledam malo pa cu poslati...valjda
[ -zombie- @ 18.04.2004. 16:31 ] @
Citat:
Gojko Vujovic:
Evo pošto sam ja dobio ovo na private


hehe, da nisi možda i "ti ovde najpametniji".. :-P
[ rilax @ 18.04.2004. 17:37 ] @
Mozes da uradis sa obicnim backtrackom. Nabi u jednu matricu NxN brojke tako da je na mestu A,B udaljenost grada A od B ili -1 ako nisu povezani putem. Ovim si opisao graf povezanosti. Onda napravi niz tipa Boolean kojim kontrolises da li je grad preko koga prolazis vec usao u sastav puta, jer ti petlje u grafu sigurno nisu potrebe. Treba ti jos jedna varijabla u kojoj cuvas minimalni put, i obicna rekurzija da to obradi...

recimo:

const maxn=200;
var veze: array [maxn, manx] of integer;
min, put, i, n, A, B: integer;
ukljucen: array[1..maxn] of Boolean;

// ovde dodje kod koji strpa podatke iz grida u matricu veze
// u n je broj gradova, A i B su gradovi izmedju kojih trazis rastojanje
for i:=1 to n do ukljucen:=n;
min:=MaxInt; //ili neki veliki broj od kog je minimalno rastojanje sigurno manje...
put:=0;

procedure Obidji(g : integer);
var cik: integer;
begin
ukljucen[g]:=true;
if (g=B) and (put<min) do min:=put;
for cik:=1 to n do
if (veze[g, cik]<>-1) and (not ukljucen[cik]) do
begin
put:=put+veze[g, cik];
Obidji(cik);
put:=put-veze[g, cik];
end;
uklucen[g]:=false;
end;

procedureu pozivas sa Obidji(A); i u min pokupi najkrace rastojanje.

Javi ako ima bug, da ispravljamo....

BTW: Sigurno ima dobrih heuristika ili brand&bacch-ova za ovo ali nemam kad da se majem sa time sada...
[ MilošV @ 18.04.2004. 17:39 ] @
Naravoučenije ove teme: kad hoćeš da momci sa ES-a odrade nešto umjesto tebe, samo se registruj sa nekim ženskim korisničkim imenom (po mogućstvu mazno-erotskim, npr. Ilona, Silvija...)
Eh, pitam se kakvi bi odgovori pali da je naša Ivanica odabrala username "Milorad"