Operaţia de atribuire

Operaţia de atribuire

Operatorul de atribuire (=) este un operator binar, care permite modificarea valorii unei variabile.Forma generală a unei operaţii de atribuire este:

variabilă = expresie;

Efect:

  • se calculează valoarea expresiei şi se obţine un rezultat;

  • rezultatul se memorează la adresa variabilei.

  • Efectul acestei operaţii este întotdeauna de la dreapta la stânga

Atenţie!

· A nu se confunda operaţia de atribuire cu operaţia matematică desemnată prin acelaşi simbol ”=”. De exemplu, dacă avem declaraţia int a=10, operaţia a=a+1; în informatică este perfect corectă si are ca semnificaţie schimbarea valorii variabilei a la valoarea 11. Din punct de vedere matematic relaţia a=a+1 este o relaţie gresită.

Operaţia de interschimbare a valorilor a două variabile

Avem la dispoziţie două variabile a şi b. Se cere sa se interschimbe valorile variabilelor a şi b şi apoi sa se afişeze. Exista mai multe metode de a realiza acest lucru si anume:

  • regula celor trei pahare(folosind o variabila auxiliara)

  • prin adunari şi scaderi

  • prin inmulţiri şi imparţiri

Interschimbarea valorilor variabilelor a şi b folosind „regula celor trei pahare”

Această metodă este denumită sugestiv „regula celor trei pahare”, deşi practic vărsarea conţinutului unui pahar în alt pahar nu este identică cu operatia de atribuire, când variabilele au aceaiasi valoare.

Avem iniţial A,B,C trei pahare care au aceiaşi capacitate. În primul pahar A se gaseşte o bautură de culoare roşie, în al doilea pahar B se gaseste o bautură de culoare verde iar al treilea pahar C este gol. Se cere să se schimbe continutul paharului A cu conţinutul paharului B fără a amesteca băuturile.

Iniţial:

Algoritm în pseudocod

citeste A

citeste B

scrie A,B (initial)

C=A

A=B

B=C

scrie A,B(final)

Program în Code Bloks

#include<iostream>

using namespace std;

int main()

Rezultat afişat

{ int A,B,C;

cout<<"A=";cin>>A;

cout<<"B=";cin>>B;

cout<<"Initial: A="<<A<<" si B="<<B<<endl;

C=A;

A=B;

B=C;

cout<<"Final: A="<<A<<" si B="<<B<<endl;

return 0ş

}

Interschimbarea valorilor variabilelor folosind adunări şi scăderi

Interschimbarea valorilor a doua variabile, notate A şi B se poate face si fara a utiliza o variabilă auxiliară, cum am vazut la regula celor trei pahare. Folosind doar operaţii de adunare si scadere putem realiza acelaşi lucru dacă executăm în ordine următoarele operatii de atribuire:

Algoritm în pseudocod

Program în Code Bloks

Rezultat afişat

citeste A

citeste B

scrie A,B (initial)

A=A+B;

B=A-B;

A=A-B;

scrie A,B(final)

#include<iostream>

using namespace std;

int main()

{ int A,B;

cout<<"A=";cin>>A;

cout<<"B=";cin>>B;

cout<<"Initial: A="<<A<<" si B="<<B<<endl;

A=A+B;

B=A-B;

A=A-B;

cout<<"Final: A="<<A<<" si B="<<B<<endl;

return 0;

}

Interschimbarea valorilor variabilelor folosind înmulţiri şi împărţiri

Interschimbarea valorilor a doua variabile, notate A şi B se poate face si fara a utiliza o variabilă auxiliară, cum am vazut la regula celor trei pahare. Folosind doar operaţii de înmulţire si împărţire putem realiza acelaşi lucru dacă executăm în ordine următoarele operatii de atribuire:

Algoritm în pseudocod

Program în Code Bloks

Rezultat afişat

citeste A

citeste B

scrie A,B (initial)

A=A*B;

B=A/B;

A=A/B;

scrie A,B(final)

#include<iostream>

using namespace std;

int main()

{ int A,B;

cout<<"A=";cin>>A;

cout<<"B=";cin>>B;

cout<<"Initial: A="<<A<<" si B="<<B<<endl;

A=A*B;

B=A/B;

A=A/B;

cout<<"Final: A="<<A<<" si B="<<B<<endl;

return 0;

}