Workshop von Zerd und XBelt

  • C++

  • Zerd
  • 35774 Aufrufe 122 Antworten

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

  • Hi,

    THX erstmal, dass mit dem if hat jetzt geklappt

    hab schon wieder ein kleines Problem, und zwar hab ich im Kapitel Kontrollstrukturen die Aufgabe mit dem Taschenrechner versucht

    Hab zwischendrin mal kompiliert um zu sehen ob ich fehler im Code hab

    Der Code sieht bis jetzt so aus:

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. int zahl1, zahl2, rechenzeichen, ergebniss;
    4. // Erste Zahl abfragen
    5. std::cout << "Erste Zahl eingeben: ";
    6. std::cin >> zahl1;
    7. //Zweite Zahl abfragen
    8. std::cout << "Zweite Zahl eingeben: ";
    9. std::cin >> zahl2;
    10. //Rechenzeichen abfragen
    11. std::cout <<"Geben sie eines der folgenden Rechenzeichen ein: + - * /";
    12. std::cin >> rechenzeichen;
    13. if (rechenzeichen == +) {
    14. ergebniss = zahl1 + zahl2;
    15. }
    16. return 0;
    17. }
    Alles anzeigen


    Beim kompilieren kommen dann zwei Fehler:

    error C2059: Syntaxfehler: ')'
    error C2143: Syntaxfehler: Es fehlt ';' vor '{'
  • Du hast übersehen das + ein einzelner char wert ist. (Siehe Kapitel "Standard Datentypen")

    Wenn du ein einzelnes Zeichen (was keine Zahl ist) vergleichen willst musst du das Zeichen in Hochkommas schreiben.
    also

    PHP-Quellcode

    1. if(rechenzeichen == '+') {
    2. ...
    3. }


    Und versuch dich dran zu gewöhnen deinen Sourcecode besser zu formatieren (siehe Kapitel strukturiertes Programmieren) Dann ist der deutlich besser zu lesen :)
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Hi,

    hab den Taschenrechner jetzt fertig geschrieben und kompiliert, aber beim ausführen kommt eine Fehlermeldung:



    Der Code:

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. int zahl1, zahl2, rechenzeichen, ergebniss;
    4. // Erste Zahl abfragen
    5. std::cout << "Erste Zahl eingeben: ";
    6. std::cin >> zahl1;
    7. //Zweite Zahl abfragen
    8. std::cout << "Zweite Zahl eingeben: ";
    9. std::cin >> zahl2;
    10. //Rechenzeichen abfragen
    11. std::cout << "Geben sie eines der folgenden Rechenzeichen ein: + - * / ";
    12. std::cin >> rechenzeichen;
    13. if (rechenzeichen == '+') {
    14. ergebniss = zahl1 + zahl2;
    15. }
    16. if (rechenzeichen == '-') {
    17. ergebniss = zahl1 - zahl2;
    18. }
    19. if (rechenzeichen == '*') {
    20. ergebniss = zahl1 * zahl2;
    21. }
    22. if (rechenzeichen == '/') {
    23. ergebniss = zahl1 / zahl2;
    24. }
    25. //Ergebniss ausgeben
    26. std::cout << ergebniss;
    27. return 0;
    28. }
    Alles anzeigen


    Und noch eine Frage: Was kann ich denn an der Formatierung vom Code noch verbessern ?
  • Der Fehler kommt weil du ergebniss nicht mit einem Wert initialisiert hast.

    Es kommt zu der Meldung, weil das Programm zur Laufzeit nicht 100% sicher sein kann das am Ende ein gültiger Wert in der Variable gespeichert ist.


    Änder die Variablendeklaration so ab:
    int zahl1 = 0, zahl2 = 0, rechenzeichen = 0, ergebniss = 0;


    Du kannst deinen code besser Formatieren indem du die Zeilen besser einrückst.

    Schlecht Formatiert:

    PHP-Quellcode

    1. int main() {
    2. int variable=0;
    3. if(variable==0)
    4. std::cout << variable;
    5. else
    6. std::cout << "what ever";
    7. return 0;
    8. }

    Gutes Beispiel:

    PHP-Quellcode

    1. int main() {
    2. int variable=0;
    3. if(variable==0) {
    4. std::cout << variable;
    5. }
    6. else {
    7. std::cout << "what ever";
    8. }
    9. return 0;
    10. }
    Alles anzeigen


    Durch das Einrücken erkennt man schnell wozu die funktionen gehören. Man sieht z.B. direkt das die Ausgaben zur if-else-abfrage gehören.
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Hab´s abgeändert, allerdings gibt der Taschenrechner immer den Wert 0 aus

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. int zahl1 = 0, zahl2 = 0, rechenzeichen = 0, ergebniss = 0;
    4. // Erste Zahl abfragen
    5. std::cout << "Erste Zahl eingeben: ";
    6. std::cin >> zahl1;
    7. //Zweite Zahl abfragen
    8. std::cout << "Zweite Zahl eingeben: ";
    9. std::cin >> zahl2;
    10. //Rechenzeichen abfragen
    11. std::cout << "Geben sie eines der folgenden Rechenzeichen ein: + - * / ";
    12. std::cin >> rechenzeichen;
    13. if (rechenzeichen == '+') {
    14. ergebniss = zahl1 + zahl2;
    15. }
    16. if (rechenzeichen == '-') {
    17. ergebniss = zahl1 - zahl2;
    18. }
    19. if (rechenzeichen == '*') {
    20. ergebniss = zahl1 * zahl2;
    21. }
    22. if (rechenzeichen == '/') {
    23. ergebniss = zahl1 / zahl2;
    24. }
    25. //Ergebniss ausgeben
    26. std::cout << ergebniss;
    27. return 0;
    28. }
    Alles anzeigen
  • Denn Taschenrechner mit if hab ich jetzt fertig


    Bei der nächsten Aufgabe(das gleiche nur mit switch case) habe ich jetzt aber auch ein kleines Problem

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. int zahl1 = 0, zahl2 = 0, ergebniss = 0;
    4. char rechenzeichen = 0;
    5. //Erste Zahl abfrage
    6. std::cout << "Erste Zahl eingeben: ";
    7. std::cin >> zahl1;
    8. //Zweite Zahl abfragen
    9. std::cout << "Zweite Zahl eingeben: ";
    10. std::cin >> zahl2;
    11. //Rechenzeichen abfragen
    12. std::cout << "Geben sie eines der folgenden Rechenzeichen ein: + - * / ";
    13. std::cin >> rechenzeichen;
    14. switch(rechenzeichen) {
    15. case '+':
    16. ergebniss = zahl1 + zahl2;
    17. case '-':
    18. ergebniss = zahl1 - zahl2;
    19. case '*':
    20. ergebniss = zahl1 * zahl2;
    21. case '/':
    22. ergebniss = zahl1 / zahl2;
    23. default:
    24. std::cout << "Ungueltige Eingabe" << std::endl;
    25. }
    26. std::cout << ergebniss;
    27. return 0;
    28. }
    Alles anzeigen



    Des Teil sagt immer Ungueltige Eingabe, egal was ich eingebe
  • Mit Brake kommt beim kompilieren folgende Fehlermeldung:

    error C2065: 'brake': nichtdeklarierter Bezeichner

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. int zahl1 = 0, zahl2 = 0, ergebniss = 0;
    4. char rechenzeichen = 0;
    5. //Erste Zahl abfrage
    6. std::cout << "Erste Zahl eingeben: ";
    7. std::cin >> zahl1;
    8. //Zweite Zahl abfragen
    9. std::cout << "Zweite Zahl eingeben: ";
    10. std::cin >> zahl2;
    11. //Rechenzeichen abfragen
    12. std::cout << "Geben sie eines der folgenden Rechenzeichen ein: + - * / ";
    13. std::cin >> rechenzeichen;
    14. switch(rechenzeichen) {
    15. case '+':
    16. ergebniss = zahl1 + zahl2;
    17. brake;
    18. case '-':
    19. ergebniss = zahl1 - zahl2;
    20. brake;
    21. case '*':
    22. ergebniss = zahl1 * zahl2;
    23. brake;
    24. case '/':
    25. ergebniss = zahl1 / zahl2;
    26. brake;
    27. default:
    28. std::cout << "Ungueltige Eingabe" << std::endl;
    29. }
    30. std::cout << ergebniss;
    31. return 0;
    32. }
    Alles anzeigen


    €dit: Hab den Fehler gefunden, es heisst break; nicht brake;
  • Ich hätte auch Interesse, allerdings müsstest du bei mir alles hinschreiben, welchen Compiler du benutzt usw... :D

    Ich hab mir nämlich erst ein C++ Buch geholt, das ist aber nicht grade gut, da dort keine GUI Programmierung ist.
  • Starwalker schrieb:

    Ich hätte auch Interesse, allerdings müsstest du bei mir alles hinschreiben, welchen Compiler du benutzt usw... :D

    Ich hab mir nämlich erst ein C++ Buch geholt, das ist aber nicht grade gut, da dort keine GUI Programmierung ist.


    Das versteh ich jetzt nicht so richtig....
    Den Workshop findest du hier: freesoft-board.to/f155/c-workshop-von-zerd-205683.html

    GUI Programmierung habe ich da allerdings auch noch nicht drin, kommt vielleicht irgendwann mal dazu. Davor müssen allerdings erst noch ein paar andere Sachen behandelt werden (z.B. Klassen). Leider fehlt nur im Moment die Zeit dafür.
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Starwalker schrieb:

    welchen Compiler du benutzt usw... :D


    Steht ganz am Anfang vom Workshop:

    Microsoft Visual C++

    €dit:

    Wie macht man eigentlich Potenzen ?

    Ich hab´s jetzt mal so probiert:

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. int test = 0;
    4. test = 2^2;
    5. std::cout << test;
    6. return 0;
    7. }



    Aber des gibt immer den Wert 0 zurück
  • Hi,

    mal wieder ein Problem:

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. double potenz;
    4. potenz = pow (2,2);
    5. std::cout << potenz;
    6. return 0;
    7. }


    Fehlermeldung: "error C3861: "pow": Bezeichner wurde nicht gefunden."

    MFG 9999
  • Erstmal THX @ Feuerstein, allerdings klappt´s leider immernochnicht so ganz

    "fatal error C1083: Datei (Include) kann nicht geöffnet werden: "math": No such file or directory"

    PHP-Quellcode

    1. #include <iostream>
    2. #include <math>
    3. int main() {
    4. double potenz;
    5. pow potenz (2,2);
    6. std::cout << potenz;
    7. return 0;
    8. }
  • Zerd schrieb:

    PHP-Quellcode

    1. #include <math.h>


    muss es heißen...


    in C++ ist es

    Quellcode

    1. #include <cmath>


    math.h ist der der C-header
    [COLOR="Green"]"A dream you dream alone is only a dream. A dream you dream together is reality"[/color]

    John Lennon

    [SIZE=1],,,[/SIZE][SIZE=1]*&#801;&#844;l&#801;*,,,,,,,,,,&#801;&#801; &#801;&#820;&#305;&#820;&#820;&#801; ,,,,,,,,,*&#801;&#844;l&#801;*,,,,,,,,,,*&#801;&#844;l&#801;*&#801;&#801; &#801;&#820;&#305;&#820;&#820;&#801; &#801;&#801;&#865;|&#818;&#865;&#818;&#865;&#818;&#865; &#818;&#9643;&#865;&#818; &#818;&#865;&#818;&#865;&#818;&#960;&#818;&#865;&#818;&#865; &#818;&#865;&#818;&#9643;&#818;&#865;&#818;&#865; &#818;|&#801;&#801;&#801; &#801; &#801;&#820;&#305;&#820;&#801;&#801; *&#801;&#844;l&#801;*_,,,,,,,,&#801;&#801; &#801;&#820;&#305;&#820;&#820;&#801; ,,,,,,,,*&#801;&#844;l&#801;*,,[/SIZE][SIZE=1],,,[/SIZE][SIZE=1],,,,,,&#801;&#801; &#801;&#820;&#305;&#820;&#820;&#801; ,[/SIZE][SIZE=1],,[/SIZE]
    [SIZE="1"][COLOR="Purple"]Up 1[/color][/SIZE] [SIZE="1"] [COLOR="Olive"]Up 2_The_Beatles_Red_Album[/color][/SIZE]
  • So - ich hab da auch mal eine Frage.

    Ich hab heut früh zwar erst damit angefangen, bleib aber momentan
    beim rechnerproggi hängen, soweit läuft alles
    Also der erste teil vom programm macht praktisch
    dasselbe wie der zweite teil, das eine is nur mit if, das
    andere nur mit switch-case.

    .->Dann wollt ich noch wissen wie das Ungleichheitszeichen ist für
    If-Anweisungen Problem gelöst !=
    ->Und bei der switch-case Anweisung musste ich jedesmal bei jedem
    case eine Ausgabe des Ergebnisses hinschreiben, ich wollte das aber
    nur einmal am Ende der Caseanweisung machen, wie kann ich das realisieren?
    ->Und noch eine Frage: bei meiner If anweisung wahl==1
    hab ich später die If anweisung erg==0 drinstehen um praktisch zu überprüfen
    ob man nicht einen falschen operator verwendet hat, jedoch kann es ja
    passieren, dass das ergebnis tatsächlich 0 ist, wie kann ich das lösen?
    Auch hier wollte ich nicht unter jede If anweisung eine Ausgabe fomulieren,
    sondern insgesamt unter alle If-Anweisungen eine Ausgabe für alles.
    ->Frage 4. wenn ich z.b. gleich beim ersten durchlauf des Programm ne 3 eingebe, kommt meine ausgabe, das ein falscher operator verwendet wurde
    aber auch so eine wirre Zahl, wo kommt die her???
    Problem gelöst also jungs wenn bei euch im Programmdurchlauf die Zahl "10572ACC"
    begegnet, dann müsst die aus dem std::cout ein std::endl machen!


    Achso Zerd, ab und zu muss man mal überlegen, aber das is ja auch sinn
    und Zweck, ich würde mich jedenfalls sehr freuen, wenn du das TUT
    weiterführst, dein letzter Beitrag liegt ja schon etwas zurück.
    Und wie bekomme ich raus ob eine Zahl ne Primzahl ist?
    Woher weiß ich ob ein Rest vorhanden ist oder nicht, bzw.
    wie mache ich das dem Programm klar.
    Edit: nach rund 2 stunden googeln und probieren hab ich immerhin
    schon rausgefunden, dass das % den rest angibt und kein komplettes
    ergebnis - das war ne schwere geburt :P

    mfg. Chaosbohne

    PS:

    Bei dir fehlt im Kapitel schleifen, bei der for-schleife
    nach dem return 0 das semikolon


    PHP-Quellcode

    1. #include <iostream>
    2. #include <string>
    3. int main () {
    4. float zahl1, zahl2, erg=0, wahl;
    5. char op, falsch='-';
    6. std::cout << "Wähle zwischen Programm (1) und (2): " << std::endl;
    7. std::cin >> wahl;
    8. if(wahl==1) {
    9. std::cout << "Bitte geben Sie die erste Zahl ein: " << std::endl;
    10. std::cin >> zahl1;
    11. std::cout << "Bitte geben Sie die zweite Zahl ein: " << std::endl;
    12. std::cin >> zahl2;
    13. std::cout << "Bitte wählen Sie eine Rechenart [+, -, *, /]: " << std::endl;
    14. std::cin >> op;
    15. if(op=='+') {
    16. erg=zahl1 + zahl2;
    17. }
    18. if(op=='-') {
    19. erg=zahl1 - zahl2;
    20. }
    21. if(op=='*') {
    22. erg=zahl1 * zahl2;
    23. }
    24. if(op=='/') {
    25. erg=zahl1 / zahl2;
    26. }
    27. if(erg==0) {
    28. std::cout << "Das Ergebnis lautet : " << falsch << std::endl;
    29. } else {
    30. std::cout << "Das Ergebnis lautet : " << erg << std::endl;
    31. }
    32. }
    33. if(wahl==2) {
    34. std::cout << "Bitte geben Sie die erste Zahl ein: " << std::endl;
    35. std::cin >> zahl1;
    36. std::cout << "Bitte geben Sie die zweite Zahl ein: " << std::endl;
    37. std::cin >> zahl2;
    38. std::cout << "Bitte wählen Sie eine Rechenart [+, -, *, /]: " << std::endl;
    39. std::cin >> op;
    40. switch(op) {
    41. case '+':
    42. erg=zahl1 + zahl2;
    43. std::cout << "Das Ergebnis lautet : " << erg << std::endl;
    44. break;
    45. case '-':
    46. erg=zahl1 - zahl2;
    47. std::cout << "Das Ergebnis lautet : " << erg << std::endl;
    48. break;
    49. case '*':
    50. erg=zahl1 * zahl2;
    51. std::cout << "Das Ergebnis lautet : " << erg << std::endl;
    52. break;
    53. case '/':
    54. erg=zahl1 / zahl2;
    55. std::cout << "Das Ergebnis lautet : " << erg << std::endl;
    56. default:
    57. std::cout << "Sie haben einen falschen OP gewählt!" << std::endl;
    58. }
    59. }
    60. else {
    61. std::cout << "Falsche Programmnr. eingegeben!" << std::endl;
    62. }
    63. return 0;
    64. }
    Alles anzeigen



    Soo ich hab mal wieder ein bissl rumgebastelt.
    Und hier ist mein Primzahlprogramm - bitte guggts euch mal an,
    denn ich finde, das ich dass manchmal ziemlich umstädnlich gemacht habe
    gibts dafür nen einfacheren code?
    Aso Proggi 1 gibt euch alle Primzahlen von 0 bis zu eurer eingegebenen Zahl wieder
    proggi 2 überprüft ob eure zahl ne primzahl ist.

    PHP-Quellcode

    1. #include <iostream>
    2. #include <cmath>
    3. int main() {
    4. int anzahl,i,c,d,e,f,wahl,zahl,g,h,j,k;
    5. std::cout << " Waehlen sie zwischen Progr. (1) und Progr. (2)" << std::endl;
    6. std::cin >> wahl;
    7. if(wahl==1) {
    8. std::cout << "bitte geben sie eine Zahl ein!";
    9. std::cin >> anzahl;
    10. if(anzahl<=7)
    11. {
    12. if(anzahl==2)
    13. { std::cout << " primzahl : 2" << std::endl; }
    14. if(anzahl==3)
    15. { std::cout << " primzahl : 2" << std::endl;
    16. std::cout << " primzahl : 3" << std::endl; }
    17. if(anzahl==4)
    18. { std::cout << " primzahl : 2" << std::endl;
    19. std::cout << " primzahl : 3" << std::endl; }
    20. if(anzahl==5)
    21. { std::cout << " primzahl : 2" << std::endl;
    22. std::cout << " primzahl : 3" << std::endl;
    23. std::cout << " primzahl : 5" << std::endl; }
    24. if(anzahl==6)
    25. { std::cout << " primzahl : 2" << std::endl;
    26. std::cout << " primzahl : 3" << std::endl;
    27. std::cout << " primzahl : 5" << std::endl; }
    28. if(anzahl==7)
    29. { std::cout << " primzahl : 2" << std::endl;
    30. std::cout << " primzahl : 3" << std::endl;
    31. std::cout << " primzahl : 5" << std::endl;
    32. std::cout << " primzahl : 7" << std::endl; }
    33. }
    34. if(anzahl>7)
    35. {
    36. std::cout << " primzahl : " << 2 << std::endl;
    37. std::cout << " primzahl : " << 3 << std::endl;
    38. std::cout << " primzahl : " << 5 << std::endl;
    39. std::cout << " primzahl : " << 7 << std::endl;
    40. for(i=2; i<=anzahl; i=i+1)
    41. {
    42. c=i%2;
    43. d=i%3;
    44. e=i%5;
    45. f=i%7;
    46. if(c!=0 && d!=0 && e!=0 && f!=0)
    47. {
    48. std::cout << " primzahl : " << i << std::endl;
    49. }
    50. }
    51. }
    52. }
    53. if(wahl==2) {
    54. std::cout << "Geben sie ihre zu ueberpruefende Zahl ein! :" << std::endl;
    55. std::cin >> zahl;
    56. c=zahl%2;
    57. d=zahl%3;
    58. e=zahl%5;
    59. f=zahl%7;
    60. g=zahl/2;
    61. h=zahl/3;
    62. k=zahl/4;
    63. j=zahl/5;
    64. if( zahl <=7 && (c==0 && g==1) || (d==0 && h==1) || (e==0 && k==1) || (f==0 && j==1)) {
    65. std::cout << "Ihre Zahl ist eine Primzahl" << std::endl;
    66. }
    67. else if( zahl >7 && c!=0 && d!=0 && e!=0 && f!=0 ) {
    68. std::cout << "Ihre Zahl ist eine Primzahl" << std::endl;
    69. }
    70. else {
    71. std::cout << "Ihre Zahl ist keine Primzahl" << std::endl;
    72. }
    73. }
    74. return 0;
    75. }
    Alles anzeigen
    [COLOR="Blue"]Suche[/color] Lieder der Band: Alexanders
    Dann noch: Je t'aime auf Deutsch und von CCR Bad Moon Rising auf Deutsch
  • taschenrechner

    hey leute,
    erstmal ein großes lob an dich zerd :) danke für das tut.
    ich häng allerdings beim taschenrechner...hier erstmal mein code, dann die fragen :D

    PHP-Quellcode

    1. #include <iostream>
    2. using namespace std;
    3. int main () {
    4. int wert1;
    5. int wert2;
    6. int ergebnis;
    7. char rechenart;
    8. cout << "Geben Sie zwei Zahlen ein und wählen Sie anschließend eine Rechenart. ";
    9. cin >> wert1, >> wert2;
    10. cout << "Bitte wählen Sie nun eine Rechenart! Entweder +, -, * oder / ";
    11. cin >> rechenart;
    12. if (rechenart== '+') {
    13. cout << "Das Ergebnis ist: " << ergebnis=wert1+wert2;
    14. if (rechenart=='-') {
    15. cout << "Das Ergebnis ist: " << ergebnis=wert1-wert2;
    16. if (rechenart== '/') {
    17. cout << "Das Ergebnis ist: " << ergebnis=wert1/wert2;
    18. if (rechenart== '*') {
    19. cout << "Das Ergebnis ist: " << ergebnis=wert1*wert2;
    20. return 0;
    21. }
    Alles anzeigen

    nja es klappt halt nicht...darum zuerst: warum?!^^
    hab mal die andren lösungsvorschläge angesehen, aber verstehe ich nicht warum ich für den rechenoperator nicth einfach "char rechenart " nehmen kann ohne die genauen rechenarten zu definieren oder was auch immer...:confused:
    lg yuri

    edit:
    ich seh grad es hat was mit den selbst definierten klassen zu tun oder? ist zumindest naheliegend, da ich das kapitel nicht verstanden habe :/
    so nochmals lg
    “ WikiLeaks has probably produced more scoops in its short life than the Washington Post has in the past 30 years ”
    — The National, November 19, 2009
  • hi,
    keine Ahnung was du da gemacht hast, aber da warn einige Bugs drin, ich hab mir mal die Freiheit genommen, die zu korrigieren und bissel Quelltext dokumentiert.

    PHP-Quellcode

    1. #include <iostream>
    2. using namespace std;
    3. int main () {
    4. int wert1 = 0; // Werte auf Null gesetzt, gibt manchmal Probleme damit
    5. int wert2 = 0;
    6. int ergebnis = 0;
    7. char rechenart;
    8. cout << "Geben Sie zwei Zahlen ein und wählen Sie anschließend eine Rechenart. ";
    9. cin >> wert1; // Eingabe muss einzeln erfolgen, so wie du es gemacht hast, gehts nicht
    10. cin >> wert2;
    11. cout << "Bitte wählen Sie nun eine Rechenart! Entweder +, -, * oder / ";
    12. cin >> rechenart;
    13. if (rechenart== '+') {
    14. ergebnis = wert1 + wert2; //Ergebnis muss vorher deklariert werden
    15. cout << "Das Ergebnis ist: " << ergebnis;
    16. //cout << "Das Ergebnis ist:" << wert1+wert2; //das wäre die Alternative Lösung, Variable "ergebnis" hier unnötig
    17. } //Klammer wieder schließen nicht vergessen
    18. if (rechenart=='-') {
    19. ergebnis = wert1 - wert2;
    20. cout << "Das Ergebnis ist: " << ergebnis;
    21. }//Klammer schließen
    22. if (rechenart== '/') {
    23. ergebnis = wert1 / wert2;
    24. cout << "Das Ergebnis ist: " << ergebnis;
    25. }//Klammer schließen
    26. if (rechenart== '*') {
    27. ergebnis = wert1 * wert2;
    28. cout << "Das Ergebnis ist: " << ergebnis;
    29. }//Klammer schließen
    30. cout << endl;
    31. system("Pause"); //damit das Konsolenfenster nicht dauernd zu geht
    32. return 0;
    33. }
    Alles anzeigen

    hoffe konnte so einigermaßen helfen, wobei ich hier nur die Fehler geändert hab, nix am Design oder so. Ausserdem fehlt bei der Division noch der Fall das Wert2 = 0 ist, also Division unmöglich. Eine weitere und meiner Meinung nach elegantere Lösung ist die ganze Operationszeichenproblematik nicht mit IF-Anweisungen zu lösen, sondern über CASE.
    Ansonsten noch viel Spass beim Proggen ;)
    greetz
  • oki super danke dir :) jetzt geht es. k das mit dem deklarieren hatte er mir auch als fehler gesagt, aber ich wusste nicht wie ich s ändern kann :)
    danke :)
    edit:
    würdest du denn am design was ändern? zwecks übersichtlichkeit?
    lg
    “ WikiLeaks has probably produced more scoops in its short life than the Washington Post has in the past 30 years ”
    — The National, November 19, 2009
  • hi,
    hab das ganze noch ein bisschen optimiert ;)

    PHP-Quellcode

    1. #include <iostream>
    2. using namespace std;
    3. int main ()
    4. {
    5. double wert1 = 0, wert2 = 0, ergebnis = 0; //Zusammenfassung aller Variablen eines Typs, double wegen gebrochenen Zahlen
    6. char rechenart;
    7. cout << "Geben Sie zwei Zahlen ein und waehlen Sie eine Rechenart. " << endl;
    8. cout << "Zahl 1: ";
    9. cin >> wert1; //Eingabe Zahl1
    10. cout << "Zahl 2: ";
    11. cin >> wert2; //Eingabe Zahl2
    12. do{
    13. cout << "Rechenart [+, -, *, /]: ";
    14. cin >> rechenart; //Eingabe Rechenart
    15. }while ((rechenart == '/') && (wert2 == 0)); //Division durch Null abfangen, erneute Eingabe
    16. switch(rechenart) //Auswahl der Rechenart
    17. {
    18. case '+' : ergebnis = wert1 + wert2; break;
    19. case '-' : ergebnis = wert1 - wert2; break;
    20. case '*' : ergebnis = wert1 * wert2; break;
    21. case '/' : ergebnis = wert1 / wert2; break;
    22. }
    23. cout << "Ergebnis = " << ergebnis << endl; //Ausgeben des Ergebnisses
    24. system("Pause"); //Pausiert Konsolenfenster
    25. return 0;
    26. }
    Alles anzeigen

    man könnte hier noch andere Eingabefehler abfangen, wenn man das wollte, aber so ungefähr könnte es aussehen. Ansonsten noch viel Spass beim Probieren :D
    greetz
  • hi Zerd!
    hätte da eine Frage: was bringen sich Zeiger? Bzw wann ist es schlau welche zu benutzen?? Wieso sollte man eine variable über einen "Umweg" ändern wollen wenn man das doch sowieso direkt machen könnte?
    thx schon mal,

    MFG :)