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
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

( ).
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
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
ZX Spectrum mialo 16KB, ZX81 8KB ..
Tylko dla zachowania prawdy historycznej

-
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
ZX Spectrum mialo 16KB, ZX81 8KB ..
Tylko dla zachowania prawdy historycznej

-
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

) znajomości ONP w praktyce - bo czasem można się zamotać jak nie jest
się wprawnym (a ja nie jestem

)
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
ZX Spectrum mialo 16KB, ZX81 8KB ..
Tylko dla zachowania prawdy historycznej

-
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