VYŠŠÍ PROGRAMOVACÍ JAZYKY - Visual Basic
1.Datové typy
A)Druhy datových typů:
Základní:
Celočíselné:
Byte -  zabírá 1Byte ( 0 až 255 )
Integer - celočíselná hodnota se znaménkem zabírající 2Byte (-32768 až 32767 )
Long  - celočíselná hodnota zabírající 4Byte (-2147483648 až 2147483647 )
Currency - reálné číslo s 15 desetinnými čísly před desetinnou čárkou a 4 za desetinnou čárkou
 zabírající 8 Byte
Reálné:
Decimal - celočíselná hodnota bez znaménka,lze ho použít jen pomocí Variant jehož je podtypem,zabírá 12 Byte
Single - celočíselná hodnota zabírající 4 Byte (-3.402823E38 až -1.401298E-45 pro záporné hodnoty,1,401298E-45 až 3,402823E38 pro kladné hodnoty)
Double - je obdobou single,ale ve dvojnásobné přesnosti ,zabírá 8 Byte
Logické:
Boolean - uchovává hodnoty True nebo False zabírající 2Byte
Nestardantní:
Object - obsahují odkaz na objekt (adresu),zabírá 4 Byte
Variant - je to obecný datový typ,který může obsahovat jeden z výše uvedených datových typů,proměnná tohoto typu může dynamicky měnit svůj datový typ,jestliže není proměnná nadimenzovaná pak je typu Variant,zabírá 16 Byte
Date - obsahuje hodnoty datum a čas (1.leden 100 až 31.prosinec 9999,00:00:00 až 23:59:59),zabírá 8 Byte
Složitější:
String - řetězec libov. znaků kódovaných pomocí ASCII,jeho délka je prakticky neomezena - asi 2 miliardy znaků,dále se dělí na řetězec promněnlivé délky a pevné délky
Pole -  při deklaraci proměnných může být identifikátor proměnné opatřen indexovým rozsahem ,to je, že řada po sobě jdoucích prvků(paměťových míst) je nazvána stejným jménem,rozlišena číslem a ‘’vložena“ do pole,indexový rozsah udává jeden rozměr pole,teoreticky může být pole velké o n*n prvcích
Vlastní (strukturované) datové typy:
Příkazem Type si uživatel může definovat svůj vlastní datový typ,které jsou buď přejmenováním některého ze základních datových typů nebo nebo jsou kombinací několika datových typů v jedné datové struktuře.
Př:	Type Nosoba
 Prijmeni as String
 Rodnecislo as Double
 End Type
B)Deklarace proměnných a definice proměnných:
Ve VB lze deklarovat proměnné explicitně(lepší metoda,příkaz Option Explicit) a implicitně (pak systém přidělí proměnné typ Variant,nebo uživatel určí datový typ pomocí prvního znaku v identifikátoru-příkaz
DefTyp,a nebo uživatel sám určí typ proměnné přidáním tzv.typové přípony-suffixu za identifikátor proměnné).VB nevyžaduje explicitní deklaraci.
Deklarace proměnné se provádí před jejím prvním použitím.Deklarace proměnných v sobě zahrnuje název proměnné, její datový typ,dále obor (Public,Private) a dobu platnosti (statické-Static nebo proměnné).Deklarací proměnných vymezujeme místo v paměti,kdežto definicí přiřadíme proměnné nějaky datový typ.
C)Deklarace konstant:
Konstanta představuje symbolický název,kterému je přiřazen řetězec nebo číslo,které se nemění.Uživatel si může nadefinovat svou konstantu příkazem const.Definice vlastních konstant má tuto syntaxi:
[Public|Private] Const název konstanty [As typ] = výraz
D)Globální a lokální proměnné a rozsah platnosti identifikátorů:
Lokální proměnné jsou ty,které jsou deklarované v proceduře,to jest že jejich viditelnost je pouze ta procedura v níž byly deklarované.Deklarují se příkazem Dim (proměnná existuje puze po dobu běhu kódu procedury)anebo příkazem Static(hodnota proměnné se zachovává i po ukončení běhu procedury).
Globální proměnné jsou ty proměnné ,které jsou deklarované v modulu (v jeho deklarační sekci).Jsou viditelné jen pro procedury tohoto modulu.Deklarují se příkazem Dim nebo Private.Chceme-li proměnnou zpřístupnit ve všech modulech ,pak použijeme příkaz Public.
2. Struktura programu:  
 Program se dělí na části :
- dimenzaci proměnných 
- programový kód (cykly ,funkce , atd.)
- vizuální pracovní plocha(formulář),kde se umísťují objekty (tlačítka), atd.
- konec programu(End ...)
3. Operátory:
 Za pomoci operátorů  Visual Basicu můžeme provádět různé operace nad proměnnými a poli.
 a) Matematické operátory 
 arg + arg 		sečte oba argumenty
 arg - arg 		odečte oba argumenty
 -arg			změní znaménko
 arg*arg		vynásobí oba argumenty
 arg/arg  		vydělí první druhým
 argarg		celočíselné dělení (výsledek je jen celá část podílu)
 arg1 MOD arg2	zbytek po celočíselném dělení
 arg1^arg2		umocnění základ arg1 mocnitelem arg2
 b) Relační
 arg1 < arg2		výsledek je true , je-li arg1 menší než arg2 , jinak false
 arg1 > arg2		výsledek je true , je-li arg1 větší než arg2 , jinak false
 arg1 = arg2		výsledek je true , je-li arg1 větší nebo roven  arg2 , jinak false
 arg1 = arg2		výsledek je true , je-li arg1 roven arg2 , jinak false
 arg1  arg2 		výsledek je true , když arg1 není roven arg2 , jinak false
 Like 			prověří , zda se v řetězci nachází určitý vzorek
 Is			prověří , zda existuje objektová proměnná daného typu , nebo zda dvě 
 objektové proměnné obsahují odkaz na stejný oběkt.
c) Logické	
 arg1 AND arg2	logický součin obou argumentů
 arg1 OR arg2		log. součet obou argumentů
 arg1 XOR arg2	výlučně OR (nonekvivalence) argumentů
 NOT arg		negace arg.
 arg1 IMP arg2		implikace arg.
 arg1 EQV arg2	ekvivalence arg.
d)Bitové(And,Or,Xor,Egv,Imp)
 př.
IMP
bit1	  bit2	  výsledek
0	  0	  1	
0	  1	  1
1	  0	  0
1	  1          1
4. Příkazy:
 a) Rozhodovací
Pomocí rozhodovacích struktur mohou programy reagovat na určité situace.
Klasická rozhodovací struktura je If...Then...End If . V nejjednodušším  případě s její pomocí provede blok příkazů , jestliže je podmínka vyhodnocená jako splněná čili True:
 If výraz Then příkaz
 nebo
 If  výraz Then 
 Blok příkazů
 End if
b) Cykly
 
 For...Next 
 - Používá se v případě pokud víte kolikrát se mají příkazy v těle cyklu zopakovat.
 For řídicí_proměnná = začátek To konec Step krok
 příkazy
 Next řídící_proměnná
For Each ... Next     
 Používá se pro procházení kolekce objektů.
 For Each objekt In kolekce_objektů
 příkazy
 Next objekt
Do While ... Loop /Do ... Loop While
 Tento příkaz se používá tehdy , když počet iterací  není znám  , nýbrž závisí na splnění určitých podmínek.Cyklus While iteruje tak dlouho , dokud trvá jistý stav (běží tak dlouho , dokud není splněna podmínka pro jeho ukončení)
 Do While podmínka 
 příkazy
 Loop
 Do
 příkazy
 Loop While podmínka
Do Until ... Loop/Do ... Loop Until
 Cyklus iteruje až do vzniku určitého vztahu.
 Do Until podmínka_ukončení
 příkazy
 Loop
 Do
 příkazy
 Loop Until podmínka_ukončení
5.Operace s poli:
Pole se dělí na statické a dynamické.U statického pole je předen dán počet prvků.U dynamického pole není předen dán počet prvků (indexový rozsah),závorky jsou prázdné.Jeho indexové rozsahy budou deklarovány pozděi příkazem ReDim a to umožnuje určovat počet dimenzí a její rozsah až při běhu aplikace.VB má standartně nastavenou dolní mez indexu na nulu.Uvedeme-li však  příkaz Option Base = číslo dolní meze indexu,bude brát dolní mez indexu pole od tohoto čísla.Způsoby nadimenzování pole:
Dim název pole (počet prvků) As datový typ
Dim název pole (dolní mez1 To horní mez1,dolní mez2 To horní mez2,....) As datový typ
6.Řetězce:
Řeťezcové operátory:Zřetězení (+) : výsledkem je zřetězení operandů,které musí být řetězci.Tento způsob je nevhodný.
Zřetězení (&) : výsledkem je zřezězení operandů ,které mohou být i jiného než řetězcového typu.Před zřetězením se operandy převedou na řetezcový typ,výsledkem je také řetězec.
Zpracování řetězců pomocí příkazů a funkcí:
Ucase(řetězec) - Změní písmena v řetězci na velká písmena
Lcase(řetězec) - Změní písmena zadaného řetězce na malá písmena
Len(řetězec) - Vrací délku řetězce jako počet znaků (v čísle)
Right(řetězec,délka) - Vrátí pevný počet znaků řetězce zprava
Left(řetězec,délka) - Vrátí pevný počet znaků řetězce zleva
Mid(řetězec,start,počet znaků-délka) - Vratí pevný počet znaků řetězce od čísla které udává parametr start o délce,která je určena parametrem počet znaků.
InsStr(hledaný řetězec v řetezci X) - Vyhledá počátek výskytu daného řetězce v jiném rětezci X a popř. vrátí hodnotu čísal od kterého znaku začíná hledaný řetězec v řetězci X
String(počet opakování,znak) - Vytvoří řetězec jako počet opakovaných znaků
Space(počet) - Vrací tolik mezer kolik je učeno parametrem počet
Asc(písmeno) - Vrátí kód ASCII zadaného písmene (znaku)
Chr(kód ASCII) - Vrátí znak,jehož pozice v ASCII je rovna zadanému kódu
StrComp(řetězec1,řetězec2,porovnej) - Vrací číselnou hodnotu určující porovnávání dvou řetězců.Návratové hodnoty: -1 řetězec1 < řetezec 2, 0 řetězec1 = žetězec2, 1 řetězec1>řetězec2
Chceme-li porovnat jeden řetezec(kód ASCII) s druhým řetězcem použijeme k tomuto účelu relační operátory.Př: “AAAAA“>“AAA“ - vyhodnotí se jako True (pravda)
7.Procedury a Funkce:
Dovolují soustřeďovat části programu pod jedním jménem a pomocí toho jména k nim přistupovat.Pod Visual Basicem se veškerý kód programu , až na deklarace , nachází ve všeobecné části modulu v procedurách a funkcích.
- Procedury . Jsou to části modulu seskupené pod jedním jménem. Procedury nepředávají žádné hodnoty , ale mohou přijímat parametry a hodnoty v nich vracet.
- Funkce . Funkce se chovají jako procedury , s tím rozdílem že mohou předávat hodnotu.
- Procedury událostí . Tyto procedury jsou vyvolány událostmi , které nastanou při běhu programu . Slouží k ošetření těchto událostí.
- Procedury vlastností . Jestliže chcete objektu , například formuláři , přidat novou vlastnost ,pak se tento objekt doplní o dvě procedury . Jedna z nich má na starosti  nastavení vlastnosti , další její čtení .
- Chcete li použít proceduru nebo funkci , musíte ji nejprve vyvolat .
- Proceduru vyvoláte tak , že její jméno vložíte do zdrojového kódu . Přímo za jméno procedury zadáte parametry,které chcete proceduře předat . 
 příkazy
 jméno_procedury [parametr1, parametr2, . . . , parametrN]
 příkazy 
 nebo
příkazy 
Call jméno_procedury [(parametr1 ,parametr2, . . . , parametrN)]
příkazy
Funkce se vždy přiřazuje proměnné nebo se např. nachází v příkazu If - v každém případě se musí zpracovat vrácená
hodnota ( výsledek ).
proměnná = jméno_funkce ( [parametr1 ,parametr2 ,. . . ,parametrN] )
Definování vlastních procedur a funkcí - 
 Syntaxe pro definování procedury:
[Private|Public|Friend][Static] Sub  jméno [(argumenty)]
 [příkazy]
[Exit Sub]
 [příkazy]
End Sub
Syntaxe pro definování funkce:
[Private|Public|Friend][Static]Function jméno [(argumenty)] [As typ]	
 [ příkazy ]
[jméno = výraz]
[Exit function]
 [  příkazy ]
[jméno = výraz]
End Function
Public - procedura/funkce je přístupná pro všechny procedury a funkce ze všech modulů.
Private - procedura/funkce je dostupná pouze v modulu kde byla deklarovaná 
Friend - požívá se pouze v modulech tříd.
Static - použitím slova static se ze všech lokálních proměnných dané procedury stanou statické proměnné.
Exit Sub/Exit Function - těmito příkazy se dá procedura/funkce předčasně ukončit.
8.Vstupně výstupní operace:
Input(počet,[#]číslo) - Přečte a vrátí znaky se souboru otevřeného příkazem Open v režimu Binary nebo Input.První parametr určuje počet přečtených znaků a druhý parametr číslo je manipulační číslo souboru.
InputBox(prompt[,title] [,default] [,xpos] [,ypos] [,helpfile,context]) -Slouží k vstupu hodnot zadaných uživatelem během programu.Parametr prompt otevře nové dialogové okno,ve ktetém zobrazí hodnotu tohoto parametru.Title určuje nápis v titulkovém pruhu okna.Default určuje hodnotu.která se objeví v okně inputboxu.Xpos a ypos určují umístění okna inputboxu.Helpfile a context zpřístupňují nápovědu.
MsgBox(prompt[,buttons] [,title] [,helpfile,context]) - Otevře okno s informací pro uživatele.Parametry msgboxu jsou stéjné jako u inputboxu,kromě parametru buttons,který určuje kód tlačítka.
Vstupně výstupní příkazy pro práci se soubory:
Open soubor [For režim] [Acces přístup] [zámek] As[#]Číslosouboru [Len = délka] - Příkaz Open otevítá soubor s názvem uvedeným v parametru soubor(popř.i cesta),který se zadá pomocí řetězcového výrazu..K souboru lze přistupovat různě(číst,zapisovat...For režim).Číslo souboru je manipulační číslo v rozmezí 1 až 511.Parametr zámek určuje způsob přístupu k souboru u ostatních uživatelů.Otevřený soubor musí být poté uzavřen příkazem Close (#číslo souboru)nebo Reset.
Parametry režim:
Random - Příkaz Open se pokusí soubor otevřít pro čtení i zápis,pokud toto nelze,zkusí pro zápis a ani pokud pro zápis tak zkusí otevřít soubor pro čtení
Binary - Soubor bude Otevřen v binárním zežimu
Input - Soubor bude otevřen pro sekvenční čtení(čtení znak po znaku)
Output - Soubor bude otevřen pro sekvenční zápis
Append - Soubor bude otevřen pro sekvenční zápis prováděný na konec souboru(délka souboru se bude zvětšovat)
Pokud není na disku nalezen soubor,vytvoří se (kromě příkazu Input)
Parametry přístup:
Read - Soubor je otevřen pouze pro čtení
Write - Pouze pro zápis
Read Write - Pro čtení i zápis
Seek [#]číslo,pozice - Nastavís se pomyslný ukazatel na pozici v otevřeném souboru.Příští vstupní nebo výstupní operace bude probíhat od tohoto místa
Get [#]číslo,[záznam],proměnná - Slouží ke čtení souborů v režimu Random nebo Binary.Parametr záznam je nepovinný a určuje číslo zaznamu ,který bude přečten.Pro režim Binary určuje pořadí znaku v souboru
Put [#]číslo, [záznam],proměnná - Slouží k zápisu záznamu nebo znaků do souboru otevřených v režimu Random nabo Binary.Pokud není uveden parametr záznam,bude se zápis provádět na místo aktuálního záznamu(znaku)
Print #číslo,[[{Spc(n)|Tab[(n)]}][výraz][pozice] - Zapisuje data do sekvenčně otevřeného souboru.
Parametr výraz je hodnota,která se zapíše do výstupního souboru.Pozice je středník nebo čárka.Určují pozici kurzoru pro další znak.Pokud je uveden středník,zapíše se hodnota za aktuální výstupní hodnotu.Je-li uvedena čárka,zapíše se další hodnota do následující zóny výstupu.Spc(n) - zařadí do výstupu n mezer.Tab(n) - způsobí,že výstup výrazu bude proveden od n-tého sloupce řádku.
Line Input #číslo,řetězcová proměnná - Přečte ze sekvenčně otevřeného souboru jeden řádek(zakončený znakem s kódem 13).Parametr řetězcová proměnná určuje identifikátor proměnné řetězcového typu,do které se data přenesou
Write #číslo, [seznam_výrazů] - Slouží k výstupu do sekvenčního souboru.Tento soubor je otevřen buď v režimu Output nebo Append
Input #číslo,seznamproměnných - Čte data ze souboru sekvenčně otevřeného
Width #číslo,šířka - Nastavuje maximální šířku výstupního řádku(počet znaků),které se vytisknou na jeden výstupní řádek.pokud seznam výstupních výrazů přesáhne stanovenou hodnotu,bude se výstup provádět na následující řádek
9. Grafika :
Funkce Line
Slouží ke tvorbě čar nebo pravoúhelníků . Ke kreslení na formulář používá funkcí FillColor,FillStyle,
DrawWidth,DrawMode a DrawStyle.
syntaxe:
Line [step] (x1,y1)[step](x2,y2)[barva][B] [F]
Step - (x1,y1) a (x2,y2) se považují za relativní souřadnice vzhledem k souřadnicím  ve vlastnostech CurrentX a CurrentY.
x1,x2,y1,y2 - tyto parametry udávají počáteční a koncový bod čáry.
Barva - tímto údajem se nastaví barva čáry (pomocí funkce RGB nebo QBColor)
B - tento atribut říká, že se nebude kreslit čára ,ale pravoúhelník .
F - jestliže se použilo B, pak se tento atribut postará o to, aby se pravoúhelník vyplnil barvou , která se použila k nakreslení jeho obrysu.
Funkce Pset
Tato funkce má za úkol vykreslit na formulář bod o souřadnici X ,Y
Pset [Step](x,y) barva
10.Modulové programování:
Standartní modul je v programu tzv. samostatným kontejnerem,který obsahuje globální neboli veřejné proměnné(viz. globální a lokální proměnné) a procedury typu Function(funkce) a Sub(podprogramy).Takže standartní moduly slouží ke sdílení proměnných a procedur.Tyto proměnné a procedury lze z modulu kdykoliv vyvolat a použít.Moduly se hodí např. při týmové spolupráci anebo pří psaní složitějšího a rozsáhlejšího programového kódu.
11.Objektové programování:
a) Vlastnosti 
K nadefinování vlastností ovládacích prvků programu se používá okno vlastnostrí (Propertis) . Okno vlastností má  tři  součásti  : 
- Zcela na vrchu je Combo-box  se všemi ovládacími prvky  aktuálního formuláře .
- Druhá oblast je vlastní pracovní plocha okna . Ve dvou registrech zde máte možnost měnit vlastnosti aktuálního ovládacího prvku.
-Třetí oblast je volitelná . U dolního okraje okna je pole description  ,které obsahuje stručný popis právě vybrané vlastnosti .
b) Události (Events)
Signálem pro spuštění  událostních procedur  je  výskyt události (event) , která je připojena k některému 
objektu (např. ovládacímu prvku ) . Událost nemusí být vyvolaná pouze akcí uživatele. Událostí , která spustí příslušnou událostní proceduru - pokud není její tělo prázdné  - může být třeba i chyba vygenerovaná při běhu aplikace.
c) Metody (Methods)
- Circle  - kreslení  kružnice , oblouku , elipsy.
- Cls - vymaže na form. grafické a textové výstupy vyprodukované za běhu programu
- Hide - skryje formulář ale ponechá jej v paměti .
- Line - nakreslí na form. čáru.
- PaintPicture - vykreslí na form. grafický soubor.
- Point  - vrátí barevnou hodnotu  na formuláři  ve tvaru RGB.
- PopupMenu - otevře v místě daném souřadnicemi místní  (kontextovou) nabídku.
- PrintForm - vytiskne formulář jako bitmapu  na standartní tiskárně.
- Pset - nastaví bodu v určitém místě formuláře barvu .
- Refresh - překreslení formuláře ( i jeho obsahu)
- Scale - Touto metodou definujete pro formulář vlastní souřadnicový systém .
- ScaleX,ScaleY - převádí hodnotu souřadnic z jednoho souřadnicového systému do druhého.
- Show - Zobrazí formulář .Pokud není zaveden do paměti , provede se to při tomto zobrazení.
- TextHeight,TextWidth - vrací výšku a šířku textového řetězce  při aktuálně nastaveném písmu.
								
							 
							20. prosinec 2007
						
							 
							4 848×
							
							 
							2541 slov