[C/C++] parameter übergabe bei funktionen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Flu, 2. Februar 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 2. Februar 2009
    parameter übergabe bei funktionen

    Code:
    #include <iostream>
    #include <cmath>
    #include <string>
    #include <time.h>
    
    using namespace std;
    
    int Spieler();
    int Computer();
    int Ergebnis();
    
    int main()
    {
     
     
     cout << "Stein_Schere_Papier" << "\n\n";
    
     
    
     cout << "Bitte waehlen Sie zwischen Stein, Schere und Papier." << "\n";
     cout << "Fuer Stein druecken Sie bitte die 1, fuer Schere die 2 und fuer Papier die 3." << "\n\n";
    
     return Spieler(); 
     
    }
    
    
    int Spieler()
    {
     string wahl[3] = {"Stein" , "Schere" , "Papier"};
     int auswahl;
    
     cout << "Stein [1]" << "\n";
     cout << "Schere [2]" << "\n";
     cout << "Papier [3]" << "\n";
     cout << "Wahl: ";
    
     cin >> auswahl;
    
     cout << "\n";
    
     switch (auswahl)
     {
     case 1:
     cout << wahl[0] << "\n\n";
     break;
     case 2:
     cout << wahl[1] << "\n\n";
     break;
     case 3:
     cout << wahl[2] << "\n\n";
     break;
     default:
     cout << "Bitte gueltige Zahl eingeben" << "\n\n";
     return Spieler();
     }
    
     return Computer();
    }
    
    int Computer()
    {
     string wahlComputer[3] = {"Stein" , "Schere" , "Papier"};
     
     srand((unsigned) time(NULL)); 
     int iSecret = rand() % 3 + 1;
     
    
     switch (iSecret)
     {
     case 1:
     cout << "Wahl des Computers: " << wahlComputer[0] << "\n\n";
     break;
     case 2: 
     cout << "Wahl des Computers: " << wahlComputer[1] << "\n\n";
     break;
     case 3:
     cout << "Wahl des Computers: " << wahlComputer[2] << "\n\n";
     break;
     }
    
     system("PAUSE");
    
     return EXIT_SUCCESS;
    }
    
    int Ergebnis()
    {
    
    }
     
    ich steh grad aufm schlauch, hab schon seit längerer zeit nix mehr mit c++ gemacht.
    wie bekomme ich es jetzt hin das Ergebnis aus Spieler() mit dem ergebnis aus Computer() in der klasse Ergebnis() zu vergleichen und auszuwerten?
    oder anders, wie schaffe ich es die werte von auswahl (Spieler() ) und iSecret (Computer() )
    in der Klasse ergebnis zu vergleichen?

    Flu

    Hoffe auf schnelle hilfe
     

  2. Anzeige
  3. #2 2. Februar 2009
    unsauber arber einfach, du legst die beiden variablen außerhalb der funktionen also global an.

    oder du läst die funktionen diesen wert mit "return" zurückgeben und fängst diese ergebnisse in einer variable in der main ab und übergibst diese der ergebnis funkion.

    stichwort parameter übergabe bei funktionen
     
  4. #3 2. Februar 2009
    thx für die antwort, ich lass das thema erstmal offen falls ich noch fragen hab oder noch jemand was schreiben möcht ;)
     
  5. #4 2. Februar 2009
    Prototypen:
    int ergebnis(int spieler, int comp);
    int spieler();
    int comp();

    aufruf:
    int irgendwas=ergebnis(spieler(),comp());
     
  6. #5 2. Februar 2009
    Ich nehme an, du meinst die Funktion Ergebnis.
    Trenn doch deine Bereiche einfach sauber: die Funktion spieler() wickelt den Dialog mit der Eingabe ab und returnt die Wahl des Spielers, die Funktionn computer() returnt die Wahl des Computers.
    Die funktion ergebnis() vergleicht dann die Rückgabewerte und gibt dann je nach ausgang 0 (unentschieden), 1(computer gewinnt) oder 2(spieler gew.) an main() zurück.
     
  7. #6 2. Februar 2009
    Vielen dank. ich habs hinbekommen. sieht zwar vom code her nicht optimal aus, aber es läuft

    Code:
    #include <iostream>
    #include <cmath>
    #include <string>
    #include <time.h>
    
    using namespace std;
    
    int Spieler();
    int Computer();
    string wahl[3] = {"Stein" , "Schere" , "Papier"};
    string wahlComputer[3] = {"Stein" , "Schere" , "Papier"};
    int Ergebnis();
    int iSecret;
    int auswahl;
    
    int main()
    {
     
     
     cout << "Stein_Schere_Papier" << "\n\n";
    
     
    
     cout << "Bitte waehlen Sie zwischen Stein, Schere und Papier." << "\n";
     cout << "Fuer Stein druecken Sie bitte die 1, fuer Schere die 2 und fuer Papier die 3." << "\n\n";
    
     return Spieler(); 
     
    }
    
    
    int Spieler()
    {
     
     
    
     cout << "Stein [1]" << "\n";
     cout << "Schere [2]" << "\n";
     cout << "Papier [3]" << "\n";
     cout << "Wahl: ";
    
     cin >> auswahl;
    
     cout << "\n";
    
     switch (auswahl)
     {
     case 1:
     cout << wahl[0] << "\n\n";
     break;
     case 2:
     cout << wahl[1] << "\n\n";
     break;
     case 3:
     cout << wahl[2] << "\n\n";
     break;
     default:
     cout << "Bitte gueltige Zahl eingeben" << "\n\n";
     return Spieler();
     }
    
     
    
     return Computer();
    
    }
    
    int Computer()
    {
     
     
     srand((unsigned) time(NULL)); 
     iSecret = rand() % 3 + 1;
     
    
     switch (iSecret)
     {
     case 1:
     cout << "Wahl des Computers: " << wahlComputer[0] << "\n\n";
     break;
     case 2: 
     cout << "Wahl des Computers: " << wahlComputer[1] << "\n\n";
     break;
     case 3:
     cout << "Wahl des Computers: " << wahlComputer[2] << "\n\n";
     break;
     }
    
     return Ergebnis();
    
    }
    
    int Ergebnis()
    {
     if ( iSecret == auswahl )
     {
     cout << "UNENTSCHIEDEN!!!" << "\n\n";
     }
    
     if ( iSecret == 1 && auswahl == 2 )
     {
     cout << "COMPUTER GEWINNT!!!" << "\n\n";
     }
    
     if ( iSecret == 1 && auswahl == 3 )
     {
     cout << "SPIELER GEWINNT!!!" << "\n\n";
     }
    
     if ( iSecret == 2 && auswahl == 1 )
     {
     cout << "SPIELER GEWINNT!!!" << "\n\n";
     }
     
     if ( iSecret == 2 && auswahl == 3 )
     {
     cout << "COMPUTER GEWINNT!!!" << "\n\n";
     }
    
     if ( iSecret == 3 && auswahl == 1 )
     {
     cout << "COMPUTER GEWINNT!!!" << "\n\n";
     }
    
     if ( iSecret == 3 && auswahl == 2 )
     {
     cout << "SPIELER GEWINNT!!!" << "\n\n";
     }
    
     system("PAUSE");
    
     return EXIT_SUCCESS;
    }
    
    BWs sind raus
     
  8. #7 2. Februar 2009
    Eine Frage noch: Wieso benutzt du das switch-Statement?

    Deine Antworten sind alle die gleichen, d.h. du brauchst garkein switch.
    Lass es weg, spart dir Code und beschleunigt wahrscheinlich noch etwas das Programm.
     
  9. #8 3. Februar 2009
    wieso sind miene antworten alle die gleichen?
    sonst muss ich das ganze doch mit if machen oder nicht?
    wenn der benutzer für die auswahl 1 gewählt hat, dann soll doch nur das entsprchende ausgegeben werden. oder hab ich dich jetzt missverstanden
     
  10. #9 3. Februar 2009
    du könntest aber auch
    Code:
    cout << "Wahl des Computers: " << wahlComputer[iSecret-1] << "\n\n";
    bzw
    Code:
    cout << wahl[auswahl-1] << "\n\n";
    dann wird der Index auswahl-1 genommen.
    Warum -1? Ein Index fängt bei 0 an und deine Eingabe soll ja 1-3 sein
     
  11. #10 3. Februar 2009
    aso. kk habs verstanden

    thx. werde das thema mal

    *closen*
     

  12. Videos zum Thema
Die Seite wird geladen...