PROGRAMUL DE STUDII DE LICENT A: MATEMATIC A [627570]
UNIVERSITATEA DE VEST DIN TIMIS OARA
FACULTATEA DE MATEMATIC A S I INFORMATIC A
PROGRAMUL DE STUDII DE LICENT A: MATEMATIC A
– INFORMATIC A
LUCRARE DE LICENT A
COORDONATOR: ABSOLVENT: [anonimizat] amnesc Rovent ,a George-Claudiu
TIMIS OARA
2018
UNIVERSITATEA DE VEST DIN TIMIS OARA
FACULTATEA DE MATEMATIC A S I INFORMATIC A
PROGRAMUL DE STUDII DE LICENT A: MATEMATIC A
– INFORMATIC A
Init,iere ^ n C
COORDONATOR: ABSOLVENT: [anonimizat] amnesc Rovent ,a George-Claudiu
TIMIS OARA
2018
Abstract
abstractul in limba engleza
3
Cuprins
Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Interfat , a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1 Algoritmul 9
1.1 Algoritmul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.1 Denit ,ie/ Caracteristici . . . . . . . . . . . . . . . . . . . . . . 9
1.1.2 Date de intrare/ies ,ire . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.3 Schema logic a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.4 Limbaj pseudocod s ,i limbaj de programare . . . . . . . . . . . . 10
1.2 Exemple de exercit ,ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Tpuri de date. Operatori logici. Structuri algoritmice 14
2.1 Tipuri de date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Operatori logici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Structuri algoitmice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1 Structura liniar a . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.2 Structura alternativ a simpl a (dac a…altfel) . . . . . . . . . . . . 15
2.3.3 Structura alternativ a compus a (selectie ^ n funct ,ie de variabil a) . 15
2.3.4 Structuri repetitive (un pas init ,ial s ,i nal, cu num ar cunoscut s ,i
necunoscut de pas ,i) . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Exemple de exercit ,ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Algoritmi de baza 17
3.1 Algoritmi de baz a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.1 Lucrul cu cifrele unui num ar ^ ntreg : operatorii DIV s ,i MOD . . 17
3.1.2 ^Imp art ,irea ^ n cifre a unui num ar ^ ntreg: suma cifrelor num arului 17
3.1.3 Vericarea unui num ar dac a este palindrom(1221; 2552; 343 etc.) 17
3.1.4 Vericarea unui num ar dac a este p atrat perfect . . . . . . . . . 18
3.1.5 Vericarea unui num ar dac a este prim . . . . . . . . . . . . . . 18
3.1.6 Vericarea unui num ar dac a este perfect (egal cu suma divizori-
lor s ai:6=1+2+3) . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.7 Determinarea cifrei minime/maxime dintre cifrele unui num ar
^ ntreg dat n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 Tablouri unidimensionale 21
4.1 Tablouri unidimensionale (vectori) . . . . . . . . . . . . . . . . . . . . 21
4.1.1 Declararea, citirea s ,i as ,area unui vector . . . . . . . . . . . . . 21
4.1.2 Determinarea minimului/maximului dintre elementele unui vec-
tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4
4.1.3 Vericarea unui vector dac a are elemente distincte . . . . . . . 22
4.1.4 Sortarea elementelor unui vector: metoda bulelor . . . . . . . . 22
4.1.5 C autarea unei chei k printe elementele unui vector(c autare secvent ,ial a
s,i cautare binar a) . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.6 Vectori ca mult ,imi s ,i operat ,ii cu mult ,imi: intersect ,ie, reuniune,
diferent , a, produs cartezian . . . . . . . . . . . . . . . . . . . . 24
4.1.7 Suma/produsul elementelor unui vector . . . . . . . . . . . . . 26
5 Tablouri bidimensionale 27
5.1 Tablouri bidimensionale (matrice) . . . . . . . . . . . . . . . . . . . . . 27
5.1.1 Declararea, citirea s ,i as ,area unei matrice . . . . . . . . . . . . 27
5.1.2 Determinarea minimului/maximului dintre elementele unei ma-
trice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1.3 Vericarea unei matrice dac a are elemente distincte . . . . . . . 27
5.1.4 Operat ,ii cu matrice: adunarea s ,i ^ nmult ,irea matricelor . . . . . 27
5.1.5 Interschimbarea a dou a linii sau coloane ^ ntr-o matrice . . . . . 27
5.1.6 Schimbarea liniilor cu coloanele ^ ntr-o matrice(transpusa matri-
cei) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1.7 Matrice p atratice: diagonala principal a, secundar a, zone delimi-
tate de cele dou a diagonale . . . . . . . . . . . . . . . . . . . . 27
6 Siruri de caractere 28
6.1 S ,iruri de caractere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.1.1 Funct ,ii des utilizate . . . . . . . . . . . . . . . . . . . . . . . . 28
6.1.2 Vericarea unui s ,ir de caractere dac a este palindrom (ex:"RADAR")
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.1.3 C autarea unui nume ^ ntr-un s ,ir de caractere . . . . . . . . . . . 28
6.1.4 Vericarea unei parole prin reintroducere . . . . . . . . . . . . 28
6.1.5 Inversarea a dou a cuvinte ^ ntr-un s ,ir de caractere . . . . . . . . 28
6.1.6 Criptarea simpl a a unui sir de caractere cu ajutorul unei chei
private . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.1.7 Decriptarea simpl a a unui s ,ir de caractere c^ and cunoas ,tem cheia
privat a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7 Tipuri de date structurate 29
7.1 Tipuri de date structurate . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.1.1 Denit ,ie/ clasicare . . . . . . . . . . . . . . . . . . . . . . . . 29
7.1.2 Structura simpl a: declarare, citire, as ,are . . . . . . . . . . . . 29
7.1.3 Structura compus a: declarare, citire, as ,are . . . . . . . . . . . 29
7.1.4 Structura cu variante: declarare, citire, as ,are . . . . . . . . . . 29
7.1.5 As ,area candidat ,ilor admis ,i la liceu ^ n ordine descresc atoare a
mediilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.1.6 Calculare stocuri de marf a necesare ^ n magazia de produse . . . 29
7.1.7 Calculare venituri din ore suplimentare lucrate, ad augate la sa-
lariul de baz a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8 Fisiere 30
8.1 Fisiere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8.1.1 Denit ,ie/ clasicare . . . . . . . . . . . . . . . . . . . . . . . . 30
5
8.1.2 Deschidere s ,ier ^ n modul citire . . . . . . . . . . . . . . . . . . 30
8.1.3 Deschidere s ,ier ^ n modul (re)scriere . . . . . . . . . . . . . . . 30
8.1.4 Deschidere s ,ier ^ n modul ad augare la sf^ ars ,it de s ,ier . . . . . 30
8.1.5 Citirea/scrierea unui vector dintr-un/intr-un s ,ier . . . . . . . 30
8.1.6 Citirea/scrierea unei matrice dintr-un/intr-un s ,ier . . . . . . . 30
8.1.7 Scrierea rezultatelor la admitere ^ ntr-un s ,ier sub form a tabelar a 30
6
Introducere
^In acest document este prezentat cuprinsul lucr arii de licent , a, o scurt a prezentare ^ n
care o sa vorbesc s ,i despre motivele care m-au f acut s a aleg aceast a tema, precum s ,i
scopul acesteia. Motivul ar urm atorul, o majoritate a student ,ilor care se ^ nscriu la
aceast a facultate nu au fost pe un prol de specialitate (aici m a includ s ,i pe mine) ori
au fost la mate-info, dar au avut ginionul s a nu aib a parte de o ^ ndrumare bun a, ceea
ce vreau s a spun este c a ^ n aces ,ti ani petrecut ,i la facultate am avut ocazia s a discut
cu o varietate de student ,i s ,i unii se ^ ncadrau ^ n aceste tipare, c^ at ,iva au vrut totus ,i
s a ^ ncerce s a treac a peste aceast a piedic a, dar tot ,i au dat peste aceeas ,i problem a, nu
au s ,tiut de unde s a ^ nceap a sau mai bine zis cu ce s a ^ nceap a, ecare au ^ nceput cum
au vrut, unii au ^ nceput direct s a ^ nvet ,e programe nes ,tiind ce semnic a acele linii de
cod…. De aceea eu am ales s a fac o licent , a ^ n care s a ^ i ^ ndrum, eu ind ca s ,i ei am
^ nv at ,at cu greu dar cu timpul am priceput ce ^ nseamn a de fapt s a ^ nvet ,i programare.
Aplicat ,ia este o interfat , a ^ n limbajul C++, care cont ,ine toate programele prezentate ^ n
licent , a s ,i le ruleaz a, pentru o ^ nt ,elegere mai bun a din partea persoanei care a ^ nceput
s a ^ nvet ,e din acest cont ,inut.
7
Interfat , a
interfat , a
8
Capitolul 1
Algoritmul
1.1 Algoritmul
1.1.1 Denit ,ie/ Caracteristici
Algoritmul reprezint a o metod a de rezolvare a unei probleme care pe baza unor date
de intrare cunoscute furnizeaz a datele de ies ,ire necesare (rezultatul sau rezultatele)
Caracteristici ale algoritmului:
Generalitatea { un algoritm trebuie s a resolve orice problema din clasa respectiv a;
Claritate { pe orice drum pornim de la start c atre stop ^ n schema logic a, trebuie s a
ajungem ^ n nal la stop;
Finitudine { datele de ies ,ire (rezultatele cerute) trebuie furnizate ^ ntr-un timp nit
convenabil de scurt;
1.1.2 Date de intrare/ies ,ire
Datele de intrare (D.I.) sunt acele date cunoscute init ,ial sub diverse formate (text,
imagine, sunet, video) pe baza c arora algoritmul calculeaz a datele de ies ,ire(rezultatele
cerute). Datele de ies ,ire (D.O.) reprezint a de fapt rezultatele care urmeaz a a i cal-
culate de c atre algoritm pornind de la datele de intrare cunoscute.
1.1.3 Schema logic a
Schema logic a este o reprezentare grac a a algoritmului folosind diverse guri geome-
trice (date mai jos) legate ^ ntr-un anumit mod (vezi exemple de exercit ,ii).
Schema logiga incepe cu start s ,i se termin a cu stop, avem s aget ,i unidirect ,ionale
care pot at^ at orizontale c^ at s ,i verticale, paralelogramul care se foloses ,te at^ at pentru
9
citirea datelor de intrare dar s ,i pentru as ,area datelor de ies ,ire, dreptunghiul care
este folosit pentru operat ,iunea de atribuire, rombul cu cele dou a ramuri \da" si \nu",
reprezint a de fapt o instructiune alternativ a simpl a, in programare este cunoscut ca
\if" ^ n interiorul rombului se trece condit ,ia dorit a (ex daca a<b, a>b, a=0 etc.), iar dac a
condit ,ia este adev arat a se merge pe ramura de \da" iar dac a este fals a se merge pe
ramura de \nu" s ,i se continu a algoritmul. O alt a structur a alternativ a este as ,a numita
structur a alternativ a compus a, ^ n limbajele de programare cunoscut a sub denumirea de
switch(C, C++), ^ n interiorul rombului trecem variabila, de exemplu v^ arsta, ^ n gura
de sus avem desenate s ,ase ramuri dar pot s ,i mai multe, numerotate de la \C1"
la "Cn", ecare "C" reprezint a de fapt o condit ,ie care trebuie ^ ndeplinit a pentru ca
algoritmul s a mearg a pe ramura respectiva, ^ n exemplul de mai sus cu v^ arsta condit ,iile
folosite pentru alegerea unei ramuri ar i: pentru "C1" dac a v^ arsta este mai mic a de
3 ani persoara este reprezentat a de un bebelus ,, pentru ramura "C2" dac a v^ arsta este
cuprins a^ ntre 3 -5 ani atunci persoana este reprezentat a de un pres ,colar, pentru ramura
"C3" dac a v^ arsta este cuprins a ^ ntre 6 { 17 ani atunci persoana este reprezentat a de
un elev…etc. Fiecare condit ,ie poate genera la r^ andul ei o anumit a cale spre nalizarea
algoritmului
1.1.4 Limbaj pseudocod s ,i limbaj de programare
Limbajul pseudocod este la fel ca s ,i schem a logic a, un mod de reprezentare prin
instruct ,iuni text a algoritmului, intruct ,iuni scrise astfel ^ nc^ at s a poat a traduse foarte
usor ^ n orice limbaj de programare. Limbajul pseudocod este universal, nu depinde de
limbajul de programare ales ulterior s ,i seam an a cu un fel de \limba englez a" a limba-
jelor de programare. Limbajul de programare reprezint a o multitudine de instructiuni
foarte precise scrise cu o anumit a sintax a specic ec arui limbaj astfel ^ nc^ at s a re
ecte
implementarea algoritmului g^ andit anterior. Exemple de limbaje de programare: C,
C++,CSharp, Visual Basic, Visual C++, Java, PHP etc.
1.2 Exemple de exercit ,ii
Problema 1: Fiind date dou a numere reale "a" s ,i "b", s a se caculeze suma lor "s".
Totdeauna ^ ncepem cu stabilirea datelor de intrare si a datelor de ies ,ire, astfel:
D.I.: a,b
D.O.: s
Limbaj pseudocod:
a , b , s r e a l e (am d e c l a r a t v a r i a b i l e l e )
C i t i r e a , b (am c i t i t D. I . )
s =a+b (am c a l c u l a t s )
A f i s a r e s (am a f i s a t s )
^Intotdeauna ^ ncepem cu stabilirea datelor de intrare s ,i ies ,ire astfel: Datele de intrare
sunt acele date cunoscute pe care noi le citim de la tastatur a de exemplu si acele
date in cazul nostrum sunt "a" s ,i "b", cele doua numere reale. Datele de iesire pot
i una sau mai multe in functie de problema care o avem de rezolvat, cu alte cuvinte
datele de iesire reprezinta rezultatul sau rezultatele pe care trebuie sa le furnizeze acest
10
algoritm. Construirea schemei logice, pornim de la start, dupa care tragem o sageata in
jos (sensul de parcurgere al algoritmului), dupa citim de la tastatura cele doua variabile
carora le atribuim valorile "a=5" s ,i "b=6" (atentie a nu se confunda atribuirea care in
limbaj de programare se noteaza cu "=" si egal care se noteaza cu"=="), dupa care
mergem mai departe cu operatia de calcul sau atribuire("s" primeste valoarea "a+b" .
Dupa ce ii atibui valoarea lui "s" practice calculatorul va stii cat este rezultatul, dar nu
va stii operaturul sau cel care foloseste acel program, de aceea este necesar sa asam
variabila "s" pe ecran, odata ce am asat variabila pe ecran, inseamna ca algoritmul
si-a atins scopul, a calculat datele de iesire si a atins scopul.Dupa care mergem in
continuare catre stop si astfel algoritmul a luat sfarsit. Acelasi program am putea sa il
transcriem in pseudocod. Pentru orice program trebuie vericate cele trei caracteristici
ale algoritmului, daca este un algoritm general, daca este un algoritm clar si daca este
un algoritm nit. Daca cel putin una dintre aceste caracteristici nu este respectata nu
avem de aface cu un algoritm, deci trebuie sa reluam procesul de gandire.
Problema 2: Fiind date doua numere reale "a" s ,i "b", sa se aseze cel mai mare
dintre ele.
Totdeauna incepem cu stabilirea datelor de intrare si a datelor de iesire, astfel
D.I.: a,b
D.O.: max
Limbaj pseudocod:
a , b , max r e a l e
C i t i r e a , b
Daca a >=b atunci
max<a
A l t f e l
max = b
A f i s a r e max
Explicatia : Pornim de la start o sa citim de la tastatura cele doua numere \a" si
\b" , dupa care urmeaza o instructiune alternativa simpla, in interiorul careia vom
pune conditii, comparam pe a cu b sa vedem care este mai mare si avem doua ramuri,
una de \DA" si una de \NU", intotdeauna incepem cu ramura de \DA". Si acum ce
se intampla pe ramura de \DA", daca instructiunea \a>=b" atunci maxim primeste
valoarea lui a cu alte cuvinte \a" este cel mai mare, de aici trebuie sa mergem mai
departe, dar ne oprim pentru a merge inapoi si a verica si ramura de \NU", daca
instructiunea \a>=b" nu este adevarata atunci maximul primeste valoarea lui b, cu
alte cuvinte \b" este mai mare decat \a" si maximul ia valoarea lui \b".Mergem mai
departe si asam valoarea acestui maxim pe monitor pentru ca utilizatorul sa stie care
este acest maxim, dupa care ajungem la stop unde se termina programul.
Problema 3: Sa se resolve ecuatia de gradul 1 de forma ax+b=0.
Totdeauna incepem cu stabilirea datelor de intrare si a datelor de iesire, astfel :
D.I.: a,b
D.O.: x
Explicatia : Pornim de la start dupa care o sa citim de la tastatura cele doua
numere \a" si \b" , dupa care urmeaza o instructiune, daca \a<>b"(semnul \<>" sau
11
\=! \ inseamna diferit), ne intrebam daca \a" este diferit de zero sau nu, ne intrebam
acest lucru deoarece daca am scoate \x" direct ar \-b" trecut in partea cealalta a
egalului supra \a", dar daca \a=0" din citire, orice impartire la zero nu are sens si
atunci algoritmul ar da o eroare. Si acum revenind la instructiune daca \a" este diferit
de zero mergem pe ramura de \DA" si putem calcula necunoscuta \x" adica \ {b"
impartit la a, unde a diferit de zero are sens sa introducem valoarea reala calculata in
\x" . Am a
at necunoscuta dar trebuie sa o si asam si pe monitor, dupa cu se vede
in schema logica asarea se face pe ramura de \DA" a instructiunii alternative simple,
deoarece pe ramura de \NU", daca a=0 \x \ nu se mai poate calcula si nici asa
deoarece dupa cum am mai discutat impartirea la zero nu are sens, deci pe ramura
\NU" o sa se aseze doar mesajul \Eroare" si mergem mai departe dup ace una dintre
conditiile instructiunii unei ramuri a fost executat si ajungem la stop unde se incheie
programul.
Problema 4: La un ceas se cunosc ora si minutul. Daca este ora xa ceasul bate
de cate ori este ora, daca este \si jumatate" ceasul bate de 5 ori, astfel ceasul nu bate.
Totdeauna incepem cu stabilirea datelor de intrare si a datelor de iesire, astfel:
D.I.: ora, min
D.O.: nrb(nr.de batai)
Limbaj pseudocod:
ora min , nrb numere i n t r e g i
C i t i r e ora , min
Daca min=0 atunci
nrb = ora
A l t f e l
Daca min=30 atunci
nrb =5
A l t f e l
nrb=0
A f i s a r e nrb
Explicatia schemei logice, pornim de la start. Pornim de la start si vom citi cele doua
variabile \ora" si \min", dupa care ajung in instructiune si ma intreb cand este ora xa
(atunci cand min=0), deci conditia ma itreba daca este ora xa si daca da mergem pe
ramura de \DA", atunci numarul de batai va primi valoarea ora, cu alte cuvinte daca
ora este 10 numarul de batai va 10.Imediat dup ace am rezolvat cu ramura de nu
ma duc pe ramura de \NU", minutul nu este zero pe ramura de \NU", si daca nu este
zero ma intreb daca nu este 30, adica si jumatate, aici o sa intram in alta instructiune,
daca este si jumatate, adica daca \min=30" mergem pe ramura de \DA" si numarul
de batai va de 5 conform problemei, iar daca minutul nu este si jumatate si nu este
nici zero atunci inseamna ca ceasul nu bate deci numarul de batai primeste valoarea
zero.Algoritmul merge mai departe si asam numarul de batai, iar dupa algoritmul se
opreste.
E. Sa se aseze cel mai mare numar dintre trei numere reale a,b,c.
Totdeauna incepem cu stabilirea datelor de intrare si a datelor de iesire, astfel:
D.I.: a,b,c
D.O. max (cel mai mare numar)
12
Limbaj pseudocod:
a , b , c r e a l e
C i t i r e a , b , c
Daca a >=b atunci
Daca a >=c atunci
max =a
A l t f e l
max =c
A l t f e l
Daca b >=c atunci
max =b
A l t f e l
max =c
A f i s a r e max
Explicatia schemei logice, pornim de la start.
Pornim de la start si vom citi cele trei variabile \a" si \b", \c", dupa care ajungem
in instructiune si ne gandim, pentru a determina cel mai mare numar dintre cele trei
numere este logic,ca vatrebui sa le comparam unul cu celalalt, si incepem \a>=b" si
mergem pe ramura de \DA" atunci in aceasta instructiune trebuie sa comparam pe
\a>=c" sa vedem cum este \a" fata de \c", daca este adevarata mergem pe ramura de
\DA" unde max primeste valoarea \a" iar daca nu este mai mare mergem pe ramura de
\NU" unde max primeste valoarea \c".Acum o sa ne intoarcem la prima instructiune
si sa vedem ce se intampla daca a nu este mai mare decat b si mergem pe ramura
\NU", unde avem instructiunea \b>=c" sa vedem cum este \b" fata de \c", daca este
adevarata mergem pe ramura de \DA" unde max primeste valoarea \b" iar daca nu
este mai mare mergem pe ramura de \NU" unde max primeste valoarea \c". Dupa
care asam valoarea max si am terminat programul
13
Capitolul 2
Tpuri de date. Operatori logici.
Structuri algoritmice
2.1 Tipuri de date
Tipul de date REAL (ex: 11,345; 467,789, -253,457) Sunt acele numere care au ze-
cimale, pot pozitive sau negative. Tipul de date INTREG (ex:34; 563; 6742;-3)
Sunt acele numere far a zecimale, pot pozitive sau negative Tipul de date BOO-
LEAN(poate avea valoarea TRUE sau FALSE) Este un tip de date mai special care
r aspunde la ^ ntrebari precum("Vericat ,i valoarea de adev ar a propozit ,iei.Tipul
de date STRING(s ,ir de caractere, ex:"Hello world!") Este reprezentat de un s ,ir de
caractere.
2.2 Operatori logici
Operatorul logic "S ,I" (AND) este acel operator care unes ,te dou a sau mai multe
condit ,ii logice(au valoarea de adev ar TRUE sau FALSE) care trebuie satisf acute ^ n
acelas ,i timp (simultan). Exemplu: num arul 2 este simultan mai mare dec^ at 1 s ,i mai
mic dec^ at 3.Valoarea de adev ar este TRUE. Operatorul logic "SAU" (OR) este acel
operator care unes ,te dou a sau mai multe condit ,ii logice (au valoarea de adev ar TRUE
sau FALSE) dintre care trebuie s a e ^ ndeplinit a cel put ,in una. Exemplu: num arul 4
este mai mare decat 3 SAU num arul 4 este mai mare dec^ at 3. Valoarea de adev ar este
TRUE.
2.3 Structuri algoitmice
2.3.1 Structura liniar a
Structura linear a este asimilat a oric arui algoritm ^ n ansamblul lui dac a cont ,ine struc-
ture alternative s ,i/sau repetitive; ^ n orice algoritmn pornim de la START s ,i ajungem
la STOP, de aici rezult a linearitatea.
14
2.3.2 Structura alternativ a simpl a (dac a…altfel)
Structura alternativ a simpl a (dac a. . . altfel) este acea structur a care contine o condit ,ie
(simpl a sau compus a) care este sau nu ^ ndeplinit a s ,i/sau instruct ,iuni de urmat pe
ramurile de DA s ,i/sau NU. Ramura de NU (altfel) este obt ,ional a/ Daca este^ ndeplinit a
condis ,ia , algoritmul continua pe ramura DA, altfel continua pe ramura NU.
2.3.3 Structura alternativ a compus a (selectie ^ n funct ,ie de
variabil a)
Structura alternativ a compus a (select ,ie ^ n funct ,ie de o variabil a este acea structur a
care cont ,ine mai multe ramuri, ecare cu c^ ate o condit ,ie simpl a care este sau nu
^ ndeplinit a s ,i/sau instruct ,iuni de urmat pe ecare dintre ramuri. Ramura de NU
(altfel) este obt ,ional a. Dac a este ^ ndeplinit a condit ,ia, algoritmul continu a pe ramura
respectiv a, altfel continu a pe ramura de NU dac a nici o condit ,ie de pe una din celelalte
ramuri nu a fost ^ ndeplinit a.
2.3.4 Structuri repetitive (un pas init ,ial s ,i nal, cu num ar
cunoscut s ,i necunoscut de pas ,i)
Structurile repetitive sunt acele structure in cadrul carora una sau mai multe instruct ,iuni
sunt repetate de un anumit num ar de ori sau c^ at timp este^ ndeplinit a o condit ,ie(simpl a
sau compus a) sau p^ an a c^ and este ^ ndeplinit a o condit ,ie(simpl a sau compus a). Clasi-
care: a. Din punct de vedere al num arului de pas ,i pe care ^ l execute:
Structuri repetitive cu num ar cunoscut de pas ,i (ciclul "Pentru" sau "For")
Structuri repetitive cu num ar necunoscut de pas ,i (ciclul "C^ at timp.. Execut a" s ,i
ciclul "Repet a. . . P^ an a C^ and")
b. Din punct de vedere al locului unde se evalueaz a condit ,ia de ciclare(repetare):
Structuri repetitive cu test initial s ,i pas nal(ciclul "Pentru" si ciclul "Execut a. . . C^ at
Timp")
Structuri repetitive cu pas initial s ,i test nal(ciclul "Repet a. . . P^ an a C^ and")
Limbaj pseudocod:
Structuri repetitive cu test init ,ial s ,i pas nal
Ciclul "Pentru"
i , s i n t r e g i
s<
