Skocz do zawartości

[Delphi]Jak zrobic nawiasy w kalkulatorze???


frees

Polecane posty

Przykładowy? Hmm wg mnie na nic nie zda ci się ten kod, bo go nie zrozumiesz - sam nie potrafisz go napisać. U mnie kod do obliczania wartości wyrażeń typu (12 * 10 + 2) / 5 + 10 mod 3 - (20 - 342 div 23) z uwzględnieniem nawiasów i priorytetu operatorów zajmuje ponad 300 linii. Masz tu link: parser_matematyczny albo wkleisz go do siebie nic nie rozumiejąc, albo, na co licze, na razie sobie to odpuścisz.
Link do komentarza
Udostępnij na innych stronach

Istnieje bardzo wiele technik na rozwiązanie tego problemu :twisted: .

Najbardziej popularny i stosowany "sposób" w większości językach skryptowych to "Odwrotna Notacja Polska" (tak, tak wymyślił to polak!).

Na czym on polega? Dużo by pisać tongue.gif Powstałby o tym cały art. Lepiej sobie zobacz na wikipediii (tam masz fachowo opisany):

http://pl.wikipedia.org/wiki/Odwrotna_notacja_polska

Istnieje jeszcze wiele innych technik. Można ofc zrobić to prościej niż w odwrtnej notacji polskiej. NP. Rekurencyjne przejście przez działanie tongue.gif 8).

Jednak na początek polecam Odwrotną Notacjię Polską wink.gif.[/url]

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

Mi też chodzi po głowie zrobienie kalkulatora z nawiasami.
[b]Narazie właśnie zmienne łańcuchowe, do przechowywania aktualnego stanu działania, zmienne znakowe do przechowywania działań, oraz zmienne typu i łańcuchowego i rzeczywistego. Czemu tak? Żeby można było wykonywać działania na liczbach dowolnej długości.
A to może być dobra baza np. do szukania liczb pierwszych.
Bo nie wiem, komu chciałoby się wstukiwać do kompa np 100 cyfr
Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...