17 Překladač Basicu 17.1 Povely Basiku Následující povely je možno používat pouze v konverzačním režimu. Nemohou být součástí programu. CONT (continue = pokračuj); kont Tento povel způsobí, že po přerušení se bude pokračovat ve vykonávání programu. Přerušení se způsobí buď stiskem přeřazené funkční klávesy 1 nebo provedením povelu STOP. Povšimněte si, že program nemůže pokračovat povelem CONT poté, co došlo k chybě, poté, co program normálně skončil nebo pokud program ještě nebyl spuštěn. V tomto případě Basic řekne "pokračování nedovoleno". DIR (directory = adresář); dir Tento povel vyvolá adresář disku, stejně jako přeřazená funkční klávesa 5. Můžete procházet adresářem pomocí kurzorových šipek. Stiskem klávesy Nový řádek zavedete aktuální soubor. EDIT (edit = upravuj); edit Tento povel umožňuje provádět změny programového řádku, aniž by se musel opsat. Syntax je EDIT číslo_řádku Pokud řádek existuje, je vysloven, načež začnou fungovat kurzorové šipky. Můžete se pohybovat doleva a doprava, mazat znaky nebo vkládat nový text. Stiskem klávesy Nový řádek se editace ukončuje. Je také možno používat vyslovovací povely (kombinace mezerníku a kurzorových šipek). FREE (free = volno); frí Tento povel vám oznámí, kolik volných bytů zbývá v paměti. Je ekvivalentní stisku přeřazené funkční klávesy 8. LIST (list = výpis); list Tento povel vypisuje program. Pokud není zadáno číslo řádku, výpis začne prvním řádkem. Jinak začne udaným číslem řádku. Výpis programu může být přerušen stiskem přeřazené funkční klávesy 1 (klávesa přerušení). Pokud během vyslovování řádku stisknete klávesu, vyslovování se přeruší a přejde na další řádek. Stisknutí funkční klávesy 2 je ekvivalentní povelu LIST. LLIST Tento povel pracuje stejně, jako LIST. Výpis programu však směřuje na tiskárnu. LOAD (load = zaveď); loud Povel umožňuje zavést (nahrát) program z disku. Syntax je LOAD "jméno_souboru" Přeřazená funkční klávesa 5 provede totéž, jako byste napsali LOAD a uvozovky. Ukončovací uvozovky jsou nepovinné. Pokud místo jména souboru napíšete otazník a stisknete Nový řádek, dostanete se do adresáře disku. V adresáři se můžete pohybovat prostřednictvím šipek a zavést aktuální soubor stiskem klávesy Nový řádek. LPRINT Tento povel pracuje stejně, jako příkaz PRINT. Na rozdíl od něj výstup směřuje na externí tiskárnu, nikoli na virtuální obrazovku ani na reproduktor. NEW (new = nový); ňú Tento příkaz maže paměť. Dojde ke smazání všech programových řádků a všech proměnných. RENUM (renumber = přečísluj); renum Povel přečísluje programové řádky. Syntax je RENUM počáteční_číslo , přírůstek Dojde k přečíslování celého programu tak, že se první řádce přiřadí počáteční číslo (první parametr povelu). Následující řádky mají číslo předchozího řádku zvětšené o přírůstek. Pokud není uvedena hodnota přírůstku, bere se 10. Pokud není uvedeno počáteční číslo, začne se od 10. RUN (run = běž); ran Tento povel spustí běh programu. Je možno uvést číslo řádku. Pak se program spustí od udaného čísla řádku. RUN je ekvivalentní funkční klávese 1. SAVE (save = ulož); sejv Povel umožňuje uložit program na disk. Syntax je SAVE "jméno_souboru" Stisknutí funkční klávesy 5 je ekvivalentní napsání SAVE a prvních uvozovek. Druhé uvozovky jsou nepovinné. Programové soubory se ukládají s příponou BAS. Jsou uloženy v binárním kódu a nejsou čitelné textovým procesorem. 17.2 Příkazy Basiku Všechny následující příkazy mohou být použity v programech. Některé ale nemohou být použity v konverzačním režimu. BEEP (beep = pípnutí); bíp Tento příkaz způsobí, že Eureka krátce pískne. CLEAR (clear = vymaž); klír Příkaz maže všechny proměnné. Pokud je za příkazem uveden numerický výraz, příkaz umožňuje přidělit více místa řetězcovým proměnným. Implicitně je pro řetězce vyhrazeno 256 znaků. Syntax je CLEAR výraz kde nepovinný výraz udává celkovou délku řetězcových proměnných. CLICK (click = cvaknutí); klik Tento příkaz způsobí, že Eureka vydá slyšitelný cvakavý zvuk, jeden z dvaceti možných zvuků. Syntax je CLICK číslo_zvuku kde číslo zvuku je v rozsahu 0 až 19. Povaha zvuku je ovliňována také příkazem PITCH. CURSOR Příkaz umožňuje určit, v jaké pozici na virtuální obrazovce bude umístěn další znak generovaný příkazem PRINT. Syntax je CURSOR x,y kde x je číslo sloupce v rozsahu 0 až 79; y je číslo řádku v rozsahu 0 až 23. Souřadnice 0,0 jsou v levém horním rohu obrazovky. DATA Klíčové slovo DATA uvádí seznam číselných nebo řetězcových konstant, které potom čte příkaz READ. Příkazy DATA se mohou vyskytnout kdekoli v programu. Aby je příkaz READ mohl číst, není třeba, aby již byly provedeny. Syntax příkazu je DATA const1, const2, const3, ... atd. Konstanty jsou odděleny čárkami. Řetězcové konstanty, pokud neobsahují mezery, čárky nebo středníky, nemusejí být uzavřeny v uvozovkách. DEF FN (define function = definuj funkci); def Tento příkaz umožňuje definovat uživatelskou funkci. Syntax je DEF jméno(argument)=výraz Jméno musí být složeno ze znaků "FN", za nimiž bez mezery následuje jedno nebo dvě písmena. Funkce se volá tímto jménem. Například, příkaz DEF FNA(X)=X*1.2345 definuje funkci, která násobí argument hodnotou 1.2345. Funkci je možno volat například takto: Y=FNA(5) Po provedení tohoto příkazu bude mít Y hodnotu 5*1.2345, což je 6.1725. Argument v příkazu DEF, uzavřený v závorkách, je formální parametr. Může se (ale nemusí) použít v následujícím výrazu. Jeho použití v příkazu DEF neovlivní proměnnou se stejným jménem kdekoli v programu. Při volání funkce se formální parametr nahradí skutečnou hodnotou argumentu. DIM (dimension = rozměr); dim Tento příkaz definuje pole a jejich dimenze. Zavádí se tím indexovaná proměnná (vektor, matice). Nejnižší index pole je nula, nejvyšší index je číslo, udané v příkazu DIM. Pokud se použije indexovaná proměnná bez předchozí definice příkazem DIM, má v každém indexu implicitní dimenzi 10. Syntax příkazu DIM je DIM proměnná(index1, index2, .... atd) Pole nesmí být definováno (dimenzováno) vícekrát. Pokud se o to pokusíte, má to za následek chybové hlášení. Příklad: Dvourozměrnou matici o šesti řádcích a pěti sloupcích definujeme příkazem DIM M(6,5) Je tím zavedena dvourozměrná indexovaná proměnná M(x,y). Pak můžeme využívat prvky matice označené M(1,1), M(1,2) ... M(1,5) M(2,1), M(2,2) ... M(2,5) ...... M(6,1), M(6,2) ... M(6,5) přičemž indexy mohou být výrazy i konstanty. END (end = konec); end Tento příkaz ukončí vykonávání programu. Pokud v programu nejsou žádné další řádky, není třeba příkaz END používat, program skončí sám od sebe. ERASE (erase = smazat); irejs Příkaz vymaže obsah virtuální obrazovky. FOR (for = pro); for FOR zahajuje cyklus, který se opakuje po daný počet opakování. Syntax je FOR proměnná=výraz1 TO výraz2 STEP výraz3 Klíčové slovo STEP a výraz3 jsou nepovinné. Když program přijde poprvé k FOR, řídicí proměnné se přiřadí hodnota výrazu 1. Pak se vykonávají příkazy, následující za FOR, až se dojde k příkazu NEXT. Proměnná se pak zvětší o hodnotu výrazu 3 (může být též záporná). Implicitní hodnota inkrementu je +1. Pak se provede porovnání s výrazem 2. Pokud hodnota proměnné je menší, než hodnota výrazu 2, program se vrací k prvnímu příkazu za příkazem FOR. V opačném případě se cyklus ukončí a program pokračuje prvním příkazem za příkazem NEXT. Protože porovnání se provádí až na konci příkazů uzavřených v cyklu, cyklus se provede nejméně jednou. Řídicí proměnná cyklu nemůže být řetězcová nebo indexovaná proměnná. FORMAT Tento příkaz umožňuje určit formát (tiskovou podobu) numerických hodnot, generovaných příkazy PRINT a LPRINT. Příkaz má tři možné formy syntaxe: 1) Normální formát: FORMAT 0 Při normálním formátu Basic vytváří nejkratší možný řetězec. 2) Pevná desetinná tečka: FORMAT 1,p,z V tomto formátu výraz p určuje počet míst před desetinnou tečkou a výraz z počet míst za desetinnou tečkou. 3) Exponenciální formát: FORMAT 2,e Výraz e určuje násobek použitého (dekadického) exponentu. Například e=3 bude formátovat čísla v technickém formátu. GOSUB (go to subroutine = jdi na podprogram); gousab Tento příkaz volá podprogram začínající na udaném čísle řádku. To znamená, že po příkazu GOSUB výkon programu přejde na udaný řádek. Když pak narazí na příkaz RETURN, řízení programu přejde na příkaz bezprostředně následující za příkazem GOSUB. Syntax je GOSUB číslo_řádku GOTO (go to = jdi na); goutu Příkaz způsobí, že výkon programu přejde na udaný řádek. Syntax přikazu je GOTO číslo_řádku Pokud řádek udaného čísla neexistuje, vydá se chybová zpráva. IF/THEN/ELSE (if-then-else = pokud-pak-jinak); if zen els Tento příkaz způsobí podmíněné vykonání příkazů nebo podmíněný odskok na určitý řádek. Syntax je IF logický_výraz THEN příkaz nebo IF logický_výraz THEN číslo_řádku Pokud podmínka v logickém výrazu je pravdivá, vykoná se příkaz, následující za THEN, nebo se přejde na číslo řádku uvedená za THEN. Za THEN může následovat vícenásobný příkazový řádek s příkazy, oddělenými dvojtečkami. Pokud není podmínka pravdivá, přeskočí se celý vicenásobný řádek. Klíčové slovo ELSE je nepovinné: IF logický_výraz THEN příkaz1 ELSE příkaz2 nebo IF logický_výraz THEN čís_řádku1 ELSE čís_řádku2 Pokud je podmínka v logickém výrazu nepravdivá, provede se příkaz za ELSE, resp. se přejde na číslo řádku za ELSE. INPUT (input = vstup); input Příkaz INPUT přebírá číselné nebo řetězcové hodnoty z klávesnice a přiřazuje je proměnným. Syntax je INPUT prom1, prom2, prom3, ...atd. nebo INPUT "hlášení"; prom1, prom2, ... atd. Když Eureka narazí na příkaz INPUT, v prvním případě řekne "vlož data" a čeká na vstup z klávesnice. V druhém případě, kde za slovem INPUT následuje řetězcová konstanta, Eureka vysloví tento řetězec. Pokud je v jednom příkazu INPUT více proměnných, můžete každou vkládat na zvláštním řádku, t.j. každou ukončit klávesou Nový řádek. Eureka řekne "vlož data" pokaždé, když některá proměnná potřebuje přiřadit hodnotu. Jinak můžete vložit všechny hodnoty na jednom řádku oddělené čárkami. Řetězcové konstanty, pokud neobsahují mezery, čárky nebo středníky, nemusejí být uzavřeny v uvozovkách. Pokud místo vložení dat stisknete jen klávesu Nový řádek, proměnné bude přiřazena nulová hodnota. Řetězcové proměnné se přiřadí nulový řetězec, to jest prázdný řetězec nulové délky. LET (let = nechť); let Tento přiřazovací příkaz je zde jen pro slučitelnost se standardní definicí Basiku. Je možno jej zcela vynechat, což znamená, že příkaz LET proměnná=výraz lze nahradit jen zápisem proměnná=výraz MODE (mode = režim); moud Tento příkaz umožňuje přepínat mezi řádkovým režimem a obrazovkovým režimem práce Basiku. Implicitně je zvolen řádkový režim, v němž všechen výstup směřuje jak do virtuální obrazovky, tak do reproduktoru. V obrazovkovém režimu výstup směřuje pouze do virtuální obrazovky. Pokud se obrazovka zaplní, Basic řekne "obrazovka je plná". Pak můžete prozkoumat obsah virtuální obrazovky a stiskem kterékoli klávesy si vyžádáte další obrazovku dat. Syntax je MODE 0 řádkový režim MODE 1 obrazovkový režim Mode 0 je ekvivalentní stisku funkční klávesy 3, MODE 1 je ekvivalentní stisku přeřazené funkční klávesy 3. NEXT (next = další); next Ukončuje cyklus, vytvořený příkazem FOR. Syntax je NEXT proměnná kde proměnná je řídicí proměnná cyklu, uvedená za klíčovým slovem FOR. Pokud používáte vložené cykly, je možné ukončit několik cyklů v jednom příkazu NEXT, za nímž následují řídicí proměnné oddělené čárkami. Musejí však být uvedeny ve správném pořadí, tedy řídicí proměnná nejvnitřnějšího cyklu musí být první. Je možné uvést NEXT i bez proměnné. V tom případě bude platit pro řídicí proměnnou nejpozději zahájeného FOR. OFF ERROR (off error = vypni chyby); of eror Tento příkaz ruší účinek příkazu ON ERROR a obnovuje normální způsob zpracování chyb. ON/GOSUB (on .. go to subroutine = po .. jdi na podprogram); on gousab Jde o podmíněný příkaz, který provede volání jednoho z několika podprogramů podle hodnoty výrazu. Syntax je ON výraz GOSUB řádek1, řádek2, řádek3, ...atd. Příkaz provede podprogram na řádku1, pokud má výraz hodnotu 1, na řádku2, pokud má hodnotu 2 atd. Po provedení podprogramu se program vrátí na řádek následující za příkazem ON/GOSUB. Pokud má výraz hodnotu menší než 1 nebo větší, než počet uvedených čísel řádek, příkaz nemá účinek. ON/GOTO (on .. go to = po .. jdi na ); on goutu Tento příkaz způsobí podmíněný skok na jeden z uvedených řádků podle hodnoty výrazu. Syntax je ON výraz GOTO řádek1, řádek2, řádek3, ...atd. Příkaz odskočí na řádek1, pokud výraz má hodnotu 1, na řádek2, pokud má hodnotu 2 atd. Pokud má výraz hodnotu menší než 1 nebo větší, než počet uvedených čísel řádků, příkaz nemá účinek. ON ERROR (on error = po chybě); on eror Tento podmíněný příkaz umožňuje odskočit na určité místo programu v případě, že dojde k programové chybě. Za normálních okolností chyba způsobí zastavení programu a vyslovení chybového hlášení. Syntax přikazu je ON ERROR GOTO číslo_řádku Po provedení tohoto příkazu se po každé chybě přejde na udané číslo řádku. K normálnímu zpracování chyb se lze vrátit příkazem OFF ERROR. PITCH (pitch = výška); pitš Tento příkaz umožňuje měnit výšku hlasu nebo barvu zvuků generovaných příkazem CLICK. Syntax je PITCH perioda Hodnota výrazu "perioda" se může měnit od 0 do 255. Srozumitelný hlas však poskytnou pouze hodnoty v přibližném rozmezí 40 - 70. Vyšší hodnota periody má za následek nižší výšku hlasu. Hodnota normálního hlasu Eureky je 56. Výška hlasu se dá změnit jen po dobu běhu programu. Po zastavení nebo ukončení programu se obnoví normální výška hlasu. PRINT (print = tiskni); print Příkaz PRINT způsobí, že Eureka promluví. Výstup směřuje také do virtuální obrazovky. Syntax je PRINT výraz1 oddělovač1 výraz2 oddělovač2...atd. Výraz může být buď číselná hodnota nebo řetězec. Oddělovač může být buď čárka nebo středník. Středník způsobí, že další hodnota bude následovat bezprostředně za předchozí bez mezery. Čárka způsobí, že další hodnota se umístí na nejbližší tabelátor. Tabelátory jsou umístěny po osmi znacích, tedy ve sloupcích 1,9,17 atd. Pro běžné účely oddělujte výrazy čárkami. Středník používejte jen pro případ formátovaných výstupů na tiskárnu. Pokud seznam výrazů nekončí čárkou nebo středníkem, za poslední položkou se vytiskne návrat vozu a posuv válce. Pokud seznam končí čárkou nebo středníkem, další příkaz PRINT tiskne bezprostředně za předchozí. Pro urychlení psaní je možno nahrazovat klíčové slovo PRINT otazníkem. Ve výpisu programu se však vždy objeví PRINT. READ (read = čti); ríd Tento příkaz přiřadí hodnoty z příkazu DATA proměnným. Syntax je READ prom1, prom2, prom3, ... atd. Na položky v seznamu DATA ukazuje vnitřní ukazatel, který určuje, která hodnota bude přiřazena příště. Na začátku programu a po provedení příkazu RESTORE je ukazatel nastaven na první hodnotu v seznamu DATA. Když se hodnota ze seznamu DATA přiřadí proměnné ze seznamu READ, ukazatel se posune na další hodnotu v seznamu DATA. Proměnné mohou být libovolných typů, ale musí odpovídat typům odpovídajících konstant v příkazu DATA. REM (remark = poznámka); rem Nevýkonný příkaz umožňuje umístit do programu komentáře pro zvýšení srozumitelnosti. Syntax je REM komentář Komentář tvoří libovolná sekvence znaků. Komentáře jsou uvedeny ve výpisu programu, ale neovlivňují program. Klíčové slovo REM se dá nahradit svislou čarou |. V příkazech GOTO a GOSUB lze za číslem řádku uvést komentář rovnou, bez REM. RESTORE (restore = obnov); ristór Tento příkaz vrátí vnitřní ukazatel seznamu DATA na začátek seznamu. Následující čtení příkazem READ začíná na první hodnotě v seznamu DATA. RETURN (return = návrat); ritérn Označuje konec podprogramu. Pokud program narazí na RETURN, aniž předtím přišlo GOSUB, vydá se chybové hlášení. SAY (say = řekni); sej Tento příkaz je ekvivalentní příkazu PRINT. SOUND (sound = zvuk); saund Příkaz umožňuje vytvářet zvukové efekty. Syntax je SOUND frekvence1,frekvence2,frekvence3,frekvence4;délka;tvar Povinná je pouze jedna frekvence. Více frekvencí vytváří vícehlasý tón. Frekvence je udána v Hz, délka je udána v ms. Tvar je určen číslem 0 až 9. Například číslo 0 odpovídá trojúhelníkovému průběhu, 1 je sinusovka. Délka a tvar jsou nepovinné parametry. Pokud nejsou udány, zachovává se délka a tvar z předchozího zadání. STOP (stop = stůj); stop Příkaz ukončuje program. Na rozdíl od příkazu END dojde k vyslovení čísla řádku. 17.3 Funkce Basiku Funkce vždy představují hodnotu, kterou je možno vyslovit nebo přiřadit proměnné. Hodnota většiny funkcí závisí na hodnotě výrazu, který následuje za jménem funkce a je uzavřen v závorkách. Tento výraz se často označuje jako argument. Většina funkcí má jen jeden argument. Vyjímky jsou uvedeny u té které funkce. Funkce jsou dvojího typu - numerické, které vracejí číselnou hodnotu, a řetězcové, které vracejí řetězec. Jména řetězcových funkcí končí znakem dolaru $. ABS Vrací absolutní hodnotu čísla. Příklad: X=ABS(Y) ASC Vrací číslo ASCII kódu daného znaku. Argument musí být typu řetězec. Pokud je řetězec delší než jeden znak, funkce ASC vrací kód prvního znaku řetězce. Příklad: A=ASC("K") ATN Vrací arkustangentu argumentu. Hodnota je v radiánech. CHR$ Vrací znak (řetězec), odpovídající uvedenému číslu ASCII kódu. Jde o funkci inverzní k ASC. COS Vrací kosinus argumentu. Argument je v radiánech. DATE$ Tato funkce nemá argument. Vrací řetězec, obsahující aktuální datum. Řetězec má 10 znaků. Jsou obsazeny takto: den v měsíci (2 znaky), mezera, měsíc (2 znaky), mezera, rok (4 znaky). DEC Vrací decimální hodnotu řetězcového argumentu, který představuje hexadecimální číslo. Příklad: A=DEC("FFFF") - A má hodnotu 65535. DEG Převede argument v radiánech na decimální stupně. Zlomky stupně nejsou udány v minutách a vteřinách, ale jako desetinná část. DVM Funkce nemá argument. Vrací ve voltech hodnotu měřenou voltmetrem. EXP Vrací hodnotu e (základu přirozených logaritmů) umocněnou na hodnotu argumentu. HEX$ Tato funkce vrátí řetězec, který představuje hexadecimální vyjádření hodnoty argumentu. Příklad: H$=HEX$(65535) - v řetězci H$ bude "FFFF" INT Vrací celočíselnou část čísla. Příklad: A=INT(5.6) - A má hodnotu 5 KEY$ Funkce nemá argument. Vrací jednoznakový řetězec, pokud byla stlačena klávesa. Jinak vrací prázdný řetězec (řetězec nulové délky). LEFT$ Tato dvouargumentová funkce vrací udaný počet znaků odříznutých z řetězce zleva. Příklad: A$=LEFT$("ABCDE",2) - A$ bude obsahovat "AB" LEN Funkce vrací délku řetězce. Příklad: L=LEN("AHOJ") - L má hodnotu 4 LDE Funkce vrací dekadický logaritmus argumentu. LOG Funkce vrací přirozený logaritmus argumentu. MID$ Tato tříargumentová funkce izoluje udanou část řetězce. Syntax je MID$(string$,výraz1,výraz2) Funkce vrací tolik znaků řetězce string$, kolik má hodnotu výraz2, počínaje tolikátým znakem řetězce, jakou hodnotu má výraz1. Znaky se počítají zleva. Příklad: A$=MID$("AHOJ",2,1) - A$ obsahuje "H" POS Tato funkce bez argumentu vrací aktuální pozici tiskového kurzoru v aktuální řádce. Pozice je ovlivněna příkazy PRINT a LPRINT. RAD Funkce převádí decimální stupně na radiány. RIGHT$ Tato dvouargumentová funkce vrací udaný počet znaků, odříznutých z řetězce zprava. Příklad: RIGHT$("PRAVO",3) vrátí "AVO". RND Pokud je argumentem kladné číslo, funkce vrací náhodné číslo. Pokud je argumentem nula, vrací se ta hodnota, která se vrátila v předchozím volání. Pokud je argumentem záporné číslo, provede se nová inicializace generátoru náhodných čísel. SGN Funkce určuje, zda je argument kladný, záporný nebo nulový. Při kladném argumentu vrací hodnotu +1, při nulovém vrací 0, při záporném vrací -1. SIN Funkce vrací sinus úhlu měřeného v radiánech. SQR Funkce vrací druhou odmocninu kladného argumentu. STR$ Řetězcová funkce převádí numerickou hodnotu na odpovídající řetězec. Znaky řetězce jsou takové, jaké by byly vytištěny příkazem PRINT. Příklad: S$=STR$(1/3) - S$ obsahuje "0.333333" TAN Vrací tangentu úhlu měřeného v radiánech. TEC Tato funkce bez argumentu vrací vnější teplotu ve stupních Celsia. TEF Tato funkce bez argumentu vrací vnější teplotu ve stupních Fahrenheita. TIC Tato funkce bez argumentu vrací vnitřní teplotu ve stupních Celsia. TIF Tato funkce bez argumentu vrací vnitřní teplotu ve stupních Fahrenheita. TIME$ Tato funkce bez argumentu vrací řetězec, obsahující aktuální čas. Řetězec má 8 znaků. Jsou obsazeny takto: Hodiny (2 znaky), mezera, minuty (2 znaky), mezera, sekundy (2 znaky) VAL Převede řetězec na jeho numerickou hodnotu. Příklad: A=VAL("87") - A má hodnotu 87 XPOS Tato funkce bez argumentu vrací aktuální sloupcovou pozici kurzoru na virtuální obrazovce. Tato pozice není ovlivněna příkazem LPRINT, protože tento příkaz pracuje jen s externí tiskárnou, nikoli s virtuální obrazovkou. YPOS Tato funkce bez argumentu vrací aktuální řádkovou pozici kurzoru na virtuální obrazovce. Tato pozice není ovlivněna příkazem LPRINT. Funkce příkazu PRINT Následující funkce lze použít jen v příkazu PRINT nebo LPRINT. SPC Funkce generuje předepsaný počet mezer. Příklad: 10 PRINT "LEFT";SPC(30);"RIGHT" - mezi LEFT a RIGHT je 30 mezer. TAB Funkce se používá na zarovnání tisku do svislého sloupce. První znak následujícího tisku bude umístěn v udaném sloupci. Pokud tisk již přešel udané místo, funkce se ignoruje. Příklad: 10 PRINT TAB(20);"Ahoj" Logické operátory Tři logické operátory AND, OR a NOT se mohou používat ke konstrukci složitějšího logického výrazu v podmínkové části rozhodovacího příkazu IF. Logický součin AND dvou členů je pravdivý jen tehdy, pokud jsou oba jeho členy pravdivé. Logický součet OR dvou členů je pravdivý, pokud je kterýkoli jeho člen pravdivý. Logická negace NOT mění pravdivý výrok na nepravdivý a naopak. Příklad: 10 IF (A