wegstrecke

Status
Nicht offen für weitere Antworten.

arsenal

Mitglied
Hi ich bin totaler anfänger und soll folgendes machen. einen Spaziergang simulieren.
bis jetzt hab ich das gemacht:

Code:
        int schritte;
		
		 
		 IO.write("Anzahl von Schritten? (Abbruch mit >=0): "); 
		 schritte = IO.readIntLn();
		 
		if(schritte <= 0) {
		IO.writeLn("Programmabbruch");
		 }
		 		 
		 double x = -1 + (Math.random()*2); 		 
		 double y =-1 + (Math.random()*2);	 
		 IO.writeLn( "Endposition(x,y): "  + x + "," + y);
		 
		 
		double pythagorasWeg = Math.sqrt((x*x) + (y*y));
		IO.writeLn("Der zurückgelegte Weg der Ameise beträgt: " + pythagorasWeg);
		 
		
		 double pythagorasDistanz = Math.sqrt ( ((x-0)*(x-0)) + ((y-0)*(y-0)) );	 
		 IO.writeLn("Distanz von (0,0): " + pythagorasDistanz);


Folgendes soll berechnet werden: Beispiel:
Anzahl von Schritten? (Abbruch mit <= 0): 5
Endposition (x,y): 2.822310481842301, 1.0743453785032184
Der zurückgelegte Weg der Ameise beträgt: 4.276122817510345
Distanz von (0,0): 3.0198765617535006
Anzahl von Schritten? (Abbruch mit <= 0): 0

irgendwie komme ich nicht weiter, wie berechne ich die Wegstrecke nach Pythagoras? ich weiss dass die Formel: sqrt ( (x2-x1)^2 + (y2-y1)^2 ) wäre. ich hab hier aber nur die variablen x und y. ich glaub ich bins irgendwie falsch angegangen oder? sollte zufallszahlen aus x1, x2, y1, y2 erstellen oder?



Für Hilfe bin ich sehr dankbar!

Lg
 
S

SlaterB

Gast
die eingelesene Anzahl schritte hat keinen Einfluss auf das Programm?

wieso hat Spaziergehen etwas mit Pythagoras zu tun?
das kann niemand nachvollziehen

wenn du x2 oder x1 oder sonstwas brauchst,
dann definiere dir doch x2 = 50.000;
falls es kein beliebiger Wert sein soll, sondern es irgendwelche Regeln gibt, die mit dem Programm zu tun haben,
dann musst du diese natürlich befolgen,

externe können da wenig helfen, solange du nicht erklärst, worum es geht,

schalte am besten den Computer aus und rechne einen Ablauf auf einem Blatt Papier durch,
dann erkläre dieses Beispiel in deutscher Sprache, statt in Code
 

arsenal

Mitglied
tut mir leid, wenn ich mich unverständlich ausgedrückt habe.
Die Aufgabe lautet:
Die Ameise startet an Position X0=0.0, Y0=0.0 und bewegt sich dann Schritt
für Schritt auf der Ebene weiter. Jeder Schritt ist eine Zufallszahl kleiner Grösse – nehmen Sie an,
dass die Ameise verwirrt ist, und die Richtung für jeden Schritt zufällig wählt.
Die Position der Ameise wird durch 2 Variablen repräsentiert, die sich in jedem Schritt um einen
zufälligen Wert im Bereich [-1.0, 1.0] pro Dimension ändern.
Das Programm soll nach einer bestimmten Anzahl von Durchläufen, die beim Programmstart
abgefragt wird, stoppen und folgende Daten ausgeben:
Endkoordinaten X, Y, Zurückgelegter Weg (Summe der Wegstrecken), Distanz vom Ursprungspunkt (direkte Verbindung)
Zur Berechnung des zurückgelegten Weges bzw. der Distanz verwenden Sie die Formel von
Phythagoras.

ich weiss dass mein Programm nicht fertig ist, ich arbeite daran. Ich bin mir nur total unsicher wie ich die Wegstrecke berechnen soll, wenn ich nur die Variablen x und y habe. die Formel wäre doch sqrt ( (x2-x1)^2 + (y2-y1)^2) !?
 
S

SlaterB

Gast
x und y sind der Endunkt, quasi x2/y2,
x1/y1 ist der Ausgangspunkt,

da dieser 0/0 ist, ist x2-x1 = x2-0 immer gleich x2, kannst also gleich weglassen,
insofern sieht

> double pythagorasWeg = Math.sqrt((x*x) + (y*y));
schon recht gut aus

allerdings musst du das wohl pro Schritt einzeln rechnen, denn die Ameise kann ja die Richtung wecheln,
dann wirds doch nix mit 0/0 und weglassen, du musst also die Position vor und nach der Bewegung kennen

x und y sind dann auch nicht der Endpunkt sondern nur die Bewegung,
das ist wiederum gut, denn dann reicht doch wieder
> double pythagorasWeg = Math.sqrt((x*x) + (y*y));
;)

Ausgang: x1/y1
Ende: x2/y2 = x1+x/y1+y

->

double pythagorasWeg
= Math.sqrt(((x2-x1)*(x2-x1)) + ((y2-y1)*(y2-y1)));
= Math.sqrt((((x1+x)-x1)*((x1+x)-x1)) + ((y1+y)-y1)*((y1+y)-y1)));
= Math.sqrt((x*x) + (y*y));
wenn x und y die Wegstrecke sind
 

arsenal

Mitglied
Danke für die ausführliche Erklärung. Was ist dann mit der Distanz, da kommt dann ja dasselbe raus wie bei der Wegstrecke?!

bin schon leicht verwirrt von den ganzen Formeln! ich glaub, ich denke zu kompliziert :)

Da da Programm mehrere Schritte durchlaufen soll, verwende ich eine While Schleife.
 
S

SlaterB

Gast
> Was ist dann mit der Distanz, da kommt dann ja dasselbe raus wie bei der Wegstrecke?!

das sind beides nur Wörter, die in erstmal synonym einordne, ja
 
Status
Nicht offen für weitere Antworten.

Oben