Sunteți pe pagina 1din 16

Elementele de

baza ale
limbajului de
programare C++

REALIZATORI:
CHELARIU MǍDǍLINA
ASAVEI ALINA

1
Cuprins:

• Vocabularul limbajului
• Constante. Identificatori
• Noţiunea de tip de dată. Operatori

aritmetici, logici, relaţionali


• Definirea tipurilor de date
• Variabile. Declararea variabilelor
• Definirea constantelor
• Structura programelor. Comentarii
• Expresii. Instrucţiunea de atribuire
• Citirea/scrierea datelor
• Structuri de control (instrucţiunea
compusă, structuri alternative şi
repetitive)

2
Vocabularul limbajului

1. SETUL DE CARACTERE
 La scrierea programelor se foloseşte setul de caractere al codului
ASCII. Mulţimea caracterelor se împarte în trei grupe:

 caractere negrafice:
cod Ascii < 32 şi DEL(cod 127 - excepţie)

 spaţiu cod Ascii = 32


 caractere grafice cod Ascii > 32
-literle mari ale alfabetului englez (A cod 65)
-literele mici ale alfabetului englez (a cod 97)
-cifre 0..9 (0 cod 48)
-caractere speciale: !, ", *. + etc.

2. IDENTIFICATORI

 Un identificator este o succesiune de litere, eventual cifre care începe


cu o literă. În calitate de litere se folosesc: literele mici şi mari ale
alfabetului englez şi caracterul subliniere.
 ATENŢIE!!! Se face distincţie între literele mici şi cele mari

EXEMPLU:
Max, _min, distincte, frecv, Max2 - reprezintă identificatori
2min, 67prim, 7_org, A+B, a& - nu reprezintă identificatori

Max ≠ max, ordonat


≠ ORDONAT

3. CUVINTE REZERVATE
 Cuvintele rezervate sunt identificatori cu semnificaţie fixată, care nu
pot fi folosiţi în alt context decât cel precizat în definirea limbajului
EXEMPLU: if, while, do, int, main, void etc.

3
4. CONSTANTE
O constantă are un tip şi o valoare. Valoarea acesteia nu poate fi modificată
pe tot parcursul programului.
În C există următoarele tipuri de constante:
 constante întregi
 constante reale
 constante caracter
 constante şir de caractere
 constante simbolice

1.CONSTANTE ÎNTREGI
O constantă întreagă poate fi un şir de cifre, care eventual este
precedat de un semn.
CLASIFICARE:
 constante întregi zecimale (scrise în baza 10)
 constante întregi octale (scrise în baza 8) - precedate de 0
nesemnificativ
 constante întregi hexazecimale (scrise în baza 16) - precedate de 0x
sau 0X

2. CONSTANTE REALE
O constantă reală este un număr real care se compune din:
 semn +/- (ce poate lipsi)
 parte întreagă ce poate fi vidă (ex: .345 )
 parte fracţionară ce poate fi vidă (ex: 123. )
 un exponent (e sau E) care poate fi şi vid (ex: 454e-2 )

!Atenţie: Nu pot lipsi toate în acelaşi timp. Trebuie să existe ori partea
întreagă, ori cea fracţionar.

3. CONSTANTE CARACTER
O constantă caracter reprezintă un caracter şi are ca valoare codul
ASCII al caracterului respectiv. Ţinând cont de clasificarea setului de
caractere studiată, vom avea următoarele tipuri de constante caracter:
 constante caracter grafice: de forma ' caracter ' ex: 'a', 'V' etc.
 spaţiu: '__'
 constante caracter negrafice : de forma ' caracter negrafic '

4
' \n '- newline
' \t ' - TAB orizontal
' \v '- TAB vertical
' \b '- backspace
' \f ' - salt de pagină
' \r ' - deplasarea cursorului în prima coloană
' \' ' - apostrof
' \\ ' - pentru backshlash
' \0 ' - pentru caracterul NUL

4.CONSTANTE ŞIR DE CARACTERE


O constantă şir de caractere este formată dintr-un şir de zero sau
mai multe caractere delimitate prim ghilimele.
OBS: 1) "..." nu fac parte din şirul de caractere.
2) Dacă dorim să folosim un caracter negrafic în şirul de caractere
atunci se va folosi construcţia cu \
3) " " reprezintă şirul vid.
4) Un şir de caractere poate fi continuat de pe un rând pe altul dacă
înainte de a apăsa tasta ENTER se tastează caracterul \, evident
că, caracterele \ şi ENTER nu vor face parte din şirul astfel obţinut.
Mod de reprezentare: în memorie vom avea codurile Ascii ale caracterelor
din şir terminate de caracterul NUL pentru a
marca sfârşitul de şir.

5. CONSTANTE SIMBOLICE <values.h>


O constantă simbolică este o constantă desemnată printr-un
identificator.
OBS: 1) Folosirea acestor constante conferă programului claritate
2) Ele nu pot fi modificate în timpul execuţiei programului

CLASIFICARE: - predefinite (se va include fişierul <values.h>)


- definite de utilizator
Exemple: maxshort, maxint, maxlong, maxfloat, minfloat etc.

5
Variabila este un ansamblu de patru elemente :
♦ numele variabilei - format din unul sau mai multe caractere (litere şi
cifre, dar primul caracter este literă). Ex.: a, b, x, min, max, x1, b19, MAX
♦ tipul variabilei
 indică mulţimea de valori posibile :
a) întreg – int (C++)
Tip(C++) Valori (C++) Reprezentare (C++)
(Numărul de octeţi
alocat în memorie)
int [-32768, 32767] 2 octeti
unsigned int [0, 65535] 2octeti
long int [-2147483648, 2147483647] 4 octeti
unsigned long int [0, 4294967295] 4 octeti
b) real – float(C++)
Tip(C++) Valori (C++) Reprezentare(C++)
float [3.4*10-38, 3.4*10+38]U[-3.4*10+38, 4 octeti
-3.4*10 ]-38

double [1.7*10-308, 1.7*10+308]U[-1.7*10+308, 8 octeti


-1.7*10 ]
-308

long double [3.4*10-4932, 1.1*10+4932]U[-3.4*10+4932, 10 octeti


-1.1*10-4932]
c) caracter(de ex : ‘A’, ‘a’,’1’, ‚’?’) – char(C++)
Tip(C++) Valori (C++) Reprezentare(C++)
char [-128, 127] 1 octet
unsigned char [0, 255] 1octet
♦ valoarea variabilei este valoarea efectivă pe care o are aceasta la un
moment dat. O variabilă are în orice moment o singură valoare, care
rămâne neschimbată până cand aceasta se modifica intr-o operatie de
atribuire sau citire.
♦ adresa din memorie unde este pastrata este locaţia fizica la care se afla
valoarea variabilei.

Expresii: o expresie este alcatuita din unul sau mai multi operanzi
legati intre ei prin operatori. Operanzii pot fi constante sau variabile.
Exemplu:
4.5+2*a
unde 4.5, 2, a sunt operanzi iar + si * sunt operatori

6
Noţiunea de tip de dată

TIPURI DE DATE
Def: Prin dată se înţelege orice entitate asupra căreia
calculatorul poate opera.
Ex: int x; /*x - este o dată asupra căreia se operează*/

Un tip de dată precizează mulţimea valorilor pe care le poate lua o


dată, operaţiile care se pot efectua asupra ei şi lungimea de reprezentare
internă.
CLASIFICARE:
1.In funcţie de momentul in care se produc in fluxul de informaţie:
 date de intrare;
 date intermediare;
 date de ieşire.
2.In funcţie de valoare:
 date variabile;
 date constante.
3.In funcţie de modul de compunere:
 date elementare;
 structuri de date.
4.In funcţie de tip:
 date numerice;
 date logice;
 date şiruri de caractere.

Datele de intrare sunt acele valori (informatii) pe care un program le


primeste dintr-o sursa oarecare.

Datele de iesire reprezinta valorile pe care programul le genereaza ca


urmare a executarii instructiunilor sale si le transmite utilizatorului.

7
Operatori
Spre deosebire de alte limbaje ale căror operatori sunt în principal cuvinte
cheie, operatorii în C++ sunt în mare parte diferite semne care nu fac parte
din alfabet, dar sunt disponibile pentru toate tastaturile.
Clasificare:
Operatorul de atribuire
Operatori aritmetici
Operatori relationali
Operatori logici
Operatorul de concatenare a sirurilor de caractere
Operatorul de atribuire (=)
Atribuie o valoare pentru o anumita variabilă.
variabil ˘a = expresie;
Operatori aritmetici (+, -, *, /,%)
Cele cinci operaţii aritmetice sprijinite de limbajul C++ sunt:

adunare
+
- scădere
* înmulţire
div(catul
/
impartirii)
mod(restul
%
impartirii)
Operatori relationali (==,! =,>, <,> =, <=)
Pentru a face o comparaţie între două expresii putem folosi operatorii
relationali. +:

Egal cu
==
!= Nu este egal cu
> Mai mare decât
< Mai puţin de
>= Mai mare sau egal cu
Mai puţin de sau egală
<=
cu

8
Operatori logici (!, & &, | |)
OPERATORUL & &
si A F

A A F

F F F

OPERATORUL | |
sau A F

A A A

F A F

OPERATORUL !
! A F
F A

!Pentru a concatena 2 siruri de caractere se foloseste operatorul ‘+’ .

CITIREA ŞI SCRIEREA DATELOR


• Datele pot avea următoarele trasee:
sursa: tastatura → dest: monitor
sursa: tastatura → dest: fisier
sursa: fişier → dest: monitor
sursa: fişier → dest: fişier
• Def: Acest flux de date de la o sursă către o destinaţie poartă numele
de stream.

Stream-uri de intrare:
istrem-uri sursa: tastatura
ifstream-uri sursa: fişier oarecare
Stream-uri de ieşire:
ostrem-uri dest: monitorul
ofstream-uri dest: fişier oarecare
Fişierul <iostream.h> conţine definiţia următoarelor obiecte:
cin - face parte din clasa istream ce defineşte un stream de intrare

9
cout - face parte din clasa ostream ce defineşte un stream de ieşire
Pentru citire se va folosi operatorul ">>" şi pentru scriere se va folosi op. "<<".
În cazul scrierii construcţia endl face posibilă trecerea la o linie nouă.
EXEMPLU:
#include <iostream>

int main ()
{ int i;
cout << "Introduceti un numar intreg: ";
cin >> nr;
cout << "Numarul care l-ati introdus este " << nr;
cout << " si dublul numarului este " << nr*2 << ".\n";
return 0;
}

Structura unui program C/C++


//acesta este un comentariu; el nu influenteaza programul

//declararea headerelor
#include <iostream.h>

//declararea variabilelelor ....

//programul principal
int main()

{ // instructiunile programului ..........

return 1;}

//aici se incheie programul

Comentarii

10
Comentariile sunt explicatii facute de programator despre program; sunt
ignorate de compilator. C++, susţine două moduri de a introduce comentarii:

// comentariu linie

/* comentariu bloc */

Structuri De Control

Instructiunea compusa (instructiunea bloc)


Sintaxa: { declaratii de variabile;
instr1;
instr2;
.... }
Intr-un bloc se pot declara si variabile care pot fi accesate doar in corpul
blocului. Instructiunea bloc este utilizata in locurile in care este necesara
prezenta unei singure instructiuni, insa procesul de calcul este mai complex,
deci trebuie descris in mai multe secvente.
Structura liniara
Vom defini structura liniara astfel:
Daca S1, S2, S3,…Sn sunt structuri ( de orice tip), atunci:
S1
S2
S3
….
Sn

Constituie o strucura liniara reprezentata in


pseudocod.

S1

11
S2

S3

….

Sn

Constituie o strucura liniara reprezentata in schema logica.

Structura alternativa
In pseudocod : Dacă expresie
atunci
instrucţiune_1
altfel
instrucţiune_2

Efect :
Se evaluează expresia.
Dacă valoarea expresiei este adevărat, atunci se execută
instrucţiunea_1.
Dacă valoarea expresiei este fals, se execută
instrucţiunea_2.

Instrucţiunea repetitivă condiţională


anterior
Cât-timp expresie execută
Instrucţiune

12
Efect:
Pas 1 : se evaluează expresia ;
Pas 2 : dacă valoarea expresiei este fals, se iese din instrucţiunea Cât-timp;
dacă valoarea expresiei este adevărat, se execută instrucţiunea, apoi
se revine la Pas 1.

Instrucţiunea repetitivă
condiţională posterior
Execută
Instrucţiune
Cât-timp expresie;

Efect:
Pas 1 : se execută instrucţiune;
Pas 2 : se evaluează expresie ;
Pas 3 : dacă valoarea expresiei este fals se iese din instrucţiunea repetitivă;
dacă valoarea expresiei este adevărat, se revine la Pas 1;

Instrucţiunea repetitivă cu un
număr cunoscut de paşi
Pentru contor=expresie_1, expresie_2 execută
Instrucţiune
Efect :
Pas 1 : se evaluează expresia;
Pas 2 : se atribuie variabilei contor valoarea expresiei expresie_1;
Pas 3 : se evaluează expresie_2;
Pas 4 : dacă valoarea variabilei contor este mai mare decât valoarea expresiei
expresie_2, atunci se iese din instrucţiunea repetitivă. Dacă valoarea
variabilei contor este mai mică sau egală cu valoarea expresie expresie_2,
atunci se execută instrucţiune şi apoi se incrementează (se măreşte cu 1)
valoarea variabilei contor, după care revine la Pas 3.

13
PROBLEME

PROBLEMA 1:

ENUNŢ: 1.Se citeste un sir de numere naturale pana la intalnirea unei


valori a.
Sa se realizeze produsul acestor numere si sa se afiseze

IDEE ALGORITM:
1.Declaram variabilele;
2.Se citeste valoarea a;
3.Se initializeaza produsul cu 1;
4.Citim pe rand numere,fiecare numar va fi imulţit cu produsul
anterior .Se executa pana la intalnirea unei valori a.
5.Afisam produsul.
#include<iostream.h>
#include<conio.h>
int a, nr_citit, produs_numere;

void main(void)
{
clrscr();
cout<<"intruduceti a = : "; cin>>a;
produs_numere=1;
do {
cout<<"intruduceti numarul : "; cin>>nr_citit;
produs_numere*=nr_citit;
} while (nr_citit!=a);
cout<<"Produsul numerelor introduse este: "<<produs_numere;

14
PROBLEMA 2:

ENUNŢ:Se citesc din fişierul “Nr.txt” ,n numere naturale.Sa se afiseze in


fişierul “Nr.out”, câte numere sunt pozitive si câte numere sunt negative.

IDEE ALGORITM:1.Initializăm poz(contorul pentru numere pozitive) cu 0,şi


neg(contorul pentru numere negative) cu 0.
2.Citim pana la n;
3.La citire verificăm fiecare număr,dacă este mai mare ca 0 creştem cu o
unitate poz,altfel creştem cu o unitate neg.
4.Afisăm câte numere sunt pozitive si câte negative.

#include<fstream.h>
ifstream fin("nr.txt");
ofstream fout("nr.out");
int poz,neg,x,n;
int main()
{ fin>>n;
for(int i=1;i<=n;i++)
{fin>>x;
if(x>=0)
poz++;
else
neg++;
}
fout<<"Numere negative sunt "<<neg<<" ";
fout<<"Numere positive sunt "<<poz<<" ";
fin.close();
fout.close();
return 0;
}

PROBLEMA 3.

15
ENUNŢ: Se citeşte un vector cu n componente numere intregi. Să se
calculeze media aritmetică a componentelor vectorului.

IDEE ALGORITM: 1.Se citeşte n,apoi vectorul.


2.Se calculează suma elementelor din vector.
3.Se va afişa suma elementelor vectorului/n,adică media
aritmetică a numerelor.

#include<iostream.h>
int n,v[100],i;
float sum;
int main()
{ cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
for(i=1;i<=n;i++)
sum=sum+v[i];
cout<<"Media aritmetica a numerelo este "<<sum/n;
return 0;
}

16

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