AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

while not ... do

Ein Thema von bmg4ever · begonnen am 28. Sep 2004 · letzter Beitrag vom 28. Sep 2004
Antwort Antwort
bmg4ever

Registriert seit: 16. Sep 2004
12 Beiträge
 
#1

while not ... do

  Alt 28. Sep 2004, 14:03
ich hab da ein kleines Anfängerproblem mit der
while not ... do - schleife

entweder bin ich zu dumm, oder die Syntax von Delphi gefällt mir nicht

Delphi-Quellcode:
while not (Tformelobjekt(formellist[i]).operator = '^') OR (Tformelobjekt(formellist[i]).operator = 'Sq')
   do inc(i);
das funktioniert nicht, wenn der operator='Sq' ist (und das ist er - das hab ich mit dem debugger geprüft).
kann man bei while keine mehreren bedingungen angeben!?

muss ich das dann so machen?

Delphi-Quellcode:
while not (Tformelobjekt(formellist[i]).operator = '^') do
begin
      while not (Tformelobjekt(formellist[i]).operator = 'Sq')
        do inc(i);
      inc(i);
end;
oder halt in zwei schleifen nacheinander. das kann doch eigentlich nicht!?
also was mach ich falsch.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: while not ... do

  Alt 28. Sep 2004, 14:05
Wenn beide Abfragen nicht eintreffen dürfen, musst du 2x not schreiben, falls dies dein problem ist:

Delphi-Quellcode:
while not (Tformelobjekt(formellist[i]).operator = '^') OR not (Tformelobjekt(formellist[i]).operator = 'Sq')
   do inc(i);
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: while not ... do

  Alt 28. Sep 2004, 14:06
Mach es besser so:
Delphi-Quellcode:
while not ((Tformelobjekt(formellist[i]).operator = '^') OR (Tformelobjekt(formellist[i]).operator = 'Sq'))
   do inc(i);
  Mit Zitat antworten Zitat
bmg4ever

Registriert seit: 16. Sep 2004
12 Beiträge
 
#4

Re: while not ... do

  Alt 28. Sep 2004, 14:08
oh ich idiot

danke vielmals, funktioniert perfekt.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: while not ... do

  Alt 28. Sep 2004, 14:12
Hi Matze,

ganz stimmt dies nicht. Laut Boolescher Algebra gilt: (not (A or B)) ist nicht ((not A) or (not B)), sondern ((not A) and (not B)).
Ich hoffe das war halbwegs verständlich, denke es einfach mal mit 0 und 1 durch, dann wirst du sehn

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: while not ... do

  Alt 28. Sep 2004, 14:13
Also war meines Syntaktisch korrekt?
Faszinerend...
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: while not ... do

  Alt 28. Sep 2004, 14:17
Zitat von Matze:
Delphi-Quellcode:
while not (Tformelobjekt(formellist[i]).operator = '^') OR not (Tformelobjekt(formellist[i]).operator = 'Sq')
   do inc(i);
Zitat von Dax:
Delphi-Quellcode:
while not ((Tformelobjekt(formellist[i]).operator = '^') OR (Tformelobjekt(formellist[i]).operator = 'Sq'))
   do inc(i);
Euch ist aber klar, dass das 2 unterschiedliche Aussagen sind oder?

1) !a or !b
2) !(a or b)

Mal die 2 Wahrheitstafeln dazu (Ergebnis in Fett):
Code:
1)
!a [b]or[/b] !b
 1  [b]1[/b] 1
 1  [b]1[/b] 0
 0  [b]1[/b] 1
 0  [b]0[/b] 0

2)
[b]![/b](a or b)
[b]1[/b] 0  0 0
[b]0[/b] 0  1 1
[b]0[/b] 1  1 0
[b]0[/b] 1  1 1
1) Wenn mindestens eine der Bedingungen false ist Ergebnis true
2) Nur wenn beide Bedingungen nicht zutreffen ist Ergebnis true

Ich denke Dax's Variante dürfte das gewollte machen .

\\edit: Alter Falter binnisch wieder laaahhhmmm
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: while not ... do

  Alt 28. Sep 2004, 14:18
Zitat von Dax:
Also war meines Syntaktisch korrekt?
Sogar semantisch .
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: while not ... do

  Alt 28. Sep 2004, 14:19
ja, das ist mir schon klar.

Er sagte aber:
Zitat:
das funktioniert nicht, wenn der operator='Sq'
Deshalb dachte ich, er will's anders haben.
  Mit Zitat antworten Zitat
bmg4ever

Registriert seit: 16. Sep 2004
12 Beiträge
 
#10

Re: while not ... do

  Alt 28. Sep 2004, 14:19
Zitat von Dax:
Also war meines Syntaktisch korrekt?
Faszinerend...
ja
ich hab deins genommen und funzt super.
  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 00:03 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