You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Wednesday, November 1st 2006, 3:44pm

kleiner Taschenrechner in C++

hi soll einen Taschenrechner in C++ schreiben.

Habe folgenden Quelltext erstellt:

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
using namespace std;
 
int main ()
{
 
Schleife1:
int zeichen;
cout << " " << endl;
cout << "Geben Sie die Rechenart ein ( (1) -> +  (2) -> -  (3) -> * (4) -> / ) ";
cin >> zeichen;
if ((zeichen >= 1) && (zeichen <=4))
{
cout << " " << endl;
 
int anzahl;
cout << "Geben Sie die Anzahl der Operanden ein: " ;
cin >> anzahl;
 
int eins;
cout << "Geben Sie den ersten Operanden ein: ";
cin >> eins;
cout << " " << endl;
 
int zwei;
cout << "Geben Sie den zweiten Operanden ein: ";
cin >> zwei;
cout << " " << endl;
 
int ergebnis;
 
if (zeichen==1) 
{
	ergebnis = eins+zwei;
	cout << eins << " + " << zwei << " = " << ergebnis << endl;
}
if (zeichen==2)
{
	ergebnis = eins-zwei; cout << eins << " - " << zwei << " = " << ergebnis << endl;
}
if (zeichen==3)
{
	ergebnis = eins*zwei; cout << eins << " * " << zwei << " = " << ergebnis << endl;
}
if (zeichen==4)
{
	ergebnis = eins/zwei; cout << eins << " / " << zwei << " = " << ergebnis << endl;
}
}
else goto Schleife1;
system ("pause");
}


Funktioniert auch, nur weiß ich nicht wie ich das mit der Anzahl der Operanden hinbekommen soll, ich kann doch nicht jeden Fall extra deklarieren... Was ist denn wenn jemand mit 100 Operanden rechnen will :roll: Außerdem habe ich nicht überprüft ob die Eingabe zulässig (nur natürliche Zahlen) ist!

lG

cewbie

2

Wednesday, November 1st 2006, 4:10pm

Wie sieht denn die Original Aufgabe aus?

Gruß void

3

Wednesday, November 1st 2006, 4:21pm

Quoted

Aufgabe 2 (Punkte: 5)
Schreiben Sie ein C++ Programm, welches einen einfachen Taschenrechner simuliert. Gehen
Sie dabei folgendermaßen vor: Lesen Sie als erstens den arithmetischen Operator ein. Lesen
Sie dann die benötigten Operanden in Variablen vom Typ int ein. Prüfen Sie vor der Berechnung,
ob diese mit den eingelesenen Werten zulässig ist. Als Operationen sollen + (Addition),
- (Subtraktion), * (Multiplikation) und / (Division) möglich sein.
Geben Sie das Ergebnis der Berechnung in folgender Form aus:
Operand1 Operator Operand2 = Ergebnis


Gruß

cewbie

4

Wednesday, November 1st 2006, 4:34pm

Dann ist doch alles ok.
Der Taschenrechner soll doch nur mit 2 Operanden arbeiten.
Hätte mich ehrlich gesagt auch gewundert,wenn nicht.
Sonst wäre nämlich nen Parsebaum angesagt,der eigentlich eher im Informatikstudium als in Programmieranfängeraufgaben Platz findet.

Gruß void

5

Wednesday, November 1st 2006, 7:07pm

Quoted from ""void""

Dann ist doch alles ok.
Der Taschenrechner soll doch nur mit 2 Operanden arbeiten.
Hätte mich ehrlich gesagt auch gewundert,wenn nicht.
Sonst wäre nämlich nen Parsebaum angesagt,der eigentlich eher im Informatikstudium als in Programmieranfängeraufgaben Platz findet.

Gruß void


ähm ist Informatikstudium :oops:

Hab jetzt:

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
using namespace std;
 
int main ()
{
 
Schleife1:
int zeichen;
cout << " " << endl;
cout << "Geben Sie die Rechenart ein ( (1) -> +  (2) -> -  (3) -> * (4) -> / )" << endl;
cout << ", nur Zahlen  groesser als 0 werden aktzeptiert. ";
cin >> zeichen;
if ((zeichen >= 1) && (zeichen <=4))
{
cout << " " << endl;
 
OP1:
cout << "Operandeneingabe - nur Zahlen  groesser als 0 werden aktzeptiert. " << endl;
int eins;
cout << "Geben Sie den ersten Operanden ein: ";
cin >> eins;
cout << " " << endl;
 
if (eins>=1)
{
OP2:
int zwei;
cout << "Geben Sie den zweiten Operanden ein: ";
cin >> zwei;
cout << " " << endl;
 
if (zwei>=1)
{
 
int ergebnis;
 
if (zeichen==1) 
{
	ergebnis = eins+zwei;
	cout << eins << " + " << zwei << " = " << ergebnis << endl;
}
if (zeichen==2)
{
	ergebnis = eins-zwei; cout << eins << " - " << zwei << " = " << ergebnis << endl;
}
if (zeichen==3)
{
	ergebnis = eins*zwei; cout << eins << " * " << zwei << " = " << ergebnis << endl;
}
if (zeichen==4)
{
	ergebnis = eins/zwei; cout << eins << " / " << zwei << " = " << ergebnis << endl;
}
}
else goto Schleife1;
}
else goto OP1;
}
else goto OP1;
system ("pause");
}


naja es geht. Besonders toll ist es nicht

6

Wednesday, November 1st 2006, 7:45pm

Quoted from ""cewbie""


ähm ist Informatikstudium :oops:

:oops: :roll: :oops: :roll:
oooops

Naja wie dem auch sei,
deine goto´s sind falsch angeordnet.

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
using namespace std;
 
int main ()
{
	Schleife1:
	int zeichen;
	cout << " " << endl;
	cout << "Geben Sie die Rechenart ein ( (1) -> + (2) -> - (3) -> * (4) -> / ) ";
	cin >> zeichen;
	if ((zeichen >= 1) && (zeichen <=4))
	{
		cout << " " << endl;
 
		OP1:
		int eins;
		cout << "Geben Sie den ersten Operanden ein: ";
		cin >> eins;
		cout << " " << endl;
 
		if (eins>=1)
		{
			OP2:
			int zwei;
			cout << "Geben Sie den zweiten Operanden ein: ";
			cin >> zwei;
			cout << " " << endl;
 
			if (zwei>=1)
			{
 
				int ergebnis;
 
				if (zeichen==1)
				{
					ergebnis = eins+zwei;
					cout << eins << " + " << zwei << " = " << ergebnis << endl;
				}
				if (zeichen==2)
				{
					ergebnis = eins-zwei; cout << eins << " - " << zwei << " = " << ergebnis << endl;
				}
				if (zeichen==3)
				{
					ergebnis = eins*zwei; cout << eins << " * " << zwei << " = " << ergebnis << endl;
				}
				if (zeichen==4)
				{
					ergebnis = eins/zwei; cout << eins << " / " << zwei << " = " << ergebnis << endl;
				}
 
			}
			else goto OP2;
		}
		else goto OP1;
	}
	else goto Schleife1;
 
	system ("pause");
}

Generell solltest du gotos vermeiden.Es gibt eigentlich so gut wie immer eine entsprechende saubere Lösung.
Was man eventuell noch gelten lassen kann ist nen Sprung ganz ganz tief raus aus ner gaaaanz tief verschachtelten Schleife,aber ansonsten....ich hab schon ewig kein goto mehr benötigt.
Habt ihr im Studium schon Programmteile nach dem Hoare-Kalkül verifiziert?
Jedes goto wirft dich da zurück....
Oder Kontrollflussdiagramme im Zusammenhang mit Testverfahren?Genau der gleiche Mist.
Ach ja,ne halbwegs vernünftige Codeformatierung hilft übrigens solche Fehler zu finden :wink: .

PS:Also ich denke sonderlich glücklich wird dein Prof mit der Lösung nicht sein.

Gruß void

7

Wednesday, November 1st 2006, 8:02pm

Hallo wir haben letztes Mal erst mal Hello world und so gemacht ^^
Deshalb wird das wohl reichen ;) Aber danke ich werds so ändern, dass die GO TOs passen.
Wir haben auch nur 2 Wochenstunden Programmierung und 2 Wochenstunden Programmierung Vorlesung, müssen aber jede Wochen Aufgaben abgeben. Diese Woche sinds 3, das war eine davon :roll:

8

Sunday, November 5th 2006, 6:42pm

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 ?

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//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=menu();						
do {					
switch (aus) {					
	case 1:			
	case 2:
	case 3:					
	case 4:
 
		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;					
		}					
	quit=true;					
	break;						
 
	default:
		cout << "\n\tFalsche eingabe";		
	break;
 
}							
 
 
}while (!quit);											
 
cout << "\n\tBeliebige Taste und dann enter druecken zum beenden";
cin >> schluss;
 
return 0;
 
}

9

Friday, November 17th 2006, 4:30pm

Hier noch eine Variante eines einfachen Taschenrechners:

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Taschenrechner simpel
// ToDo:
// Operanten -> int oder besser ?
// Bei der Division Sicherheitsabfrage einfügen!
// Wenn der Rechner mehr leisten soll, dann ergaenzt ihn
 
#include <iostream> 
using namespace std; 
 
int main () 
{ 
	int zeichen;
	int O1, O2;
 
	bool bigloop;
	do
	{
		cout << "Bitte geben Sie den 1. Operanten ein: ";
		cin >> O1;
 
		bool loop = false;
		do
		{
			cout << "Geben Sie die Rechenart ein ( (1) -> +  (2) -> -  (3) -> * (4) -> / )" << endl; 
			cout << ", nur Zahlen  von 1 bis 4 werden aktzeptiert. "; 
			cin >> zeichen; 
			if ((zeichen >= 1) && (zeichen <=4)) 
			{ 
				loop = true;
			}
			else
			{
				cout << endl << " Rechenart nicht implementiert" << endl;
			}                
		}while(!loop); 
 
		cout << "Bitte geben Sie den 2. Operanten ein: ";
		cin >> O2;
 
		cout << endl;
		switch(zeichen) 
		{ 
			case 1: cout << O1 << " + " << O2 << " = " << O1 + O2 << endl; break; 
			case 2: cout << O1 << " - " << O2 << " = " << O1 - O2 << endl; break; 
			case 3: cout << O1 << " * " << O2 << " = " << O1 * O2 << endl; break; 
			case 4: cout << O1 << " / " << O2 << " = " << O1 / O2 << endl; break; 
 
			default: cout << "\n\tSomething go's wrong"; 
			break; 
		} 
		bigloop = true;
		cout << endl << " Zeichen eingeben - 9 für neue Aufgabe" << endl;	// statt der 9 etwa in J/N oder Y/N aendern
		cin >> zeichen;
		if (zeichen == 9)
		{
			bigloop = false;
		}
 
	}while(!bigloop);
}

10

Friday, November 17th 2006, 8:17pm

Hi Leute hab hier mal nen Quellcode von meinem taschenrechner hoffe er hilft euch und gefällt euch is sehr einfach programmiert
madeys has attached the following file:

11

Friday, November 17th 2006, 8:19pm

hir der quelcode zum anschauen

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <cstdlib>
#include <iostream>
 
using namespace std;
double func (double *zahl1, double *pzahl2);
double potenz(double a,double b);
int main()
{string exit;
do{
int auswahl;
cout<<"-------------------\n";
cout<<"Mein Taschenrechner\n";
cout<<"-------------------\n";
cout<<"\nWaehlen Sie aus : \n";
cout<<"(1) Addition\n";
cout<<"(2) Multiplikation\n";
cout<<"(3) Division\n";
cout<<"(4) Subtraktion\n";
cout<<"(5) Potenzrechnung\n";
cout<<"(6) Exit\n";
cin>>auswahl;
system("cls");
switch (auswahl)
       {
       case 1:
            {
            double zahl1,zahl2;
            double *pzahl1=&zahl1;
            double *pzahl2=&zahl2;
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<*pzahl1 + *pzahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case 2:
            {
            double zahl1,zahl2;
            double *pzahl1=&zahl1;
            double *pzahl2=&zahl2;
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<*pzahl1 * *pzahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case 3:
            {
            double zahl1,zahl2;
            double *pzahl1=&zahl1;
            double *pzahl2=&zahl2;
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<*pzahl1 / *pzahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case 4:
            {
            double zahl1,zahl2;
            double *pzahl1=&zahl1;
            double *pzahl2=&zahl2;
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<*pzahl1 - *pzahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case 5:
            {
            double a,b;
            cout<<"Bitte geben Sie eine Zahl ein :";
            cin>>a;
            cout<<"Geben Sie die Potenz an :";
            cin>>b;
            cout<<"Das Ergebniss betraegt : "<<potenz(a,b)<<endl;
            system("pause");
            system("cls");
            break;
            }
       case 6:
            return 0; 
       default:
               cout<<"Falsche Eingabe!\n";     
       }
 
  cout<<"Moechten Sie das Programm beenden j/n ? :";
  cin>>exit;
  system("cls");
  }
  while (exit=="n");     
}
//////////////////////////////
double potenz (double a,double b)
{
if (b==0)
return 1;
else
return a * potenz(a,b-1);
}
//////////////////////////////////
double func (double *pzahl1,double *pzahl2)
{
cout<<"Bitte Geben Sie die erste Zahl ein :";
cin>>*pzahl1;
cout<<"Bitte Geben Sie die zweite Zahl ein :";
cin>>*pzahl2;
}

12

Friday, November 24th 2006, 10:44am

Verbesserung

Hallo Leute hab noch nen Bissel Rumgebastelt und den Rechner Verbessert hier der Quellcode

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#include <cstdlib>
#include <iostream>
 
using namespace std;
double prozent1 (double w,double p);
double prozent2 (double g,double p);
double prozent3 (double w,double g);
double func (double *zahl1, double *pzahl2);
double potenz(double a,double b);
int main()
{string exit;
do{
int auswahl;
cout<<"-------------------\n";
cout<<"Mein Taschenrechner\n";
cout<<"-------------------\n";
cout<<"\nWaehlen Sie aus : \n";
cout<<"(1) Addition\n";
cout<<"(2) Multiplikation\n";
cout<<"(3) Division\n";
cout<<"(4) Subtraktion\n";
cout<<"(5) Potenzrechnung\n";
cout<<"(6) Prozentrechnung\n";
cout<<"(7) Exit\n";
cin>>auswahl;
system("cls");
switch (auswahl)
       {
       case 1:
            {
            double zahl1,zahl2;
            double *pzahl1=&zahl1;
            double *pzahl2=&zahl2;
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<*pzahl1 + *pzahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case 2:
            {
            double zahl1,zahl2;
            double *pzahl1=&zahl1;
            double *pzahl2=&zahl2;
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<*pzahl1 * *pzahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case 3:
            {
            double zahl1,zahl2;
            double *pzahl1=&zahl1;
            double *pzahl2=&zahl2;
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<*pzahl1 / *pzahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case 4:
            {
            double zahl1,zahl2;
            double *pzahl1=&zahl1;
            double *pzahl2=&zahl2;
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<*pzahl1 - *pzahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case 5:
            {
            double a,b;
            cout<<"Bitte geben Sie eine Zahl ein :";
            cin>>a;
            cout<<"Geben Sie die Potenz an :";
            cin>>b;
            cout<<"Das Ergebniss betraegt : "<<potenz(a,b)<<endl;
            system("pause");
            system("cls");
            break;
            }
       case 6:
            {int aus;
            cout<<"Was moechten Sie Berechnen?\nWaehlen Sie aus:\n";
            cout<<"(1) Grundwert [G]\n";
            cout<<"(2) Prozentwert [W]\n";
            cout<<"(3) Prozentsatz [p]\n";
            cin>>aus;
            system("cls");
            switch (aus)
                   {
                        case 1:
                             {     double w,p;
                                   cout<<"bitte geben Sie den Prozentwert W ein: ";
                                   cin>>w;
                                   cout<<"bitte geben Sie den Prozentsatz p ein: ";
                                   cin>>p;
                                   cout<<"G= 100*p/W = "<<prozent1(w,p)<<"\n";
                                   system("pause");
                                   system("cls");
                                   break;
                             }
                        case 2:
                             {
                                   double p,g;
                                   cout<<"bitte geben Sie den Grundwert G ein: ";
                                   cin>>g;
                                   cout<<"bitte geben Sie den Prozentsatz p ein: ";
                                   cin>>p;
                                   cout<<"W= G*p/100 = "<<prozent2(p,g)<<"\n";
                                   system("pause");
                                   system("cls");
                                   break;
                             }
                        case 3:
                             {
                                   double w,g;
                                   cout<<"bitte geben Sie den Grundwert G ein: ";
                                   cin>>g;
                                   cout<<"bitte geben Sie den Prozentwert W ein: ";
                                   cin>>w;
                                   cout<<"p= 100*W/G = "<<prozent3(w,g)<<" %\n";
                                   system("pause");
                                   system("cls");
                                   break;
                             }
                   }
 
            break;
            }
       case 7:
            return 0; 
       default:
               cout<<"Falsche Eingabe!\n";     
       }
 
  cout<<"Moechten Sie das Programm beenden j/n ? :";
  cin>>exit;
  system("cls");
  }
  while (exit=="n");     
}
//////////////////////////////
double potenz (double a,double b)
{
if (b==0)
return 1;
else
return a * potenz(a,b-1);
}
//////////////////////////////////
double func (double *pzahl1,double *pzahl2)
{
cout<<"Bitte Geben Sie die erste Zahl ein :";
cin>>*pzahl1;
cout<<"Bitte Geben Sie die zweite Zahl ein :";
cin>>*pzahl2;
}
///////////////////////////////////
double prozent1 (double w,double p)
{
       return 100*p/w;
}
 
 
////////////////////////////////////////
double prozent2 (double g,double p)
{
       return g*p/100;
}
/////////////////////////////////////////
double prozent3 (double w,double g)
{
       return 100*w/g;
}
madeys has attached the following file:

13

Friday, November 24th 2006, 11:47am

Ich hab mal ein bisschen aufgeraeumt:

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include <cstdlib>
#include <iostream>
#include <string>
 
using namespace std;
double prozent1 (double w,double p);
double prozent2 (double g,double p);
double prozent3 (double w,double g);
void func (double *zahl1, double *pzahl2);
double potenz(double a,double b);
int main()
{
  string exit;
  double zahl1,zahl2;
  do{
    int auswahl;
    cout<<"-------------------\n";
    cout<<"Mein Taschenrechner\n";
    cout<<"-------------------\n";
    cout<<"\nWaehlen Sie aus : \n";
    cout<<"(1) Addition\n";
    cout<<"(2) Multiplikation\n";
    cout<<"(3) Division\n";
    cout<<"(4) Subtraktion\n";
    cout<<"(5) Potenzrechnung\n";
    cout<<"(6) Prozentrechnung\n";
    cout<<"(7) Exit\n";
    cin>>auswahl;
    system("cls");
    switch (auswahl)
    {
      case 1:
        func(&zahl1,&zahl2);
        cout<<"Das Ergebnis betraegt : "<<(zahl1 + zahl2)<<endl;
        break;
      case 2:
        func(&zahl1,&zahl2);
        cout<<"Das Ergebnis betraegt : "<<(zahl1 * zahl2)<<endl;
        break;
      case 3:
        func(&zahl1,&zahl2);
        cout<<"Das Ergebnis betraegt : "<<(zahl1 / zahl2)<<endl;
        break;
      case 4:
        func(&zahl1,&zahl2);
        cout<<"Das Ergebnis betraegt : "<<(zahl1 - zahl2)<<endl;
        break;
      case 5:
        cout<<"Bitte geben Sie eine Zahl ein :";
        cin>>zahl1;
        cout<<"Geben Sie die Potenz an :";
        cin>>zahl2;
        cout<<"Das Ergebnis betraegt : "<<potenz(zahl1,zahl2)<<endl;
        break;
      case 6:
        int aus;
        cout<<"Was moechten Sie Berechnen?\nWaehlen Sie aus:\n";
        cout<<"(1) Grundwert [G]\n";
        cout<<"(2) Prozentwert [W]\n";
        cout<<"(3) Prozentsatz [p]\n";
        cin>>aus;
        system("cls");
        switch (aus)
        {
          case 1:
          {
            double w,p;
            cout<<"bitte geben Sie den Prozentwert W ein: ";
            cin>>w;
            cout<<"bitte geben Sie den Prozentsatz p ein: ";
            cin>>p;
            cout<<"G= 100*p/W = "<<prozent1(w,p)<<"\n";
            break;
          }
          case 2:
          {
            double p,g;
            cout<<"bitte geben Sie den Grundwert G ein: ";
            cin>>g;
            cout<<"bitte geben Sie den Prozentsatz p ein: ";
            cin>>p;
            cout<<"W= G*p/100 = "<<prozent2(p,g)<<"\n";
            break;
          }
          case 3:
          {
            double w,g;
            cout<<"bitte geben Sie den Grundwert G ein: ";
            cin>>g;
            cout<<"bitte geben Sie den Prozentwert W ein: ";
            cin>>w;
            cout<<"p= 100*W/G = "<<prozent3(w,g)<<" %\n";
            break;
          }
        }
        break;
      case 7:
        return 0;
    }
 
    if (auswahl < 1 || auswahl > 7)
      cout<<"Falsche Eingabe!\n";
    else
    {
      system("pause");
      system("cls");
    }
 
    cout<<"Moechten Sie das Programm beenden j/n ? :";
    cin>>exit;
    system("cls");
  } while (exit=="n");
  return 0;
}
//////////////////////////////
double potenz (double a,double b)
{
  if (b==0)
    return 1;
  else
    return a * potenz(a,b-1);
}
//////////////////////////////////
void func (double *pzahl1,double *pzahl2)
{
  cout<<"Bitte Geben Sie die erste Zahl ein :";
  cin>>*pzahl1;
  cout<<"Bitte Geben Sie die zweite Zahl ein :";
  cin>>*pzahl2;
}
///////////////////////////////////
double prozent1 (double w,double p)
{
       return 100*p/w;
}
 
 
////////////////////////////////////////
double prozent2 (double g,double p)
{
       return g*p/100;
}
/////////////////////////////////////////
double prozent3 (double w,double g)
{
       return 100*w/g;
}

14

Friday, November 24th 2006, 12:02pm

jetzt sinds aber viele TAschenrechner :D

15

Friday, November 24th 2006, 12:51pm

@phax

Sieht zwar jetzt alles schön aus aber ich Versteh nicht warum man eine einfache default anweisung als if anweisung schreiben sollte?ich geb ja zu das ich das mit den einrücken noch nicht so drauf habe :P
Hab noch nen fehler gefunden Richtig auf seite 2 im Forum.

16

Friday, November 24th 2006, 1:50pm

Sorry Leute hab noch nen Fehler in der Prozentrechnung gefunden hier ists richtig


C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <cstdlib> 
#include <iostream> 
#include <string> 
 
using namespace std; 
double prozent1 (double w,double p); 
double prozent2 (double g,double p); 
double prozent3 (double w,double g); 
void func (double *zahl1, double *pzahl2); 
double potenz(double a,double b); 
int main() 
{ 
  string exit; 
  double zahl1,zahl2; 
  do{ 
    int auswahl; 
    cout<<"-------------------\n"; 
    cout<<"Mein Taschenrechner\n"; 
    cout<<"-------------------\n"; 
    cout<<"\nWaehlen Sie aus : \n"; 
    cout<<"(1) Addition\n"; 
    cout<<"(2) Multiplikation\n"; 
    cout<<"(3) Division\n"; 
    cout<<"(4) Subtraktion\n"; 
    cout<<"(5) Potenzrechnung\n"; 
    cout<<"(6) Prozentrechnung\n"; 
    cout<<"(7) Exit\n"; 
    cin>>auswahl; 
    system("cls"); 
    switch (auswahl) 
    { 
      case 1: 
        func(&zahl1,&zahl2); 
        cout<<"Das Ergebnis betraegt : "<<(zahl1 + zahl2)<<endl; 
        break; 
      case 2: 
        func(&zahl1,&zahl2); 
        cout<<"Das Ergebnis betraegt : "<<(zahl1 * zahl2)<<endl; 
        break; 
      case 3: 
        func(&zahl1,&zahl2); 
        cout<<"Das Ergebnis betraegt : "<<(zahl1 / zahl2)<<endl; 
        break; 
      case 4: 
        func(&zahl1,&zahl2); 
        cout<<"Das Ergebnis betraegt : "<<(zahl1 - zahl2)<<endl; 
        break; 
      case 5: 
        cout<<"Bitte geben Sie eine Zahl ein :"; 
        cin>>zahl1; 
        cout<<"Geben Sie die Potenz an :"; 
        cin>>zahl2; 
        cout<<"Das Ergebnis betraegt : "<<potenz(zahl1,zahl2)<<endl; 
        break; 
      case 6: 
        int aus;
        cout<<"---------------------------\n"; 
        cout<<"Was moechten Sie Berechnen?\n"
        cout<<"---------------------------\n"<<"Waehlen Sie aus:\n"; 
        cout<<"(1) Grundwert [G]\n"; 
        cout<<"(2) Prozentwert [W]\n"; 
        cout<<"(3) Prozentsatz [p]\n"; 
        cin>>aus; 
        system("cls"); 
        switch (aus) 
        { 
          case 1: 
            double w,p; 
            cout<<"bitte geben Sie den Prozentwert W ein: "; 
            cin>>w; 
            cout<<"bitte geben Sie den Prozentsatz p ein: "; 
            cin>>p; 
            cout<<"G= 100*W/p = "<<prozent1(w,p)<<"\n"; 
            break; 
 
          case 2:
            {  
            double p,g; 
            cout<<"bitte geben Sie den Grundwert G ein: "; 
            cin>>g; 
            cout<<"bitte geben Sie den Prozentsatz p ein: "; 
            cin>>p; 
            cout<<"W= G*p/100 = "<<prozent2(p,g)<<"\n"; 
            break; 
            }
          case 3: 
            {
            double w,g; 
            cout<<"bitte geben Sie den Grundwert G ein: "; 
            cin>>g; 
            cout<<"bitte geben Sie den Prozentwert W ein: "; 
            cin>>w; 
            cout<<"p= 100*W/G = "<<prozent3(w,g)<<" %\n"; 
            break; 
            }
        } 
        break; 
      case 7: 
        return 0;
      default:
        cout<<"Falsche Eingabe!\n";  
    }     
 
    cout<<"Moechten Sie das Programm beenden j/n ? :"; 
    cin>>exit; 
    system("cls"); 
  } while (exit=="n"); 
  return 0; 
} 
////////////////////////////// 
double potenz (double a,double b) 
{ 
  if (b==0) 
    return 1; 
  else 
    return a * potenz(a,b-1); 
} 
////////////////////////////////// 
void func (double *pzahl1,double *pzahl2) 
{ 
  cout<<"Bitte Geben Sie die erste Zahl ein :"; 
  cin>>*pzahl1; 
  cout<<"Bitte Geben Sie die zweite Zahl ein :"; 
  cin>>*pzahl2; 
} 
/////////////////////////////////// 
double prozent1 (double w,double p) 
{ 
       return 100*w/p; 
} 
 
 
//////////////////////////////////////// 
double prozent2 (double g,double p) 
{ 
       return g*p/100; 
} 
///////////////////////////////////////// 
double prozent3 (double w,double g) 
{ 
       return 100*w/g; 
}

17

Friday, November 24th 2006, 3:27pm

Re: @phax

Quoted from ""madeys""

Sieht zwar jetzt alles schön aus aber ich Versteh nicht warum man eine einfache default anweisung als if anweisung schreiben sollte?

Das default war schon okay, aber das "cls" und "pause" sollte ja nur in allen anderen Fällen ausgeführt werden :)

18

Wednesday, December 6th 2006, 12:59pm

Hallo da bin ich wieder, hab noch ein paar feinheiten gemacht und den Rechner fertig

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#include <cstdlib>
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
double prozent1 (double w,double p);
double prozent2 (double g,double p);
double prozent3 (double w,double g);
double func (double *zahl1, double *pzahl2);
double potenz(double a,double b);
int main()
{   string exit;
    double zahl1,zahl2;
    do
    {
    cout<<"-------------------\n";
    cout<<"Mein Taschenrechner\n";
    cout<<"-------------------\n";
    cout<<"\nWaehlen Sie aus : \n";
    cout<<"(1) Addition\n";
    cout<<"(2) Multiplikation\n";
    cout<<"(3) Division\n";
    cout<<"(4) Subtraktion\n";
    cout<<"(5) Potenzrechnung\n";
    cout<<"(6) Prozentrechnung\n";
    cout<<"(7) Exit\n";
 
 
    switch (getch())
       {
 
       case '1':
            {
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<zahl1 + zahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case '2':
            {
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<zahl1 * zahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case '3':
            {
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<zahl1 / zahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case '4':
            {
            func(&zahl1,&zahl2);
            cout<<"Das Ergebniss betraegt : "<<zahl1 - zahl2<<endl;
            system("pause");
            system("cls");
            break;
            }      
       case '5':
            {
            system("cls");
            double a,b;
            cout<<"Bitte geben Sie eine Zahl ein :";
            cin>>a;
            cout<<"Geben Sie die Potenz an :";
            cin>>b;
            cout<<"Das Ergebniss betraegt : "<<potenz(a,b)<<endl;
            system("pause");
            system("cls");
            break;
            }
       case '6':
            {
            system("cls");
            cout<<"Was moechten Sie Berechnen?\nWaehlen Sie aus:\n";
            cout<<"(1) Grundwert [G]\n";
            cout<<"(2) Prozentwert [W]\n";
            cout<<"(3) Prozentsatz [p]\n";
 
            switch (getch())
                 {
 
                 case '1':
                         {
                         system("cls");
                         double w,p;
                         cout<<"bitte geben Sie den Prozentwert W ein: ";
                         cin>>w;
                         cout<<"bitte geben Sie den Prozentsatz p ein: ";
                         cin>>p;
                         cout<<"G = 100*p/W = "<<prozent1(w,p)<<"\n";
                         system("pause");
                         system("cls");
                         break;
                         }
                 case '2':
                         {     
                         system("cls");
                         double p,g;
                         cout<<"bitte geben Sie den Grundwert G ein: ";
                         cin>>g;
                         cout<<"bitte geben Sie den Prozentsatz p ein: ";
                         cin>>p;
                         cout<<"W= G*p/100 = "<<prozent2(p,g)<<"\n";
                         system("pause");
                         system("cls");
                         break;
                         }
                 case '3':
                         {    
                         system("cls");
                         double w,g;
                         cout<<"bitte geben Sie den Grundwert G ein: ";
                         cin>>g;
                         cout<<"bitte geben Sie den Prozentwert W ein: ";
                         cin>>w;
                         cout<<"p= 100*W/G = "<<prozent3(w,g)<<" %\n";
                         system("pause");
                         system("cls");
                         break;
                         }
                  }
 
            break;
            }
       case '7':
            return 0; 
       default:
               cout<<"Falsche Eingabe!\n";     
       }
 
  cout<<"Moechten Sie das Programm beenden j/n ? :";
  cin>>exit;
  system("cls");
  }
  while (exit=="n");     
}
//////////////////////////////
double potenz (double a,double b)
{
if (b==0)
return 1;
else
return a * potenz(a,b-1);
}
//////////////////////////////////
double func (double *pzahl1,double *pzahl2)
{system("cls");
cout<<"Bitte Geben Sie die erste Zahl ein :";
cin>>*pzahl1;
cout<<"Bitte Geben Sie die zweite Zahl ein :";
cin>>*pzahl2;
}
///////////////////////////////////
double prozent1 (double w,double p)
{
       return 100*p/w;
}
 
 
////////////////////////////////////////
double prozent2 (double g,double p)
{
       return g*p/100;
}
/////////////////////////////////////////
double prozent3 (double w,double g)
{
       return 100*w/g;
}
madeys has attached the following file:

19

Thursday, December 7th 2006, 8:35am

An dem Rechner kann man immer noch was tunen. ;)
z.B.: 1. Was passiert bei Division durch 0?
2. reduziere die system(cls) und system(pause) - du brauchst nur einen Bruchteil
dieser Aufrufe, wenn du sie optimal plazierst - der Code wird vor allen Dingen
kürzer und übersichtlicher.

MfG Bcc-fan

20

Thursday, December 7th 2006, 12:31pm

ok hast ja recht. So das ist jetzt die Letze änderung gewesen wem es nicht past kanns ja besser machen!!!!



C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
#include <cstdlib>
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
double prozent1 (double w,double p);
double prozent2 (double g,double p);
double prozent3 (double w,double g);
double func (double *zahl1, double *pzahl2);
double potenz(double a,double b);
int main()
{   string exit;
    double zahl1,zahl2;
    do
    {
    cout<<"-------------------\n";
    cout<<"Mein Taschenrechner\n";
    cout<<"-------------------\n";
    cout<<"\nWaehlen Sie aus : \n";
    cout<<"(1) Addition\n";
    cout<<"(2) Multiplikation\n";
    cout<<"(3) Division\n";
    cout<<"(4) Subtraktion\n";
    cout<<"(5) Potenzrechnung\n";
    cout<<"(6) Prozentrechnung\n";
    cout<<"(7) Exit\n";
    switch (getch())
       {
       case '1':
            {
            func(&zahl1,&zahl2);
            cout<<zahl1<<" + "<<zahl2<<" = "<<zahl1 + zahl2<<endl;
            break;
            }      
       case '2':
            {
            func(&zahl1,&zahl2);
            cout<<zahl1<<" * "<<zahl2<<" = "<<zahl1 * zahl2<<endl;
            break;
            }      
       case '3':
            {
            func(&zahl1,&zahl2);
            if (zahl1>0 ,zahl2>0)
                {
                cout<<zahl1<<" / "<<zahl2<<" = "<<zahl1 / zahl2<<endl;
                }
            else
                {
                if(zahl1>0,zahl2==0)
                {
                cout<<"Teilen durch 0 unmoeglich!";
                }
                else
                cout<<zahl1<<" / "<<zahl2<<" =  0"<<endl;
                }
            break;
            }      
       case '4':
            {
            func(&zahl1,&zahl2);
            cout<<zahl1<<" - "<<zahl2<<" = "<<zahl1 - zahl2<<endl;
            break;
            }      
       case '5':
            {
            system("cls");
            double a,b;
            cout<<"Bitte geben Sie eine Zahl ein :";
            cin>>a;
            cout<<"Geben Sie die Potenz an :";
            cin>>b;
            cout<<"Das Ergebniss betraegt : "<<potenz(a,b)<<endl;
            break;
            }
       case '6':
            {
            system("cls");
            cout<<"Was moechten Sie Berechnen?\nWaehlen Sie aus:\n";
            cout<<"(1) Grundwert [G]\n";
            cout<<"(2) Prozentwert [W]\n";
            cout<<"(3) Prozentsatz [p]\n";
            switch (getch())
                 {
                 case '1':
                         {
                         system("cls");
                         double w,p;
                         cout<<"bitte geben Sie den Prozentwert W ein: ";
                         cin>>w;
                         cout<<"bitte geben Sie den Prozentsatz p ein: ";
                         cin>>p;
                         cout<<"G = 100*p/W = "<<prozent1(w,p)<<"\n";
                         break;
                         }
                 case '2':
                         {
                         system("cls");     
                         double p,g;
                         cout<<"bitte geben Sie den Grundwert G ein: ";
                         cin>>g;
                         cout<<"bitte geben Sie den Prozentsatz p ein: ";
                         cin>>p;
                         cout<<"W= G*p/100 = "<<prozent2(p,g)<<"\n";
                         break;
                         }
                 case '3':
                         {
                         system("cls");
                         double w,g;
                         cout<<"bitte geben Sie den Grundwert G ein: ";
                         cin>>g;
                         cout<<"bitte geben Sie den Prozentwert W ein: ";
                         cin>>w;
                         cout<<"p= 100*W/G = "<<prozent3(w,g)<<" %\n";
                         break;
                         }
                  }
 
            break;
            }
       case '7':
            return 0; 
       default:
               cout<<"Falsche Eingabe!\n";     
       }
    system("pause");
    system("cls");
    cout<<"Moechten Sie das Programm beenden j/n ? :";
    cin>>exit;
    system("cls");
    }
  while (exit=="n");     
}
//////////////////////////////
double potenz (double a,double b)
{
if (b==0)
    return 1;
else
    return a * potenz(a,b-1);
}
//////////////////////////////////
double func (double *pzahl1,double *pzahl2)
{
 system("cls");
 cout<<"Bitte Geben Sie die erste Zahl ein :";
 cin>>*pzahl1;
 cout<<"Bitte Geben Sie die zweite Zahl ein :";
 cin>>*pzahl2;
}
////////////////////////////////////////
double prozent1 (double w,double p)
{
       return 100*p/w;
}
 
 
////////////////////////////////////////
double prozent2 (double g,double p)
{
       return g*p/100;
}
////////////////////////////////////////
double prozent3 (double w,double g)
{
       return 100*w/g;
}
////////////////////////////////////////
madeys has attached the following file:

Social bookmarks