Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehlermeldung:Inkompatible Typen:'Integer'und'Extended' ???? (https://www.delphipraxis.net/126571-fehlermeldung-inkompatible-typen-integerundextended.html)

Hans33 28. Dez 2008 16:28


Fehlermeldung:Inkompatible Typen:'Integer'und'Extended' ????
 
Hallo

Ich vestehe nicht warum bei mir eine Fehlermeldung bei diesem Code kommt:
Delphi-Quellcode:
var x,y,c,m:Integer;
y:=m/(x+(270-(2*x)));
Fehlermeldung:
Zitat:

[Pascal Fehler] Unit1.pas(65): E2010 Inkompatible Typen: 'Integer' und 'Extended'
Danke für Hilfe

mkinzler 28. Dez 2008 16:29

Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
 
Beim Dividieren könnten Nachkommastellen entstehen. Deshalb als Ergebnis ein Float, Runden/Anschneiden oder ein DIV statt /

DeddyH 28. Dez 2008 16:30

Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
 
Integer-Division geht mit div statt /.

[edit] Schon wieder dieser Markus *grmpf* [/edit]

juergen 28. Dez 2008 16:33

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.... :(

Hans33 28. Dez 2008 16:36

Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
 
Das Problem ist nur folgendes: Ich muss auch durch Null teilen
Delphi-Quellcode:
for x := 1 to 270 do
    begin
         y:=m/(x+(270-(2*x)));
         Paintbox1.Canvas.Pixels[x,y]:=clBlue;
    end;
Mit div statt / kommt: Dividieren durch Null nicht möglich

Hans33 28. Dez 2008 16:37

Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
 
mit y:real; klappt es nicht zu zeichnen, denn dazu brauch ich nämlich Integerwerte

haentschman 28. Dez 2008 16:38

Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
 
Zitat:

Mit div statt / kommt: Dividieren durch Null nicht möglich
...das ist grundsätzlich nicht möglich.
Diesen Fall mußt du vorher abfangen und entsprechend reagieren.

:hi:

DeddyH 28. Dez 2008 16:40

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;

Hans33 28. Dez 2008 16:43

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;

Zipp 1. Jan 2009 12:15

Re: Fehlermeldung:Inkompatible Typen:'Integer'und'Extended'
 
Zitat:

Zitat von Hans33
Das Problem ist nur folgendes: Ich muss auch durch Null teilen
Delphi-Quellcode:
for x := 1 to 270 do
    begin
         y:=m/(x+(270-(2*x)));
         Paintbox1.Canvas.Pixels[x,y]:=clBlue;
    end;
Mit div statt / kommt: Dividieren durch Null nicht möglich

Wenn man

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 06:37 Uhr.
Seite 1 von 2  1 2      

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