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 557×
2541 slov