Formeln

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

  • Hey Leute,
    Ich habe ein Programm geschrieben, dass Formeln ausgibt, wenn man diese wissen will. Nur soll es nicht direkt nach der ersten Formel beenden. Ich habe es schon mit do-while ausprobiert, aber ich weiß nicht was falsch ist. :(

    hier der Quellcode:

    #include <iostream>
    using namespace std;

    int main()
    {
    const char* flkreis="Pi*r*r";
    const char* flquadrat="a*a";
    const char* flrechteck="a*b";
    const char* ukreis="2Pi*r";
    const char* uquadrat="4a";
    const char* urechteck="2a+2b";
    int formel;
    int start;

    do
    {
    cout << "Wenn du beginnen möchtest drücke '8', wenn du beenden möchtest '9'" << endl;
    cin >> start;

    cout << "Welche Formel brauchst du?" << endl;
    cout << "(1) Flächeninhalt Kreis" << endl;
    cout << "(2) Flächeninhalt Quadrat" << endl;
    cout << "(3) Flächeninhalt Rechteck" << endl;
    cout << "(4) Umfang Kreis" << endl;
    cout << "(5) umfang Quadrat" << endl;
    cout << "(6) Umfang Rechteck" << endl;

    cin >> formel;

    if (formel==1)
    {
    cout << flkreis << endl;
    }

    if (formel==2)
    {
    cout << flquadrat << endl;
    }

    if (formel==3)
    {
    cout << flrechteck << endl;
    }

    if (formel==4)
    {
    cout << ukreis << endl;
    }

    if (formel==5)
    {
    cout << uquadrat << endl;
    }

    if (formel==6)
    {
    cout << urechteck << endl;
    }

    system("Pause");
    }
    while(start==9);
    }

    Könnte mir einer helfen?
    Mfg MSR97
  • Ich würde es mit einer Switch anweißung machen und einer for schleife und einer einfachen if abfrage:

    C-Quellcode

    1. #include "StdAfx.h"
    2. #include <iostream>
    3. using namespace std;
    4. int main() {
    5. const char* flkreis="Pi*r*r";
    6. const char* flquadrat="a*a";
    7. const char* flrechteck="a*b";
    8. const char* ukreis="2Pi*r";
    9. const char* uquadrat="4a";
    10. const char* urechteck="2a+2b";
    11. int formel;
    12. int start;
    13. for(;;){
    14. cout << "Wenn du beginnen moechtest druecke '8', wenn du beenden moechtest '9'" << endl;
    15. cin >> start;
    16. if(start == 9) break;
    17. cout << "Welche Formel brauchst du?" << endl;
    18. cout << "(1) Flächeninhalt Kreis" << endl;
    19. cout << "(2) Flächeninhalt Quadrat" << endl;
    20. cout << "(3) Flächeninhalt Rechteck" << endl;
    21. cout << "(4) Umfang Kreis" << endl;
    22. cout << "(5) umfang Quadrat" << endl;
    23. cout << "(6) Umfang Rechteck" << endl;
    24. cin >> formel;
    25. switch(formel){
    26. case 1: cout << flkreis << endl; break;
    27. case 2: cout << flquadrat << endl; break;
    28. case 3: cout << flrechteck << endl; break;
    29. case 4: cout << ukreis << endl; break;
    30. case 5: cout << uquadrat << endl; break;
    31. case 6: cout << urechteck << endl; break;
    32. }
    33. }
    34. }
    Alles anzeigen


    Du hast quasie abgefragt:

    Quellcode

    1. do{
    2. //code
    3. }
    4. while(start == 9); // wenn start == 9 ist, führst du die schleife nochmal aus, wenn nicht -> Beenden.


    aber da die do schleife mindestens einmal durchläuft würde das bedeuten du gibst quasie 9 -> exit ein, jedoch wird dein code ausgeführt bis zum ende der schleife wo er erst abfragt ob start == 9 ist. Ob das gewollt ist weiß ich leider nicht.


    mfG s1ck