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



  • offtopicdetector schrieb:

    ist das hier nicht alles ein klein wenig off-topic?
    😃

    Ich glaube, der TE hat bereits kapiert, wie das Programm aussehen muss.

    Ich habe hier den "entscheidenden" Tipp gegeben.



  • volkard schrieb:

    Kam das aus dem Wissen über den Zweck der Funktion oder hab ich's schlicht übersehen?

    Nein, es hing mit dem Wissen zusammen, was die Funktion macht.

    auto w = abs( mCamera->getPosition().x ),
           ...
        -longer * w / distance,
    

    ➡

    auto w = mCamera->getPosition().x,
           ...
        longer * w / distance,
    

    Der Witz ist... mCamera->getPosition().x ist immer negativ. Die Kamera bleibt nur auf der einen Seite. 🤡

    Jede Funktion wird nach jeder Änderung nochmal im Ganzen kurz angeschaut, ob die Änderung nicht Folgeverbesserungen aufdrängt.
    Jede Funktion, die zufriedenstellen läuft, wird nochmal angeschaut.
    Also Laufendes Refactoring. Direkte Müllvermeidung.

    Ja, so mache ich es eigentlich. Nur dass ich nicht ganz so genau hinsehe. 👍

    Und dann bitte nicht in Größenwahn verfallen. Nur weil Du ein halbes Jährchen weiter bist als mancher Nube, weil Du 20 IQ-Punkte mehr hast, das ist alles kein Grund, aus einer Code-Mücke einen Elefanten zu machen. Wenn SeppJ was anmeckert, dann aus Erfahrung, er hat den Fehler schon gemacht. Er kennt die Untiefen. Er weiß, wohin, wohin der Nube steuert und versucht, zu lenken. Bei Dir erscheint es mir voll oft, daß Du nur planlos ruft, welche Warnschilder Du schonmal gesehen hast, die so laut wie SeppJ zu rufen, führt aber nur dazu, daß der Nube dann an den Banden wie ein Flipperball umherhopst.

    Wait what?



  • offtopicdetector schrieb:

    ist das hier nicht alles ein klein wenig off-topic?
    😃

    Schon.
    Aber der "Spaß mit Früchten" ist vollständig geklärt. Danach dürfen Threads abweichen.



  • Sone schrieb:

    Wait what?

    Kannste man schnell "die 36 kammern der shaolin" aus dem stream gucken?
    Und "Karate Kid"?



  • volkard schrieb:

    Sone schrieb:

    Wait what?

    Kannste man schnell "die 36 kammern der shaolin" aus dem stream gucken?

    Sag, Volkard, hast du schon wieder ein paar Met über den Durst getrunken? 😃

    Oder was willst du mir sagen?
    Edit: Ahh, doch nicht etwa willst du mir den Kontrast der Qualität der beiden Filme aufzeigen?



  • Sone schrieb:

    volkard schrieb:

    Sone schrieb:

    Wait what?

    Kannste man schnell "die 36 kammern der shaolin" aus dem stream gucken?
    Und "Karate Kid"?

    Klar. Bis morgen früh?
    Wait what?

    Der Zeitrahmen zum Schauen ist Deine Wahl. Sagen wir mal bis Sonntag, damit ich noch interessiert bin.

    Und danach hast Du genau zwei Möglichkeiten.

    edit: volkard@normannia.de
    Falls behaglich wechseln wir den Kanal.



  • edit: volkard@normannia.de
    Falls behaglich wechseln wir den Kanal.

    So sei es.



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




Anmelden zum Antworten