RTV forum PL | NewsGroups PL

Odwrotna Notacja Polska w projekcie kalkulatora na mikroprocesorze 32/256 KB

Odwrotna Notacja Polska - pytania

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Odwrotna Notacja Polska w projekcie kalkulatora na mikroprocesorze 32/256 KB

Goto page 1, 2  Next

Igon Skrzypek
Guest

Wed Jan 09, 2008 1:59 am   



Witam!

Wiem, że prawdopodobnie powinno iść na grupę o programowaniu - ale
pewnie nie jednen z was próbował napisać kiedyś kalkulator lub coś
podobnego - a za to właśnie się biorę - dlatego mam parę pytań:

1) czy to wogóle realne do zaimplementowania na mikroprocesorze dość
małym - np 32 kb lub 256 kb pamięci flash??
2) jak dobrać pryjorytety operatorów (może macie gotową tabelę) -
zwłaszcza jak dobrać pryjorytety operatorów typu sinus, cosinus itp
3) jak implementować stos - używać tego wbudowanego czy zbudować własny
oparty o zmienne itp

Sorka za lekki OT - ale na grupie programistycznej raczej dostałbym
odpowiedzi w stylu gotowy kod C na komputer - a nie za bardzo jeszcze
potrafię przekształcać jedno w drugie :)

Pozdrawiam,
Igon

Darek
Guest

Wed Jan 09, 2008 3:02 am   



Igon Skrzypek wrote:
Quote:
2) jak dobrać pryjorytety operatorów (może macie gotową tabelę) -
zwłaszcza jak dobrać pryjorytety operatorów typu sinus, cosinus itp

Cytat ze strony http://pl.wikipedia.org/wiki/Odwrotna_notacja_polska

: Zapis ten pozwala na całkowitą rezygnację z użycia nawiasów w
: wyrażeniach, jako że jednoznacznie określa kolejność
: wykonywanych działań.

Igon Skrzypek
Guest

Wed Jan 09, 2008 3:05 am   



No tak - ale trzeba zdefiniować który operator ma jaki pryjorytet
podczas przetwarzania z zapisu algebraicznego na ONP - np jak nada sie
dodawaniu większy pryjorytet niż mnożeniu to zostanie wykonane najpierw
- prowadząc do błędnych obliczeń - i teraz dokładnie nie wiem jakimi
pryjorytetami opatrzyć np funkcje - tak by można było w nich (za pomocą
algebraicznych nawiasów) zagnieżdżać dodatkowe obliczenia np jak nadać
pryjorytety by zapis sin(180+5) dawał taki sam wynik jak zapis sin(185)

RoMan Mandziejewicz
Guest

Wed Jan 09, 2008 3:16 am   



Hello Igon,

Wednesday, January 9, 2008, 3:05:30 AM, you wrote:

Quote:
No tak - ale trzeba zdefiniować który operator ma jaki pryjorytet

Litości! http://sjp.pwn.pl/lista.php?co=priorytet

[...]

--
Best regards,
RoMan mailto:roman@pik-net.pl
Spam: http://www.allegro.pl/sklep/7416823_squadack Smile

Darek
Guest

Wed Jan 09, 2008 3:23 am   



Igon Skrzypek wrote:
Quote:
No tak - ale trzeba zdefiniować który operator ma jaki pryjorytet
podczas przetwarzania z zapisu algebraicznego na ONP

http://en.wikipedia.org/wiki/Order_of_operations
Uwaga, wymagana znajomość języka angielskiego.

Waldemar Krzok
Guest

Wed Jan 09, 2008 8:02 am   



Igon Skrzypek schrieb:
Quote:
No tak - ale trzeba zdefiniować który operator ma jaki pryjorytet
podczas przetwarzania z zapisu algebraicznego na ONP - np jak nada sie
dodawaniu większy pryjorytet niż mnożeniu to zostanie wykonane najpierw
- prowadząc do błędnych obliczeń - i teraz dokładnie nie wiem jakimi
pryjorytetami opatrzyć np funkcje - tak by można było w nich (za pomocą
algebraicznych nawiasów) zagnieżdżać dodatkowe obliczenia np jak nadać
pryjorytety by zapis sin(180+5) dawał taki sam wynik jak zapis sin(185)

180 5 + sin
185 sin

w ONP nie ma priorytetów, tylko jest obliczane po kolei. A ile
potrzebujesz pamięci i jaki procesor to zależy od funkcji, które chcesz
zaimplementować i głębokości stosu. Dodawanie, odejmowanie mnożenie i
dzielenie na 3 elementowym stosie da się zaimplementować na Tiny12.
Co do implementacji pełnego kalkulatora, to obejrz sobie program dc pod
Linuxa ;-)

Waldek

Mariusz Wolek
Guest

Wed Jan 09, 2008 8:35 am   



Użytkownik "Waldemar Krzok" <waldemar.krzok@infocity.de> napisał w
wiadomości news:5uj9sjF1hhddeU1@mid.uni-berlin.de...
Quote:
Igon Skrzypek schrieb:
No tak - ale trzeba zdefiniować który operator ma jaki pryjorytet podczas
przetwarzania z zapisu algebraicznego na ONP - np jak nada sie dodawaniu
większy pryjorytet niż mnożeniu to zostanie wykonane najpierw - prowadząc
do błędnych obliczeń - i teraz dokładnie nie wiem jakimi pryjorytetami
opatrzyć np funkcje - tak by można było w nich (za pomocą algebraicznych
nawiasów) zagnieżdżać dodatkowe obliczenia np jak nadać pryjorytety by
zapis sin(180+5) dawał taki sam wynik jak zapis sin(185)

180 5 + sin
185 sin

w ONP nie ma priorytetów, tylko jest obliczane po kolei. A ile
potrzebujesz pamięci i jaki procesor to zależy od funkcji, które chcesz
zaimplementować i głębokości stosu. Dodawanie, odejmowanie mnożenie i
dzielenie na 3 elementowym stosie da się zaimplementować na Tiny12.

Ale on pyta o przetworzenie z zapsu tradycyjnego na ONP - a tu priorytety są
konieczne. Problem z tego co pamietam jest opisany w którymś z klasyków
"Algorytmy+struktury danych=programy" Wirth-a albo "Sztuka programowania"
Knuth. Skany zapewne są

MaW

Waldemar Krzok
Guest

Wed Jan 09, 2008 9:37 am   



Mariusz Wolek schrieb:
Quote:

Użytkownik "Waldemar Krzok" <waldemar.krzok@infocity.de> napisał w
wiadomości news:5uj9sjF1hhddeU1@mid.uni-berlin.de...
Igon Skrzypek schrieb:
No tak - ale trzeba zdefiniować który operator ma jaki pryjorytet
podczas przetwarzania z zapisu algebraicznego na ONP - np jak nada
sie dodawaniu większy pryjorytet niż mnożeniu to zostanie wykonane
najpierw - prowadząc do błędnych obliczeń - i teraz dokładnie nie
wiem jakimi pryjorytetami opatrzyć np funkcje - tak by można było w
nich (za pomocą algebraicznych nawiasów) zagnieżdżać dodatkowe
obliczenia np jak nadać pryjorytety by zapis sin(180+5) dawał taki
sam wynik jak zapis sin(185)

180 5 + sin
185 sin

w ONP nie ma priorytetów, tylko jest obliczane po kolei. A ile
potrzebujesz pamięci i jaki procesor to zależy od funkcji, które
chcesz zaimplementować i głębokości stosu. Dodawanie, odejmowanie
mnożenie i dzielenie na 3 elementowym stosie da się zaimplementować na
Tiny12.

Ale on pyta o przetworzenie z zapsu tradycyjnego na ONP - a tu
priorytety są konieczne. Problem z tego co pamietam jest opisany w
którymś z klasyków "Algorytmy+struktury danych=programy" Wirth-a albo
"Sztuka programowania" Knuth. Skany zapewne są

skan i drzewo binarne.

Waldek

Roman
Guest

Wed Jan 09, 2008 10:07 am   



"Igon Skrzypek" <igon.skrzypek@gmail.com.reszta.to.smiec> wrote in message
news:fm18uv$2fs$1@matrix2.idg.com.pl...
Quote:
No tak - ale trzeba zdefiniować który operator ma jaki pryjorytet
podczas przetwarzania z zapisu algebraicznego na ONP - np jak nada sie
dodawaniu większy pryjorytet niż mnożeniu to zostanie wykonane najpierw
- prowadząc do błędnych obliczeń - i teraz dokładnie nie wiem jakimi
pryjorytetami opatrzyć np funkcje - tak by można było w nich (za pomocą
algebraicznych nawiasów) zagnieżdżać dodatkowe obliczenia np jak nadać
pryjorytety by zapis sin(180+5) dawał taki sam wynik jak zapis sin(185)

Spoko ! Algorytm przetworzenia tekstowego zapisu wyrażenia matematycznego do
ONP jest prościutki, bardzo logiczny i bardzo jednoznaczny -
implementowałem to w swojej pracy mgr 30 lat temu na "maszynie cyfrowej
ODRA" !!!. Więc teraz masz sto razy łatwiej - poszukaj tylko materiałów
teoretycznych nt. ONP (moje się nie zachowały Sad( ).

Roman

J.F.
Guest

Wed Jan 09, 2008 11:05 am   



On Wed, 09 Jan 2008 01:59:34 +0100, Igon Skrzypek wrote:
Quote:
Wiem, że prawdopodobnie powinno iść na grupę o programowaniu - ale
pewnie nie jednen z was próbował napisać kiedyś kalkulator lub coś
podobnego - a za to właśnie się biorę - dlatego mam parę pytań:

1) czy to wogóle realne do zaimplementowania na mikroprocesorze dość
małym - np 32 kb lub 256 kb pamięci flash??

Wielokrotnie za duzo Smile
ZX Spectrum mialo 16KB, ZX81 8KB ..

Quote:
2) jak dobrać pryjorytety operatorów (może macie gotową tabelę) -
zwłaszcza jak dobrać pryjorytety operatorów typu sinus, cosinus itp

Hm, przy ONP nie masz tego problemu wcale.


Quote:
3) jak implementować stos - używać tego wbudowanego czy zbudować własny
oparty o zmienne itp

Raczej ci sie nie uda wbudowanego. On do wywolan programu
[assemblerowego] sluzy.

J.

J.F.
Guest

Wed Jan 09, 2008 12:29 pm   



On Wed, 09 Jan 2008 09:37:29 +0100, Waldemar Krzok wrote:
Quote:
Mariusz Wolek schrieb:
Ale on pyta o przetworzenie z zapsu tradycyjnego na ONP - a tu
priorytety są konieczne. Problem z tego co pamietam jest opisany w
którymś z klasyków "Algorytmy+struktury danych=programy" Wirth-a albo
"Sztuka programowania" Knuth. Skany zapewne są

skan i drzewo binarne.

eee .. jakie skany ?
To jest gramatyka ktorejs tam klasy, da sie na biezaco
z niewielkim stosem.

Czytac przyklady do yacc/bison :-)

J.

PAndy
Guest

Wed Jan 09, 2008 3:28 pm   



"Artur Stachura" <menossc@wp.pl> wrote in message
news:slrnfo9krs.45j.menossc@bolek.ped.univ.szczecin.pl...
Quote:
On Wed, 09 Jan 2008 11:05:56 +0100, J.F <jfox_xnospamx@poczta.onet.pl
wrote:

Wielokrotnie za duzo Smile
ZX Spectrum mialo 16KB, ZX81 8KB ..

Tylko dla zachowania prawdy historycznej Smile -
ZX81 miał 1 KB; więcej (do 64KB) dokładane w zewnętrznych modułach.

J.F. pewnie chodzilo o ROM w ktorym implementowane sa procedury
obliczeniowe, zapotrzebowanie na RAM nie jest tak potezne

Artur Stachura
Guest

Wed Jan 09, 2008 3:42 pm   



On Wed, 09 Jan 2008 11:05:56 +0100, J.F <jfox_xnospamx@poczta.onet.pl> wrote:
Quote:

Wielokrotnie za duzo Smile
ZX Spectrum mialo 16KB, ZX81 8KB ..

Tylko dla zachowania prawdy historycznej Smile -
ZX81 miał 1 KB; więcej (do 64KB) dokładane w zewnętrznych modułach.

--
Artur Stachura

Igon Skrzypek
Guest

Wed Jan 09, 2008 4:58 pm   



Quote:
2) jak dobrać pryjorytety operatorów (może macie gotową tabelę) -
zwłaszcza jak dobrać pryjorytety operatorów typu sinus, cosinus itp

Hm, przy ONP nie masz tego problemu wcale.
Przy ONP owszem nie ma, ale przy konwersji zapisu z algebraicznego na

ONP już jest - a kusi mnie do zrobienia czegoś na podobe kalkulatorów
naukowych - że można wpisać cały ciąg operacji a dopiero później wykonać
je - nie chce też oczekiwać od potencjalnego użytkownika (czyli siebie
Very Happy) znajomości ONP w praktyce - bo czasem można się zamotać jak nie jest
się wprawnym (a ja nie jestem Very Happy)

Artur Stachura
Guest

Wed Jan 09, 2008 5:42 pm   



On Wed, 9 Jan 2008 15:28:47 +0100, PAndy <pandrw_cutthis_@poczta.onet.pl> wrote:
Quote:

"Artur Stachura" <menossc@wp.pl> wrote in message
news:slrnfo9krs.45j.menossc@bolek.ped.univ.szczecin.pl...
On Wed, 09 Jan 2008 11:05:56 +0100, J.F <jfox_xnospamx@poczta.onet.pl
wrote:

Wielokrotnie za duzo Smile
ZX Spectrum mialo 16KB, ZX81 8KB ..

Tylko dla zachowania prawdy historycznej Smile -
ZX81 miał 1 KB; więcej (do 64KB) dokładane w zewnętrznych modułach.

J.F. pewnie chodzilo o ROM w ktorym implementowane sa procedury
obliczeniowe, zapotrzebowanie na RAM nie jest tak potezne

A, to się zgadza; odruchowo pomyślałem o pamięci "do zagospodarowania
przez użytkownika".

--
Artur Stachura

Goto page 1, 2  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Odwrotna Notacja Polska w projekcie kalkulatora na mikroprocesorze 32/256 KB

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map