Python ile Atış Problemi Örneği

Aşağıdaki veriler ışığında Python ile atış problemi çözen basit bir program kodlayacağız. Atış sorumuz aşağıdaki şekilde açıklanmıştır:

  • 50 m/s başlangıç hızıyla ve yatay eksene 60° başlangıç açısıyla bir top fırlatılmıştır.
  • Topun zaman 0 ile 20 saniye arasındaki 0,5’lik artışlarla değiştiğinde bir parçacığın yatay ve dikey konumunu belirleyen bir program yazın.
  • Program ayrıca topun ulaşabileceği maksimum yüksekliği de görüntülesin.

1. İlk olarak while döngüsü kullanarak çözümümüzü yapalım:

import math
t = 0
v = 50
g = 9.81
liste = []
while t <= 20:
  
    x= v*math.cos(60*math.pi/180)*t #radyan dereceye çevrildi
    y= v*math.sin(60*math.pi/180)*t - 0.5*g*t*t #radyan dereceye çevrildi
    liste.append (y) 
    print(f"Yatayda aldığı yol: {x}\nDüşeyde aldığı yol: {y}\n")
    t+=0.5
print ("Maksimum yükseklik:",max(liste))

2. Pekala for döngüsü kullanarak çözümümüzü yapabiliriz:

import numpy as np
import math
t = 0
v = 50
g = 9.81
liste = []
for t in np.arange (0, 20, 0.5): #artış float olduğu için np.arange kullanıldı
    x= v*math.cos(60*math.pi/180)*t #radyan dereceye çevrildi
    y= v*math.sin(60*math.pi/180)*t - 0.5*g*t*t #radyan dereceye çevrildi
    liste.append (y) 
    print(f"Yatayda aldığı yol: {x}\nDüşeyde aldığı yol: {y}\n")
    t+=0.5
print ("Maksimum yükseklik:",max(liste))

3. Daha okunaklı olması adına fonksiyonları kullanabiliriz:

import math
# Başlangıç değerleri
u = 50  # m/s
theta = math.radians(60)  # derece cinsinden açıyı radyan cinsine dönüştürme
g = 9.81  # m/s^2
# Yatay ve dikey konumları hesaplayan fonksiyonlar
def x_position(t):
    return u * math.cos(theta) * t
def y_position(t):
    return u * math.sin(theta) * t - 0.5 * g * t**2
# Zaman aralığı ve adım büyüklüğü
t = 0
step = 0.5
max_time = 20
max_height = 0
print("Time(s) | X-Position(m) | Y-Position(m)")
print("--------------------------------------")
while t <= max_time:
    x = x_position(t)
    y = y_position(t)
    print(f"{t:7.2f} | {x:13.2f} | {y:13.2f}")
    if y > max_height:
        max_height = y
    t += step
print("--------------------------------------")
print(f"Maksimum yükseklik: {max_height:.2f} m")

Bu program, belirtilen zaman aralığındaki her adımda topun yatay (x) ve dikey (y) konumunu yazdırır. Ayrıca, program sonunda topun ulaşabileceği maksimum yüksekliği de görüntüler.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu