Anfang: Wer findet den kleinen Fehler?



  • Du meinst nur mit der Konsole??



  • wenn du magst, kannst du mit vim, GCC und Valgrind/GDB komplett in der BASH arbeiten, dagegen spricht nichts. Aber es gibt auch gute GUI-Editoren wie z.B. gedit.



  • Ich hab noch nie mit Bash gearbeitet...

    zurzeit benutze ich wie gesagt Code::Blocks.

    ich hab noch eine Frage: Wie gebe ich einen String aus und dann eine Rechnung?
    ich machs so, ist aber fehlerhaft:

    cout << "\nThe sum is: " << sum = a+b+c+d+e;
    cout << "\nThe average of the numbers is: " << average = sum/5;
    

    Dabei sind die variablen oben definiert:

    int a,b,c,d,e;
    int average(0), sum(0);
    

    int a,b,c,d,e werden mit cin >> eingelesen.

    mfG



  • Dyvone schrieb:

    Ich hab noch nie mit Bash gearbeitet...

    zurzeit benutze ich wie gesagt Code::Blocks.

    ich hab noch eine Frage: Wie gebe ich einen String aus und dann eine Rechnung?
    ich machs so, ist aber fehlerhaft:

    cout << "\nThe sum is: " << sum = a+b+c+d+e;
    cout << "\nThe average of the numbers is: " << average = sum/5;
    

    Dabei sind die variablen oben definiert:

    int a,b,c,d,e;
    int average(0), sum(0);
    

    int a,b,c,d,e werden mit cin >> eingelesen.

    mfG

    Einfach in Klammern setzen. Shift-Operatoren werden vor dem Zuweisungsoperator ausgewertet.



  • Darf ich dich bitten, mir das etwas genauer zu erklären?



  • Hacker schrieb:

    Shift-Operatoren werden vor dem Zuweisungsoperator ausgewertet.

    Nö. Was operator precedence bedeutet, musst du nochmals nachlesen. :p

    @Dyvone:

    cout << "\nThe sum is: " << (sum = a+b+c+d+e);
    


  • Danke. Jetzt funktioniert alles so wie ichs haben wollte.

    http://www.amazon.de/Pearson-Education-GmbH-Einstieg-Anspruchsvolle/dp/3827361486

    Könnt ihr das empfehlen als Lehrwerk?



  • Dyvone schrieb:

    Darf ich dich bitten, mir das etwas genauer zu erklären?

    Natürlich 🙂

    Shift-Operatoren sind << , >> , <<= und >>= . Sie werden vor dem Zuweisungsoperator (=) ausgewertet und haben sozusagen eine höhere Rangfolge. Aus diesem Grund muss der Ausdruck in Klammern, da nur so zuerst der Zuweisungsoperator und dann der Shift-Operator ausgewertet wird.

    Wenn du den Ausdruck nicht in Klammern setzt, steht schlussendlich (!) folgendes da:

    std::cout = a;
    

    o.ä. was natürlich nicht geht, da der Zuweisungsoperator für std::ostream oder Basisklassen nicht überladen wurde - aber ich schweife ab.



  • Dyvone schrieb:

    Danke. Jetzt funktioniert alles so wie ichs haben wollte.

    http://www.amazon.de/Pearson-Education-GmbH-Einstieg-Anspruchsvolle/dp/3827361486

    Könnt ihr das empfehlen als Lehrwerk?

    Nein.



  • Schade. Ich lerne gern durch Zuhöhren. Aber lesen ist auch nicht schlecht, eig. sogar noch produktiver.

    Könnt ihr mir das ewiggroße Buch "C++ von A bis Z" empfehlen?

    Es hat alleine schon 104 Seiten Grundlagen...



  • Dyvone schrieb:

    Könnt ihr das empfehlen als Lehrwerk?

    Nein, kann ich nicht. Was ich dir empfehlen kann, ist: http://www.amazon.de/Der-Programmierer-Professionell-anwenden-Lösungen/dp/3446426914/ref=pd_sim_sbs_sw_9
    Allerdings ist die Lektüre nicht gerade für faule Leute gedacht, man muss sich eng mit dieser Lektüre befassen, dass man alles gut versteht und mitkommt.

    Hacker schrieb:

    Sie werden vor dem Zuweisungsoperator (=) ausgewertet und haben sozusagen eine höhere Rangfolge.

    Nein, die operator precedence bestimmt nur, welche Operanden ein Operator an sich bindet. Das hat wirklich nichts mit einer Auswertungsrangfolge zu tun. Wann welcher Operand ausgewertet wird, ist undefiniert.

    Dyvone schrieb:

    Könnt ihr mir das ewiggroße Buch "C++ von A bis Z" empfehlen?

    Nein, absolut nicht. Das ist das schlechteste C++ Buch schlechthin.



  • Gugelmoser schrieb:

    Dyvone schrieb:

    Könnt ihr das empfehlen als Lehrwerk?

    Nein, kann ich nicht. Was ich dir empfehlen kann, ist: http://www.amazon.de/Der-Programmierer-Professionell-anwenden-Lösungen/dp/3446426914/ref=pd_sim_sbs_sw_9
    Allerdings ist die Lektüre nicht gerade für faule Leute gedacht, man muss sich eng mit dieser Lektüre befassen, dass man alles gut versteht und mitkommt.

    Die Grundlagen kann man sich eigentlich problemlos im Internet aneignen, nach einigem Üben würde ich dann noch Scott Meyers – Effektiv C++ programmieren empfehlen



  • Ki schrieb:

    Die Grundlagen kann man sich eigentlich problemlos im Internet aneignen

    Nein..



  • Hacker schrieb:

    Ki schrieb:

    Die Grundlagen kann man sich eigentlich problemlos im Internet aneignen

    Nein..

    Doch..



  • Dyvone schrieb:

    Schade. Ich lerne gern durch Zuhöhren. Aber lesen ist auch nicht schlecht, eig. sogar noch produktiver.

    Durch Zuhoeren kann man nicht viel lernen, schon deshalb, weil keine Pause zum Nachdenken bleibt und der Stoff einfach runtergerasselt wird. Lesen ist da viel besser. Aber, man muss das Gelesene auch verarbeiten, d.h. immer wieder Selbsttests machen, kl. Programme schreiben um zu sehen, ob der Stoff verstanden ist. Ausserdem festigt man das Gelesene in dem Moment, wo man schreibt (Assoziation). Daher tippe ich z.B. auch Beispielprogramme aus Buechern grundsaetzlich selbst, anstatt sie von der Buch-CD einzulesen.

    Dyvone schrieb:

    Könnt ihr mir das ewiggroße Buch "C++ von A bis Z" empfehlen?

    Wenn Du der englischen Sprache maechtig bist, kann ich waermstens (da momentan selbst in Benutzung) dieses empfehlen:

    http://www.amazon.de/Thinking-Volume-Introduction-Standard/dp/0139798099/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1340561425&sr=1-1



  • Ki schrieb:

    wenn du magst, kannst du mit vim, GCC und Valgrind/GDB komplett in der BASH arbeiten, dagegen spricht nichts. Aber es gibt auch gute GUI-Editoren wie z.B. gedit.

    Seine Fehlermeldung im ersten Posting sah ganz nach WinXXX als verwendetes OS aus. Daher wird er mit dem Begriff 'bash' nichts anfangen koennen.



  • wollewausfander schrieb:

    Ki schrieb:

    wenn du magst, kannst du mit vim, GCC und Valgrind/GDB komplett in der BASH arbeiten, dagegen spricht nichts. Aber es gibt auch gute GUI-Editoren wie z.B. gedit.

    Seine Fehlermeldung im ersten Posting sah ganz nach WinXXX als verwendetes OS aus. Daher wird er mit dem Begriff 'bash' nichts anfangen koennen.

    Scheint nicht so, als hätte er mit dem Begriff nichts anfangen können, sonst hätte er sicherlich gefragt. Und die Fähigkeit eine Suchmaschine und Wikipedia bedienen zu können, setze ich einfach mal voraus.



  • Ki schrieb:

    Scheint nicht so, als hätte er mit dem Begriff nichts anfangen können, sonst hätte er sicherlich gefragt. Und die Fähigkeit eine Suchmaschine und Wikipedia bedienen zu können, setze ich einfach mal voraus.

    Da er daraufhin wiederum Code::Blocks erwaehnte, gehe ich davon aus, dass er dachte, bash sei eine weitere IDE. Mit der Suchmaschine gebe ich Dir allerdings recht.



  • Ki schrieb:

    Die Grundlagen kann man sich eigentlich problemlos im Internet aneignen

    Definitiv nein.



  • Ki schrieb:

    Hacker schrieb:

    Ki schrieb:

    Die Grundlagen kann man sich eigentlich problemlos im Internet aneignen

    Nein..

    Doch..

    Nein, verdammt nochmal! 😡


Anmelden zum Antworten