Brauche dringend Hilfe bei einem Programm!



  • Hi Leute,

    ich sitz jetzt schon ein paar Stunden an nem Programm, hab auch schon etliche Seiten durch gegoogelt, aber ich komm einfach nicht auf die Lösung! Wär super, wenn mir jemand hier helfen könnte!

    Hier die halsbrecherische, zähneausbeißende Frage:

    Ein Unternehmen beliefert n Kunden an unterschiedlichen Orten. Die Orte sind durch Koordinaten xi, yi gegeben. Für die Koordinaten des i-ten Kunden gilt:

    xi = 10km - i/10 ; yi = 10km * i/5

    Der erste Kunde hat die Koordinaten x1 = 10km : 1/10 = 1km ; y1 = 10km * 1/5 = 2km
    und der 5te Kunde: x5 = 10km : 5/10 = 5km; y5 = 10km * 5/5 = 10km

    Das Unternehmen selbst hat die Koordinaten (x0, y0) = (0,0;0,0). Die Anzahl n der Kunden soll variabel sein und zu Beginn des Programms eingegeben werden!

    a) Legen sie Felder an, in der für die Kunden die Koordinaten und die Abstände gespeichert werden!

    Legen sie eine Struktur an, in der für die Kunden die Koordinaten und Abstände gespeichert werden können!

    b) Berechnen sie den durchschnittlichen Abstand der Kunden von dem Unternehmen.

    c) Geben sie für jeden Kunden den Abstand zum Unternehmen aus.

    Ich bedanke mich schon Mal für eure Mithilfe, wär super, wenn ihr mir wenigstens bei einer der Aufgaben helfen könntet!

    Danke 🙂


  • Mod

    Thomas88 schrieb:

    ich sitz jetzt schon ein paar Stunden an nem Programm, hab auch schon etliche Seiten durch gegoogelt,

    Auch wenn googeln durchaus bei realen Problemen eine gute Lösung ist, ist bei Hausaufgaben vielleicht eine selbstständigere Vorgehensweise besser

    aber ich komm einfach nicht auf die Lösung! Wär super, wenn mir jemand hier helfen könnte!

    Dann zeig doch mal, was du in deinen Stunden des Nachdenkens gemacht hast. Irgendeinen Ansatz oder Gedankengang musst du doch gehabt haben?



  • xi = 10km - i/10 ; yi = 10km * i/5

    Wie kann man nur so dämliche Aufgaben stellen. Naja...
    Schau dir mal an was ein Kunde ist. In deiner Anwendung hat ein Kunde nur eine Koordinate, und eine Koordinate hat einen Wert für x und für y. Damit man mit Koordinaten schön rechnen kann, kann man in C++ Operatoren überladen.

    #include <algorithm>
    #include <vector>
    #include <iterator>
    
    struct Koordinate
    {
    public:
    	Koordinate(double x, double y) :
    		x_(x), y_(y)
    	{}
    
    	Koordinate& operator-=(const Koordinate& rh)
    	{
    		x_ -= rh.x_;
    		y_ -= rh.y_;
    		return *this;
    	}
    
    	double Betrag() const
    	{
    		return std::sqrt(x_*x_ + y_*y_);
    	}
    
    private:
    	double x_, y_;
    };
    
    Koordinate operator-(Koordinate lh, const Koordinate& rh)
    {
    	lh -= rh;
    	return lh;
    }
    
    class Kunde
    {
    public:
    	Kunde(const Koordinate& position) :
    	  position_(position)
    	{}
    	const Koordinate& Position() const
    	{
    		return position_;
    	}
    private:
    	Koordinate position_;
    };
    

    So, dann musst du irgendwo die dämliche Regel abbilden, wo die Kunden wohnen. Kann man im Konstruktor von Kunde machen, ich würde die Verantwortlichkeit über diese wichtige Regel aber dem Kunden abnehmen. Hier einfach mal durch eine simple Funktion.

    Kunde GibKundeNachDaemlicherAufgabenRegel()
    {
    	static size_t i = 0;
    	Kunde k(Koordinate(10 - 0.1 * i, 2 * i));
    	++i;
    	return k;
    }
    

    Wie rechnet man den Abstand von Kunde irgendwo hin

    double Abstand(const Kunde& k, const Koordinate& wohin)
    {
    	return (k.Position() - wohin).Betrag();
    }
    

    Und dann das ganze benutzen:

    int main(int argc, char* argv[])
    {
    	std::vector<Kunde> kunden;
    	// einlesen wie viele kunden
    	size_t anzahl = 10;
    	std::generate_n(std::back_inserter(kunden), anzahl,
    		GibKundeNachDaemlicherAufgabenRegel);
    	// schreib mal selber weiter
    	return 0;
    }
    

    Ja, mir ist langweilig.



  • Bedanke mich auf jeden Fall schon Mal dafür! Den ersten Teil hätt ich mit viel Mühe vllt noch hingekriegt, aber den Rest ganz sicher nicht mehr!

    Danke 🙂



  • Bin das grad nochmal durch gegangen und ich geb Dir Recht, die Aufgabe IST Mist! Aber... das mit den Koordinaten passt doch oder wie meinste das?



  • Ich meinte nur dass es völlig sinnfrei ist, dass eine Formel die Lage von Kunden angibt. Statt Kunde hätte man genauso gut auch Salami sagen können und den Abstand zur Wurstfachverkäuferin berechnen lassen, der immer die 3.Wurzel aus dem Fettgehalt der daneben liegenden Fleischwurst ist. Das wär ungefähr genauso sinnvoll gewesen. Oder man könnte sich auch ein bischen Mühe geben, schöne Aufgaben zu stellen.



  • ='D

    Alles klar, danke auf jeden Fall für Deine Hilfe!


Anmelden zum Antworten