WPROWADZENIE
Rzucaj膮c pi艂k膮 zastanawiamy si臋 jak daleko poleci oraz na jak膮 wysoko艣膰 si臋 wzniesie. Zar贸wno odleg艂o艣膰 jak i wysoko艣膰 zale偶膮 od wielu czynnik贸w, np:
- pr臋dko艣膰 pocz膮tkowa,
- przyspieszenie grawitacyjne,
- k膮t rzutu,
- op贸r powietrza,
- si艂a i kierunek wiatru.
Je艣li pominiemy wiele czynnik贸w oraz przyjmiemy do艣膰 uproszczony model, b臋dziemy mogli przeprowadzi膰 eksperyment.
Je艣li we藕miemy pod uwag臋 jedynie:
- przyspieszenie ziemskie jako sta艂膮 grawitacyjn膮 $g=9,8 \frac{m}{s^2}$,
- pr臋dko艣膰 pocz膮tkow膮 (pr臋dko艣膰, z kt贸r膮 pi艂ka jest wyrzucana) w m/s,
- k膮t rzutu w stopniach
to mo偶emy:
- ze wzoru $s=\frac{v^2 \cdot sin 2\alpha}{g}$ wyznaczy膰 odleg艂o艣膰 rzutu,
- ze wzoru聽 $h=\frac{v^2 \cdot sin^2 \alpha}{2g}$ wyznaczy膰 maksymaln膮 wysoko艣膰 jak膮 osi膮gnie pi艂ka.
gdzie:
- $v$ – pr臋dko艣膰 pocz膮tkowa
- $\alpha$ – k膮t rzutu (w radianach)
- $g$ – sta艂a grawitacyjna – przyspieszenie ziemskie
Mo偶emy przeprowadzi膰 symulacj臋, jak b臋dzie zmienia膰 si臋 odleg艂o艣膰 i wysoko艣膰 rzutu, je艣li b臋dziemy zmienia膰 k膮t rzutu.
Oczywistym jest, 偶e je艣li:
- k膮t pocz膮tkowy jest ma艂y, to zar贸wno wysoko艣膰, jak i odleg艂o艣膰 jest niewielka – rzucamy prawie p艂asko, wi臋c pi艂ka nie wzniesie si臋 wysoko oraz nie poleci daleko,
- k膮t pocz膮tkowy jest du偶y (rzucamy prawie pionowo), to mo偶e i wysoko艣膰 b臋dzie du偶a, ale odleg艂o艣膰 ma艂a.
Jak wi臋c dobra膰 k膮t, 偶eby odleg艂o艣膰 by艂a najwi臋ksza?
KOD W J臉ZYKU PYTHON
import math
g=9.81
def oblicz_odleglosc_rzutu(predkosc_poczatkowa, kat):
kat_rad = math.radians(kat)
odleglosc = (predkosc_poczatkowa**2 * math.sin(2 * kat_rad)) / g
return odleglosc
def oblicz_wysokosc_rzutu(predkosc_poczatkowa, kat):
kat_rad = math.radians(kat)
wysokosc = (predkosc_poczatkowa**2 * math.sin(kat_rad)**2) / (2 * g)
return wysokosc
predkosc = float(input("Podaj pr臋dko艣膰 pocz膮tkow膮 w m/s: "))
odleglosci = []
wysokosci = []
for kat in range(5, 81, 5):
odleglosc_rzutu = oblicz_odleglosc_rzutu(predkosc, kat)
wysokosc_rzutu = oblicz_wysokosc_rzutu(predkosc, kat)
odleglosci.append(odleglosc_rzutu)
wysokosci.append(wysokosc_rzutu)
print("K膮t (stopnie)\tOdleg艂o艣膰 (m)\tMaks. wysoko艣膰 (m)")
print("-----------------------------------------------")
for i in range(len(odleglosci)):
odleglosc_format = '{:.2f}'.format(odleglosci[i]).replace('.', ',')
wysokosc_format = '{:.2f}'.format(wysokosci[i]).replace('.', ',')
print(f"{(i+1)*5}\t{odleglosc_format}\t{wysokosc_format}")
猬嗭笍猬嗭笍猬嗭笍 Zobacz w Google Colaboratory
JAK DZIA艁A PROGRAM?
- Importuje modu艂 math, kt贸ry jest potrzebny do wykonywania operacji matematycznych.
- Definiuje dwie funkcje:
- oblicz_odleglosc_rzutu(predkosc_poczatkowa, kat): Oblicza odleg艂o艣膰 rzutu dla podanej pr臋dko艣ci pocz膮tkowej i k膮ta rzutu. Wykorzystuje wz贸r d = (v^2 * sin(2胃)) / g, gdzie v to pr臋dko艣膰 pocz膮tkowa, 胃 to k膮t w radianach, a g to przyspieszenie ziemskie.
- oblicz_wysokosc_rzutu(predkosc_poczatkowa, kat): Oblicza maksymaln膮 wysoko艣膰 osi膮gni臋t膮 podczas rzutu dla podanej pr臋dko艣ci pocz膮tkowej i k膮ta rzutu. Wykorzystuje wz贸r h = (v^2 * sin(胃)^2) / (2 * g), gdzie v to pr臋dko艣膰 pocz膮tkowa, 胃 to k膮t w radianach, a g to przyspieszenie ziemskie.
- Pobiera od u偶ytkownika pr臋dko艣膰 pocz膮tkow膮 w metrach na sekund臋.
- Inicjalizuje puste listy odleglosci i wysokosci, kt贸re b臋d膮 przechowywa膰 obliczone odleg艂o艣ci i wysoko艣ci dla r贸偶nych k膮t贸w.
- Iteruje po k膮tach od 5 do 80 (w艂膮cznie) z krokiem 5:
- Oblicza odleg艂o艣膰 rzutu i maksymaln膮 wysoko艣膰 dla ka偶dego k膮ta, korzystaj膮c z odpowiednich funkcji.
- Dodaje obliczone warto艣ci do odpowiednich list.
- Wy艣wietla nag艂贸wek tabeli, kt贸ry zawiera nazwy kolumn: „K膮t (stopnie)”, „Odleg艂o艣膰 (m)”, „Maks. wysoko艣膰 (m)”.
- Iteruje po indeksach element贸w list odleglosci i wysokosci przy u偶yciu funkcji range i len, aby okre艣li膰 liczb臋 element贸w:
- Formatuje ka偶d膮 odleg艂o艣膰 i wysoko艣膰 do dw贸ch miejsc po przecinku i zamienia kropk臋 na przecinek.
- Wy艣wietla ka偶dy k膮t, odleg艂o艣膰 i wysoko艣膰 w odpowiednim formacie, u偶ywaj膮c odpowiednich odst臋p贸w i tabulacji.
- Program ko艅czy dzia艂anie, a na ekranie zostaje wy艣wietlona tabela z k膮tami, odleg艂o艣ciami i maksymalnymi wysoko艣ciami, na podstawie wprowadzonej przez u偶ytkownika pr臋dko艣ci pocz膮tkowej.
Dodaj komentarz