Was mache ich bei "trunc" falsch?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Joy85
Beiträge: 2
Registriert: Do 18. Aug 2016, 15:08

Was mache ich bei "trunc" falsch?

Beitrag von Joy85 »

Hallo ihr Lieben!

Ich hab mich mal dran versucht an einer Volumenberechnung- ich bekomme hier aber utopische Hinterkommazahlen raus- dabei bin ich auf trunc gestoßen in verschiedenen Tutorials, Foren etc- aber hab null Plan wie und wo ich das hier einsetzen kann. Ich bekomm Fehlermeldungen wenn ich es direkt bei VAR reinpacke, bei der Ausgabe des Ergebnisses auch... Oder ist das garnicht für sowas gedacht? :shock:
Dashier hatte ich gefunden, aber werde nicht schlau draus

REAL nach INTEGER
Bei der Umwandlung einer REAL-Zahl in eine ganze Zahl verliert der Wert an Information. PASCAL fordert vom Programmierer, anzugeben, wie das geschehen soll. Zwei Möglichkeiten gibt es:
TRUNC(Wert)
Die Nachkommastellen werden abgeschnitten.

mein "Programm" schaut so aus ohne das ein Fehler kommt- wo und wie kommt denn da nun trunc hin? :roll:

PROGRAM Volumenberechnung;
VAR a, b, c, sum: REAL;
BEGIN
WRITELN('Länge des Raumes, Kommazahlen mit Punkt trennen');
READLN(a);
WRITELN('Höhe des Raumes, Kommazahlen mit Punkt trennen');
READLN(b);
WRITELN('Breite des Raumes, Kommazahlen mit Punkt trennen');
READLN(c);
sum:= a*b*c;
WRITE('Das Volumen ist ');
WRITELN(sum);
END.

Bin über jede Hilfe dankbar- auch wenn man vielleicht eine Kommazahl nutzen kann über einen Befehl oder sonstige Fehler hier gefunden werden...
Danke !!

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Was mache ich bei "trunc" falsch?

Beitrag von Michl »

Gib es doch einfacher lesbar aus (evtl. beantwortet das schon die Frage):

Code: Alles auswählen

  WriteLn(sum:0:0)// ohne Nachkommastellen
  // bzw.
  WriteLn(sum:0:2)// mit zwei Nachkommastellen

Ansonsten wäre das auch eine Lösung:

Code: Alles auswählen

  WriteLn(Trunc(sum));

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Joy85
Beiträge: 2
Registriert: Do 18. Aug 2016, 15:08

Re: Was mache ich bei "trunc" falsch?

Beitrag von Joy85 »

Danke!!

Ich hatte statt
writeln(trunc(sum))

sum=trunc(sum) versucht- war nah dran :D ansonsten immer hinter trunc eine Zahl dazu, dachte wegen der Beispiele müsste das so gemacht werden...

bin javascript gewöhnt, da hab ich oft Denkfehler... mit der Ausgabe hapert es noch gewaltig.

Danke nochmal, jetzt klappt es endlich :-)

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Was mache ich bei "trunc" falsch?

Beitrag von Mathias »

bin javascript gewöhnt, da hab ich oft Denkfehler... mit der Ausgabe hapert es noch gewaltig.

Du wirst sehen, mit Pascal ist vieles einfacher als mit javascript.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten