CATEGORII DOCUMENTE |
Operatori
Operatorii pot fi impartiti in urmatoarele categorii:
Operatori aritmetici
Operatori de comparatie
Operatori de concatenare
Operatori logici
Operatorii aritmetici sint utilizati in calculele matematice. Acestia sint :
Operatorul ^ este utilizat pentru a ridica un numar la puterea unui exponent. Sintaxa este :
rezultat = numar ^ exponent
numar si exponent pot fi orice expresii numerice si sint obligatorii, iar rezultat orice variabila numerica si este obligatoriu.
Numar poate fi negativ numai daca exponent este o valoare intreaga. Atunci cind se executa mai multe operatii de ridicare la putere intr-o singura expresie, ordinea de executie este de la stinga la dreapta, in ordinea in care este intilnit operatorul ^.
De obicei, tipul rezultatului este Double, sau un variant care contine o valoare de tip Double. Daca numar sau exponent este Null, rezultatul este Null.
Operatorul * este utilizat la inmultirea a doua numere. Sintaxa este :
numar1 si numar2 sint expresii numerice si sint obligatorii, rezultat este orice variabila numerica si este obligatoriu.
Tipul de date al rezultatului este in general acelasi cu al celei mai precise expresii. Ordinea preciziei, de la cea mai mica la cea mai mare este : Byte, Integer, Long, Single, Currency, Double si Decimal. Exista si exceptii, si anume :
daca in inmultire sint implicate o valoare de tip Single si una de tip Long, rezultatul este de tip Double
daca tipul de date al rezultatului este un variant care contine o valoare de tip Long, Single sau Date care depaseste domeniul sau de valori, rezultatul este convertit la un variant care contine o valoare de tip Double
daca tipul de date al rezultatului este un variant care contine o valoare de tip Byte care depaseste domeniul sau de valori, rezultatul este convertit la un variant care contine o valoare de tip Integer
daca tipul de date al rezultatului este un variant care contine o valoare de tip Integer care depaseste domeniul sau de valori, rezultatul este convertit la un variant care contine o valoare de tip Long
Daca una dintre expresii este Null, rezultatul este Null. Daca una dintre expresii este Empty, ea este tratata ca fiind 0.
Operatorul / este utilizat la impartirea a doua numere si returneaza un rezultat real. Sintaxa este :
numar1 si numar2 sint expresii numerice si sint obligatorii, rezultat este orice variabila numerica si este obligatoriu.
In general, tipul de date al rezultatului este Double sau un variant care contine o valoare Double, dar exista si exceptii, si anume:
- daca ambele expresii sint de tip Byte, Integer sau Single, rezultatul este de tip Single, iar in caz de depasire se raporteaza eroare
- daca ambele expresii sint varianti de tip Byte, Integer sau Single, rezultatul este de tip Single, iar in caz de depasire rezultatul este un variant care contine o valoare de tip Double
- daca in impartire este implicata cel putin o valoare de tip Decimal, rezultatul este de tip Decimal
- daca in impartire este implicata cel putin o expresie Null, rezultatul este Null
- orice expresie care este Empty este tratata ca 0
Operatorul se utilizeaza la impartirea a doua numere si returneaza un rezultat intreg. Sintaxa este :
rezultat numar1 numar2
numar1 si numar2 pot fi orice expresii numerice si sint obligatorii, iar rezultat este orice variabila numerica si este obligatoriu.
Inainte de impartire expresiile numerice sint rotunjite la expresii de tip Byte, Integer sau Long. De obicei, tipul de date al rezultatului este Byte, variant ce contine o valoare Byte, Integer, variant ce contine o valoare Integer, Long sau variant ce contine o valoare Long.
Daca in impartire este implicata cel putin o expresie Null, rezultatul este Null. Orice expresie care este Empty este tratata ca 0
Operatorul Mod este utilizat pentru a returnata restul returnat de o operatie de impartire, rest care este un numar intreg. Sintaxa este :
numar1 si numar2 sint expresii numerice obligatorii, iar rezultat este orice variabila numerica si este obligatoriu.
Tipul de date al rezultatului poate fi Byte, un variant ce contine o valoare de tip Byte, Integer, un variant ce contine o valoare de tip Integer, Long, un variant ce contine o valoare de tip Long.
Daca una dintre expresii este Null, rezultatul este Null. Daca una dintre expresii este Empty, ea este tratata ca fiind 0.
Operatorul + este utilizat pentru a aduna doua numere. Sintaxa este:
rezultat expresie1 expresie2
expresie1 si expresie2 sint expresii numerice obligatorii, iar rezultat este orice variabila numarica si este obligatoriu.
Daca cel putin una dintre expresii nu este Variant, se aplica urmatoarele reguli :
daca ambele expresii sint de tip numeric ( Byte, Boolean, Integer, Long, Single, Double, Date, Currency, Decimal ) se face adunare
daca ambele expresii sint de tip String, se face concatenare de siruri
daca una dintre expresii este numerica si cealalta este orice variant, cu exceptia Null se face adunare
daca una dintre expresii este sir si cealalta este orice variant, cu exceptia Null se face concatenare de siruri
daca una dintre expresii este un variant care contine Empty, se returneaza cealalta expresie nemodificata
daca una dintre expresii este numerica si cealalta este sir, apare o eroare ( Type mismatch )
daca una dintre expresii este Null, rezultatul este Null
Daca ambele expresii sint de tip Variant, se aplica urmatoarele reguli :
daca ambele expresii sint varianti ce contin numere, se face adunare
daca ambele expresii sint varianti ce contin siruri, se face concatenare
daca una dintre expresii este un variant numeric si altul sir, se face adunare
In cazul adunarilor care implica numai expresii numerice, tipul de date al rezultatului este, de obicei, acelasi cu cel al celei mai precise expresii. Exista citeva exceptii :
daca se aduna o valoare de tip Single si una de tip Long, rezultatul este de tip Double
daca rezultatul este un variant ce contine o valoare de tip Long, Single sau Date, care depaseste domeniul sau, el este convertit la un variant ce contine o valoare de tip Double
daca rezultatul este un variant ce contine o valoare de tip Byte care depaseste domeniul sau, el este convertit la un variant ce contine o valoare de tip Integer
daca rezultatul este un variant ce contine o valoare de tip Integer care depaseste domeniul sau, el este convertit la un variant ce contine o valoare de tip Long
Daca una dintre expresii este Null, rezultatul este Null. Daca ambele expresii sint Empty, rezultatul este de tip Integer.
Operatorul - este utilizat pentru calcula diferenta a doua numere, sau pentru a indica valoarea negativa a unei expresii numerice. Sintaxa este:
rezultat numar1 numar2 sau
- numar
numar1, numar2 si numar sint expresii numerice obligatorii, iar rezultat este orice variabila numarica si este obligatoriu.
Tipul de date al rezultatului este, de obicei, acelasi cu cel al celei mai precise expresii. Exista citeva exceptii
daca scaderea implica o valoare de tip Single si una de tip Long, rezultatul este de tip Double
daca rezultatul este un variant ce contine o valoare de tip Long, Single sau Date, care depaseste domeniul sau, el este convertit la un variant ce contine o valoare de tip Double
daca rezultatul este un variant ce contine o valoare de tip Byte care depaseste domeniul sau, el este convertit la un variant ce contine o valoare de tip Integer
daca rezultatul este un variant ce contine o valoare de tip Integer care depaseste domeniul sau, el este convertit la un variant ce contine o valoare de tip Long
daca scaderea implica doua expresii de tip Date, rezultatul este de tip Double
Daca una dintre expresii este Null, rezultatul este Null. Daca una dintre expresii este Empty, ea este tratata ca zero.
Operatorii de comparatie sint utilizati in compararea expresiilor. Sintaxa este :
rezultat = expresie1 operatorcomparatie expresie2
rezultat = obiect1 Is obiect2
rezultat = sir Like model
expresie1, expresie2 sint expresii obligatorii, rezultat este orice variabila numerica obligatorie, operatorcomparatie este orice operator de comparatie. obiect1, obiect2 sint nume de obiecte, sir este orice expresie de tip string, iar model este orice expresie de tip string.
Tabelul urmator afiseaza operatorii de comparatie si conditiile care determina daca rezultatul este True, False sau Null.
Operator |
True daca |
False daca |
Null daca |
< |
Expresie1 < expresie2 |
Expresie1>=expresie2 |
Expresie1 sau expresie2 = Null |
<= |
Expresie1<= expresie2 |
expresie1 > expresie2 |
Expresie1 sau expresie2 =Null |
> |
Expresie1> expresie2 |
Expresie1<= expresie2 |
Expresie1 sau expresie2 =Null |
>= |
Expresie1>= expresie2 |
Expresie1< expresie2 |
Expresie1 sau expresie2 =Null |
= |
Expresie1= expresie2 |
Expresie1<> expresie2 |
Expresie1 sau expresie2 =Null |
<> |
Expresie1<> expresie2 |
Expresie1= expresie2 |
Expresie1 sau expresie2 =Null |
Operatorul Is se utilizeaza pentru a compara doua variabile care contin referinte la obiecte.
obiect1, obiect2 sint nume de obiecte si sint obligatorii, rezultat este orice variabila numerica obligatorie.
Daca obiect1 si obiect2 refera acelasi obiect, rezultat este True, altfel este False.
In urmatorul exemplu, A este setat astfel incit sa refere acelasi obiect ca si B.
Set A = B
Operatorul Like se utilizeaza pentru a compara doua siruri.
sir este orice expresie de tip String, model este orice expresie de tip String care satisface cerintele de mai jos, rezultat este orice variabila numerica obligatorie.
Daca sir se potriveste cu model, rezultatul este True. Daca, fie sir, fie model este Null, rezultatul este Null.
Comportamentul operatorului Like depinde de comanda Option Compare.
Daca aceasta comanda are forma Option Compare Binary, comparatia sirurilor se face pe baza ordinii de sortare care rezulta din reprezentarea interna binara a caracterelor. In exemplul urmator apare o ordine de sortare binara tipica:
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
Daca aceasta comanda are forma Option Compare Text, comparatia sirurilor nu tine cont de folosirea literelor mici sau mari. Mai jos apare un exemplu de sortare in acest caz:
(A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)
Mai jos apar citeva dintre caracterele ce pot fi folosite in model si semnificatia lor:
? Orice caracter singular.
* Zero sau mai multe caractere.
# Orice cifra singulara (0-9).
Operatorii de concatenare sint utilizati pentru a combina siruri.
Operatorul & realizeaza concatenarea a doua siruri. Sintaxa este :
rezultat = expresie1 & expresie2
expresie1 si expresie2 sint orice fel de expresii, iar rezultat este orice variabila de tip String sau Variant.
Daca una dintre expresii nu este sir, ea este convertita la un variant care contine o valoare de tip String.Tipul de date al rezultatului este String daca ambele expresii sint de tip String, altfel, rezultatul este un variant care contine o valoare de tip String. Daca ambele expresii sint Null, rezultatul este Null. Daca numai una dintre expresii este Null, ea este tratata ca un sir de lungime zero. Orice expresie care este Empty este tratata tot ca un sir de lungime zero.
Operatorii logici sint utilizati la efectuarea operatiilor logice.
Operatorul And se utilizeaza pentru a executa un si logic intre doua expresii. Sintaxa este :
rezultat = expresie1 And expresie2
expresie1 si expresie2 sint orice fel de expresii, iar rezultat este orice variabila numerica. Tabela urmatoare determina modul de determinare al rezultatului :
Daca expresie1 este |
Daca expresie2 este |
Rezultat |
True |
True |
True |
True |
False |
False |
True |
Null |
Null |
False |
True |
False |
False |
False |
False |
False |
Null |
False |
Null |
True |
Null |
Null |
False |
False |
Null |
Null |
Null |
Operatorul And realizeaza, de asemenea, un si logic intre bitii aflati in aceeasi pozitie in doua expresii numerice si seteaza bitul corespunzator al rezultatului conform tabelei :
Daca bitul din expresie1 este |
Daca bitul din expresie1 este |
Rezultat |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Operatorul Or se utilizeaza pentru a executa un sau logic intre doua expresii. Sintaxa este :
rezultat = expresie1 Or expresie2
expresie1 si expresie2 sint orice fel de expresii, iar rezultat este orice variabila numerica. Tabela urmatoare determina modul de determinare al rezultatului :
Daca expresie1 este |
Daca expresie2 este |
Rezultat |
True |
True |
True |
True |
False |
True |
True |
Null |
True |
False |
True |
True |
False |
False |
False |
False |
Null |
Null |
Null |
True |
True |
Null |
False |
Null |
Null |
Null |
Null |
Operatorul Or realizeaza, de asemenea, un sau logic intre bitii aflati in aceeasi pozitie in doua expresii numerice si seteaza bitul corespunzator al rezultatului conform tabelei :
Daca bitul din expresie1 este |
Daca bitul din expresie1 este |
Rezultat |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Operatorul Not se utilizeaza pentru a nega logic o expresie :
rezultat = Not expresie
expresie este orice fel de expresie, iar rezultat este orice variabila numerica. Tabela urmatoare determina modul de determinare al rezultatului :
Daca expresie este |
Rezultat |
True |
False |
False |
True |
In plus, operatorul Not inverseaza valoarea bitilor oricarei variabile conform tabelei:
Daca bit in rexpresie este |
Bitul in rezultat este |
0 |
1 |
1 |
0 |
Operatorul Xor se utilizeaza pentru a executa un sau exclusiv intre doua expresii. Sintaxa este :
[ rezultat =] expresie1 Or expresie2
expresie1 si expresie2 sint orice fel de expresii, iar rezultat este orice variabila numerica. Tabela urmatoare determina modul de determinare al rezultatului :
Daca expresie1 este |
Daca expresie2 este |
Rezultat |
True |
True |
False |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Daca una dintre expresii are valoarea Null, rezultatul este Null.
Operatorul Xor realizeaza, de asemenea, un sau exclusiv intre bitii aflati in aceeasi pozitie in doua expresii numerice si seteaza bitul corespunzator al rezultatului conform tabelei :
Daca bitul din expresie1 este |
Daca bitul din expresie1 este |
Rezultat |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Operatorul Imp se utilizeaza pentru a executa o implicatie logica intre doua expresii. Sintaxa este :
rezultat = expresie1 Imp expresie2
expresie1 si expresie2 sint orice fel de expresii, iar rezultat este orice variabila numerica. Tabela urmatoare determina modul de determinare al rezultatului :
Daca expresie1 este |
Daca expresie2 este |
Rezultat |
True |
True |
True |
True |
False |
False |
True |
Null |
Null |
False |
True |
True |
False |
False |
True |
False |
Null |
True |
Null |
True |
True |
Null |
False |
Null |
Null |
Null |
Null |
Operatorul Imp realizeaza, de asemenea, o implicatie logica intre bitii aflati in aceeasi pozitie in doua expresii numerice si seteaza bitul corespunzator al rezultatului conform tabelei :
Daca bitul din expresie1 este |
Daca bitul din expresie1 este |
Rezultat |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
Operatorul Eqv se utilizeaza pentru a executa o echivalenta logica intre doua expresii. Sintaxa este :
rezultat = expresie1 Eqv expresie2
expresie1 si expresie2 sint orice fel de expresii, iar rezultat este orice variabila numerica. Tabela urmatoare determina modul de determinare al rezultatului :
Daca expresie1 este |
Daca expresie2 este |
Rezultat |
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
True |
Daca una dintre expresii este Null, rezultatul este Null.
Operatorul Eqv realizeaza, de asemenea, o echivalenta logica intre bitii aflati in aceeasi pozitie in doua expresii numerice si seteaza bitul corespunzator al rezultatului conform tabelei :
Daca bitul din expresie1 este |
Daca bitul din expresie1 este |
Rezultat |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Precedenta operatorilor
Atunci cind intr-o expresie apar mai multe operatii , fiecare parte este evaluata si rezolvata intr-o ordine predeterminata numita precedenta opratorilor.
Atunci cind expresiile contin operatori din mai multe categorii, intii se evalueaza operatorii aritmetici, apoi cei de comparatie, iar cei logici sint evaluati ultimii.
Operatorii de comparatie au aceeasi precedenta, ceea ce inseamna ca sint evaluati in orinea in care apar, de la stinga la dreapta. Operatorii aritmetici si logici sint evaluati in ordinea urmatoare:
Operatori aritmetici |
Operatori de comparatie |
Operatori logici |
Ridicare la putere (^) |
Egalitate (=) |
Not |
Negatie (-) |
Inegalitate (<>) |
And |
Inmultire si impartire (*,/) |
Mai mic (<) |
Or |
Impartire intreaga () |
Mai mare (>) |
Xor |
Modulo ( Mod ) |
Mai mic egal (<=) |
Eqv |
Adunare si scadere (+,-) |
Mai mare egal(>=) |
Imp |
Concatenare de siruri (&) |
Like | |
Is |
Atunci cind inmultirea si impartirea apar in aceeasi expresie, fiecare operatie este evaluata in ordinea in care apare de la stinga la dreapta. Atunci cind adunarea si scaderea apar in aceeasi expresie, fiecare operatie este evaluata in ordinea in care apare de la stinga la dreapta. Se pot folosi parantezele pentru a schimba ordinea de executie a operatiilor. Operatiile incluse intre paranteze se evalueaza intotdeauna inaintea celor din exterior. In interiorul parantezelor se mentine precedenta operatorilor.
Operatorul concatenare de siruri (&) nu este un operator aritmetic, dar in ceea ce priveste precedenta, urmeaza dupa toti operatorii aritmetici si precede toti operatorii de comparatie.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1855
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved