kleiner Taschenrechner in C++

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Division durch Null warum so kompliziert? Zahl1 darf bei deinem Code jeden
    beliebigen Wert haben, warum dann in die if-Abfrage nehmen und zulässige
    Lösungen ausschliessen? Ich habs nicht getestet - was macht dein Rechner
    bei: 3/-2=? oder -3/0=?

    Folgender Code ist aus einem anderen Taschenrechner:


    if(rz=='/')
    {
    while(zahl2==0)
    {
    cout << "Bei Division muss die 2.Zahl ungleich NULL sein!!!";
    cout << endl << "Neue 2. Zahl: ";
    cin >> zahl2;
    }
    }


    Fortgeschrittene lassen vielleicht auch 'try - catch' auf dieses Problem los.

    MfG Bcc-fan
  • So jetzt ein letztes mal hab wohl zu komplieziert gedacht aber so is es jetzt einfach und funktioniert auch.


    Quellcode

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

    ich will ja nicht angeben , aber zu meinen Anfängen sah mein Rechner so aus.

    #include <iostream>
    using namespace std;

    double Rechne(int wahl, double zahl1, double zahl2)
    {
    double Ergebnis;

    if(wahl == 1)
    {
    Ergebnis = zahl1 + zahl2;

    }
    else if(wahl == 2)
    {
    Ergebnis = zahl1 - zahl2;
    }
    else if(wahl == 3)
    {
    Ergebnis = zahl1 * zahl2;
    }
    else if(wahl == 4)
    {
    Ergebnis = zahl1 / zahl2;
    }
    else
    {
    cout << "falsche Eingabe!\n";
    }

    return Ergebnis;

    }


    int main()
    {
    int wahl;
    double n1, n2, ergebnis;

    cout << "Rechenart auswaehlen!:\n" << endl
    << " 1 Adieren\n" << " 2 Subtrahieren\n" << " 3 Multiplizieren\n" << " 4 Dividieren\n";

    cin >> wahl;

    cout <<"\n\n";

    cout << "Erste Zahl eingeben:\n";
    cin >> n1;

    cout << "\n\n";

    cout << "Zweite Zahl eingeben:\n";
    cin >> n2;

    ergebnis = Rechne(wahl, n1, n2);

    cout << "\n\n";

    cout << ergebnis;

    cin.ignore();
    cin.get();


    return 0;
    }
  • CrazyKeks schrieb:

    ich will ja nicht angeben , aber zu meinen Anfängen sah mein Rechner so aus.

    #include <iostream>
    using namespace std;

    double Rechne(int wahl, double zahl1, double zahl2)
    {
    double Ergebnis;

    if(wahl == 1)
    {
    Ergebnis = zahl1 + zahl2;

    }
    else if(wahl == 2)
    {
    Ergebnis = zahl1 - zahl2;
    }
    else if(wahl == 3)
    {
    Ergebnis = zahl1 * zahl2;
    }
    else if(wahl == 4)
    {
    Ergebnis = zahl1 / zahl2;
    }
    else
    {
    cout << "falsche Eingabe!\n";
    }

    return Ergebnis;

    }


    int main()
    {
    int wahl;
    double n1, n2, ergebnis;

    cout << "Rechenart auswaehlen!:\n" << endl
    << " 1 Adieren\n" << " 2 Subtrahieren\n" << " 3 Multiplizieren\n" << " 4 Dividieren\n";

    cin >> wahl;

    cout <<"\n\n";

    cout << "Erste Zahl eingeben:\n";
    cin >> n1;

    cout << "\n\n";

    cout << "Zweite Zahl eingeben:\n";
    cin >> n2;

    ergebnis = Rechne(wahl, n1, n2);

    cout << "\n\n";

    cout << ergebnis;

    cin.ignore();
    cin.get();


    return 0;
    }


    Ich will ja nicht angeben, aber ich kann Syntax benutzen :P

    Quellcode