![]() |
Mod Anweisung funktioniert nicht
Guten Mittag,
folgender Quellcode:
Delphi-Quellcode:
Wo liegt der Fehler? Finde ihn nicht.
procedure TForm1.Button1Click(Sender: TObject);
var Zahl, Rest: real; Zaehler, Teiler: Integer; begin Zahl := StrToFloat(Edit1.Text); Zaehler := 0; Rest := 0; Teiler := 2; Repeat Rest := Zahl Mod Teiler; //<--[Fehler] Teiler.pas(37): E2015 Operator ist auf diesen Operandentyp nicht anwendbar Zahl := Zahl / 2; Until Rest <>0; Label1.Caption := FloatToStr(Zaehler); end; |
Re: Mod Anweisung funktioniert nicht
mod funktioniert nur mit ganzzahlen. Zahl ist jedoch vom Typ "real"
|
Re: Mod Anweisung funktioniert nicht
Args ja stimmt, dank dir.
|
Re: Mod Anweisung funktioniert nicht
für Realzahlen kannst du so den Rest berechnen (alle Variablen sind vom Typ Real bei dem Beispiel):
Delphi-Quellcode:
lRest := lDivident - Trunc(lDivident / lDivisor) * lDivisor;
|
Re: Mod Anweisung funktioniert nicht
Mit Integer geht es nun, aber jetzt läuft die repeat..until Schleife immer ins nirgendwo. :(
Delphi-Quellcode:
Dabei sollte sie ja eigentlich stoppen sobald Rest <> 0 wird, tut sie irgendwie nicht. :(
procedure TForm1.Button1Click(Sender: TObject);
var Zahl, Rest, Zaehler, Teiler: Integer; begin Zahl := StrToInt(Edit1.Text); Zaehler := 0; Teiler := 2; Repeat Rest := Zahl Mod Teiler; Zahl := Zahl XOR 2; Inc(Zaehler); Until Rest <> 0; Label1.Caption := FloatToStr(Zaehler); end; Ne Idee woran das liegen mag? |
Re: Mod Anweisung funktioniert nicht
Tja, da kannst du vermutlich lange warten.
Zahl:=Zahl xor 2; macht nichts anderes, als das 1. Bit von Zahl (von 0 beginnend) immer zu "wechseln". Mehr auch nicht. |
Re: Mod Anweisung funktioniert nicht
Halo,
was willst du durch das xor erreichen ? 4 xor 2 = 6 6 xor 2 = 4 Endlos-Schleife, weil 4 und 6 keinen Rest bei mode 2 haben. Heiko PS: Das xor hat der Taschenrechner von Windows ausgerechnet ... ;) |
Re: Mod Anweisung funktioniert nicht
Hatte in der Hilfe gelsen das es unter anderem ein Teiler für Integer Werte sein soll, muss ich mich verlesen haben. :oops:
Wie dem auch sei, hab ich durhc die Formel von SirThornberry das hinbekommen, danke euch. |
Re: Mod Anweisung funktioniert nicht
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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