![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Potrzebuje napisać skrypt który będzie rozwiązywał działania i będzie przedstawiał etapy jego rozwiązania, np. Podaje mu działanie: 6*4*(2/5+34-2*2)/2 a on wykonuje na nim operacje i zwraca mi takie coś: 6*4*(0,4+34-4)/2= =6*4*34,4/2= =24*34,4/2= =24*17,2= =417,6 Zdaję sobie z tego sprawę że to nie będzie proste zadanie, wiec prosze was o pomoc... Jak się za taki skrypt zabrać? Co proponujecie? Ten post edytował 1010 3.10.2006, 20:25:38 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli działania będą proste czyli tylko znaki + - * / [ () ]
to można zrobić to etapowo. Bez wyrażeń regularnych się nie obejdzie. 1. Na początek jeśli występują nawiasy () [] liczysz ich ilość otwarte/zamkniete zeby sie wszystko zgadzalo 2. Potem wbierasz nawiasy w których nie ma innych nawiasów i wykonujesz działania mnożenia, dzielenia, i tyle przepisujesz reszte 3. Jeśli w nawiasie wszystko wymnozyles a sa jeszcze znaki + - to wykonujesz działania i przepisujesz reszte 4. Opuszczasz nawiasy gdzie nie ma juz znakow matematycznych 5. Wykonujesz dzialania teraz znowu mnozenia przepisujesz 6. Wykonujesz + - i masz wynik Teoretycznie tak to by wygladalo. I zaminiaj przecinki na kropki. Trudne to nie jest, raczej czasochłonne przy robieniu funkcji parsującej. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 16:28 |