Brauche Hilfe!



  • -PsYchO- schrieb:

    Also ich bin ein C++ Anfänger und hab mal was programmiert, ich möchte jetzt mal von experten wissen, ob alles richtig ist und ob ich etwas verbessern kann... Es soll ein Additionsrechner werden ( Addition von 2 Zahlen )
    Beachtet die Kommentare nicht ^^

    Quelltext

    #include <iostream.h>
    
    void Add(int a, int b)                 // Additionsrechnung der Main Aufgabe
    {
    	cout << "Sie haben" << a <<"und" << b <<"addiert/n";    // Meldung, welche Zahlen man addiert hat!
    	return (a+b)                            // Addiert die zwei Zahlen, a+b
    }
    
    int main()                                  // Script startet hier!
    {
    	cout << "Willkommen zu meinem Additionsrechner, geben Sie bitte zwei Zahlen ein/n"; // Aufforderung 2 Zahlen einzugeben 
    	cin >> a;         // Zahl Nummer 1, kein Umleitungszeichen!!!!
    	cin >> b;         // Zahl Nummer 2, kein Umleitungszeichen!!!!
    Aufgabe1(a,b);
        cout << "Nun haben Sie die Zahl" << a << "Und die Zahl" << b << "addiert!\n";   // Ergebnis!
    	cout << "Herzlichen Glückwunsch!\n";     // Glückwunsch !!
    	return 0;
    }
    

    Ich bin zwar bei weitem kein Experte aber will mich mal trotzdem melden:
    In deinem Programm is nicht alles richtig.
    Fehler:
    + Deine Funktion Add soll ja die Summe zurückgeben, im Funktionskopf gibst du jedoch an, dass die Funktion nichts (void) zurückgibt. Das kann nicht gehen. Sprich: int statt void zurückgeben
    + Du rufst in main die Funktion Aufgabe1() auf, die es jedoch nicht gibt! Sollte es nicht eher Add heißen?
    + Du benutzt die Variablen a und b ohne sie zuvor definiert zu haben. Also irgendwo nach int main() { sowas: int a,b;

    Verbesserungsvorschläge:
    +

    #include <iostream>
    using namespace std;
    

    statt
    #include <iostream.h>

    + Ergebnis von Add in Variablen ablegen und mit ausgeben
    + Funktion Add würde ICH add nennen



  • #include <iostream>
    #include <conio.h>
    using namespace std;
    
    int Add( int a, int b )                                    // Additionsrechnung der Main Aufgabe 
    { 
        cout << "Sie haben " << a <<" und " << b <<" addiert\n";    // Meldung, welche Zahlen man addiert hat! 
        return( a + b );                                         // Addiert die zwei Zahlen, a+b 
    } 
    
    int main()
    {
        cout << "Willkommen zu meinem Additionsrechner, geben Sie bitte zwei Zahlen ein:n"; // Aufforderung 2 Zahlen einzugeben 
        int a, b, res;
        cin >> a;         // Zahl Nummer 1, kein Umleitungszeichen!!!! 
        cin >> b;         // Zahl Nummer 2, kein Umleitungszeichen!!!! 
        res = Add( a, b ); 
    //  cout << "Nun haben Sie die Zahl " << a << " und die Zahl " << b << " addiert!\n";       // Ergebnis! 
        cout << "Das Ergebnis ist " << res << '\n';
        cout << "Herzlichen Glueckwunsch!\n";     // Glückwunsch !! 
        getch();
    }
    


  • Bin zwar kein Profi, aber kann dazu trotzdem was sagen:

    Als erstes die Stannis:

    #include <iostream>
    using namespace std;
    

    statt

    #include <iostream.h>
    

    Ist veraltet....

    Ansonsten sind dir da ein paar Fehler unterlaufen. Was mich aber wundert:
    Warum postest du dein Programm, bevor du es kompilierst?
    Ich bekomme allein schon beim erstellen einfach mal fünf dicke Fehlermeldungen, die da wären:

    #include <iostream.h>
    
    void Add(int a, int b)                 
    {
        cout << "Sie haben" << a <<"und" << b <<"addiert/n";    
        return (a+b)     //FEHLER: Semikolon fehlt! Funktion gibt Wert zurück, obwohl du void als Typ angegeben hast   
    
    }
    
    int main()                                  
    {
        cout << "Willkommen zu meinem Additionsrechner, geben Sie bitte zwei Zahlen ein/n"; 
        cin >> a;     //FEHLER: Was ist a, was ist b? Vorher nicht deklariert    
        cin >> b;         
    Aufgabe1(a,b);  //FEHLER: Was ist Aufgabe? Ich glaube du meinst Add(a,b);
        cout << "Nun haben Sie die Zahl" << a << "Und die Zahl" << b << "addiert!\n";   
        cout << "Herzlichen Glückwunsch!\n";     
        return 0;
    }
    

    Dann verstehe ich den Sinn dieses Programmes nicht. Man gibt zwei Zahlen ein, aber es kommt nur eine Meldung. Man erfährt nicht mal das Ergebnis (die Summe).

    Wenn, dann probier's mal so:

    #include <iostream>
    using namespace std;
    
    int Add(int a, int b)                
    {
        return (a+b);                            
    }
    
    int main()                                  
    {
    	int a=0;
    	int b=0;
        cout << "Willkommen zu meinem Additionsrechner, geben Sie bitte zwei Zahlen ein/n"; // Aufforderung 2 Zahlen einzugeben 
        cin >> a;         
        cin >> b;         
    	int res=Add(a,b);
        cout << "Nun haben Sie die Zahl" << a << "Und die Zahl" << b << "addiert!\n";   // Ergebnis!
        cout << "Die Summe ist "<<res<<" Herzlichen Glueckwunsch!\n";     // Glückwunsch !!
        return 0;
    }
    

    oder noch einfacher:

    #include <iostream>
    using namespace std;
    
    int main()                                  
    {
    	int a=0;
    	int b=0;
    	cout<<"Erste Zahl eingeben: ";
        cin >> a; 
    	cout<<"Zweite Zahl eingeben: ";
        cin >> b;         
    	cout <<a<<"+"<<b<<"="<<(a+b)<<endl;
        return 0;
    }
    

    Aber merke: Erst einmal selbst kompilieren, dann über die Fehlermeldungen nachdenken, selbst probieren, nachforschen und als Notlösung hier ein Frägchen stellen...
    Das war ne Ausnahme 😉
    E-the-Real



  • Was zum T. ist denn hier los? Da war doch eben noch keine einzige Antwort 😮 😮 😮



  • Das ü in Glückwunsch macht sicher Probleme. Wenn Du nicht ue sondern ü schreiben willst, hier ein Tipp zum Thema Farbe und Umlaute:

    #include <windows.h>
    #include <conio.h>
    #include <cstdio>
    #include <iostream>
    using namespace std;
    
    void textcolor(int color)
    { 
        SetConsoleTextAttribute( ::GetStdHandle(STD_OUTPUT_HANDLE), color ); 
    } 
    
    /*
    // Auszug aus conio.h:
    typedef enum
    {
        BLACK,
        BLUE,
        GREEN,
        CYAN,
        RED,
        MAGENTA,
        BROWN,
        LIGHTGRAY,
        DARKGRAY,
        LIGHTBLUE,
        LIGHTGREEN,
        LIGHTCYAN,
        LIGHTRED,
        LIGHTMAGENTA,
        YELLOW,
        WHITE
    } COLORS;const int WHITE = 15;
    */
    
    int main()
    {
      textcolor(RED);
      cout << "Das ist rot" << endl;
    
      textcolor(BLUE);
      cout << "Das ist blau" << endl;
    
      textcolor(GREEN);
      cout << "Das ist gr" << char(129) << "n" << endl; // Umlaut ü
    
      textcolor(WHITE);
      cout << "Das ist weiss" << endl << endl;
    
      for(int i=0; i<16; ++i)
      {
          textcolor(i); 
          cout << "Das ist Farbe: " << i << endl;
      }
      cout << endl << "H" << char(148) << "fliche G" << char(132) 
           << "ste im Gr" << char(129) << "nen haben Spa" << char(225) << "." << endl; 
      cout << char(132) << char(148) << char(129) << char(225) << endl;     
    
      getch();
    }
    


  • @Erhard Henkes: Noob-Overkill ⚠
    😉



  • Jetzt hat er wirklich genügend feedback! 😃



  • Danke erstmal für die vielen Antworten.
    Die letzte fand ich etwas zu kompliziert!
    Ich hab noch ein paar fragen
    also ich benutz ein sehr altes C++ Programm Visual C++ 6.0
    und wollte von euch wissen, welches etwas aktueller ist!
    Ich hab auch sehr alte Bücher ( hab alles rausgekramt )
    deswegen wusste ich das mit <iostream> nicht!
    Und noch eine Frage: was sollen diese Doppelpunkte und std??
    ich das auch neu oder bin ich noch nicht soweit?

    Die ganzen Fehler sind mir jetzt auch klar geworden ( muss ich halt noch ein bisschen dran sizten 😉 )



  • -PsYchO- schrieb:

    ...
    Und noch eine Frage: was sollen diese Doppelpunkte und std??
    ...

    Du meinst "std::"? Das habe ich bloß geschrieben, weil ich es mir angewöhnt habe. Meistens sehr viel Tipparbeit.
    Um sich diese Tipparbeit zu sparen, kann man auch "using namespace std;" schreiben. Dies bewirkt, dass alle Objekte z.b. cout aufgerufen werden, die in diesem Namensraum (std) liegen.
    In den alten Headerdateien war dies nicht notwendig.



  • zur ersten frage:
    würde getchar();
    statt getch() aus (nicht-standart??) <conio.h> benutzen .. denke ich ..aber egal 😉



  • ethereal schrieb:

    @Erhard Henkes: Noob-Overkill ⚠
    😉

    👍 😃



  • -PsYchO- schrieb:

    Danke erstmal für die vielen Antworten.
    Die letzte fand ich etwas zu kompliziert!

    Bestätigt! 😉



  • Die Sache mit ä ö ü ß und colors ist doch gut. Mit cout << "Glückwunsch" geht da nix mit ü. 😉 😃



  • Jepp, aber meines Erachtens etwas zuviel des Guten für den Anfang/Anfänger.


Anmelden zum Antworten