[c#] Kalkulator

0

Cześć!

Chce sobie napisać Kalkulator, praktycznie identyczny z tym udostępnionym w Windowsie (chodzi mi o wersje podstawową).
Nie jest to takie proste jakby się wydawało, ze względu na ilość różnych przypadków przy wprowadzaniu danych oraz ich wypisywaniu.

Ktoś ma jakiś artykulik opisujący chociaż troszkę algorytm działania takiego kalkulatora ? Znalazłem coś na ten temat tutaj: http://www.codeproject.com/KB/recipes/calculator_application.aspx, gdzie w komentarzu dodatkowo znalazłem informację, że kalkulator powinno się pisać jak kompilator :) (budować drzewko itd.)

Dodatkowo znalazłem jeszcze http://www.codeproject.com/KB/cs/vivounicorn.aspx, nie mniej jednak ten kod mnie odstrasza i jestem przekonany, że można to napisać ładniej.

Będę wdzięczny za jakiekolwiek info.

0

Ja na twoim miejscu z tym kalkulatorem bym sie tak nie pieprzyl. Pisalem kiedys kalkulator w J2ME. Wykozystalem wtedy StringBuffered w C# jest to tzw. StringBuilder i po prostu po kliknieciu klawisza od 0 do 9 dodaje jeden znak. W chwili klikniecia przycisku robie rzutowanie na float'a (jesli dasz mozliwosc wstawiania przecinka). Oczywiscie do zdarzen niektorych klawiszy robisz pare warunkow typu, ze wiecej niz 2 przecinki nie mozna postawic itp.

0

Poczytaj o odwrotnej notacji polskiej:
http://pl.wikipedia.org/wiki/Odwrotna_notacja_polska

  • google oczywiście ;D

Jeśli chodzi o błędy przy wprowadzaniu to sprawdź wyrażeniami regularnymi czy są jakieś nie dozwolone znaki. Reszta błędów powinna być łatwa do wyłapania podczas działania alg.

0

Tak się właśnie zastanowiłem i rzeczywiście na ONP spokojnie da radę to zrobić. Zresztą artykuł podany w poprzednim poście to także opisuje.
Pokombinuje coś :)

Dzięki

1

Na tej stronie (edit - chodzi oczywiście o 4p) są co najmniej 3 artykuły (tyle widziałem) odnośnie właśnie wyliczania wyrażeń, w tym jeden w delphi, jeden nie wiem, a jeden co prawda w C# (mój! :] ), ale z niego nie korzystaj bo 1) przy pisaniu wkleiłem tam przez przypadek starszą, lekko zabugowaną wersję kodu, i 2) napisałem go jako dowód że da się bez ONP... Na pewno nie jest to dobry sposób. :)

0

Tylko po co od razu jakaś ONP do zwykłego kalkulatora.
Wystarczy pamiętać ostatnią liczbę i działanie.
Ale jeśli komuś koniecznie potrzebna na to mądra nazwa to proszę: maszyna stanów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1