|
In Visual Basic exista foarte multe functii, grupate in categorii (numerice, sir, data/timp si de formatare), cu ajutorul carora se pot realiza diferite operatii specifice. In continuare se vor prezenta principalele functii Visual Basic, pe categorii.
In aceasta categorie de functii intra functiile matematice si trigonometrice, care au ca argumente si ca rezultate valori numerice. Functiile care fac parte din aceasta categorie sunt prezentate in urmatorul tabel, unde argumentul <expN> pote fi orice expresie numerica valida.
Functie
Descriere
Abs(<expN>)
Returneaza valoarea absoluta a argumentului.
Atn(<expN>)
Returneza un intreg de tip Double care reprezinta arctangenta a argumentului. Rezultatul functiei este exprimat in radiani, in limitele -pi/2 si pi/2; unde pi este aproximativ 3.1415926535897932).
Cos(<expN>)
Returneaza un intreg de tip Double care reprezinta cosinusul argumentului. Argumentul trebuie sa fie exprimat in radiani. Rezultatul este cuprins intre -1 si 1.
Exp(<expN>)
Returneaza un intreg de tip Double care reprezinta e ridicat la puterea indicata prin argument. Argumentul trebuie sa fie mai mic decat 709.782712893. Constanta e este aproximativ 2.718282
Fix(<expN>)
Int(<expN>)
Returneaza partea intreaga a argumentului.
Diferenta dintre Int si Fix este aceea ca daca argumentul este negatic, Int returneaza primul intreg negativ mai mic sau cel mult egal cu argumentul, in timp ce Fix returneaza primul intreg negativ mai mare sau cel putin egal cu argumentul. Spre exemplu, Int converteste -8.4 in -9, iar Fix converteste -8.4 in -8.
Log(<expN>
Returneaza un intreg de tip Double care reprezinta logaritmul natural al argumentului.
Round(<expN>, <zec>)
Returneaza valoarea rotunjita a expresiei <expN>. <zec> este o expresie de tip intreg care indica numarul de zecimale al rezultatului rotunjirii. Daca este omis, se returneaza un intreg..
Rnd(<expN>)
Returneaza un real de tip Single care reprezinta un numar aleator.
Sin(<expN>
Returneaza un intreg de tip Double care reprezinta sinusul argumentului. Argumentul trebuie sa fie exprimat in radiani. Rezultatul este cuprins intre -1 si 1.
Sqr(<expN>)
Returneaza un intreg de tip Double care reprezinta radacina patrata a argumentului. Argumentul trebuie sa fie un numar pozitiv mai mare ca 0.
Tan(<expN>)
Returneaza un intreg de tip Double care reprezinta tangenta argumentului. Argumentul trebuie sa fie exprimat in radiani.
Tabelul urmator prezinta lista functiilor matematice care nu sunt intrinseci, dar pot fi determinate pe baza functiilor intrinseci:
Functiie
Echivalent
Secanta
Sec(X) = 1 / Cos(X)
Cosecanta
Cosec(X) = 1 / Sin(X)
Cotangenta
Cotan(X) = 1 / Tan(X)
Arcsinus
Arcsin(X) = Atn(X / Sqr(-X * X + 1))
Arccosinus
Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
Arcsecanta
Arcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) - 1) * (2 * Atn(1))
Arccosecanta
Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))
Inverse arccotangenta
Arccotan(X) = Atn(X) + 2 * Atn(1)
Sinus hiperbolic
HSin(X) = (Exp(X) - Exp(-X)) / 2
Cosinus hiperbolic
HCos(X) = (Exp(X) + Exp(-X)) / 2
Tangenta hiperbolica
HTan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X))
Secanta hiperbolica
HSec(X) = 2 / (Exp(X) + Exp(-X))
Cosecanta hiperbolica
HCosec(X) = 2 / (Exp(X) - Exp(-X))
Cotangenta hiperbolica
HCotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X))
Arcsinus hiperbolic
HArcsin(X) = Log(X + Sqr(X * X + 1))
Arccosinus hiperbolic
HArccos(X) = Log(X + Sqr(X * X - 1))
Arctangenta hiperbolica
HArctan(X) = Log((1 + X) / (1 - X)) / 2
Arcsecanta hiperbolica
HArcsec(X) = Log((Sqr(-X * X + 1) + 1) / X)
Arccosecanta hiperbolic
HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) + 1) / X)
Arccotangenta hiperbolica
HArccotan(X) = Log((X + 1) / (X - 1)) / 2
Logaritm in baza N
LogN(X) = Log(X) / Log(N)
Prelucrarea sirurilor de caractere reprezinta o actiune care se executa aproape in toate aplicatiile. De foarte multe ori veti fi nevoiti sa eliminati spatiile excedentare de la inceputul sau sfarsitul unui sir, sa extrageti un subsir de caractere, sa convertiti o valoare numerica intr-un sir de caractere etc. Din acest motiv, orice limbaj de programare pune la dispozitie un numar insemnat de functii care prelucreaza siruri de caractere sau au ca rezultat un sir de caractere. In tabelul urmator sunt prezentate principalele functii ce pot fi utilizate la prelucrarea sirurilor. La prezentarea sintaxei acestor functii s-au folosit urmatoarele notatii:
<expC> orice expresie al carui rezultat este un sir de caractere;
<expN> orice expresie al carui rezultat este un numar;
<expI> orice expresie al carui rezultat este un intreg.
Functie
Descriere
Chr(<expI>
Returneaza caracterul al carui cod ASCII a fost specificat prin argument.
LCase(<expC>)
Converteste toate literele mari ale argumentului in litere mici. Toate celelalte caractere din sirul furnizat ca argument raman nemodificate.
Left(<expC>, <expI>)
Returneaza primele <expN> caractere din sirul furnizat prin argumentul <expC>. Daca <expN> este 0, sirul returnat este sirul de lungime zero. Daca <expN> este mai mare sau egal cu numarul de caractere din <expC>, este returnat intregul sir.
Len(<expC>)
Returneaza un intreg care indica numarul de caractere din sirul furnizat ca argument.
LTrim(<expC>)
Returneaza sirul furnizat ca argument fara spatiile excedentare de la inceputul sirului.
Mid(<expC>, <expI1>[, <expI2>])
Returneaza un subsir de <expI2> caractere incepand din pozitia <expI1> a sirului <expC>. Daca <expI2> este omis sau pana la sfaristului sirului sunt mai putine caractere, se returneaza toate caracterele sirului <expC> incepand cu pozitia <expI2>. Daca <expI1> este mai mare ca numarul de caractere din <expC>, se returneaza sirul de lungime zero.
Right(<expC>, <expI>)
Returneaza ultimele <expN> caractere din sirul <expC>. Daca <expN> este 0, sirul returnat este sirul de lungime zero. Daca <expN> este mai mare sau egal cu numarul de caractere din <expC>, este returnat intregul sir.
RTrim(<expC>)
Returneaza sirul furnizat ca argument fara spatiile excedentare de la sfaristul sirului.
Str(<expN>)
Converteste valoarea numerica furnizata ca argument intr-un sir de caractere.
Trim(<expC>)
Elimina spatiile excedentare de la inceputul si sfarsitul sirului de caractere furnizat ca argument.
UCase(<expC>)
Returneaza sirul furnizat ca argument avand literele mici convertite in majuscule; celelalte caractere sunt returnate neconvertite.
Pentru prelucrarea datelor calendaristice si a timpilor, Visual Basic pune la dispozitie un numar mare de functii. La prezentarea functiilor se folosesc urmatoarele notatii:
<data>
Orice expresie care furnizeaza o data calendaristica valida.
<timp>
Orice expresie care furnizeaza un timp valid.
<intAn>,
<intZi>,
<intLuna>
Orice expresie care furnizeaza un intreg cu semnificatia de an, zi si respectiv luna. Expresia <intAn> trebuie sa furnizeze o valoare cuprinsa intre 100 si 9999, inclusiv.
<data_timp>
<ora>,
<min>,
<sec>
Orice expresiei care furnizeaza o valoare cu semnificatia ore, minute si respectiv secunde.
<interval>
Este o expresie de tip sir de caractere prin intermediul caruia se transmite valoarea unui interval de timp. La formarea expresiei trebuie sa se foloseasca una din urmatoarele valori:
yyyy An
q Trimestru
m Luna
y Ziua din an
d Zi
w Ziua din saptamana
ww Saptamana
h Ora
n Minute
s Secunde
<expN>
Orice expresie ce furnizeaza o valoare numerica (daca nu este intreaga ea va fi rotunjita la cel mai apropiat intreg).
Principalele functii ce pot fi utilizate la prelucrarea datelor calendaristice si a timpilor sunt urmatoarele:
Functie
Descriere
Date()
Returneaza un Variant de tip Date care contine data curenta a sistemului.
DateAdd(<expC>,
<expN>, <data>
Returneaza un Variant de tip Date care contine data calendaristica <data> la care s-au adaugat <expN> intervale de timp. Valoarea intervalului de timp este transmis prin expresia <interval> de tip sir de caractere. Spre exemplu,
DateAdd('m', 1, '31-Jan-99')
va furniza 28-Feb-99.
Valoarea furnizata de expresai <expN> poate fi pozitiva (se obtine o data viitoare corecta) sau negativa (se obtine o data trecuta corecta).
DateDiff(<interval>,
<data1>, <data2>
[, <primaZi>
[, <primaSapt>]]
Returneaza un Variant de tip Date care contine numarul de intervale de timp (<interval> indica tipul de interval, adica zile, ani, luni etc.)) cuprins intre cele doua date calendaristice transmise (<data1> si <data2>). Argumentele optionale au urmatoarea semnificatie:
<primaZi> O constanta, optionala, care specifica prima zi din saptamana. Daca este omisa, atunci prima zi a saptamanii este presupusa a fi Sunday.
<primaSapt> O constanta, optionala, care specifica prima saptamana a anului. Daca nu este specficata, se presupune ca este saptamana ce contine 1 January.
DatePart(<interval>,
<data>, <primaZi>
[, <primaSapt>]]
Returneaza un Variant de tip Integer care specifica intervalul de timp corespunzator datei transmise (<data>). <interval> indica tipul de interval, adica zile, ani, luni etc. Spre exemplu,
datepart('ww', '10/15/2003')
va returna valoarea 42, adica data specificata se gaseste in saptamana 42.
DateSerial(<intAn>,
<intLuna>, <intZi>
Retruneaza un Variant de tip Date care contine data corespunzatoare celor trei valori transmise ca argumente.
Now()
Returneaza un Variant de tip Date care contine data si timpul curent al sistemului.
Time()
Returneaza un Variant de tip Date care contine timpul curent al sistemului.
Timer()
Returneaza o valoare numerica de tip Single reprezentand numarul de secunde scurse de la miezul noptii.
TimeSerial(<ora>, <minut>, <sec>
Returneaza un Variant de tip Date continand timpul specificat prin cele trei argumente.
Functiile din tabelul urmator convertesc argumentul specificat intr-un nou tip de data. La prezentarea functiilor s-au utilizat notatiile:
<expN> O expresie numerica
<expC> Un sir de caractere.
<expNC> O expresie numerica sau sir de caractere.
Functie
Descriere
Asc(<expC>
Returneaza codul ASCII al primului caracter din sirul transmis ca argument.
CBool(<expNC>
Converteste in Boolean orice expresie, valida, numerica sau sir de caractere.
CByte(<expN>
Converteste argumentul intr-o valoare de tip Byte.
CCur(<expN>
Converteste argumentul intr-o valoare de tip Currency.
CDate(<expC>
Converteste argumentul intr-o valoare de tip Date.
CDbl(<expN>
Converteste argumentul intr-o valoare de tip Double.
CDec(<expN>
Converteste argumentul intr-o valoare de tip Decimal
Nota Functia CDec returneaza un Variant a carei valoare a fost convertita la subtipul Decimal.
CInt(<expN>
Converteste argumentul intr-o valoare de tip Integer.
CLng(<expN>
Converteste argumentul intr-o valoare de tip Long.
CSng(<expN>
Converteste argumentul intr-o valoare de tip Single.
CStr(<expN>
Converteste argumentul intr-o valoare de tip String.
CVar(<expNC>
Converteste argumentul intr-o valoare de tip Variant.
Hex(<expNC>
Returneaza o valoare de tip String reprezintand conversia in hexazecimal a argumentului.
Oct(<expNC>
Returneaza un Variant continand o valoare de tip String, care reprezinta converisa in octal a argumentului.
Val(<expC>
Returneaza o valoare numerica (de tip corespunzator) prin converisa sirului de caractere numerice transmis ca argument.
Observatii
Daca expresia transmisa ca argument functie furnizeaza o valoarea in afara domeniului de reprezentare permis de tipul de data in care se face conversia, se produce o eroare.
In general, puteti documenta codul prin utilizarea dunctiilor de conversie a tipului de date, pentru a indica faptul ca rezultatul unei operatii trebuie sa fie exprimat ca un anumit tip de data in locul tipului de data implicit. Spre exemplu, folositi CCur pentru a forta aritmetica monetara atunci cand se produce in mod normal aritmetica in simpla precizie, dubla precizie sau intreaga.
Este indicat sa utilizati functiile de conversie a tipului in locul functiei Val pentru a asigura o conversie corecta si sigura dintr-un tip in altul.
Cand partea fractionala este exact 0.5, functiile CInt si CLng o rotunjeste la cel mai apropiat intreg par. Spre exemplu, 0.5 este rotunjit la 0, 1.5 este rotunjit la 2 etc. Functiile Cintsi CLng difera de functiile Fix si Int, care truncheaza in loc sa rotunjeasca partea fractionara a numarului. De asemenea, functiile Fix si Int returneaza intotdeauna o valoare avand acelasi tip cu cel al argumentului transmis.
Cand un numar este convertit la o data de tip Date, partea intreaga este convertita la o data calendaristica, iar partea fractionara este convertita la un timp al zilei, incepand cu miezul noptii.