Documente Academic
Documente Profesional
Documente Cultură
2
1. Competene
Competene generale
implementarea algoritmilor ntr-un limbaj de programare
aplicarea algoritmilor fundamentali n prelucrarea datelor
Competene specifice
transcrierea algoritmilor din limbaj pseudocod n limbaj de programare
elaborarea unui algoritm de rezolvare a unor probleme din aria
curricular a specialitii
alegerea unui algoritm eficient de rezolvare a unei probleme
3
2. Noiuni introductive
Noiuni introductive
4
Noiuni introductive
Limbajele de programare fac parte din categoria limbajelor artificiale, fiind
utilizate n procesul de comunicare om-calculator.
5
Noiuni introductive
Repere istorice n evoluia limbajelor de programare:
1955 FORTRAN (FORmula TRANslation)
1960 ALGOL (ALGOrithmic Language)
1960 COBOL (COmmon Business Oriented Language)
1971 Pascal (Blaise PASCAL)
1972 C
1980 C++
1995 Java
6
Noiuni introductive
Limbajul de programare C++
7
Noiuni introductive
Realizarea unui program scris n C++ necesit parcurgerea a patru etape:
editare scrierea programului surs, prin crearea unui fiier cu extensia
cpp;
compilare se aduce n memoria intern programul surs, se verific
erori i se convertete acest program n program obiect, avnd extensia
obj;
link-editare se leag programul obiect cu bibliotecile de sistem i se
transform ntr-un program executabil avnd extensia exe;
execuie se lanseaz n execuie programul obiect: se efectueaz
citirea datelor, calculele i scrierea rezultatelor, formndu-se fiierul.
8
3. Structura general a unui program C++
Structura general a unui program C++
9
Structura general a unui program C++
Forma funciei main
int main()
{
. . . .
return 0;
}
10
4. Elementele de limbaj
Elementele de limbaj
11
5. Vocabularul limbajului C++
Vocabularul limbajului C++
12
Vocabularul limbajului C++
a. Setul de caractere
Setul de caractere utilizat pentru scrierea programelor C++ este setul de
caractere al codului ASCII.
13
Vocabularul limbajului C++
b. Identificatori
Identificatorii (numele) au rolul de a denumi elemente ale programului
precum constante, variabile, funcii etc.
Identificatorii:
reprezint o secven de litere, cifre i _ (linia de subliniere) care trebuie
s nceap cu _ sau cu o liter;
nu pot fi cuvinte cheie (rezervate) ale limbajului.
Exemple Contraexemple
suma suma 1
Suma 1suma
suma1 suma+1
suma_1 suma&nr
_suma suma nr
14
Vocabularul limbajului C++
c. Cuvinte cheie (rezervate)
Cuvintele cheie (keywords) sunt cuvinte care au un neles bine definit i
nu pot fi folosite n alt context.
Exemple
bool default for struct
break do if switch
case double int unsigned
char else long void
const float return While
15
Vocabularul limbajului C++
d. Comentarii
Pentru ca un program s fie uor de neles se folosesc comentariile.
Acestea sunt texte care vor fi ignorate de compilator, dar au rolul de a
explicita pentru programator anumite secvene de program.
// comentariu
sau
/*comentariu
comentariu
..........*/
16
Vocabularul limbajului C++
e. Separatori
Separatorii se folosesc pentru a delimita unitile sintactice.
Separatori:
blank
TAB
caracterele de control CR+LF generate de tasta Enter
virgula
17
6. Tipuri simple de date
Tipuri simple de date (standard)
18
Tipuri simple de date
Tipuri standard n C++:
int i long pentru memorarea numerelor ntregi;
float i double pentru memorarea numerelor reale;
char pentru memorarea caracterelor;
void pentru tip neprecizat.
Tipul void este un tip special, pentru care mulimea valorilor este vid.
Acest tip se utilizeaz atunci cnd este necesar s specificm absena
oricrei valori. De exemplu, poate fi utilizat pentru a specifica tipul unei
funcii care nu returneaz niciun rezultat.
19
Tipuri simple de date
Tipuri standard n C++. Domeniul de valori i dimensiunea memoriei
ocupate:
Tip Valori Numr
octei
int [-2147483648, 2147483647] 4
20
7. Constante i variabile
Constante i variabile
Constantele
constanta are un tip i o valoare fix pe toat durata execuiei
programului care o conine;
tipul i valoarea unei constante se definesc prin caracterele care
compun constanta respectiv.
21
Constante i variabile
Declararea constantelor
Sintaxa:
const [tip_dat] nume=valoare;
unde:
const este un cuvnt cheie care nseamn definirea unei constante
simbolice;
tip_dat precizeaz tipul constante (poate lipsi);
nume este identificatorul constantei;
valoare este valoarea constantei.
Exemple
const int a=0;
const int x=-5;
const b=0;
const float PI=3.14;
const char a=a;
const char sir[]=info;
22
Constante i variabile
Variabile
nume asociat cu una sau mai multe locaii de memorie;
valoarea pstrat n aceste locaii se poate modifica n cursul execuiei
programului;
trebuie declarate se specific tipul i numele.
23
Constante i variabile
Declararea variabilelor
Sintaxa:
tip_dat nume;
unde:
tip_dat precizeaz tipul datei memorate n variabila de memorie;
nume este identificatorul variabilei de memorie.
Exemple
int a;
int x,y;
char b;
int a,b=1, c=2;
float d=1;
float e=1.234;
char f='a';
long x1,x2;
unsigned int p,q;
char sir[]="info";
24
8. Operatori i expresii
Operatori i expresii
Operatori
Operatorii sunt caractere speciale care indic operaia care se efectueaz
n cadrul unui program.
Clasificarea operatorilor:
operatori aritmetici;
operatori relaionali;
operatori de egalitate;
operatori de incrementare i decrementare;
operatori logici;
operatori de atribuire;
operatorul , (virgul);
operatorul de conversie explicit.
25
Operatori i expresii
a. Operatori aritmetici
- minus (unar) pentru semn
+ plus (unar) pentru semn
+ (binar) adunare
- (binar) scdere
* (binar) nmulire
/ (binar) mprire ntreag
% (binar) restul mpririi ntregi
Exemple
int a=3,b=4,p,c,r;
p=a*b;
c=a/b+p;
r=a%b;
26
Operatori i expresii
b. Operatori de comparaie (relaionali )
< mai mic
> mai mare
<= mai mic sau egal
>= mai mare sau egal
Exemple
2<=5
4<3
int x=4,y=5,c;
c=x>y;
27
Operatori i expresii
c. Operatori de egalitate
== egal
!= diferit
Exemple
3==3
5==8
3!=6
4!=4
int a=8,b=8,x;
x=a==b;
28
Operatori i expresii
d. Operatori de incrementare i decrementare
++ incrementare (adun 1)
-- decrementare (scade 1)
Exemple
int a=8,b=4,c=6,x;
a++; //a=9
x=b--; //x=4, b=3
x=++c; //x=7, c=7
29
Operatori i expresii
e. Operatori logici
&& I logic
|| SAU logic
! negaie
Exemple
a<=b && a<=c
a>5 || b<8
!(a==b)
30
Operatori i expresii
f. Operatori de atribuire
= egal
*=
/=
%=
+=
-=
Exemple
int a=2,b=3,c=4;
a=b;
b+=a; //b=b+a
c=b=a;
31
Operatori i expresii
g. Operatorul , (virgul)
Separ mai multe expresii.
Exemple
int a=1, b=5;
float c;
c=a=b+1,a=c+2,b=b+1;
//b+1=6; a=6; c=6
//a=6+2=8;
//b=5+1=6;
32
Operatori i expresii
h. Operatorul de conversie explicit
Pentru ca un operand s intre n calcul convertit aa cum ne dorim (nu
implicit) naintea operandului se trece tipul su.
Exemple
float x=25.79; //x=25.79
int y;
y=x; //y=25
x=(int)x; //x=25
x=int(x); //x=25
float a=8, b=3, c;
c=a/b; //c=2.66667
33
Operatori i expresii
Prioritatea operatorilor
34
Operatori i expresii
Expresii
O expresie este alctuit din unul sau mai muli operanzi legai ntre ei
prin operatori. Operanzii pot fi constante, variabile sau funcii.
35
Operatori i expresii
a. Expresii aritmetice
expresiile aritmetice sunt cele care efectueaz operaii aritmetice avnd
ca rezultat un numr
Exemple
int x=7, y=2, r;
r=x/y; //r=3
int a;
a=25/2*4-3+7/2; //a=48
36
Operatori i expresii
b. Expresii logice
o expresie logic descrie o condiie
valoarea unei expresii logice reprezint valoarea de adevr a expresiei
aferente
o condiie poate fi fals/false (valoarea 0) sau adevrat/true (o
valoare diferit de 0)
Exemple
int x=7, y=2;
x>=y //true
x!=y //true
x<y //false
37
9. Operaii de citire i scriere
Operaii de citire i scriere
38
Operaii de citire i scriere
a. Flux de date de intrare (cin)
conecteaz tastatura la program
execut operaii de citire
datele de intrare sunt furnizate programului
datele sunt pstrate n variabile de memorie
cin reprezint tastatura
operatorul de intrare >> nseamn transmiterea unei valori de la
tastatur
Sintaxa:
cin>>nume_var;
sau
39
Operaii de citire i scriere
Exemplu
int x=7,y=2,z=4;
x 7 y 2 z 4
cin>>x;
cin>>y;
cin>>z;
// considerm c se introduc de la tastatur valorile 10, 20 i 30
x 10 y 20 z 30
40
Operaii de citire i scriere
2. Flux de date de ieire (cout)
conecteaz monitorul la program
execut operaii de scriere
datele de ieire sunt furnizate de program
datele sunt transmise ctre monitor
cout reprezint monitorul
operatorul de ieire << nseamn transmiterea unei valori ctre
monitor
Sintaxa:
cout<<nume_var|constant;
sau
41
Operaii de citire i scriere
Exemplu
int x=7,y=2,z=4;
cout<<x;
cout<<y;
cout<<z;
se va afia: 724
iar pentru
cout<<x<< ;
cout<<10<<endl;
cout<<z;
se va afia: 7 10
4
42
Operaii de citire i scriere
cin>> cout<<
Date de Date de
Program
intrare ieire
tastatura monitor
#include<iostream>
43
10. Instruciunile limbajului C++
Instruciunile limbajului C++
44
Instruciunile limbajului C++
Instruciunile limbajului C++ sunt:
instruciunea expresie;
instruciunea compus;
instruciunea if;
instruciunea switch;
instruciunea break;
instruciunea while;
instruciunea do while;
instruciunea for.
45
Instruciunile limbajului C++
Instruciunile limbajului C++ se mpart n dou categorii:
instruciuni simple;
instruciuni de control (structurate).
46
Instruciunile limbajului C++
if
Instruciuni
decizionale switch
Instruciuni
de control
while
Instruciuni do while
repetitive
for
47
Instruciunile limbajului C++
a. Instruciunea expresie
Instruciunea expresie (de atribuire) este destinat atribuirii de valori
variabilelor sau returnarea de valori n cazul funciilor.
Sintaxa:
expresie;
Efect:
se evalueaz expresia.
48
Instruciunile limbajului C++
Exemple
s=a+5;
a=b=c=d=10;
i++;
p=abs(8);
clrscr();
p=1;
x+=2;
k=2*a-b*b+c;
49
Instruciunile limbajului C++
b. Instruciunea compus
Reprezint o succesiune de declaraii urmate de instruciuni, incluse ntre
acolade.
Sintaxa:
{
declaraii;
instruciuni;
}
Efect:
se execut n ordine instruciunile specificate.
50
Instruciunile limbajului C++
Exemplu
{
int a,x,p=5;
a=0;
x=p+2;
x++;
p+=x;
cout<<a<<x<<p;
}
51
Instruciunile limbajului C++
c. Instruciunea if
Instruciunea decizional (condiional) if realizeaz selectarea n
vederea execuiei a unei singure instruciuni din mai multe posibile.
52
Instruciunile limbajului C++
Forma 1
Sintaxa:
if(expresie logic)
instruciune1;
else
instruciune2;
Efect:
pasul 1: se evalueaz expresie logic;
pasul 2: dac valoarea produs de expresie logic este diferit
de 0 (este adevrat) se execut instruciune1, iar
dac valoarea produs este 0 (este fals) se execut
instruciune2.
53
Instruciunile limbajului C++
Forma 2
Sintaxa:
if(expresie logic)
instruciune;
Efect:
pasul 1: se evalueaz expresie logic;
pasul 2: dac valoarea produs de expresie logic este diferit
de 0 (este adevrat) se execut instruciune.
54
Instruciunile limbajului C++
Exemple
1. if(n%2==0)
cout<<Numarul este par;
else
cout<<Numarul este impar;
2. if(x>10)
{
x++;
y=10;
}
else
x--;
y=20;
55
Instruciunile limbajului C++
3. if(x>y)
if(y>z)
x=y+z;
else
x=y-z;
4. if(x>y)
{
if(y>z)
x=y+z;
}
else
x=y-z;
56
Instruciunile limbajului C++
d. Instruciunea switch
Instruciunea decizional switch realizeaz selectarea n vederea
execuiei a unei singure instruciuni din mai multe posibile.
57
Instruciunile limbajului C++
Sintaxa:
switch(expresie logic)
{
case c1: instruciune1;
break;
case c2: instruciune2;
break;
.................
case cn: instruciunen;
break;
[default: instruciunen+1;]
}
58
Instruciunile limbajului C++
Efect:
pasul 1: se evalueaz expresie logic
pasul 2: dac aceasta produce o valoare egal cu cea produs de
ci, se execut instruciunei i se ncheie execuia
instruciunii switch, altfel se execut instruciunen+1.
59
Instruciunile limbajului C++
Exemplu
a=b=5;
cout<<1: adunare;
cout<<2: scadere;
cout<<Introdu optiune:;cin>>op;
switch(op)
{
case 1: cout<<a+b;
break;
case 2: cout<<a-b;
break;
default: cout<<optiune gresita;
}
60
Instruciunile limbajului C++
e. Instruciunea break
Instruciunea break se folosete n instruciunea decizional switch sau
n instruciunile repetitive.
Sintaxa:
break;
Efect:
determin ieirea necondiionat din instruciunea n care apare
(switch, while, do while sau for).
61
Instruciunile limbajului C++
Exemplu
int i;
cin>>i;
switch(i)
{
case 1:cout<<am citit 1;
break;
case 2:cout<<am citit 2;
break;
default:cout<<am citit altceva;
}
62
Instruciunile limbajului C++
f. Instruciunea while
Instruciunea repetitiv while specific faptul c anumite instruciuni se
execut de mai multe ori.
63
Instruciunile limbajului C++
Sintaxa:
while(expresie logic)
instruciune;
Efect:
pasul 1: se evalueaz expresie logic;
pasul 2: dac valoarea produs de aceasta este adevrat (diferit
de 0), se execut instruciune, apoi se trece la pasul 1,
altfel (are valoarea 0) se trece la instruciunea urmtoare
din program.
64
Instruciunile limbajului C++
Exemple
1. int a=1;
while(a<5)
{
a++;
cout<<a<<endl;
}
2. int a=1;
while(a<5)
a++;
cout<<a<<endl;
65
Instruciunile limbajului C++
3. int a=10;
while(a<5)
a++;
cout<<a<<endl;
4. int a=1;
while(a<5);
a++;
cout<<a<<endl;
66
Instruciunile limbajului C++
g. Instruciunea do while
Instruciunea repetitiv do while specific faptul c anumite instruciuni
se execut de mai multe ori.
67
Instruciunile limbajului C++
Sintaxa:
do
instruciune;
while(expresie logic);
Efect:
pasul 1: se execut instruciune;
pasul 2: se evalueaz expresie logic; dac valoarea produs
de aceasta este 0, execuia se ncheie, altfel se trece la
pasul 1.
68
Instruciunile limbajului C++
Exemple
1. int a=1;
do
{
a++;
cout<<a<<endl;
}while(a<5);
2. int a=10;
do
{
a++;
cout<<a<<endl;
}while(a<5);
69
Instruciunile limbajului C++
3. int a=10;
do
{
}while(a<5);
cout<<a;
4. int a=10;
do
;
while(a<5);
cout<<a<<endl;
70
Instruciunile limbajului C++
h. Instruciunea for
Instruciunea repetitiv for specific faptul c anumite instruciuni se
execut de mai multe ori.
71
Instruciunile limbajului C++
Sintaxa:
for(expresie1;expresie2;expresie3)
instruciune;
Efect:
pasul 1: se evalueaz expresie1;
pasul 2: se evalueaz expresie2; dac aceasta produce o
valoare diferit de 0, se execut instruciune, apoi se
trece la pasul 3, altfel instruciunea for se ncheie;
pasul 3: se evalueaz expresie3 i se revine la pasul 2.
72
Instruciunile limbajului C++
Exemple
1. int i;
for(i=1;i<5;i++)
cout<<i<< ;
2. int i;
for(i=5;i<5;i++)
cout<<i<< ;
3. int i;
for(i=5;i>1;i--)
cout<<i<< ;
4. int i;
for(i=5;i>1;i=i-2)
cout<<i<< ;
73
11. Aplicaii
Fie de lucru
Operatori i tipuri de date
Instruciunea de atribuire
Instruciunea decizional if
Instruciunea repetitiv while
Instruciunea repetitiv do while
Instruciunea repetitiv for
74
12. Bibliografie i webografie
1. Miloescu M., Informatic. Manual pentru clasa a IX-a, Editura
Didactic i Pedagogic, Bucureti, 2004
2. Munteanu F., Programarea calculatoarelor. Manual pentru licee de
informatic clasele X-XII, Editura Didactic i Pedagogic, Bucureti,
1994
3. Popescu C., Culegere de probleme de informatic, Editura Donaris-
Info, Sibiu, 2002
4. Ministerul Educaiei, Cercetrii i Tineretului, Centrul Naional pentru
Curriculum i Evaluare n nvmntul Preuniversitar, Proba scris la
informatic. Examenul de bacalaureat Variante (1-100) , Bucureti
2008
5. http://www.cplusplus.com/
6. http://ro.wikipedia.org/wiki/C_(limbaj_de_programare)
7. http://ro.wikipedia.org/wiki/C%2B%2B
8. http://ro.wikipedia.org/wiki/Sintaxa_limbajului_C
9. http://en.wikipedia.org/wiki/C%2B%2B_Standard_Library
10. http://www.studytonight.com/cpp/introduction-to-cpp.php
11. http://infoscience.3x.ro/c++.html
12. http://info64.ro/
75