V následujících odstavcích a kapitolách bych vás rád seznámil (doufám, že srozumitelně) se základními rysy programovacího jazyku vyšších řad kalkulátorů firmy Texas Instruments. Programování je totiž velkou výhodou při opakovaných výpočtech, čímž se minimalizuje výskyt chyb a zkracuje čas potřebný k výpočtu. Často se programů využívá i k tzv. simulacím, které nám mohou nastínit vlastnosti zkoumaných předmětů, aniž bychom je fyzicky zkoušeli. V prvních kapitolách vás seznámím s proměnnými a základními programovými strukturami. Zmíním se také o využití funkcí a některých specialit kalkulačky. Doufám, že nebudu tyto řádky psát zbytečně, když už je píšu zadarmo, a že vám aspoň trochu pomohou v programování na kalkulačkách TI.
..Něco málo do začátku. . .
Program je na kalkulačkách Texas Instruments v podstatě soubor příkazů. Způsob "kompilování" je ale trošku odlišný od počítačových kompilátorů. Jde tu spíš o zpracování řady příkazů. Když tedy spouštíte program, případné chybové hlášení se zobrazí až po chybě vyvolané pokusem o provedení onoho příkazu. Na kalkulačkách TI 89/92Plus a Voyage se můžeme setkat i s aplikacemi a programy psanými přímo v assembleru. Operační systém totiž přímo podporuje spouštění assemblerovských kódů (ale jedná so o ASM pro procesory Motorola 68k). To nás ale pro normální použití nemusí zajímat, vystačíme si zatím se zvládnutím základních algoritmických postupů kalkulačky.
Když chcete vytvořit nový program (stiskněte tlačítko Apps, menu 7 - Program editor, new.., program, umístění, název), objeví se vám okno kompilátoru a v něm už připravená hlavička a konec programu. V podstatě je to nápověda, jak by se mělo programovat: u syntaktického bloku si vždy zadávejte se začátkem rovnou i konec bloku a potom do něj vpisujte další příkazy. Zabráníte tak zbytečnému hledání chybějícího konce bloku v mnohdy nepřehledném programu. Jednotlivé příkazy jsou od sebe odděleny dvojtečkou " : ", která se vkládá automaticky po zakončení programového řádku klávesou Enter. Pokud se vám příkaz nevejde na řádek displaye, kompilátor pokračuje na nový, ale nemyslí na "kompletování" neúplného slova na nový řádek, tj. tak jak se vejde a zbytek na další řádek. Nepleťte si ale řádek displaye s programovým řádkem - ten je zakončen dvojtečkou. Dodám, že při zavření kompilátoru se program ukládá sám (!!!), takže pozor na úpravy a nechtěná mazání.
Operační systém
Operační systém v kalkulačce nemůže v žádném případě připomínat operační systém počítače. Správa hardwaru je poměrně jednoduchá a nevyžaduje tolik systémového času. Kromě displaye a klávesnice se systém stará o využití paměti RAM, která zde slouží i k ukládání uživatelských dat, a paměti FLAS- ROM, do níž lze archivovat data nebo ukládat rozšiřující aplikace. Operační systém dokonce počítá s prací s většími datovými oběmy (řádově kB - n*10 kB) a dokáže i defragmentovat. Samozřejmě je systém navrhnut pro výpočetní výkon, takže jen kvůli přehlednosti je k dispozici jednoúrovňový systém adresářů, které lze vytvářet i mazat (kromě systémové složky MAIN). Soubory jsou trochu odlišné od typů v PC, ale myšlenka je zachována. Díky tomu, že se jedná o kalkulačku, nebudeme ale mluvit o souboru, ale o proměnné. Lépe to totiž vystihuje i princip, s jakým se k proměnné přistupuje. Když pomineme speciální proměnné např. tabulek, dat nebo textu, očekává operační systém vždy nejprve obecný výraz. V případě, že lze výrazu přiřadit číselnou hodnotu přiřadí mu číselnou hodnotu, ale to se dozvíme jen na displayi. Povíme si o tom více později. Teď je důležité, že data v kalkulačce budeme nazývat proměnnými. Proměnným přiřazujeme jména - podobně jako v DOSu s délkou maximálně 8 znaků. Není povolen název začínající číslicí nebo operátorem (+,-,*,/,atd.). Také je třeba dávat pozor na rezervovaná slova, která mají obvykle význam příkazu nebo systémové proměnné. Příkazem budeme rozumět i vestavěné funkce (např. solve() ).
Bude také potřeba rozlišovat mezi příkazem v režimu HOME (běžné počítání) a příkazem v programu či funkci. V režimu HOME běží matematická nadstavba operačního systému - CAS. V tomto režimu lze totiž vyvolat (a tedy zobrazit) některé proměnné a přímo s nimi počítat. Při suštění programu se sice také jedná o posloupnost příkazů, ale jsou povoleny pouze příkazy programovací a volání funkcí nebo jiných programů. Jinými slovy, s výrazem "1+1" ve výpisu programu si kalkulačka neporadí, ale v režimu HOME ano (tuším, že to je 3 :-)
Typy proměnných
* Výraz (expression)
Je to základní typ proměnné. Do takovéto proměnné se ukládají čísla i symbolické výrazy typu x*y +2*sin(x+1). S výrazy lze provádět všechny matematické i logické operace.
* Řetězec (string)
lze do něj uložit jakýkoliv řeťezec znaků o maximální délce 255 znaků (delší se ani snad nepoužívá). Nad řetězci můžeme provádět pouze logické operace.
* Matice (matrix)
je matematický vynález. Nezkoušel jsem rozměry matice, ale větší než 20x20 snáší kalkulačka dost těžce (výrobce uvádí 99 sloupců x 999 řádků). Není problém používat komplexní čísla nebo symbolické výrazy, které ovšem konzumují více místa v paměti než obyčejná čísla. Speciálním případem je jednorozměrná matice, neboli vektor. Kalkulačka má vestavěné funkce vektorového počtu do třetí dimenze včetně, kde se vektory zadávají právě jako jednořádkové nebo jednosloupcové matice (jak to známe z algebry). S maticemi lze počítat obdobně jako s výrazy.
* Seznam (list)
je jednorozměrná obdoba matice. Vykazuje lepší přístup (a hlavně jiný) k jednotlivým členům seznamu. Používá se např. k počítání s konečnými číselnými řadami. Seznamy můžeme použít ve výpočtech stejně jako výrazy. Kalkulačka seznam bere jako několik výrazů, kde výpočet provede pro každý člen. Výsledkem takovéhoto počínání bývá opět seznam, tentokrát výsledků.
* Data
Proměnná typu data se používá pro statistické výpočty a to téměř výhradně (ti šikovnější si můžou vyzkoušet i jiná využití). Já osobně k ní mám odpor, protože se těžko přistupuje k jednotlivým prvkům. Hodnoty do této proměnné se dají vkládat jen pomocí editoru nebo speciálního příkazu NewData, ale o tom později. Počítání s daty uvedu jinde, protože se jedná o speciální operace.
* Systémové proměnné
S nimi musíme zacházet zvlášť opatrně, jsou vyhrazeny pro potřeby kalkulačky. Tam se ukládají informace o nastavení a některé se používají ve speciálních aplikacích (grafy, statistické výpočty). Jejich úplný výčet najdete na konci návodu k použití (za 100,- Kč vám je přepíšu a pošlu :-).
Existují ještě proměnné typu program, funkce, text, obrázek a sestavy grafu. Ty lze vytvářet a měnit jen pomocí editorů, které najdete pod klávesou Apps nebo v případě obrázku nebo sestavy grafu je vytvořit příkazem z příkazového řádku nebo z programu. Jiné typy jsou již podřízeny programům psaným v assembleru, kde si programátor volí "koncovku" sám, ale to už nepatří do těchto kapitol.