Professional Documents
Culture Documents
PROCEDURAL
Bogdan Alexe
bogdan.alexe@fmi.unibuc.ro
2. Variabile i constante
3. Expresii
i
operatori
Programa
cursului
q Introducere
q Tablouri
i
pointeri
Algoritmi.
Legtura
dintre
tablouri
i
pointeri
Limbaje
de
programare.
AritmeXca
pointerilor
Introducere
n
limbajul
C.
Structura
unui
program
C.
Alocarea
dinamic
a
memoriei
Complexitatea
algoritmilor.
Clase
de
memorare
q Fundamentele
limbajului
C
q iruri
de
caractere
Tipuri
de
date
fundamentale.
Variabile.
Constante.
Funcii
specice
de
manipulare.
Operatori.
Expresii.
Conversii.
Instruciuni
de
control
q Fiiere
text
i
iere
binare
DirecXve
de
preprocesare.
Macrodeniii.
Funcii
specice
de
manipulare.
Funcii
de
ciXre/scriere.
Etapele
realizrii
unui
program
C.
q Structuri
de
date
complexe
i
autoreferite
q Tipuri
derivate
de
date
Denire
i
uXlizare
Tablouri.
iruri
de
caractere.
Structuri,
uniuni,
cmpuri
de
bii,
enumerri.
q Funcii
(2)
Pointeri.
Funcii
cu
numr
variabil
de
argumente.
Preluarea
argumentelor
funciei
main
din
linia
de
q Funcii
(1)
comand.
Declarare
i
denire.
Apel.
Metode
de
trasmitere
a
Programare
generic.
paramerilor.
Pointeri
la
funcii.
q Recursivitate
Cursul
de
azi:
1. Operatori
i
expresii.
Conversii
2. Instruciuni
de
control
3. DirecXve
de
preprocesare.
Macrodeniii
4. Etapele
realizrii
unui
program
n
C
Evaluarea
expresiilor
q operatorul sizeof
q operatorul virgul
q evaluarea secvenial a expresiilor (de la stnga la dreapta)
q valoarea ultimei expresii din nlnuire este valoarea expresiei compuse
q cel mai puin prioritar din lista de preceden
Ordinea
de
preceden
i
asociaXvitate
Conversii
implicite
Ce
aeaz
programul
alturat?
Conversii
implicite
q context
q este permis combinarea mai multor operanzi de tipuri diferite ntr-o
singur expresie
q problema
q operatorii binari, care se aplic asupra a doi operanzi, cer ca tipul
operanzilor s fie acelai pentru a putea efectua operaia
q alternativ
q conversii explicite: (tip)
Conversii
implicite
-
reguli
q cnd apar ntr-o expresie tipurile de date char i short (att
signed i unsigned) sunt convertite la tipul int (promovarea
ntregilor)
Ce
aeaz
programul
alturat?
Cursul
de
azi:
1. Operatori
i
expresii.
Conversii
2. Instruciuni
de
control
3. DirecXve
de
preprocesare.
Macrodeniii
4. Etapele
realizrii
unui
program
n
C
Instruciuni
de
control
q reprezint:
q elementele fundamentale ale funciilor
q comenzile date calculatorului
q instruciuni de baz
q instruciunea expresie
q instruciunea vid
q instruciuni secveniale/liniare
q instruciuni decizionale/selective simple sau multiple
q instruciuni repetitive/ciclice/iterative
q instruciuni de salt condiionat/necondiionat
q instruciunea return
Instruciuni
de
control
q instruciuni compuse
q create prin combinarea instruciunilor de baz
q programare structurat
q Teorema Bhm-Jacopini: fluxul de control poate fi exprimat folosind
doar trei tipuri de instruciuni de control:
q instruciuni secveniale
q instruciuni decizionale
q instruciuni repetitive
Instruciunea
expresie
q format dintr-o expresie urmat de semnul ;
q expresie;
q cele mai frecvente
q se bazeaz pe expresii de atribuire, aritmetice i de incrementare /
decrementare
q adic expresii care au efecte secundare: schimb valoarea unui
operand
instruciune
q {secven de declaraii i instruciuni }
Instruciuni
decizionale/selecXve
q ramific fluxul de control n funcie de valoarea de adevr a
expresiei evaluate
q forma general:
if (expresie)
{bloc de instructiuni 1};
else
{bloc de instructiuni 2};
q forma general:
if (expresie1)
if (expresie2) {bloc de instructiuni 1};
else {bloc de instructiuni 2};
else
{bloc de instructiuni 2};
Instruciunea
IF
q instruciuni IF n cascad
q testeaz succesiv mai multe condiii implementnd o variant de selecie
multipl
q forma general:
if (expresie1) {bloc de instructiuni 1};
else if (expresie2) {bloc de instructiuni 2};
else if (expresie3) {bloc de instructiuni 3};
else {bloc de instructiuni N};
Instruciunea
SWITCH
q efectueaz selecia multipl
q util cnd expresia de evaluat are mai multe valori
posibile
q forma general
switch (expresie){
case val_const_1: {bloc de instructiuni 1};
case val_const_2: {bloc de instructiuni 2};
..
case val_const_n: {bloc de instructiuni N};
default: {bloc de instructiuni D};
}
Instruciunea
SWITCH
q poate fi ntotdeauna reprezentat prin instruciunea IF
q de regul prin instruciuni IF cascadate
q forma general
switch (expresie){
case val_const_1: bloc de instructiuni 1;
case val_const_2: bloc de instructiuni 2;
..
case val_const_n: bloc de instructiuni N;
default: bloc de instructiuni D;
}
Instruciunea
SWITCH
q mod de funcionare i constrngeri:
q ramura default este opional iar poziia relativ a acesteia printre celelalte
ramuri nu este relevant
q Observaii
q valorile care particip n expresia de control s fie iniializate nainte
q evitare ciclului infinit
Instruciunea
WHILE
q Observaii
q Dac o expresie nu mai este adevrat nu se mai continu cu evaluarea expresiilor urmtoare
Instruciunea
WHILE
Ce
aeaz
secvena
de
cod
alturat?
CICLEAZA!!!
Instruciunea
DO-WHILE
q efectueaz n mod repetat o instruciune atta timp ct
expresia de control este adevrat
qforma general:
for (expresii_init;expresie_ control;expresie_ajustare)
{bloc de instructiuni}
Ce
aeaz
secvena
de
cod
alturat?
Aeaz
6
Instruciunile
break,
conXnue
i
goto
q realizeaz salturi
q ntrerup controlului secvenial al programului i continu execuia dintr-un
alt punct al programului sau chiar provoac ieirea din program
2. Instruciuni
de
control
3. DirecXve
de
preprocesare.
Macrodeniii
4. Etapele
realizrii
unui
program
n
C
Preprocesare
n
limbajul
C
q preprocesarea apare naintea procesului de compilare
q preprocesarea asigur
q includerea coninutului fiierelor (de obicei a fiierelor header)
q definirea de macrouri (macrodefiniii)
q compilarea condiionat
Constante
simbolice
i
macro-uri
q directiva utilizat este #define
2. Instruciuni
de
control
3. DirecXve
de
preprocesare.
Macrodeniii
4. Etapele
realizrii
unui
program
n
C
De
la
codul
surs
la
programe
executabil
q etape
q editarea codului surs
q salvarea fiierului cu extensia .c
q preprocesarea
q efectuarea directivelor de preprocesare
q compilarea
q verificarea sintaxei
q nu este nc executabil !