Spaß mit Früchten (war: C++ programm)



  • Doch genauso fängt jeder an... die ersten Schritte... vor allem wenn man mit Skripten aus dem Unterricht arbeitet... dafür können die Schüler ja nichts, sie wissen es ja (zu diesem Zeitpunkt) nicht besser. Vielleicht solltest du deine Beiträge an das C++-Niveau des TE anpassen

    Danke das wenigstens jemand verständnhat für die leute die wirklich gerade anfangen zu lernen. 🙂

    Ich poste mal meinen code :

    #include <iostream>
    
    using namespace std;
    
    int main() {
        string fruechte[5] = {"Ananas", "Apfel", "Banane", "Birne", "Blaubeere"};
    
        for (int i = 0; i < 5; i++) {
    
                if (fruechte[i][i+1] ==  a ) {
    
                    cout << fruechte[i] << endl;
    
    }
    
    }
    
    }
    

    Ich weiss das der code falsch ist, aber ich verstehe nicht wie ich es als code ausdrücken soll wenn ich schauen will ob der zweite buchstabe ein a ist.

    Vielleicht könnt ihr mir ja paar tips geben?



  • array24 schrieb:

    if (fruechte[i][i+1] ==  a ) {
    

    Direkt aufgefallen ist mir nur das.

    if (fruechte[i][i+1] ==  'a' ) {
    


  • Danke das wenigstens jemand [V]erständn[is ]hat für die [L]eute die wirklich gerade anfangen zu lernen.

    Tut mir Leid, falls ich grob war.

    Ich weiss das der code falsch ist, aber ich verstehe nicht wie ich es als code ausdrücken soll wenn ich schauen will ob der zweite buchstabe ein a ist.

    Das habe ich bereits erklärt, ist ja leider in der Offtopic-Flut untergegangen 😃

    Ersetze einfach [die Bedingung deiner] Abfrage durch die Richtige:
    fruechte[i][1] == 'a'
    Dann funktioniert auch der Code aus deinem Ausgangspost.

    Wenn du auf den zweiten Buchstaben eines Strings zugreifen willst, musst du string[1] schreiben.

    Und weil string in deinem Fall das i -te Element des Arrays ist, also als Ausdruck fruechte[i] , schreibst du fruechte[i][1] .

    Edit: Volkard, war das jetzt die rein syntaktische Korrektur, oder will der TE tatsächlich was anderes als ich denke?



  • #include <iostream>
    
    using namespace std;
    
    int main() {
        string fruechte[5] = {"Ananas", "Apfel", "Banane", "Birne", "Blaubeere"};
    
        for (int i = 0; i < 5; i++) {
    
                if (fruechte[i][i+1] ==  'a' ) {
    
                    cout << fruechte[i] << endl;
    
    }
    
    }
    
    }
    

    Danke leute ich werde mich wohl bald wieder melden wenn ich bei dieser AUfgabe nicht weiter komme.
    Obwohl die Aufgabe ja irgendwie schon gelöst ist.

    P:S

    Die antwort zur frage ist tatsächlich irgendwie untergegangen 😃

    Hätte nie gedacht das der thread so viel diskussion auslöst. 😃

    Wenigstens wars lustig.



  • @array24,

    Dein Code ist immer noch nicht korrekt.
    Vertausche mal Apfel und Banane, und schau was passiert.



  • Sone schrieb:

    Edit: Volkard, war das jetzt die rein syntaktische Korrektur, oder will der TE tatsächlich was anderes als ich denke?

    Nur Syntax, ohne über was anderes nachzudenken.



  • Meensch Jung, mach das doch vernünftig, Funktionalitäten auslagern und so...

    #include <iostream>
    #include <string>
    using namespace std;
    
    bool has_char_at ( const string& str, char c, unsigned pos )
    {
    	if ( pos < str.length( ))
    		return c == str[pos];
    	return false;
    }
    
    int main ( void )
    {
    	char c = 'a';
    	int pos = 1;
    	string fruechte[] = { "Ananas", "Apfel", "Banane", "Birne", "Blaubeere", "Kartoffel" };
    
    	for ( int i = 0; i < fruechte->size(); i++ )
    		if ( has_char_at ( fruechte[i], c, pos ))
                cout << fruechte[i] << endl;
    	return 0;
    }
    


  • Nach dem soviel Off-Topic Gedöngs kam, können die Trolle nicht barmherzig sein und den TE in Ruhe lassen?



  • ich sehe hier zurzeit nur einen, registrierten troll sein unwesen treiben.
    btw.
    http://www.duden.de/suchen/dudenonline/Gedöns



  • trolldetector schrieb:

    ich sehe hier zurzeit nur einen, registrierten troll sein unwesen treiben.
    btw.
    http://www.duden.de/suchen/dudenonline/Gedöns

    Meinst du c2010?
    (Das ich mit zur Off-Topic Diskussion beitrug kann nicht als Troll-Aktion angesehen werden, weil das Thema zu diesem Zeitpunkt eigentlich abgeschlossen war. Dass der TE jetzt wieder fragt, liegt daran, dass er die Tipps nicht achtet)
    ~Im Übrigen ist es ziemlich ironisch, mich wegen einem kleinen, unbedeutenden orthographischen Fehler auf den Duden zu verweisen und dabei nicht einmal die Groß- und Kleinschreibung zu beherrschen.~

    Obwohl die Aufgabe ja irgendwie schon gelöst ist.

    Aber dein Code ist doch immer noch falsch! Du hast die Abfrage nicht so abgeändert wie ich dir geraten habe.
    Die Aufgabenstellung ignorierst du wohl auch, sonst würdest du nicht sagen, der Code wäre schon (irgendwie) gelöst.
    Wenn du nicht hörst, kann dir auch nicht geholfen werden.



  • #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main() {
    
        char Eingabe;
    
        cin >> Eingabe;
    
        cout << "(A)alle Fruechte, die an 2. Stelle ein a haben, ausgeben " << endl;
    
        cout << "(B) aus dem Apfel eine Apfelsine machen, alten und neuen Wert ausgeben" << endl;
    
        cout << "(C)alle Fruechte, deren Name länger als 8 Zeichen ist, ausgeben " << endl;
    
        cout << " (D) (freiwillig) alle Fruechte, die im Namen beere haben,den Bestandteil ohne beere ausgeben" << endl;
    
        string fruechte[5] = {"Ananas", "Apfel", "Banane", "Birne", "Blaubeere"};
    
    switch(Eingabe) {
    
        case 'a':
    
            Eingabe = 'A';
    
        for (int i = 0; i < 5; i++) {
    
                if (fruechte[i][1] ==  'a' ) {
    
                    cout << fruechte[i] << endl;
    
    }
    
    }
    
      break;
    
        case'b':
    
        Eingabe = 'B';
    
           int tmp;
    
             string fruechte  = "Apfel";
    
            fruechte == "Apfelsine";
    
            fruechte == tmp;
    
            cout << tmp << endl;
    
            break;
    
      defaul:
    
      break;
    
    }
    }
    

    Ich hab versucht das string frucht zu verändern und dann in eine neue variable einzulesen und diese Auszugeben .

    Was mache ich falsch ?

    Ich komme seit stunden nicht auf den Fehler.

    Bitte um tipps.



  • array24 schrieb:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main() {
    
        char Eingabe;
    
        cin >> Eingabe;
    
        cout << "(A)alle Fruechte, die an 2. Stelle ein a haben, ausgeben " << endl;
    
        cout << "(B) aus dem Apfel eine Apfelsine machen, alten und neuen Wert ausgeben" << endl;
    
        cout << "(C)alle Fruechte, deren Name länger als 8 Zeichen ist, ausgeben " << endl;
    
        cout << " (D) (freiwillig) alle Fruechte, die im Namen beere haben,den Bestandteil ohne beere ausgeben" << endl;
    
        string fruechte[5] = {"Ananas", "Apfel", "Banane", "Birne", "Blaubeere"};
    
    switch(Eingabe) {
    
        case 'a':
    
            Eingabe = 'A';
    
        for (int i = 0; i < 5; i++) {
    
                if (fruechte[i][1] ==  'a' ) {
    
                    cout << fruechte[i] << endl;
    
    }
    
    }
    
      break;
    
        case'b':
    
        Eingabe = 'B';
    
           int tmp;
    
             string fruechte  = "Apfel";
    
            fruechte == "Apfelsine";
    
            fruechte == tmp;
    
            cout << tmp << endl;
    
            break;
    
      defaul:
    
      break;
    
    }
    }
    

    Ich hab versucht das string frucht zu verändern und dann in eine neue variable einzulesen und diese Auszugeben .

    Was mache ich falsch ?

    Ich komme seit stunden nicht auf den Fehler.

    Bitte um tipps.

    wie wärs wenn du deinen kot noch weiter in die länge ziehst, so ca. 20 bis 50 Leerzeilen pro codezeile, damit gar keine sau mehr nen überblick hat?





  • array24 schrieb:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main() {
    
        char Eingabe;
    
        cin >> Eingabe;
    
        cout << "(A)alle Fruechte, die an 2. Stelle ein a haben, ausgeben " << endl;
    
        cout << "(B) aus dem Apfel eine Apfelsine machen, alten und neuen Wert ausgeben" << endl;
    
        cout << "(C)alle Fruechte, deren Name länger als 8 Zeichen ist, ausgeben " << endl;
    
        cout << " (D) (freiwillig) alle Fruechte, die im Namen beere haben,den Bestandteil ohne beere ausgeben" << endl;
    
        string fruechte[5] = {"Ananas", "Apfel", "Banane", "Birne", "Blaubeere"};
    
    switch(Eingabe) {
    
        case 'a':
    
            Eingabe = 'A';
    
        for (int i = 0; i < 5; i++) {
    
                if (fruechte[i][1] ==  'a' ) {
    
                    cout << fruechte[i] << endl;
    
    }
    
    }
    
      break;
    
        case'b':
    
        Eingabe = 'B';
    
           int tmp;
    
             string fruechte  = "Apfel";
    
            fruechte == "Apfelsine";
    
            fruechte == tmp;
    
            cout << tmp << endl;
    
            break;
    
      defaul:
    
      break;
    
    }
    }
    

    Ich hab versucht das string frucht zu verändern und dann in eine neue variable einzulesen und diese Auszugeben .

    Was mache ich falsch ?

    Ich komme seit stunden nicht auf den Fehler.

    Bitte um tipps.

    warte, mast0r sone kommt gleich, der fixt dir das



  • Der Code enthält einige syntaktische Fehler, wie das fehlende 't' bei dem default (Zeile 83).

    Wenn man den Code ordentlich formatiert kommt man auf

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
    	char Eingabe;
    
    	cin >> Eingabe;
    
    	cout << "(A)alle Fruechte, die an 2. Stelle ein a haben, ausgeben " << endl;
    
    	cout << "(B) aus dem Apfel eine Apfelsine machen, alten und neuen Wert ausgeben" << endl;
    
    	cout << "(C)alle Fruechte, deren Name länger als 8 Zeichen ist, ausgeben " << endl;
    
    	cout << " (D) (freiwillig) alle Fruechte, die im Namen beere haben,den Bestandteil ohne beere ausgeben" << endl;
    
    	string fruechte[5] = {"Ananas", "Apfel", "Banane", "Birne", "Blaubeere"};
    
    	switch(Eingabe)
        {
        case 'a':
    
            Eingabe = 'A';
    
            for (int i = 0; i < 5; i++)
                    if (fruechte[i][1] ==  'a' )
                            cout << fruechte[i] << endl;
            break;
    
        case'b':
    
            Eingabe = 'B';
            int tmp;
    
            string fruechte  = "Apfel";
            fruechte == "Apfelsine";
            fruechte == tmp;
    
            cout << tmp << endl;
    
            break;
        }
    }
    

    Anscheinend hast du einige Sachen missverstanden.
    Was denkst du soll bspw. die Zeile

    fruechte == "Apfelsine";
    

    bewirken?
    Oder

    Eingabe = 'A';
    

    ?

    Ich hab versucht das string frucht zu verändern und dann in eine neue variable einzulesen und diese Auszugeben .

    Meinst du mit einlesen zuweisen?
    Und wie wolltest du den String verändern?

    Ich gebe dir den dringenden Rat, dir ein gutes Grundlagenbuch zu holen. Näheres findest du hier.





  • TIPP:
    In eine Schleife alle gewünschte Aktionen solagen ausführen bis für das "Progamm/Schleife beeden" eine gewünschte Taste oder Tastenkombination gedrückt worden. Sonst für neuen Auswahl muß man immer wieder deine Anwendung neu starten.



  • Ewald02 schrieb:

    FYI:
    Beiträge im Informatikerboard

    lol



  • Nathan schrieb:

    Ewald02 schrieb:

    FYI:
    Beiträge im Informatikerboard

    lol

    Ich hätte das selbe getan.
    Nach so einem Offtopic-Gerede wie diesem hier...

    Aber gelernt hat er wohl noch nix - weder hier, noch im anderem Forum 😃



  • Klarinette schrieb:

    Nathan schrieb:

    Ewald02 schrieb:

    FYI:
    Beiträge im Informatikerboard

    lol

    Ich hätte das selbe getan.
    Nach so einem Offtopic-Gerede wie diesem hier...

    Hier hat er 12 Stunden später den Thread eröffnet.


Anmelden zum Antworten