Sunteți pe pagina 1din 6

1

Curs 3
III. Tipul variabilelor O instruciune de tipul Dim MereVandute declar variabila MereVandute, fr a preciza ns i tipul acesteia. In acest situaie, Visual Basic 6 i atribuie variabilei tipul implicit Variant, n care pot fi stocate orice tip de variabile: numere, iruri, date, valori booleene. i n cazul acesta pot apare nite erori foarte dificil de depistat, de exemplu se ncearc s se adune o variabil de tip ir cu una de tip numeric. De aceea, n versiunea .Net a Visual Basic, acest tip de variabil a fost eliminat, iar folosirea sa n VB 6 este descurajat. Ca regul general: orice variabil folosit ntr-un program trebuie declarat cu tipul corespunztor utilizrii ei. Tipurile de date predefinite ale VB sunt: String (ir) Stocheaz serii de caractere, cum ar fi literele de la A la Z. Integer (ntreg) Stocheaz numere ntregi, att pozitive, ct i negative. Long (ntreg lung) Stocheaz numere ntregi dintr-un interval mai mare dect tipul Integer. Single (real) Stocheaz numere n virgul mobil cu precizie simpl (cu punct zecimal), cum ar fi 3.14 sau-54,1343. Double (real dubl precizie) Stocheaz numere n virgul mobil cu precizie dubl (metod cu mult mai precis pentru numere foarte mari sau numere foarte mici, de exemplu 1,000000001). Boolean Stocheaz valorile True (adevrat) i False (fals). Byte (octet) Stocheaz un singur numr, fr semn, n form binar pe 8 bii (1 octet). Currency (valut) Stocheaz numere foarte mari n format ntreg. Date Stocheaz valori ce reprezint date calendaristice sau ore. Variant Stocheaz orice fel de date cu excepia irurilor de lungime fixat i a tipurilor definite de utilizator. Object Stocheaz date relative la o unic instan a unei clase sau obiect. Mai devreme s-a artat c pentru a declara o variabil ntr-un program trebuie

specificat numele i tipul acesteia, altfel compilatorul Visual Basic o va considera implicit ca fiind de tipul Variant. Urmtoarele instruciuni declar trei variabile de tip Integer:

Dim Age As Integer Dim Weight As Integer Dim Height As Integer Cnd se declar variabile, Visual Basic permite enumerarea numelor acestora pe o singur linie, separate de virgul, dup cum se poate observa mai jos:

Dim Age As Integer, Weight As Integer, Height as Integer Dim Salary As Single, Taxes As Single Fiecare variabil declarat trebuie s aib un operator de tip. Cnd un program declar variabilele fr acest operator de tip, Visual Basic va considera respectivele variabile ca fiind de tip Variant. n exemplul urmtor, Age i Weight sunt variabile de tip Variant, n timp ce Height este o variabil de tip Integer.

Dim Age, Weight, Height as Integer Not: Numele variabilelor este bine s fie sugestive, la aceasta adugndu-se i comentarea codului: Dim Age As Integer Tipul Integer Poate stoca valori ntregi (numere ntregi, pozitive i negative). Pentru a stoca valori de tip Integer, compilatorul Visual Basic aloc 16 bii (2 octei). O variabil de tip Integer poate lua valori n intervalul [ -32.768, +32.767]. Variabilele de tip Integer sunt numere ntregi - cu alte cuvinte, acestea nu cuprind pri fracionare, aa cum au numerele n virgul mobil. Dac se atribuie o valoare n virgul mobil unei variabile de tip Integer, Visual Basic va rotunji partea fracionar la 0 dac este mai mic de 0,5 sau la 1 dac aceasta este mai mare de 0,5. De exemplu, pentru valoarea atribuit 12,48, valoarea rotunjit va fi de 12, pentru valoarea 15,68, valoarea rotunjit va fi de 16. ' Varsta utilizatorului din modulul ................

Dac unei variabile de tip Integer i se atribuie o valoare din afara intervalului [-32.768, +32767], apare eroarea de tip overflow (suprancrcare), Intre variabilele de tip intreg se pot face toate operaiile matematice uzuale cu numere ntregi: Adunare: + Scdere: Inmulire: * Imprire: / Ridicare la putere: ^ Extragerea rdcinii ptrate: Sqr(x) Exerciiul 8: S se creeze o aplicaie Visual Basic alctuit dintr-un formular n care se va declara o variabil x de tip Integer. In evenimentul Load al formularului introducei liniile de cod urmtoare: x=8/3 Debug.Print x, 8 / 3, x ^ 3 Rulai programul i comentai rezultatele. Not: Atunci cnd se efectueaz operaii matematice, trebuie avut n vedere s se evite erorile de tipul mpririi la 0. Exerciiul 10: In aplicaia anterioar mai declarai nc o variabil y de tip real. In evenimentul Load al formei adugai linia de cod Debug.Print x / y Rulai programul i comentai rezultatele. Tipul Long 0 variabil de tip Long, ca i o variabil de tip Integer, primete ca valori numere ntregi. Variabila de tip Long este ns construit de Visual Basic prin utilizarea a 4 octei n loc de 2, ceea ce ofer 31 de bii de date i un bit de semn, spre deosebire de cei 15 bii de date furnizai de tipul Integer. In practic, acest lucru nseamn c o variabil de tip Long poate conine orice numr

ntreg din intervalul [-2.147.483.648, +2.147.483.647]. Totui, faptul c valorile de tip Long folosesc mai mult memorie dect cele de tip Integer implic utilizarea lor doar atunci cnd este necesar, n special dac se lucreaz cu vectori numerici. Urmtoarea secven de cod declar o variabil de tip Long. Dim LargeCounter as Long Operaiile care se fac n cazul variabilelor de tip Long sunt cele din cazul tipului Integer. Tipul Single Tipul de variabil Single este utilizat de Visual Basic pentru stocarea numerelor n virgul mobil din intervalul [-3.4E38, +3.4E38]. In general, Visual Basic returneaz pentru variabilele Single valorile n notaie tiinific i apoi le convertete pentru afiare. Numerele n virgul mobil sunt reprezentri de fracii, procente i numere ce conin pri fracionare. Pentru numerele n virgul mobil stocate ntr-o variabil de tip Single, Visual Basic returneaz valori cu o precizie de 6 sau 7 cifre. Tipul Double Este similar tipului Single, dar numerele sunt cuprinse n intervalul [-1.7E308, +1.7E308]. Tipul String Majoritatea activitilor efectuate de calculatoare implic mai mult text dect numere. Visual Basic este prevzut cu mai multe metode de manevrare a textului sau a irurilor-dup cum este denumit textul de ctre majoritatea compilatoarelor. O variabil de tip String poate conine pn la 231 caractere, incluznd simboluri i/sau spaii. Caracterele pot fi orice caracter din setul de caractere ASCII, ale cror valori numerice sunt cuprinse ntre 0 i 255. n interiorul unui ir, fiecare caracter este compus dintr-un octet, iar Visual Basic aloc la crearea unui ir, pentru manevrare intern, 10 octei de memorie. In consecin, o variabil String ce conine un caracter utilizeaz 11 octei de memorie, iar o variabil String ce conine 255 de caractere utilizeaz 265 octei de memorie. Cu toate acestea, o variabil String declarat dar neiniializat nu va utiliza nici un octet de memorie, deoarece Visual Basic aloc spaiul pentru variabilele String n mod dinamic, n funcie de dimensiunea lor. Aceai variabil poate utiliza un spaiu diferit de memorie la aproape orice apariie a sa n cadrul programului. Urmtoarea secven de cod ilustreaz declararea unei variabile de tip String i modul n care i se atribuie o valoare:

Dim x As String x = "AbCd" Cea mai utilizat operaie ce se face cu iruri este concatenarea, reprezentat de caracterul &. Exerciiul 11: S se creeze o aplicaie Visual Basic alctuit dintr-un formular n care se vor declara trei variabile de tip String, x, y i z. Variabilelor x i y s li se atribuie 2 valori oarecare, iar z s fie obinut prin concatenarea lor. Rulai programul i comentai rezultatele. IV Domeniul variabilelor. Domeniul unei variabile definete poriunea din cod care tie de existena sa. La declararea unei variabile n cadrul unei proceduri, numai codul acelei proceduri va putea citi sau modifica valoarea acelei variabile; ea are un domeniu care este local n acea procedur. Totui, uneori, avei nevoie de o variabil cu un domeniu mai larg, cum ar fi una a crei valoare este disponibil pentru toate procedurile dintr-un anumit modul sau chiar pentru toate procedurile aplicaiei. Visual Basic v permite specificarea domeniului unei variabile la declararea sa.

Variabile folosite n cadrul unei proceduri. Variabilele la nivel de procedur sunt recunoscute doar n cadrul procedurii unde au fost definite. Ele se mai numesc i variabile locale. Ele pot fi declarate prin cuvintele-cheie Dim sau Static. De pild:

Dim intTemp As Integer - sau Static intPermanent As Integer Valorile variabilelor locale declarate prin Static se pstreaz atta vreme ct aplicaia ruleaz, pe cnd variabilele declarate cu Dim exist doar ct vreme procedura este executat. Variabilele locale sunt o alegere potrivit pentru orice fel de calcule temporare. De

exemplu, putei crea multe proceduri care s conin o variabil numit intTemp. Ct vreme fiecare intTemp este declarat ca o variabil local, fiecare procedur recunoate numai propria versiune a lui intTemp. Oricare alt procedur poate modifica valoarea propriului intTemp fr a afecta variabilele intTemp din celelalte proceduri.

Variabile utilizate n cadrul unui modul In mod implicit, o variabil de la nivelul modulului este disponibil pentru toate procedurile acelui modul, dar nu i pentru codul din alte module. Putei crea variabile la nivelul modulului, pur i simplu declarndu-le cu cuvntul-cheie Private n cadrul seciunii Declarations de la nceputul modulului. De pild:

Private intTemp As Integer La nivelul modulului nu exist nici o diferen ntre Private i Dim, dar Private este de preferat, fiindc el contrasteaz puternic cu Public i face astfel codul mai uor de neles.

Variabile folosite de toate modulele 0 variabil declarat la nivelul modulului poate fi fcut disponibil pentru alte module utiliznd n declaraia ei cuvntul-cheie Public. Valorile variabilelor publice sunt disponibile pentru toate procedurile aplicaiei. Precum orice variabil de la nivelul modulului, variabilele publice sunt declarate n seciunea Declarations, la nceputul modulului. De pild:

Public intTemp As Integer Exerciiul 12: S se creeze o aplicaie Visual Basic alctuit dintr-un formular i un modul standard. n modulul standard s se creeze dou variabile de tip ntreg, una public i una privat. Incercai utilizarea acestor variabile n formular i comentai rezultatele.