Úvod do teorie kombinatorických her

BASIC? Nic jednoduššího nehledejte!

Programovací jazyk BASIC byl vyvinut v šedesátých letech minulého století jako prostředí pro výuku programování. Ve své době byl velmi populární QBasic, Turbo BASIC, stejně jako Turbo PASCAL. QBasic byl standardně dodáván se systémem MS-DOS verze 5+ a stáhnout si ho můžete zde: Download QBASIC 1.1 from Microsoft.

O tom, co je BASIC, nám dá stručnou, ale rychlou referenci česká wikipedie, nebo rozšířenou informaci verze anglická. Že BASIC není fosilií lze dokumentovat množstvím jeho klonů, včetně MS Visual Basicu. Na PalmHelpu byl poslední upgrade basicu v červenci 2008. Že se někdy jedná o starší verze programů nás nemusí mrzet, protože cíle které dnes sledujeme, jsou v použitelnosti programů - proměnit své PDA v chytrou kalkulačku.

Na stránkách PalmHelpu jsme se mohli dočíst o několika variantách prostředí pro Palm OS. Můžeme si vybrat: Palm Basic, tinyBASIC, NS Basic, SmallBASIC, cbasPad [nyní Hotpaw Basic], programátorské prostředí LaFac. Každý klon obsahuje jakousi základní výbavu příkazů referenční BASIC a nějakou přidanou hodnotu (datové typy, procedury, spolupráce s grafikou, spolupráce s PC, cykly, knihovny funkcí aj.). Na domácích stránkách lze často nalézt i řadu tutoriálů. Komerční je iziBasic (o možnostech napoví stránka příkladů), stejně jako Hotpaw Basic s příklady a NS Basic s ukázkovými kódy. Vývojáři aplikací pravděpodobně sáhnou po Handheld Basic ++.

Palm BasicManager Palm Basic

Popis interpretu: Palm Basic se skládá z jednoho souboru prc (~ 79 kB). Označování vstupů a výstupů (input, print), proměnných, konstant, polí, funkcí, aritmetických výrazů, cyklů (if then (else), do loop while), je standardní, stejně jako implementace procedur (let, goto, gosub), deklarací, řetězcových a dalších funkcí.

Z pohledu uživatele Palm OS: Po nahrání a spuštění souboru basic.prc se nám otevře správce, který vypadá jako memo pad (poznámky). Umožňuje kategorizovat programy, spouštět, vytvářet a editovat programy, a pomocí menu se přepnout do konzole basicu. Konzole umožňuje interaktivně spouštět jednořádkové programy, nebo programy podle jména. Kolébkou nahoru nebo dolu vyvoláme poslední příkaz.

Obvod a obsah kruhu v Palm Basicu Příklad: Obvod kruhu spočítáme jako o = 2*pi*r. Celý program by mohl vypadat takto:

	INPUT r
	obvod=2*pi*r
	PRINT obvod

Nebo jeho jednořádkovou variantou:

	INPUT r : PRINT 2*pi*r

Závěr: Palm Basic je utilita, která je napsána pro Palm OS 3+. Umožňuje napsat a spouštět užitečné programy. Uživatel uvítá jednoduchý jazyk i prostředí. Detaily zájemce nalezne v manuálu. Palm Basic nevytváří spustitelný kód, to znamená, že všechny příkazy se musí spouštět pouze z prostředí Palm Basicu.

SmallBASICManager ve SmallBasicu

Program SmallBASIC může být velmi dobrou variantou naprogramovat si svoji vlastní aplikaci pro Palm OS. Příjemně nás osloví svou jednoduchostí a praktickým zpracováním. Má mnoho společného s QBasic. Jedná se o dialekt, který je strukturovaný, obsahující mnoho rozšiřujících operací a funkcí včetně grafiky nebo i např. matic (řešení soustav lineárních rovnic Gaussovou eliminační metodou). Vhodný je nejen pro začátečníky, hodí se na experimentování za dlouhých zimních večerů... Umožní nám rychle naprogramovat často se opakující výpočty (vzorečky naleznete např. v Přehledu užité matematiky, kompendiu, příručkách,...). SmallBASIC je multiplatformní (MS Windows, Linux, Palm OS aj.) s otevřeným kódem. Domácí stránka basicu obsahuje i příklady použití, včetně zdrojových kódů.

Po rozbalení souboru SmallBASIC-PalmOS5-0.8.2b.zip dostaneme adresář dokumentů a příkladů. V adresáři dokumentů je soubor ref.txt, který obsahuje všechna primitiva jazyka, tj. syntax a sémantiku vyhrazených slov - užitečné poznámky pro začátečníka. Další soubory v tomto adresáři se věnují omezení implemenatce. Adresář příkladů obsahuje užitečné aplikace, hry, příklady vstupů a výstupů, práci se zvuky a grafikou, dále podadreář testy, které lze využívat při ladění programů. Adresář příkladů lze využít jako studnici typických konstrukcí jazyka, jejich analýza pomůže začátečníkovi v orientaci v problematice jazyka SmallBASIC. Vlastní program je sbpad.prc (~ 284 kB), spolu s knihovnou MathLib.prc (~ 51 kB) matematických funkcí.

Z pohledu uživatele Palm OS: Po spuštění SmallBASICu dostaneme praktického správce souborů (zdrojových programů *.bas), který umožňuje vytvářet, modifikovat a spouštět programy. Uživatel v menu jistě ocení položku Info, která obsahuje stručnou syntax a sémantiku vyhrazených slov jazyka BASIC. Programy je možné přehledně kategorizovat (filtrování souborů). Režim editace umožňuje program přejmenovat, otevřít jiný program apod. V levém dolním rohu je pole S&R, které znamená ulož a spusti aktuální program. Z menu ještě upozorníme na možnosti editace, změny písma, možnost hledání a odskoku, včetně "klávesových" zkratek. V režimu editace programů je možné i vytvářet sekce (spolupráce s poznámkovým blokem). Tato vlastnost se nejlépe uplatní při ladění programů a jejich přehlednosti.

Newtonova metoda tečen ve SmallBasicu Příklad: Program hledání kořenů křivek Newtonovou metodou regula falsi. Je dána funkce (řádek 510) a její první derivace (řádek 520). V bodě x (řádek 530) se sestrojí tečna, která protne osu x (řádek 580) a sestrojí se nová funkční hodnota (řádek 570) inicializačního bodu. To se opakuje (řádek 540) do té doby, dokud nejsme dostatečně blízko kořenu (řádek 560 a 600).

	400 REM Metoda tecen
	410 REM  IQ 151/86/w
	480 CLS
	490 DATA -50
	500 RESTORE
	510 DEF FNY(X)=X*X-SIN(X)
	520 DEF FNZ(X)=2*X-COS(X)
	530 READ X
	540 LET Y=FNY(X)
	550    PRINT X,Y
	560   IF ABS(Y)<1E-4 THEN GOTO 600
	570    LET Z=FNZ(X)
	580    LET X=X-Y/Z
	590 GOTO 540
	600 PRINT : PRINT "Priblizny koren je   ";X
	610 END

Závěr: Hornerovo schéma Na rozdíl od Palm Basicu má SmallBASIC rozšířenější množinu příkazů. Zdrojový kód je téměř kompatibilní s Turbo BASICem. Výhodou je i jeho multiplatformost. Prostředí komunikuje prostřednictvím beam (infračervený port), umožňuje export a import programů prostřednictvím memo padu (poznámek) a PalmDOC. Znamená to, že lze snadno připravovat programy pro SmallBASIC přímo na PC (přenositelnost). Zvládá 16-ti bitovou grafiku 320x320 pixlů a umožňuje tak působivý výstup v podobě grafů. Díky matematické knihovně je SmallBASIC více jak komplexní superkalkulátor, podstatným způsobem rozšiřuje možnosti použití palmu. Ukázky použití grafiky je ukázáno mj. na projektu Computer Painting. Projekt je stále otevřený, jak se můžeme přesvědčit na jeho domácí stránce. Článek byl také použit na serveru PalmHelp.