rzut ukosny

0

witam, mam problem z moim programikiem, ktory ma za zadanie obliczac trajektorie rzutu ukosnego->wyrzucac wspolrzedne x,y. problem polega na tym ze program podaje najpierw jakas wysokosc maksymalna, a pozniej podajac wspolrzedne przy zmiennych y podaje wartosc wieksza niz wczesniej obliczona hmax, przy niektorych wartosciach, podaje y na minusach, wzory wydaja sie byc ok, wiec nie wiem gdzie jest problem, jesli ktos moglby mi pomoc to wielkie dzieki : )

program ukosny;
uses crt;

var m,g,tc,alfa,v,h,z,x,y,t: real;
Function Tg(alfa:real): real;

begin
Tg:= Sin(alfa)/Cos(alfa);
end;

begin
repeat write ('masa [kg] = ' );
readln (m);
if m<=0 then writeln('masa musi byc wieksza od 0');
until m>0;
repeat write ('kat pochylenia [C] = ');
readln(alfa);
if alfa<=0 then writeln('kat pochylenia musi byc wiekszy od 0');
until alfa>0 ;
repeat write ('predkosc poczatkowa [m/s] = ');
readln(v);
if v<=0 then writeln('predkosc poczatkowa musi byc wieksza od 0');
until v>0;

alfa:=alfaPi/180;
g:=9.81;
z:=(2
cos(alfa)vsin(alfa)v)/g;
h:=(v
vsin(alfa)sin(alfa)/2g)/100;
tc:=(2
v*sin(alfa))/g;
writeln(' z= ',z3,' [m] - odleglosc upadku od miejsca strzalu');
writeln(' h= ',h3,' [m] - wysokosc maksymalna osiagnieta przez pocisk');
writeln(' tc= ',tc3,' [sek] - czas lotu do momentu upadku');

begin
x:=0;
t:=0;
repeat
t:=t+tc/10;
x:=vtcos(alfa);
y:=vtsin(alfa)-(g/2)*sqr(t);
writeln('x= ',x3,' y= ',y3);
until ((x>=z) and (y<=h));

end;
readln;
end.

0
  1. Zmień:

h:=(vvsin(alfa)sin(alfa)/2g)/100;

      na:  

h:=(vvsin(alfa)sin(alfa)/(2g));

('2*g'   w nawias i po co ci '/100'?)
  1. Zamień:

repeat
t:=t+tc/10;
x:=vtcos(alfa);
y:=vtsin(alfa)-(g/2)*sqr(t);
writeln('x= ',x3,' y= ',y3);
until ((x>=z) and (y<=h));

    (w niektórych przypadkach może się wbić w ziemię)

na:

for l:=1 to 10 do
begin
t:=t+tc/10;
x:=vtcos(alfa);
y:=vtsin(alfa)-(g/2)*sqr(t);
writeln('x= ',x3,' y= ',y3);
end;

  i zdefiniuj 'l' jako zmienną Integer
  1. Po co ci masa do liczenia rzutów?
0

dzieki wielkie za pomoc, w tresci zadania mam napisane ze masa musi byc podawana, wiem we wzorze sie upraszcza ale to nie moje widzimisie :P dzieki jeszcze raz

1 użytkowników online, w tym zalogowanych: 0, gości: 1