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?

Obrázok

 

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

Obrázok:

 

 

 

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