Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Kleines Schleifenproblem
Luzifer666 - Sa 06.03.04 14:50
Titel: Kleines Schleifenproblem
Hallo Community!
Bin blutiger Anfänger und suche einen Rat was ich bei folgender Schleife falsch gemacht hab:
Delphi-Quelltext
1: 2: 3:
| while ezaehler mod i and enenner mod i = 0 do ezaehler:= ezaehler div i and enenner := enenner div i end; |
Der Compiler meckert mir in der zweiten Zeile an, dass die "Left side cannot be assigned to" und dass er am Ende ein "Statement excepted, but expression of type "Integer" found". Ezaehler und Enenner sind in der Procedure deklariert
Delphi-Quelltext
1:
| procedure deklaration(a,b,c,d:integer;out ezaehler,enenner:integer); |
Sieht jemand den Fehler oder braucht ihr weitere Infos? Thx schonmal für Hilfe!
Moderiert von
Peter Lustig: Topic verschoben, Code- durch Delphi-Tags ersetzt
Christian S. - Sa 06.03.04 14:59
Hallo!
Folgende Fehler:
(1) Die Bedingung in der while-Schleife muss ein Bool'scher Ausdruck sein. Ist es bei Dir aber nicht. So müsste er richtig aussehen:
Delphi-Quelltext
1:
| while (ezaehler mod i = 0) and (enenner mod i = 0) do |
(2) Anweisungen werden nicht mit "and" verknüpft. So sieht es richtig aus:
Delphi-Quelltext
1: 2: 3: 4:
| begin ezaehler:= ezaehler div i; enenner := enenner div i; end; |
(3) In Deinem Quelltex macht das letzte "end" keinen Sinn. Aber das hat sich ja durch (2) geklärt.
MfG
Peter
Luzifer666 - Sa 06.03.04 15:05
Ok, die Errors sin weg, aber jetzt ist da leider ein neuer.
So siehts momentan aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| for i := min downto 2 do begin while (ezaehler mod i) and (enenner mod i = 0) do begin ezaehler := ezaehler div i; enenner := enenner div i; end; |
Hinter dem "do" sagt er mir dass der "Operator not applictable to this operand type" ist.
:/
Aber schonmal Danke bis hierhin! ;)
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
Christian S. - Sa 06.03.04 15:13
Der erste Teil der Abbruchbedingung stimmt noch nicht ganz mit dem über ein, was ich geschrieben habe. Das ist ja eine Zahl und kein Bool'scher Ausdruck.
Ach ja, benutze doch demnächst bitte die Delphi- anstatt der Code-Tags. Das aktiviert das Syntax-Highlighting.
Luzifer666 - Sa 06.03.04 15:36
Sry, ganet gemerkt! ;)
Also, ich habs hinbekommen! :D
Es hat bei
Delphi-Quelltext
1: 2:
| begin while (ezaehler mod i) and (enenner mod i = 0) do |
noch ein simples "= 0" hinter dem "ezaehler mod i" gefehlt! ;)
Vielen Dank, hat mir sehr geholfen!
Schönen Tag noch!
cya
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!