# Rechenprogramm in C++ erstellen, aber wie ?



## Kulturni (5. November 2006)

hi, ich bin total am verzweifeln
habe einen code gebastelt aber die exe lässt sich einfach nicht ausführen

ich hoffe ihr könnt mir weiterhelfen



> #include <iostream>
> 
> #include <conio.h>
> 
> ...


----------



## Kangaxx (5. November 2006)

Hallo,

also erstmal solltest du deinen Code ein bisschen formatieren (nur für den Fall das der au so in deiner .cpp File steht...)

Danach hätte ich mal die Frage ob es wirklich beabsichtigt is das der Benutzer solange Zahlen bei einer Rechenoperation eingeben soll bis er eine 1 eingegeben hat?

Also wenn das eine fertig compilierte Anwendung is, dann solltest du vlt den Compiler wechseln, da fehlt nämlich ein return für deine Main... 

Erklärung: int main() heißt das die Funktion Main einen Wert vom Typ integer (also ne Zahl...) zurückgeben muss. Für gewöhnlich gibt man 0 zurück wenn kein Fehler aufgetreten is..


P.S und da du ja eh den iostream-Header drin hast könntest du auch system("Pause") anstatt dem getchar() am Ende verwenden.


----------



## Kulturni (5. November 2006)

äh ich verstehe nur bahnhof ... 

kannst du das mal vielleicht hintippen wie es aussehen sollte ?


----------



## Kulturni (5. November 2006)

also ich habe jetzt endlich einen relativ guten quellcode nur eins fehlt mir, und zwar weiß ich nicht, wie ich es hinkriege, dass das ding direkt eine nächste rechenoperation macht. das programm sollte weierlaufen und nicht nach der ersten rechnung direkt schließen

kann mir da einer weiterhelfen ?



> //Taschenrechner C++.cpp
> 
> #include <iostream>
> #include <math.h>
> ...


----------



## cav3man (5. November 2006)

Hi

Das Problem ist folgendes:

In deiner Main deklarierst du eine Integer Variable "aus" die du dann mit dem Rückgabewert aus der Funktion Menu initialisierst. Also mit 1 wenn die Addition ausgewählt wurde und so weiter.

Da startest du eine Do While Schleife die die Rechnung auswerten soll. 
Nach der Rechnung setzt du dann den Schalter "quit" auf TRUE.
Die Schleife ist nun zuende und die Bedingnung !quit wird geprüft.
Da quit auf TRUE steht und durch das ! umgekehrt wird steht die Bedingnung auf FALSE und die Schleife wird beendet. Nach der Schleife ist nun das Programm beendet.

Damit das ganze so funktioniert wie du willst musst du die Variable "aus" vor der Schleife deklarieren, aber erst in der Schleife initialisieren.

Am Ende der Schleife macht du dann eine Eingabe "Wollen Sie eine weitere Rechnung durchführen?". Anhand der Eingabe weißt du dann der Variablen quit ein TRUE zu falls beendet werden soll oder ein FALSE wenn nicht beendet werden soll.

Ich hoffe ich konnte dir helfen.
Gruß
cav3man


----------



## Kulturni (5. November 2006)

und jetzt nochmal in quellcode sprache bitte


----------



## cav3man (5. November 2006)

```
//Taschenrechner C++.cpp

#include <iostream>
#include <math.h>

using namespace std;

int menu() {

int i;

cout << "Dies ist ein Taschenrechnerprogramm. Damit koennen sie weiterrechnen, wenn das verrunzte Gehirn nicht mehr moechte. ";
cout << "Waehlen sie nun die Rechenart aus. Dabei benutzen Sie bitte eine Zahl zwischen 1 und 4. Und jetzt wuensche ich viel Spass, sie Mathegenie";
cout << "\n\t<---------Taschenrechner----------->"
<< "\n\t(1) Addieren"
<< "\n\t(2) Subtrahieren"
<< "\n\t(3) Multiplizieren"
<< "\n\t(4) Diviedieren"
<< "\n\t<----------------------------------->";
cin >> i;
return i;
}

int main() {

bool quit = false;
int schluss;
long double a, b;
int aus
do {
aus = menu();

cout << "\n\n\tBitte erste Zahl eingeben";
cin >> a;
cout << "\n\n\tBitte zweite Zahl eingeben";
cin >> b;
switch(aus) {

case 1: 
{
cout << "\n\t" << a << " + " << b << " = " << a + b << endl; 
break;
}
case 2: 
{
cout << "\n\t" << a << " - " << b << " = " << a - b << endl; 
break;
}
case 3: 
{
cout << "\n\t" << a << " * " << b << " = " << a * b << endl; 
break;
}
case 4: 
{
cout << "\n\t" << a << " / " << b << " = " << a / b << endl; 
break;
}
}
cout << "Wollen sie noch eine Rechnung durchfuehren? [1=ja/2=nein] " << endl;
cin >> schluss;
if(schluss == 1)
{
quit = false;
}
else
{
quit = true;
}
}while (!quit);

cout << "\n\tBeliebige Taste druecken zum beenden";
system("pause");

return 0;

}
```


----------



## Kulturni (5. November 2006)

danke für die hilfe. 

good job


----------



## deepthroat (5. November 2006)

Kangaxx hat gesagt.:


> Also wenn das eine fertig compilierte Anwendung is, dann solltest du vlt den Compiler wechseln, da fehlt nämlich ein return für deine Main...
> 
> Erklärung: int main() heißt das die Funktion Main einen Wert vom Typ integer (also ne Zahl...) zurückgeben muss. Für gewöhnlich gibt man 0 zurück wenn kein Fehler aufgetreten is..


Den Compiler zu wechseln ist Unsinn. Sowohl in C++ als auch in C (Standard von 1999) ist es legitim und auch üblich das abschließende "return 0;" in der Haupteinsprungsroutine main wegzulassen. Läßt man es weg, wird automatisch 0 zurückgegeben.

Gruß


----------



## 2lo2die8D (4. November 2009)

> //Taschenrechner von Mars.cpp - Mein erstes Projekt
> #include <iostream>
> #include <cmath>
> #include <string>
> ...


ich kann dir meinen zur verfügung stellen =)


----------



## Cromon (4. November 2009)

Ist das irgenein spezieller Plan, dass deine Variablen alle sinnfreie und unhantlich Namen haben?


----------



## sheel (4. November 2009)

dsfgaerqewpaspirgilisipkl = sjdfgjpaspirgilisndfsdnj * sjdfgjpaspirgilisndfsdnj; 
...Ausserdem ist das Thema 3 Jahre alt


----------

