AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Case...of Schleifenproblem... 1...[Varbiable]
Thema durchsuchen
Ansicht
Themen-Optionen

Case...of Schleifenproblem... 1...[Varbiable]

Ein Thema von Mike_ · begonnen am 29. Mär 2008 · letzter Beitrag vom 29. Mär 2008
Antwort Antwort
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#1

Case...of Schleifenproblem... 1...[Varbiable]

  Alt 29. Mär 2008, 17:29
Nun habe ich ein letztes Problem vor der "Vollendung" gefunden... es handelt sich um ein Programm wo ich die maximalen Eingabeversuche per Optionen festlegen lassen möchte...

Erstmal auch ein recht herzlichen Dank an die, die mir geholfen haben !

Das Problem ist ich habe es mit einer case a of Schleife gemacht... :

Delphi-Quellcode:
case a of
   0:
    begin
[...]
    end;
   1..maxver: // Hier soll er von der 1 Eingabe bis zur letzten (der der maximalen Versuche) gehen... 1..15 geht wunderbar, jedoch meckert er wenn ich 1..VARIABLE hintuh... "Constant expression expected"... Was kann man da tuhen ?

    begin
    if Edit2.Text=deutsch[x] then
                  begin
[...]
                  end
    else
                  begin
[...]
                  end
    end;
end;
end;
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Case...of Schleifenproblem... 1...[Varbiable]

  Alt 29. Mär 2008, 17:32
Bei der verwendung von Case musst kannst du keine Variablen benutzen, da musst du dann eine if-Abfrage benutzen.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Case...of Schleifenproblem... 1...[Varbiable]

  Alt 29. Mär 2008, 17:48
So ich habs jetzt mal veruscht...

Also so sahs vorher aus, ging wunderbar, aber es kamen halt 100 Versuche (1..100) und ich wollte ja ein maximum einstellen...

Delphi-Quellcode:
case a of
   0:
    begin
[...]
    end;
   1..100:

    begin
    if Edit2.Text=deutsch[x] then
                  begin
[...]
                  end
    else
                  begin
[...]
                  end
    end;
end;
end;
So jetzt für die die das selbe Problem haben und das hier per SuFu gefunden haben, das wäre die richtige Lösung gewesen :

Delphi-Quellcode:
case a of
   0:
    begin
[...]
    end;
   1..100:

    begin
    if a < maxver then
    begin
                  if Edit2.Text=deutsch[x] then
                                begin
[...]
                                end
                  else
                                begin
[...]
                                end
                  end
    else
                  begin
                  ShowMessage('Maximale Versuche überschritten');
                  end
    end;
end;
end;
Ich glaub ich hab heute mein "Dankesagen Vorrat schon aufgebraucht... trotzdem ein DANKE !
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Case...of Schleifenproblem... 1...[Varbiable]

  Alt 29. Mär 2008, 17:52
Ich glaube du hast nicht ganz verstande, was case macht.

Mit Case überprüfst du, welchen Wert a hat, ist der Wert 0, springt er bei 0 rein, liegt der Wert im Bereich von 1..100 springt er in diesen Bereich. Den Rest ignoriert er. Deine erste Version ist doch wunderbar, oder habe ich dich falsch verstanden? Falls ja, erklär mir bitte nochmal was du bezwecken möchtest.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Case...of Schleifenproblem... 1...[Varbiable]

  Alt 29. Mär 2008, 19:34
Zitat von MrKnogge:
Ich glaube du hast nicht ganz verstande, was case macht.

Mit Case überprüfst du, welchen Wert a hat, ist der Wert 0, springt er bei 0 rein, liegt der Wert im Bereich von 1..100 springt er in diesen Bereich. Den Rest ignoriert er. Deine erste Version ist doch wunderbar, oder habe ich dich falsch verstanden? Falls ja, erklär mir bitte nochmal was du bezwecken möchtest.
Also das Programm läuft so ab das man in den Optionen festlegen kann, wieviele Wörter er bekommmt um sein Vokabular zu "testen".

Nachdem ihm z.B. 15 Fragen gestellt wurden, sollte eine Auswertung kommen (dies mach ich aber erst noch später) wieviele Fehler derjenige hat usw..

Würde ich 1..100 machen würde er ja 100 Wörter gefragt werden... daher wollte ich mit der Caseschleife 1..maxver erreichen das er immernur in die Schleife reingeht, bis die maximale Anzahl an Übersetzungen erreicht sind.



EDIT:// ich hab das 1..100 in richtigen Sourcecode in 1..1000000 umgeändert, sodass er immerwieder reinspringt... aber durch die if Bedingung sagt er dann wenn a kleiner ist als die maxver !
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Case...of Schleifenproblem... 1...[Varbiable]

  Alt 29. Mär 2008, 19:41
Es gibt keine Case-Schleife
Case ist eine einmalige Abfrage, zu vergleichen mit If.
Delphi-Quellcode:
i := 7; //i hat den Wert 7
Case i of // Alles bis 7 wird übersprungen
  1:ShowMessage('1'); // |
  2:ShowMessage('2'); // |
  3:ShowMessage('3'); // |
  4:ShowMessage('4'); // |
  5:ShowMessage('5'); // |
  6:ShowMessage('6'); // |
  7:ShowMessage('7'); //<--| Und dann wird alles bis zum end übersprungen
  8:ShowMessage('8'); // |
  9:ShowMessage('9'); // |
end; //<-------------------|
Hier wird genau EINMAL überprüft, welchen Wert i hat. Alle anderen Einträge werden einfach übersprungen.

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Case...of Schleifenproblem... 1...[Varbiable]

  Alt 29. Mär 2008, 19:43
Dann überprüfe a, vor der Case-Abfrage !
Und springe in die Case Schleife nur dann rein, wenn der Wert kleiner deines Max-Wertes liegt.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: Case...of Schleifenproblem... 1...[Varbiable]

  Alt 29. Mär 2008, 19:46
Ich verstehe die Logik nicht so ganz. Lass den User entscheiden, wie viele Fragen er haben will und merk Dir das in einer Variablen. In einer weiteren Variablen merkst Du Dir, wie viele Fragen bereits abgearbeitet wurden. Nun musst Du diese beiden doch nur noch vergleichen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Case...of Schleifenproblem... 1...[Varbiable]

  Alt 29. Mär 2008, 20:17
Zitat von MrKnogge:
Dann überprüfe a, vor der Case-Abfrage !
Und springe in die Case Schleife nur dann rein, wenn der Wert kleiner deines Max-Wertes liegt.
Zitat von DeddyH:
Ich verstehe die Logik nicht so ganz. Lass den User entscheiden, wie viele Fragen er haben will und merk Dir das in einer Variablen. In einer weiteren Variablen merkst Du Dir, wie viele Fragen bereits abgearbeitet wurden. Nun musst Du diese beiden doch nur noch vergleichen.
Ich freu mich ja über soviele Antworten, aber das Problem wurde doch schon gelöst (siehe Lösung oben), ich hab doch nurnoch auf eine Frage geantwortet wo jemand das Problem nicht verstanden hatte.
  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 17:55 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