Differentialgleichung (schiefer Wurf)

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Differentialgleichung (schiefer Wurf)

Beitrag von cloidnerux » So Apr 06, 2014 5:37 pm

ich verstehs so halbwegs,aber jetz mal eine blöde Frage warum spielt die Erdbeschleunigung eigentlich nirgendwo eine Rolle??
Weil es deine Aufgabe ist, das zu programmieren :D
Ich hab nur schnell was zusammengetippt, damit ich das Konzept verdeutlichen konnte.
und von wo weiß das Programm dass der Ball noch nicht am Boden ist??
Das ist für die Berechnung unerheblich. In dieser Version wird über den kompletten Zeitrahmen(5s) berechnet, auch wenn der Ball "durch den Boden" durch fällt.
Du kannst ja mal überlegen, welche Bedingung erfüllt sein muss, um die Berechnung zu beenden.

Ich habe es so gelöst, dass ich nochmal durch das Array iteriere.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Differentialgleichung (schiefer Wurf)

Beitrag von Lämpi » So Apr 06, 2014 5:44 pm

ok ich hab den Array jetzt verstanden was der macht,das ist jetzt klar.

Aber was ist z.b das posX[Zeit] ????? Ich glaub ich lass das lieber,ist Arsch kompliziert :D ,und frag den Prof mal.

Das mit dem Boden check ich echt nicht,er muss doch irgendwie wissen wann der Boden kommt , häää ich bin durcheinander :oops:

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Differentialgleichung (schiefer Wurf)

Beitrag von cloidnerux » So Apr 06, 2014 5:55 pm

Aber was ist z.b das posX[Zeit] ????? Ich glaub ich lass das lieber,ist Arsch kompliziert :D
Es ist nicht kompliziert, es ist halt ein neues Konzept.
Die Idee ist das ein Array aus einer Anzahl Variablen besteht, auf die man zugreifen kann. Der Zugriff geschieht über einen Index. Das ist die Zahl die man in die eckigen Klammern einträgt.
Aber diese Zahl muss nicht ausgeschrieben sein, es kann auch eine Variable sein. Wie es hier der Fall ist.
Das mit dem Boden check ich echt nicht,er muss doch irgendwie wissen wann der Boden kommt , häää ich bin durcheinander :oops:
Du denkst zu Praktisch. Mathematisch gesehen werden hier Zahlen Addiert und Multipliziert, das kann ewig weiter gehen. Das der Ball auf dem Boden aufkommt, erkannt man rechnerisch nur daran, dass die y-Position, 0 wird.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Differentialgleichung (schiefer Wurf)

Beitrag von Lämpi » So Apr 06, 2014 6:09 pm

Sorry, tut mir leid das geht mir nich in den Schädel.Auf dem Papier lös ich jedes schiefe Wurf beispiel ohne Probleme,das ist mir schon klar das beim Aufprall y=0 ist und x maximal.

aber das posX[Zeit] das Zeit in der Klammer das wurde doch nirgends deklariert,was soll den das Aussagen ?? Wohin greift der Array da zu?? Ein Array ist doch eine Ansammlung von verschiedenen Datentypen beim bsp. sind es 1000 double jeweils,aber die Zeit ist ja kein double??

wenn ich die Erdbeschleunigung einbeziehen will dann bekomm ich doch Probleme ,denn beim ersten iterationsschritt

vy=vy[i-1]*1 da wirkt ja die Erdbeschleunigung noch nich , denn da wird ja gerade erst abgeworfen

bin ich jetzt ganz doof :)

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Differentialgleichung (schiefer Wurf)

Beitrag von Lämpi » So Apr 06, 2014 7:17 pm

mir stimmt der erste Wert nicht,wenn ich die Erdbeschleunigung dazu nehme und das mach dann die Rechnung falsch,

denn bei vy=v[i-1]*1-9.81*dt ist beim ersten iterationsschritt 10-9.81*dt und das ist ja falsch ,ich hätte gerne das da nur 10 steht was ja korrekt wäre,wie mach ich das am besten??

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Differentialgleichung (schiefer Wurf)

Beitrag von cloidnerux » So Apr 06, 2014 7:41 pm

aber das posX[Zeit] das Zeit in der Klammer das wurde doch nirgends deklariert,was soll den das Aussagen ?? Wohin greift der Array da zu?? Ein Array ist doch eine Ansammlung von verschiedenen Datentypen beim bsp. sind es 1000 double jeweils,aber die Zeit ist ja kein double??
Du hast das Konzept von Arrays noch nicht verstanden.
Eine Variable ist ein Stück Speicher, in dem ein Wert steht. Ein Array ist eine Aneinandereihung vieler solcher Variablen. Und wenn du auf die 30ste zugreifen willst, musst du deinem Computer mitteilen, dass du auf das 30ste Element zugreifen willst. Und das ist die Operation die du mit den eckigen Klammern machst. Daher muss der Datentyp der Indexoperation auch Ganzzahlig(int) sein.
vy=vy[i-1]*1 da wirkt ja die Erdbeschleunigung noch nich , denn da wird ja gerade erst abgeworfen

bin ich jetzt ganz doof :)
Nicht ganz. Dieses Problem wird geschickt umgangen, indem man mit dem Rechnen nicht mit dem Zeitpunkt 0 anfängt. Man fängt mit dem Zeitpunkt 1 an und da wirkt schon die Erdbeschleunigung.
denn bei vy=v[i-1]*1-9.81*dt ist beim ersten iterationsschritt 10-9.81*dt und das ist ja falsch ,ich hätte gerne das da nur 10 steht was ja korrekt wäre,wie mach ich das am besten??

Wieso ist die Geschwindigkeit in y Richtung(Senkrecht zum Boden) zum Zeitpunkt 0 gleich 10?
Und wie gesagt, man fängt nicht bei t=0 an zu rechnen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Differentialgleichung (schiefer Wurf)

Beitrag von Lämpi » So Apr 06, 2014 7:44 pm

Ok jetzt stimmen mal die Werte glaub ich ,habs mit einer if-Schleife richtig gestellt jetzt fehlt nur noch die Zeit bis er am Boden aufkommt

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Differentialgleichung (schiefer Wurf)

Beitrag von Lämpi » So Apr 06, 2014 7:49 pm

ja beim Zeitpunkt t=0 ist nunmal die Geschwindigkeit halt mal genau 10.

nochmal zu dem posX[Zeit] das kapier ich immer noch nicht Zeit ist doch keine Zahl woher soll er dann wissen wo er zugreifen soll?? grober denkfehler ;)

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Differentialgleichung (schiefer Wurf)

Beitrag von cloidnerux » So Apr 06, 2014 8:04 pm

nochmal zu dem posX[Zeit] das kapier ich immer noch nicht Zeit ist doch keine Zahl woher soll er dann wissen wo er zugreifen soll?? grober denkfehler ;)

Code: Alles auswählen

int zeit = 0;
for(; posX[zeit] > 0; zeit++);   //Solange der Ball noch über dem Boden ist, die Zeit erhöhen
Ich habe die Variable Zeit eine Zeile vorher definiert und auf 0 gesetzt. Zusätzlich wird sie in der schleife mit jedem Durchlauf um 1 erhöht.
ja beim Zeitpunkt t=0 ist nunmal die Geschwindigkeit halt mal genau 10.
Die Geschwindigkeit in x-Richtung sollte das doch egt sein?

Code: Alles auswählen

.---->X
|
V
Y
Redundanz macht wiederholen unnötig.
quod erat expectandum

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Differentialgleichung (schiefer Wurf)

Beitrag von Lämpi » So Apr 06, 2014 8:11 pm

vx und vy sind beim Abschuss 10 m/s,steht in der Aufgabe
sorry das ich dir auf die Nerven gehe,aber das posX[Zeit],dass leuchtet mir nicht ein,das int zeit=0 ist mir schon klar aber das posX[Zeit] auf was greift er denn da zu???, Zeit ist ja kein int??,warum nicht einfach zeit>0 ??

Antworten