[TP] Falsche Ausgabe bei mm->inch - rechner

FreeZeY

Lt. Junior Grade
Dabei seit
Aug. 2004
Beiträge
398
Hi,
ich habe mal versucht ein mm->inch - Rechner mit Turbo pascal zu programmieren.
Er gibt ne ganz komische Zahl aus. Schaut euch das mal an (Anhang).
Eigentlich müsste in der ersten ergebniszeile die eingabe -10 (also bei eingabe: 800 wären das 790). und in der zweiten müsste dann halt die eingabe selber umgerechnet werden.

Danke schon mal für die antworten,
lg FreeZeY



Code:
program rechner;

uses crt;

var operation : char;
    eingabe,eingabe2,Ergebnis,Ergebnis2 : real;

procedure typein;
begin
  write(' Zahl: ');
  read(eingabe);
  ergebnis := eingabe*0.039370078;
  ergebnis2 := ergebnis-0.39370078;
  eingabe2 := eingabe-10;
end;

procedure ausgabe;
begin
  writeln('');
  writeln(eingabe2,': ',ergebnis2:1:3);
  writeln(eingabe,': ',ergebnis:1:3);
end;

begin
   clrscr;
   typein;
   ausgabe;
  repeat until keypressed;
  writeln('');
   typein;
   ausgabe;
  repeat until keypressed;
end.
 

Anhänge

  • KONVERTER.zip
    4,7 KB · Aufrufe: 226

Meolus

Lt. Commander
Dabei seit
Feb. 2005
Beiträge
1.411
Das ist halt Exponentialdarstellung!

7.9000000000E+02 = 790! -> trivial ausgedrück: halt komma um zwei Stellen verschieben, wie es da steht!

Für eine andere Darstellung musst du die Ausgabe formatieren, wie du hinter dem Doppelpunk ja bereits machst...

Ansonsten macht dein Programm genau das was es soll bzw. du implementiert hast (,auch wenn ich nicht verstehe wofür, dieses Zeug gut sein soll :D )!

BTW Die Benutzerführung ist sehr hackelig! Vorallem, dass man zweimal rechnen muss und sich das Prog dann nach einem Tastendruck beendet! Kurzum, man kann nicht wirklich mit dem Programm arbeiten, da man es nicht umbedingt kontrollieren kann!

MfG Meolus
 
Zuletzt bearbeitet:

FreeZeY

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Aug. 2004
Beiträge
398
Und wie kann ich ihm sagen, dass er einfach nur die stinknormale 790 bzw. 800 darstellen soll?
 

Meolus

Lt. Commander
Dabei seit
Feb. 2005
Beiträge
1.411
Turbo Pascal ist zwar schon was bei mir her, aber das sollte mit

MyVar:2:0 gehen... wobei nur die "0" das relevate ist, was du mal versuchen solltest....

Ansonsten wenn du eh nur ganzzahlige Eingaben hast, dann nimm doch einfach Integer als Typ! Die Ausgabe geht dann IMO auch automatisch "einfacher"...

MfG Meolus
 

FreeZeY

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Aug. 2004
Beiträge
398
Super idee, da hab ich gar net dran gedacht. habs mit integer gemacht.
danke nochmal.
 

Meolus

Lt. Commander
Dabei seit
Feb. 2005
Beiträge
1.411
Zitat von FreeZeY:
Super idee, da hab ich gar net dran gedacht. habs mit integer gemacht.
danke nochmal.
Kein Problem! Dafür ist das Board hier ja u.a. auch da... Wenn du weiter programmierst, würde ich jedoch ein richtiges Programmierer-Board(.de) empfehlen, da gibt es dann nämlich auch eine eigenen Turbo Pascal-Bereich -> http://www.softgames.de/forum/forum-8.html

Ansonsten: Man sollte immer den kleinsmöglichen Variablentyp nehmen, da dann auch der Arbeitsspeicherverbrauch sinkt! Und man mit kleinere/unaufwendigere Typen teils auch noch schneller Rechnen kann...

MfG Meolus
 
Top