![]() |
Fehlermeldung:Inkompatible Typen:'Integer'und'Extended' ????
Hallo
Ich vestehe nicht warum bei mir eine Fehlermeldung bei diesem Code kommt:
Delphi-Quellcode:
Fehlermeldung:
var x,y,c,m:Integer;
y:=m/(x+(270-(2*x))); Zitat:
|
Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
Beim Dividieren könnten Nachkommastellen entstehen. Deshalb als Ergebnis ein Float, Runden/Anschneiden oder ein DIV statt /
|
Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
Integer-Division geht mit div statt /.
[edit] Schon wieder dieser Markus *grmpf* [/edit] |
Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
Hallo Hans33,
du vernwendest bei Integer "/". Das geht nicht. Entweder du verwendest div evtl. in Kombination mit mod oder du musst deinen Datentyp ändern (anstelle Integer dann z.B. Extended) Edit: roter Kasten, viiiel zu langsam.... :( |
Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
Das Problem ist nur folgendes: Ich muss auch durch Null teilen
Delphi-Quellcode:
Mit div statt / kommt: Dividieren durch Null nicht möglich
for x := 1 to 270 do
begin y:=m/(x+(270-(2*x))); Paintbox1.Canvas.Pixels[x,y]:=clBlue; end; |
Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
mit y:real; klappt es nicht zu zeichnen, denn dazu brauch ich nämlich Integerwerte
|
Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
Zitat:
Diesen Fall mußt du vorher abfangen und entsprechend reagieren. :hi: |
Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
Durch 0 kannst Du nicht teilen, egal ob ganze oder Fließkommazahl. Du kannst statt div zu verwenden aber auch anders vorgehen:
Delphi-Quellcode:
for x := 1 to 270 do
begin y:=round(m/(x+(270-(2*x)))); // x und y sind integer Paintbox1.Canvas.Pixels[x,y]:=clBlue; end; |
Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
hab jetzt halt
Delphi-Quellcode:
for x := 1 to 270 do
begin y:=round((x+(270-(2*x)))/m); Paintbox1.Canvas.Pixels[x,y]:=clBlue; end; |
Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
Zitat:
x+(270-(2*x)) umformt, dann erhält man 270-x Da die Schleife bis 270 geht ist klar, dass beim letzten Durchlauf x=270 ist und damit der Nenner 0 wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 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 by Thomas Breitkreuz