Úvod

     Současný trend vývoje počítačového softwaru směřuje k tzv. systémům. Ty jsou postaveny na společném jádru, které může využívat široké spektrum uživatelů a ke kterému jsou připojovány specializované nadstavby (moduly). Program se tak podobá stavebnici. Výhodou této koncepce je, že nepoužívaný software nezabírá paměť počítače a uživatel nemá za něj zbytečné výdaje. Jako příklad můžeme jmenovat AutoCad, Microstation a právě KOKEŠ.
     Podstata systému KOKEŠ je v nápovědě popsána následovně: Základní správa dat a jejich zobrazování, stejně jako jádro systému jsou naprogramovány v jazyce C++ a uživatel tuto část systému nemůže měnit (lze jen přidávat DLL knihovny pro práci s dalšími rastrovými formáty). Většina povelů systému je však naprogramována v jazyce KokešBASIC, jenž je spolu s vývojovým prostředím integrován do systému. Skupiny takových povelů jsou uloženy v modulech - souborech s příponou *.KBE.
     Dále nápověda o KokešBasicu praví: Jako programovací jazyk byl zvolen BASIC, neboť je dostatečně znám široké veřejnosti. Těm, kdo nepožadují specifické chování, poskytuje Kokeš Basic snadno použitelné prostředky pro vedení konverzace s uživatelem, na druhé straně četná rozšíření původní normy BASICu udělala z jazyka Kokeš Basic velmi účinný programovací prostředek umožňující práci až na nejhlubší úrovni operačního systému Microsoft Windows. Tyto věty lze vyjádřit jinými slovy: jednodušší výpočetní funkce zvládne ten, kdo má základní zkušenosti s programováním, ovšem tvorba složitějších funkcí (např. v podobě dialogů) vyžaduje delší studium programátorských principů.

Prostředí Kokeš Basic

     Vývojové prostředí funguje jako samostatný modul a spustíme ho ze systému KOKEŠ z menu "Nástroje / Basic" nebo kliknutí na ikonku - viz obr. 53.



Obr. 53 - Vývojové prostředí Kokeš Basicu

     Vzhled okna je podobný mnoha ostatním programům systému Windows - okno obsahuje odshora menu, nástrojovou lištu (pro zrychlenou volbu funkcí z menu), pracovní plochu (s otevřeným souborem) a konzolu, kam se vypisují hlášení. Jako vývojové prostředí program nabízí řadu pomůcek - nápovědu se seznamem příkazů, zvýraznění syntaxe (bíle příkazy, žlutě proměnné, světle modře obsah proměnných nebo texty), zobrazení hodnot proměnných a ladění programu. Tato funkce je velmi užitečná při ověřování chodu programu, kdy můžeme sledovat chování programu řádek po řádku včetně změn hodnot proměnných. Chceme-li takto ověřit jen část programu (cyklus, proceduru apod.) lze využít tzv. "breakpointů" - k tomuto (fialovému) řádku běží program normálně a teprve od tohoto okamžiku následuje krokování po řádcích až k dalšímu "breakpointu", odkud probíhá program opět průběžně.
     K řádnému chodu programu je třeba jej nejprve přeložit, a to bez chyb, které se případně vypíšou do konzoly. Tím se vytvoří tzv. makro, tj. soubor s příponou *.kbe. S tímto typem souborů pracuje přímo systém Kokeš. Připojit soubor do menu Kokeše lze přes menu "Nástroje / Načtení makra". Takto připojený program se objeví právě v menu "Nástroje".

Programy

     Jak již bylo řečeno, Kokeš Basic umožňuje rozšířit či vylepšit zpracování některých funkcí systému. Autor této práce zpracoval dva příklady v programovacím jazyku Kokeš Basic:

     Program se obecně skládá z hlavní části (macro) a tzv. procedur (sub). Procedura je vlastně skupina příkazů tvořící samostatnou funkci definovanou uživatelem. Použití je vhodné zejména při několikanásobném použití v programu. Komentáře v programu jsou označeny znaky "//" nebo " ' ", tyto řádky se nepřekládají.

Zdrojové kódy a doplňující popis

InfoJTSK.bas

InfoJTSK.bas - zdrojový kód

     Vzhledem k tomu, že díky nepřehledné nápovědě KokešBasicu nebyly autorovi známy symboly některých matematických funkcí, byly v procedurách zpracovány matematické operace faktoriál, n-tá mocnina (n je celé kladné číslo) a x-tá mocnina (x je reálné číslo) - zde bylo nutno použít výpočtu pomocí Taylorova polynomu. Jinak lze použít znaky "**" nebo "^". Výsledná podoba protokolu, jak jej vytvoří program:

******************************************************
- Převod souřadnic S-JTSK na zeměpisné souřadnice ----
Y = 644564.660 X = 1054932.120
Lambda 15 ° 48 ' 20.0980 ''
Fi 50 ° 5 ' 39.3048 ''
Délkové měřítko m = 0.999947644332
zkreslení z = -0.000052355668 , tj. -5.2 cm/km
Meridiánová konvergence c = 6 ° 46 ' 35.1575 ''
------------------------------------------------------

Kubatury.bas

Kubatury.bas - zdrojový kód

A ještě výsledná podoba protokolu:

**************************************************
- Výpočet kubatur --------------------------------
027000000602 725725.690 1072177.810 304.283
15 725754.345 1072160.544 300.509
4001 725733.274 1072146.884 303.038
Výška srovnávací roviny H = 300.000
--------------------------------------------------
Výměra P = 377.625 m2
Objem V = 985.569 m3

- Přičíst kubaturu -------------------------------
14 725742.216 1072154.296 302.714
13 725733.885 1072152.704 303.853
027000000602 725725.690 1072177.810 304.283
Výška srovnávací roviny H = 300.000
--------------------------------------------------
Výměra P = 111.105 m2
Objem V = 401.859 m3
Celkový objem = 887.830 m3

KonstrOm.bas

KonstrOm.bas

Obr. 54 - Dialog výpočtu úlohy "konstrukční oměrné"

     Pro úspěšný výpočet je třeba zadat počáteční a koncový bod (= identické body pro podobnostní transformaci, oměrné se vypočtou v místní soustavě a přetransformují se, pravé úhly jsou zachovány) a doplnit čísla podrobných bodů a oměrné do tabulky, a to v libovolném pořadí. Souřadnice počátečního a koncového bodu je možno přímo vepsat do polí v horní orámované části anebo pomocí tlačítek "Vstup poč. (konc.) bodu" je lze přímo identifikovat z výkresu.
     Pokračujeme vyplněním tabulky - do prvního sloupce ("č. PB") se zadají čísla podrobných bodů (pokud zůstane pole prázdné nebo 0, vypočtou se souřadnice, ale bod se neuloží do seznamu souřadnic). Do druhého sloupce ("Oměrná") se napíší oměrné (těch je o jednu více než podrobných bodů). Podstata načtení vstupních hodnot z tabulky spočívá v tom, že program načítá řádky tabulky, dokud pole ve sloupci "Oměrná" není prázdné nebo jeho hodnota není 0. Dále je v programu ošetřeno, aby první oměrná nebyla záporná nebo 0 a druhá oměrná se nerovnala nule (úloha vyžaduje minimálně dvě oměrné).
     Po kliknutí na tlačítko "Výpočet" nejprve proběhne kontrola, zda jsou vyplněny souřadnice počátečního a koncového bodu a zda nejsou tyto body shodné. Dále program provede kontrolu rozdílu délek vypočtených ze souřadnic a z oměrných (dle 12.6 b) vyhlášky 190/1996 pro 3. třídu přesnosti). Je-li odchylka překročena, program vypíše varování a nabídne, zda chce uživatel přesto pokračovat. Dále program vykreslí kontrolní kresbu (viz obr. 55) a vyzve uživatele, aby potvrdil, jestli kresba odpovídá skutečnosti (pokud ne, program výpočet ukončí). Výsledné souřadnice podrobných bodů se zobrazí v tabulce a automaticky se ukládají do otevřeného aktivního souboru. Pokud již v seznamu souřadnic existuje bod se stejným číslem, program vypíše do konzoly souřadnice původního a nového bodu a jejich rozdíl a nabídne uživateli variantu uložení nového bodu - viz obr. 55.

KonstrOm.bas

Obr. 55 - Volba varianty uložení bodu a výpis dat v konzole, kontrolní kresba

     Ostatní tlačítka mají podle jejich názvu očekávané funkce - "Esc" ukončí dialog, "Ulož" uloží hodnoty v tabulce souboru s příponou *.tko dle volby uživatele, "Načti" načte předchozí uložený soubor a "Vyčisti" odstraní všechny hodnoty z tabulky. Tlačítko "Help" otevře samostatné okno s krátkou nápovědou a ukázkou správně vyplněné tabulky. Samozřejmou funkcí programu je také tvorba výpočetního protokolu. Zbývá doplnit zdrojový text programu KonstrOm.bas ...