C++ devc++



  • Ich bin leider programieranfänger und daher frage ich ja auch.



  • Was ist den nun an meinem Programm falsch?



  • Ausschlaggebend ist hier für dein Versagen definitiv nicht die Tatsache, dass du Programmieranfänger bist, sondern zu 100% ignorant und unfähig die unzähligen Ratschläge, die dir in dem Verlauf des Threads bereits gegeben wurde, umzusetzen und damit auf ein vollständiges und funktionierendes Programm zu kommen.

    Lass das Programmieren lieber sein. Bezahl jemanden dafür, dass er dir dir Hausaufgaben von deinem Informatik-Unterricht macht. Oder frag ein guten Freund.



  • Sone schrieb:

    Dein Programm ist einfach nur Müll. Merkwürdige Formatierung, syntaktisch total falsche Initialisierung (Z. 11)(und dazu wahrscheinlich noch anders gemeint), Kekse und Brot sind doch nicht in den Standard-Headern definiert (bzw. hast du vergessen daraus ein String-Literal zu machen? Soll das eigentlich "Kekse" heißen?), falsche Einbindung von <iostream>.

    Das solltest du wohl noch einmal lesen!



  • Weißt du wir froh ich über C++-Programmierung in der Schule gewesen wäre? Eigentlich haste ganz schönes Schwein, wir haben nur Delphi gemacht.

    Hier, gibs ab, sollte stimmen, aber lass dich bloß nichts dazu fragen, da du es wohl eh nicht verstehst.

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
        int a(0), b(0);
        cout << "Geben sie eine ganzzahlige Variable ein:\n";
        cin >> a;
        cout << "Geben sie noch eine ganzzahlige Variable ein:\n";
        cin >> b;
        int c(a+b);
        cout << a << "+" << b << "=" << c << "\n\n";
    
        float fa(0), fb(0);
        cout << "Geben sie eine Gleitpunktzahl ein:\n";
        cin >> fa;
        cout << "Geben sie nocheine Gleitpunktzahl ein:\n";
        cin >> fb;
        float fc(fa-fb);
        cout << fa << "-" << fb << "=" << fc << "\n\n";
    
        bool ba(0), bb(0);
        cout << "Geben sie true oder false ein:\n";
        string dummy;
        cin >> dummy;
        if (dummy == "false")
            ba = false;
        if (dummy == "true")
            ba = true;
    
        cout << "Geben sie true oder false ein:\n";
        cin >> dummy;
        if (dummy == "false")
            bb = false;
        if (dummy == "true")
            bb = true;
        bool bc(ba||bb);
        cout << ba << "||" << bb << "=" << bc << "\n\n";
    
        char ca(0), cb(0);
        cout << "Geben sie ein Zeichen ein:\n";
        cin >> ca;
        cout << "Geben sie noch ein Zeichen ein:\n";
        cin >> cb;
        bool cc(ca!=cb);
        cout << ca << "!=" << cb << "=" << cc << "\n\n";
    
        string sa, sb;
        cout << "Geben sie eine Zeichenkette ohne whitespaces ein:\n";
        cin >> sa;
        cout << "Geben sie noch eine Zeichenkette ohne whitespaces ein:\n";
        cin >> sb;
        bool sc(ca<cb);
        cout << sa << "<" << sb << "=" << sc << "\n\n";
    }
    


  • Enno schrieb:

    Sone schrieb:

    Dein Programm ist einfach nur Müll. Merkwürdige Formatierung, syntaktisch total falsche Initialisierung (Z. 11)(und dazu wahrscheinlich noch anders gemeint), Kekse und Brot sind doch nicht in den Standard-Headern definiert (bzw. hast du vergessen daraus ein String-Literal zu machen? Soll das eigentlich "Kekse" heißen?), falsche Einbindung von <iostream>.

    Das solltest du wohl noch einmal lesen!

    Hab' ich, bin zufrieden. Oder findest du ich war zu fies? Ich nicht.



  • Sone schrieb:

    Hab' ich, bin zufrieden. Oder findest du ich war zu fies? Ich nicht.

    HAHA nicht du! Der Threadersteller!
    Sah ein wenig danach aus als ob das überlesen wurde! Sry hätte ich deutlicher machen sollen.



  • Könnt ihr ncht bitte einfach mein Programm korriegieren, damit ich weiter machen kann.


  • Mod

    programmer21 schrieb:

    Könnt ihr ncht bitte einfach mein Programm korriegieren, damit ich weiter machen kann.

    Mit weitermachen meinst du, auf die Komplettlösung der nächsten Teilaufgabe zu warten?

    Du zeigst in diesem Thread keinerlei Lernwillen oder Eigeninitiative. Das ist hier sehr ungern gesehen. Ich mache den Thread nicht zu, weil ich nicht anderen Leuten vorschreibe, wem sie freiwillig(!) helfen wollen. Aber du darfst davon ausgehen, dass kaum jemand dir mehr helfen wird, wenn du deine Einstellung nicht gründlich änderst.



  • Könnt ihr mir nur sagen was ich falsch mache?



  • Hallo tobi kannst du mir erklären was du hier gemacht hast.

    DAs verstehe ich leider nicht:

    bool ba(0), bb(0);
    cout << "Geben sie true oder false ein:\n";
    string dummy;
    cin >> dummy;
    if (dummy == "false")
    ba = false;
    if (dummy == "true")
    ba = true;

    cout << "Geben sie true oder false ein:\n";
    cin >> dummy;
    if (dummy == "false")
    bb = false;
    if (dummy == "true")
    bb = true;
    bool bc(ba||bb);
    cout << ba << "||" << bb << "=" << bc << "\n\n";

    Ich verstehe nicht was du beim ersten teil für string genau gemacht hast.
    Warum überprüfst du das dummy für false und true?

    Den anderen teil verstehe ich auch irgendwie nicht .



  • Ok, jetzt ist es offensichtlich.

    Troll.



  • Aber ich verstehe das nicht ganz. Ich bin doch noch Anfänger und frag euch deshalb. Aber warum wird dann soviel Kritik ausgeübt? Ich wollte ja versuchen zu lernen aber wenn ich nicht drauf komme , was soll ich machen?



  • Ganz einfach:
    Wenn ich jetzt einen Wahrheitswert eingeben wöllt, könnt ich egal was eingeben, alles ungleich 0 ist true, nur 0 ist false. Darum hab ich es so gemacht, dass du direkt true oder false eingeben kannst, dann wird überprüft, ob du "true" oder "false" eingegeben hast und je nachdem wird eine bool-Variable auf true oder false gesetzt.

    Ich verstehe nicht was du beim ersten teil für string genau gemacht hast.
    Warum überprüfst du das dummy für false und true?

    Der String "true" wird quasi in den Wahrheitswert true übersetzt und dann für die ||-Verknüpfung genutzt. Selbiges für den Eingabestring "false" und wenn du weder "true" noch "false" an der Stelle eingibst, kommt gelinde gesagt Schmarrn raus.

    Das war übrigens nicht der Teil mit dem String, sondern der mit dem Wahrheitswert 😉

    So, hier nochmal vereinfacht und immernoch funktionsfähig, vor allem aber mit einem Fehler weniger:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
        int a(0), b(0);
        cout << "Geben sie eine ganzzahlige Variable ein:\n";
        cin >> a;
        cout << "Geben sie noch eine ganzzahlige Variable ein:\n";
        cin >> b;
        int c(a+b);
        cout << a << "+" << b << "=" << c << "\n\n";
    
        float fa(0), fb(0);
        cout << "Geben sie eine Gleitpunktzahl ein:\n";
        cin >> fa;
        cout << "Geben sie nocheine Gleitpunktzahl ein:\n";
        cin >> fb;
        float fc(fa-fb);
        cout << fa << "-" << fb << "=" << fc << "\n\n";
    
        bool ba(true), bb(true);
        cout << "Geben sie 1(wahr) oder 0(falsch) ein:\n";
        cin >> ba; //erster Wahrheitswert (bool kann (vereinfacht) nur true(1) oder false(0) annehmen)
        cout << "Geben sie nochmal 1(wahr) oder 0(falsch) ein:\n";
        cin >> bb; //zweiter Wahrheitswert
        bool bc(ba&&bb); //das Ergebnis des &&-Operator gibt einen Wahrheitswert, also true oder false, zurück,
                         //der beschreibt, ob die beiden Operanten true sind.
        cout << ba << "||" << bb << "=" << bc << "\n\n";
        //bei der Ausgabe wird logischerweise nicht "true" oder "false", sondern "1" oder "0" ausgegeben
    
        char ca(0), cb(0);
        cout << "Geben sie ein Zeichen ein:\n";
        cin >> ca;
        cout << "Geben sie noch ein Zeichen ein:\n";
        cin >> cb;
        bool cc(ca!=cb); //der !=-Operator gibt einen Wahrheitswert zurück, welcher beschreibt, ob die Werte
                         //beider Operanden ungleich sind 
        cout << ca << "!=" << cb << "=" << cc << "\n\n";
    
        string sa, sb;
        cout << "Geben sie eine Zeichenkette ohne whitespaces ein:\n";
        cin >> sa;
        cout << "Geben sie noch eine Zeichenkette ohne whitespaces ein:\n";
        cin >> sb;
        bool sc(ca<cb); //Schaut, ob sa lexikalisch (alphabetisch) kleiner als sb ist
        cout << sa << "<" << sb << "=" << sc << "\n\n";
    }
    

    Wenn du dazu noch Fragen hast, frag.

    Ok, jetzt ist es offensichtlich.
    Troll.

    Tja, am Ende ist es dein "Halloween-Spaß" fürs Forum...



  • Kannst du mir auch bei dem 2ten Teil der Aufgabe helfen wo ich alles mit dem textefitor anzeigen soll, weil alleine Kriege ich das glaub ich nicht hin.



  • Tobi, nimm's nicht persönlich, aber: du bist nicht ganz dicht, wenn du ihm hilfst. Tut mir leid, ist aber so.
    Leider hatte ich so einen wie Threadersteller an der Uni als Kommilitonen (der Sack ist zwar immer mitm Studium noch nicht fertig, wird's aber bestimmt schaffen 😡 ). Die sind wie Stacheldraht im A*sch, wenn man mit ihnen arbeitstechnisch auch nur irgendwas zu tun haben muss.



  • Tobi, nimm's nicht persönlich, aber: du bist nicht ganz dicht, wenn du ihm hilfst. Tut mir leid, ist aber so.

    Och pff, wenn mein Internet rumnervt hab ich meist nichts besseres zu tun^^

    Leider hatte ich so einen wie Threadersteller an der Uni als Kommilitonen

    Tja, das sind die Leute, die glauben "och, ich krieg mein Word angeschmissen, mir fällt nix besseres ein, also studier ich Info" 😉

    @TE: Gib das ab, was ich geschrieben hab, das ist die Hälfte, ist ne 4. Da fällste immerhin nicht durch, ob es jetzt Oberstufe oder Studium ist.

    PS: Ich studier noch nicht mal 😉



  • Anmerkung:

    Wenn Du einen Fehler in deinem Code oder eine Frage hast:
    1. Überlegen 2. Intensiv Google und die Forensuche bemühen (3. Debuggen) 4. Überlegen 5. Überlegen 6. Im Forum fragen

    Warum steht Debuggen an dritter Stelle und warum in Klammern, sollte doch immer das erste sein. :o



  • Der Tobi schrieb:

    So, hier nochmal vereinfacht und immernoch funktionsfähig, vor allem aber mit einem Fehler weniger:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
        int a(0), b(0);
        cout << "Geben sie eine ganzzahlige Variable ein:\n";
        cin >> a;
        /// [...]
    }
    
    #include <iostream> 
    #include <functional> 
    #include <string> 
    
    template<typename T, template <class> class binary_func> 
    void processTwoVal(std::string const& text, 
                   std::string const& op) 
    { 
            T val1, val2; 
            std::cout << "Geben Sie " << text << " ein: "; 
            std::cin >> val1; 
            std::cout << "Geben Sie noch " << text << " ein: "; 
            std::cin >> val2; 
    
            std::cout << val1 << ' ' << op << ' ' << val2 << " = " << binary_func<T>()(val1, val2) << "\n\n"; 
    } 
    
    int main() 
    { 
        std::cout << std::boolalpha; 
    
        processTwoVal<int, std::plus>("eine ganzzahlige Variable", "+"); 
    
        processTwoVal<float, std::minus>("eine Gleitpunktzahl", "-"); 
    
        processTwoVal<bool, std::logical_and>("einmal 1(wahr) oder 0(falsch)", "&&"); 
    
        processTwoVal<char, std::not_equal_to>("ein Zeichen", "!="); 
    
        processTwoVal<std::string, std::less>("eine Zeichenkette", "<"); 
    }
    

    Das kann er abgeben. Wenn schon denn schon.
    Ideone: http://ideone.com/G7bgp2

    Btw, was meinst du mit "dein Halloween Spaß für's Forum"?



  • An den TE (programmer21):
    Sieh dir diese Seite an. Besonders Punkt 1, 2 und 4. Und auch die Anderen.


Anmelden zum Antworten