1. C++ Gehversuche

  • Da ich mich entschlossen habe C++ zu lernen, habe ich gleich in der 1. Lektion
    probleme:

    Spoiler anzeigen


    // Product_Calc.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include <stdio.h>
    #include <iostream>
    using namespace std;


    int _tmain(int argc, _TCHAR* argv[])
    {
    return 0;
    }

    int produkt_berechnen(int z1, int z2)
    {
    int ergebnis;

    ergebnis = z1 * z2;

    return ergebnis;
    }

    double mittelwert_berechnen(int z1, int z2)
    {
    double ergebnis;

    ergebnis = (z1 + z2) / 2.0;

    return ergebnis;
    }

    int main(int argc, char **argv)
    {
    //Variablen deklarieren
    int zahl1, zahl2;
    int produkt;
    double mittelwert;

    //Zahlenwerte einlesen
    cout <<("Geben Sie zwei Zahlen zwischen 1 und 100 ein: ");
    cin >> zahl1 >> zahl2;

    //Ergebnis berechnen
    produkt = produkt_berechnen(zahl1, zahl2);
    mittelwert = mittelwert_berechnen(zahl1, zahl2);

    //Ergebnis ausgeben
    cout << "1. Zahl = " << zahl1 << "\n";
    cout << "2. Zahl = " << zahl2;
    cout << "Produkt = " << produkt;
    cout << "Mittelwert = " << mittelwert;

    return 0;
    }

    Irgendwie sieht der Ouput nicht so aus, wie ich es will ->

    Spoiler anzeigen


    Geben Sie zwei Zahlen zwischen 0 und 100 ein: 12 55
    1. Zahl = 122. Zahl = 55

    Produkt = %d
    660Mittelwert = %f
    33.5

    Ich benuzte den MS Visual C++ Kompiler!

    Danke,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Irgendwie war mit dem Compiler was los, denn jede Änderung die ich gemacht hatte, wurde ignoriert.

    So wollte ich es haben:

    Spoiler anzeigen


    // Product_Calc.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include <stdio.h>
    #include <iostream>
    using namespace std;


    int _tmain(int argc, _TCHAR* argv[])
    {
    return 0;
    }

    int produkt_berechnen(int z1, int z2)
    {
    int ergebnis;

    ergebnis = z1 * z2;

    return ergebnis;
    }

    double mittelwert_berechnen(int z1, int z2)
    {
    double ergebnis;

    ergebnis = (z1 + z2) / 2.0;

    return ergebnis;
    }

    int main(int argc, char **argv)
    {
    //Variablen deklarieren
    int zahl1, zahl2;
    int produkt;
    double mittelwert;

    //Zahlenwerte einlesen
    cout <<("\nGeben Sie zwei Zahlen zwischen 1 und 100 ein: ");
    cin >> zahl1 >> zahl2;

    //Ergebnis berechnen
    produkt = produkt_berechnen(zahl1, zahl2);
    mittelwert = mittelwert_berechnen(zahl1, zahl2);

    //Ergebnis ausgeben
    cout << "\n1. Zahl = " << zahl1 << "\n";
    cout << "2. Zahl = " << zahl2 << "\n\n";
    cout << "Produkt = " << produkt << "\n";
    cout << "Mittelwert = " << mittelwert << "\n";

    return 0;
    }

    Und so sieht der Output aus:

    Spoiler anzeigen


    Geben Sie zwei Zahlen zwischen 1 und 100 ein: 235 23523

    1. Zahl = 235
    2. Zahl = 23523

    Produkt = 5527905
    Mittelwert = 11879

    Der Fehler lag sehr wahrscheinlich an der Person vor der Tastatur! So sind die 1. Schritte ;)

    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hallöchen!

    Ist zwar irgendwie 'Off-Topic' und auch voll garnicht die Hilfestellung, aber in C würde ich das so lösen:

    Spoiler anzeigen


    #include "stdafx.h"
    #include <stdio.h>
    #include <iostream>
    //wobei ich nicht weiß welche Include´s benötigt werden...

    //Variablen deklarieren
    int zahl1, zahl2, produkt;
    double mittelwert;

    int produkt_berechnen(int z1, int z2)
    {
    int ergebnis;

    ergebnis = z1 * z2;

    return ergebnis;
    }

    double mittelwert_berechnen(int z1, int z2)
    {
    double ergebnis;

    ergebnis = (z1 + z2) / 2.0;

    return ergebnis;
    }

    void main(void)
    {

    //Zahlenwerte einlesen
    printf("\nGeben Sie zwei Zahlen zwischen 1 und 100 ein: ");
    printf("\nZahl 1 ");
    scanf (%d", zahl1);
    printf("\nZahl 2 ");
    scanf (%d", zahl2);


    //Ergebnis berechnen
    produkt = produkt_berechnen(zahl1, zahl2);
    mittelwert = mittelwert_berechnen(zahl1, zahl2);

    //Ergebnis ausgeben
    printf("\n1. Zahl = %d", zahl1);
    printf("\n2. Zahl = %d", zahl2);
    printf("\nProdukt = %d", produkt);
    printf("\nMittelwert = %d", mittelwert);
    }

    Ich hoff auch das es richtig ist, habe nähmlich grad keinen Compiler zur Hand :D

    P.S: Bist das wirklich du auf´m Foto??? Find ich richtig Cool so mit dem Bärtchen 8)

  • Ich habe mir das C/C++ Buch von M+T (C/C++ Die Referenz) geholt und habe mich entschlossen direkt mit C++ anzufangen.

    Darum bewusst die C++ Syntax.

    Ich weiß nicht, ob ich doch lieber vorher mit C anfangen sollte!

    Gruß,
    UEZ

    PS: Das auf dem Foto ist Salvatore Dali ;)

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Zitat

    Bist das wirklich du auf´m Foto?

    :rofl: , made my day!

  • Ich hatte mich auch erst in C++ versucht.... Dann aber doch lieber erst C lernen, und anschliessend C++.
    Ich habe bis heute C++ nicht so richtig begreifen können :D kann zwar den Source lesen und verstehe ungefähr was da passiert, aber ein eigenes Programm von der Pike auf an zu Coden ist gaaanz was anderes 8|

    P.S: Dieser Dali war ein ganz komischer, wie eigentlich so alle Künstler...

    PP.S: LOL, voll der Opa-Treff hier :rofl: wobei ich ja noch der jüngste von uns dreien bin. Gibt es eigentlich noch mehr 'Ü-30' Member???

    Einmal editiert, zuletzt von Techmix (17. Dezember 2009 um 15:28)

  • Ich hab gleich mit C++ angefangen und erstmal das Tutorial gemacht. Damit bin ich gut klargekommen und kann inzwischen schon einfache Sachen, wie Tic Tac Toe ohne Hilfe selbst programmieren.

    Ich würde das so machen:

    Spoiler anzeigen

    Damit das Fenster am Ende offen bleibt solltest du am Ende vor dem return ein paar cin.get(); einfügen.


    EDIT: #include <stdio.h> brauchst du hier nicht und was steht in der stdafx.h?

    Übrigends gehen alle C-Befehle auch unter C++.

  • Techmix
    ich denke Ü40-Member würde es eher treffen :rofl:

    und ja, da springen schon noch ein paar rum...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Ich hab gleich mit C++ angefangen und erstmal das Tutorial gemacht. Damit bin ich gut klargekommen und kann inzwischen schon einfache Sachen, wie Tic Tac Toe ohne Hilfe selbst programmieren.

    Ich würde gerne das objektorientierte Programmieren lernen und dachte mir C++ wäre ein guter Einstieg. Mal sehen... :S
    Danke für den Link, werde ich mir auf jeden Fall auch anschauen. Zur Zeit gehe ich das Buch durch, um mich überhaupt mal mit C++ vertraut zu machen. Wird wohl einige Wochen dauern, bis ich ein eigenständiges Programm erstellen kann.


    Ich würde das so machen:

    Spoiler anzeigen

    Damit das Fenster am Ende offen bleibt solltest du am Ende vor dem return ein paar cin.get(); einfügen.


    EDIT: #include <stdio.h> brauchst du hier nicht und was steht in der stdafx.h?

    Übrigends gehen alle C-Befehle auch unter C++.

    Ich benutze den MS Visual C++ 2008 für den C++ Code, und wenn ich eine Consolen App. bauen will, wird automatisch

    #include "stdafx.h"

    int _tmain(int argc, _TCHAR* argv[])
    {
    return 0;
    }

    erstellt. Ich vermute, dass ist so was wie die $cmdline unter AutoIt.

    An dem Code kann man vieles vielleicht besser machen, aber ich muss erstmal mich mit dem Editor und den Befehlen auseinander setzen! C und C++ will ich auch nicht mischen...

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Nun ja, dann mal viel Erfolg!!!

    ...dieses ganze objekt gedöns... Aber wenn du damit anfangen willst ist C++ (denke ich) schon richtig; brauchst aber Zeit dafür.

    Grüsse Techmix!


    Schnuffel:
    Dank dir fühle ich mich jetzt wieder richtig jung und frisch :rofl:

  • Die stdafx.h ist eine vorkompilierte Headerdatei in der alle #includes geschrieben werden sollten die du eh fast überall benötigst. Die Headerdatei wird dann nämlich vorkompiliert und muss nicht bei jedem build neu erstellt werden, was bei größeren Projekten den Buildvorgang verkürzt.

    hehe ich ziehe den Altersdurschnitt ganz schön nach unten. :P

  • Moin UEZ,

    ich empfehle dir Code::Blocks und MinGW, ist für Beginner besser denke ich ...
    Die "StdAfx.h" ist eine vorkopilierte Standard-Headerdatei, einfach mal reinschauen ... ;)
    Dein Code, ohne M$ Schnick-Schnack:

    Spoiler anzeigen

    Links:
    http://www.highscore.de/
    http://www.cpp-tutor.de/cpp/index.html
    Buchtip

    Techmix, void main(void) - the Wrong Thing


    Gruß
    Greenhorn


  • Greenhorn:
    Also eher
    int main()
    als
    void main() / void main(void)

    Hmmm bin der Meinung das ich es so erlernt habe. Sieht im Assemblercode nicht gut aus, das void, oder warum. Ahhh, wegen dem build Comando; dadurch erspart man sich Compilierzeit???

  • Hi, Code::Blocks kann ich auch empfehlen. ;)

    Spoiler anzeigen


    /*----------------------------------------------------------------------------------
    CodeBlocks Version: 8.02
    Programmname: Roberta13
    Autor: Ritzelrocker04

    Skript Funktionen:
    Variablen Werte zuweisen und abfragen
    string, int und double Variablen
    switch-Verzweigung nutzen

    Ein Programm mit mehreren Funktionen und Kommentaren zur
    Berechnung des IdealGewichtes nach Geschlecht
    ----------------------------------------------------------------------------------*/

    #include <iostream>
    #include <string>
    using namespace std;

    void linie(), meldung(); // Prototypen

    string sMyString;
    string sUsername;

    int groesse;
    int geschlecht;

    double idealgewicht;

    int main()
    {
    system("cls"); // Fensterinhalt löschen
    linie();
    cout << "Willkommen, beim IdealgewichtsRechner (IGR++) von Ritzelrocker04!" << endl;
    cout << "Ich berechne Dein Idealgewicht!" << endl;
    linie();
    cout << endl;
    cout << "Wie ist Dein Name?" << endl;
    cout << "Hier bitte Deinen Namen eingeben: ";
    cin >> sUsername;
    cout << endl;
    cout << "Hallo " << sUsername << ", ich bin Roberta. Dein Computer!" << endl;
    cout << endl;
    cout << sUsername;
    cout << ", gebe bitte Deine Groesse in cm ein." << endl;
    cout << "Deine Groesse in cm, aber ohne cm, hier eingeben: ";
    cin >> groesse;
    cout << endl;
    cout << "So " << sUsername << ", gut gemacht!" << endl;
    cout << "Jetzt noch Dein Geschlecht, 0 fuer weiblich und 1 fuer maennlich," << endl;
    cout << "hier angeben: ";
    cin >> geschlecht;
    cout << endl;
    // start: Hier Berechnung des IdealGewichtes
    switch ( geschlecht )
    {
    case 0: idealgewicht = (groesse - 100) * 0.85;
    sMyString = ", Du bist weiblich und ";
    meldung();
    break;

    case 1: idealgewicht = (groesse - 100) * 0.9;
    sMyString = ", Du bist maennlich und ";
    meldung();
    break;
    }
    // ende: Hier Berechnung des IdealGewichtes

    return 0;
    }

    void linie() // Eine Linie ausgeben (65).
    {
    cout << "-----------------------------------------------------------------" << endl;
    }

    void meldung() // Eine Meldung ausgeben.
    {
    linie();
    cout << "Hallo " << sUsername << sMyString << groesse << " cm gross." << endl;
    cout << "Ich habe ein IdealGewicht von " << idealgewicht << " kg errechnet!" << endl;
    linie();
    }

    // Ende


    Viel Spaß! 8)