# Bruchrechner



## hidiho (25. Januar 2006)

Hallo

Ich möcht gern ein Bruchrechner schreiben.

Es soll eine Addition, Subtraktion, Multiplikation und Division durchführbar sein.

Ich hab hier schon ein wenig gesucht und das *hier* gefunden.

Was muss ich jetzt aber tun um z.B.:
5
---
14
dazustellen ?


Achja ich benutz Turbo C++ 4.5 falls jemand das interessiert.
Edit: Es sollen nur gemeine Brüche verarbeitet werden.


----------



## jokey2 (25. Januar 2006)

Auf der Konsole oder mit einer grafischen Oberfläche?


----------



## hidiho (25. Januar 2006)

Das einfache Konsolenfeld.


----------



## deepthroat (25. Januar 2006)

Hi.

Das könntest du in C++ so machen:
	
	
	



```
#include <iostream>
#include <algorithm>
#include <iomanip>

using namespace std;
...

    long zaehler = 115, nenner = 14;
    ostringstream buf;
    
    buf << max(zaehler, nenner);

    int len = buf.str().length();
    
    cout << right << setw(len) << zaehler << endl;
    cout << string(len, '-') << endl;
    cout << setw(len) << nenner << endl;
```



> Achja ich benutz Turbo C++ 4.5 falls jemand das interessiert.


Vielleicht solltest du dir überlegen mal einen etwas moderneren Compiler zu verwenden - keine Ahnung ob der Code überhaupt kompiliert wird. Dev-C++ ist eine IDE mit einem gutem Compiler der auch den C++ Standard von 1999 recht gut unterstützt.

Gruß


----------



## hidiho (25. Januar 2006)

Ich hab auch noch Delphi4 und Borland C++ 4.5 und 5

aber mit den komm ich im moment irgenwie nicht klar.
Kannst du mir die funktion der biblothek "algorithm" und "iomanip" mal erklären - grob reicht völlig


----------



## deepthroat (25. Januar 2006)

Die Header iomanip und algorithm sind Teil der C++ Standard Template Bibliothek.

In iomanip sind sogenannte Manipulatoren (wie z.B. setw und right) für die IOStreams definiert die man an einen Stream übergeben kann um das Format der Ein/Ausgabe anzupassen.

In algorithm sind Template-Funktionen allgemeiner Art enthalten - z.B. die Funktion max die das Maximum von 2 Werten bestimmt und zurückgibt.

Siehe z.B. http://www.dinkumware.com/manuals/reader.aspx?b=p/&h=algorith.html und http://www.dinkumware.com/manuals/reader.aspx?b=p/&h=iomanip.html.

Gruß


----------



## hidiho (25. Januar 2006)

Okay thx

Hattest aber recht - er kann den quelltext nicht compilieren da er nicht mal iostream kennt.
Das Problem hatte ich schon mal versucht zulösen - einfach die entsprechende Biblothek in der biblo.-verzeichnis kopiert, aber trotzdem will er die nicht erkennen.

Kennt da wer ne lösung ?


----------



## deepthroat (25. Januar 2006)

Erstmal ist dein Compiler einfach zu alt. Dann ist ein Header keine Bibliothek und wenn man den Header besitzt reicht das nicht aus weil normalerweise eben die dazugehörige Bibliothek fehlt.

Vor der Standardisierung von C++ hatten die Header noch eine .h Endung - das heißt du könntest mal probieren iostream in iostream.h usw. umzubenennen. Evtl. klappt es dann.

Ansonsten wird wirklich das beste sein du lädst dir einen neuere Compiler/IDE runter so dass du dann auch ordentlich arbeiten kannst.

Gruß


----------

