Tab

PARAMETRY EDITACE

Tabulka módů blokování

LAN - TABULKA MÓDŮ BLOKOVÁNÍ
Tabulka obsahuje přehled všech kombinací, které mohou nastat
při současné práci stanic A (řádky) a B (sloupce).
Módy ┌────────┬──────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
blokování │ A \ B │NoExcl│NoDel│ NoCr│ Rd │ Wr │ Cr │ Del │ Excl│
├────────┼──────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
nejnižší │ Noexcl │ Ano │ Ano │ Ano │ Ano │ Ano │ Ano │ Ano │ │
↑ │ NoDel │ Ano │ Ano │ Ano │ Ano │ Ano │ Ano │ │ │
│ │ NoCr │ Ano │ Ano │ Ano │ Ano │ Ano │ │ │ │
│ │ Rd │ Ano │ Ano │ Ano │ Ano │ │ │ │ │
│ │ Wr │ Ano │ Ano │ Ano │ │ │ │ │ │
│ │ Cr │ Ano │ Ano │ │ │ │ │ │ │
↓ │ Del │ Ano │ │ │ │ │ │ │ │
nejvyšší │ Excl │ │ │ │ │ │ │ │ │
└────────┴──────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
Z popisu módů blokování je zřejmé, že při blokování v módu Wr nebo vyšším,
není možné na jiné stanici s tímto souborem pracovat (nelze číst ani psát).

Stanice A blokuje soubor NoCr ( např. editace podmnožiny vět souboru bez
indexů). Stanice B může současně nárokovat blokování téhož souboru v módu
WR nebo nižším. Nemůže přidávat a rušit věty ani provádět reorganizaci.

Tabulka sdílené editace

LAN - TABULKA SDÍLENÉ EDITACE
V tabulce jsou zachyceny základní kombinace módů blokování při sdílené
editaci souboru dvěma stanicemi. Kombinace NoExcl - NoCr, která nemůže
nastat (soubor buď indexy má nebo ne) není uvedena.
┌───────────────────────┬────────────────────────────────┐
│ Mód blokování │ Možnost provádění │ Legenda:
├───────────┬───────────┼────────────────┬───────────────┤
│ │ │ Stanice A │ Stanice B │ Edit-aktualizace
│ Stanice A │ Stanice B ├────────────────┼───────────────┤ ^N -pořízení
│ │ │ Edit ^N ^Y │ Edit ^N ^Y │ ^Y -rušení vět
├───────────┼───────────┼────────────────┼───────────────┤
│ NoExcl │ NoExcl │ Ano Ano Ano │ Ano Ano Ano│
│ NoExcl │ NoDel │ Ano Ano │ Ano Ano Ano│
│ NoDel │ NoDel │ Ano Ano │ Ano Ano │
│ NoDel │ NoCr │ Ano │ Ano Ano │
│ NoCr │ NoCr │ Ano │ Ano │
└───────────┴───────────┴────────────────┴───────────────┘
Při pokusu o provedení právě blokované akce vydá FAND hlášení o blokování
souboru. Hlášení obsahuje možnost potlačení požadované akce klávesou (ESC).
Pro snížení zátěže sítě je vhodné v příkazu edit použít parametr watch.

Tabulky znaků

TABULKA ZNAKŮ
┌────────────────┬──────────────┬──────────────┬──────────────┐
│ dec hex znak │ dec hex znak │ dec hex znak │ dec hex znak │
├────────────────┼──────────────┼──────────────┼──────────────┤
│ 0 00 ^@ NUL │ 32 20 SPC │ 64 40 @ │ 96 60 ` │
│ 1 01 ^A SOH │ 33 21 ! │ 65 41 A │ 97 61 a │
│ 2 02 ^B STX │ 34 22 " │ 66 42 B │ 98 62 b │
│ 3 03 ^C ETX │ 35 23 # │ 67 43 C │ 99 63 c │
│ 4 04 ^D EOT │ 36 24 $ │ 68 44 D │ 100 64 d │
│ 5 05 ^E ENQ │ 37 25 % │ 69 45 E │ 101 65 e │
│ 6 06 ^F ACK │ 38 26 & │ 70 46 F │ 102 66 f │
│ 7 07 ^G BEL │ 39 27 ' │ 71 47 G │ 103 67 g │
│ 8 08 ^H BS │ 40 28 ( │ 72 48 H │ 104 68 h │
│ 9 09 ^I HT │ 41 29 ) │ 73 49 I │ 105 69 i │
│ 10 0A ^J LF │ 42 2A * │ 74 4A J │ 106 6A j │
│ 11 0B ^K VT │ 43 2B + │ 75 4B K │ 107 6B k │
│ 12 0C ^L FF │ 44 2C , │ 76 4C L │ 108 6C l │
│ 13 0D ^M CR │ 45 2D - │ 77 4D M │ 109 6D m │
│ 14 0E ^N SO │ 46 2E . │ 78 4E N │ 110 6E n │
│ 15 0F ^O SI │ 47 2F / │ 79 4F O │ 111 6F o │
│ 16 10 ^P DLE │ 48 30 0 │ 80 50 P │ 112 70 p │
│ 17 11 ^Q DC1 │ 49 31 1 │ 81 51 Q │ 113 71 g │
│ 18 12 ^R DC2 │ 50 32 2 │ 82 52 R │ 114 72 r │
│ 19 13 ^S DC3 │ 51 33 3 │ 83 53 S │ 115 73 s │
│ 20 14 ^T DC4 │ 52 34 4 │ 84 54 T │ 116 74 t │
│ 21 15 ^U NAK │ 53 35 5 │ 85 55 U │ 117 75 u │
│ 22 16 ^V SYN │ 54 36 6 │ 86 56 V │ 118 76 v │
│ 23 17 ^W ETB │ 55 37 7 │ 87 57 W │ 119 77 w │
│ 24 18 ^X CAN │ 56 38 8 │ 88 58 X │ 120 78 x │
│ 25 19 ^Y EM │ 57 39 9 │ 89 59 Y │ 121 79 y │
│ 26 1A ^Z SUB │ 58 3A : │ 90 5A Z │ 122 7A z │
│ 27 1B ^[ ESC │ 59 3B ; │ 91 5B [ │ 123 7B { │
│ 28 1C ^\ FS │ 60 3C < │ 92 5C \ │ 124 7C | │
│ 29 1D ^] GS │ 61 3D = │ 93 5D ] │ 125 7D } │
│ 30 1E ^^ RS │ 62 3E > │ 94 5E ^ │ 126 7E ~ │
│ 31 1F ^_ US │ 63 3F ? │ 95 5F _ │ 127 7F DEL │
└────────────────┴──────────────┴──────────────┴──────────────┘
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ dec hex znak │ dec hex znak │ dec hex znak │ dec hex znak │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ 128 80 Č │ 160 A0 á │ 192 C0 └ │ 224 E0 Ó │
│ 129 81 ü │ 161 A1 í │ 193 C1 ┴ │ 225 E1 ß │
│ 130 82 é │ 162 A2 ó │ 194 C2 ┬ │ 226 E2 Ô │
│ 131 83 ď │ 163 A3 ú │ 195 C3 ├ │ 227 E3 Ń │
│ 132 84 ä │ 164 A4 ň │ 196 C4 ─ │ 228 E4 ń │
│ 133 85 Ď │ 165 A5 Ň │ 197 C5 ┼ │ 229 E5 ň │
│ 134 86 Ť │ 166 A6 Ů │ 198 C6 Ă │ 230 E6 Š │
│ 135 87 č │ 167 A7 Ô │ 199 C7 ║ │ 231 E7 š │
│ 136 88 ě │ 168 A8 š │ 200 C8 ╚ │ 232 E8 Ŕ │
│ 137 89 Ě │ 169 A9 ř │ 201 C9 ╔ │ 233 E9 Ú │
│ 138 8A Ĺ │ 170 AA ŕ │ 202 CA ╩ │ 234 EA ŕ │
│ 139 8B Í │ 171 AB Ŕ │ 203 CB ╦ │ 235 EB Ű │
│ 140 8C ľ │ 172 AC × │ 204 CC ╠ │ 236 EC ý │
│ 141 8D ĺ │ 173 AD § │ 205 CD ═ │ 237 ED Ý │
│ 142 8E Ä │ 174 AE « │ 206 CE ╬ │ 238 EE ţ │
│ 143 8F Á │ 175 AF » │ 207 CF ¤ │ 239 EF ´ │
│ 144 90 É │ 176 B0 ░ │ 208 D0 đ │ 240 F0 ­ │
│ 145 91 ž │ 177 B1 ▒ │ 209 D1 Đ │ 241 F1 ˝ │
│ 146 92 Ž │ 178 B2 ▓ │ 210 D2 Ď │ 242 F2 ˛ │
│ 147 93 ô │ 179 B3 │ │ 211 D3 Ë │ 243 F3 ˇ │
│ 148 94 ö │ 180 B4 ┤ │ 212 D4 ď │ 244 F4 ˘ │
│ 149 95 Ó │ 181 B5 ő │ 213 D5 Ň │ 245 F5 § │
│ 150 96 ů │ 182 B6 ║ │ 214 D6 Í │ 246 F6 ÷ │
│ 151 97 Ú │ 183 B7 ű │ 215 D7 Î │ 247 F7 ¸ │
│ 152 98 ý │ 184 B8 Ű │ 216 D8 ě │ 248 F8 ° │
│ 153 99 Ö │ 185 B9 ╣ │ 217 D9 ┘ │ 249 F9 ¨ │
│ 154 9A Ü │ 186 BA ║ │ 218 DA ┌ │ 250 FA ˙ │
│ 155 9B Š │ 187 BB ╗ │ 219 DB █ │ 251 FB ű │
│ 156 9C Ľ │ 188 BC ╝ │ 220 DC ▄ │ 252 FC Ř │
│ 157 9D Ý │ 189 BD Ż │ 221 DD Ţ │ 253 FD ř │
│ 158 9E Ř │ 190 BE ż │ 222 DE Ů │ 254 FE ■ │
│ 159 9F ť │ 191 BF ┐ │ 223 DF ▀ │ 255 FF │
└──────────────┴──────────────┴──────────────┴──────────────┘

Tečkové příkazy

TISK TEXTU
■ F6 .............. tisk celého textu
■ Ctrl-F6 ......... tisk od pozice kurzoru do konce textu
■ Ctrl-K Ctrl-P ... tisk bloku (nebo celého textu není-li blok definován)
■ Alt-F6 .......... interaktivní změna tiskárny

Tisk lze přerušit klávesou Esc. Při tisku se interpretují (netisknou se,
ale provedou požadované akce) následující tečkové příkazy, jsou-li
umístěné v prvních řádcích textu (po jednom na řádku vždy od prvního sloupce)

■ .ti n ... počet výtisků (implicitně 1)
■ .cp n ... automatické stránkování (počet řádek vynechaných na konci strany)

■ .pl n ... délka fyzické strany na tiskárně (implicitně 72 řádek)
■ .po n ... odsazení textu od levého okraje (implicitně 0)
správná funkce .po a .pl závisí na instalaci odpovídající řídící
sekvence pro tiskárnu - viz. Instalace tiskárny.

■ .ff ..... potlačí hlášku "nastav tiskárnu" na začátku a odstránkování
na konci
■ .nm ..... jako .ff ale na konci odstránkuje

■ .he text ... hlavička strany ┐ masky uvnitř textu
■ .fo text ... ukončení strany ├ ___ číslo strany
│ __.__.__ datum
│ __.__.____ plné datum (od verze 4.2)
┘ __:__ čas
n je libovolné číslo, text je jednořádkový řetězec

Technika blokování souboru

LAN - TECHNIKA BLOKOVÁNÍ SOUBORU
Po otevření sdíleného souboru používá FAND na nezbytně nutnou dobu jeden z
módů blokování (vyšší zahrnuje vždy i nižší).

Při sekvenčním zpracování souboru (sort, merge, report, indexace, cyklus
forall, obnovení obrazovky v datovém editoru - refresh) zůstane nárokovaný
mód blokování pro určitý soubor v platnosti do konce akce.

Pro práci jednotlivých účastníků je vždy rozhodující nejvyšší mód bloková-
ní, který je nárokován ostatními účastníky v okamžiku provedení akce.Platí
tedy, že já mohu provádět vše, pokud mi to někdo jiný právě nezakazuje.

Dočasná nedostupnost souboru je hlášena uživateli. Pokus o práci s bloko-
vaným souborem je opakován v pravidelných intervalech určených parametrem
net delay. Možnost přerušit čekání má uživatel pouze v některých případech
při práci datového editoru ( fáze startu datového editoru, pokus o změnu
právě blokované věty,... ), hlášení o blokování souboru je potom doplněno
o možnost přerušení klávesou ESC. Při přerušení fáze startu datového
editoru nastaví edbreak=15.

Technika sdílení

LAN - TECHNIKA SDÍLENÍ
Blokování souboru - FAND realizuje přístup ke sdíleným souborům zcela
automaticky. Pro umožnění postupného přechodu od
režimu sdílení souboru k jeho výlučnému (exclusive)
blokování pro jednoho účastníka je použita technika
blokování souboru s řadou módů blokování.

Zamykání vět souboru - technika zamykání vět je použita pro koordinaci
práce datových editorů.

Obě uvedené techniky je možné využít také v procedurách. K dispozici jsou
příkazy with shared (blokování souboru) a with locked (zamčení věty).

Technika zamykání vět

LAN - TECHNIKA ZAMYKÁNÍ VĚT
Ke koordinaci datových editorů na různých stanicích v síti je použita
technika zamčení ( lock ) věty. Lock je vydán před první změnou údaje
dané věty a případné čekání v případě blokování věty jiným účastníkem
( hlášení s ESC ) lze přerušit a tím odstoupit od záměru změny. Lock je
zrušen po úspěšném ukončení věty nebo po její obnově Ctrl-U.

Aby bylo možné vyhnout se dlouhému čekání a případnému deadlock, není při
lock zakázáno přepsání věty jiným programem (mimo datový editor a příkaz
"with locked ..."). Před zápisem změněné věty PC FAND zjistí, zda mezitím
nedošlo k takovému přepsání a případně po hlášení přečte a zobrazí stav
věty v souboru (anuluje změny provedené v editoru).

Při přímém přístupu k větě datového souboru z procedury není zamykání vět
automaticky prováděno !

Pro aktualizaci údajů nebo rušení věty příkazem deleterec v proceduře je
tedy vhodné použít příkaz with locked. Není-li uvedena větev "else ..",
pak v případě blokování některé ze zamykaných vět jiným účastníkem čeká
FAND na její uvolnění bez možnosti čekání přerušit.

Term

Term
Pojmem term označujeme datovou strukturu daného typu. Může být
tvořen konstantou, proměnnou i jejich kombinací.

Termy typu Integer, Real, String, LongString, seznamové typy a z
nich odvozené typy mohou obsahovat:

Změna pořadí vyhodnocování : kulaté závorky

Aritmetické operátory : + - * /

Bitové operátory : ^ negace
|| disjunkce
&& konjunkce
Použití bitových operátorů je omezeno pro typ Integer.

Zřetězení stringu a seznamu : +

Výraz typu String může obsahovat i proměnné typu LongString a výraz
typu Real může obsahovat i proměnné typu Integer. Platí i obráceně, tj.
výraz typu LongString může obsahovat proměnné typu String a výraz
typu Integer může obsahovat proměnné typu Real.

Příklad:
term typu Integer: 120
String : 'Auto'
Real : 125.624
Seznam : [ H|Ostatní ]
zřetězení : '0.'+'125'

TestMode

SPECIÁLNÍ FUNKCE

TextMode

EXTERNÍ PROGRAMY

Textový editor

TEXTOVÝ EDITOR
Textový editor se používá zejména pro prohlížení tiskových sestav a editaci
datových položek typu T (viz.volný text). Např. programátorské prostředí PC
FANDu je z velké části totožné s prostředím textového editoru.

Odchylky PC FANDovského textového editoru oproti standardním zvyklostem:

■ mód editace/prohlížení (přepíná se klávesou Scroll-Lock)
■ změněný text se při opuštění editoru klávesou Esc automaticky bez dotazu
nahraje na disk ( protože navíc do neformátovaných souborů vkládá oddělo-
vače řádků, nedoporučuje se používat textový editor na netextové soubory)
■ Zápis bloku do volné paměti (clipboard) pomocí kláves CtrlF7 (ShiftF7)

Některé charakteristiky textového editoru:
Není přímo omezena velikost editovaného souboru. Číslování řádků je omezeno
hodnotou 99.999. V paměti není uložen celý editovaný soubor ale jen jeho
určitá část, která se dynamicky (a pro obsluhu neviditelně ) načítá z disku
a zpět ukládá na disk. Pomocí techniky přerušení editace ( exit-procedury )
lze doplnit speciální funkce textového editoru. (příkazy pro editaci textu)

Then

IF, THEN, ELSE - duplicitní klíčová slova

Times

PARAMETRY SESTAVY

Tisk grafu

TISK GRAFU
Tisk grafu lze provést pomocí prostředků systému MS-DOS ( PrintScreen +
utilita graphics ). Výhodnější je použití podpory PC FANDu. Tj. klávesy F6
pro celou obrazovku nebo ShifF6 pro tisk aktuálního okna.

■ Pomocí příkazu graph s parametrem GF lze tisknout nejen vlastní graf ale
obecně libovolnou obrazovku nebo okno v grafickém módu.
viz. příkaz graph( GF='', ww=(...), Print=.., Txt=.., TxtWin=..)
Pro tisk má největší význam parametr print.

■ Tisk grafu se provede jako kopie jednotlivých bodů obrazovky (pixelů) na
tiskárnu v poměru 1:1. Tj. bod na bod. Samozřejmě zde hraje roli poměr
rastru obrazovky na hustotu tisku na tiskárně (viz. instalace tiskárny).

Tisk textu

TISK TEXTU

Today

AKTUÁLNÍ DATUM A ČAS, KONVERZE

trace

trace
trace(Integer)

Integer: 0 Vypnutí trasováni.
kladná hodnota Zapnutí trasováni, hodnota určuje hloubku
trasování. Např. při hodnotě 1 bude
trasován pouze aktuální predikát,
vyvolávané predikáty již trasovány nebudou.
Při hodnotě 2 se trasují dvě úrovně atd.

Řízení trasování. Lze jej vložit do těla libovolného predikátu.
Vypisuje na obrazovku průběh volání a návratů predikátů a hodnoty
parametrů. Automaticky se vypíná při opuštění predikátu v němž bylo
definováno.
Běh trasovaného programu lze přerušit stlačením klávesy "ESC".

Příklad:

spoj:- trace(1), concat('A','B','AB'),
concat('A','B',X), write(X),
concat('A',Y,'AB'), write(Y),
concat(Z,'B','AB'), write(Z).

TrailChar

NAHRAZENÍ V TEXTU

Transformace

TRANSFORMACE - kapitola M

Trust

PRÁVA PŘÍSTUPU K DATŮM

Třídění

TŘÍDĚNÍ
Třídění datového souboru.

██ Syntaxe: SORT ( NázevSouboru,( TřídícíÚdaje ))

■ NázevSouboru ... Název kapitoly F.
■ TřídícíÚdaje ... [>] [~] NázevÚdaje [{, [>] [~] NázevÚdaje }]
Seznam třídících údajů je uzavřen v kulatých závorkách
a obsahuje alespoň jeden údaj. Speciální znaky před
názvy třídících údajů:
> ... sestupné setřídění (jinak vzestupné)
~ ... lexikální třídění (u textových údajů)

░░░░░░░░░░░░ sort(PRAC,(>Věk)) {sestupně podle věku}
░░příklady░░ sort(PRAC,(OsobníČíslo)) {vzestupně podle čísla}
░░░░░░░░░░░░ sort(PRAC,(~Příjmení,~Jméno)) {lexikálně}

TurnCat

GENERAČNÍ SOUBORY

Txt

TXT - duplicitní klíčové slovo
■ graph(...,TXT=...,).................. příkaz graph - okno pro graf
■ copyfile(Soub1,Soub2/TXT,...) ....... převod textových souborů

TxtPos

TXTPOS - duplicitní klíčové slovo
■ txtpos ....................... pozice kurzoru v rámci textu po ukončení
editace - funkce textového editoru
■ edittxt(...,TxtPos=,...) ..... nastavení počáteční pozice kurzoru pro
editaci - příkazy pro editaci textu

TxtWin

PARAMETRY GRAFU
■ TXT=(XZ,YZ,VelikostPísma,BarvaPísma,Text) ...... zobrazení textu
XZ,YZ : ČísVýraz - souřad. levého dolního rohu (80x25)
VelikostPísma : ČísVýraz - [1..9]
BarvaPísma : TextVýraz, kód barvy (Palette)
Text : text pro zobrazení, zobrazí se co se vejde

■ TXTWIN=(XZ,YZ,XK,YK,BarvaPozadí,BarvaPísma,{Text[;]}) .. textové okno
XZ,YZ : ČísVýraz - souřad. levého horního rohu (80x25)
XK,YK : ČísVýraz - souřadnice pravého dolního rohu
BarvaPozadí,BarvaPísma : TextVýrazy, kódy barvy
Text : text pro zobrazení, nový řádek dle CR,LF a ;

TxtXY

TXTXY - duplicitní klíčové slovo
■ txtxy ........................ pozice kurzoru po ukončení editace textu
■ edittxt(...,TxtXY=,...) ...... nastavení pozice kurzoru v editačním okně

Typ dne

TYP DNE
Funkce typeday vrací typ zadaného dne.

██ Syntaxe: TYPEDAY ( Datum ) : real

■ Datum ...... Číselný výraz, datum v interním formátu PC FANDu.
■ Typ dne .... Návratová hodnota :
0 - pracovní den
1 - sobota, den pracovního volna
2 - neděle, den pracovního klidu
3 - svátek

Type

TYPY GRAFU
Typ grafu se zadá jako textový řetězec do parametru type. Dle typu grafu
se řídí použití dalších parametrů. Do počtu údajů v seznamu je zahrnut i
první údaj pro osu X.

■ 2DBAR...... dvojrozměrný sloupcový graf (max. 3 údaje z věty)
základní tvar 2 údaje, třetí údaj jako druhý sloupec
■ GROUP...... dvojrozměrný sloupcový graf (max. 11 údajů)
pro každou větu se vytvoří skupina sloupců dle počtu údajů
■ STACKBAR .. poschoďový srovnávací graf, jako group ale hodnoty údajů
věty se zobrazí do jednoho vícevrstevného sloupce
■ GROUPLINE.. dvojrozměrný čárový spojnicový graf (max. 11 údajů)
■ 3DBAR...... trojrozměrný sloupcový graf (max. 11 údajů)
■ 3DLINE..... trojrozměrný čárový graf (max. 11 údajů)
■ CIRCLE..... kruhový nebo koláčový graf (max. 2 údaje)
může být dvoj nebo trojrozměrný-dle druhé pozice param. fill
■ APPROX..... dvojrozměrný čárový aproximační graf (max. 3 údaje)
■ POLYREG.... dvojrozměrný čárový graf - polynomická regrese (max.3 údaje)
stupeň polynomu dle parametru grpoly

Pokud tento parametr chybí, nebo textový výraz má jinou hodnotu použije se
hodnota '2DBAR'.

TypeDay

TYP DNE

Typy grafu

TYPY GRAFU

Typy údajů

ULOŽENÉ ÚDAJE
Seznam údajů, které budou fyzicky uloženy v souboru, ve tvaru:

██ NázevÚdaje : Typ ;

typy údajů v PC FANDu:

█ F,m.n ... číslo, m, n udává počet míst před a za čárkou,
rozsah čísla je až 18 míst, z toho je 11 platných míst
ve verzi pro matematický koprocesor 15 platných míst
█ R ... reálné číslo v pohyblivé řádové čárce, interně uložen
jako (Pascal) typ real v 6 bytech.
█ A,n ... znakový řetězec, n udává délku (až 255 znaků)
█ N,n ... číselný řetězec, n udává délku (až 79 znaků)
█ D ... datum s implicitní maskou 'DD.MM.YY'
█ B ... logický typ (pravda=true='A', nepravda=false='N')
█ T ... volný text (formátovaný text maxim. délky 65 000 B)

░░░░░░░░░░░░
░░příklady░░ Množství: F,6.0; Cena: F,4.2; Aktiva: F,9.2;
░░░░░░░░░░░░ Název: A,12; Titul: A,30; Poznámka: A,250;
Kód: N,3; Psč: N,5; Ičo: N,8;
Datum: D; Proplaceno: B; Poznámky: T;

Typy výrazů

TYPY VÝRAZŮ