AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi problem ermittlung Lösung in lernprogramm
Thema durchsuchen
Ansicht
Themen-Optionen

problem ermittlung Lösung in lernprogramm

Ein Thema von pagan1900 · begonnen am 25. Jun 2006 · letzter Beitrag vom 1. Jul 2006
Antwort Antwort
pagan1900

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

problem ermittlung Lösung in lernprogramm

  Alt 25. Jun 2006, 21:46
Hi ich schreibe an einem lernprogramm für den dijkstra algorithmus und habe nun folgendes problem:

Ich habe das programm so gestaltet, das das programm, sobalt der benutzer den startknoten (wovon der dijkstra/ die kürzesten wege berechnen soll)eingegeben hat, die Kürzestenwege zu allen anderen knoten berechnet werden. Diese lösungen hab ich , damit ich eine vergleichsmöglichkeit habe in ein 2 dimensionales array gespeichert,
also 1. lösungsschritt alge, in erste spalte des arrays usw.
am beispiel läst sich mein problem vielleicht besser erklären siehe bild imanhang.
Also der algoritmus hat die volgende lösungsmatrix erstellt:
inf:=00 bedeutet unendlich, unterstrich(_) bitte ignorierren, hab sie nur gesetzt,damit
die tabelle so bleibt wie sie sein soll!

1|_2|_3|_4|_5|_6|
-----------------
00|0|00|_1|00|00|
_2|0|00|_1|00|00|
_2|0|00|_1|10|00|
_2|0|00|_1|_7|00|
_2|0|00|_1|_7|14|
_2|0|_3|_1|_7|14|
_2|0|_3|_1|_4|11|

so sieht die tabelle bzw das zwei dimensionale array aus, nachdem der algorithmus schritt für schritt den dijkstra durchlaufen ist!
nun zum eigentlichen problem-> dem Benutzer
Nun soll der benutzer seine lösung über einen stringgrid eingeben (und zwar schrittweise)
Nun und da schliesse ich mich nicht aus ich würde die schritte 1-3 zu einer eingabe zusammenfassen:
1|_2|_3|_4|_5|_6|
-----------------
_2|0|00|_1|10|00|< benutzer gibt diese werte über ein stringgrid ein

und damit sozusagen gleich zu schritt vier übergehen (das währe ja eigentlich auch in ordnung!) nur wie stelle ich dann den vergleich an,
denn wenn ich im moment das abprüfe sagt er immer "fehler", da er diese eingabe mit schritt 1 vergleicht ?
ich müste sagen(pseudocodeähnlich) n=anzahl der knoten)

Für i:=1 bis n führe aus
für j:=1 bis n führe aus
Wenn Benutzereingabe(komplettes eingabe stringgrid)[j]=irgendeinerstelle
(Losungsmatrix[i,j] dann eingabe in odnung, wenn nicht dann fehlermeldung

in anderen worten kommt die benutzer eingabe in der lösungsmatrix vor ist alles ok,
(weil ich davon ausgehen kann das der Dijkstra immer nur eine lösung hat!)
dann label grün, wenn nicht ein galgenmändchen strich hinzu un label rot!

oh nochwas weiss jemand von euch, wie ich bei einem stringgrid die eingabe auf z.B maximallänge 1 begrenze (wie es bei einem memo mögöich ist?

bitte helft mir wenn ihr könnt grosses danke!
wenns geht mit verwendbarem code
Angehängte Grafiken
Dateityp: bmp graph_beispiel_293.bmp (207,9 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: problem ermittlung Lösung in lernprogramm

  Alt 26. Jun 2006, 05:57
Guten Morgen,

Zitat von pagan1900:
weiss jemand von euch, wie ich bei einem stringgrid die eingabe auf z.B maximallänge 1 begrenze
damit sollte es gehen:

Delphi-Quellcode:
type
  TStringGridCracker = class(TStringGrid);

procedure TDemoForm.StringGridGetEditText(Sender: TObject; ACol,
  ARow: Integer; var Value: String);
begin
  SendMessage(TStringGridCracker(StringGrid).InplaceEditor.Handle,
    EM_SETLIMITTEXT, 1, 0);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
pagan1900

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

Re: problem ermittlung Lösung in lernprogramm

  Alt 1. Jul 2006, 07:57
Problem hab 2 arrays,
die erste ist ein matrix array (dieses array beinhaltet die komplette lösungschritte vom algorithmus dijkstra)
das 2. array ist ein eindimensionales array, da der benutzer immer nur
einen schritt per button druck machen kann und da ich diesen werte nach dem vergleich nicht mehr brauche, kann er das array einfach wieder überschreiben.

ich muss nun "nur" noch feststellen kommt die gesamte zeile (nicht nur einzelne werte) im ersten array vor!
wenn ja ein smiley wenn nein ein fehlerpunkt.

wie kann ich das machen, bin am verzweifeln!
(ich habs auch schon versucht aus lauter verzweiflung die daten in ein stringgridzuschmeissen, dort hab ich erstmal die nullwerte wegbekommen, aber auch hier kann ich irgendwie nicht in dem fall stringgrids miteinander vergleichen)

bitte wenn möglich gleich einen code, da ich diese woche dienstag das lernprogramm abgeben muss!

das zweite ist das ich , da die matrix eine n zu n menge ist und ich
nicht immer alle zeilen brauche werden dort "leerwerte" vom programm selber (ohne mein zutun) eingetragen ,das problem die koennen jeden kram beinhalten, selbst wenn der benutzer den größten blödsinn in seine eingabenfelder reinschreibt ist dadurch alles in ordnung für das programm

ich muss dort bevor dieses anfängt stoppen, das problem n ist im zahlenbereich 1..8 und somit muss die anweisung allgemein sein!

bitte helft mir ! grosses danke!
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz