Odwrotna Notacja Polska - pytania

Użytkownik "Padre_peper" snipped-for-privacy@no.net napisał w wiadomości news:fm38lj$rno$ snipped-for-privacy@mx1.internetia.pl...

Dla wprawnego wystarczy cokolwiek, czym biegle umie się posługiwać,także suwak logarytmiczny. Wprawny ma taki kalkulator od lat i go nie musi robić od podstaw. Ryzyko pomyłki w programie jest duże.

A ja sięgam po Excel jak mi moje "dziadki" nie wystarczą :-) Ongiś lubiłem radziecki kalkulator z wbudowanym BASICiem. Bardzo fajna to była zabawka. Programowało się go podobnie jak ZX81 i prawie tyle samo umiał. Akumulatory w nim już zdechły, a prądożerny był. Najczęściej jednak używam kalkulatora z Windows, bardzo leciwym nieprogramowalnym Privilegiem ze wszystkimi funkcjami inżynierskimi, bez baterii (ogniwa słoneczne ma) nie gardząc.

Reply to
lwh
Loading thread data ...

Zależy co dokładnie chcemy osiągnąć. Do obliczenia wyrażenia algebraicznego podanego w całości jako string wklepany z klawiatury np: "1+2*3-4.0--5*sin(6*(7+8))" trzeba pomyśleć o jakimś parserze gramatycznym. Zwykłe ONP oczywiście jest prostsze w implementacji.

Reply to
tbird

Pan PAndy napisał:

Jak DOS był tylko w wersji angielskiej (a później jeszcze w kilku dodatkowych językach), to chcąc pisać po polsku, trzeba było załadować do pamięci sterownik klawiatury. A jak już były karty EGA i VGA, to również program dbający o to, by wiedziały one jak wyglądaja litery z ogonkami, nawet po resecie związanym ze zmiana trybu wyświetlania. Trwało więc nieustające competition, kto napisze program do obsługi klawiatury i monitora zajmujący mniej miejsca. Mnie się udało naskrobać drajwer klawiatury na 206 bajtów i obsługę VGA w 460 bajtach (z czego dwie trzecie to oczywiście same kształty liter). Nic mi nie wiadomo aby ktoś zrobił krótsze. Ale ruchome obrazki w 1KB też były fajne.

Reply to
Jarosław Sokołowski

Pan tbird napisał:

Co chcemy osiągnąć, to napisano w temacie wątku. RPN ma to do siebie, że nie wymaga 'jakiegoś parsera gramatycznego', bo w zasadzie w tym zapisie nie ma gramatyki. Wystarczy natychmiastowe wykonanie tego, co po kolei brane jest ze stosu.

Reply to
Jarosław Sokołowski
[...]

A gry w 256 bajtach na VGA? Z licznikiem ;-) Też takie są...

A jak się chwilimy, to całą gębą - mój driver drukarki (grafika 72x72 dpi) na własnoręcznie zbudowanym porcie równoległym do Spectrum i programu Art Studio (kto pamięta?) miał chyba 89 bajtów. Driver do Tasworda (tak to się chyba nazywało), obsługujący na tym samym porcie drukarki polskie litery i całe mnóstwo ozdobnych trybów też coś koło tego. Driver obsługujący BASICowe LPRINT i LLIST trochę większy - ok.

120 bajtów. Wszystkie obsługiwały rewelacyjnie szybką (200 cps) jak na tamte czasy i stosunkowo mało znaną drukarkę Star Radix 15.

Na Spectrum popełniłem też program w BASICu, obsługujący... dalekopis jako drukarkę przez wyjście... słuchawkowe/nagrywania. Wykorzystałem specyfikę komendy PAUSE 1. Od strony elektrycznej był to banalny układ z wykorzystaniem jedynego jFETa, jakiego miałem pod ręką: 2SK41E (plus bodaj BC313 jako driver pętli 40 mA) - zniewaga straszna, wykorzystać FETa UKF do nadawania z prędkością 50 bodów ;)

Reply to
RoMan Mandziejewicz

Dnia 09.01.2008 Igon Skrzypek snipped-for-privacy@gmail.com.reszta.to.smiec>

napisa³/a:

Taka sprawdzona rada "jak szybko przej¶æ na Odwrotn± Notacjê Polsk±".

  1. Wszystkie oepracje traktuj jak funkcje. Czyli zamiast a + b, pomysl o funkcji 'dodaj(a, b)'.
  2. Zapisz w ten sposób swoje wyra¿enie do obliczenia. Np: (a + b) * (c - d) => mnoz(dodaj(a, b), odejmij(c, d))
  3. Nazwê funkcji przesuñ ZA jego nawiasy z parametrami, np. dodaj(a, b) => (a, b)dodaj
  4. No i juz masz zapis w odwrotnej notacji :). Tam gdzie trafisz na przecinek wciskaj ENTER.

(a + b) * (c - d) =>

mnoz(dodaj(a, b), odejmij(c, d)) =>

(((a, b)dodaj, (c, d)odejmij)mnoz =>

a b + c d - *

Fajne, nie?

Reply to
Zenek

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.