Undefined
By: modcalc.cpp | Date: Nov 28 2009 14:53 | Format: C++ | Expires: never | Size: 4.46 KB | Hits: 876
- //////////////////////////////////////////////////////////////////////////
- // //
- // Voelz, Michael Matr.-Nr.: 345451 //
- // //
- // //
- // modCalc //
- // ========= //
- // //
- //////////////////////////////////////////////////////////////////////////
- // //
- // Datum: 19.11.2006 //
- // //
- // //
- // //
- // //
- // Beschreibung des Programms: //
- // =========================== //
- // //
- // Funktion: //
- // Fordert zur Eingabe eines Operators und eines Operanden auf und //
- // gibt dann das ergebnis aus. Division durch 0 ist nicht erlaubt. //
- // Beenden mit 'e'. L�schen mit 'c'. //
- // //
- // Aufbau: //
- // enth�lt eine do-while Schleife in der die Berechnung und die //
- // Abfrage stattfindet. Am Anfang ein if um auf Eingabe von 'e' //
- // oder 'c' zu �berpr�fen. //
- // //
- // Benutzung: //
- // einfach nur starten und den Anweisungen folgen //
- // //
- // //
- // //
- //////////////////////////////////////////////////////////////////////////
- #include <iostream>
- #include "mathfunctions.h" // headerfile
- using namespace std;
- void main()
- {
- char Operator;
- double operand, ergebnis = 0;
- druckEingabeHilfe(); // eingabehilfe ausgeben
- cout << ergebnis;
- do
- {
- cin >> Operator; // abfrage f�r +, -, *, /, ...
- switch(Operator)
- {
- case '*': cin >> operand; // abfrage des operanden
- ergebnis = ergebnis * operand;
- cout << ergebnis;
- break;
- case '/': cin >> operand; // abfrage des operanden
- if(operand == 0) // wenn x/0
- {
- cout << "Division durch '0' ist nicht zulaessig!" << endl << ergebnis;
- }
- else
- {
- ergebnis = ergebnis / operand;
- cout << ergebnis;
- }
- break;
- case '-': cin >> operand; // abfrage des operanden
- ergebnis = ergebnis - operand;
- cout << ergebnis;
- break;
- case '+': cin >> operand; // abfrage des operanden
- ergebnis = ergebnis + operand;
- cout << ergebnis;
- break;
- case '!': if (ganzZahl(ergebnis)) // ganze zahl?
- {
- if (ergebnis < 0) // es gibt nur Fakult�ten > 0
- {
- cout << "Fakultaet ist nur fuer natuerliche Zahlen > 0 definiert!" << endl << ergebnis;
- }
- else
- {
- ergebnis = fakultaet(ergebnis);
- cout << ergebnis;
- }
- }
- else // wenn keine ganze zahl
- {
- cout << "Keine ganze Zahl!" << endl << ergebnis;
- }
- break;
- case '^': cin >> operand; // abfrage des operanden
- if (ganzZahl(operand)) // ganze zahl?
- {
- if (ergebnis == 0 && operand < 0) // wenn basis = 0 und exponent < 0
- {
- cout << "Basis = 0 und Exponent < 0 geht leider nicht!" << endl << ergebnis;
- }
- else
- {
- if (operand == 0) // wenn basis = 0
- {
- ergebnis = 0.;
- cout << ergebnis;
- }
- else
- {
- ergebnis = potenz(ergebnis, int(operand)); // potenzrechnung
- cout << ergebnis;
- }
- }
- }
- else
- {
- cout << "Keine ganze Zahl!" << endl << ergebnis; // keine ganze zahl
- }
- break;
- case 'c': ergebnis = 0.; // ergebnis zur�cksetzen
- cout << ergebnis;
- break;
- case 'e': break; // beenden
- default: cout << " ->" << Operator << ": falsche Operation" << endl << ergebnis; // bei falscher eingabe
- break;
- }
- }while(Operator != 'e');
- }
- void druckEingabeHilfe() //Unterprogramm
- {
- for (int i=1; i<=(breite/2); i++) // breite/2 mal *
- {
- cout << "*";
- }
- cout << title; // in die mitte der titel
- for (int i=1; i<=(breite/2); i++) // breite/2 mal *
- {
- cout << "*";
- }
- cout << endl;
- cout << "Bitte geben sie die Anweisungen in der Form von '+1' an." << endl;
- cout << "Beenden mit 'e'. Ergebnis loeschen mit 'c'." << endl;
- for (int i=1; i<=(breite + int(strlen(title))); i++)
- {
- cout << "*";
- }
- cout << endl;
- }
Latest pastes
1 days ago
1 days ago
2 days ago
4 days ago
5 days ago