Taschenrechner für Brüche aufteilen

Karold

Grünschnabel
Hallo,

ich hab den Code

Code:
#include <iostream>
using namespace std;
struct Bruch {
int a; //Zaehler
int b; //Nenner

};
int main () {
int x;
struct Bruch op1 = {0,1}, op2 = {0,1};
struct Bruch Erg_n;

cout << "Operation eingeben +,-,*,/" << endl;
cin >> x;

cout << "Zeahler und Nenner eingeben:" << endl;
cin >> op1.a >> op1.b;

cout << "Zeahler und Nenner eingeben:" << endl;
cin >> op2.a >> op2.b;

// Addition
if ( x == 1) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.b + op2.a*op1.b;
}

// Subtraktion
if ( x == 2) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.b - op2.a*op1.b;
}

// Multiplikation
if ( x == 3) {
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.a;
}

// Division
if ( x == 4) {
Erg_n.b = op1.b*op2.a;
Erg_n.a = op1.a*op2.b;
}

int r;
int z=Erg_n.a;
int q=Erg_n.b;

do {
r = z%q;
z = q;
q = r;
} while (q !=0);

cout << Erg_n.a/z << " / " << Erg_n.b/z << endl;

return (0);
}

und die Aufgabenstellung ist

Arbeiten Sie Ihre Lösung so um, dass das Kürzen und die Grundrechenarten in Funktionen ausgelagert werden. Schreiben Sie die Funktionsdefinitionen in eine separate Implementierungsdatei und die
Funktionsprototypen in eine separate Headerdatei
Verwenden Sie folgende Funktionssignaturen:
? bruch bplus(bruch x, bruch y)
? bruch bminus(bruch x, bruch y)
? bruch bmal(bruch x, bruch y)
? bruch bdurch(bruch x, bruch y)
? void bkuerzen (bruch &x)


Ich versteh nur nicht im Ansatz was von mir verlangt wird. Kann mir da jemand helfen?
 
Hi

Teil 1 ist ja nicht so schwer.
Du sollst die einzelnen Berechnungen in den if´s in jeweils eine Funktion auslagern,
also im Fall Plus das hier:
C++:
Erg_n.b = op1.b*op2.b;
Erg_n.a = op1.a*op2.b + op2.a*op1.b;
Genannt werden soll die Funktion bplus.
Sie nimmt zwei bruchs´s als Parameter und gibt einen als Ergebnis zurück.
C++:
bruch bplus(bruch x, bruch y)
{
    bruch erg;
    //hier Berechnung von op1 und op2 mit x und y einsetzen.
    return erg;
}
Das Ganze zunächst mal für alle 4 Rechenarten.


PS: Nachträglich Willkommen bei tutorials.de :)

@Caligulaminus: Ja, immer gerne.
 

Neue Beiträge

Zurück