SlideShare a Scribd company logo
Programarea calculatoarelor
Curs 2
Continut curs
•
•
•
•
•
•
•
•

Constante
Atribuire
Tipul enumerare
Decizie
Ciclu
Operatori
Precedenta operatorilor
Operatori
–
–
–
–

Relationali
Aritmetici
Pe biti
Unari

• Conversii de tip
Constante
• constante simbolice
#DEFINE NUME
TEXT_CE_INLOCUIESTE_NUMELE
- se inlocuieste ad-literam NUME in program cu
textul de dupa
#DEFINE TRUE 1
#DEFINE FALSE 0
• conventie – litere mari
Constante
•
•
•
•
•
•
•

12, 0; asimilate int
12345678900, 12L – asimilate long
‘x’, ‘n’– char
“sir de caractere”,”” – char* (string)
123u – unsigned
12.5, 1.5e-2 – double
12.4F - float
Declaratii
• toate variabilele trebuie declarate inainte de utilizare
• declaratia contine tipul si una sau mai multe variabile
de acelasi tip ex: int x,y,z;
• se poate efectua initializare la declarare
– ex: char sir*30+=“un sir”; int x=4;

• const poate specifica faptul ca o variabila nu va fi
schimbata
– ex: const x=5;

• o variabila neinitializata va avea o valoare aleatoare
Expresie
• Expresie primara = variabila sau constanta sau sir de
caractere sau (expresie)
• ex:
– x sau 5 sau “sir de caractere” sau (x+5)

• expresie = expresii primare carora li se aplica operatori
• ex:
– x+5
– 5%2
– (x+5)-(x-5)

• http://www.csci.csusb.edu/dick/samples/c.syntax.html
#string_literal
Atribuire
• variabila = expresie;
• se evalueaza expresia si valoarea acesteia
devine noua valoare a variabilei
• x= y; //atribuie variabilei x valoarea lui y
• Varianta din Pascal x:=y;
Tipul enumerare
• defineste un set de constante numite de tip
intreg
• sintaxa: enum nume_tip {
identificator,
(sau) identificator=valoare
}
• ex:
enum bool {false,true};
enum bool a; //declara un element a de tip bool
Tipul enumerare exemple
Instructiune
• ; (instructiunea vida)
• expresie;
– x+5; y=x;

• apel de functie;
– printf(“%dn”,x);

• bloc de instructiuni
– {}
Bloc de instructiuni
• bloc de instructiuni = mai multe instructiuni grupate
intre { }
• bloc de instructiuni este echivalent cu o singura
instructiune
• nu se pune ; dupa }
• exemplu:
int main()
{ //inceputul blocului de instructiuni
printf(“hello worldn”);
return 0;
} //sfarsitul blocului de instructiuni
Decizie
• if (expresie1)
– instructiune1

• else
– instructiune2

• else este optional

• instructiune1 se executa
daca expresie1 este
evaluata la o valoare
diferita de 0
• instructiune2 se executa
daca expresie1 este
evaluata la 0
Decizie (2)
• A programmer is heading out to the grocery
store, so his wife tells him "get a gallon of
milk. If they have eggs, get a dozen." He
returns with 12 gallons of milk.
Decizie (3) – if … else if
• structura folosita cand se pot lua mai multe
decizii diferite in functie de valoarea expresiei
if (delta<0)
printf(“ecuatia nu are radacini reale”);
else if (delta==0)
printf (“ecuatia are 1 radacina reala egala cu
%f“, …);
else //cazul default – acopera toate celelalte p
printf(“ecuatia are 2 radacini reale egale cu %f
si %f”, …);
Operatori aritmetici
• +,-,*,/,%
• / => impartire intreaga (returneaza catul) daca
operanzii sunt intregi
• / => impartire daca macar unul dintre operanzi
este real
• % - restul impartirii
• / intreaga si % nu au rezultate bine definite in
standard pentru operanzi negativi
exemple operatori aritmetici
Operatori relationali
• operatori relationali: >, <, >=,<=
• operatori egalitate: ==, !=
• observatie:
– x==0 verifica daca x are valoarea 0 si intoarce 1
daca acest lucru se intampla
– x=0 atribuie lui x valoarea 0 si intoarce aceasta
valoare
Operatori logici
• && - si
• || - sau
• ! – not (operator unar)
e1

e2

e1&&e2

e1||e2

0

0

0

0

0

1 (!=0)

0

1

1 (!=0)

0

0

1

1 (!=0)

1 (!=0)

1

1

• Observatie
– prin e1=1 intelegem e1 diferit de 0
Operatorul ternar
• Conditie?valoare intoarsa in caz true: valoare
rezultata in caz false
• c?x:y
• Ex:
– a%2?”impar”:”par”
– x>0?”strict pozitiv”:”negativ sau 0”

• echivalent cu
if(c)
result=x;

else
result=y ;
Exemplu operatori logici + operator
ternar

• "Are you going to sit and type in front of that
thing all day or are you going out with me?" -programmer's girlfriend. "Yes" -- programmer
Operatori pe biti
• pot fi aplicati doar pe variabilele de tip
intreg(char, short, int, long)
• & - and pe biti
• | - sau pe biti
• ^ - xor
• << - shift stanga (inmultire cu 2)
• >> - shift dreapta (impartire intreaga la 2)
Operatori pe biti exemple
Operatori unari
• - => -x;
• incrementare/decrementare
– i++; i--;

• i++ vs ++i
– int a, b=3;
– a=b++;
=>a=3;

int a, b=3
a=++b;
=>a=4
Precedenta operatorilor
• tabelul din Kernighan&Ritchie p. 50
a op b op c = (a op b) op c daca
op are asociativitate stanga
a op b op c = a op (b op c) daca
op are asociativitate dreapta
Instrucțiuni repetitive – for (;;)
• for( [initializare];[conditie continuare];[actualizari])
instructiune
• initializare – expresie care se executa o singura data inainte
de a se executa instructiunea
• conditie continuare – este evaluata inainte de fiecare
iteratie
– daca are valoarea true (diferit de 0) se executa instructiunea
– daca lipseste conditia se considera ca este adevarata
– daca are valoarea 0 se incheie iteratia, nu se mai executa
instructiunea si se trece la instructiunea urmatoare

• instructiune – se executa daca se evalueaza conditie
continuare la true
• actualizari – expresie care se executa dupa instructiune.
for - exemplu
• A programmer heads out to the store. His wife
says "while you're out, get some milk.“
He never came home.

• important – sa ne asiguram ca se ajunge sa se
iasa din for
Instructiuni repetitive while
• while (expresie) instructiune
• se evalueaza expresie
– daca este false nu se executa instructiunea
– daca este true
• se executa instructiunea si se reia procesul
exemple while
• ex1:
int i=1;
while (i>5) printf(“%d”,i); //nu se executa
niciodata printf
• ex2:
int i=3;
while (i>0){ printf(“%dn”,i); i--;}
ce afiseaza?
instructiuni repetitive do… while
• do instructiune while (expresie);
• singurul tip de instructiune repetitiva dupa
care se pune ;
• expresia este evaluata dupa ce se executa
instructiunea (test final)

More Related Content

PPTX
Ce mă fac când o să fiu mare - optiuni pentru o cariera in IT
PPTX
Linked Open Data in Romania
PPT
C5 Javascript French
PPTX
IPW 2eme course - HTML
PPTX
IPW HTML course
PPT
Usability and accessibility on the web
PPT
C5 Javascript
PPT
IPW 3rd Course - CSS
Ce mă fac când o să fiu mare - optiuni pentru o cariera in IT
Linked Open Data in Romania
C5 Javascript French
IPW 2eme course - HTML
IPW HTML course
Usability and accessibility on the web
C5 Javascript
IPW 3rd Course - CSS

Viewers also liked (14)

PPT
Introduction dans la Programmation Web Course 1
PPT
C5 Javascript
PPT
utilisabilite et accessibilite au web
PPT
HTML 5 - intro - en francais
PPT
IPW Course 3 CSS
PPT
Intro to HTML5
PPT
Introduction to Web Programming - first course
PPTX
Css+html
PPT
Présentation html5
PDF
Cours HTML/CSS
PDF
Beautiful CSS : Structurer, documenter, maintenir
PDF
Application web php5 html5 css3 bootstrap
PPTX
Initiation au css
PPTX
Cours CSS feuilles de style en cascade- mars 2015
Introduction dans la Programmation Web Course 1
C5 Javascript
utilisabilite et accessibilite au web
HTML 5 - intro - en francais
IPW Course 3 CSS
Intro to HTML5
Introduction to Web Programming - first course
Css+html
Présentation html5
Cours HTML/CSS
Beautiful CSS : Structurer, documenter, maintenir
Application web php5 html5 css3 bootstrap
Initiation au css
Cours CSS feuilles de style en cascade- mars 2015
Ad

More from Vlad Posea (14)

PPTX
Design thinking
PPTX
Talentul meu – mersul pe bicicletă
PPTX
Programarea calculatoarelor - Limbajul C
PPTX
Social semantic web
PDF
Ghidul Bobocului de la Facultatea de Automatica si Calculatoare vers 2011-2012
PDF
Json tutorial
PDF
Javascript ajax tutorial
PPT
Studiu Referitor La Insertia Pe Piata Muncii (1)
PPT
Aplicații Web Semantice - Descriere Proiect
PPT
Stagii In Strainatate
PPT
Student si/sau Angajat
PDF
Ghidul bobocului de la Facultatea de Automatica si Calculatoare
PPT
Tips & Tricks Proiect
PPT
Boboc Advisory Board Intalnire 1
Design thinking
Talentul meu – mersul pe bicicletă
Programarea calculatoarelor - Limbajul C
Social semantic web
Ghidul Bobocului de la Facultatea de Automatica si Calculatoare vers 2011-2012
Json tutorial
Javascript ajax tutorial
Studiu Referitor La Insertia Pe Piata Muncii (1)
Aplicații Web Semantice - Descriere Proiect
Stagii In Strainatate
Student si/sau Angajat
Ghidul bobocului de la Facultatea de Automatica si Calculatoare
Tips & Tricks Proiect
Boboc Advisory Board Intalnire 1
Ad

Programarea calculatoarelor c2

  • 2. Continut curs • • • • • • • • Constante Atribuire Tipul enumerare Decizie Ciclu Operatori Precedenta operatorilor Operatori – – – – Relationali Aritmetici Pe biti Unari • Conversii de tip
  • 3. Constante • constante simbolice #DEFINE NUME TEXT_CE_INLOCUIESTE_NUMELE - se inlocuieste ad-literam NUME in program cu textul de dupa #DEFINE TRUE 1 #DEFINE FALSE 0 • conventie – litere mari
  • 4. Constante • • • • • • • 12, 0; asimilate int 12345678900, 12L – asimilate long ‘x’, ‘n’– char “sir de caractere”,”” – char* (string) 123u – unsigned 12.5, 1.5e-2 – double 12.4F - float
  • 5. Declaratii • toate variabilele trebuie declarate inainte de utilizare • declaratia contine tipul si una sau mai multe variabile de acelasi tip ex: int x,y,z; • se poate efectua initializare la declarare – ex: char sir*30+=“un sir”; int x=4; • const poate specifica faptul ca o variabila nu va fi schimbata – ex: const x=5; • o variabila neinitializata va avea o valoare aleatoare
  • 6. Expresie • Expresie primara = variabila sau constanta sau sir de caractere sau (expresie) • ex: – x sau 5 sau “sir de caractere” sau (x+5) • expresie = expresii primare carora li se aplica operatori • ex: – x+5 – 5%2 – (x+5)-(x-5) • http://www.csci.csusb.edu/dick/samples/c.syntax.html #string_literal
  • 7. Atribuire • variabila = expresie; • se evalueaza expresia si valoarea acesteia devine noua valoare a variabilei • x= y; //atribuie variabilei x valoarea lui y • Varianta din Pascal x:=y;
  • 8. Tipul enumerare • defineste un set de constante numite de tip intreg • sintaxa: enum nume_tip { identificator, (sau) identificator=valoare } • ex: enum bool {false,true}; enum bool a; //declara un element a de tip bool
  • 10. Instructiune • ; (instructiunea vida) • expresie; – x+5; y=x; • apel de functie; – printf(“%dn”,x); • bloc de instructiuni – {}
  • 11. Bloc de instructiuni • bloc de instructiuni = mai multe instructiuni grupate intre { } • bloc de instructiuni este echivalent cu o singura instructiune • nu se pune ; dupa } • exemplu: int main() { //inceputul blocului de instructiuni printf(“hello worldn”); return 0; } //sfarsitul blocului de instructiuni
  • 12. Decizie • if (expresie1) – instructiune1 • else – instructiune2 • else este optional • instructiune1 se executa daca expresie1 este evaluata la o valoare diferita de 0 • instructiune2 se executa daca expresie1 este evaluata la 0
  • 13. Decizie (2) • A programmer is heading out to the grocery store, so his wife tells him "get a gallon of milk. If they have eggs, get a dozen." He returns with 12 gallons of milk.
  • 14. Decizie (3) – if … else if • structura folosita cand se pot lua mai multe decizii diferite in functie de valoarea expresiei if (delta<0) printf(“ecuatia nu are radacini reale”); else if (delta==0) printf (“ecuatia are 1 radacina reala egala cu %f“, …); else //cazul default – acopera toate celelalte p printf(“ecuatia are 2 radacini reale egale cu %f si %f”, …);
  • 15. Operatori aritmetici • +,-,*,/,% • / => impartire intreaga (returneaza catul) daca operanzii sunt intregi • / => impartire daca macar unul dintre operanzi este real • % - restul impartirii • / intreaga si % nu au rezultate bine definite in standard pentru operanzi negativi
  • 17. Operatori relationali • operatori relationali: >, <, >=,<= • operatori egalitate: ==, != • observatie: – x==0 verifica daca x are valoarea 0 si intoarce 1 daca acest lucru se intampla – x=0 atribuie lui x valoarea 0 si intoarce aceasta valoare
  • 18. Operatori logici • && - si • || - sau • ! – not (operator unar) e1 e2 e1&&e2 e1||e2 0 0 0 0 0 1 (!=0) 0 1 1 (!=0) 0 0 1 1 (!=0) 1 (!=0) 1 1 • Observatie – prin e1=1 intelegem e1 diferit de 0
  • 19. Operatorul ternar • Conditie?valoare intoarsa in caz true: valoare rezultata in caz false • c?x:y • Ex: – a%2?”impar”:”par” – x>0?”strict pozitiv”:”negativ sau 0” • echivalent cu if(c) result=x; else result=y ;
  • 20. Exemplu operatori logici + operator ternar • "Are you going to sit and type in front of that thing all day or are you going out with me?" -programmer's girlfriend. "Yes" -- programmer
  • 21. Operatori pe biti • pot fi aplicati doar pe variabilele de tip intreg(char, short, int, long) • & - and pe biti • | - sau pe biti • ^ - xor • << - shift stanga (inmultire cu 2) • >> - shift dreapta (impartire intreaga la 2)
  • 22. Operatori pe biti exemple
  • 23. Operatori unari • - => -x; • incrementare/decrementare – i++; i--; • i++ vs ++i – int a, b=3; – a=b++; =>a=3; int a, b=3 a=++b; =>a=4
  • 24. Precedenta operatorilor • tabelul din Kernighan&Ritchie p. 50 a op b op c = (a op b) op c daca op are asociativitate stanga a op b op c = a op (b op c) daca op are asociativitate dreapta
  • 25. Instrucțiuni repetitive – for (;;) • for( [initializare];[conditie continuare];[actualizari]) instructiune • initializare – expresie care se executa o singura data inainte de a se executa instructiunea • conditie continuare – este evaluata inainte de fiecare iteratie – daca are valoarea true (diferit de 0) se executa instructiunea – daca lipseste conditia se considera ca este adevarata – daca are valoarea 0 se incheie iteratia, nu se mai executa instructiunea si se trece la instructiunea urmatoare • instructiune – se executa daca se evalueaza conditie continuare la true • actualizari – expresie care se executa dupa instructiune.
  • 26. for - exemplu • A programmer heads out to the store. His wife says "while you're out, get some milk.“ He never came home. • important – sa ne asiguram ca se ajunge sa se iasa din for
  • 27. Instructiuni repetitive while • while (expresie) instructiune • se evalueaza expresie – daca este false nu se executa instructiunea – daca este true • se executa instructiunea si se reia procesul
  • 28. exemple while • ex1: int i=1; while (i>5) printf(“%d”,i); //nu se executa niciodata printf • ex2: int i=3; while (i>0){ printf(“%dn”,i); i--;} ce afiseaza?
  • 29. instructiuni repetitive do… while • do instructiune while (expresie); • singurul tip de instructiune repetitiva dupa care se pune ; • expresia este evaluata dupa ce se executa instructiunea (test final)