| Autor |
Nachricht |
A_Checker
Hält's aus hier
Beiträge: 14 Dabei seit: 27.02.2010
|
Hey Leute,
ich hab bin blutiger Anfänger im Programmieren von Delphi und soll jetzt ein Programm erstellen, das in einer Listbox zahlen ausgibt im intervall I(1;n), wobei n eingegeben werden kann, bist die letzte Zahl kleiner als die davor ist.
so weit bin ich schon gekommen:
Wie sage ich ihm jetzt, dass i, die zahl vor der kleineren ist?
lg
Moderiert von Christian S.: Delphi-Tags hinzugefügtModeriert von Christian S.: Topic aus Algorithmen, Optimierung und Assembler verschoben am So 28.02.2010 um 17:45
|

|
|
Sylvus
        
Beiträge: 195 Dabei seit: 27.02.2008
|
drücke dich mal bitte exakter aus
Intervall: Ist das ein Timer, also ein Zeitintervall oder ein Zahlenintervall?
Auf jeden Fall, musst du die letzte Zahl immer in einer Variable speichern.
Also in Pseudocode:
1. Setzte alte Zahl auf die aktuelle Zahl
2. Erzeuge eine neue aktuelle Zahl
3. gebe die neue Zahl aus, wenn sie kleiner als die alte ist und beginne bei 1)
Wenns nicht klappt, melde dich nochmal, dann helfe ich auch gerne detaillierter
P.S.
Listbox1.Items.Add(inttostr(X)); falls du den Befehl nicht kennst 
|

|
|
A_Checker
Hält's aus hier
(Threadstarter)
Beiträge: 14 Dabei seit: 27.02.2010
|
es soll ein Zahlen intervall sein. Deine Hilfe versteh ich leider nicht so ganz :s
|

|
|
bole
       
Beiträge: 52 Dabei seit: 06.11.2003 Wohnort: luzern
win 2000, win xp d4
|
Vielleicht bin ich zu blöd, aber ich verstehe immer noch nicht genau was Dein Programm machen soll...
Kannst Du das bitte nochmals genau erklären. Praktisch wäre wohl auch ein Beispiel (Eingabe / Ausgabe).
Gruss
Bole
_________________ ein programm macht nicht das was du willst sondern was du schreibst!
|

|
|
Sylvus
        
Beiträge: 195 Dabei seit: 27.02.2008
|
wie schon geschrieben
Also dein Ansatz ist ja richtig:
Generiere solange neue Zahlen bis die aktuelle grad eben generierte Zahl kleiner als die davor erzeugte ist.
Außerdem gebe die Zahl aus!
also:
versuchs mal so 
|

|
|
bole
       
Beiträge: 52 Dabei seit: 06.11.2003 Wohnort: luzern
win 2000, win xp d4
|
Beachte aber das Du I und X korrekt initialisierst (I<X) sonst kommst Du gar nie in die While Schleife...
_________________ ein programm macht nicht das was du willst sondern was du schreibst!
|

|
|
martin300
        
Beiträge: 179 Erhaltene Danke: 1 Dabei seit: 14.04.2008
|
Hallo,
ist der Code dafür. Wobei lst1 die Listbox ist.
|

|
|
A_Checker
Hält's aus hier
(Threadstarter)
Beiträge: 14 Dabei seit: 27.02.2010
|
Ich habs jetzt so:
aber es funktioniert trotzdem irgendwie nicht...:S
Moderiert von Narses: Delphi-Tags hinzugefügt
|

|
|
elundril
       
Beiträge: 3145 Erhaltene Danke: 10 Dabei seit: 28.12.2005 Wohnort: Österreich, Wien
Windows Vista Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
auch du darfst gerne den [delphi][/delphi]-Tag verwenden um deinen Quelltext zu markieren. Der ist nicht nur "älteren" usern vorbehalten.
lg elundril
_________________ "Und warum studierst du Informatik?" - "Weil ich gerne Computerspiele spiele, programmieren hass ich eigentlich." *wallbash*
|

|
|
Marc.
       
Beiträge: 1548 Dabei seit: 09.11.2005
Win 7, VM
|
A_Checker hat folgendes geschrieben : | | Ich habs jetzt so: aber es funktioniert trotzdem irgendwie nicht...:S |
"Funktioniert irgendwie nicht" ist defitinitv keine ausreichende Fehlerbeschreibung! Was funktioniert nicht? Wo taucht der Fehler auf? Welche Fehlermeldungen erscheinen?
Du entfernst alle(!) Einträge der LB, um daraufhin die Anzahl dieser festzustellen und auf ein absolut nicht existentes Item zuzugreifen. Sauber!
Randomize gehört einmal aufgerufen. Am besten beim Programmstart, da es den Pseudo-Zufallsgenerator über die Zeit initialisiert.
Zu Zeile 9-11: Würfele solange, bis [n] kleiner [n-1] ist. Welchen Zweck hat das ganze? 
_________________ Nothing Is Real
|

|
|
A_Checker
Hält's aus hier
(Threadstarter)
Beiträge: 14 Dabei seit: 27.02.2010
|
so weit so gut. das programm lässt sich auch öffnen. Gibt man aber iene zahl ein erscheint folgendes:
Im Projekt Projekt2.exe ist eine Exception der Klasse EStringListError aufgetreten. Meldung: 'Listindex überschreitet das Maximum (o)'. Prozess wurde angehalten. Mit Einzlne Anweisungen oder Start fortsetzen.
dann makiert er mir die zeil : v := Listbox1.Items.Strings[i];
mit einem grünen pfeil und blau makiert.
|

|
|
SvenAbeln
       
Beiträge: 300 Dabei seit: 18.08.2002
|
Du hast gleich mehrere Fehler, die beim ersten Schleifendurchlauf zu einem Fehler in dieser Zeile führen:
v := Listbox1.Items.Strings[i];
- i ist undefiniert
- Deine Listbox ist Leer, du kannst also auch nichts auslesen
|

|
|
ffgorcky
       
Beiträge: 571 Dabei seit: 17.09.2008 Wohnort: Schleswig-Holstein, nahe Bad Bramstedt
WIN XP/2000&7Prof (Familie:Win 95,Win 98)
|
SvenAbeln hat folgendes geschrieben: | i ist undefiniert
|
Ja, solange Du der Variable zu Anfang nicht irgendwie einen bestimmten Wert zuweist, kann sie 2348^7 (einfach mal ausgedachte Zahl) oder so sein.
Damit kann es ja keinen angesprochenen Index geben.
Und wie es SvenAbeln vor mir geschrieben hat, hast Du ja gerade vorher listbox1.Clear; gemacht - also kann da nichts ausgelesen werden.
|

|
|
A_Checker
Hält's aus hier
(Threadstarter)
Beiträge: 14 Dabei seit: 27.02.2010
|
aber i soll ja die Position sein, an der sich die zahl befindet, die größer sein soll, damit das programm aufhört zu laufen.
Ich schick euch noch mal die ganze Aufgabenstellung:
Aufgabe 2
Nach Eingabe einer Zahl bildet dieses Programm so lange Zufallszahlen aus dem Intervall
I = [ 1 ; n ], bis die zuletzt gebildete Zufallszahl kleiner als die vorherige ist - in diesem
Falle bricht die Zahlenreihe, die also mit Ausnahme der letzten Zahl monoton wachsend
ist, ab. Das Programm weist sämtliche Zufallszahlen in einer ListBox aus und gibt auch
die Anzahl der insgesamt gebildeten Zufalls zahlen an (vgl. Skizze 2 auf der folgenden
Seite).
|

|
|
A_Checker
Hält's aus hier
(Threadstarter)
Beiträge: 14 Dabei seit: 27.02.2010
|
habe den Fehler gefunden. musste eine for schleife setzten, weil er den ersten wert ja nicht kannte also -1 z.b und da ist er dann abgestürzt.
|

|
|
ffgorcky
       
Beiträge: 571 Dabei seit: 17.09.2008 Wohnort: Schleswig-Holstein, nahe Bad Bramstedt
WIN XP/2000&7Prof (Familie:Win 95,Win 98)
|
Das klingt mir nach etwa einem solchen Lösungsansatz:
Ich hoffe, dass ich nichts falsches geschrieben habe und dass Du da durchsteigst...
...und natürlich, dass ich Dein Problem überhaut richtig verstanden habe.
Das ist leider nicht so einfach, da durchzusteigen, was genau Du möchtest.
|

|
|
bole
       
Beiträge: 52 Dabei seit: 06.11.2003 Wohnort: luzern
win 2000, win xp d4
|
Ich verstehe die Aufgabe eher so:
Was aber genau erwartet wird kann vielleicht A_Checker sagen. Eventuell wäre ,wie ich schon früher geschrieben habe, ein Bsp des erwarteten Outputs hilfreich....
nicht getestet da ich hier kein delphi zur verfügung habe.
_________________ ein programm macht nicht das was du willst sondern was du schreibst!
|

|
|
Marc.
       
Beiträge: 1548 Dabei seit: 09.11.2005
Win 7, VM
|
_________________ Nothing Is Real
|

|
|
Werbung ausblenden? Dann registriere Dich kostenlos.
Weitere Gründe für eine Registrierung.
Werbung ausblenden? Dann registriere Dich kostenlos.
Weitere Gründe für eine Registrierung.
|
|
|
|