Workshop von Zerd und XBelt

  • C++

  • Zerd
  • 35773 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,
    eine char variable ist syntaktisch so aufgebaut:
    char variablenName [= wert];


    Du hast in deinem code keinen Variablennamen definiert.
    Was genau möchtest du mit
    char '+', '-', '*', '/';
    bezwecken?


    Lässt du die Zeile weck und änderst

    PHP-Quellcode

    1. string Rechenart;

    in

    PHP-Quellcode

    1. char Rechenart;

    sollte es funktionieren. (Es sei denn ich hab was übersehen) ;)

    P.S. du hast ein ; zu viel in deiner Endausgabe.. Ein Semikolon gehört immer ans Ende einer Anweisung, bei dem cout in der Mitte wird das zu einer fehlermeldung führen
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • hi,
    bin erst seit vorgestern hier angemeldet und darum kommt mein "super! gute idee, find ih klasse :P ich hab zwar schon ein weni erfahrung mit c++ aber finds trotzdem klasse was du hier machst :)" etwas spät aber denke mal es is dir egal schließlich hört man immer gerne mal n lob :P
    und zu deinen erklärungen wollte ich noch sagen das sie einfach und gut verständlich sind auch für welche die noch keine ahnung haben :P
    also ich hab alles verstanden ^^ aber wie gesagt hab schon bissl erfahrung und arbeite mich auch gerade durch das buch "C++ für Spieleprogrammierer" von Heiko Kalista durch :P
  • @Zerd auch von mir ein grosses Lob für die Arbeit die Du in den Workshop investierst, es ist eine gute Wiederholung der Einführung in die Syntax, so langsam wird es dann richtig spannend wenn die ersten dynamischen Zeiger, Referenzen, benutzerdefinierte Objekte etc. kommen...

    ich wünsche mir, uns Lesern und Dir ein grosses Durchhaltevermögen
  • Also erstmal... Danke für den Workshop! :)
    Bin gerade fleißig am coden aber leider habe ich beim Taschenrechner ein kleines, aber nerviges Problem: mein Ergebnis ist immer eine ganze Zahl, auch wenn ich z.B. 5/2 rechne... ich habe es mit float und double versucht, aber es bleibt einfach eine ganze zahl :ööm:

    Hier ist mein code:

    C-Quellcode

    1. #include <iostream>
    2. #include <string>
    3. int main() {
    4. int eing1,eing2;
    5. int erg = 0;
    6. std::string zeichen;
    7. std::cout << "Zahl eingeben: ";
    8. std::cin >> eing1;
    9. std::cout << "Rechenart Auswählen: ";
    10. std::cin >> zeichen;
    11. std::cout << "2te Zahl eingeben: ";
    12. std::cin >> eing2;
    13. if(zeichen=="+") {
    14. erg = eing1 + eing2;
    15. } else {
    16. if(zeichen=="-") {
    17. erg = eing1 - eing2;
    18. } else {
    19. if(zeichen=="*") {
    20. erg = eing1 * eing2;
    21. } else {
    22. if(zeichen=="/") {
    23. erg = eing1 / eing2;
    24. } else {
    25. std::cout << "Falsche Eingabe! ";
    26. }
    27. }
    28. }
    29. }
    30. std::cout << "Das Ergebnis lautet: " << erg;
    31. }
    Alles anzeigen


    Was muss ich da jetzt ändern dass im Ergebnis ein exakter Wert kommt?
  • Hi, schön zu hören das noch mit dem workshop gearbeitet wird ;)

    Das dein Ergebnis float sein sollte hast du richtig gemacht. Dadurch das die Zahlen die du einliest aber integer zahlen sind wird beim ergebnis der Nachkommateil abgeschnitten. Das passiert immer wenn man float werte in integer werte umwandelt. (z.b. int a = (int)3.33333; // in int wird 3 gespeichert)

    Wenn du also eine int zahl durch eine andere int zahl teilst wird im Ergebnis des Nachkommateils abgeschnitten.

    Um das zu ändern kannst du entweder die Eingaben als float speichern, oder bei der operation die integerzahl zu float casten.

    Durch die Klammern und die Angabe des datentyps wird die Variable die rechts der Klammern steht zu dem Variablentyp der in den Klammern steht umgewandelt.

    PHP-Quellcode

    1. float erg = (float)eing1 / (float)eing2;


    Ich hoffe das war verständlich :)
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • ich hab mir von einer anderen seite das visual express 2005 besorgt, aber ich hab auch ein problem.
    wen ich versuche zu kompiliern kommt unten eine fehlermeldung das 'cl.exe' nicht gestartet werden konnte.
    und so kann ich auch das abgespeicherte programm nich öffnen.
  • shms schrieb:

    leider gibts unter den angegebenen links nur noch die visal c++ 2008 express version und das haut leider irgendwie gar nicht mit deinem tutorial hin :(


    schau dich da ein bissl genauer um man kann sich immer noch die alte version runterladen;)

    @zerd: wenn ich das Programm auf dem Computer starte auf dem es gemacht wurde funktioniert es, wenn ich die .exe Datei aber auf einen anderen Rechner ziehe kommt folgende Fehlermeldung:



    und auf diesem rechner ist das c++ Programm vom Tutorial nicht vorhanden und es kommt folgende Fehlermeldung:



    wie kann ich das Programm für jeden rechner kompatibel machen?

    EDIT: Danke biernase! Das war das Problem! ^^
  • hay ich hab ein problem^^
    ich wollte grade ausprobiern ob mein code richtig ist den ich eingegeben hab
    und dan kommt diese fehlermeldung:



    ich hab das Platform SDK schon neu installiert und an dem code kanns auch nicht liegen, weil ein freund ihn ausprobiert hat.
    ich hoffe ihr könnt mir helfen^^
  • @Zilart
    Das sieht nach Vista aus, ich habe das Studio noch nicht unter Vista getestet, scheint ja nich so wundervoll zu klappen ;)

    Versuch mal die Optimierung in den ProjektEigenschaften auszistellen:
    -> Project / Properties...
    --->Configuration Properties / C/C++ / Optimization, change Optimization to Disabled.

    Vielleicht hilft das ja schon...
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Hallo
    ich glaube ich peil es heute nicht mehr. weiß nicht wie ich den fehler wegbekomme.
    Fehlermeldung: Unerwartetes Dateiende innerhalb eines Kommentars



    C-Quellcode

    1. #include <iostream>
    2. #include <string>
    3. using namespace std;
    4. int main () {
    5. int eingabe1, eingabe2, ergebnis;
    6. string rechenart;
    7. cout << "erste Zahl eingeben:";
    8. cin >> eingabe1;
    9. cout << "zweite Zahl eingeben:";
    10. cin >> eingabe2;
    11. cout << "bitte die rechenart wählen [+,*,/,-]:";
    12. cin >> rechenart;
    13. /*if (rechenart=='+') {
    14. eingabe1 + eingabe2 = ergebnis;
    15. }
    16. if (rechenart=='-') {
    17. eingabe1 - eingabe2 = ergebnis;
    18. }
    19. if (rechenart=='*') {
    20. eingabe1 * eingabe2 = ergebnis;
    21. }
    22. if (rechenart=='/') {
    23. eingabe1 / eingabe2 = ergebnis;
    24. }
    25. cout << " dar ergebnis lautet:" << ergebnis << endl;
    26. return 0;
    27. }
    Alles anzeigen


    währe dankbar über hilfe kann doch kein großer fehler mehr sein.
    und wie bekomme ich das ganze in bunt hier rüber???

    THX

    alles klar habe es selber hinbekommen, habe alles nochmal mit else ifgemacht und gemerkt das die gleichung falsch rum geschrieben war.
    Trotzdem
    großes THX an den Mentoren ZERD

    vieleicht kann man die Switch-Case Anweisung noch etwas besser darstellen, ich werde leider nicht schlau draus wie das ganze am ende auszusehen hat.
    THX zerd

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: Tripplepost

  • Mh.. die switch-case Anweisung besser darstellen...

    Naja sie sieht genauso aus wie in meinem beispiel:

    PHP-Quellcode

    1. switch(variable) {
    2. case 1:
    3. std::cout << "1 gedrückt" << std::endl;
    4. break;
    5. case 2:
    6. std::cout << "2 gedrückt" << std::endl;
    7. break;
    8. default:
    9. std::cout << "Was anderes" << std::endl;
    10. }


    Nur das du jetzt anstelle der Zahlen die Operationen eingibst...

    PHP-Quellcode

    1. switch(rechenart){
    2. case '+':
    3. eingabe1 + eingabe2 = ergebnis;
    4. break;
    5. ....
    6. }


    Ich wüsste grad spontan nicht was ich da noch groß zu erklären könnte ;)

    Noch 2 kleine Anmerkungen...
    1. Deine Fehlermeldung kam weil du den Kommentar nicht geschlossen hast du hast /* geschrieben, aber um den Kommentar dann zu schließen gehört noch ein */ dahinter.

    2. Mach keine Doppelposts, wenn du noch was hinzuzufügen hast editier deinen ersten Beitrag, sonst gibts ärger mit den Mods :)
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • tr00per schrieb:

    danke zerd für das Tutorial ist echt gut. Mich würde nur mal intressieren für was das SDK gut sein soll und ob dieses MFC ersetzt?


    In meinem Tutorial geht es hauptsächlich darum C++ zu lernen, um die sprach-basics die nicht Windows abhängig sind benutzen zu können müssen wir das Platform SDK installieren. MFC ist (wie der name schon sagt - Microsoft Foundation Classes) microsoft spezifisch, und dafür gedacht speziell Programme für Windows zu schreiben. Ich benutze in dem Tutorial das Visual Studio 2005, du kannst die Programme aber auch unter Linux, Mac oder einer anderen Windows IDE compilieren. Würde ich die MFC benutzen wäre das nicht möglich.

    Ich hoffe des war einigermaßen verständlich ;)
    Greetz
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Hi,

    ich fange gerade mit C++ an


    Habe einen kleinen Fehler in deinem Workshop entdeckt

    Du hast geschrieben:

    PHP-Quellcode

    1. #include <iostream>
    2. int main() {
    3. std::string nachname;
    4. std::cout << "bitte geben sie ihren namen ein:";
    5. std::cin >> n;
    6. std::cout << "ihr name: " << nachname;
    7. return 0;
    8. }


    Richtig wäre:

    PHP-Quellcode

    1. #include <iostream>
    2. #include <string>
    3. int main() {
    4. std::string nachname;
    5. std::cout << "bitte geben sie ihren namen ein:";
    6. std::cin >> nachname;
    7. std::cout << "ihr name: " << nachname;
    8. return 0;
    9. }



    Aber super Workshop

    Mach weiter so, es ist alles einfach verständlich und so

    €dit:

    Hab ein kleines Problem, und zwar immer wenn ich was mit If in den Quellcode schreib kommt beim kompilieren folgendes:

    "If": Bezeichner wurde nicht gefunden