Eintrittswinkel < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 12:52 Mi 28.11.2007 | Autor: | leon886 |
Aufgabe | Soll einen Baskeballlwurf Programmieren in C dabei soll er mir nur mit hilfe der Spielergrösse
die Abwurfhöhe, Abwurfgeschwindigkeit Abwurfwinkel ausgeben.
leider berechnet mir das Program den Eintrittswinkel falsch. Könnte da mal jemand drüber sehen habe das programm noch nicht ganz fertig aber wenn der eintrittswinkel in den Korb nciht stimtm nutzt es auch nciht weiter zu rehnen . |
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main (void) {
/*Deklaration der Variablen*/
int a,b,c,wert,wahl,groesse,wert1,next,n;
double hoehe,winkel,wweite,g=9.81,xw=635.5,yh=275,v0,eintrittswinkel,epsilon,getroffen=0,pi=3.1415;
[mm] printf("\tSimulation [/mm] eines [mm] Freiwurfs\n");
[/mm]
/*Schleife für endlos Maschine*/
next=1;
while(next==1){
wert=1; wahl=2; next=0;
while (wert==1 && wahl==2){
[mm] printf("\nBitte [/mm] geben sie die groesse des Spielers in cm [mm] ein:\n");
[/mm]
[mm] scanf("\n\t%i",&groesse);
[/mm]
[mm] printf("\n\tIhre [/mm] groesse betraegt %i cm.",groesse);
[mm] printf("\n\tIst [/mm] Ihre eingabe [mm] korrekt?\n \nGeben [/mm] sie bitte fuer JA=1 oder fuer NEIN=2 [mm] ein!\n");
[/mm]
scanf("%i",&wahl);
while(wahl==1){
[mm] printf("\n\tIhre [/mm] Groesse betraegt %i cm",groesse);
if(groesse>270||groesse<50)
[mm] printf("\nSolche [/mm] Menschen groessen sind nicht bekannt");
break;}
if (wahl==2){wert=1;}
}
winkel=0.174;
//IterationsSchleife
while(winkel<0.8){
v0=1;
while(v0<10){
epsilon=v0*sin(winkel)*xw/(v0*cos(winkel))-0.5*g*(xw/((v0*cos(winkel))*(v0*cos(winkel))))-yh+groesse;
if(epsilon>-0.1 && epsilon<0.1){
eintrittswinkel=atan(2*(yh-tan(winkel)*xw)+tan(winkel));
if (eintrittswinkel>0.54){
getroffen=1;
break;}}
v0=v0+0.01; }
if(getroffen==1){
break;}
winkel=winkel+0.01;
}
/*hoehenberechnung*/
hoehe=((v0*v0)*sin(winkel)*sin(winkel)/(2*g)+groesse);
printf("th=%lf",v0*sin(winkel)/g);
printf("tg=%lf",xw/(v0*cos(winkel)));
while(wahl==1 && groesse<270 && groesse>50){
[mm] printf("\nIhre [/mm] Abwurfhöhe betrug %lf cm",hoehe+30);
[mm] printf("\nIhr [/mm] Abwurfwinkel betrug %lf [mm] Grad\n",winkel*180/pi);
[/mm]
[mm] printf("\nIhre [/mm] Wurfgeschwindigkeit betrug %lf m/s",v0);
break;}
[mm] printf("\nZum [/mm] beenden bitte 0 eingeben, fuer weiter 1 [mm] druecken\a\n");
[/mm]
scanf("%i",&n);
while(n==0){ break;}
if (n==1){next=1;}
getchar();}}
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:03 Do 29.11.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|