Sunteți pe pagina 1din 6

PCLP Laboratorul 3

Asist.drd.ing. Ana-Maria SUDUC

Laboratorul 3
Variabile. Operatori
1. Noţiuni teoretice

1.1. Variabile
O variabilă este o locaţie cunoscută de memorie utilizată pentru a stoca o valoare care poate fi
modificată prin program. Toate variabilele trebuie declarate înainte de a putea fi folosite. Forma generală
a unei declaraţii este:
tip lista_variabile;
unde, tip poate fi un tip de date recunoscut în C/C++ iar lista_variabile poate conţine unul sau mai
multe nume de identificator, separate prin virgule.
Exemple de declaraţii:
int i,j,l;
short int a;
unsigned int b;
double balanta, profit, pierdere;
Variabilele se declară în trei locuri de bază:
• în interiorul funcţiilor – variabilele locale
• în definiţia parametrilor funcţiilor – parametrii formali
• în exteriorul tuturor funcţiilor – variabilele globale
1.1.1. Variabilele locale
Variabilele locale sunt declarate în interiorul unor funcţii şi există numai atâta timp cât blocul de
cod în interiorul căruia au fost declarate este executat.
Exemplul 1:
void funct1(void)
{
int x;
x=10;
}
void funct2(void)
{
int x;
x=-199;
}
Variabila întreagă x este declarată de două ori, o dată în funct1() şi a doua oară în funct2().
Variabila x din funct1() nu are nici o legătură cu variabila x din funct2(), şi aceasta deoarece fiecare x
este cunoscut numai codului din acelaşi bloc în care s-a făcut declararea variabilei.
În C variabilele trebuie declarate la începutul blocului. În C++ această restricţie a fost înlăturată,
variabilele putând fi declarate oriunde în interiorul unui bloc.
1.1.2. Parametrii formali
Dacă o funcţie foloseşte argumente, trebuie să declare variabilele care vor accepta valorile
argumentelor. Aceste variabile sunt denumite parametri formali ai funcţiei. Acestea se comportă ca orice
variabile locale din interiorul funcţiei. Declaraţiile acestora survin după numele funcţiei şi în interiorul
unor paranteze.
Parametrii formali declaraţi trebuie să fie de acelaşi tip cu argumentele folosite la apelarea
funcţiei.
1.1.3. Variabilele globale
Spre deosebire de variabilele locale, variabilele globale sunt recunoscute de către toate
componentele programului şi pot fi folosite de orice fragment de cod. De asemenea, acestea îşi păstrează
valoarea în timpul execuţiei programului. Pot fi accesate de către orice expresie, indiferent de blocul de
cod în care se află conţinută aceasta.

1
PCLP Laboratorul 3
Asist.drd.ing. Ana-Maria SUDUC

Variabilele globale ar putea fi declarate oriunde în program înainte de prima lor utilizare, dar se
recomandă declararea lor la începutul programului.
Variabilele globale sunt utile atunci când un mare număr de funcţii din program folosesc aceleaşi
date.
1.2. Modificatori de acces
C defineşte doi modificatori de acces care controlează modul de accesare sau modificare a
variabilelor: const şi volatile. Aceştia trebuie să preceadă şi numele tipurilor de date la care se referă.
Variabilele de tip const nu pot fi modificate prin program dar li se poate atribui o valoare iniţială.
Exemplu:
const int a=10;
O variabila de tip const poate fi modificată de către ceva situat în afara programului.
Modificatorul volatile indică compilatorului că valoarea unei variabile poate fi modificată
utilizând căi pe care programul nu le specifică în mod explicit. De exemplu, adresa unei variabile globale
poate fi transmisă rutinei de ceas a sistemului de operare şi utilizată pentru a memora timpul real al
sistemului. În această situaţie, conţinutul variabilei este modificat chiar şi în absenţa unor declaraţii de
atribuire specifice.
1.3. Iniţializarea variabilelor
În majoritatea cazurilor, în C atribuirea unei valori unei anumite variabile se realizează în
momentul declarării acesteia, amplasând un semn egal între numele variabilei şi o constantă. Forma
generală a unei iniţializări este:
tip nume_variabila = constanta;
Exemple:
char ch = ’a’;
int primul = 0;
float balanta = 123.23;
bool b = true;
1.4. Operatori
C/C++ defineşte patru clase de operatori: aritmetici, relaţionali, logici şi pe biţi. În plus, C++ mai
dispune de anumiţi operatori speciali pentru anumite operaţii.
1.4.1. Operatori aritmetici
În tabelul următor sunt prezentaţi operatorii aritmetici ai limbajului C:
Operator Acţiune
= Atribuire
- Scădere, de asemenea şi minus unar
+ Adunare
* Înmulţire
/ Împărţire
% Modulo (restul împărţirii)
-- Decrementare
++ Incrementare
Ordinea priorităţii operatorilor aritmetici:
Cel mai prioritar ++ --
- (minus unar)
*/%
Cel mai puţin prioritar +-
Operatorii de pe acelaşi nivel ierarhic sunt evaluaţi de către compilator de la stânga la dreapta. Pot
fi folosite parantezele pentru a modifica ordinea evaluării.
1.4.2. Operatori relaţionali şi logici
În denumirea de operator relaţional, “relaţional” se referă la relaţiile care se pot stabili între
diverse valori. În denumirea de operator logic, “logic” se referă la modurile în care se pot lega aceste
relaţii existente. De obicei operatorii relaţionali sunt folosiţi cu cei logici.

2
PCLP Laboratorul 3
Asist.drd.ing. Ana-Maria SUDUC

Operatori relaţionali
Operator Acţiune
> Mai mare decât
>= Mai mare sau egal
< Mai mic decât
<= Mai mic sau egal
== Egal
!= Diferit

Operatori logici
Operator Acţiune
&& SI
¦¦ SAU
! NU
Precedenţa relativă a operatorilor relaţionali şi logici:
Cel mai prioritar !
> >= < <=
= = !=
&&
Cel mai puţin prioritar ¦¦
Se pot folosi parantezele pentru a modifica ordinea naturală de evaluare într-o expresie relaţională
şi/sau logică.
Exemplu:
!0 && 0 ¦¦ 0 este falsă
!(0 && 0) ¦¦ 0 este adevărată
Care credeţi ca va fi rezultatul următorului fragment de program?
int x;
x=100;
cout<< x>10;
1.4.3. Operatori pe biţi
Operaţiile pe biţi includ testarea, amplasarea sau deplasarea biţilor dintr-un octet sau dintr-un
cuvânt, ceea ce corespunde tipurilor de date standard char şi int din C/C++. Operaţiile pe biţi nu pot fi
efectuate cu tipurile de date float, double, long double, void sau alte tipuri mai complexe.
Operaţiile pe biţi îşi găsesc aplicabilitate mai ales în programele de interfaţă cu echipamentele,
cum ar fi programe de modem, rutine de fişiere de pe disc şi rutine de imprimantă.
Operand Actiune
& SI
| SAU
^ SAU exclusiv
~ Complement fata de 1
>> Deplasare dreapta
<< Deplasare stânga
2. Aplicaţii
2.1. Lansaţi în execuţie aplicaţia Visual C++ 2010 Express Edition:
a) Din meniul Start-> Programs-> Microsoft Visual C++ 2010 Express, executaţi clic pe opţiunea
Microsoft Visual C++ 2010 Express.
2.2. Creaţi un nou proiect, Proiect1 şi un nou fişier File1.cpp:
b) Din meniul File->New, alegeţi opţiunea Project;
c) În fereastra New Project selectaţi opţiunea Win32 şi verificaţi să fie selectat Win32 Console
Application;
d) În câmpul Name introduceţi Proiect1 şi apăsaţi OK;
e) În fereastra deschisă apăsaţi Next şi apoi selectaţi opţiunea Empty Project şi apăsaţi Finish;

3
PCLP Laboratorul 3
Asist.drd.ing. Ana-Maria SUDUC

f) În secţiunea Solution Explorer executaţi clic dreapta pe directorul Source File şi alegeţi
opţiunea New-> Item;
g) În fereastra Add New Item selectaţi categoria Code şi verificaţi să fie selectată opţiunea C++
File (.cpp);
h) În câmpul Name tastaţi numele File1 şi apăsaţi Add.
2.3. În fişierul File1.cpp introduceţi şi testaţi următorul program:
#include <iostream>
using namespace std;
void main ()
{
int a, b; // a=?, b=?
a = 4; // a=4, b=?
b = 8; // a=4, b=8
a = b; // a=8, b=8
b = 16; // a=8, b=16
cout << "a:";
cout << a << endl;
cout << "b:";
cout << b << endl;
}
a) Tastaţi programul dat, respectând liniile de cod;
b) Compilaţi programul executând clic dreapta pe numele fişierului din secţiunea Solution
Explorer şi executând clic pe opţiunea Compile;
c) Corectaţi eventualele erori semnalate în secţiunea Output conform indicaţiilor din laboratorul
anterior;
d) După rezolvarea eventualelor erori, rulaţi programul selectând, din meniul Debug, opţiunea
Start Without Debugging;
2.4. Creaţi un nou proiect, Proiect2, şi un nou fişier File2.cpp. Introduceţi în fişierul creat şi testaţi
următorul program:
#include <iostream>
using namespace std;
void main ()
{
int x=0;
int a,b,j,k;
a=10;
b=9;
j=x>1;
k=x<=10;
cout<<"x= "<<x<<"\nj= "<<j<<"\nk= "<<k;
cout<<"\na= "<<a<<"\nb= "<<b;
cout<<"\na egal cu b: "<<(a==b);
cout<<"\na diferit de b: "<<(a!=b)<<endl;
}
a) Tastaţi programul dat;
b) Compilaţi şi rulaţi conform indicaţiilor de mai sus.
2.5. Scrieţi un program care să citească de la tastatură valorile variabilelor întregi a, b şi c şi să
calculeze şi să afişeze valoarea expresiei: !(a=b)||(a!=c)&&b.
a) Declaraţi variabilele de tip întreg a, b şi c;
b) Scrieţi instrucţiunile de citire (indicaţie: cin) de la tastatură a valorilor celor trei variabile;
c) Scrieţi instrucţiunea de calculare şi afişare a expresiei.
2.6. Creaţi un nou proiect, Proiect3, şi un nou fişier File3.cpp. Introduceţi în fişierul creat şi testaţi
următorul program:
#include <iostream>
using namespace std;

4
PCLP Laboratorul 3
Asist.drd.ing. Ana-Maria SUDUC

void main ()
{
int a, b=3;
a = b;
a+=2; // echivalent cu a=a+2
cout << a <<endl;
}
2.7. Realizaţi un program care citeşte de la tastatură valorile variabilelor reale a, b şi c şi calculează
expresiile:
a-=5;
b/=4;
c*=a+c;
Afişaţi valoarea expresiei ++a-b+c--
2.8. Modificaţi programul anterior pentru a calcula şi afişa valorile expresiilor:
a=b++;
a=++b;
!a>=b;
(7>a) && (b>8);
(7>a) || (b>8);
a=(b=5, b+3);
a=5+b%2;
a) Folosiţi cout pentru a afişa valorile expresiilor (acestea sunt plasate între paranteze).
2.9. Creaţi un nou proiect, Proiect4, şi un nou fişier File4.cpp. Introduceţi în fişierul creat şi testaţi
următorul exemplu de folosire a operatorului de cast int:
#include <iostream>
using namespace std;
void main ()
{
int a;
float b=3.14;
a = (int) b;
cout << a <<endl;
cout << b <<endl;
}
2.10. Realizaţi un program care să creeze o variabilă a de tip întreg fără semn, b de tip real şi c
de tip caracter. Programul trebuie să citească de la tastatură valorile celor trei variabile şi să le
afişeze.
2.11. Creaţi un nou proiect, Proiect5, şi un nou fişier File5.cpp. Introduceţi în fişierul creat şi
testaţi următorul exemplu de declarare şi de folosire a unei variabile de tip bool:
#include <iostream>
using namespace std;
void main(void)
{
int a=7,b=5;
bool r=true;
cout<<r<<endl;
r=a==b;
cout<<r<<endl;
}
2.12. Creaţi un nou proiect, Proiect6, şi un nou fişier File6.cpp. Introduceţi în fişierul creat şi
testaţi următorul program ce include cele trei tipuri de variabile: locale, globale şi parametri
formali:
#include <iostream>
using namespace std;
int suma(int a, int b);
int s; //s este variabila globala
void main()

5
PCLP Laboratorul 3
Asist.drd.ing. Ana-Maria SUDUC

{
int x, y; //x si y sunt variabile locale
cout<<"x=";
cin>>x;
cout<<"y=";
cin>>y;
suma(x,y);
cout<<"Suma celor doua numere este "<<s<<endl;
}
int suma (int a, int b) //a si b sunt parametri formali
{
s=a+b;
return s;
}

2.13. Intensitatea curentului ce străbate un circuit simplu care cuprinde un rezistor cu rezistenţa
de 9 Ωşi o sursă cu rezistenţa interioară deΩ 1este de 140 mA. Realizaţi un program care
calculează şi afişează a) tensiunea la bornele circuitului (U=I*R), b) tensiunea interioară (u=I*r),
c) tensiunea electromotoare (E=U+u).
2.14. Modificaţi programul creat anterior astfel încât valorile pentru rezistenţa rezistorului,
rezistenţa interioară şi intensitatea curentului să fie citite de la tastatură.

S-ar putea să vă placă și

  • Manual de Programare C++
    Manual de Programare C++
    Document180 pagini
    Manual de Programare C++
    trilulilu89
    88% (26)
  • Proiect Abb
    Proiect Abb
    Document78 pagini
    Proiect Abb
    Ionut Valentin
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document8 pagini
    Lab 1
    Ionut Valentin
    Încă nu există evaluări
  • Tema 12 Aprecierea Echilibrului Financiar
    Tema 12 Aprecierea Echilibrului Financiar
    Document39 pagini
    Tema 12 Aprecierea Echilibrului Financiar
    nika07
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document5 pagini
    Lab 6
    Ionut Valentin
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document5 pagini
    Lab 2
    Ionut Valentin
    Încă nu există evaluări
  • Lab 10
    Lab 10
    Document7 pagini
    Lab 10
    Ionut Valentin
    Încă nu există evaluări
  • Dosar Ingrijire 2022
    Dosar Ingrijire 2022
    Document13 pagini
    Dosar Ingrijire 2022
    Ionut Valentin
    Încă nu există evaluări
  • Lab 2 PDF
    Lab 2 PDF
    Document7 pagini
    Lab 2 PDF
    Ionut Valentin
    Încă nu există evaluări
  • Lab 8
    Lab 8
    Document4 pagini
    Lab 8
    Ionut Valentin
    Încă nu există evaluări
  • Lab 1 PDF
    Lab 1 PDF
    Document5 pagini
    Lab 1 PDF
    Ionut Valentin
    Încă nu există evaluări
  • Lab 7bis
    Lab 7bis
    Document2 pagini
    Lab 7bis
    Ionut Valentin
    Încă nu există evaluări
  • Lab 11
    Lab 11
    Document3 pagini
    Lab 11
    Ionut Valentin
    Încă nu există evaluări
  • Dumi
    Dumi
    Document53 pagini
    Dumi
    Ionut Valentin
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Ionut Valentin
    Încă nu există evaluări
  • Lab 7
    Lab 7
    Document4 pagini
    Lab 7
    Ionut Valentin
    Încă nu există evaluări
  • L1 - Blog - Jurnale Online
    L1 - Blog - Jurnale Online
    Document10 pagini
    L1 - Blog - Jurnale Online
    PensiuneaParc
    Încă nu există evaluări
  • Lab 9
    Lab 9
    Document1 pagină
    Lab 9
    Ionut Valentin
    Încă nu există evaluări
  • Lab 12
    Lab 12
    Document1 pagină
    Lab 12
    Ionut Valentin
    Încă nu există evaluări
  • Google Picasa
     Google Picasa
    Document8 pagini
    Google Picasa
    Andrei Stoian
    Încă nu există evaluări
  • L11 - Google Picasa - Partea2
    L11 - Google Picasa - Partea2
    Document9 pagini
    L11 - Google Picasa - Partea2
    Ionut Valentin
    Încă nu există evaluări
  • Pagina Antet Lab PCLP1
    Pagina Antet Lab PCLP1
    Document1 pagină
    Pagina Antet Lab PCLP1
    Ionut Valentin
    Încă nu există evaluări
  • L4 - Voice Over IP - Aplicatii
    L4 - Voice Over IP - Aplicatii
    Document11 pagini
    L4 - Voice Over IP - Aplicatii
    Ionut Valentin
    Încă nu există evaluări
  • Cap. 7
    Cap. 7
    Document24 pagini
    Cap. 7
    Ionut Valentin
    Încă nu există evaluări
  • Cap. 8
    Cap. 8
    Document37 pagini
    Cap. 8
    Ionut Valentin
    Încă nu există evaluări
  • Lab 7bis
    Lab 7bis
    Document2 pagini
    Lab 7bis
    Ionut Valentin
    Încă nu există evaluări
  • L3 - Retele Sociale
    L3 - Retele Sociale
    Document12 pagini
    L3 - Retele Sociale
    Ionut Valentin
    Încă nu există evaluări
  • Bba Bba
    Bba Bba
    Document86 pagini
    Bba Bba
    Ionut Valentin
    Încă nu există evaluări
  • Lucrarea nr.10 PD
    Lucrarea nr.10 PD
    Document7 pagini
    Lucrarea nr.10 PD
    Ionut Valentin
    Încă nu există evaluări
  • Lucrarea Nr.1 PD
    Lucrarea Nr.1 PD
    Document12 pagini
    Lucrarea Nr.1 PD
    Ionut Valentin
    Încă nu există evaluări