Potřebovala bych pomoct. Mám v Pascalu naprogramovat šikmý vrh s odporem vzduchu v homogenním gravitačním poli Země pomocí Eulerovy metody. Nevíte někdo jak?
Fórum › Pascal
Šikmý vrh s odporem vzduchu
#1 Brt
Vime.
1. Seženeme si a prozkoumáme veškerou potřebnou teorii kolem dané problematiky
2. Navrhneme algoritmus (nebo-li sepíšeme/nakreslíme/v hlavě představíme) co ten program bude všechno dělat a jak a rozdělíme si to na jednotlivé logické části
3. Postupně píšeme jednotlivé části programu a odlaďujeme případné chyby a skládáme celý program z těchto částí
4. Jsme-li začátečníci v programování, během tohoto procesu se naučíme spoustu nových věcí a často zjistíme, že by něco z toho programu šlo udělat lépe a mnohdy ho uděláme celý znovu a jinak.
Takže s čím potřebuješ pomoct? A neříkej, že se vším, takhle to nefunguje...
Jedině, že by ses nechtěla nic naučit, pak můžeš samozřejmě někoho poprosit, aby to udělal celé za tebe, ale k tomu nepotřebuješ žádnou pomoc...
#2 JoDiK
Teorii jsem prostudovala a myslím, že princip Eulerovy metodu chápu. Dokonce už i mám modul, který počítá soustavu 4 diferenciálních rovnic prvního řádu a ten bych měla použít v programu, který spočte šikmý vrh s odporovou silou.Vzorec pro odporovou sílu je Fod = 0,5*C*S* ρ*v^2, kde je neznámá jen rychlost, zbytek jsou konstanty. A vzorce pro šikmý vrh jsou: x=xo +vo*t*cosα, y=yo+vo*t*sinα - 0,5*g*t^2. Nevím ale, jak mám napasovat vzorce pro šikmý vrh do programu, který využije tento modul.
Modul:
unit euler;
interface
type
tvec4 = array [0..3] of real;
tF = function(const Y : tvec4; const t : real) : tvec4;
tvec = array of real;
tmat = array of array of real;
procedure euler(const tmin,tmax : real; const nmax : integer;
const Y0 : tvec4; F : tF; var t : tvec; var Y : tmat);
implementation
procedure euler(const tmin,tmax : real; const nmax : integer;
const Y0 : tvec4; F : tF; var t : tvec; var Y : tmat);
var
i,j : integer;
dt : real;
yy : tvec4;
begin
t[0]:=tmin;
for i:=0 to 3 do
Y[0,i]:=Y0[i];
dt:=(tmax-tmin)/nmax;
for i:=0 to nmax-1 do begin
t[i+1]:=t[i]+dt;
for j:=0 to 3 do
yy[j]:=Y[i,j];
for j:=0 to 3 do
Y[i+1,j]:=Y[i,j]+dt*F(yy,t[i])[j];
end;
end;
end.
#3 Brt
"Nevím ale, jak mám napasovat vzorce pro šikmý vrh do programu, který využije tento modul."
No - vzhledem k tomu že jsi neukázala ten svůj program, do kterého to chceš napasovat, tak opět těžko radit. U přejatých modulů je důležité jestli ho autor dostatečně popsal (okomentoval) tak, aby bylo jasné, jak ho použít...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Šikmý vrh Javascipt — založil Adam.B
Prosím pomoc - šikmý vrh — založil Kharsh
Šikmý vrh - Sinus, Cosinus — založil matesz
SDL - šikmý pohyb? — založil vollf82
Hodnotící systém — založil Tester
Moderátoři diskuze