AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem: die ausgabe soll verzoegert werden
Thema durchsuchen
Ansicht
Themen-Optionen

Problem: die ausgabe soll verzoegert werden

Ein Thema von pagan1900 · begonnen am 19. Jun 2006 · letzter Beitrag vom 20. Jun 2006
 
pagan1900

Registriert seit: 27. Mär 2006
25 Beiträge
 
#1

Problem: die ausgabe soll verzoegert werden

  Alt 19. Jun 2006, 23:17
Hi !
zu meinem Problem:
Ich möchte das der Anwender meines programms die veränderungen sehen kann während der algorithmus durchläuft!
Nur wie kann man es erreichen, wenn ich sleep und co innerhalb der procedure verwende wartet das programm seine zeit und gibt dann das endergebnis aus!
wie kann mann die ausgabe der werte (siehe code KW_dist,pre,R)so gestalten das erst
die initialisierung dagestellt wird
dann die weiteren veränderungen!
die Aktuellesituauin soll auf stringgrid ausgegeben werden.


Delphi-Quellcode:
procedure Dijkstra_Pfeil ( var pre,kw_dist:TKnoten; var b,c:TPfeil;{Endknotennummernvektor, Bewertungsvektor}
                           var PN:TKnoten_plus_1_feld; {Pfeilnummernvektor}
                               Knotenzahl:integer; Start:integer;var stringgrid1:Tstringgrid); {Anzahl Knoten}
var locali,localj,min:integer;
    R:array [1..8] of boolean;
begin
   //Initialisierung
   for locali:=1 to Knotenzahl do
    begin
      pre[locali]:=0;
      stringgrid1.Cells[locali,1]:=inttostr(pre[locali]);
      kw_dist[locali]:=999;
      stringgrid1.Cells[locali,2]:=inttostr(kw_dist[locali]);
      R[locali]:=true;
    end;
   kw_dist[Startknoten]:=0;
    stringgrid1.Cells[locali,2]:=inttostr(kw_dist[startknoten]);
   R[Startknoten]:=true;
   while true do {Wiederholung Schritt 1 + 2}
    begin
    //Schritt 2
      min:=999;
      for localj:=1 to Knotenzahl do
       if R[localj] and (kw_dist[localj] < min)
        then
         begin
           min:=kw_dist[localj]; locali:=localj; end;
        if min = 999
         then exit;
    //Schritt 3
      for localj:=PN[locali] to PN[locali+1]-1 do
       if R[b[localj]] or ( kw_dist[b[localj]] = 999 )
        then
         if kw_dist[locali] + c[localj] < kw_dist[b[localj]]
          then
           begin
             kw_dist[b[localj]]:= kw_dist[locali] + c[localj];
             pre[b[localj]]:=locali;
             R[b[localj]]:= True;
           end;
    R[locali]:= False;
    stringgrid1.Cells[locali,1]:=inttostr(pre[locali]);
    stringgrid1.Cells[locali,2]:=inttostr(kw_dist[locali]);
    end; {Ende Schritt 1 und 2}
end;
könnt ihr mir helfen?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz