C++ devc++



  • 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.



  • Danke Sone.

    Aber eine letzte bitte hätte ich noch:

    Kannst du mir ein wenig diesen Code erklären?

    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";
    }

    Was bewirkt denn das template ?

    Und was ist da shier?

    T val1, val2;

    Den letzten mit binary func habe ich auch nicht verstanden.



  • War auch nur als Späßle gemeint, den wirst du jetzt nicht verstehen. 😉



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

    Der Troll war so gut, der hätte von dir sein können.

    Das kann er abgeben. Wenn schon denn schon.

    Haha, also jetzt wirds lächerlich.



  • Der Tobi schrieb:

    Das kann er abgeben. Wenn schon denn schon.

    Haha, also jetzt wirds lächerlich.

    Na klar. 🤡
    Wenn schon lächerlich, Tobi, denn schon so richtig lächerlich.


Anmelden zum Antworten