Visual Basic 0 abc-doar


pentru a determina executia unei proceduri anume,se pot utiliza instruc-



Yüklə 0,98 Mb.
səhifə4/10
tarix03.11.2017
ölçüsü0,98 Mb.
#29921
1   2   3   4   5   6   7   8   9   10

pentru a determina executia unei proceduri anume,se pot utiliza instruc-

tiunile: Call,Function,Sub,PropertyGet,PropertyLet si PropertySet.

Asadar,exista un set intreg de mijloace tehnice prin care se poate orga-

niza si sistematiza executia programului.Prin combinarea acestor mijloace,

se pot obtine solutii din ce in ce mai complexe.De exemplu,se pot crea

inclusiv solutii in care procesorul isi alege singur calea cea mai rapida

prin care poate rezolva un grup oarecare de operatii.Practic,se implemen-

teaza doua sau mai multe solutii alternative.Inainte de a executa setul

de operatii,se calculeaza numarul de operatii si timpul necesar pentru

fiecare dintre solutii,apoi se alege varianta cea mai economica si se

executa automat.Acest gen de implementare poarta numele de optimizare.

Pentru seturi diferite de date,una sau alta dintre solutiile propuse poate

fi cea optima.

Atunci cand proiectati un modul sau un program,este bine sa aveti in

vedere si perspectiva de dezvoltare viitoare a programului sau modulului

respectiv.Exemplu: creati un program ce exploateaza o baza de date formata

din cateva zeci de inregistrari.In perspectiva,este probabil ca baza de

date se va dezvolta la cateva mii sau chiar zeci de mii de inregistrari.

Trebuie sa aveti in vedere cum se va comporta programul atunci cand va

avea de prelucrat zeci de mii de operatii suplimentare.Operatiile de opti-

mizare nu se fac remarcate decat atunci cand programul incepe sa treneze

si necesita mai mult decat cateva secunde pana executa sarcina solicitata.

Calculatoarele moderne pot executa milioane sau chiar miliarde de operatii

pe secunda.Totusi,aceasta limita este destul de usor de atins,mai ales

atunci cand se lucreaza cu baze de date.Trebuie sa tineti cont de faptul

ca pe langa operatiile incluse in programul d-voastra,procesorul trebuie

sa execute in permanenta si un set foarte larg de operatii de intretinere

si actualizare a memoriei,de incarcare si descarcare a tampoanelo de me-

morie,de conversie sau reconversie a datelor,de inregistrare a operatiilor

efectuate,de verificare si tratare a eventualelor erori etc.Solutia cea

mai buna este intotdeauna solutia cea mai simpla (cu nr.minim de operatii).


-19-

CUVINTE CHEIE (Keywords) - sunt cuvinte cu o semnificatie speciala pentru

compilator.Nu pot fi redefinite si nici nu se pot declara variabile sau

constante cu acelasi nume.Aceste cuvinte cheie sunt un fel de jaloane fixe

si se utilizeaza pentru a forma expresii,instructiuni,functii sau proce-

duri.Indiferent unde apar in program,vor fi interpretate cu definitia lor

implicita.Practic,compilatorul contine o lista a acestor identificatori.

Pentru orice element din program,compilatorul va face o comparatie dintre

numele identificatorului utilizat si aceasta lista de control.Daca exista

compatibilitate totala,identificatorul va fi considerat a fi cuvant cheie.

O parte dintre aceste cuvinte cheie sunt comune pentru toate limbajele de

programare (Exemple: if,long,else,unsigned etc.) in timp ce altele sunt

specifice pentru fiecare limbaj.

Limbajul Visual Basic 5.0 recunoaste urmatoarele cuvinte cheie:

Access,Alias,Any,Append,As,Base,Binary,ByRef,ByVal,Case,CDecl,Compare,Date

Each,Else,Elseif,Empty,Endlf,Error,Explicit,False,For,Get,Global,In,Input,

Is,Len,Let,Lib,Local,Lock,Loop,Me,Mid,Module,New,Next,Nothing,Null,On,

Option,Optional,Output,ParamArray,Preserve,Print,Private,Property,Public,

Random,Read,Resume,Seek,Set,Shared,Static,Step,String,Text,Then,Time,To,

True,Typeof,Until,Wend,WithEvents.

Prezentarea fiecarui cuvant cheie,depaseste scopul acestui manual.In

functie de experienta d-voastra,este bine sa studiati lista completa si

explicatiile din manualul Help.Pentru cuvintele cheie cu care nu sunteti

familiarizat,este bine sa scrieti si cate un mic exemplu:

EXEMPLU: deschideti o fereastra noua si editati urmatorul text:

Sub ChangeFormColor(FormName As Form)

FormName.BackColor = RGB(Rnd*256,Rnd*256,Rnd*256)

End Sub

Sub ChangeSize(FormName As Form)

FormName.Height = Rnd*8000

FormName.Width = Rnd*10000

End Sub

Private Sub Form_Load()

Randomize

ChangeFormColor Me

ChangeSize Me

End Sub

Executati exemplul de mai sus cu Run si Start,de mai multe ori.De fiecare

data,fereastra va avea culoarea de fond si dimensiunile diferite.Acest

exemplu ilustreaza simplu cuvantul cheie "Me".Me este de fapt un pointer

catre instanta actuala a unei clase (catre obiectul activ).In exemplul de

mai sus,procedurile Change FormColor si ChangeSize pot fi apelate pentru

orice fereastra din program (atunci cand sunt mai multe).Cuvantul cheie

"Me" se poate utiliza pentru a specifica faptul ca doriti sa apelati pro-

cedura respectiva pentru fereastra activa.In alte limbaje de programare

se utilizeaza pointerul "This".In exemplu,Me inlocuieste numele ferestrei.

Cuvintele cheie sunt elemente fundamentale de limbaj.Prin combinarea

lor se pot obtine mijloace complexe de exprimare,dar trebuie sa respectati

un set minimal de reguli,la fel ca la un joc de puzzle.Ori de cate ori

aveti nelamuriri,studiati cu atentie explicatiile din Help si apoi dese-

nati o mica schita a mediului de memorie in care utilizati cuvantul cheie

respectiv (pentru a elimina eventualele conflicte de identificator).


-20-

OPERATORI: -sunt simboluri speciale utilizate pentru a desemna o anumita

operatie,in cadrul unei expresii.In functie de tipul datelor asupra carora

actioneaza,operatorii se pot grupa in : 1.Operatori aritmetici,2.Operatori

pentru comparare,3.Operatori pentru concatenare si 4.Operatori logici.

1.Operatorii aritmetici sunt: ^(exponential),*(Inmultire),/(impartire),

\(impartire cu rotunjire la intreg),Mod(restul impartirii),+(adunare) si

-(scadere).Se utilizeaza pentru a efectua calcule matematice.Se pot grupa

in diverse expresii.Atunci cand o expresie contine mai multi operatori

matematici,vor fi evaluati in urmatoarea ordine:

Exponential...negatie...multiplicare si impartire...impartirea la intreg.

...restul impartirii...adunare si scadere...concatenarea sirurilor.

Daca in expresie figureaza mai multi operatori cu aceeasi precedenta,de

exemplu mai multe adunari si scaderi consecutive,operatorii vor fi execu-

tati in ordinea in care apar in expresie.Daca operatorii au precedenta

diferita,se va executa la inceput cel cu precedenta cea mai mare si apoi

cel cu precedenta imediat urmatoare,pana la ultimul operator...cel cu

precedenta cea mai mica.

Pentru a forta executia unui operator cu precedenta mai mica,inaintea

unui operator cu precedenta mai mare,sau pentru a specifica explicit

ordinea de executie a operatiilor se pot utiliza parantezele rotunde.

EXEMPLU: deschideti o fereastra si editati urmatorul text:

Private Sub Form_Click()

Dim a,b,c,d

a = 3

b = 5

c = 7

d = 2

Form1.Print "3 + 5 / 7 - 2 = "

Form1.Print a + b / c - d

Form1.Print "(3+5)/(7-2)="

Form1.Print (a+b)/(c-d)

Form1.Print "5/3="

Form1.Print 5 / 3

Form1.Print "5\3="

Form1.Print 5 \ 3

Form1.Print "Restul impartirii 5 / 3 este:"

Form1.Print 5 Mod 3

End Sub

Executati cu Run si Start si apoi un click in fereastra.

2.Operatorii pentru comparatii sunt: < (mai mic decat),<= (mai mic sau

egal),> (mai mare decat),>= (mai mare sau egal),= (egal cu),<> (diferit)

In cazul sirurilor de caractere,se pot utiliza si opratorii Is sau Like.

Acesti operatori se utilizeaza in interiorul unor expresii si returneaza

un rezultat de tip logic,in functie de rezultatul compararii.Rezultatul

va fi True,daca expresia evaluata este adevarata,False daca expresia eva-

luata nu este adavarata,sau Null,daca expresia nu poate fi evaluata din

cauza ca unul dintre membri este de tip Null sau incompatibil cu operato-

rul utilizat.Daca se incearca copararea unui sir de caractere cu o valoare

numerica,se returneaza o eroare de tip "Type Mismatch".In general,se vor

utiliza in expresii mai ales variabile de tip Variant,astfel incat expre-

sia sa fie cat mai usor de evaluat.


-21-

Daca nu se utilizeaza variabile de tip Variant,este bine ca ambele ele-

mente comparate sa fie din acelasi tip de data,sau sa fie perfect compa-

tibile (Exemplu : Long cu Integer).

Daca unul dintre elemente va fi de tip Variant si celalalt de un tip

oarecare,comparatia se va face in functie de tipul explicit (Exemplu:

Variant si String vor fi evaluate ca String).

Daca se compara tipuri de date cu domeniul de reprezentare diferit,

comparatia se va face in functie de elementul cel mai restrictiv (Exemplu:

daca se compara Single cu Double rezultatul va fi evaluat la precizia

elementului de tip Single).

Pentru operatorii de comparare,precedenta (ordinea de executie) este urma-

toarea:

egalitate...inegalitate...mai mic decat...mai mare decat...mai mic sau

egal...mai mare sau egal...Like...Is

Daca o operatie de comparatie returneaza un mesaj de eroare,sau returneaza

un rezultat gresit,este bine sa impartiti expresia in subexpresii si sa

evaluati separat fiecare subexpresie,pana cand identificati eroarea.In

general,operatiile de comparare sunt extrem de simple,mai ales atunci

cand se compara date din acelasi tip de data:

EXEMPLU: deschideti o fereasta noua si testati urmatorul cod:

Private Sub Form_Click()

Form1.Print " 45 < 35 este: "

Form1.Print 45 < 35

Form1.Print " 45 > 35 este: "

Form1.Print 45 > 35

Form1.Print "(45 < 35) <> (45 > 35) este:"

Form1.Print (45 < 35) <> (45 > 35)

End Sub

Executati cu Run si Start si apoi un click in fereastra.

Exista situatii in care depanarea unor astfel de expresii este extrem

de dificila,mai ales atunci cand se utilizeaza tipul de data Variant si

apoi un sir consecutiv de expresii,in care tipul de data se modifica de

mai multe ori.In toate aceste situatii,este recomandabil sa verificati

ce valaore returneaza variabila respectiva inainte de a intra in expresia

de comparare si apoi sa inlocuiti variabila prin valaoarea de moment.In

cele mai multe situatii,aceasta metoda va da rezultat.In caz contrar,va

trebui sa depanati succesiv fiecare operatie efectuata,pana cand identifi-

cati sursa erorii.

3.Operatorii pentru concatenare sunt: & (concatenarea sirurilor) si + (

operatorul de aditie).Ambii se pot utiliza pentru a concatena doua siruri,

dar operatorul + se poate utiliza si pentru a aduna doua valori numerice.

Pentru a elimina ambiguitatea,atunci cand lucrati cu variabile de tip

Variable si doriti o concatenare de tip String,utilizati operatorul &.

EXEMPLU: deschideti o fereastra si editati urmatoarea procedura:

Private Sub Form_Click()

Dim a,b

a=7

b=5

Form1.Print a & b

Form1.Print a + b

End Sub


-22-

4.Operatorii logici sunt: And,Eqv,Imp,Not,Or,Xor si se utilizeaza pentru

a construi expresii in care se executa operatii logice.Fiecare astfel de

operator,executa o oparatie logica intre doua expresii si apoi returneaza

un rezultat tot de tip logic,in functie de rezultatul evaluarii.Rezultatul

returnat depinde atat de modul in care a fost evaluata fiecare dintre cele

doua expresii cat si de operatia logica in sine.Raspunsurile posibile sunt

incluse intr-o tabela de adevar de genul:

Daca expresia 1 este: Daca expresia 2 este: Rezultatul este:

True True True

False True False

...etc. ...etc. ...etc.

Ecuatiile sunt destul de simple,dar este bine sa verificati de fiecare

data tabela de adevar pentru fiecare operator logic,ori de cate ori pro-

gramati o expresie in care se utilizeaza astfel de oparatori.De multe ori,

un anumit raspuns logic,vi se pare intuitiv ca este de un anumit fel,dar

in realitate este astfel ( Exemplu: pentru Eqv,daca ambele exprresii sunt

False,rezultatul este True,desi la prima vedere poate fi asteptat un

razultat True).Din acest motiv,ori de cate ori utilizati expresii logice

este bine sa verificati expresia cu valori concrete,pana cand epuizati

toate variantele posibile,pentru a exclude orice fel de rezultate nescon-

tate.

Operatorii logici pot lucra cu orice tip de date: numerice,siruri de

caractere,adrese de memorie,obiecte etc.Daca se utilizeaza doar pentru

operatii logice intre expresii de tip numeric,operatorii logici pot efec-

tua si operatia "bitwise comparison",adica pot compara cele doua valori

numerice prin expresia lor binara (comparatie bit cu bit).In acest caz,

tabela de adevar va fi de genul:

Expresia binara 1 este: Expresia binara 2 este: Rezultatul este:

0 0 1

0 1 0

...etc. ...etc. ...etc.

Si in acest caz,este bine sa consultati tabela de adevar,ori de cate ori

programati o astfel de expresie.Paradoxal,dar aceste ecuatii simpliste cu

logica elementara,pot ridica probleme extrem de complexe de depanare a

unor aplicatii,mai ales atunci cand se utilizeaza pentru a compara diverse

tipuri de date,rezultate din operatii complexe asupra membrilor unor

obiecte.

Rezultatul returnat,va fi intotdeauna o expresie logica,fie de tip

True sau False,in cazul operatiilor logice,fie de tip 1 sau 0 in cazul

operatiilor de tip "bitwise comparison".

Acesti operatori au o valoare inestimabila atunci cand se programeaza

sisteme de operare si/sau programe de verificare si control.De exemplu,

prin operatii de tip "bitwise comparison",se poate verifica orice segment

de memorie,la nivel binar,sau se pot efectua operatii complexe,cu si

asupra adreselor de memorie si a datelor arhivate.O alta aplicatie foarte

frecventa o reprezinta selectarea si sortarea datelor,cautarea unei anu-

mite adrese de memorie,filtrarea datelor de un anume fel,compararea unor

obiecte sau a proprietatilor lor,etc.

Daca nu aveti experienta cu acest tip de operatori,este bine sa creati

si sa exersati cat mai multe exemple concrete,pentru fiecare tip de opera-

tor logic si pentru fiecare tip de data posibil.


-23-

Operatorul And: -realizeaza conjunctia logica dintre doua expresii

EXEMPLE: deschideti o fereastra si editati procedura Click astfel:

Private Sub Form_Click()

Form1.Print "text" > "t" And "te" = "te"

Form1.Print "text" > "t" And "te" <> "te"

Form1.Print 3 And 7

Form1.Print 3 And 0

End Sub

Executati cu Run si Start si observati rezultatul returnat.
Operatorul Eqv: -realizeaza echivalenta logica dintre doua expresii

EXEMPLE: deschideti o fereastra si editati procedura Click astfel:

Private Sub Form_Click()

Form1.Print "text" > "t" Eqv "te" = "te"

Form1.Print "text" > "t" Eqv "te" <> "te"

Form1.Print 3 Eqv 7

Form1.Print 3 Eqv 0

End Sub

Executati cu Run si Start si observati rezultatele returnate.Comparati si

cu rezultatele returnate de operatorul And,pentru aceleasi valori.Este

evident faptul cu operatia de tip "bitwise" adauga la raspunsul logic si

diferenta calculata intre cele doua valori evaluate.
Operatorul Imp: -realizeaza operatia de implicare logica dintre expresii

EXEMPLU: repetati exemplul de mai sus,dar pentru operatorul Imp
Executati exercitiul si comparati valorile returnate.Pentru a va putea

clarifica,utilizati serii succesive de valori,pana cand intelegeti modul

in care a fost evaluata expresia.
Operatorul Not: -realizeaza operatia de negatie logica a unei expresii

EXEMPLE: deschideti o fereastra si editati codul:

Private Sub Form_Click()

Form1.Print Not ("text" > "t")

Form1.Print Not ("text" < "t")

Form1.Print Not 3

Form1.Print Not Null

End Sub

Executati exercitiul si observati valorile returnate
Operatorul Or: realizeaza disjunctia logica dintre doua expresii

EXEMPLE: repetati exercitiul de la operatorul And,dar cu Or
Executati exercitiul si comparati rezultatele cu cele returnate de And

sau Eqv si Imp.
Operatorul Xor: -realizeaza operatia de excludere logica (SAU exclusiv)

EXEMPLE: repetati exercitiul de mai sus,dar cu operatorul Xor
Executati exercitiul si comparati rezultatele cu cele pentru Or.

Studiati tabelele de adevar,pentru fiecare operator si fiecare exercitiu.


-24-

INSTRUCTIUNI (statements): -sunt blocuri de date utilizate pentru a orga-

niza operatiile si calculele efectuate,pentru a seta mediul de memorie,sau

pentru a efectua diferite operatii de intrare/iesire a datelor,in si din

diverse unitati.O instructiune poate fi formata din tokeni(token = cel mai

mic grup de caractere pe care compilatorul il poate interpreata distinct),

expresii sau din alte instructiuni subincluse.Cu alte cuvinte,o instruc-

tiune poate contine cuvinte cheie,variabile si constante,valori numerice

directe sau alte tipuri de date,operatori,sau alte instructiuni incluse

in "corpul" instructiunii principale.

In functie de functionalitate,instructiunile pot fi:

1. cu eticheta (labeled-statement)

2. bloc de instructiuni (compound-statement)

3. expresii (expresion-statement)

4. bucle de repetitie (iteration-statement)

5. salt in program (jump-statement)

6. instructiuni de selectie (selection statement)

Atunci cand o instructiune contine un bloc de date,sau un bloc de alte

instructiuni incluse,acestea vor fi grupate intre numele instructiunii si

cuvantul cheie End,(Exemplu: If.... Then....instructiuni...End If)spre

deosebire de limbajul C++ unde blocurile de date sunt incluse intre acola-

de,sau spre deosebire de limbajul Pascal,unde blocurile sunt incluse intre

cubintele cheie begin ...si end.

In celelalte situatii,instructiunile vor fi simple (Exemplu: Beep ) sau

vor avea un anumit numar de parametri ce trebuiesc specificati (Exemplu:

Call Shell(AppName,1) ).

Visual Basic 5.0 contine urmatorul set de instructiuni implicite:

AppActivate,Beep,Call,ChDir,ChDrive,Close,Const,Date,Declare,DefBool,

DefByte,DefCur,DefDate,DefDbl,DefDec,DefInt,DefLng,DefObj,DefSng,DefStr,

Deftype,DefVar,DeleteSetting,Dim,Do...Loop,End,Erase,Error,Exit,FileCopy,

For Each...Next,For...Next,Function,Get,GoSub,Goto,If...Then...Else,Input#

Kill,Let,Line Input#,Load,Lock,LSet,Mid,MidB,MkDir,Name,On Error,On..Goto,

On...GoSub,Open,Option Base,Option Compare,Option Explicit,Option Private,

Print#,Private,Property Get,Property Let,Property Set,Public,Put,Randomize

ReDim,Rem,Reset,Resume,Return,RmDir,RSet,SaveSetting,Seek,Select Case,

SendKeys,Set,SetAttr,Static,Stop,Sub,Time,Type,Unload,Unlock,While...End,

Width#,With si Write#.

Instructiunile se pot utiliza atat pentru a crea liste de operatii sec-

ventiale (listing de tip BASIC),cat si pentru a structura codul in blocuri

mai mici sau mai mari de date.De fapt,instructiunile de tip IF...THEN si

On... Goto au stat la baza conceptului de programare structurata si de

control al fluxului de executie.Apoi au aparut inregistrarile de tip

Yüklə 0,98 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin