Documente Academic
Documente Profesional
Documente Cultură
Cuprins
NOIUNI TEORETICE DESPRE LIMBAJUL C++ - PREZENTARE GENERAL .................. 4
ELEMENTELE DE BAZ ALE LIMBAJULUI C++ ........................................................... 5
Vocabularul limbajului ........................................................................................ 5
a)Setul de caractere ............................................................................................ 5
b)Identificatori. Cuvinte cheie ............................................................................. 5
c)Comentarii........................................................................................................ 5
Scrierea i citirea n limbajul C++ ......................................................................... 5
Tipuri de date, constante, variabile ..................................................................... 6
a)Tipuri de date................................................................................................... 6
b)Constante ........................................................................................................ 7
c)Variabile........................................................................................................... 7
Expresii. Operatori C++ ........................................................................................ 8
a)Operatori aritmetici ......................................................................................... 8
b)Operatori relaionali ........................................................................................ 9
c)Operatori de incrementare i decrementare ..................................................... 9
d)Operatorii logici ............................................................................................. 10
e)Operatorii de asignare(atribuire) ................................................................... 10
f)Operatorul condiional.................................................................................... 11
g)Operatorul de conversie explicit ................................................................... 11
h)Operatorul dimensiune sizeof......................................................................... 11
FI DE LUCRU - OPERATORI C++ .......................................................................... 12
FI DE LUCRU STRUCTURA ALTERNATIV ......................................................... 14
STRUCTURA REPETITIV WHILE ............................................................................. 15
STRUCTURA REPETITIV FOR................................................................................. 16
STRUCTURA REPETITIV DO...............WHILE ......................................................... 18
PROBLEM REZOLVAT ..................................................................................... 18
Cuprins
set de date, ntr-un limbaj inteligibil de ctre un sistem de calcul care urmeaz ulterior s le
execute.
Exemplu
Cuprins
Identificatorul este o succesiune de litere, cifre sau caracterul special underscor(_) din
care prima nu trebuie s fie cifr. Cu ajutorul identificatorilor se asociaz nume constantelor,
variabilelor, funciilor, etc. Exemple de identificatori: a, c1, contor_cifre, etc.
Limbajul C++, ca orice limbaj de programare, este compus din cteva denumiri(identificatori)
cu o semnificaie bine stabilit, numite cuvinte cheie.
Observaie: cnd alegei denumiri de variabile pentru programe s nu utilizai aceste denumiri.
auto
break
case
char
const
continue default
do
double
else
enum
extern
float
for
goto
if
int
long
register
return
short
signed
sizeof
static
struct switch typedef
union
unsigned
void
volatile
while
bool
catch
class
delete
namespace
inline
new
operator
private
this
using
template
virtual
mutable
cin
cout
c)Comentarii
Pentru a realiza scrieri pe ecran se folosete fluxul cout<<. Cuvntul cheie cout este acronimul
de la console output i se mai numete - stream de ieire. Forma general a acestui stream este
cout<<a<<b<<c<<<<n;
Pentru a realiza citiri de la tastatur se folosete fluxul cin>>. Cuvntul cheie cin este
acronimul de la console input i se mai numete stream de intrare. Forma general a acestui
stream este cin>>a>>b>>>>n;
Aplicaie
Click aici Exemplu i identific n program operaiile de scriere i citire. Folosind un mediu de
dezvoltare al programelor scrise cu ajutorul limbajului C++(Code Blocks, MinGW, Borland C++,
Dev C++) sau folosind compilatorul online de aici, scrie i urmrete execuia programului de mai
jos.
INFORMATIC clasa a IX-a
Cuprins
Cuprins
#include <iostream>
using namespace std;
int main()
{
int x,y,z;
cout<<"Introduceti valoarea lui x:";cin>>x;
cout<<"Introduceti valoarea lui y:";cin>>y;
z=x+y;
cout<<"Suma celor doua numere este "<<z<<endl;
z=x*y;
cout<<"Produsul celor doua numere este "<<z<<endl;
z=x/y;
cout<<"Catul impartirii celor doua numere este "<<z<<endl;
z=x%y;
cout<<"Restul impartirii celor doua numere este "<<z;
}
TIP
CHAR
INT
FLOAT
DOUBLE
VOID
CARACTERISTICI
reine un singur caracter Exemple: A,a,%, etc.
reine numere ntregi cu semn Exemple: 23,-45,0, etc.
reine numere reale n format cu virgul mobil, n simpl precizie
Exemple: 7.8965, -4.123, 7.0, etc.
reine numere reale n format cu virgul mobil, n dubl precizie
Exemple: 7.8965, -4.123, 7.0, etc. (se utilizeaz cnd se prelucreaz
numere foarte mari sau foarte mici)
tip de date special care nu specific un anumit set de valori iniial, dar
care poate fi specificat ulterior declarrii.
Modificatorii de tip. Limbajul C++ ofer pe lng cele 5 tipuri de baz prezentate mai sus, un
set de modificatori de tip:unsigned(fr semn), long(lung), signed(cu semn), register(registru),
short(scurt). Un modificator de tip schimb domeniul valorilor pe care o variabil le poate
pstra, sau modul n care compilatorul pstreaz o variabil. Pentru a se modifica un tip de data,
Cuprins
b)Constante
Sunt date a cror valoare nu poate fi modificat n timpul execuiei programului. Ele reprezint
un tip i o valoare i astfel pot fi de mai multe tipuri:
constant ntreag - se reprezint sub forma unei niruiri de cifre: 6,456,1234.
c)Variabile
Pentru a putea utiliza informaiile ce pot fi prelucrate prin intermediul programelor, trebuie s
folosim denumiri (identificatori), care s fie compui din litere, cifre i liniua de subliniere
(caracterul underscore) - maxim 31 caractere.
Numim variabil o denumire (identificator) pe care compilatorul o asociaz cu o anumit zon
de memorie. Cnd se declar o variabil, trebuie specificat numele ei ct i tipul de date
asociat. Exemple:
Limbajul C++ este case sensitive, adic face diferena dintre literele mici i mari, astfel nct,
dou denumiri de variabile sau de funcii, care sunt identice dar sunt scrise o dat cu litere
mici iar apoi cu litere mari, se consider ca fiind dou denumiri de variabile sau de funcii
diferite. Variabilele pot fi:
Cuprins
Expresia este alctuit dintr-unul sau mai muli operanzi legai ntre ei prin operatori pentru a
efectua anumite operaii (calcule, atribuiri, apelri de funcii, etc.). Limbajul C++ conine un set
puternic de operatori. Cei mai importani operatori ai limbajului C++ sunt:
Operatorii aritmetici
Operatorii relaionali
Operatorii de incrementare i decrementare
a) prefixai
b) postfixai
Operatorii logici
Operatorii de asignare(atribuire)
Operatorul conditional
Operatorul de conversie explicit
Operatorul dimensiune sizeof
a)Operatori aritmetici
Nr. crt.
1.
2.
3.
4.
5.
Operator
+
*
/
%
Semnificaie
adunare
scdere
nmulire
mprire
modulo
Tipul datelor
numeric
numeric
numeric
numeric
ntreg
Exemplu
z = y + x;
z = y x;
z = y * x;
z = y / x;
z = y % x;
Operatorii +, -, /, * pot fi utilizai cu orice tip de dat, pe cnd operatorul modulo poate fi
folosit doar cu datele de tip ntreg. Operatorul modulo reine restul unei mpriri ntregi.
Aplicaie
Folosind un mediu de dezvoltare al programelor scrise cu ajutorul limbajului C++(Code Blocks,
MinGW, Borland C++, Dev C++) sau folosind compilatorul online de aici, scrie i urmrete
execuia programului de mai jos:
#include <iostream>
using namespace std;
int main()
{
int a,b=8;
float x,y;
char c='a',d='b';
a=5;
x=3.14;y=2;
cout<<a+b<<endl;
cout<<a-x<<endl;
cout<<b-y<<endl;
cout<<a/x<<endl;
cout<<c<<d<<endl;
cout<<c+d<<endl;
cout<<c-d<<endl;
cout<<b%a<<endl;
cout<<a+c<<endl;
cout<<x-d;
}
INFORMATIC clasa a IX-a
Cuprins
Cuprins
b)Operatori relaionali
Nr.
crt.
1.
2.
3.
4.
5.
6.
Operator
Operaie
<
>
<=
>=
==
!=
mai mic
mai mare
mai mic sau egal
mai mare sau egal
egal
diferit
Rezultatul unui operator relaional nu poate fi dect true (sau 1), respectiv false (sau 0).
Prefixai
Postfixai
++ operand operand --- operand operand ++
Diferena dintre operatorii postfixai i operatorii prefixai este aceea c dac operandul
este postfixat atunci mai nti se folosete valoarea lui nemodificat, iar apoi se aplic
operatorul respectiv. Dac operandul este prefixat atunci mai nti se aplic operatorul
respectiv i abia apoi se folosete valoarea lui.
Aplicaie.Folosind un mediu de dezvoltare al programelor scrise cu ajutorul limbajului C++(Code
Blocks, MinGW, Borland C++, Dev C++) sau folosind compilatorul online de aici, scrie i
urmrete execuia programului de mai jos:
#include <iostream>
using namespace std;
int main()
{
int a=5,b=7;
cout<<(a>b)<<endl;
cout<<(a<b)<<endl;
cout<<(a!=b)<<endl;
cout<<(a==b)<<endl;
cout<<a++<<endl;
cout<<a<<endl;
a++;b--;
cout<<a<<endl;
cout<<b<<endl;
cout<<++b<<endl;
cout<<b++<<endl;
cout<<a--+b<<endl;
cout<<--a+b<<endl;
}
Cuprins
d)Operatorii logici
Nr. crt.
1.
2.
3.
Operaie
negarea logic
I logic
SAU logic
Operator
!
&&
||
Rezultatul unui operator logic nu poate fi dect true (sau 1), respectiv false (sau 0). Tabelul de
adevr este prezentat mai jos:
Nr. crt.
1.
2.
3.
4.
A
0
0
1
1
B
0
1
0
1
A && B
0
0
0
1
A || B
0
1
1
1
!A
1
1
0
0
e)Operatorii de asignare(atribuire)
Nr. crt.
1.
2.
3.
4.
5.
6.
Operator
=
+=
-=
*=
/=
%=
Forma lung
x=y
x=x+y
x=x-y
x=x*y
x=x/y
x=x%y
Forma scurt
x+=y
x-=y
x*=y
x/=y
x%=y
#include <iostream>
using namespace std;
int main()
{
int a=10,b=15;
cout<<((a>b)&&(a==b))<<endl;
cout<<((a<=b)||(a>=b))<<endl;
cout<<((a!=b)&&(a==(b-5)||(b==b)))<<endl;
a+=b;
cout<<a<<endl;
b*=a;
cout<<b<<endl;
b/=a;
cout<<b<<endl;
a%=b;
cout<<a;
}
INFORMATIC clasa a IX-a
Cuprins
Cuprins
f)Operatorul condiional
Operatorii condiionali se utilizeaz n evaluarea expresiilor care prezint alternative. Forma
general este urmtoarea:
unde exp1, exp2, exp3 sunt expresii. Dac valoarea expresiei exp1 este adevrat atunci
valoarea i tipul expresiei va fi exp2; altfel valoarea i tipul va fi exp3.
? : sunt operatorii condiionali i trebuie s fie folosii mpreun.
Exemplu: a=5
b = a > 7 ? 15 : 20;
n acest exemplu variabilei b i se atribuie valoarea 20. Dac a ar fi fost mai mic dect 5, lui b i
s-ar fi atribuit valoarea 15.
Acest operator realizeaz o schimbare temporar a tipului unei expresii i are urmtoarea
form general:
(tip)expresie;
unde: tip este unul dintre tipurile de date admise n limbajul C++(int, float, char, etc.).
sizeof (data)
Acesta returneaz lungimea n octei a unei date. Data poate fi numele unei variabile simple, al
unui tablou, al unei structuri, al unui tip sau referirea la elementul unui tablou sau structur.
Aplicaie.Folosind un mediu de dezvoltare al programelor scrise cu ajutorul limbajului C++(Code
Blocks, MinGW, Borland C++, Dev C++) sau folosind compilatorul online de aici, scrie i
urmrete execuia programului de mai jos:
#include <iostream>
using namespace std;
int main()
{
int a=10,b=15;
char c='A';
cout<<(a>b?"DA":"NU")<<endl;
cout<<a/b<<endl;
cout<<(float)a/b<<endl;
cout<<c<<endl;
cout<<(int)c<<endl;
cout<<sizeof(c)<<"octet"<<sizeof(a)<<"octeti"<<sizeof(b)<<"octeti ";
}
Cuprins
{
int x=2, y=7, z,u;
u=x*(y-2)%3;
cout<<u=<<u<<endl;
z=u+x;
x=x*y;
cout<<x=<<x<< y=<<y<< z=<<z<< u=<<u<<endl;
x=-y*z%3+u;
cout<<x=<<x<<endl;
z=(x-y)*(u-x);
cout<<z=<<z<<endl;
}
Cuprins
10. Scriei un program care convertete gradele Celsius n grade Fahrenheit conform
formulei f=(9/5)*c+32. Datele se citesc de la tastatur.
11. Se introduc 2 numere, a i b i un numr k. S se afieze un mesaj dac fracia a/b
poate fi simplificat prin k.
12. Se introduc 2 numere. S se afieze un mesaj dac aceste numere sunt consecutive.
13. Fie variabilele x,y i u de tipul int. Scriei o instruciune care mrete valoarea
variabilei u cu ctul ntreg al mparirii lui x la y ?
14. Scriei 3 valori ce pot fi citite pentru variabila y astfel nct programul de mai jos
s tipreasc 1 ?
{int x=2, y, z;
cin>>y;
x++;
z=y+3*x;
cout<<((z%2==0 && x>=1) ? 1 : 0 );
}
15. Ce se afieaz n urma execuiei secvenei de instruciuni de mai jos, dac pentru n
se citete valoarea 815?
{
int n, a, b, c, x, w, q;
cout<<"n="; cin>>n;
a=n/100;
b=n/10%10;
c=n%10;
(a>b ? x=a, a=b, b=x : x);
(b>c ? x=b, b=c, c=x : x);
(a>b ? x=a, a=b, b=x : x);
cout<<a<<" "<<b<<" "<<c<<endl;
w=a*100+b*10+c;
q=c*100+b*10+a;
cout<<w<<" "<<q;
}
Cuprins
Cuprins
while (expresie)
{
instruciuni;
}
Aceast instruciune se execut astfel:
PAS 1: se evalueaz expresia;
PAS 2: dac rezultatul este diferit de 0, adic corespunde valorii logice adevrat,
atunci se execut instruciunile i se revine la primul pas; altfel se trece la
execuia instruciunii care urmeaz instruciunii while.
EXEMPLE
a)Se citesc de la tastatur mai multe
numere pn la ntlnirea valorii 0. S se
scrie un program C++ care calculeaz i
afieaz pe ecran suma numerelor pare
i produsul numerelor impare.
Cuprins
program C++
care determin
for (exp1;exp2;exp3)
{
instruciuni;
}
exp1, pentru iniializare, prin care se stabilete starea dinainte de prima
execuie a instruciunii;
exp2, pentru testare, compar starea curent cu starea care termin procesul
de terminare; are rolul de a termina executarea repetat a instruciunilor;
exp3, pentru modificare, prin schimbarea strii curente, astfel nct s se
avanseze ctre starea final.
Instruciunea for se execut astfel:
PAS 1: se evalueaz expresia exp1;
PAS 2: se evalueaz expresia exp2; dac rezultatul este diferit de 0, adic
Cuprins
EXEMPLE
a)Se citesc de la tastatur n
numere
ecran
suma
numerelor
pare
Cuprins
do
{
instruciuni;
}
while(expresie);
se
EXEMPLE
a)Se citesc cifrele unui numr ncepnd cu
cifra cea mai semnificativ. S se afieze
numrul obinut.
b)Modificai
programul,
nlocuind
PROBLEM REZOLVAT
1.Se citete cte un caracter, pn la ntlnirea caracterului @. S se afieze cte litere
mari au fost introduse, cte litere mici, cte cifre i cte alte caractere.
2.Modificai programul astfel nct, pentru fiecare caracter citit, s se afieze un
mesaj care s indice dac s-a citit o liter mare, o liter mic, o cifr sau un alt
caracter.
INFORMATIC clasa a IX-a
Cuprins
Cuprins
ALGORITMI FUNDAMENTALI
Aceti algoritmi au fost concepui spre a veni n ajutorul programatorilor, care i
folosesc ori de cte ori este necesar n probleme, fr a mai fi nevoie s-i elaboreze de
fiecare dat. Acetia se refer la separarea cifrelor unui numr (folosit de fiecare dat
cnd n rezolvarea unei probleme este necesar accesul la cifrele unui numr),
determinarea divizorilor proprii ai unui numr natural dat, testarea dac un numr
natural mai mare ca 1 este prim, determinarea celui mai mare divizor comun a dou
numere naturale date, descompunerea unui numr natural n factori primi, determinarea
maximului/minimului unui ir de numere citite, pe rnd, de la dispozitivul de intrare.
Cuprins
Exemplu: n=2954
operaia
2954:10
295:10
29:10
2:10
ct
295
29
2
0
rest
4
5
9
2
Limbajul C++
Cuprins
reine
variabila
restul
iar
ia valoarea
restului
obinut
urma
Cuprins
Algoritm:
se pornete de la primul factor prim posibil, 2;
ct timp numrul dat este diferit de 1, se
execut operaiile:
dac factorul l divide pe n iniializm
contorul
ct timp numrul se mparte exact la un
factor prim
incrementm contorul cu 1
se execut mprirea, ctul devine demprit
se trece apoi la urmtorul factor prim
Cuprins