Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
19.11.2013
1
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
03.09.1919
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Curs 9
19.11.2013
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
7. Instrucţiunile limbajului C(continuare) 7.2. Instrucţiuni structurate
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
7.2.1. Structura asociativă
� în cadrul acesteia se grupează mai multe instrucţiuni rezultând astfel o secvenţă sau o instrucţiune compusă;
� instrucţiunile componente se execută secvenţial;� blocul de instrucţiuni dintr-un program este o
structură asociativă care începe cu { şi se termină cu }
� în cazul în care o secvenţă include o altă secvenţă, perechile { } se grupează după principiul parantezelor;
� separatorul ; este obligatoriu după fiecare instrucţiune.
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
7.2.2. Structuri selective�implică alegerea, în funcţie de o
anumită valoare, a uneia sau mai multor variante din program
�IF
�SWITCH
19.11.2013
2
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea SWITCH - sintaxa
� selecţie multiplă
� se alege una dintre mai multe variante în funcţie de valoare unei expresii
� Sintaxa instrucţiunii SWITCH este:SWITCH (selector) {
case s1:bloc1;break;case s2:bloc2;break…default: bloc;
}
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea SWITCH - sintaxa
� ‘selector’ - expresie care reprezintă elementul decizional (deosebit de elementul decizional de la if, care era o condiţie)
� s1,s2,… - constante; constantele şi selectorul trebuie să fie de acelaşi tip, iar cosntantele trebuie să fie distincte.
� bloc1,bloc2,… - instrucţiunile care se execută în funcţie de rezultatul evaluării selectorului.
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea SWITCH
�La o parcurgere a instrucţiunii switch se va executa doar o variantă din cele n (în cazul în care este precizat break) sau dacă nici una nu corespunde valorii selectorului există alternativa default.
PC36.C
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea SWITCH - diagrama
Evaluarea selectorului s
s == s1
s == s2
s == sn
bloc
bloc1
bloc2
blocn
......
Adevărat
Adevărat
Adevărat
Fals
Fals
Fals
Discuţie break
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea SWITCH - exemple�PC37.C- program care realizează prelucrări
asupra caracterelor citite de la tastatură. Se tastează câte un caracter. Dacă este altceva decât cifră se semnalează eroare. Dacă este 0,1,2 se neglijează, pentru restul numerelor pare se calculează pătratul, iar pentru impare cubul valorii numerice corespunzătoare şi se afişează. Programul se termină dacă se tastează litera B.
�PC38.C PC39.C
19.11.2013
3
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
7.2.3. Structuri ciclice
� implică reluarea execuţiei unui bloc de instrucţiuni în mod repetat în funcţie de o anumită condiţie;
� condiţia poate fi evaluarea unei relaţii (adevărată sau falsă) sau poate defini un anumit domeniu de valori
� 3 categorii de structuri ciclice� cu test iniţial WHILE� cu test final DO-WHILE� cu contor FOR (cu test iniţial)
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea WHILE - sintaxa
WHILE (expresie) instrucţiune�instrucţiune se va executa atât timp cât
valoarea logică a expresiei este adevărată� dacă expresia este falsă instrucţiunea nu se va
executa niciodată� pentru a ieşi din ciclare în cadrul instrucţiunii (sau
în expresie) trebuie să se modifice valoarea expresiei (altfel se poate intra în cicluri infinite)
const n=5;…int i,s;...i=1;s=0;while (i < n) s=s+i;...
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea WHILE - diagrama
�PC40.C
expresie instrucţiuneAdevărat
Fals
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea DO-WHILE - sintaxa
DO bloc WHILE (expresie)�‘bloc’ - este format dintr-una sau mai
multe instrucţiuni separate prin ; �‘bloc’ va fi executat în mod repetat atât
timp cât ‘expresie’ va fi adevărată�‘bloc’ se va executa cel puţin o dată
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea DO-WHILE - diagramaDO bloc WHILE (expresie)
expresie
bloc
Adevărat
Fals
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea DO-WHILE - exemple
�PC41.C – suma cu while
�PC42.C – suma cu do-while
�dacă într-o instrucţiune do-while apare o altă instrucţiune do-while, cuvintele do, while se grupează conform principiului parantezelor.
19.11.2013
4
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea DO-WHILE - exemple
�PC43.C prelucrează un text,calculând numărul cuvintelor şi al propoziţiilor din care este alcătuit; textul se termină cu caracterul #
� restricţii: � cuvintele sunt alcătuite numai din litere, fiind
despărţite prin orice caracter diferit de literă� propoziţiile sunt formate din cel puţin 1 cuvânt şi se
termină cu punct� la începutul propoziţiilor se neglijează orice alt
caracter în afară de literă sau #
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea FOR - sintaxa
FOR (expresie1;expresie2;expresie3) instrucţiune
� ‘instrucţiune’ se va executa atât timp cât condiţia precizată în ‘expresie2’ este adevărată, începând cu o valoare precizată în ‘expresie1’ cu modificări aduse în ‘expresie3’;
� testul pentru ciclul for se face iniţial, iar în cazul în care condiţia din ‘expresie2’ nu este adevărată, ciclul nu se va executa niciodată.
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Instrucţiunea FOR
�În general, ‘expresie1’ şi ‘expresie3’ sunt atribuiri sau apeluri de funcţii, iar ‘expresie2’ este o relaţie. Oricare dintre cele trei poate lipsi, dar punctul şi virgula trebuie menţinute.
�PC44-45-46.C; PC46a,b.C
8. Funcţii
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Funcţii
� Atunci când se scriu programe complexe estenecesară utilizarea unităţilor de program careîn C sunt referite ca funcţii.
� Ele reprezintă prelucrări unitare care pot fiutilizate şi în alte programe.
� Funcţiile sunt specifice programăriistructurate.
� Pot fi standard sau definite de utilizator.
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Funcţii
�Un program în limbaj C este format dintr-unprogram principal în care sunt definite funcţiicare se apelează din funcţia main() sau uneledin altele.
� În momentul când se apelează o funcţie,programul va continua cu executareainstrucţiunilor din funcţia respectivă, iar lafinalul acesteia se va reveni la instrucţiuneacare urmează după apel în funcţia în care s-afăcut apelul. PC47.C
19.11.2013
5
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Atunci când apelează o funcţie se realizează următoarele acţiuni:
� Se întrerupe execuţia instrucţiunilor dinunitatea apelantă.
� Se realizează corespondenţa între numeleparametrilor formali şi valorile sau adreseleargumentelor.
� Se creează variabile locale funcţiei curezervarea locaţiilor de memorie.
� Se execută instrucţiunile din funcţie.� Se desfiinţează variabilele locale.� Se revine în unitatea apelantă.
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Avantajele utilizării funcţiilor� Pentru operaţii care pot fi executate pentru diferite
variabile de acelaşi tip, declararea funcţiilor care ledescriu se face o singură dată, iar apelul ori de câteori este nevoie.
� Se obţine un program modularizat - mai uşor descris şi depanat.
� Funcţiile pot fi utilizate şi în alte programe decât celeîn care au fost declarate; aceasta se poate realiza în Cfolosind extern.
� Funcţiile pot “ascunde” detalii ale operaţiilor dinprogram (încapsulare), pe care nu este nevoie să lecunoaştem, clarificând astfel întregul şipermiţând modificări mai uşoare.
Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013
Sumar C10
�Funcții� Declarație, definiție, apel� Parametri formali și actuali� Transmiterea de parametri