Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kalkulator z nieograniczoną liczbą działan C++

Ostatnio zmodyfikowano 2012-10-11 16:23
Autor Wiadomość
pekfos
» 2012-10-10 14:56:27
tylko jak teraz dodać funkcjonalność, żeby parser obsługiwał chociaż jedną zmienną, którą wprowadza użytkownik i to w dowolnym miejscu?
Krótko mówiąc: chcesz napisać program rozwiązujący równania. Obawiam się, że "masz zdecydowanie za małą wiedzę na zrealizowanie tego".

Zapewne masz jeszcze za słaby parser. Czy poradziłby sobie z takim wejściem:?
sin(2-0.86*22)
W tym wyrażeniu jest ukryte kilka pułapek, na które zbyt słaby parser się złapie:
  • działania oznaczone więcej niż jednym znakiem (sin)
  • Liczby zmiennoprzecinkowe (0.86)
  • Brak odstępów
P-66558
crash
» 2012-10-10 16:24:09
pefkos@ Parser na razie nie obsługuje funkcji trygonometrycznych. Co do wiedzy to rzeczywiście, dopiero trzy lata w C, ale łącznie już 9 jeśli liczyć do tego Delphi. Zamiast w kółko pisać bzdurne bzdury na zaliczenia, chciałbym w końcu coś lepszego napisać, i własnie marzy mi się m.in. parser. Na sam początek zmienne, chociaż jedna.

A co do wiedzy raz jeszcze - człowiek głupi się urodził i głupi umrze
P-66561
SeaMonster131
» 2012-10-10 16:35:37
Zrób jakiś znak lub słowo kluczowe. Jeżeli się pojawi, to możesz w jakiś sposób operować na std::map (tak mi się wydaje, nie do końca wiem na jakiej zasadzie to działa) bądź stworzyć klasę zmienna, zawierającą nazwę zmiennej i jej wartość, a następnie vector tej klasy (vector <klasa> nazwa). Wtedy tylko dajesz te nazwy i wartości do tego vectora.
P-66562
pekfos
» 2012-10-10 18:31:47
pefkos@ Parser na razie nie obsługuje funkcji trygonometrycznych.
Chyba mylisz pojęcia.
Analizator składniowy lub parser – program dokonujący analizy składniowej danych wejściowych w celu określenia ich struktury gramatycznej w związku z określoną gramatyką formalną. Nazwa analizator składniowy podkreśla analogię z analizą składniową stosowaną w gramatyce i językoznawstwie. Analizator składniowy umożliwia przetworzenie tekstu czytelnego dla człowieka w strukturę danych przydatną dla oprogramowania komputera.
http://pl.wikipedia.org/wiki/Parser
Parser ma rozbić skrypt/wyrażenie na strukturę danych którą potem będziesz interpretować. Dopiero później można mówić o obsługiwaniu.


PS: pekfos się inaczej pisze :P
P-66568
crash
» 2012-10-11 00:03:07
Pisałem pm na jutubie do autora filmiku i wskazał użycie kontenera map. Nie za bardzo widziało mu się cokolwiek więcej napisać więc mu odpuściłem ;) Powoli nabieram motywację by odkurzyć kod i wziąć się w garść. Przyszedł mi pomysł przy okazji, jak rozwiązać problem z f. trygonometrycznymi - np. w instrukcji do programu napisać, by funkcje trygonometryczne poprzedzić znakiem specjalnym, nie wiem #, @ - będzie to ułatwieniem dla analizatora.

Pefkos sorka za nick, oby to był przedostatni raz ;p
P-66603
SeaMonster131
» 2012-10-11 16:23:30
Pefkos sorka za nick, oby to był przedostatni raz ;p
Haha :P

Na warsztacie jest artykuł odnośnie pisania parsera matematycznego, w drugiej części jest właśnie o funkcjach trygonometrycznych. Niestety kod na tej stronie nie prezentuje się estetycznie.. :)
http://warsztat.gd/wiki/Parser+Matematyczny+-+Cz%C4%99%C5%9B%C4%87+I
http://warsztat.gd/wiki/Parser+Matematyczny+-+Cz%C4%99%C5%9B%C4%87+II
http://warsztat.gd/wiki/Parser+Matematyczny+-+Cz%C4%99%C5%9B%C4%87+III

Ogólnie możesz też spróbować znaleźć coś w google:
Frazy, które należy wpisać w wyszukiwarkę google:
P-66631
1 « 2 »
Poprzednia strona Strona 2 z 2