przyklady
This commit is contained in:
25
dzien_03/przyklady/r3_00.py
Normal file
25
dzien_03/przyklady/r3_00.py
Normal file
@@ -0,0 +1,25 @@
|
||||
# program r3_00.py
|
||||
# Pierwsze wczytywanie danych i walidacja
|
||||
|
||||
# Definiujemy funkcję wczytującą dane
|
||||
def read_datas():
|
||||
h_start = input("Teraz podaj wysokość początkową (w m): ")
|
||||
v_start = input("Teraz podaj prędkość początkową (w m/sek) :")
|
||||
|
||||
if h_start < 10:
|
||||
print("Niestety, wysokość zbyt niska (min. 10 m)!")
|
||||
return None
|
||||
|
||||
if v_start < 2:
|
||||
print("Niestety, prędkość początkowa zbyt niska (min. 2 m/s)!")
|
||||
return None
|
||||
|
||||
return (h_start, v_start)
|
||||
|
||||
|
||||
initial_values = None
|
||||
while initial_values is None:
|
||||
print("Proszę, podaj dane niezbędne do wygenerowania wykresu.")
|
||||
initial_values = read_datas()
|
||||
|
||||
print("OK, dane początkowe wczytane - działamy dalej.")
|
||||
25
dzien_03/przyklady/r3_00_float.py
Normal file
25
dzien_03/przyklady/r3_00_float.py
Normal file
@@ -0,0 +1,25 @@
|
||||
# program r3_00_float.py
|
||||
# Pierwsze wczytywanie danych i walidacja
|
||||
|
||||
# Definiujemy funkcję wczytującą dane
|
||||
def read_datas():
|
||||
h_start = float(input("Teraz podaj wysokość początkową (w m): "))
|
||||
v_start = float(input("Teraz podaj prędkość początkową (w m/sek) :"))
|
||||
|
||||
if h_start < 10:
|
||||
print("Niestety, wysokość zbyt niska (min. 10 m)!")
|
||||
return None
|
||||
|
||||
if v_start < 2:
|
||||
print("Niestety, prędkość początkowa zbyt niska (min. 2 m/s)!")
|
||||
return None
|
||||
|
||||
return (h_start, v_start)
|
||||
|
||||
|
||||
initial_values = None
|
||||
while initial_values is None:
|
||||
print("Proszę, podaj dane niezbędne do wygenerowania wykresu.")
|
||||
initial_values = read_datas()
|
||||
|
||||
print("OK, dane początkowe wczytane - działamy dalej.")
|
||||
48
dzien_03/przyklady/r3_00_read.py
Normal file
48
dzien_03/przyklady/r3_00_read.py
Normal file
@@ -0,0 +1,48 @@
|
||||
# program r3_00_read.py
|
||||
# Pierwsze wczytywanie danych i walidacja - funkcja read_datas ostateczna
|
||||
|
||||
|
||||
# Definiujemy funkcję wczytującą dane
|
||||
def read_datas():
|
||||
def float_input(user_info, user_prompt, min_value):
|
||||
print("---[ wczytujemy dane]------------")
|
||||
print(user_info)
|
||||
user_input = input(user_prompt)
|
||||
if user_input.count(".") > 1:
|
||||
return None
|
||||
|
||||
if not user_input.replace(".", "").isdecimal():
|
||||
return None
|
||||
|
||||
user_value = float(user_input)
|
||||
if user_value < min_value:
|
||||
print(f"Wartość {user_value} jest mniejsza niż oczekiwana {min_value}.")
|
||||
return None
|
||||
return user_value
|
||||
|
||||
h_start = None
|
||||
v_start = None
|
||||
|
||||
while h_start is None:
|
||||
h_start = float_input(
|
||||
"Brak poprawnej wartości dla h_start. Typ float (np: 3.14)",
|
||||
"Teraz podaj wysokość początkową (w m, min. 10): ",
|
||||
10,
|
||||
)
|
||||
|
||||
while v_start is None:
|
||||
v_start = float_input(
|
||||
"Brak poprawnej wartości dla v_start. Typ float (np: 3.14)",
|
||||
"Teraz podaj prędność początkową (w m/sek, min. 2) :",
|
||||
2,
|
||||
)
|
||||
|
||||
return (h_start, v_start)
|
||||
|
||||
|
||||
initial_values = None
|
||||
while initial_values is None:
|
||||
print("Proszę, podaj dane niezbędne do wygenerowania wykresu.")
|
||||
initial_values = read_datas()
|
||||
|
||||
print("OK, dane początkowe wczytane - działamy dalej.")
|
||||
69
dzien_03/przyklady/r3_01.py
Normal file
69
dzien_03/przyklady/r3_01.py
Normal file
@@ -0,0 +1,69 @@
|
||||
# program r3_01.py
|
||||
# Obliczenia danych do wykresu
|
||||
# Podstawowy rysunek miejsca startu i spadku
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
# Definiujemy funkcję wczytującą dane
|
||||
def read_datas():
|
||||
def float_input(user_info, user_prompt, min_value):
|
||||
print("---[ wczytujemy dane]------------")
|
||||
print(user_info)
|
||||
user_input = input(user_prompt)
|
||||
if user_input.count(".") > 1:
|
||||
return None
|
||||
|
||||
if not user_input.replace(".", "").isdecimal():
|
||||
return None
|
||||
|
||||
user_value = float(user_input)
|
||||
if user_value < min_value:
|
||||
print(f"Wartość {user_value} jest mniejsza niż oczekiwana {min_value}.")
|
||||
return None
|
||||
return user_value
|
||||
|
||||
h_start = None
|
||||
v_start = None
|
||||
|
||||
while h_start is None:
|
||||
h_start = float_input(
|
||||
"Brak poprawnej wartości dla h_start. Typ float (np: 3.14)",
|
||||
"Teraz podaj wysokość początkową (w m, min. 10): ",
|
||||
10,
|
||||
)
|
||||
|
||||
while v_start is None:
|
||||
v_start = float_input(
|
||||
"Brak poprawnej wartości dla v_start. Typ float (np: 3.14)",
|
||||
"Teraz podaj prędność początkową (w m/s, min. 2) :",
|
||||
2,
|
||||
)
|
||||
|
||||
return (h_start, v_start)
|
||||
|
||||
|
||||
initial_values = None
|
||||
while initial_values is None:
|
||||
print("Proszę, podaj dane niezbędne do wygenerowania wykresu.")
|
||||
initial_values = read_datas()
|
||||
|
||||
print("OK, dane początkowe wczytane - działamy dalej.")
|
||||
|
||||
# Rozpakowywanie tupli
|
||||
H_START, V_START = initial_values
|
||||
|
||||
# Obliczamy najważniejsze wartości
|
||||
|
||||
g = 9.81 # m/s^2
|
||||
total_time = ((2 * H_START) / g) ** (1 / 2)
|
||||
max_range = V_START * total_time
|
||||
|
||||
# Dodajemy wykres i umieszczamy punkt startu i spadku
|
||||
title = f"""Wykres rzutu poziomego z V_START = {V_START} m/s (g = {g} m/s^2)
|
||||
Czas lotu = {round(total_time,4)} s."""
|
||||
plt.scatter(0, H_START, label=f"H_START={H_START} m")
|
||||
plt.scatter(max_range, 0, label=f"max_range={round(max_range,3)} m")
|
||||
plt.grid()
|
||||
plt.title(title)
|
||||
plt.legend()
|
||||
plt.show()
|
||||
77
dzien_03/przyklady/r3_02.py
Normal file
77
dzien_03/przyklady/r3_02.py
Normal file
@@ -0,0 +1,77 @@
|
||||
# program r3_02.py
|
||||
# Pełny wykres
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# Definiujemy funkcję wczytującą dane
|
||||
def read_datas():
|
||||
def float_input(user_info, user_prompt, min_value):
|
||||
print("---[ wczytujemy dane]------------")
|
||||
print(user_info)
|
||||
user_input = input(user_prompt)
|
||||
if user_input.count(".") > 1:
|
||||
return None
|
||||
|
||||
if not user_input.replace(".", "").isdecimal():
|
||||
return None
|
||||
|
||||
user_value = float(user_input)
|
||||
if user_value < min_value:
|
||||
print(f"Wartość {user_value} jest mniejsza niż oczekiwana {min_value}.")
|
||||
return None
|
||||
return user_value
|
||||
|
||||
h_start = None
|
||||
v_start = None
|
||||
|
||||
while h_start is None:
|
||||
h_start = float_input(
|
||||
"Brak poprawnej wartości dla h_start. Typ float (np: 3.14)",
|
||||
"Teraz podaj wysokość początkową (w m, min. 10): ",
|
||||
10,
|
||||
)
|
||||
|
||||
while v_start is None:
|
||||
v_start = float_input(
|
||||
"Brak poprawnej wartości dla v_start. Typ float (np: 3.14)",
|
||||
"Teraz podaj prędność początkową (w m/s, min. 2) :",
|
||||
2,
|
||||
)
|
||||
|
||||
return (h_start, v_start)
|
||||
|
||||
|
||||
initial_values = None
|
||||
while initial_values is None:
|
||||
print("Proszę, podaj dane niezbędne do wygenerowania wykresu.")
|
||||
initial_values = read_datas()
|
||||
|
||||
print("OK, dane początkowe wczytane - działamy dalej.")
|
||||
|
||||
# Rozpakowywanie tupli
|
||||
H_START, V_START = initial_values
|
||||
|
||||
# Obliczamy najważniejsze wartości
|
||||
|
||||
g = 9.81 # m/s^2
|
||||
total_time = ((2 * H_START) / g) ** (1 / 2)
|
||||
max_range = V_START * total_time
|
||||
|
||||
# Obliczamy kolejne wartości Y dla X co 1/100 ogólnego zasięgu
|
||||
x_points = np.arange(0, max_range, max_range / 100)
|
||||
y_points = H_START - ((g / 2) * (x_points / V_START) ** 2)
|
||||
|
||||
# dodajemy wykres i umieszczamy punkt startu i spadku
|
||||
title = f"""Wykres rzutu poziomego z V_START = {V_START} m/s (g = {g} m/s^2)
|
||||
Czas lotu = {round(total_time,4)} s."""
|
||||
|
||||
plt.scatter(0, H_START, label=f"H_START={H_START} m")
|
||||
plt.scatter(max_range, 0, label=f"max_range={round(max_range,3)} m")
|
||||
plt.plot(x_points, y_points, marker="+", color="red", label="Kolejne punkty rzutu.")
|
||||
plt.grid()
|
||||
plt.title(title)
|
||||
plt.xlabel("Odległość w metrach")
|
||||
plt.ylabel("Wysokość w metrach")
|
||||
plt.legend()
|
||||
plt.show()
|
||||
5
dzien_03/przyklady/r3_import.py
Normal file
5
dzien_03/przyklady/r3_import.py
Normal file
@@ -0,0 +1,5 @@
|
||||
# program r3_import.py
|
||||
#
|
||||
|
||||
# wykorzystujemy znany nam już moduł
|
||||
import matplotlib.pyplot as plt
|
||||
Reference in New Issue
Block a user