Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   DIV Problem (Integer?) (https://www.delphipraxis.net/160618-div-problem-integer.html)

Decadoria 23. Mai 2011 06:57

DIV Problem (Integer?)
 
Hallo Ihr :D
Ich hab n problem und finde meinen Fehler nicht!
Und zwar geht es darum das ich in meinem Programm eine Rechnung machen will,
als ergebnis will ich aber nur GANZE zahlen ausgegeben bekommen.

Ich hab daher jetzt in meiner Rechnung mit DIV statt / gerechnet..
Allerdings bekomme ich nun immer folgende Fehlermeldung:


[Fehler] Unit1.pas(42): Operator ist auf diesen Operandentyp nicht anwendbar

Hier Nochmals mein Quelltext... Kann mir jemand sagen was ich jetzt Falsch gemacht habe???

var
Form1: TForm1;
L,H,L2,H2:real;


procedure TForm1.RechneClick(Sender: TObject);

begin
L:=strtoint (Laenge.text);
H:=strtoint (Hoehe.text);

if L>H then begin
L2:=L;
H2:=(L div 3)*2;
end
else
begin
H2:=H;
L2:=(H div 3)*2;
end;

Hoehe2.text:=inttostr(H2) ;
Laenge2.Text:=intttostr(L2) ;

end;


LG Deca

DeddyH 23. Mai 2011 07:03

AW: DIV Problem (Integer?)
 
DIV funktioniert nur mit ganzen Zahlen, L ist aber vom Typ real.

P.S.: Willkommen in der DP :dp:

mkinzler 23. Mai 2011 07:04

AW: DIV Problem (Integer?)
 
Warum deklarist du die Variablen als Reals und nicht als Integer?

himitsu 23. Mai 2011 08:01

AW: DIV Problem (Integer?)
 
Warum sind eigentlich
Delphi-Quellcode:
L,H,L2,H2:real;
global deklariert, obwohl sie nur lokal benötigt werden?


Zitat:

Zitat von mkinzler (Beitrag 1102283)
Warum deklarist du die Variablen als Reals und nicht als Integer?

Vorallem da du ja eigentlich überall Integer haben wolltest.
siehe
Delphi-Quellcode:
L:=strtoint
,
Delphi-Quellcode:
intttostr(L2)
,
Delphi-Quellcode:
div
und vorallem
Zitat:

DIV Problem (Integer?)
Zitat:

[Fehler] Unit1.pas(42): Operator ist auf diesen Operandentyp nicht anwendbar
Operator = dein DIV
Operandentyp = Typ deiner Variable
Also, da kann man aus der Fehlermeldung herauslesen, daß die Variable einen unpassenden Typen besitzt, welcher nicht mit dieser Operation vereinbar ist.
PS: Für Fließkommazahlen nutzt man das
Delphi-Quellcode:
/
als Divisionsoperator.



Man hätte nicht alles fett schreiben müssen und der Code paßt auch ganz gut in ein [code]...[/code] oder sogar ein [delphi]...[/delphi] (der Knopf mit dem roten Helm) rein. :zwinker:
Für Fehlerstellen macht sich z.B. ein Kommentar ala
Delphi-Quellcode:
// <<<<< hier ist es
nicht verkehrt.

Decadoria 23. Mai 2011 09:33

AW: DIV Problem (Integer?)
 
Aaaaaa Danke schön :D

Ich hatte das problem das am anfang immer die fehlermeldung kam das InttoFloat nicht möglich ist ^-^
Aber habe das problem behoben xD

danke euch xD

und das mit [delphi] und Code und so wusste ich nich - . - sorry

Deep-Sea 23. Mai 2011 09:44

AW: DIV Problem (Integer?)
 
Zitat:

Zitat von Decadoria (Beitrag 1102311)
[...] die fehlermeldung kam das InttoFloat nicht möglich ist [...]

So eine Funktion gibt es auch nicht. Für was auch?!

himitsu 23. Mai 2011 10:26

AW: DIV Problem (Integer?)
 
Er/Sie/Es meinte vermutlich StrToFloat und die Zuweisung an einen Integer. :stupid:

Decadoria 23. Mai 2011 13:02

AW: DIV Problem (Integer?)
 
Also ne xD Das mit Int und Floats hab ich noch nich kapiert xD

Ich krieg dauerhaft Fehlermeldungen - .-

Code:
procedure TForm1.RechneClick(Sender: TObject);

var V,L,H,L2,H2:integer;

begin
L:=strtoint (Laenge.text);
H:=strtoint (Hoehe.text);
V:= L div H;

if V>1.5 then
  begin
  H:= L div 1.5; // [Fehler] Unit1.pas(47): Operator ist auf diesen Operandentyp nicht anwendbar
  end
else
  begin
  L:=1.5*H;
  end
end;

Hoehe2.text:=inttostr(H2) ;
Laenge2.Text:= intToStr(L2) ;
omg - . - Warum ist mein Operator jetz nich anwendbar?? ich hab das doch als Integer deklariert ö.ö

Sorry bin zu blöd für Delphi glaub ich langsam xD

DeddyH 23. Mai 2011 13:04

AW: DIV Problem (Integer?)
 
Delphi-Quellcode:
Integerergebnis := Integer div Integer;
Alle 3 Teile müssen ganzzahlig sein, sonst kannst Du DIV nicht anwenden. 1,5 geht also nicht.

Deep-Sea 23. Mai 2011 13:05

AW: DIV Problem (Integer?)
 
Weil 1,5 nun mal keine ganze Zahl ist, der div-Operator aber nur für ganze Zahlen zu nutzen ist. Wenn du durch 1,5 teilen musst, musst du den normalen Teilungsoperator "/" nutzen. Um das Gleitkommaergebnis dieser Operation wieder in eine ganze Zahl zu wandeln hilft z.B. die Funktion Delphi-Referenz durchsuchenRound.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr.
Seite 1 von 3  1 23      

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