Wörter eingeben???



  • SeppJ schrieb:

    Ist zwar kein C++ sondern nur ein einfaches shellscript, aber das Grundprinzip sollte klar sein. Mein Programm kennt sogar viel mehr als nur zwei Wörter und lernt ständig neue dazu:

    #!/bin/sh
    
    read  wort
    firefox http://de.wikipedia.org/wiki/${wort}
    

    das ist schonmal ein Anfang. aber kannst du das nicht in C++??

    ich meine, ich weiß, dass ich als variable char benutzen muss, aber was danach kommt weiß ich nicht.

    (aber cout und cin kenn ich alles schon)



  • Dann schaue dir doch mal std::string an ... oder liess in deinem Buch einfach weiter ... btw. du hast hoffentlich ein gutes Buch, dass std::string kennt ...


  • Mod

    prof_kai schrieb:

    das ist schonmal ein Anfang. aber kannst du das nicht in C++??

    Klar kann ich das, aber ich will dir ja nicht jede Eigeninitiative stehlen. Verstehst du überhaupt, was mein Script macht?

    ich meine, ich weiß, dass ich als variable char benutzen muss, aber was danach kommt weiß ich nicht.

    Lass das mit char lieber sein, das ist nur ein Stolperstein für Anfänger. Nimm std::string.

    (aber cout und cin kenn ich alles schon)

    Das ist doch schonmal ein Anfang, denn so kannst du schonmal 1) Wort einlesen, 2) Beschreibung ausgeben. Nun brauchst du noch etwas, dass den Programmablauf so steuert, dass zu dem Wort die richtige Beschreibung kommt. Zur Steuerung des Programmablaufs gibt es in C++ mehrere Möglichkeiten (ich führe hier nicht alle auf):

    1. if-Bedingung: Die meistgenutzte Möglichkeit, den Programmablauf zu verändern und if steht auch hinter den meisten anderen Konstrukten die Entscheidungen treffen. Nimm dies, wenn du ein blutiger Anfänger bist, dann lernst du am meisten und das gelernt ist am nützlichsten.
    2. switch: Eine etwas fortgeschrittene Konstruktion um zwischen mehreren Möglichkeiten zu wählen. Kommt in diesem Fall eher nicht in Frage, da es sich nicht direkt auf Worte anwenden lässt. Außerdem sollte man zuvor if verstanden haben.
    3. std:🗺 Passt für dein Problem eigentlich wie die Faust aufs Auge. Problem: Bei map ist das was du brauchst schon alles fertig drin. Wenn du dies als Anfänger benutzt, würdest du überhaupt nicht verstehen was da passiert und nichts für später lernen.


  • das sind grundlagen.

    ein Beispiel zum orientieren:

    #include <iostream>
    #include <string>
    
    int main()
    {
       bool Wiederholen = true;
       while (Wiederholen == true)
       {
         std::string Begriff;
         std::cout << "Begriff eingeben" << std::endl;
         std::cin >> Begriff;
         if (Begriff == "Ascii")
         {
           std::cout << "Der Ascii Zeichensatz ist eine amerikanische Norm bla bla....";
         }
         std::string Frage;
         std::cout << "Wollen sie noch etwas Fragen ?" << endl;
         std::cin >> Frage;
         if (Frage == "nein")
         {
           Wiederholen = false;
         }
       }
       return 0;
    }
    

    Ich weiß die Formatierung ist grottig aber mir fehlt TAB im Browser 🙂
    EDIT: MAN DIESE GANZE FEHLER SIND LÄSTIG ^^
    Findet und vernichtet sie ! 😃





  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • while (Wiederholen == true)
    

    Doppelt gemoppelt hält besser, ne? 😉



  • Don06 schrieb:

    while (Wiederholen == true)
    

    Doppelt gemoppelt hält besser, ne? 😉

    Das gehört (IMHO) zu gutem Programierstil, ich könnte ja auch solchen Code Schreiben:

    #include <iostream>
    using namespace std;
    int main(int argc, char* argv[]){
      while(!(*(++argv[0])=='\0'));
      while(!(*(--argv[0])=='/' )); // für windows '\\'
      cout << ++argv[0]; }
    

    Funktioniert prächtig aber ist kein guter Programmierstil, da meine ich damit. 😉



  • Bei boolschen Ausdrücken und die, die in welche implizit umgeformt werden können, ist es durchaus üblich den Vergleich weg zu lassen.

    Ist natürlich auf eine Art Definitionssache, wie mans macht. Es gibt ja auch noch diejenigen, die deinem Beispiel folgen aber das dann noch "sicherer" gestalten wollen:

    while(true == Wiederholen)
    

    Was dann aber imo wieder nicht unbedingt intuitiv gut lesbar ist. Was dann wieder zu dieser Variante führt:

    while ( Wiederholen )
    

    Welche meiner Meinung nach sehr lesbar ist und den üblichen =-Fehler vermeidet.



  • Bei boolschen Ausdrücken prüfe ich nie explizit auf true oder false , und ich denke, dass das durchaus kein schlechter Programmierstil ist.

    Schlechten Stil finde ich eher sowas:

    int var = func();
    if (var) // statt if (var != 0)
    

    Auch dass man ein Literal vor den operator== setzt, um den Anfängerfehler = statt == zu vermeiden, gefällt mir persönlich überhaupt nicht. Ich mach das nie, und ich mag mich nicht an das letzte Mal erinnern, dass ich diesen Fehler begangen habe. Aber das muss ja jeder selber wissen...


Anmelden zum Antworten