Sunteți pe pagina 1din 16

...

.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
.
......
Fundamentele programrii
Curs 4
ef lucr.dr.ing. GENGE Bla
Universitatea Petru Maior, Departamentul de Informatic
Trgu Mure, Romnia
bela.genge@ing.upm.ro
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Algoritmi i scheme logice
Ciclul de via a unui program (sau a unui sistem n general) urmeaz
n general urmtoarele faze:
Analiza problemei
Proiectarea algoritmului (intrri, ieiri, secvena pailor)
Implementarea algoritmului
Vericarea corectitudinii implementrii
Testare, mentenan
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Descrierea algoritmilor
Algoritmii pot descrii prin intermediul:
Limbajului natural
Pseudocodului
Schemelor logice
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Elementele unei scheme logice
Blocul de nceput/sfrit
Blocul de instruciune, e.g., atribuire, incrementare
Blocul de decizie, e.g., if
Blocul de citire/scriere
Elementul de legtur ntre blocuri
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exemplu - min/max dou numere
Se citesc dou numere de la tastatur. S se determine maximul
dintre ele.
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exemplu - min/max dou numere
Se citesc dou numere de la tastatur. S se determine maximul
dintre ele.
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Cicluri
Cicluri cu test iniial
Cicluri cu test nal
Exemplu: aarea numerelor de la 1 la n (citit de la tastatur)
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Cicluri
Cicluri cu test iniial
Cicluri cu test nal
Exemplu: aarea numerelor de la 1 la n (citit de la tastatur)
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exerciii
S se traseze schema logic i s se implementeze un program C care
determin valoarea unei funcii f denit astfel:
f(x) =

x, x > 0
2x, x < 0
1, x = 0
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exerciii
Ex. 1: S se traseze schema logic pentru un program ce determin
toate numerele pare de la 1 la n (citit de la tastatur)
Ex. 2: S se traseze schema logic pentru un program ce aeaz
toate literele alfabetului (minuscule)
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exerciii
Ex. 1: S se traseze schema logic pentru un program ce determin
toate numerele pare de la 1 la n (citit de la tastatur)
Ex. 2: S se traseze schema logic pentru un program ce aeaz
toate literele alfabetului (minuscule)
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Instruciuni de decizie multipl
Reprezint o generalizare a instruciunii de decizie simpl
Modul de execuie este urmtorul:
Se evalueaz expresia
Se compar pe rnd val. expr cu val_1, ...
Dac val. expr coincide cu una din valori, atunci se execut secv. Dac
secv. e terminat cu break, atunci se trece la instr. urmtoare dup
switch. Altfel, se execut secvena urmtoare.
Dac val. expr. nu coincide cu nici o valoare se execut secv. default.
switch(expr)
{
case val_1: secventa_1; [break;]
case val_2: secventa_2; [break;]
...
case val_n: secventa_n; [break;]
[default: secventa]
}
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exemplu
S se determine dac un caracter citit de la tastatur este o vocal
(alfabetul Englezesc)
.
Exemplu de cod
..
......
scanf("%c", &c);
switch(toupper(c))
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': printf("Caracterul este o vocal\n"); break;
default: printf("Caracterul este o consoan\n");
}
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exemple - care este corect (pentru aceeai problem)?
.
Exemplu 1
..
......
switch(toupper(c)){
case 'A': break;
case 'E': break;
case 'I': break;
case 'O': break;
case 'U': printf("Caracterul este o vocal\n"); break;}
.
Exemplu 2
..
......
switch(toupper(c)){
case 'A': printf("Caracterul este o vocal\n"); break;
case 'E': printf("Caracterul este o vocal\n"); break;
case 'I': printf("Caracterul este o vocal\n"); break;
case 'O': printf("Caracterul este o vocal\n"); break;
case 'U': printf("Caracterul este o vocal\n"); break;}
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exemple - este corect?
.
Exemplu
..
......
switch(toupper(c)){
case 'A'==c&&'E'==c:
case 'I'==c&&'O'==c:
case 'U': printf("Caracterul este o vocal\n"); break;}
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exerciiu
S se implementeze secvena de cod ce veric dac un caracter citit
de la tastatur este:
Cifr
Vocal
Semn de punctuaie
ntr-o prim faz se va construi schema logic.
Implementarea se va realiza att cu if ct i cu switch.
ef lucr.dr.ing. GENGE Bla Fundamentele programrii

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