Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi x not in [61,62,63]- was ist falsch? (https://www.delphipraxis.net/26306-x-not-%5B61-62-63%5D-ist-falsch.html)

dummer_info_schüler 21. Jul 2004 19:45


x not in [61,62,63]- was ist falsch?
 
Hallo!
Die Frage steht schon fast im Titel:
Ich habe diesen Programmschnipsel:
Delphi-Quellcode:
repeat
  if h>20 then x:=random(123) else x:=random(111);
  inc(x);
 until x not in [61,62,63,64,65,66,67,68,69];
es erscheint in der Zeile <until x not...> folgende Fehlermeldung:
<missing operator or semicolon>
Wo ist der Fehler???
Ich hätte die kleine Vermutung, dass es was mit dem <not in> zu tun hat, weil der Cursor beim <not> stand, aber über die Suchfunktion kriege ich hier nichts raus, weil die <not>, <and> und <or> schon anders belegt hat.

Danke im Voraus!

axelf98 21. Jul 2004 19:55

Re: x not in [61,62,63]- was ist falsch?
 
Versuchs mal so:

Delphi-Quellcode:
repeat
  if h>20 then x:=random(123) else x:=random(111);
  inc(x);
until not x in [61,62,63,64,65,66,67,68,69];

dummer_info_schüler 21. Jul 2004 20:01

Re: x not in [61,62,63]- was ist falsch?
 
jetzt hängt er sich in ´ner endlosschleife auf... :-(
(liegt wirklich nur an dem Teil, habe alles andere eingeklammert [bis auf <h:=20;>])
:?:

ibp 21. Jul 2004 20:13

Re: x not in [61,62,63]- was ist falsch?
 
wie ist denn x vor der schleife definiert?

dummer_info_schüler 21. Jul 2004 20:14

Re: x not in [61,62,63]- was ist falsch?
 
als integer

axelf98 21. Jul 2004 20:15

Re: x not in [61,62,63]- was ist falsch?
 
Versuch dann mal das hier:
(Irgendwas war mit der Abbruchbedingung nicht in Ordnung...)

Delphi-Quellcode:
while true do
begin
 if h > 20 then
  x:=random(123)
  else
  x:=random(111);
 inc(x);
 if (x > 69) OR (x < 61) then break;
end;

ibp 21. Jul 2004 20:19

Re: x not in [61,62,63]- was ist falsch?
 
Zitat:

Zitat von dummer_info_schüler
als integer

... tschuldigung, ich meinte ist x initialisiert? wenn nicht, dann hat x irgendeinen wert, z.b. -765757632 und wenn dann noch h<21 ist, dann dauerts natürlich, bis x zu 61 hochgezählt hat....oder der zufall zuschlägt...

axelf98 21. Jul 2004 20:26

Re: x not in [61,62,63]- was ist falsch?
 
Zitat:

Zitat von axelf98
Versuch dann mal das hier:
(Irgendwas war mit der Abbruchbedingung nicht in Ordnung...)

Delphi-Quellcode:
while true do
begin
 if h > 20 then
  x:=random(123)
  else
  x:=random(111);
 inc(x);
 if (x > 69) OR (x < 61) then break;
end;

Hab noch mal nachgedacht.. Einmal zuviel :)

Gruss
:hi:

ibp 21. Jul 2004 20:36

Re: x not in [61,62,63]- was ist falsch?
 
Zitat:

Zitat von ibp
Zitat:

Zitat von dummer_info_schüler
als integer

... tschuldigung, ich meinte ist x initialisiert? wenn nicht, dann hat x irgendeinen wert, z.b. -765757632 und wenn dann noch h<21 ist, dann dauerts natürlich, bis x zu 61 hochgezählt hat....oder der zufall zuschlägt...


quatsch was ich da geschrieben habe...is schon spät :mrgreen:

kann eigentlich nicht sein das das eine endlosschleife ist..

lass dir doch mal die werte in eine liste schreiben ..

Rackergen2 21. Jul 2004 21:46

Re: x not in [61,62,63]- was ist falsch?
 
Delphi-Quellcode:
randomize;
repeat
  if h>20 then x:=random(123) else x:=random(111);
  inc(x);
until not (x in [61..69]);
Also bei mir ist das keine Endlosschleife...

Der Fehler lag wohl in der not-Bedingung...
Denn: not bindet stärker als in und wird zuerst ausgeführt...

aus 64 wird z.B. -65, wobei dann natürlich keine Zahl in die Bedingung passt. Wenn du aber Klammern setzt, wird erst auf in geprüft und dann der entstehende wert ge-not-ed


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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-2025 by Thomas Breitkreuz