Einzelnen Beitrag anzeigen

hanvas

Registriert seit: 28. Okt 2010
166 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Programm Analye

  Alt 9. Aug 2015, 10:05
Hallo

x := (x / 2); //Bezüglich dieser Zeile gibt mir Lazarus aus unit1.pas(73,15) Error: Incompatible types: got "Double" expected "LongInt"
Wenn Du statt / den Operator DIV verwendest sollte alles i.O sein.

Da der Compiler während des Compilierens im Allgemeinen keine Annahme darüber trifft wie das Ergebnis aussieht gibt es häufig zwei Operatoren zur Division. In Delphi wäre das eben / und DIV. Der Operator DIV führt eine Division zweier Ganzzahlen durch und vergisst den Rest, / führt eine normale Division durch und hat einen Rest - das Ergebnis ist eine Fließkommezahl.

Falls Du von C od. C++ kommst, darin unterscheidet sich Pascal von C oder C++. In C artigen Sprachen wird der Operator / sowohl für die ganzzahlige Division wie auch für die normale Division verwendet. Der Unterschied wird durch die Datentypen der beteiligten Operanden bestimmt.

C 3 / 2 Ergebnis ist 1
3 / 2.0 Ergebnis ist 1.5

Delphi 3 DIV 2 Ergebis ist 1
3 / 2 Ergebnis ist 1.5

hth Ha-Jö
  Mit Zitat antworten Zitat