S H A R P EL-5020
Popis
Programovanie
Nieko¾ko tipov
Riešenie sústavy dvoch lineárnych rovníc s dvoma neznámymi
Kvadratická rovnica
Vektorový súèin
Prvoèísla
Náhodné
èísla?
Popis:
Je to kalkulaèka bez grafiky so všetkými funkciami potrebnými na strednej
škole a možno aj nieèo naviac.
Displej 10+2+okienko na meno funkcie.
|
plusy |
| +
ideálna na programovanie vzorcov,
prípadne jednoduchších programov napr. : automaticky si pýta hodnoty použitých premenných |
| + dlhá výdrž bateriek (najmenej 4 roky som ešte nemenil baterky) |
| + odolnos voèi pádu na zem:-) (mnohokrát vyskušané ;)) |
|
mínusy |
| - nemá goto, má len príkaz Ak je podmienka splnená (jedna z x>M,x>=M,x<M,x<=M,x=M,x!=M) skok na zaèiatok programu |
| - má len 40 krokov |
| - len dva programy naraz |
| - nedá sa pripoji na PC ani nijako rozšíri jej moznosti |
|
? |
| ? zadávanie vzorcov "tak ako sú" napr. na výpoèet sin 30 stlaèíte SIN a až potom 30 - niekomu to možno nevyhovuje |
Programovanie:
Budem používa tieto znaèky:
|
=> |
STO |
|
x^2 |
x na druhú |
|
_ |
"podèiarknik" (prázdny príkaz) |
|
, |
èiarka (zobrazenie výsledku) |
|
: |
delene |
|
1/2 |
jedna polovica (ako zlomok) |
|
10^x |
desa na x-tú |
|
x!=M |
x sa nerovná M |
|
* |
krát |
Nieko¾ko tipov:
Možte vynecháva * (krát), ako aj
¾avé èi pravé zátvorky (samozrejme v
"rozumnom" zmysle, nie všetky! ;-)), ako aj = (rovná sa)
Programy možte spúša aj v iných
èíselných sústavách ako 10, samozrejme s
obmezdením funkcií, desatín, zlomkov a
èíslic (napr. žiadne devinky v binárnej
sústave), ostáva v podstate len +-*:,práca s pamaami a podm. skoky. Ve¾ké
využitie tohto nevídim, možno vo¾akoho daèo napadne.
Kedže nemá napr. goto, zložitejšie programy ako napr. hry nemožte písa.
Kalkulaèka si pýta hodnoty v poradí ako sa vyskytujú, ak (pre pohodlie) ich je
treba zadáva v poradí je vhodné da na zaèiatok ich súèin, oddelený medzerou
(použil som to aj v programoch nižšie)
Èasto je treba výsledok zaokrúhli na celé
èíslo, ja používam :
nejaký výsledok... +1/2+10^x 9 =>F -10^x 9 -1 ...je výsledok zaokrúhlený nadol
(odrezaná desatinná
èas).
Je to zatia¾ najlepši spôsob,
èo sa mi podaril. Prípadne, je možne spusti
program napr. v 16-kovej sústave a tam sa zaokrúhli každý výsledok.
Niektoré moje programy:
Riešenie sústavy dvoch lineárnych rovníc s dvoma neznámymi
èo rieši: Ax+By=C Dx+Ey=F
program: ABCDEF_BD-AE=>MBF-CE):M,CD-AF):M (30 krokov)
ukáže najprv x potom y, ak vyhodí chybu, nemá rovnica jednoznacné riešenie
Kvadraticka rovnicaèo rieši: Ax^2 + Bx + C =0 program: ABC_Bx^2-4AC=>D,-B+odmocnina D):2A,-B-odmocnina D):2A (30 krokov)
najprv ukáže diskriminant, potom (ak D<0 vyhodí chybu) x1 a x2
Vektorový súèinèo rieši: u= [A,B,C] v= [D,E,F] w= u x v
program: ABCDEF_BF-CE,CD-AF,AE-BD ukáže postupne x,y,z-ovú zložku výsledného vektora
Prvoèísla
B+2=>B M:B+1/2+E=>F-E-1=>F BF x!=M B=>F 1=>B M+ M+ F+2 x!=M M-2,x!=M (37 krokov)
zadajte 1 do B, 3 do M a 1000000000 do E.
program vypisuje nepárne prvoèísla 3,5,7,11,13,...
Program možte spúšta aj v 8 èi 16-kovej sústave, ak ho upravíte:
B+2=>B M:B*B x!=M B=>F 1=>B M+ M+ F+2 x!=M M-2,x!=M (25 krokov)
Náhodné èísla?
Kalkulaèka má funkciu RANDOM (RND) - poèíta náhodné
èísla.
Pokúšal som sa zisti, ako to funguje:
1) Pokia¾ je v pamati F hodnota v intervale <10^(-8) ; (1 -
10^(-10)) > upraví sa toto èíslo na osem desatinnych
èíslic, vynásobí sa 23,
pripoèíta sa 10^(-8) a odreže sa celá
èas. Výsledok sa uloží do pamate F a jeho
tri desatinné miesta sa objavia ako výsledok RND.
2) Nepodarilo sa mi zisti ako sa poèíta, keï neplatí 1)
(napríklad ak je v F nula) - ak niekto vie
ozvite sa mi, prípadne mi napíšte ako pocita RND vaša kalkulaèka.
Viem len asi toto: hodnota zrejme nebude poèítana z nejakého vzorca, pôjde asi o
èasovú závislos. Okrem toho to je pomalšie (asi 7-krat).
Zaujimavé je, že program, ktorý spriemeruje sto náhodných
èísel
RND+A=>A B+1=>B x<M A:M (napr. 100-> M, po spustení dáte do A aj B nulu)
dáva výsledok ako by ste
èakali - blízky 0.5
ale program
=>F RND+A=>A B+1=>B x<M A:M (napr. 100-> M, po spustení dajte do A aj B nulu)
(rozdiel oproti predchádzajúcemu je len vo vynulovaní F pred spustením funkcie
RND)
dá výsledok hlboko pod priemerom (napr. mne dalo 0.23)
a program s jednou medzerou naviac (medzera _ slúži ako malinké oneskorenie,
inak neovplyvòuje výsledok)
_=>F RND+A=>A B+1=>B x<M A:M (napr. 100-> M, po spustení dáte do A aj B nulu)
dá zas vždy výsledok nad priemerom napr. 0.58.
ak pridáte ïalšiu medzeru výsledok sa opä prudko zmení.

Otázky, návrhy, pochvaly, dojmy k tomuto èlánku -> michalmaly@yahoo.com