Helft mir bitte



  • std::vecotr nutzen und darüber iterieren,
    ein Array verwenden (nehme an das dies so sein soll wegen fester max. länge) , zähler mitlaufen lassen , der dann weiß wieviele Punkte eingegeben wurden.



  • Das habe ich verstanden mit do...

    aber wieso kann ich das nicht so umschreiben

    do
    {
       std::cout << "Nochmal (Ja) ?: ";  // Frage stellen
       std::cin >> eingabe;   // Eingabe abwarten
    }
    while(eingabe != "J" || eingabe != "j" || eingabe != "N" || eingabe != "n" );  // wenn nicht mit Ja beantwrotet, dann zum Schleifenbeginn
    }
    

    wenn ich dann j oder J eingebe macht er immer weiter. Seltsam



  • Gib Dir wenigstens die Mühe und schau Dir mal an was Du da machst



  • Bitte genauer lesen! Ein Punkt ist ein Paar, kein einzelner Wert und ganz sicher kein char. Das steht sowohl in der Aufgabenstellung als auch hier im Thread.

    Eigentlich mach ich ja nicht für andere Leute die Aufgaben, aber ausnahmsweise hier mal ein Grundgerüst.

    #include <iostream>
    #include <string>
    
    int main()
    {
        int Anzahl;
        std::cout << "Anzahl der Punkte: ":
        std::cin >> Anzahl;
    
        if (Anzahl<3)
            Anzahl = 3;
    
        double Laenge = 0;
    
        double x0, y0; // erster Punkt (für Längenberechnung geschlossenes Poly benötigt)
        double x1, y1; // vorheriger Punkt
    
        for (int i=0; i<Anzahl; ++i)
        {
           double x, y;
           // ToDO: hier einen Punkt in (x, y) einlesen
    
           if (i==0)
           {
               // Ersten Punkt merken
               x0 = x;
               y0 = y;
           }
           else
           {
              // ToDo: Distanz zwischen den beiden Punkten (x, y) und (x1, y1) berechnen (Pythagoras)
              // ToDo: Ergebnis zu Laenge hinzuaddieren
           }
    
           // Punkt merken
           x1 = x;
           y1 = y;
    
           if (i>=2)
           {
               char weiter;
               // ToDo: In einer while-Schleife Eingabe abfragen, bis 'j', 'n', 'j' oder  'N' eingegeben wird (einlesen erfolgt in die Variable weiter
    
               if (weiter=='n' || weiter=='N')
                   break;
           }
        }
    
        // ToDo: Ausgabe: Länge für offenes Poly steht in Länge
        // ToDo: Ausgabe: Länge für geschlossenes Poly ist gleich Länge offenes Poly plus Entfernung zwischen (x0, y0) und (x1, y1)
    }
    


  • Habe ich wirklich wenn Eingabe ungleich Ja ist dann bricht er ab aber die kann ich doch durch || miteinander verbinden



  • @Knuddlbaer: Es gibt eigentlich keinen Grund sich die Punkte zu merken. Mach braucht immer nur den aktuellen, den davor und für geschlossene Polygone noch den allerersten.



  • Vielen herzlichen ddank dafür



  • dns schrieb:

    Habe ich wirklich wenn Eingabe ungleich Ja ist dann bricht er ab aber die kann ich doch durch || miteinander verbinden

    Nein, || ist ein logisches ODER, das logische UND schreibt sich &&



  • Wenn ich 5 oder eine var. Zahl bei deinem Progrmm eingebe errechnet er nix



  • Hallo

    dns86 schrieb:

    Wenn ich 5 oder eine var. Zahl bei deinem Progrmm eingebe errechnet er nix

    Hast du dich neu registriert?

    chrische



  • Ja wieso?



  • dns schrieb:

    Ja wieso?

    Weil es sehr irritierend und auch "bad style" ist, mit mehreren Usern im selben Forum zu arbeiten (gilt generell)....

    Gruß,

    Simon2.



  • Intressant ich heisse nur dns und habe mich gestern hier angemeldet, natürlich bin ich auch bei anderen foren angemeldet aber hier nur einmal ⚠ ⚠ ⚠



  • Zur Antwort auf:

    dns schrieb:

    Intressant ich heisse nur dns und habe mich gestern hier angemeldet, natürlich bin ich auch bei anderen foren angemeldet aber hier nur einmal ⚠ ⚠ ⚠

    ==>

    chrische5 schrieb:

    Hallo

    dns86 schrieb:

    Wenn ich 5 oder eine var. Zahl bei deinem Progrmm eingebe errechnet er nix

    Hast du dich neu registriert?

    chrische

    dns schrieb:

    Ja wieso?

    Das legt sehr nahe, dns und dns86 wären dieselbe Person hinter zwei unterschiedlichen Nicks ....
    (Oder wieso antwortet dns auf eine Frage, die dns86 gestellt wurde ?)

    Gruß,

    Simon2.



  • Ach das meinst du ich habe mich falsch angemeldet entschuldigung - habe ich nicht gemerkt



  • dns schrieb:

    Ach das meinst du ich habe mich falsch angemeldet entschuldigung - habe ich nicht gemerkt

    Also doch zweimal registriert ... 😉

    Gruß,

    Simon2.


Anmelden zum Antworten