Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Operacje logiczne na stringach
d4ng
post
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 4
Dołączył: 7.03.2010

Ostrzeżenie: (0%)
-----


Witajcie chciałbym się dowiedzieć w jaki sposób mogę wykonać działanie na stringach.

  1. $wynik = "5 + 2 - 3";
  2. echo $wynik; // wypisze nam 5 + 2 - 3 a chciałbym żeby pokazało się 4 czyli wynik działania
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
PrinceOfPersia
post
Post #2





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


albo nieelegancki (ale prosty w zakodzeniu) eval, albo robisz sobie drzewko operacji, a potem przechodzisz przez to drzewko.
http://pl.wikipedia.org/wiki/Drzewo_(informatyka)

Kiedyś dla jaj zrobiłem kalkulator w Pythonie, to zrobiłem to w ten sposób, że każdy węzeł mógł być albo liczbą, albo znakiem operacji (np. plusem, minusem). Jeśli węzeł był plusem/minusem etc. to miał dwoje dzieci. Np.
2 + 4 * 6
rozpisywałem na:

Kod
      + (plus)
    /    \
   /      \
  2        * (razy)
          /    \
         /      \
        4       6

i potem przechodząc przez drzewo ( http://pl.wikipedia.org/wiki/Przechodzenie_drzewa ) ewaluowałem kolejne elementy, sprawdzając jaki jest symbol operacji w rodzicu (np. razy) i jakie są operandy (4 oraz 6), potem zliczałem i podmieniałem (zamiast węzła "razy" wsadzałem w drzewo wynik cząstkowy "24"), miałem coraz prostsze drzewo, a na końcu całe drzewo zostało bez gałęzi, zostawał sam wynik.

Coś takiego mi się udało wtedy wymyśleć, możliwe że można to też inaczej zrobić od strony algorytmu.

Ten post edytował PrinceOfPersia 24.01.2014, 16:03:36
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 13:01