O operație este o construcție în limbaje de programare , similară în scris cu operațiile matematice, adică un mod special de înregistrare a unor acțiuni.
Cele mai utilizate sunt operațiile aritmetice, logice și cu șiruri . Spre deosebire de funcții, operațiile sunt adesea elemente de bază ale limbii și sunt notate prin diferite caractere de punctuație, mai degrabă decât cu caractere alfanumerice; au o sintaxă infixă specială și reguli non-standard de transmitere a argumentelor. Terminologia, însă, diferă oarecum de la limbă la limbă.
Cuvântul englez operator , care corespunde termenului „operație” , este uneori tradus eronat ca „operator”. De fapt (din motive istorice) termenul rusesc „operator” înseamnă la fel ca „ instrucțiune ” , care corespunde enunțului englez [1] . Confuzia a fost exacerbată de faptul că în C , atribuirea și creșterea/decrementarea sunt atât operatori, cât și operații.
De fapt, o operație este aceeași funcție , dar scrisă într-un mod special. Din acest motiv, este logic să poți defini operații pe tipuri arbitrare în același mod ca metodele , astfel încât să poți lucra cu ele în același mod ca și cu tipurile elementare. Această caracteristică se numește „ supraîncărcarea operatorului ” și este prezentă în majoritatea limbilor de generație a 4-a și a 5-a . În astfel de limbi, traducătorul înlocuiește de fapt un apel la funcția corespunzătoare în loc să efectueze o operație.
Operațiile sunt împărțite la numărul de argumente acceptate în:
Deoarece operațiile sunt similare ca notație cu expresiile algebrice , pentru ele, ca și pentru acestea din urmă, există 3 opțiuni de sintaxă:
Pentru operațiile binare și ternare (cu 3 operanzi), în majoritatea covârșitoare a cazurilor, se utilizează notația infixă - din simplul motiv că este acceptată în matematică și cea mai familiară pentru majoritatea oamenilor. Nu există nicio notație infixă pentru operațiile unare, iar notația cu prefix este de obicei folosită.
Operațiile se deplasează de obicei din limbi în limbi înrudite - de exemplu, operațiunile în limbajul C se găsesc în C++ , Java , JavaScript și multe altele.
Semn | Operațiune în curs | Limbaje de programare |
---|---|---|
a = bsaua := b | misiune | aproape tot |
Aritmetic | ||
a + b | adăugarea de argumente | aproape tot |
a - b | scădere | aproape tot |
-a | schimbare de semn | aproape tot |
a / b,a div b | Divizia | aproape tot |
a % b,a mod b | restul diviziunii (diviziunea modulului) | aproape tot |
a++ a-- |
mărire cu 1 cu atribuire ( creștere ) scădere cu 1 cu atribuire (scădere) |
C , Java , PHP |
a ^ bsau a ^^ bsaua ** b | exponentiare | BASIC , Fortran , Ruby , Python , Haskell (toate 3) |
joc de inteligență | ||
a & b, sau a && b, saua and b | conjuncție (înmulțire logică) | aproape tot |
a | b, sau a || b, saua or b | disjuncție (adăugare logică) | |
~a, sau !a, saunot a | inversare (negație logică) | |
a = bsaua == b a <> bsau a /= bsaua != b |
test de egalitate testul de inegalitate | |
a > b,a >= b a < b,a <= b |
mai mare decât, mai mare sau egal cu mai mic decât, mai mic decât sau egal cu | |
a ? b : c | operație condiționată ternară (dacă condiția a este adevărată, întreaga expresie este egală cu b , în caz contrar c ) | C, C++, Java, PHP |
Şir | ||
a + bsau a & bsau a.b(PHP) sau a..b(Lua) sau a ++ b(Haskell) | concatenare (imbinare) | aproape tot |
Pe bit | ||
a & b, a și b (Pascal, Kotlin), a /\ b (Prolog), a .&. b (Haskell) | conjuncție pe biți | C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin , Prolog , Haskell |
a | b, a sau b (Pascal, Kotlin), a \/ b (Prolog), a .|. (Haskell) | Disjuncție pe biți | |
~a, nu a (Pascal), inv a (Kotlin), \a (Prolog) | negație pe biți | C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin , Prolog |
a^b, xor (Pascal, Kotlin) | XOR | C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin |
a << b, a shl b (Pascal, Kotlin)
|
Deplasare biți la stânga
|