Witam.
Mam problem z odczytaniem funkcji z klawiatury użytkownika i pracowaniu na niej. Chodzi o to, zeby użytkownik mógł podać jakąś funkcję (np. x + 2), a potem, zebym mogla bez problemów wyświetlać f(zadanej liczby), albo porównywać f(a) z f(b), gdzie a i b także podaje użytkownik.
Udało mi się znależć coś takiego:
fx = input("Podaj funkcje : ")
funkcja = lambda x: eval(fx)
Niestety dalej nie moge wysiwetlic tej funkcji ani porównywać jej wartości od zadanych liczb.
- Rejestracja:ponad 6 lat
- Ostatnio:około 5 lat
- Postów:22
0
edytowany 2x, ostatnio: adekniejadek

- Rejestracja:ponad 8 lat
- Ostatnio:31 minut
1
https://en.m.wikipedia.org/wiki/Shunting-yard_algorithm
Edit: no mozna eval ale to chyba srednio bezpieczne
edytowany 1x, ostatnio: stivens

- Rejestracja:około 8 lat
- Ostatnio:około godziny
- Postów:4935
0
Jeśli Masz wyrażenia całkowicie znawiasowane, to gotowiec w Javie jest tutaj:
https://algs4.cs.princeton.edu/13stacks/Evaluate.java.html

- Rejestracja:ponad 6 lat
- Ostatnio:ponad rok
- Postów:10
0
Jak najbardziej mozesz wyswietlac funkcje w ten sposob:
print(fx)
Mozesz rowniez podstawiac tam dowolne wartosci oraz je porownywac:
a = input("Podaj wartosc a: ")
b = input("Podaj wartosc b: ")
x = int(a)
fa = eval(fx)
print("Wartosc funkcji fx dla x = a : ",fa)
x = int(b)
fb = eval(fx)
print("Wartosc funkcji fx dla x = b : ",fb)
if fa > fb:
#dzialanie
pass
else:
#dzialanie
pass
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
adekniejadek