T E S T E D I T
                         ***************
             Pro SORD upravil  Ing. Zdeněk Zvědělík
               Břeclav  sídl. Lidových milicí 45
   Program TESTEDIT je pomůcka pro vytváření databází  vlastních
testů. Editor je graficky orientován, uživatel maluje a popisuje
obrázek a databáze se vytváří sama. Pomocí vestavěného  monitoru
může zasvěcený uživatel pracovat  na  úrovni  přímých  instrukcí
databáze. Toto není nutné, ale někdy to může být užitečné.
                 Základní principy tvorby testu
                 ==============================
   Každý test  je  tvořen  jedním  statickým  obrázkem  a  sadou
obrázků  dynamických  které  se  postupně  kreslí  přes  obrázek
statický. Dynamický obrázek přitom vždy  odpovídá  jedné  otázce
testu.  Při  přechodu  od  aktuální  otázky  na  následující  se
poslední dynamický obrázek smaže (při  zachování  statického)  a
vykreslí se obrázek nové otázky přes statický podklad.
   Součástí každé otázky testu je vlastní  otázka  (slovní  nebo
grafická, jako např. zobrazení polohy města), několik nabízených
odpovědí a správná odpověď. Vlastní otázka je vždy  zachycena  v
dynamickém obrázku (tedy napsána nebo nakreslena).
   Způsob nabízení odpovědí je  dvojí.  Při  pevných  odpovědích
jsou tyto odpovědi součástí  příslušného  statického  obrázku  a
jsou do něj přímo vepsány. Každá otázka pak zde má  vždy  stejné
nabízené odpovědi.  Při  náhodných  odpovědích  nejsou  odpovědi
součástí obrázku a  teprve  v  režimu  zkoušení  se  generují  a
doplňují z dynamických do statického obrázku. V tomto případě má
stejná otázka při  několika  výskytech  jiné  nabízené  odpovědi
(jsou generovány z množiny všech možných odpovědí v  bázi  dat).
Prostor nabízených odpovědí musí být na stínítku přesně vymezen,
protože před texty jednotlivých odpovědí  se  pohybuje  výběrový
kurzor a v případě režimu náhodných  odpovědí  se  prostor  také
musí  mazat.  Oblast  je  určena  levým  horním  rohem,   počtem
nabízených odpovědí a maximální délkou odpovědi ve znacích.
   Správná  odpověď  otázky  testu  zde  figuruje  jako    název
dynamického obrázku. Prostor pro vypsání správné  odpovědi  musí
být opět přesně určen, a to levým rohem (odpověď je jen jedna  a
maximální délka je známa).
   Statický obrázek tvoří neměnný  podklad  všech  otázek.  Musí
respektovat  oblasti  pro  nabízené  odpovědi  a  pro  zobrazení
správné  odpovědi.  Navíc  musí  mít  vymezenou    oblast    pro
zobrazování průběžného hodnocení účastníků. V této oblasti se  v
režimu zkoušení vypisují  jména  zkoušených  a  jejich  aktuální
hodnocení. Oblast je stanovena  udáním  levého  horního  rohu  a
počtem účastníků. Její délka je vždy 26 znaků. Na  první  pozici
se pohybuje kurzor výzvy, na druhé  pozici  začíná  jméno  a  na
třinácté pozici je začátek oblasti hodnocení.
   Statický obrázek i obrázky dynamické mohou využívat  grafiky,
textů  a  barev.  Barvy  užité  v  dynamickém  obrázku  by  měly
respektovat barvy statického obrázku  v  místech,  do  nichž  se
dynamický obrázek zobrazí. Nabízené odpovědi a  správná  odpověď
se vypisují naposled určenou barvou v předcházejícím  dynamickém
obrázku. Jména účastníků, jejich hodnocení a čas na odpověď jsou
v barvě určené naposled ve statickém obrázku.
   Další parametry databáze jsou: doba čekání na  odpověď  (musí
zahrnovat nejen čas na přemýšlení, ale i  dobu  k  manipulaci  s
výběrovým kurzorem)  a  mez  špatného  hodnocení.  Tato  mez  je
úspěšnost odpovědí účastníka, která  již  nevyhovuje  požadavkům
(slovní hodnocení ŠPATNĚ). Mez se určuje v procentech.  Nejvyšší
hodnocení SKVĚLE je pak pouze pro 100% úspěšnost. Interval  mezi
SKVĚLE a ŠPATNĚ je rozdělen na dva  stejné  podintervaly,  které
jsou značeny VÝBORNĚ a DOBŘE.
                  Hlavní menu programu TESTEDIT
                  =============================
   Po nahrání a spuštění programu se dostáváme do hlavního menu.
Jsou zde příkazy pro nahrání databáze  do  počítače  ("l"-load),
uchování  databáze  vytvořené  editorem  ("s"-save)  a   ověření
nahrávky  databáze  ("v"-verify).  Jako  vnější  paměť    slouží
magnetofon.
   Další příkaz "n" umožňuje vybudovat novou databázi. Při  jeho
užití jsme dotázáni na barvu papíru a  inkoustu,  druh  odpovědí
(pevné nebo náhodné), umístění nabídky odpovědí, jejich délku  a
počet, pozici správné odpovědi  a  hodnocení,  počet  účastníků,
dobu čekání na odpověď a mez  špatného  hodnocení.  Pak  program
vstoupí  do  grafického  editoru  (v  obrázku   označí    pozice
rezervované  pro  odpovědi  a  hodnocení),  který  je  popsán  v
samostatné kapitole.
   Příkazem pro doplnění databáze "d" (doplň) můžeme k bázi  dat
nahrané pomocí load "l" přidávat další  obrázky,  a  to  buď  na
konec nahrané databáze, nebo z  nahrané  databáze  zachovat  jen
statický obrázek (který je možno ještě doplnit) a přidávat  nové
dynamické obrázky za něj. Druhá varianta je výhodná pro  využití
stejných základů statických obrázků  pro  více  databází  (např.
obrys ČSSR pro databáze  měst,  řek  a  pohoří).  Způsob  plnění
datové báze se určuje v menu, které se objeví po  užití  příkazu
"d" hlavního menu.
   Dále máme k dispozici příkaz na prohlížení  hotových  obrázků
("p"-prohlížení). Při jeho užití se nás program  zeptá,  zda  má
napřed zobrazit statický  obrázek.  Pak  se  požadované  obrázky
zadávají svým pořadovým číslem, přičemž  1  odpovídá  statickému
obrázku. Maximální dovolené číslo obrázku je 80,  protože  čísla
81 až 100 jsou rezervována pro segmenty (1 až 20).
   Příkazem volání  monitoru  "m"  (monitor)  vyvoláme  zvláštní
program, který umožní pracovat s databází na úrovni jejich kódů.
Monitor bude popsán ve vlastní kapitole.
   Příkazem "k" (konec) se práce TESTEDITu  ukončí.  Program  si
naše  rozhodnutí  nechá  napřed  schválit  (ukončením  se   sice
nesmaže, ale databanka je ztracena).
   Pod nabídkou příkazů  hlavního  menu  se  zobrazují  základní
informace o aktuální databázi. Je  to  počet  obrázků,  délka  a
zbývající volný prostor. Zápis "30+1/2800 zbývá  1200"  znamená,
že databáze má 30 dynamických a jeden statický  obrázek,  zabírá
2800 jednotek paměťového prostoru a  zbývá  ještě  1200  volných
míst pro další rozšiřování.
                         Grafický editor
                         ===============
   Grafický  editor  umožňuje  uživateli  kreslit   obrázek    a
automaticky  vytvářet  bázi  dat.  Do  grafického  editoru    se
dostáváme po užití příkazu "n" nebo "d" z hlavního menu.  Seznam
příkazů editoru  a  způsob  jejich  volání  obdržíme  po  stisku
klávesy "N" (nápověda)  v  režimu  graf.  editoru.  Editor  může
pracovat v módu grafickém (jemná grafika 176 x 256 bodů) nebo  v
módu textovém (22 řádků o 32 znacích).  Při  vstupu  do  editoru
jsme v režimu grafickém a do textového se můžeme dostat  stiskem
"t" (text). V textovém módu můžeme užívat  kurzory  a  zapisovat
znaky. Zpět do grafického způsobu práce  se  dostaneme  klávesou
RETURN. V grafickém režimu můžeme pohybovat  grafickým  kurzorem
buď pomalu šipkami nebo  rychle  CTRL+šipka.  Polohu  grafického
kurzoru můžeme také  zadat  hodnotově  příkazem  "h"  (hodnoty),
který se dotáže na souřadnice x a y.
   Bod  vyneseme  klávesou  "o".  Kurzor  spojíme  s    naposled
vyneseným bodem  úsečkou  stiskem  klávesy  RETURN.  Dále  mámee
možnost nastavení barvy papíru "p" a inkoustu "i". Pokud by  byl
na nastavené barvě papíru špatně vidět popis databáze a kurzory,
je  možné  přepnout  barvu  popisů  klávesou  ","  (černá/bílá).
Obrazovka se maže  příkazem  "v"  (výmaz).  Dalším  příkazem  je
zvukový signál "z" (zvuk) a blikání doposud nakresleného obrázku
"b". Pokud se při  kreslení  dopustíme  chyby,  můžeme  poslední
příkaz (nebo sérii příkazů) vymazat klávesou SPACE  (při  mazání
se vypíše název rušeného příkazu a jeho parametry).
   Editor umožňuje definovat až 20 tzv. segmentů obrazu (značení
číslem 1 až 20). Segmenty jsou vhodné  pro  opakující  se  části
dynamických obrázků. Např. pokud  máme  tojúhelník  nadefinovaný
jako segment, můžeme v dynamických  obrázcích  testu  dopravních
značek  volat  tento  segment  pokaždé,  když  se  má    kreslit
trojúhelníková značka. Nemusíme  tedy  trojúhelník  stále  znovu
kreslit. Pro programátory je tedy zřejmé chápání  segmentu  jako
podprogramu.  Segmenty  mohou  výrazně  šetřit  paměť.   Segment
definujeme tak, že na dotaz "Název obr. č...."  odpovíme  znakem
"*". Jsme  dotázáni  na  číslo  segmentu  a  poté  převedeni  do
grafického editoru. Definici ukončíme  stejně,  jako  by  šlo  o
dynamický obrázek, tedy "k". Segmenty můžeme definovat kdykoli v
průběhu tvorby datové báze. V definici  segmentů  nesmíme  ovšem
užívat  volání  jiného  segmentu!  Nadefinované  segmenty  se  v
grafickém editoru volají příkazem "s"  (segment)  a  pak  číslem
segmentu. Abychom segmentem  mohli  nadefinovat  obrazec,  který
bychom  při  volání  mohli  umísťovat  v  různých  polohách   na
stínítku, disponuje editor příkazem "r"pro relativní  spoj  dvou
bodů. Tak třeba v  segmentu  nadefinujeme  čtverec  užitím  čtyř
příkazů "r" (bez vynesení bodu na začátku). Když potom  v  rámci
některého  obrázku  vyneseme  bod  a  zavoláme  tento   segment,
vykreslí se nám čtverec v poloze určené vynesenýM bodem. Je  zde
třeba jisté opatrnosti, abychom například nevynesli bod do  rohu
a část segmentu by se  pak  vykreslila  mimo  obrazovku.  Příkaz
relativního spoje "r" má oproti absolutnímu spoji  RETURN  ještě
jedno omezení, protože maximální délka spoje smí být 127 bodů  a
delší úsečky je třeba  vytvořit  nadstavením.  Režim  grafického
editoru se ukončí stiskem "k".
                     Vnitřní stavba databáze
                     =======================
   Pro běžný návrh databází testů vystačíme s dosud poskytnutými
informacemi. Pro  některé  rafinovanější  vlastnosti  bází  nebo
složitější opravy a úpravy však může být vhodné vědět něco  její
struktuře. Tyto znalosti jsou také nezbytné pro práci monitorem.
Databáze  je  tvořena  přístupovým   vektorem    P(),    hlavním
informačním  vektorem  B()  a  třinácti  pomocnými   proměnnými.
Obrázky jsou v databázi rozloženy do sérií  operací.  Jsou  tedy
vlastně popsány jakýmsi programem  ve  zvláštním  jazyce,  jehož
příkazy jsou popsány dále v tab.1.
   Operace s parametry jsou  uloženy  ve  vektoru  B().  Začátky
jednotlivých obrázků v B()  jsou  označeny  odkazy  uloženými  v
přístupovém vektoru P(), jehož index představuje  číslo  obrázku
(tj. když P(3)=2086, tak obr. 3 začíná v B() od buňky s  indexem
2086). Délka sekvence příslušející obrázku je dána obsahem buňky
pod ukazatelem začátku a buňky v B() následující  (256  *  první
buňka + druhá buňka).  Pomocné  proměnné  obsahují  informace  o
délce odpovědi,  umístění  polí  zpráv  na  obrazovce,  době  na
odpověď a limitu hodnocení. Tyto proměnné jsou nepřístupné.
                        Použití MONITORU
                        ================
   Monitor slouží pro přímé prohlížení a  modifikaci  báze  dat.
Odkazy přístupového vektoru vypíšeme příkazem "p", číselný výpis
databáze získáme příkazem "c" (číselný) a slovní výpis operací s
parametry příkazem "o" (operace). Číselný  obsah  můžeme  změnit
voláním příkazu změny "z". V tomto  režimu  můžeme  psát  čísla,
která přepíší původní obsah nebo stiskneme jen  RETURN  a  obsah
buňky se nezmění. Ukončení režimu  se  děje  zápisem  znaku  "k"
(konec). Abychom poznali, které části  obrázku  přísluší  určitá
operace nebo  naopak,  můžeme  použít  režimu  trasování  kresby
(příkaz "t"). V režimu trasování  krokujeme  klávesou  "s"  nebo
klávesou "t" můžeme provádět krokování zároveň s  výpisem  právě
prováděné operace. Trasování můžeme přerušit  podržením  klávesy
"RETURN". Před vyvoláním těchto operací je možné  taktéž  změnit
barvu popisů příkazem ",". Monitor opouštíme stiskem "k" (konec)
a tím se vrátíme do hlavního menu.
                    Tabulka příkazů databáze
                    ========================
      Příkazy:
      Kód: Parametry:    Význam:
      ----------------------------------------------------
        0  délka,název   načtení názvu dynamického obrázku
        1  x,y           vynesení bodu se souřadnicemi x,y
        2  x,y           spojení posledního bodu s x,y
        3  řádek,sloup.  nastavení textového kurzoru
        4  délka,znaky.. vypsání řetězce znaků
        5  barva         nastavení barvy inkoustu
        6  barva         nastavení barvy papíru
        7                výmaz obrazovky
        8                zvukový signál
        9  dx,dy         spoj posledního bodu s x+dx,y+dy
       10  číslo segm.   vyvolání segmentu
       11  barva         nastavení barvy okraje - ignoruje
       12  počet         blikání dosud nakreslené části
       13  číslo         načtení čísla pozice správné odpov.
                            Toť vše!
               Příjemnou práci s TESTEDITem přeje
                             Zdeněk