PROGRAMUL DE STUDII DE LICENT A: MATEMATIC A [627569]

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

Cuprins
1 Introducere 5
1.1 Descrierea Problemei, Motivatia alegerii temei, Ce s-a facut (ce aplica-
tii/ tool-uri exista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Limbaj C 6
2.1 Algoritmul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 De nit ,ie/ Caracteristici . . . . . . . . . . . . . . . . . . . . . . 6
2.1.2 Date de intrare/ies ,ire . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.3 Schema logic a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.4 Limbaj pseudocod s ,i limbaj de programare . . . . . . . . . . . . 7
2.1.5 Exemple de exercit ,ii . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Tpuri de date. Operatori logici. Structuri algoritmice . . . . . . . . . . 10
2.2.1 Tipuri de date . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2 Operatori logici . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3 Structuri algoitmice . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.4 Exemple de exercit ,ii . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Algoritmi de baz a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1 Lucrul cu cifrele unui num ar ^ ntreg : operatorii DIV s ,i MOD . . 12
2.3.2 ^Imp art ,irea ^ n cifre a unui num ar ^ ntreg: suma cifrelor num arului 12
2.3.3 Veri carea unui num ar dac a este palindrom(1221; 2552; 343 etc.) 12
2.3.4 Veri carea unui num ar dac a este p atrat perfect . . . . . . . . . 13
2.3.5 Veri carea unui num ar dac a este prim . . . . . . . . . . . . . . 13
2.3.6 Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Tablouri unidimensionale (vectori) . . . . . . . . . . . . . . . . . . . . 13
2.4.1 Declararea, citirea s ,i a s ,area unui vector . . . . . . . . . . . . . 13
2.4.2 Determinarea minimului/maximului dintre elementele unui vec-
tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.3 Veri carea unui vector dac a are elemente distincte . . . . . . . 14
2.4.4 Sortarea elementelor unui vector: metoda bulelor . . . . . . . . 14
2.4.5 C autarea unei chei k printe elementele unui vector(c autare secvent ,ial a
s,i cautare binar a) . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.6 Vectori ca mult ,imi s ,i operat ,ii cu mult ,imi: intersect ,ie, reuniune,
diferent , a, produs cartezian . . . . . . . . . . . . . . . . . . . . 15
2.4.7 Suma/produsul elementelor unui vector . . . . . . . . . . . . . 16
2.5 Tablouri bidimensionale (matrice) . . . . . . . . . . . . . . . . . . . . . 16
2.5.1 Declararea, citirea s ,i a s ,area unei matrice . . . . . . . . . . . . 16
2.5.2 Determinarea minimului/maximului dintre elementele unei ma-
trice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3

2.5.3 Veri carea unei matrice dac a are elemente distincte . . . . . . . 17
2.5.4 Operat ,ii cu matrice: adunarea s ,i ^ nmult ,irea matricelor . . . . . 17
2.5.5 Interschimbarea a dou a linii sau coloane ^ ntr-o matrice . . . . . 17
2.5.6 Schimbarea liniilor cu coloanele ^ ntr-o matrice(transpusa matri-
cei) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.7 Matrice p atratice: diagonala principal a, secundar a, zone delimi-
tate de cele dou a diagonale . . . . . . . . . . . . . . . . . . . . 18
2.6 S ,iruri de caractere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6.1 Funct ,ii des utilizate . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6.2 Veri carea unui s ,ir de caractere dac a este palindrom (ex:"RADAR")
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6.3 C autarea unui nume ^ ntr-un s ,ir de caractere . . . . . . . . . . . 19
2.6.4 Veri carea unei parole prin reintroducere . . . . . . . . . . . . 19
2.6.5 Inversarea a dou a cuvinte ^ ntr-un s ,ir de caractere . . . . . . . . 19
2.6.6 Criptarea simpl a a unui sir de caractere cu ajutorul unei chei
private . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6.7 Decriptarea simpl a a unui s ,ir de caractere c^ and cunoas ,tem cheia
privat a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.7 Tipuri de date structurate . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.7.1 De nit ,ie/ clasi care . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8 Fisiere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8.1 De nit ,ie/ clasi care . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8.2 Deschidere s ,ier ^ n modul citire . . . . . . . . . . . . . . . . . . 20
2.8.3 Deschidere s ,ier ^ n modul (re)scriere . . . . . . . . . . . . . . . 21
2.8.4 Deschidere s ,ier ^ n modul ad augare la sf^ ars ,it de s ,ier . . . . . 21
3 Descrierea aplicatiei (tool-uri folosite, buc at ,i din cod) 22
3.1 Aplicat ,ia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 Buc at ,i din cod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4 Exemple de rulare a aplicatiei 23
4.1 Exemple de rulare a aplicatiei si print screen-uri . . . . . . . . . . . . . 23
5 Concluzii 24
4

Capitolul 1
Introducere
1.1 Descrierea Problemei, Motivatia alegerii temei,
Ce s-a facut (ce aplicatii/ tool-uri exista
^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 pro l 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 semni c 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.
5

Capitolul 2
Limbaj C
2.1 Algoritmul
2.1.1 De nit ,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;
2.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.
2.1.3 Schema logic a
Schema logic a este o reprezentare gra c 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
6

citirea datelor de intrare dar s ,i pentru a s ,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
2.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 speci c 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.
2.1.5 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
algoritm. Construirea schemei logice, pornim de la start, dupa care tragem o sageata in
7

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 a sam
variabila "s" pe ecran, odata ce am a sat 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 veri cate 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 a seze 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 veri ca 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 a sam 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
\=! \ inseamna diferit), ne intrebam daca \a" este diferit de zero sau nu, ne intrebam
8

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 a sam si pe monitor, dupa cu se vede
in schema logica a sarea 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 a sa
deoarece dupa cum am mai discutat impartirea la zero nu are sens, deci pe ramura
\NU" o sa se a seze 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 :
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 a sam numarul de batai, iar dupa algoritmul se opreste.
E. Sa se a seze 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)
9

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:
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 a sam valoarea max si am terminat programul
2.2 Tpuri de date. Operatori logici. Structuri al-
goritmice
2.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("Veri cat ,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.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
10

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.2.3 Structuri algoitmice
Structura liniar a
Structura linear a este asimilat a oric arui algoritm ^ n ansamblul lui dac a cont ,ine struc-
turi alternative s ,i/sau repetitive; ^ n orice algoritmn pornim de la START s ,i ajungem
la STOP, de aici rezult a linearitatea.
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
condit ,ia , algoritmul continu a pe ramura DA, altfel continu a pe ramura NU.
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.
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")
2.2.4 Exemple de exercit ,ii
A. Care sunt tipurile de date corecte pentru grupele de variabile de mai jos?
11

a<4 ; b <3 ; s <a+b ; Raspuns : a , b , s i n t r e g i
a< 23 ,9; b <4 ; s <ab ; Raspuns : a , b , s r e a l e
p<4 mod 2=0; Raspuns : p boolean (TRUE sau FALSE)
b<7=4; c <23=0; d <(45) SI (2+4=9; Raspuns : b , c , d Boolean (TRUE sau FALSE)
a<" Hello World ! " ; b <a<>0; Raspuns : a s t r i n g ( s i r de c a r a c t e r e ) , b boolean (TRUE sau FALSE)
a<4000; b <7000; c <a<=b ; Raspuns : a , b i n t r e g i ; c boolean (TRUE sau FALSE)
a< 65 ,13; b=23 ,21; c <TRUE; Raspuns : a , b r e a l e ; c boolean (TRUE sau FALSE)
a<2 ; b <1 ; c<ab ; Raspuns : a , b , c i n t r e g i
B. Care este valoarea de adev ar a condit ,iilor compuse (expresiilor) de mai jos?
(3<5) SI (4 >6) SAU (3 >9)
Raspuns : TRUE s i FALSE sau FALSE =FALSE sau FALSE = FALSE
(4>=6 SAU 5 <0) SI (2 <=5 SI 7 <=2+9)
Raspuns : ( FALSE sau FALSE) s i (TRUE s i TRUE) = FALSE s i TRUE = FALSE
(7<=34/2+12 SI 9 >220/5) SAU (30=0)
Raspuns : ( TRUE s i TRUE) sau (FALSE) = TRUE sau FALSE = TRUE
(78<204+2) SI (20=22)
Raspuns : (TRUE) s i (FALSE) = FALSE
2.3 Algoritmi de baz a
2.3.1 Lucrul cu cifrele unui num ar ^ ntreg : operatorii DIV s ,i
MOD
DIV – furnizeaz a c^ atul ^ ntreg al ^ mp art ,irii a dou a numere ^ ntregi a s ,i b;
Ex: 5 div 2 = 2; 7 div 2 = 3; 4 div 2 = 2; 455 div 10 = 45; 455 div 100 = 4; 455 div
1000 = 0.
MPD – furnizeaz a restul ^ mp art ,irii a dou a numere ^ ntregi a s ,i b;
Ex: 5 mod 2 = 1; 7 mod 3 = 1; 12 mod 2 = 0; 576 mod 10 = 7; 576 mod 100 = 67;
567 mod 1000 =567.
2.3.2 ^Imp art ,irea ^ n cifre a unui num ar ^ ntreg: suma cifrelor
num arului
Vom calcula suma cifrelor num arului folosind operatorii DIV s ,i MOD
2.3.3 Veri carea unui num ar dac a este palindrom(1221; 2552;
343 etc.)
Acest algoritm este unul dintre algoritmii elementari si se refer a la veri carea unui
num ar dac a este la fel citit invers, adic a dac a "abcba" este egal cu inversul lui este pa-
lindrom. ^In programare ne folosim de DIV s ,i MOD pentru a ot ,ine ultimul num ar/cifr a,
iar cifra/litera respectiv a ind memorat a ^ n noul num ar construit, dup a care se va t aia
acea liter a, pentru a nu o mai citi o dat a, repet^ andu-se acest ciclu p^ an a ce sirul ajunge
la 0.
12

2.3.4 Veri carea unui num ar dac a este p atrat perfect
Un num ar este p atrat perfect dac a este egal cu suma divizorilor s ai, f ar a num arul
^ nsus ,i.^In programare se a
 a divizorii, iar dac a se ^ mpart exact la 2, se adun a, iar dac a
nu nu se adun a la sum a.
2.3.5 Veri carea unui num ar dac a este prim
Un num ar este prim dac a are doi divizori, num arul 1 s ,i num arul ^ n sine.
2.3.6 Exercitii
Cu ajutorul operatorilor DIV s ,i MOD scriet ,i expresia corect a conform cerint ,elor de
mai jos:
n<2345798;
S a se scrie o expresie care s a extrag a primele 2 cifre ale num arului n. R aspuns: n div
100000 = 23
n<231457196;
S a se scrie o expresie care s a extrag a ultimele 3 cifre ale num arului n. R aspuns: n
mod 1000 = 196
n<123455798;
S a se scrie o expresie care s a extrag a a cincea s ,i a sasea cifr a ale num arului n. R aspuns:
(n div 1000) mod 100=55
n<231145794;
S a se scrie o expresie care s a extrag a suma primelor 3 cifre ale num arului n. R aspuns:
(n div 1000000) mod 10 + (n div 10000000) mod 10 + (n div 10000000) = 1+3+2=6
2.4 Tablouri unidimensionale (vectori)
2.4.1 Declararea, citirea s ,i a s ,area unui vector
Un tablou unidimensional (vector) este un tip de variabil a mai special ^ n sensul c a
este caracterizat de un num ar de locat ,ii (sertare), ecare astfel de locat ,ie memor^ and
o valoare de acelas ,i tip( ^ ntreg, real, boolean, string etc.) ^ n loc s a declar 1000 de
variabile de exemplu , putem declara o singur a variabil a vector cu 1000 de sertare ceea
ce este cu mult mai avantajos. Pentru a declara un vector avem nevoie s a declar am n
^ ntreg care reprezint a num arul de elemente al vectorului s ,i vectorul ^ nsus ,i, de exemplu
v[10] de tip ^ ntreg.
n, v[10] ^ ntregi sau n ^ ntreg sau n ^ ntreg
v[30] real v[120] string
13

Pentru a s ,area unui vector vom folosi un ciclu "Pentru" atunci c^ and s ,tim dinainte
num arul necunoscut de pas ,i care se opres ,te din citire atunci c^ and este sau nu^ ndeplinit a
o condit ,ie.
n , v [ 1 0 ] , i i n t r e g i n , v [ 1 0 ] , i i n t r e g i
Pentru i <1 ,n executa i <1
A f i s a r e v [ i ] Repeta
A f i s a r e v [ i ]
i<i+1
Pana Cand v [ i 1] =0
n<i1
2.4.2 Determinarea minimului/maximului dintre elementele
unui vector
Presupunem ca primul element al vectorului este maximul. Apoi, pe m asur a ce citim
c^ ate un element al vectorului, il compar am cu maximul init ,ial s ,i dac a acest element
este mai mare dec^ at maximul, acesta devine noul maxim.
2.4.3 Veri carea unui vector dac a are elemente distincte
Presupunem init ,ial c a vectorul are elemente distincte p= TRUE . Compar am apoi
ecare element al vectorului cu cele de dup a el s ,i dac a g asim m acar o egalitate^ nseamn a
c a presupupnerea init ,ial a a fost gres ,it a p = FALSE.
2.4.4 Sortarea elementelor unui vector: metoda bulelor
Sortarea elementelor vectorului ^ nseamn a aranjarea acestor elemente ori ^ n ordine
cresc atoare ori descresc atoare
2.4.5 C autarea unei chei k printe elementele unui vector(c autare
secvent ,ial a s ,i cautare binar a)
Elementele vectorului nu sunt sortate. Presupunem c a nu vom g asi cheia k, gasit =
FALSE. La parcurgerea ec arui element al vectorului facem comparat ,ia acestuia cu k
s,i dac a exist a egalitate atunci gasit = TRUE s ,i putem a s ,a eventual pozit ,ia ^ n vector
i.
14

C autarea binar a:
Elementele vectorului sunt sortate. ^Imp art ,im vectorul ^ n doua prin a s ,area pozit ,iei de
mijloc s ,i vom c auta cheia k compar^ and-o totdeauna cu valoarea corespunz atoare ele-
mentului din vector de la pozit ,ia de mijloc v[mij] pentru a putea determina jum atatea
^ n care s a caut am ^ n continuare. Aceast a jum atate este ^ mp art ,it a din nou ^ n dou a prin
a
area noii pozit ,ii de mijloc "mij" relu^ andu-se comparat ,ia lui k cu v[mij]. Ciclul se
termin a c^ and am g asit cheia k sau c^ and nu mai avem ce sa ^ njum at at ,im (pozis ,ia de
start ^ n vector " li " devine mai mare sau egal a cu pozit ,ia de nal din vector "ls".
2.4.6 Vectori ca mult ,imi s ,i operat ,ii cu mult ,imi: intersect ,ie,
reuniune, diferent , a, produs cartezian
Intersect ,ia a dou a mult ,imi:
Compar am ecare element din vectorul a[4] cu toate elementele din b[5] iar dac a g asim
o egalitate, cres ,tem contorul pozit ,iei (k, init ,ial 0) ^ n vectorul c[4] s ,i introducem va-
loarea elementului comun ^ n c[k] dup a care increment am k pentru a putea memora ^ n
c[k] un nou element comun. La nal a s , am vectorul c[4].
Diferent ,a a dou a mult ,imi:
Pentru ecare element din vectorul a[4] presupunem c a nu ^ l g asim ^ n b[5], astfel gasit
= FALSE.C^ and pentru ecare element din a[4] parcurgem b[5] s ,i compar am a[i] cu
b[j], dac ag asim o egalitate ^ nseamn a c a gasit = TRUE s ,i nu vom introduce acel a[i] ^ n
c[j]. Dac a gasit == FALSE atunci cres ,tem k ^ n vectorul c a4^  s ,i introducem caloarea
elementului comun ^ n c[k] dup a care increment am k pentru a putea memora ^ n c[k] un
nou element comun.
Reuniunea a dou a mult ,imi:
Reuniunea celor doi vectori a[4] s ,i b[5] poate avea un rezultat cu num ar maxim de
elemente c[9]. Logica algoritmului const a ^ n aceea c a reuniunea ^ nseamn a de fapt
diferent ,a a[4] – b[5] (ca mult ,imi) la care vom alipip elementele vectorului b[5].
Produsul cartezian a dou a mult ,imi: Lu am ecare element din vectorul a[2] s ,i ^ l
^ mperechem cu c^ ate un element din b[3]. Va rezulta vectorul c[6] construit din perechi
(a[i], b[j]).
15

2.4.7 Suma/produsul elementelor unui vector
Avem de calculat un bulg are de sum a pe care ^ l init ,ializ am ca de obicei cu 0, iar apoi
, ^ n ciclul de citire al vectorului , pe masur a ce citim c^ ate un element al acestuia, ^ l
adun am la bulg arele de sum a. La nal a s , am suma s.
2.5 Tablouri bidimensionale (matrice)
2.5.1 Declararea, citirea s ,i a s ,area unei matrice
Un tablou unidimensional (matrice) este un tablou caracterizat de un anumit num ar
de linii ( n) s ,i un anumit num ar de coloane (m) , la intersect ,ia acestora memor^ andu-se
elementele matricei aij unde i este contorul curent al liniei iar j este contorul curent al
coloanei. Astfel elementul a43 este elementul memorat la intersect ,ia liniei 3 cu coloana
4. Toate elementele matricei sunt de acelas ,i tip declarat.
Ex: n,m,a[3,4] ^ ntregi sau n,m ^ ntregi pentru ,a[3,4] reale sau n,m ^ ntregi pentru a[3,4]
string etc.
Citirea unei matrice se efectueaz a cu ajutorul a doi cicli "Pentru" unul pentru par-
curgerea pe linii si altul imbricat ^ n rimul, pentru parcurgerea pe coloane astfel ^ nc^ at
de ecare dat a se va citi un element aij. Num arul de linii ^ l not am de regul a cu n, iar
num arul de coloane ^ l not am cu m.
A s ,area unei matrice se efectueaz a cu ajutorul a doi cicli "Pentru" unul pentru par-
curgerea pe linii s ,i altul imbricat ^ n primul, pentru parcurgerea pe coloane astfel ^ nc^ at
de ecare dat a se va a sa un element aij,. Num arul de linii ^ l not am de regul a cu n ,
iar num arul de coloane ^ l not am cu m.
2.5.2 Determinarea minimului/maximului dintre elementele
unei matrice
Presupunem c a maximul init ,ial este a11 apoi compar am acest maxim init ,ial cu restul
elementelor matricei pe m asura citirii ec aruia dintre aceste elemente. Dac a vreun
element al matricei este mai mare(mai mic) dec^ at maximul(minimul) init ,ial atunci
acel element devine noul maxim(minim).
16

2.5.3 Veri carea unei matrice dac a are elemente distincte
Deoare am presupus c a matricea are 3 linii s ,i 4 coloane s ,i pentru a memora toate
elementele unei matrice ^ ntr-un vector avem nevoie de ^ nmult ,irea num arului de linii
cu num arul de coloane, memor am ^ n vectorul v[12] , matricea dat a s ,i ne folosim de
algoritmul de veri care de elemente distincte de la vectori din subcapitolul 2.4.
2.5.4 Operat ,ii cu matrice: adunarea s ,i ^ nmult ,irea matricelor
Elementele matricelor a[2,3] s ,i b[2,3] se adun a element cu element a11 + b11; a12 +
b12; a13 + b13 , a21 + b21; a22 + b22 etc. Va rezulta matricea c[2,3].
Elementele matricelor a[2,3] s ,i b[3,2] se ^ nmult ,esc dup a regul a, linie cu coloan a, adic a
prima linie din matricea a cu prima coloan a din matricea b ,prima linie din matricea
a cu a doua coloan a din matricea b, a doua linie din matricea a cu prima coloan a din
matricea b, a doua linie din matricea a cu a doua coloan a din matricea b. Este necesar
ca num arul de linii ale primei matrice s a e egal cu num arul de coloane a celei de-a
doua matrice. Va rezulta matricea c[2,2]
2.5.5 Interschimbarea a dou a linii sau coloane ^ ntr-o matrice
Pentru a realiza interschimbarea liniilor t1 si t2 din matricea a[3,2] ne folosim de
metoda paharelor cu variabila ajutatoare aux. Este su cient s a parcurgem pe coloane
matricea, astfel pentru ecare element se va inversa a[t1,i] cu a[t2,i] .
2.5.6 Schimbarea liniilor cu coloanele^ ntr-o matrice(transpusa
matricei)
Pentru a realiza inversarea liniilor cu coloanele pentru matricea a[3,2] ne folosim de o
nou a matrice t[2,3], astfel ^ nc^ at la citirea ec arui element al matricei a[3,2] parcurg^ and
matricea mai ^ nt^ ai pe coloane s ,i apoi pe linii, introducem acel element ^ n noua matrice
t[2,3]
17

2.5.7 Matrice p atratice: diagonala principal a, secundar a, zone
delimitate de cele dou a diagonale
Matrice p atratice : diagonala principal a, secundar a, zone delimitate de cele dou a dia-
gonale : i – indice linie, j – indice de coloan a, n – num ar de linii s ,i coloane
2.6 S ,iruri de caractere
2.6.1 Funct ,ii des utilizate
Un s ,ir de caractere poate asimilat unui tablou unidimensional(vector) ^ ns a se poate
citi s ,i a s ,aca orice variabil a, nu neap arat ca vector.
Fie s de tip s ,ir de caractere(s string), vom considera urm atoarele funct ,ii mai des uti-
lizate:
A) strlen(s) – num arul de caractere al s ,irului s
Exemplu: strlen(s)=4
B) strcmp(s,s2) – compar a dou a s ,iruri s si s2 dac a sunt identice ^ ntoarce TRUE (1),
iar dac a nu ^ ntoarce FALSE(0)
Exemplu: strcmp(s,s2)=FALSE
B) strcat(s,s2) – concatenarea s si s2 ^ n s ,irul s, adic a alipes ,te cele dou a s ,iruri
Exemplu: strcat(s,s2) are ca rezultat s="MAMABUNA"
C) strcat(s,s2,n) – concateneaz a s s ,i s2 ^ ncep^ and din pozit ,ia n ^ n s, unde n este pozit ,ia
de unde se ^ ncepe acea concatenare.
Exemplu: strncat(s,s2,2) are ca rezultat s = "MBUNA"
D) strcpy(s,s2) – este similar a atribuirii s=s2, adic a am luat primele trei caractere sin
s,irul s2 s ,i le-am atribuit lui s
Exemplu: strcpy(s,s2) ^ nseamn a c a s="BUN A"
E) strncpy(s,s2,n) – atribuie doar primele n caractere sin s2 ^ n s.
Exemplu: strncpy(s,s2,3) are ca rezultat s="BUN"
F) strlwr(s) – convertes ,te literele majuscule la litere normale
Exemplu: strlwr(s)="mama"
G) strtok(s3, delimitator) – ^ mparte s ,irul s ^ n cuvinte desp art ,ite de delimitator.
Exemplu: dac a s3="Ana" are mere". s ,i selimitator ="," atunci strtok(s3,delimitator)
18

ar avea ca efect nal:
Ana
are
mere
2.6.2 Veri carea unui s ,ir de caractere dac a este palindrom
(ex:"RADAR")
Un s ,ir de caractere este asemenea unui vector. Logica algoritmului este c a ^ ntre primul
s,i ultimul caracter al s ,irului, apoi ^ ntre al doilea s ,i penultimul caracter, al treilea si
antepenultimul caracter p^ an a c^ and g asim vreo diferent ,p sau nu mai avem ce compara.
2.6.3 C autarea unui nume ^ ntr-un s ,ir de caractere
Ne vom folosi de funct ,ia de c autare a unui s ,ir ^ n alt s ,ir strstr(s,nume) care ne va
^ ntoarce pozit ,ia primului caracter din nume ^ n s ,irul s ^ n caz c a acesta este g asit, altfel
va ^ ntoarce valoarea 0.
2.6.4 Veri carea unei parole prin reintroducere
Un s ,ir de caractere de tip parol a are de regul a caractere ascunse s ,i atunci c^ and o
introducem la ^ nregistrare ni se mai cere com rmarea acesteia. Vom folosi funct ,ia de
comparare a dou a s ,iruri strcmp(s,s2) care ca ^ ntoarce 1 sau TRUE dac a cele dou a
s,iruri de caractere (parole) sunt identice sau 0 (FALSE) ^ n caz contrar.
2.6.5 Inversarea a dou a cuvinte ^ ntr-un s ,ir de caractere
Ne vom folosi de funct ,iile de^ mp art ,ire^ n cuvinte dup a un delimitator strtok(s,delimitator)
dat s ,i de cea de concatenare a dou a iruri strcat(s,s2) astfel ^ nc^ at dup a ^ mp art ,irea ^ n
cuvinte vom reconstrui s ,irul ^ n s2 invers^ and primul cu ultimul cuv^ ant din s.
2.6.6 Criptarea simpl a a unui sir de caractere cu ajutorul unei
chei private
Un s ,ir de caractere ^ n clar ^ l putem cripta cu ajutorul unei chei private care trebuie
s a e cunoscut a s ,i de destinatarul mesajului pentru a-l putea decripta, dar s ,i de un
algoritm de creiptare pornind de la cheia privat a
2.6.7 Decriptarea simpl a a unui s ,ir de caractere c^ and cunoas ,tem
cheia privat a
Un s ,ir de caractere criptat ^ l putem decripta cu ajutorul unei chei private pe care
trebuie s a o cunoas ,tem de la expeditorul mesajului dar si cunosc^ and algoritmul de
criptare pornind de la cheia privat a.
19

2.7 Tipuri de date structurate
2.7.1 De nit ,ie/ clasi care
De nit ,ie
Structurile sunt tipuri de date structurate, personalizate du a necesit as ,i, ele cuprinz^ and
c^ ampuri (variabile) de diverse tipuri dar s ,i metode(act ,iuni).Cum ^ nc a nu am studiat
subprogramele, ne vom ocupa doar de structurile care cont ,in c^ ampuri (variabile) de
diverse timpuri. Motivul pentru care grup am aceste variabile ^ n structuri este acela
c a oper am mult mai simplu cu ele, iar programarea devine mult mai estetic a, lizibil a
s,i us ,or de ^ nt ,eles. Structura ne va face s a ^ nt ,elegem mai us ,or s ,i lucrul cu obiectele
^ n programarea orientat a pe obiecte. Dar s a nu anticip am. Ca exemplu, putem sa
ne g^ andim la o structur a ca un ansamblu de caracteristici s ,i act ,iuni pentru un anume
"obiect" care poate s ,i o " int , a". Astfel o "persoan a" poate caracterizat a de v^ arst a,
^ n alt ,ime, greutate, culoarea parului, locul nas ,terii etc. Putem spune c a grup^ and toate
aceste caracteristici ^ ntr-o structur a, vom de ni structura "persoan a".
Clasi care
Structurile sunt de trei tipuri: 1.Structuri simple 2.Structuri compuse 3.Structuri cu
variante
2.8 Fisiere
2.8.1 De nit ,ie/ clasi care
De nit ,ie
Fis ,ierele sunt tipuri de date utilizate pentru stocarea datelor de intrare s ,i/sau datelor
de ies ,ire pe un dispozitiv de stocare a datelor de intrare s ,i /sau datelor de ies ,ire de
pe un dispozitiv de stocare (de exemplu hard-diskul) ^ n scopul folosirii s ,i prelucr arii
ulterioare ale acestora. ^In acest mod nu mai suntem nevoit ,i s a relu am manual procesul
de citire a datelor s ,i s a rul am din nou rogramul entru a
area unui nou set de date
de ies ,ire coresupnz ator datelor de intrare introduse. Ne usureaz a foarte mult munca .
Intru-un fel, cu ajutorul s ,ierelor simultan cumva lucrul cu o baz a de date.
Clasi care
Fis ,ierele sunt de tipuri: 1. Fis ,iere text 2. Fisiere binare
2.8.2 Deschidere s ,ier ^ n modul citire
Declarare s ,ier:
f : text
Asignare s ,ier :
f ,C:nFolderndatein . txt
20

Prin asignare ^ nt ,elegem atas ,area variabilei logice f declarate ^ n program la sierul text
zic de pe dispozitivul de stocare.
Deschidere s ,ier ^ n modul citire:
Deschide ( f , c i t i r e )
Dup a ce am terminat lucrul cu s ,ierul trebuie sa il ^ nchidem:
Inchide f
2.8.3 Deschidere s ,ier ^ n modul (re)scriere
Declarare s ,ier:
f : text
Asignare s ,ier :
f ,C:nFolderndateout . txt
Deschidere s ,ier ^ n modul (re)scriere:
Deschide ( f , s c r i e r e )
Dup a ce am terminat lucrul cu s ,ierul trebuie sa il ^ nchidem, ^ n acest fel datele sunt
salvate ^ n lier
Inchide f
2.8.4 Deschidere s ,ier ^ n modul ad augare la sf^ ars ,it de s ,ier
Declarare s ,ier:
f : text
Asignare s ,ier :
f ,C:nFolderndateout . txt
Deschidere s ,ier ^ n modul ad augare la sf^ ars ,it de s ,ier
Deschide ( f , adaugare )
Dup a ce am terminat lucrul cu s ,ierul trebuie sa il ^ nchidem, ^ n acest fel datele sunt
salvate ^ n lier
Inchide f
21

Capitolul 3
Descrierea aplicatiei (tool-uri
folosite, buc at ,i din cod)
3.1 Aplicat ,ia
Aplicat ,ia este reprezentat a de o interfat , a realizat a ^ n limbajul C++, deoarece limbajul
C nu bene ciaz a de anumite tool-uri, cum ar de exemplu wxWidgets, ind folosit si
pentru realizarea aplicat ,iei.^In principiu aplicat ,ia este o interfat , a cu mai multe butoane
asociate programelor numerotate corespunz ator informat ,iei din capitolul 2, pentru a i
us,or de^ nt ,eles de c atre persoana care^ s ,i va dori s a^ nvete bazele program arii^ n limbajul
C. De ecare dat a c^ and persoana respectiv a v-a dori s a vad a ce face un program va
selecta butonul cu numele programului s ,i v-a ap asa pe butonul "run", dup a care se va
a s ,a codul programului ^ ntr-o caset a iar rezultatul aferent programului a s ,^ andu-se ^ n
alt a caset a al aturat a.
3.2 Buc at ,i din cod
22

Capitolul 4
Exemple de rulare a aplicatiei
4.1 Exemple de rulare a aplicatiei si print screen-
uri
23

Capitolul 5
Concluzii
Concluzia este c a oricine poate s a ^ nvet ,e programare dac a aloc a un anumit timp s ,i
dedicat ,ie dar s ,i o surs a de informat ,ii redactat a ^ ntr-un mod us ,or de ^ nt ,eles s ,i con-
sistent a. Niciodat a nu o s a e us ,or c^ and ^ ncepem ceva de la zero, dar ^ n timp ce
^ nv at , am s a facem anumite lucruri cu informat ,ia acumulat a ^ ntr-o anumit a perioad a,
totul o s a se schimbe, o sa devenim din ce ^ n ce mai curios ,i deoarece o s a is ,i plac a
s a te joci cu informat ,ia acumulat a, s a faci anumite aplicat ,ii interactive, s ,.a. Aceast a
aplicat ,ie detine mai multe programe care ajut a o persoan a s a ^ nvet ,e interactiv, ^ n timp
ce asimileaz a cunos ,tint ,e teoretice poate s a vad a si cum poate s a lucreze cu ele ^ n acest
limbaj. Ce cred eu c a are ^ n plus acest a aplicat ,ie fat , a de informat ,ia haotic a care se
g ases ,te pe internet si uriasul amalgam de cunos ,tins ,e dintr-o carte este accesul direct
la informat ,ie ^ ntr-un mod usor s ,i interactiv. ^In viitor as ,vrea s a pot face si o aplicat ,ie
pentru un alt limbaj de programare pentru persoane doritoare s a ^ s ,i extind a demeniul
de cunos ,tint ,e.
24

Bibliogra e
[1] Autori, Titlu carte, Editura, An aparit ie.
[2] Autori, Titlu articol, Nume jurnal Num ar (An aparit ie), pag. start – pag. nal.
[3] Descriere resurs a online, URL: https://www.google.com
25

Similar Posts