Sunteți pe pagina 1din 8

Laborator 2 – PC2

ELEMENTELE DE BAZA ALE LIMBAJULUI C++


Un program este alcatuit dintr-un sir de instructiuni. Instructiunile sunt formate din cuvinte. Cuvintele,
la randul lor sunt alcatuite din caractere.
Vocabularul limbajului C++ este format din urmatoarele caractere:
• Litere mari si mici ale alfabetului englezesc (A-Z si a-z);
• Cifrele sistemului de numeratie in baza 10 (0-9);
• Caracterele speciale: +, -, *, /, =, <, >, (, ), [, ], {, }, ., ,, :, ;, #, &, _ si spatiul.
Un program scris in C++ este alcatuit din una sau mai multe functii. Fiecare functie are mai multe
instructiuni in C++ care codifica algoritmul programului. Instructiunile unei functii reprezinta corpul
functiei si sunt cuprinse intre { }. Dupa fiecare instructiune din corpul functiei se pune semnul ;
Functiile de acelasi domeniu sunt grupate in fisiere header numite si directive.
La inceputul fiecarui program se specifica fisierele care contin functiile ce se utilizeaza in program
astfel: # include <numefisier.h>
Dupa specificarea directivelor trebuie scrisa functia radacina care se numeste main( ) sau void main(
). Dupa numele directivelor sau a functiilor nu se pune semnul ;
1. Citiri , scrieri.
- pentru realizarea citirii se utilizeaza : cin>>nume variabila
cin>>a>>b>>c - citeste variabilele a, b, c
- pentru realizarea scrierii se utilizeaza: cout<<nume variabila
cout<<a<<b<<c - scrie variabilele a, b, c
Exemplul 1:
#include<iostream.h>
#include<conio.h>
void main()
{
int L,l,h;
clrscr(); // sterge ecranul //
cout<<"Lungimea=" ; cin>>L;
cout<<"Latimea="; cin>>l;
cout<<"Inaltimea="; cin>>h;
getch(); // in C++ sub DOS permite vizualizarea rezultatului
programului//
}

Exemplul 2:

#include<iostream.h>
#include<conio.h>
void main()
{
int L,l,h,v;
clrscr();
cout<<"Lungimea=" ; cin>>L;
cout<<"Latimea="; cin>>l;
cout<<"Inaltimea="; cin>>h;
v=L*l*h;
cout<<"Volumul este"<<" "<<v;
getch();
}
2. TIPURI DE DATE.
2.1. TIPURI INTREGI.
- int (tip intreg care ocupa 16 biti)
- long (tip intreg care ocupa 32 de biti)
- unsigned int sau unsigned long (valorile datelor sunt fara semn, adica pozitive)
- char (tip caracter, aceste date se pun intre doua apostrofuri ' ' )
2.2. TIPURI REALE
- float (tip real care retin si numerele zecimale , ocupa 32 biti)
ATENTIE!! IN C++ LA SCRIEREA UNUI NUMAR ZECIMAL IN LOCUL VIRGULEI SE PUNE
PUNCT
- double ( tip real care ocupa 64 biti)
- long double (tip real care ocupa 80 biti)
2.3. CONSTANTE
Pentru a da un nume constantelor se foloseste declaratia const care are forma:
const [tip] nume=valoare ;
[tip] - tipul constantei ; nume -numele constantei ; valoare - valoarea constantei
Exemplu:
const float a=12.6 constanta este de tip float, poarta denumirea a, are valoarea 12,6

3. OPERATORI C++
3.1. OPERATORI ARITMETICI.
+ (adunare) ; - (scadere) ; * (inmultire) ; / (impartire) ; % (restul impartirii intregi)
3.2. OPERATORI RELATIONALI.
< (mai mic) ; <= (mai mic sau egal) ; > (mai mare) ; >= (mai mare sau egal)
3.3. OPERATORI DE EGALITATE.
== (egalitate) ; != (inegalitate)
3.4. OPERATORI DE INCREMENTARE SI DECREMENTARE.
++ (incrementare) ; -- (decrementare)
Operatorii pot fi : prefixati (in fata operandului) situatie in care variabila este incrementata sau
decrementata inainte ca valoarea retinuta de ea sa intre in calcul
postfixati (dupa operand) situatie in care variabila este incrementata sau
decrementata dupa ce valoarea retinuta de ea intra in calcul
Exemplu:
Daca a si b sunt variabile de tip int care retin valorile 1 si 3 atunci:
a++*b++ produce valoarea 3, dupa evaluare cele 2 variabile retin 2 si 4
++a*++b produce valoarea 8, dupa evaluare cele 2 variabile retin 4 si 4
3.5. OPERATORI LOGICI
! - negare logica ; && - SI logic ; || SAU logic
3.6. OPERATORI DE ATRIBUIRE
Apare foarte frecvent si reprezinta memorarea unei valori intr-o variabila
Este reprezentata prin semnul =
a=3 (atribuie variabilei a valoarea 3)
Se mai utilizeaza operatori de atribuire combinati:
+= ; -= ; *= ; /= ; %= ; &= ; <<= ; >>=
Exemplu: a=a+b este echivalent cu a+=b ; a=a*b este echivalent cu a*=b
3.7. OPERATORUL CONDITIONAL.
Forma generala e1 ? e2 : e3
Se evalueaza e1, daca este adevarata se executa e2, daca este falsa se executa e3
Exemplu: Citirea unuui numar x si tiparirea numarului |x| (modulul numarului x)
#include<iostream.h>
#include<conio.h>
void main()
{
float x;
clrscr();
cout<<"x=" ; cin>>x; cout<<"|x|="<<" "<<(x>=0?x:-x);
getch();
}

D. INSTRUCTIUNILE LIMBAJULUI C++


1. INSTRUCTIUNEA EXPRESIE.
Exemplul1. Interschimbarea continutului a 2 variabile care au fost initial citite.
#include<iostream.h>
#include<conio.h>
void main()
{
int a,b,m;
clrscr();
cout<<"a=" ; cin>>a;
cout<<"b="; cin>>b;
m=a,a=b,b=m;
cout<<"a="<<" "<<a<<endl;
cout<<"b="<<" "<<b;
getch();
}

Exemplul2. Se citesc 3 valori intregi a,b,c si se afiseaza media lor aritmetica


#include<iostream.h>
#include<conio.h>
void main()
{
int a,b,c;
float m;
clrscr();
cout<<"a=" ; cin>>a;
cout<<"b="; cin>>b;
cout<<"c=" ; cin>>c;
m=float(a+b+c)/3;
cout<<"media aritmetica ="<<" "<<m;
getch();
}

2. INSTRUCTIUNEA IF.
Forma generala:
if (expresie) instructiune1 else instructiune2
Se evalueaza expresia, daca este adevarata se executa instructiune1, daca este falsa se executa
instructiune2
Exemplul 1. Calculeaza maximul dintre 2 numere citite
#include<iostream.h>
#include<conio.h>
void main()
{
int a,b,max;
clrscr();
cout<<"a=" ; cin>>a;
cout<<"b="; cin>>b;
if(a>b) max=a;
else max=b;
cout<<"numarul mai mare este "<<" "<<max;
getch();
}

Exemplul 2. Se citesc coeficientii a, b, c ale unei ecuatii de gradul doi si se precizeaza natura
radacinilor si semnul lor.

#include<iostream.h>
#include<math.h>
#include<conio.h>
void main()
{
float a,b,c,d,s,p;
clrscr();
cout<<"a=";cin>>a;cout<<"b=";cin>>b;cout<<"c=";cin>>c;
d=b*b-4*a*c; s=float(-b/a); p=float(c/a);
cout<<"Discriminantul ecuatiei D="<<d<<endl;
cout<<"Produsul radacinilor P="<<p<<endl;
cout<<"Suma radacinilor S="<<s<<endl;
if(d<0) cout<<"Ecuatia nu are solutii reale";
else
{ if(d==0) {if(s>0) cout<<"Ecuatia are 2 solutii reale egale si pozitive";
else cout<<"Ecuatia are 2 solutii reale egale si negative";
}
else
if(p>0)
{if(s>0) cout<<"Ecuatia are 2 solutii reale pozitive";
else cout<<"Ecuatia are 2 solutii reale negative";
}
else cout<<"Ecuatia are 2 solutii reale de semne opuse";
}
getch();
}

Exemplul 3. Rezolvarea unei ecuatii de gradul 1.

#include<iostream.h>
#include<conio.h>
void main()
{
float a,b,x;
clrscr();
cout<<"a=" ; cin>>a;
cout<<"b="; cin>>b;
if (a!=0)
{x= -b/a ;cout<<"x="<<" "<<x; }
else
if(b==0) cout<<"ecuatia are o infinitate de solutii";
else cout<<"ecuatia nu are solutie";
getch();
}

Exemplul 4. Rezolvarea unei ecuatii de gradul 2.

#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
float a,b,c,d,x1,x2,x;
clrscr();
cout<<"a=" ; cin>>a;
cout<<"b="; cin>>b;
cout<<"c=" ; cin>>c;
d=float( b*b-4*a*c);cout<<"discriminantul ecuatiei este"<<" "<<sqrt(d)<<endl;
if(d<0) {cout<<"ecuatia nu are solutii reale";}
else
if (d>0)
{ x1=(-b+sqrt(d)) / (2*a) ; x2=(-b-sqrt(d)) / (2*a);
cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;}
else
{x=float(-b/2*a);cout<<"ecuatia are solutie unica x=x1=x2="<<" "<<x;}
getch();
}

3. INSTRUCTIUNEA SWITCH.
Forma generala a instructiunii:
switch (expresie) {
case e1 : secventa 1 ; break;
case e2 : secventa 2 ; break;
..............................................
case en : secventa n ; break;
default : secventa n+1;
}

Se evalueaza expresie , daca este egala cu una din expresiile e1, e2, ...en se executa secventa
corespunzatoare expresiei s1, s2, ...sn, iar daca nu este egala cu una din aceste expresii se executa
numai secventa n+1
Exemplul 1.
#include<iostream.h>
#include<conio.h>
void main()
{
int i;
clrscr();
cin>>i;
switch(i)
{ case 1: cout<<"Am citit 1";break;
case 2: cout<<"Am citit 2";break;
default: cout<<"Am citit altceva";
}
getch();
}

Exemplul2. Se afiseaza natura sol. unei ec. de gr.2 in functie de semnul lui ∆.
#include<iostream.h>
#include<conio.h>
void main()
{
int a,b,c,d;
clrscr();
cout<<"a=";cin>>a;cout<<"b=";cin>>b;cout<<"c=";cin>>c;
d=b*b-4*a*c;
if(d>=0)
{
switch(d)
{
case 0: cout<<"Ecuatia are o solutie dubla";break;
default:cout<<"Ecuatia are doua solutii reale diferite";
}

}
else cout<<"Ecuatia nu are solutii reale";
}

4. INSTRUCTIUNEA WHILE.
Aceasta instructiune permite programarea ciclurilor cu test initial.
Forma generala este:
while (expresie)
{....... instructiuni }
Se evalueaza expresie, daca este adevarata se executa {....instructiuni} dupa care se revine la
evaluarea expresiei , daca este falsa se trece la instructiune urmatoare.
Exemplu. Executarea unui program intr-un ciclu repetat pana la apasarea unei anumite taste(se
introduc coeficientii unei ec. de gr.2 si se afiseaza solutiile de "n" ori pina la apasarea tastei "q")
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
float a,b,c,d,x1,x2,x;
int tasta;
while(tasta!='q')
{
clrscr();
cout<<"a=" ; cin>>a;
cout<<"b="; cin>>b;
cout<<"c=" ; cin>>c;
d=float( b*b-4*a*c);cout<<"discriminantul ecuatiei este"<<" "<<sqrt(d)<<endl;
if(d<0) {cout<<"ecuatia nu are solutii reale";}
else
if (d>0)
{ x1=(-b+sqrt(d))/(2*a) ; x2=(-b-sqrt(d))/(2*a);
cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;}
else
{x=float(-b/2*a);cout<<"ecuatia are solutie unica x=x1=x2="<<" "<<x<<endl;}
cout<<"Pentru continuare apasa o tasta"<<endl;
cout<<"Pentru iesire apasa tasta q";
tasta=getch();
}
}

5. INSTRUCTIUNEA DO WHILE.
Instructiunea permite programarea ciclurilor cu test final.
Forma generala este:
do
{ instructiuni }
while ( expresie )
Se executa { instructiuni } , se evalueaza expresie, daca este adevarata se executa din nou
{instructiuni}, iar daca este falsa executia instructiunii do se termina.
Exemplu: Se citeste numarul natural n si se afiseaza suma primelor n numere naturale
#include<iostream.h>
#include<conio.h>
void main()
{
long n, tasta,s=0,i=1;
while(tasta!='q')
{
clrscr();
cout<<"n=";cin>>n;
do
{
s=s+i; i=i+1;
}
while(i<=n);
cout<<"Suma primelor n numere naturale este"<<" "<<s<<endl;
cout<<"Pentru a continua apasa o tasta"<<endl<<"Pentru a iesi din program apasa tasta 'q'";
tasta=getch();
}
}

6. INSTRUCTIUNEA FOR
Se utilizeaza cel mai fracvent pentru programarea ciclurilor cu test initial.
Forma generala:
for( eINITIALIZARE; eTEST; eINCREMENTARE) instructiune
eINITIALIZARE - se evalueaza o singura data pentru initializarea variabilei de ciclare inaintea primului
ciclu ;
eTEST - este evaluata inaintea fiecarui ciclu pentru a testa daca se executa instructiunea subordonata
si reprezinta conditia de iesire din ciclu;
eINCREMENTARE - se evalueaza la sfirsitul fiecarui ciclu pentru incrementarea variabilei de ciclare.
Principiul de executie:
Se evalueaza eINITIALIZARE (numai la prima rulare), se evalueaza eTEST , daca este adevarata se
executa instructiunea subordonata for, se evalueaza eINCREMENTARE si se revine la evaluarea
expresiei eTEST. Daca eTEST este falsa se trece la urmatoarea instructiune (se termina executarea
instructiunii for)
Observatie. Daca expresia eTEST este vida se executa un ciclu infinit. Pentru a iesi din acest ciclu : in
DOS se tasteaza CTRL+PAUSE
in WINDOWS se tasteaza CTRL +ALT + DEL
Exemplul 1. Se introduce de la tastatura numarul n si se calculeaza suma si produsul primelor n
numere
#include<iostream.h>
#include<conio.h>
void main()
{ N2
int i,n,tasta;
long double a,b;
while(tasta !='q') {
clrscr();
cout<<"Introduceti numarul"<<"";cin>>n;
a=b=1;
for(i=2;i<=n;i++)
{a*=i;b+=i;}
cout<<"suma="<<b<<endl;cout<<"produsul="<<a<<endl;
cout<<"Pentru iesire apasa tasta q";
tasta=getch(); }
}

Observatie. Variabila n poate fi definita la inceput fara a mai trebui introdusa de la tastatura utilizand
#define n valoare (comanda se scrie inainte de void main() )

Exemplul2. Afisarea literelor alfabetului

#include<iostream.h>
#include<conio.h>
void main()
{
char litere;
for(litere='A';litere<='Z';litere++)cout<<litere<<" ";
getch();
}

Exemplul3. Afiseaza toate patratele si radicalii numerelor naturale pina la numarul n introdus de la
tastatura.

#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
float i,n,a,b;
clrscr();
cout<<"n=";cin>>n;
a=b=0;
for(i=1 ;i<=n;i++) {
a=sqrt(i) ; b=i*i;
cout<<"Patratul numarului"<<" "<<i<<" = "<<b<<'\t'<<
"Radicalul numarului"<<" "<<i<<" ="<<a<<endl;
}
getch();
}

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