profil

Napisz program który poprosi użytkownika o podanie współrzędnych kartezjańskich x y z punktu w przestrzeżeni a

następnie przeliczy je na współrzędne w układzie sferycznym i cylindrystycznym i wypisze wyniki . Zadaj nie tylko o poprawność wyników, ale także o czytelność kodu i komunikację z użytkownikiem. Użyj funkcji matematycznych z biblioteki math
5 pkt za rozwiązanie + 3 pkt za najlepsze rozwiązanie - 22.1.2023 (14:09) - przydatność: 75% - głosów: 3
Odpowiedzi
pietrekgoras
23.1.2023 (08:41)
Oto program w języku Python, który spełnia wymagania zadania:

import math
def cartesian_to_spherical(x, y, z):
r = math.sqrt(x**2 + y**2 + z**2)
theta = math.acos(z / r)
phi = math.atan2(y, x)
return (r, theta, phi)
def cartesian_to_cylindrical(x, y, z):
rho = math.sqrt(x**2 + y**2)
phi = math.atan2(y, x)
return (rho, phi, z)
print("Konwersja współrzędnych kartezjańskich na współrzędne sferyczne i cylindrystyczne")
x = float(input("Podaj współrzędną x: "))
y = float(input("Podaj współrzędną y: "))
z = float(input("Podaj współrzędną z: "))
spherical = cartesian_to_spherical(x, y, z)
print("Współrzędne sferyczne: r = %.2f, theta = %.2f, phi = %.2f" % (spherical[0], spherical[1], spherical[2]))
cylindrical = cartesian_to_cylindrical(x, y, z)
print("Współrzędne cylindrystyczne: rho = %.2f, phi = %.2f, z = %.2f" % (cylindrical[0], cylindrical[1], cylindrical[2]))

Program prosi użytkownika o podanie współrzędnych kartezjańskich x, y, z punktu w przestrzeni, następnie używa tych wartości do przeliczenia ich na współrzędne w układzie sferycznym i cylindrystycznym za pomocą dwóch funkcji cartesian_to_spherical i cartesian_to_cylindrical. Funkcje te korzystają z biblioteki matematycznej math do obliczania odległości, kąta theta i kąta phi w układzie sferycznym oraz odległości rho i kąta phi w układzie cylindrystycznym.
Program wyświetla wyniki za pomocą odpowiednich komunikatów, zachowując czytelność i zrozumiałość dla użytkownika.

Jest też kilka uwag:
wartości r, theta, phi, rho, z jest zaokrąglona do 2 miejsc po przecinku
Wartości kątów są podane w radianach, Jeśli chcesz prezentować je w stopniach, należy pomnożyć przez 180/pi
wartości x, y, z powinny być podawane przez użytkownika w liczbach zmiennoprzecinkowych, dlatego używamy float(input())
warto uwzględnić walidację danych wejściowych, tak aby program działał poprawnie, nawet jeśli użytkownik poda niepoprawne dane.
Można dodać opcję, aby użytkownik mógł wybrać, w jakim układzie chce otrzymać wynik, czy sferycznym czy cylindrystycznym.

Ten kod jest tylko przykładem i może być dostosowywany do indywidualnych potrzeb.

komentarze
Slawekwu 21.2.2024 (09:29)

wystąpił taki bład:
line 6
return(r, theta, phi)
^^^^^^^^^^^^^^^^^^^^^
SyntaxError: 'return' outside function

czy ktoś coś doradzi?

Przydatne rozwiązanie? Tak Nie
Slawekwu
21.2.2024 (12:12)
Import math
x = float(input("Podaj współrzędną x: "))
y = float(input("Podaj współrzędną y: "))
z = float(input("Podaj współrzędną z: "))
# Przeliczanie na współrzędne w układzie sferycznym
r = math.sqrt(x**2 + y**2 + z**2)
phi = math.atan2(y, x)
theta = math.acos(z / r)
# Wypisanie wyników dla układu sferycznego
print("Współrzędne w układzie sferycznym:")
print("r =", )
print("phi =", phi)
print("theta =", theta)
# Przeliczanie na współrzędne w układzie cylindrycznym
rho = math.sqrt(x**2 + y**2)
phi = math.atan2(y, x)
# Wypisanie wyników dla układu cylindrycznego
print("Współrzędne w układzie cylindrycznym:")
print("rho =", rho)
print("phi =", phi)
print("z =", z)
Przydatne rozwiązanie? Tak Nie
Dodaj zadanie