Witam,
Na początku napiszę, że jestem kompletnym laikiem programowania, a mam nóż na gardle związany z zaliczeniem przedmiotu "Projektowanie w systemach UML".
Bardzo proszę Was znających się dobrze na programowaniu o zamianę programu napisanego w języku programowania Python na jakikolwiek inny język programowania.
Jest to algorytm odbijającej się piłeczki (zadanie związane z prawami fizycznymi)
Z góry bardzo Wam dziękuję za pomoc :)
Kod programu w Pythonie:
# -*- coding: utf-8 -*-
# Definiujemy stałe występujące w problemie:
g=9.81 # Przyspieszenie ziemskie
rho_p=1.2 # Gęstość powietrza
rho_Fe=7900.0 # Gęstość żelaza
kappa=0.45 # Stała kappa
r = 0.025 # Promień kulki
C = 3.0*kappa*rho_p/(8.0*rho_Fe*r) # Stała C
eps = 0.01 # Stała określająca zmiennoprzecinkowe 0
# tzn. uznajemy, iż zmienna = 0 <=> |zmienna-0|<eps
#**********************************************************************************************
# Warunki początkowe:
x=100.0 #(1m=100cm)
v_x=0.0
t=0.0
dt=0.1
# Dodatkowe
#time = srange(0.,10.,dt)
#N = 25
# Listy przechowujące rozwiązania:
R, Vx, H = [], [], [(t,x)]
#for n in range(25):
k=0 #licznik kolejnych maksimów
while H[k][1]>0:
while x>=eps:
R.append((t,x))
Vx.append((t,v_x))
v_x = v_x - (C * abs(v_x) * v_x + g) * dt
x = x +v_x * dt
t = t + dt
v_x = -v_x # Następuje doskonale sprężyste odbicie!
while v_x>=eps:
R.append((t,x))
Vx.append((t,v_x))
v_x = v_x - (C * abs(v_x) * v_x + g) * dt
x = x +v_x * dt
t = t + dt
H.append((t,x))
k=k+1
v_x = -v_x # Prędkość zmienia znak !