C.

ELEMENTELE DE BAZA ALE LIMBAJULUI C++
Un program scris in C++ este alcatuit din una sau mai multe functii. Fiecare functie are mai multe instructiuni in C++ care codifica algoritmul programului. Instructiunile unei functii reprezinta corpul functiei si sunt cuprinse intre { }. Dupa fiecare instructiune din corpul functiei se pune semnul ; Functiile de acelasi domeniu sunt grupate in fisiere header numite si directive. La inceputul fiecarui program se specifica fisierele care contin functiile ce se utilizeaza in program astfel: # incl de !n "e#i$ier.h% Dupa specificarea directivelor trebuie scrisa functia radacina care se numeste "ain& ' sau v(id "ain& '. Dupa numele directivelor sau a functiilor n $e ) ne semnul ;

*. Citiri + $crieri.
, pentru realizarea citirii se utilizeaza : cin%%n "e varia-ila cin%%a%%-%%c - citeste variabilele a, b, c - pentru realizarea $crierii se utilizeaza: c( t!!n "e varia-ila c( t!!a!!-!!c - scrie variabilele a, b, c !emplul ": #incl de!i($trea".h% #incl de!c(ni(.h% v(id "ain&' { int L+l+h; clr$cr&'; ## sterge ecranul ## c( t!!.L n/i"ea0. ; cin%%L; c( t!!.Lati"ea0.; cin%%l; c( t!!.Inalti"ea0.; cin%%h; /etch&'; ## in C++ sub D$% permite vizualizarea rezultatului programului## } !emplul &: #incl de!i($trea".h% #incl de!c(ni(.h% v(id "ain&' { int L+l+h+v; clr$cr&'; c( t!!.L n/i"ea0. ; cin%%L; c( t!!.Lati"ea0.; cin%%l; c( t!!.Inalti"ea0.; cin%%h; 1

v0L1l1h; c( t!!.2(l " l e$te.!!. .!!v; /etch&'; }

3. TI4U5I DE DATE.
3.*. TI4U5I INT5E6I. , int 'tip intreg care ocupa "( biti) , l(n/ 'tip intreg care ocupa *& de biti) , n$i/ned int sau n$i/ned l(n/ 'valorile datelor sunt fara semn, adica pozitive) , char 'tip caracter, aceste date se pun intre doua apostrofuri + + ) 3.3. TI4U5I 5EALE , #l(at 'tip real care retin si numerele zecimale , ocupa *& biti) ATENTIE77 IN C++ LA 8C5IE5EA UNUI NUMA5 ZECIMAL IN L9CUL 2I56ULEI 8E 4UNE 4UNCT , d( -le ' tip real care ocupa (, biti) , l(n/ d( -le 'tip real care ocupa -. biti) 3.:. C9N8TANTE /entru a da un nume constantelor se foloseste declaratia c(n$t care are forma: c(n$t ;ti)< n "e0val(are ; ;ti)< - tipul constantei 0 n "e -numele constantei 0 val(are - valoarea constantei !emplu: c(n$t #l(at a0*3.= constanta este de tip #l(at, poarta denumirea a, are valoarea *3+=

2

:. 94E5AT95I C++
:.*. 94E5AT95I A5ITMETICI. + 'adunare) 0 , 'scadere) 0 1 'inmultire) 0 > 'impartire) 0 ? 'restul impartirii intregi) :.3. 94E5AT95I 5ELATI9NALI. ! 'mai mic) 0 !0 'mai mic sau egal) 0 % 'mai mare) 0 %0 'mai mare sau egal) :.:. 94E5AT95I DE E6ALITATE. 00 'egalitate) 0 70 'inegalitate) :.@. 94E5AT95I DE INC5EMENTA5E 8I DEC5EMENTA5E. ++ 'incrementare) 0 ,, 'decrementare) $peratorii pot fi : )re#iAati 'in fata operandului) $it atie in care varia-ila e$te incre"entata $a decre"entata inainte ca val(area retin ta de ea $a intre in calc l )($t#iAati !emplu: Daca a si - sunt variabile de tip int care retin valorile * si : atunci: a++1-++ produce valoarea :, dupa evaluare cele & variabile retin 3 si @ ++a1++- produce valoarea B, dupa evaluare cele & variabile retin @ si @ :.C. 94E5AT95I L96ICI 7 - negare logica 0 DD - %I logic 0 EE %1U logic :.=. 94E5AT95I DE AT5IBUI5E 1pare foarte frecvent si reprezinta "e"(rarea nei val(ri intr,( varia-ila ste reprezentata prin semnul 0 a0: 'atribuie variabilei a valoarea :) %e mai utilizeaza ()erat(ri de atri- ire c("-inatiF +0 ; ,0 ; 10 ; >0 ; ?0 ; D0 ; !!0 ; %%0 !emplu: a0a+- este ec2ivalent cu a+0- 0 a0a1- este ec2ivalent cu a10:.G. 94E5AT95UL C9NDITI9NAL. Forma generala e* H e3 F e: %e evalueaza e*, daca este adevarata se e!ecuta e3, daca este #al$a se e!ecuta e: !emplu: Citirea unuui numar ! si tiparirea numarului 3!3 'modulul numarului !)
#incl de!i($trea".h% #incl de!c(ni(.h% v(id "ain&' { #l(at A;

'dupa

operand)

$it atie

in

care

varia-ila

e$te

incre"entata $a decre"entata d )a ce val(area retin ta de ea intra in calc l

3

"0#l(at&a+-+c'>:. cin%%-. IN8T5UCTIUNEA EJ45E8IE.a0. Intersc2imbarea continutului a & variabile care au fost initial citite. cin%%a. } D. c( t!!.EAE0.h% v(id "ain&' { int a+-+". /etch&'. cin%%A. clr$cr&'.!!. #l(at ". /etch&'. cin%%a. cin%%c. . . c( t!!.h% #incl de!c(ni(. .c0.!!&A%0IHAF. !emplul". clr$cr&'. .!!". c( t!!.!!.!!-.-0. } 4 . } !emplul&. IN8T5UCTIUNILE LIMBAJULUI C++ *.h% #incl de!c(ni(.A0. c( t!!. c( t!!. c( t!!. . c( t!!..!!.A'. #incl de!i($trea".!!a!!endl.clr$cr&'.a0..a0. c( t!!. /etch&'. cin%%-. ."edia arit"etica 0. c( t!!. %e citesc * valori intregi a+-+c si se afiseaza media lor aritmetica #incl de!i($trea".h% v(id "ain&' { int a+-+c. . c( t!!. "0a+a0-+-0".!!. .-0.-0.

clr$cr&'. $0#l(at&.Ec atia are 3 $(l tii reale ne/ative. el$e c( t!!. . #incl de!i($trea".@1a1c.. } !emplul &.c0. c( t!!.Ec atia are 3 $(l tii reale de $e"ne () $e.4r(d $ l radacinil(r 40. el$e "aA0-. c( t!!.cin%%c.. IN8T5UCTIUNEA IK.h% #incl de!c(ni(.. el$e c( t!!.a0. c( t!!.-0.-0.. c( t!!. Forma generala: i# &e!presie' instructiune" el$e instructiune& %e evalueaza e!presia.. .!!.cin%%a. 5 .Ec atia are 3 $(l tii reale )(Litive. c( t!!.. clr$cr&'.Ec atia n are $(l tii reale. c( t!!.->a'.Ec atia are 3 $(l tii reale e/ale $i ne/ative. %e citesc coeficientii a+ -+ c ale unei ecuatii de gradul doi si se precizeaza natura radacinilor si semnul lor... c( t!!.8 "a radacinil(r 80. cin%%-. } el$e c( t!!.h% v(id "ain&' { #l(at a+-+c+d+$+). d0-1-. i#&d!I' c( t!!.h% v(id "ain&' { int a+-+"aA.c( t!!.. daca este adevarata se e!ecuta in$tr cti ne*.Ec atia are 3 $(l tii reale e/ale $i )(Litive.!!$!!endl. } el$e i#&)%I' {i#&$%I' c( t!!. i#&a%-' "aA0a.cin%%-.!!"aA.n "ar l "ai "are e$te . daca este #al$a se e!ecuta in$tr cti ne3 !emplul ".3. )0#l(at&c>a'.!!)!!endl.!!d!!endl. /etch&'.a0.c( t!!.Di$cri"inant l ec atiei D0.h% #incl de!"ath. Calculeaza ma!imul dintre & numere citite #incl de!i($trea". cin%%a.h% #incl de!c(ni(.. el$e { i#&d00I' {i#&$%I' c( t!!.

!!.A0.!!A.c( t!!. i#&d!I' {c( t!!.A*0..ec atia n are $(l tie.->31a'.c0. A30&. c( t!!. 4ezolvarea unei ecuatii de gradul &.c( t!!.h% v(id "ain&' { #l(at a+-+A.a0. c( t!!. clr$cr&'. . .h% #incl de!"ath. c( t!!.!!..} el$e {A0#l(at&. c( t!!...@1a1c'. cin%%a.!!A3!!endl. . . #incl de!i($trea".$Mrt&d'' > &31a'.c( t!!. .!!A.-0. 4ezolvarea unei ecuatii de gradul ". el$e c( t!!.-+$Mrt&d'' > &31a' .ec atia are $(l tie nica A0A*0A30.-0.a0.. } el$e i#&-00I' c( t!!.c( t!!.ec atia are ( in#initate de $(l tii. } !emplul *. c( t!!. clr$cr&'. . i# &a70I' {A0 . d0#l(at& -1-.A30. /etch&'. #incl de!i($trea".} /etch&'.h% #incl de!c(ni(.ec atia n are $(l tii reale.} el$e i# &d%I' { A*0&..!!$Mrt&d'!!endl.!!A*!!endl. cin%%c.-.h% v(id "ain&' { #l(at a+-+c+d+A*+A3+A. } !emplul . } 6 .di$cri"inant l ec atiei e$te. cin%%-. cin%%a. c( t!!.!!. cin%%-.h% #incl de!c(ni(.} /etch&'.->a .

-reaQ.. #incl de!i($trea".-reaQ.. } %e evalueaza eA)re$ie . } !emplul&...cin%%a.cin%%-.. de#a ltF c( t!!...h% #incl de!c(ni(... . $Pitch&i' { ca$e *F c( t!!. ca$e 3F c( t!!.& in functie de semnul lui 5........A" citit altceva..... i#&d%0I' { $Pitch&d' { ca$e IF c( t!!... -reaQ. de#a lt F secventa n+". d0-1-. cin%%i. clr$cr&'... } /etch&'.. daca e$te e/ala cu una din e!presiile e*+ e3+ ...... de gr... iar daca n aceste e!presii se e!ecuta numai $ecventa n+* !emplul ". ca$e en F secventa n .@1a1c...Ec atia are ( $(l tie d -la.c( t!!. ca$e e& F secventa & .. de#a ltFc( t!!.A" citit *..cin%%c....-reaQ. #incl de!i($trea".-0. } e$te e/ala cu una din 7 .. %e afiseaza natura sol... IN8T5UCTIUNEA 8NITCO.h% v(id "ain&' { int i. -reaQ.A" citit 3. clr$cr&'.:.h% #incl de!c(ni(. Forma generala a instructiunii: $Pitch &e!presie' { ca$e e" F secventa " . unei ec...a0........en se e!ecuta secventa corespunzatoare e!presiei $*+ $3+ ....c0.c( t!!.$n. -reaQ. c( t!!.Ec atia are d( a $(l tii reale di#erite.h% v(id "ain&' { int a+-+c+d....

int ta$ta.} el$e i# &d%I' { A*0&. .ec atia n are $(l tii reale.h% #incl de!c(ni(.h% #incl de!"ath. IN8T5UCTIUNEA NOILE. cin%%a.} c( t!!..c0.c( t!!. .h% v(id "ain&' { #l(at a+-+c+d+A*+A3+A.Ec atia n are $(l tii reale.. c( t!!..-+$Mrt&d''>&31a' . !ecutarea unui program intr-un ciclu repetat pana la apasarea unei anumite taste'se introduc coeficientii unei ec. c( t!!. c( t!!.& si se afiseaza solutiile de 6n6 ori pina la apasarea tastei 676) #incl de!i($trea".!!endl.di$cri"inant l ec atiei e$te. !emplu.} el$e {A0#l(at&.. ta$ta0/etch&'.A*0. Forma generala este: Phile &e!presie' {.!!$Mrt&d'!!endl.a0. daca este #al$a se trece la instructiune urmatoare.in$tr cti ni} dupa care se revine la evaluarea e!presiei .4entr ie$ire a)a$a ta$ta M.!!A3!!endl. de gr..!!A!!endl.} el$e c( t!!.!!. A30&.. d0#l(at& -1-.. c( t!!.c( t!!. . in$tr cti ni } %e evalueaza eA)re$ie.-0. cin%%c. i#&d!I' {c( t!!..$Mrt&d''>&31a'.-.ec atia are $(l tie nica A0A*0A30. } } 8 .4entr c(ntin are a)a$a ( ta$ta. } @. ..@1a1c'.c( t!!.->31a'..A30. c( t!!.. daca este adevarata se e!ecuta {.!!A*!!endl. 1ceasta instructiune permite programarea ciclurilor cu test initial..!!. Phile&ta$ta70RMR' { clr$cr&'.. cin%%-.

Instructiunea permite programarea ciclurilor cu test final.h% v(id "ain&' { l(n/ n+ ta$ta+$0I+i0*.4entr a c(ntin a a)a$a ( ta$ta. iar daca este #al$a e!ecutia instructiunii d( se termina. . i0i+*.!!. ta$ta0/etch&'.!!endl!!. Forma generala este: d( { in$tr cti ni } Phile & e!presie ' %e e!ecuta { in$tr cti ni } . IN8T5UCTIUNEA D9 NOILE.!!$!!endl..C. } } 9 .n0. c( t!!. daca este adevarata se e!ecuta din nou {in$tr cti ni}.4entr a ie$i din )r(/ra" a)a$a ta$ta RMR.8 "a )ri"el(r n n "ere nat rale e$te. } Phile&i!0n'. !emplu: %e citeste numarul natural n si se afiseaza suma primelor n numere naturale #incl de!i($trea". d( { $0$+i. c( t!!. se evalueaza eA)re$ie.cin%%n. c( t!!.h% #incl de!c(ni(. Phile&ta$ta70RMR' { clr$cr&'..

daca este adevarata se e!ecuta in$tr cti nea subordonata #(r. 8ariabila n poate fi definita la inceput fara a mai trebui introdusa de la tastatura utilizand #de#ine n val(are 'comanda se scrie inainte de v(id "ain&' ) 10 .h% #incl de!c(ni(. Forma generala: #(r& eINITIALIZA5E0 eTE8T0 eINC5EMENTA5E' in$tr cti ne eINITIALIZA5E .. /rincipiul de e!ecutie: %e evalueaza eINITIALIZA5E 'numai la prima rulare).} c( t!!..-+0i. Daca eTE8T este #al$a se trece la urmatoarea instructiune 'se termina e!ecutarea instructiunii #(r) 9-$ervatie. l(n/ d( -le a+-. c( t!!.Intr(d ceti n "ar l.!!.se evalueaza o singura data pentru initialiLarea variabilei de ciclare inaintea primului ciclu 0 eTE8T .h% v(id "ain&' { N3 int i+n+ta$ta. } } 9-$ervatie.c( t!!.cin%%n.)r(d $ l0. a0-0*. ta$ta0/etch&'.i++' {a10i. %e introduce de la tastatura numarul n si se calculeaza $ "a si )r(d $ l primelor n numere #incl de!i($trea". se evalueaza eINC5EMENTA5E si se revine la evaluarea e!presiei eTE8T. IN8T5UCTIUNEA K95 %e utilizeaza cel mai fracvent pentru programarea ciclurilor cu test initial.!!a!!endl. /entru a iesi din acest ciclu : in D98 se tasteaza CT5L+4AU8E in NIND9N8 se tasteaza CT5L +ALT + DEL !emplul ".i!0n.$ "a0.este evaluata inaintea fiecarui ciclu pentru a te$ta daca se e!ecuta instructiunea subordonata si reprezinta conditia de iesire din ciclu0 eINC5EMENTA5E .=. se evalueaza eTE8T ..se evalueaza la sfirsitul fiecarui ciclu pentru incre"entarea variabilei de ciclare. #(r&i03.4entr ie$ire a)a$a ta$ta M. c( t!!. Phile&ta$ta 70RMR' { clr$cr&'. Daca e!presia eTE8T este vida se e!ecuta un ciclu infinit.!!-!!endl.

#(r&i0* . . .litere!0RZR. /etch&'. } /etch&'.!!-!!RStR!! .!!i!!.!!. 1fisarea literelor alfabetului #incl de!i($trea".i!0n..litere++'c( t!!litere!!. 11 .. #(r&litere0RAR. c( t!!. -0i1i.h% #incl de!"ath. 0.!!i!!.!emplul&.i++' { a0$Mrt&i' .h% v(id "ain&' { char litere. 0 . a0-0I.h% #incl de!c(ni(. } !emplul.h% #incl de!c(ni(. } !emplul*.n0.h% v(id "ain&' { #l(at i+n+a+-. .5adical l n "ar l i. c( t!!. 1fiseaza toate patratele si radicalii numerelor naturale pina la numarul n introdus de la tastatura. #incl de!i($trea".!!a!!endl.4atrat l n "ar l i.!!..cin%%n. clr$cr&'.

IN8T5UCTIUNEA B5EAT %e utilizeaza pentru intreruperea neconditionata a unei secvente si numai in & conte!te: *' in instructiunea $Pitch pentru a marca inc2eierea secventei de instructiuni asociate unei selector ca$e 0 3' intr-o instructiune de ciclare 'Phile+ d( Phile+ #(r) pentru a determina iesirea fortata din ciclul respectiv. in cazul instructiunii #(r se continua cu evaluarea e!presiei eINC5EMENTA5E 'actualizarea contorilor) si apoi a e!presiei eTE8T 'testarea conditiei de ciclare) G. 9-$ervatie. IN8T5UCTIUNEA 69 T9 1re ca efect intreruperea secventei curente si continuarea e!ecutiei de la instructiunea care este specificata dupa /( t(. pentru abandonarea e!ecutiei unui ciclu se utilizeaza in general functiile eAit&' sau ret rn. fara a afecta celelalte blocuri de ciclare in cazul ciclurilor imbricate.3. 12 .*. 9-$ervatie. IN8T5UCTIUNEA C9NTINUE %e utilizeaza numai in blocul instructiunilor de ciclare pentru a intrerupe e!ecutia iteratiei curente 'sarind peste instructiunea urmatoare) dupa care: .:. IN8T5UCTIUNI DE 8ALT G. Instructiunea -reaQ intrerupe e!ecutia de ciclare doar a blocului in care se afla. in cazul instructiunilor Phile si d( Phile se continua cu testarea conditiei de ciclare0 .G. Instructiunile de salt se utilizeaza rar in C++ deoarece incalaca principiile programarii structurate. G.

I<+ a.:<.. TABL9U5I *.3I< .*<+..C<0{. int i+V.v. int -. ...E.3I< ..@<0{ {**+*3+*:+*@}+ {3*+33+3:+3@}+ {:*+:3+::+:@} } . } c( t!!endl...i!:.*U<.:<.... componente de tip real .3+@+B+*+U} ..I<.I<.*I<.. int a.a. } 4ezultatul programului va fii afisarea urmatoarei matrici: ** *3 *: 3* 33 3: :* :3 :: 13 .:<0{**+*3+*:+3*+33+3:+:*+:3+::}..V!:.*. #l(at am declarat un vector cu *I componente de ti) intre/ care au indici intre I am declarat doi vectori a si . !emplul". TI4U5I DE DATE 8T5UCTU5ATE *. #incl de!i($trea".care au *I respectiv 3I de si U + v.h% #incl de!c(ni(.i++'{ #(r&V0I. Un tablou poate fi initialiLat cu un set de valori astfel: .U<.V<!!R R.*<+ a.h% v(id "ain&' { int a.*I<+ -.I<. #(r&i0I. } /etch&'..I<+ v...V++' { c( t!!a. int v.3<+.U< a. 9ablourile por fii : $i")le &vect(r' sau " lti)le &"atrice' EAe")leF . 1fisarea unei matrici cu componentele declarate initial. TABL9U5I IN C++ 9abloul este o lista de elemente de acelasi tip plasate succesiv intr-o zona de memorie. .*I< ... int a.i<. am declarat o matrice cu *I linii si 3I c(l(ane cere se adreseaza astfel: a.

Int(d ceti ele"entele.*I<..V++' { c( t!!.V<.n0..Intr(d ceti n "ar l de c(")(nente n0.<0.*II<.Intr(d ceti n "ar l de linii. } c( t!!endl!!RStR!!RStR!!RStR!!RStR.i++' { c( t!!.i++' -. c( t!!endl.<0.Intr(d ceti n "ar l de c(l(ane.h% v(id "ain&' { int i+V+"+n+a. c( t!!.i++'{ #(r&V0*.!!endl!!RStR!!RStR!!RStR!!RStR.*II<.cin%%".h% #incl de!c(ni(. c( t!!.*I<.V<!!R R.!!.i!0". c( t!!.i++' c( t!!.. %e introduce numarul de linii " si numarul de coloane n ale unei matrici.V++' { c( t!!a.h% #incl de!c(ni(. c( t!!.!!. . #incl de!i($trea".h% v(id "ain&' { int n+i+a.+ cin%%a.cin%%n. clr$cr&'.i<.V!0n.!!endl. .a.!!.!!i!!.V!0n. #(r&i0*.cin%%n. } 14 .i!0"...i<. } /etch&'.i!0n.cin%%a.<0. } } c( t!!.i<0a. /etch&'. se intoduc elementele matricii apoi se afiseaza matricea creata.a.i++' { #(r&V0*. clr$cr&'.*II<+-. . %e introduc valorile componentelor unui vector a.!!i!!V!!.!!i!!.i!0n.Matricea int(d $a are #(r"aF.i<!!RStR.-. #(r&i0*.*II< si se atribuie aceste valori componentelor vectorului -.i<.. #(r&i0*.!!.i<.!!..} #(r&i0*.!emplul&. #incl de!i($trea".!!-. } !emplul*. #(r&i0*.n0.i!0n.

I< .3.i++' i#&v.. cin%%n.i<%"aA' "aA0v. c( t!!.v.I<).i<. apoi o compara pe rind cu celelalte componente ale vectorului.h% v(id "ain&' { int "aA+"in+n+i+v. i#&v.*.!!.!!"aA!!endl. AL695ITMI KUNDAMANTALI CA5E LUC5EAZA CU 2ECT95I.I<.I< .2al(area "ini"a citita e$te.i++' i#&v.3. MAJIM+ MINIM.i++' {c( t!!.i< /entru "ini" 0 "in0v. #(r&i0*. i#&v.h% #incl de!c(ni(.I<.*.}.Intr(d ceti n "ar l de ele"ente n0.i<!"in' "in0v.!!. /etch&'. } 15 .<0. /entru "aAi" : "aA0v.!!i!!. .I< sau "in0v.. #(r&i0*. "in0v. . "aA0v. #incl de!i($trea".*II<.i<!"in' "in0v.i!0n. c( t!!.2al(area "aAi"a citita e$te. %e introduc valorile componentelor unui vector si se afiseaza valoarea ma!ima si valoarea minima.!!"in.i<.i< !emplu.. #(r&i0*.i<%"aA' "aA0v. iar in functie de conditia care se pune in program variabila va retine componenta cu valoare ma!ima sau componente cu valoare minima.i< .i!0n. c( t!!. *. $ variabila preia continutul primei componente a vectorului '"aA0v.i!0n.cin%%v.

*.. #(r&i0*.se initializeaza o variabila /a$it cu valoarea logica I . %e citeste un vector cu n c(")(nente si se decide daca numerele citite sunt distincte 'nu e!ista doua numere egale) sau daca nu sunt distincte 'e!ista doua numere egale).i!0n. el$e c( t!!.h% #incl de!c(ni(..V++' i#&v.N "erele n $ nt di$tincte.i!0n . c( t!!.!!i!!. ELEMENTE DI8TINCTE.o variabila i retine indicele )ri"ei c(")(nente ... /etch&'. .n cand i03 V0:+@+.h% v(id "ain&' { int v.V<' /a$it0*..*I<+i+V+n+/a$it. cin%%n. #(r&i0*..N "erele $ nt di$tincte.* .i++' { c( t!!.!!.i<.daca sunt gasite doua valori egale variabilei /a$it i se atribuie vloarea logica * !emplu..v.<0.3.. } 16 .i<00v... } /a$it0I..n cand i0n V0n.o variabila V retine indicele r"at(arel(r c(")(nente !: cand i0* V03+:+.V!0n ..i++' #(r&V0i+*.intr(d ceti n "ar l de ele"ente n0. i#&/a$it' c( t!!. cin%%v....3.... /entru a rezolva problema se procedeaza astfel: ... #incl de!i($trea".

<0.!!. . .!!... A)licatiiF !emplul ". #(r&i0*.A. . . /a$it0I. clr$cr&'.8)eci#icati n "ar l de ele"ente a " lti"ii B.B.V!0n.. se citeste un numar intreg e + se verifica daca numarul e apartine multimii a.h% #incl de!c(ni(.n0. .!!. . %e citeste o multime A care contine n elemente numere intregi .!!endl.*. cin%%A. cin%%A.V<'/a$it0*.V++' { c( t!!.i++' { c( t!!. c( t!!...!!.e0.0{.. c( t!!..i++' c( t!!C.!!. ..V++' i#&A. . #(r&V0*. i#&7/a$it' C.!!. #(r&i0I. .i<00B. B #incl de!i($trea". c( t!!.*I<+C.!!endl. } c( t!!..n0.i!0".N "ar l.i<!!. MULTIMI. cin%%B. c( t!!.}.h% v(id "ain&' { int A.N "ar l.!!. i#&/a$it' c( t!!. 17 . #(r&i0*.!!.h% #incl de!c(ni(.Q++<0A. clr$cr&'.}.A.Intr(d ceti ele"entele " lti"ii A. } !emplul&. cin%%e. } c( t!!. #(r&i0*.3.!!. el$e c( t!!. lementele unei multimi sunt memorate intr-o variabila de tip vector.i++' #(r&V0i+*.!!V!!.!!.B.h% v(id "ain&' { int A.i++' { /a$it0I.i<00e' /a$it0*.i++' { c( t!!. /etch&'.:.i<.Intr(d ceti n "ar l c(n$iderat. #(r&V0*.*I<+"+n+i+V+L+Q+/a$it.i!0n. cin%%n.!!i!!.i!0n. #incl de!i($trea". n a)artine " lti"ii.!!. In cadrul unei multimi un element a)are ( $in/ ra data 'o multime nu poate avea & valori egale).i!Q.<0.i<.!!e!!.*I<+n+e+i+V+/a$it.. cin%%".<0.A.!!. Q0I. a)artine " lti"ii.8)eci#icati n "ar l de ele"ente a " lti"ii A.V!0n. . cin%%n.}.i<.!! e!!.V!0n..!!.V<.V++' i#&A.i!0". .*I<+B. c( t!!. %e citeasc multimile A si B si se afiseaza multimea C unde C 0 A.."0.Intr(d ceti ele"entele " lti"ii B. c( t!!.!!i!!.Intr(d ceti n "ar l de ele"ente n a " lti"ii. #(r&i0*..

. Daca n a)artine este adaugat unei multimi C care initial este vida 'variabila Q cu valoare initiala I retine indicele componentei din C care va memora urmatorul element ce se adauga multimii C. In final se tipareste multimea C.*I<+"+n+i+V+Q+/a$it.A..}.i++' { c( t!!. apoi se listeaza multimea B si in continuare multimea A .!!.V++' i#&A. cin%%n. cin%%A.B la fel ca in cazul precedent.!!.V!0n. .V!0n. #(r&V0*. B' sau AUB0AU&B . c( t!!. 18 . #(r&i0*.i<.i++' { /a$it0I."0.8)eci#icati n "ar l de ele"ente a " lti"ii B. #(r&i0*. cin%%".!!. /etch&'. } Al/(rit" l de reL(lvare e$te r"at(r lF %e stie ca AUB 0 BU&A .8)eci#icati n "ar l de ele"ente a " lti"ii A.!!. A' %e determina multimea A. c( t!!..V!0n..0{.h% v(id "ain&' { int A.B.!!endl. } Al/(rit" l de reL(lvare e$te r"at(r lF /entru fiecare element din multimea A se face testul daca apartine sau nu multimii B.Intr(d ceti ele"entele " lti"ii A.. i#&7/a$it' C..i++' c( t!!C. c( t!!.}.!!endl.i!0". c( t!!.n0. c( t!!..!!. %e citesc multimile A si B si se afiseaza multimea C unde C0AUB #incl de!i($trea". .!!.i<!!.V++' c( t!!B.*I<+B. .. cin%%B. } c( t!!.i<.. #(r&i0I. #(r&V0*. #(r&V0*.V<'/a$it0*.h% #incl de!c(ni(. B.V<!!.!!i!!.. clr$cr&'.V<. .i<00B.}. !emplul*.!!V!!.i!0". Q0I.Q++<0A. .i!Q./etch&'.<0. .<0.V++' { c( t!!.*I<+C.!!.AUB.Intr(d ceti ele"entele " lti"ii B.

n0.B. c( t!!. c( t!!. .V!0n. cin%%". #(r&i0*. %e citesc multimile A si B si se listeaza multimea C unde C0AWB Al/(rit" l de reL(lvare e$te r"at(r lF /entru fiecare element din multimea A se face testul daca apartine sau nu multimii B. cin%%n...V<.!!.i<00B.V!0n. . c( t!!.!!.. cin%%n.A.!!.}.!!endl. Daca a)artine este adaugat unei multimi C care initial este vida 'variabila Q cu valoare initiala I retine indicele componentei din C care va memora urmatorul element ce se adauga multimii C.Intr(d ceti ele"entele " lti"ii A. cin%%A.Intr(d ceti ele"entele " lti"ii A.V++' { c( t!!.i<.Intr(d ceti ele"entele " lti"ii B.. i#&/a$it' C.}. . c( t!!.!!.*I<+B. . .0{.!!endl.i++' c( t!!C. c( t!!.AnB.<0.i<!!. . #(r&i0*.!!.V++' i#&A. . %e citesc multimile A si B si se listeaza C unde C0A J B #incl de!i($trea"..*I<+C.V<'/a$it0*. c( t!!.V++' { c( t!!. #(r&i0I.!!.}. clr$cr&'.h% #incl de!c(ni(..*I<+B. } c( t!!.8)eci#icati n "ar l de ele"ente a " lti"ii B.i<. c( t!!.!!i!!.i!0". #(r&i0*..!!.. #(r&V0*.h% v(id "ain&' { int "+n+i+V. cin%%A. .i!0".8)eci#icati n "ar l de ele"ente a " lti"ii B.AJB.V<.<0. #(r&V0*."0.!!V!!. c( t!!.!!endl.i!Q.B.}. c( t!!.<0.!!i!!. #(r&V0*. #incl de!i($trea".i++' { c( t!!.Intr(d ceti ele"entele " lti"ii B. #(r&i0*.Q++<0A.i++' { c( t!!.h% #incl de!c(ni(. c( t!!.0{.A.!!.*I<.i!0".i++' { /a$it0I.!!.i++' 19 . Q0I..i!0"..8)eci#icati n "ar l de ele"ente a " lti"ii A.n0.!!. In final se tipareste multimea C.!!..h% v(id "ain&' { int A.!!endl. cin%%B.. .. cin%%". .!!. } !emplul:. clr$cr&'."0.!!.!!V!!.!emplul..8)eci#icati n "ar l de ele"ente a " lti"ii A..V!0n. cin%%B. char A..i<.*I<+"+n+i+V+Q+/a$it.<0.}.!!. /etch&'.

i<......V<!"in' { "in0a.i<!!. v(id "ain&' { clr$cr&'. .. #(r&i0*...i++' c( t!!a.. c( t!!.V!0n. . /etch&'.Q0i. a' 8(rtarea )rin $electarea "ini" l i&"aAi" l i'..i%0*...n0...i!0n...se determina minimul dintre toate valorile retinute incepand cu )(Litia * si acesta este trecut pe )(Litia* prin intersc2imbarea continuturilor dintre cele & componente ...i++' { c( t!!.@.. #(r&i0n.!!i!!...!!B.cin%%n.!!.. } *. .Li$teL n "erele in (rdine cre$cat(are..*. c( t!!.!!.. MET9DE DE 895TA5E %e aplica pentru $(rtarea unor valori citite in ordine cre$cat(are sau de$cre$cat(are.!!A.+.. } "0a. .<0.!!.&.Intr(d ce n "ar l ele"entel(r.Q<0a... a.i<!!...i!0n. .....i++' { "in0a..3..V++' i#&a..V<..}.#(r&V0*.. /etch&'.'..... #(r&V0i+*. c( t!!endl!!..!!endl.se determina minimul dintre valorile ratinute incepand cu )(Litia 3 si acesta este trecut pe )(Litia 3 prin intersc2imbarea continuturilor dintre cele & componente ..i. #(r&i0*. Q0V. .V++' c( t!!..i<!!.h% int a..V<!!.Li$teL n "erele in (rdine de$cre$cat(are.. a.cin%%a..h% #incl de!c(ni(.. !emplul"..*I<+n+i+V+Q+"in+".. %e citeste o multime de numere si se listeaza valorile in ordine crescatoare si in ordine descrescatoare #incl de!i($trea".Q<.. .... } 20 .i!0n.!!endl.}.i<0".. } c( t!!.a..V!0n.i<.'c( t!!a. #(r&i0*...i<.se determina minimul dintre valorile retinute incepand cu )en lti"a )(Litie si acesta este trecut pe )en lti"a )(Litie..

i+*<' {te")0a.h% #incl de!c(ni(.i<!!.!!endl.i.cin%%n. iar vectorul va arata astfel: * 1.i++' i#&a. = &).*< 3 1.*< 'deoarece * = &). c( t!!endl!!.-' 8(rtarea )rin inter$chi"-are %e parcurge variabila intr-un ciclu d( Phile inversand continuturile componentelor care nu sunt in ordine crescatoare'descrescatoare) !emplu: Fie situatia initiala: : 1.'c( t!!a.*< cu 1.. v(id "ain&' { clr$cr&'. c( t!!. } 21 .i!0n.Intr(d ce n "ar l de ele"ente. se efectueaza )ri"a )arc r/ere si se sc2imba 1.h% int a.&< : 1.i+*<0te")..n0.&< 3 1.&< cu 1.<0.Li$teL n "erele in (rdine cre$cat(are. c( t!!. a.se efectueaza a d( a )arc r/ere si se sc2imba 1.&< @ 1. #(r&i0*.!!. d( { /a$it0I."< * 1. a.*I<+n+i+Q+te")+/a$it.< . #(r&i0n.< 'deoarece .i<%a..< 1lgoritmul este urmatorul: .i<.} } Phile&/a$it'.&< 'deoarece * = ") si 1.!!i!!.Li$teL n "erele in (rdine de$cre$cat(are.< . .!!.i++' {c( t!!. #(r&i0*.i++' c( t!!a.se efectueaza a treia )arc r/ere dar deoarece numerele sunt in ordine crescatoare algoritmul se inc2eie !emplu: #incl de!i($trea"..i%0*.i<!!. /etch&'..*< @ 1. vectorul va arata astfel: * 1.i< ."< : 1.i!0n. . /a$it0*.i+*<..!!endl... #(r&i0*.a.cin%%a.."< 3 1. .i!0n.*< @ 1.i<0a.}."< cu 1.*..

i++' { te")0a. } !emplu.Int(d ceti ele"entele.V!0n. a.Matricea int(d $a are #(r"aF.a.cin%%X. } c( t!!endl.!!.i!0n. .i++'{ #(r&V0*.i!0".: A4LICATII CA5E LUC5EAZA CU MAT5ICI.!!endl.V<!!R R.*I<. a. a' Intersc2imbarea a 3 linii #(r&V0*..!!endl. .A<.V<!!R R.A<. #(r&i0*.i<.Intr(d ceti n "ar l de linii. } -' Intersc2imbarea a 3 c(l(ane #(r&i0*.V!0n.i++' { #(r&V0*.V<0a.i<.N( a "atrice are #(r"aF.i!0n.h% v(id "ain&' { int i+V+"+n+a.A<.Intr(d ceti n "erele c(l(anel(r care d(riti $a le inter$chi"-ati.cin%%n.X<.V<. clr$cr&'.i<.X<0te") .A<0a.X0.i++' { te")0a.n0. } c( t!!endl.n0.i!0".:.A<0a..i<.V!0n. a. c( t!!.V++' { c( t!!.V<. #(r&i0*..cin%%".V++'{ c( t!!a. a. c( t!!.}} c( t!!. %c2imbarea a 3 c(l(ane a unei matrici #incl de!i($trea".*I<+A+X+te"). c( t!!.} 22 .i<.Intr(d ceti n "ar l de c(l(ane. } c( t!!endl. } c( t!!endl.X<. #(r&i0*.+ cin%%a.A0.!!. c( t!!. a. #(r&i0*. c( t!!.i<.V<.!!i!!V!!.i<. c( t!!.i<.V++' { te")0a.V++' {c( t!!a.X<.X<. *.V<0te") .!!endl.A<.i<.!!endl.i<.cin%%A.h% #incl de!c(ni(.i!0".c( t!!.<0..X<0te") .* INTE58COIMBA5EA A D9UA LINII INT5E ELE 8AU A D9UA C9L9ANE /entru a intersc2imba & variabile intre ele utilizam o a treia variabila de manevra care am denumit-o te") si inca doua variabile A si X carora le atribuim ca valori numerele liniilor sau a coloanelor care dorim sa le intersc2imbam intre ele.i++'{ #(r&V0*.*.!!. a..!!.i<.V!0n.

23 . incepand cu primul element din linia " in sensul acelor de ceasornic. 84I5ALA %e citeste o matrice patratica 'numarul de linii>numarul de coloane>n).:./etch&'. %e cere sa se afiseze elementele tabloului in ordinea rezultata prin parcurgerea acestuia in spirala.3. } *.

i!n./et&'. !emplu: #incl de!i($trea"./et&'. } 9-$ervatie./et&$3+3I'.Nr.nr./et&$3+3I'./et&$*+3I'.*.h% #incl de!$trin/. cin. 8I5U5I DE CA5ACTE5E 3.h% v(id "ain&'{ char a. cin.*I<. Dupa tastarea unui sir de caractere . cin.c vinte . /etch&'. #(r&i0I. %e pot scrie mai multe siruri de cuvinte daca declaram ( "atrice de ti) char char a.i!n. int n+i.. clr$cr&'. c2ar>+?n+' 9-$ervatie. /entru a declara n $ir de caractere se utilizeaza functia: char nume sir.3I<.3I< !emplu: #incl de!i($trea".sa declarat sirul cu numele $ir* care poate lista *II caractere /entru citirea $ir ril(r de caractere se utilizeaza functia: cin. c( t!!$*!!endl!!$3.i++' c( t!!a. cin.3I<.i++' cin%%a.h% #incl de!c(ni(.3./et&$*+3I<.i<!!endl.*II< . Daca dorim sa introducem mai multe siruri de caractere se utilizeza cin.} se pot scrie *I $ir ri cu cate 3I caractere #iecare $ir &#ara $)ati ' 24 .clr$cr&'. fapt care duce la intreruperea citirii.elemente sir< !emplu: char $ir*. cin. c( t!!$*!!endl!!$3. Citirea > $crierea $ir ril(r de caractere. /etch&'.h% #incl de!c(ni(.cin%%n. Inainte de citirea unui sir de caractere acesta trebuie declarat.3I<+$3.i<./et&' a doua citire nu ar putea fi efectuata. c( t!!. #(r&i0I. la apasarea tastei Enter se intrerupe citirea .h% v(id "ain&' { char $*. cin. int nr./et&' astfel char $*. Daca ar lipsii functia cin.*I<./et&vector de caractere.3I<+$3.3I<. deoarece la apasarea tastei Enter in memorie este pastrat caracterul RSnR .

} 3./et&$*+*II'.. $i Li"-aV l C++.:.h% #incl de!c(ni(..3I<0.8ir l citit are.h% v(id "ain&' { char $*. K nctia $trlen./et&'.*.Li"-aV l C++.+$3.sursa' Functia are roluil de a c()ia sirul de la adresa $ r$a la adreasa de$tinatie.h% #incl de!$trin/.3.. . $trcat&$*+$3'.h% v(id "ain&' { char $*. K nctia $trcat.h% #incl de!$trin/. K nctii $i al/(rit"i care l creaLa c $ir ri de caractere.3.3I<0.!!.h% #incl de!c(ni(.3I<0.3 K nctia $trc)X.3I<0.h% #incl de!$trin/.h% 3. /etch&'.Li"-al l T r-( C++.h% #incl de!c(ni(. } 3.*II<. $trc)X&$*+$3'. /etch&'. Forma generala : $trlen&nume sir'. cin. Forma generala: $trcat&destinatie. c( t!!$*.!!.3.!!$trlen&$*'!!. Forma generala: $trc)X&destinatie.Li"-aV l T r-( C++. 1re rolul de a returna lungimea unui sir'fara a lua in considerare caracterul nul).sursa' Funtia are rolul de a ada /a sirului de la adresa de$tinatie sirul de la adresa $ r$a !emplu: #incl de!i($trea". c( t!!. } 25 .3.3. c( t!!$*. /entru a utiliza functiile care lucreaza cu sirurile de caractere trebuie inclusa directiva #incl de!$trin/.+$3. .h% v(id "ain&' { char $*. cin.caractere. !emplu: %e citeste un sir de caractere si se afiseaza numarul de caractere a sirului #incl de!i($trea". /etch&'. !emplu: #incl de!i($trea".

@.Li"-aV l T r-( C++. $i Li"-aV l C++.3.h% #incl de!$trin/.3I<0.Li"-aV l T r-( C++.$*. } 4eturneaza valoarea = 3.h% #incl de!c(ni(.h% #incl de!c(ni(.3.h% #incl de!$trin/.h% v(id "ain&' { char $*. $trncat&$*+$3+C'.C. /etch&'.3I<0.3I<0.$*.. K nctia $trrchr 4eturneaza adresa ultimei aparitii a caracterului cautat $trrchr&sir.h% v(id "ain&' { char $*. } 3. K nctia $trncat Forma generala: $trncat&destinatie. + caracter + ' Functia cauta in sirul n "e $ir caracterul caracter si returneaza subsirul care incepe cu prima aparitie a caracterului citit !emplul": se va lista 9urbo C++ #incl de!i($trea". c( t!!$trchr&$*+R R'.h% #incl de!c(ni(..+$3. c( t!!$trchr&$*+RTR'.3I<0. +caracter+ ' char $*.3.. c( t!!$trrchr&$*+R R'.sursa. /etch&'. } !emplul&: %e tipareste indicele primei aparitii a caracterului +u+ #incl de!i($trea".h% v(id "ain&' { char $*.3I<0.h% #incl de!$trin/. /etch&'. K nctia $trchr Forma generala: $trchr&nume sir..3.n) Functia adauga sirului de$tinatie primii n octeti ai sirului $ r$a !emplu: #incl de!i($trea".=. 4eturneaza valoarea *I 26 .Li"-aV l T r-( C++. c( t!!$*.Li"-aV l T r-( C++.

se afiseaza a%. /etch&'. int $e"n.Intr(d ceti $ir l aF .a 0 -.3I<. daca primul caracter al sirului a este situat alfabetic dupa primul caracter al sirului .si se listeaza relatia dintre cele & siruri astfel: . %e compara sirul a cu sirul .se afiseaza a%. cin%%-. daca primele n caractere sunt identice se compara caracterele n+* .G.indi#erent de l n/i"ea cel(r 3 $ir ri !emplul": #incl de!i($trea". } 27 ..h% #incl de!$trin/.a ! -.h% #incl de!c(ni(.3I<+-. el$e i#&$e"n%I' c( t!!.. cin%%a.3.h% v(id "ain&' { char a.. daca caracterul n+* al sirului a este situat alfabetic dupa cracterul n+* al sirului .3. K nctia $trc") Forma generala $trc")&sir". i#&$e"n!I' c( t!!.a % -. daca caracterul n+* al sirului a este situat alfabetic inaintea cracterului n+* al sirului .indi#erent de l n/i"ea cel(r 3 $ir ri . el$e c( t!!...se afiseaza a!. c( t!!. sir& ' Functia are rolul de a compara & siruri de caractere si va returna valoarea: ! I daca $ir*!$ir3 0 I daca $ir*0$ir3 % I daca $ir*%$ir3 !emplu". c( t!!. daca primul caracter al sirului a este situat alfabetic inaintea primului caracter al sirului se afiseaza a!.Intr(d ceti $ir l -F . $e"n0$trc")&a+-'.

Ace$t L cr N Ma DeranVeaLa.h% #incl de!c(ni(.i!n..i<'. /etch&'.*I<. } 28 . c( t!!. /a$it0*.h% #incl de!$trin/. /etch&'. $trc)X&a. cin%%n.*I<+te").*II<0. c(nverte$te toate literele sirului s& in litere "ari !emplu: #incl de!i($trea".i!n.i!n.i.!!endl.h% #incl de!c(ni(.c(nverte$te toate literele sirului s" in litere "ici $tr Pr&s&' .i<!!endl.i%0I. c( t!!.h% v(id "ain&' { char a.h% v(id "ain&'{ char a. } } Phile&/a$it'. #(r&i0I.i++' c( t!!a. #incl de!i($trea". c( t!!.i<!!endl.i+*<'%I' { $trc)X&te")+a..i+*<'. int i+n+/a$it.!emplul&.i<+a.i<+a. c( t!!$tr )r&a'!!endl!!$trlPr&-'.Intr(d ceti n "ar l de )er$(ane .!!endl. #(r&i0I. #(r&i0n. $trc)X&a.*. K nctiile $trlPr si $tr Pr $trlPr&s"' .e$te ace$ta n $irH.!!endl. } 3. c( t!!.' c( t!!a.8crie n "ele )er$(anel(r.i++' i#&$trc")&a.9rdinea al#a-etica de$cre$cat(are a )er$(anel(r $cri$e e$teF.i+*<+te")'.9rdinea al#a-etica cre$cat(are a )er$(anel(r $cri$e e$teF.+ -.3.*II<. %e citesc n cuvinte si se (rd(neaLa alfabetic cre$cat(r si de$cre$cat(r.i<.h% #incl de!$trin/. d( { /a$it0I.i++' cin%%a.B.. #(r&i0I.*II<0.

h% v(id "ain&' { int n.*3:@C.*3. KUNCTII UTILIZATE 4ENT5U C9N2E58IA 2AL95IL95 NUME5ICE IN 8I5 La utilizarea acestor functii se introduce directiva #incl de!$tdli-..converteste ( val(are d -la catre n $ir #' K nctia it(a .converteste un sir catre tipul l(n/ !emplu: #incl de !$tdli-.converteste un sir catre tipul l(n/ d( -le !emplu: #incl de !$tdli-.3.converteste un sir catre tipul d( -le -' K nctia at(ld . } c' K nctia at(i .*3:@C.=G. c( t!!.3. K nctia $trc$)n Forma generala: $trc$)n&s".$trin/ 0 .h% #incl de!c(ni(. K nctia $)n Forma generala: $tr$)n&s". /etch&'. /etch&'.!! #.converteste o valoare de tip l(n/ int catre n $ir 29 . c( t!!.#l(at 0 . char 1$tr 0 .h% v(id "ain&' { #l(at #.!! n.s&' Functia returneaza n "ar l caracterel(r din sirul $* care $e /a$e$c in sirul $3 3.#l(at 0 .sir&' Functia identifica daca sirul $ir3 este subsir al sirului $ir* 3. n 0 at(i&$tr'.=G.h% #incl de !i($trea".s&' Functia returneaza n "ar l caracterel(r din sirul $* care n $e /a$e$c in sirul $3 3.$trin/ 0 .U.h% #incl de !i($trea".3.h% a' K nctia at(# ..3.*I. K nctia $tr$tr Forma generala: $tr$tr&sir". # 0 at(#&$tr'. } e' K nctia ecvt .!!$tr!!endl!!.3.converteste un sir catre tipul int d' K nctia at(l .h% #incl de!c(ni(.!!$tr!!endl!!.**. char 1$tr 0 .converteste ( val(are de ti) intre/ catre n $ir /' K nctia lt(a .

#l(at "ed. } lista variabile0 Un e!emplu de $t ct ra: $tr ct elev { char n "e. } 30 . /entru gruparea variabilelor de mai multe tipuri utilizate pentru o inregistrare se foloseste: $tr ct nume structura { ti) varia-ila n "e varia-ila+ n "e varia-ila ..:.3I<. TI4UL IN5E6I8T5A5E :.cla$a.A" cititF. }inr*+inr3.. /etch&'.*I<.n "e!!.cin%%inr.)ren "e!!endl !!inr. c( t!!.. c( t!!..cin%%inr.cin%%inr.4ren "e .cla$a!!endl !!inr. v(id "ain&' { c( t!!.h% #incl de!c(ni(.tel. c( t!!.cin%%inr. int tel.!!endl !!inr."ed.N "e . #l(at "edia.*. ."ed.Media /enerala .*C<+)ren "e.3I<+cla$a. int tele#(n.cin%%inr.!!inr. !emplu: #incl de !$tdli-. } inr. Inre/i$trari $i")le. c( t!!.tel!!endl !!inr..Cla$a .Tele#(n .)ren "e.h% #incl de !i($trea". c( t!!. ti) varia-ila n "e varia-ila.n "e.h% $tr ct elev { char n "e.*C<+)ren "e.

Inre/i$trari c $tr ct ra varia-ila %e utilizeaza cand inregistrarile nu au format fi! ci n #(r"at varia-il. !emplu de inregistrare imbricata: $tr ct elev* { char n "e. 31 . 9ipul structurat elev* subordoneaza .3I<.:. #l(at n(te. pe langa alte tipuri. } $it*+$it3. Inre/i$trari i"-ricate Un tip structurat de inregistrare contine in interiorul sau alt tip structurat de inregistrare. :.:. int var$ta.3I<. $tr ct { int cla$a.*C<+)ren "e.3. doua structuri $it* si $it3. }.

le#t sau ri/ht . caracterele sunt memorate in codul 1%CII . se utilizeaza la scriere in cazul in care data propriuzisa ocupa mai putini octeti decat latimea si precizeaza caracterul care se afiseaza in spatiile neocupate0 . se utilizeaza cand data ocupa mai putin decat latimea si se precizeaza unde anume sa fie afisata . . etc. stabileste numarul de zecimale care vor fi afisate pentru valoare0 . fisierul se termina cu caracterul E9K .Pidth . precizie .K. alinierea . $et#ill&c2ar) .h% Aanipulatorii sunt inclusi in e!presiile de citire#scriere astfel: . KI8IE5E TEJT 1ceste fisiere se caracterizeaza prin urmatoarele: . $tan/a sau dre)ta .e!e 'fisier e!ecutabil) 0 nume. #ill . stabileste caracterul de umplere char a pozitiilor ramase libere 32 . caracterul de umplere . KI8IE5E Fisierul este o colectie de date de acelasi fel stocate pe un suport e!tern care are un mune si o e!tensie 'al carei nume este in functie de tipul fisierului). stabileste numarul de zecimale int care sunt afisate . se utilizeaza la scriere atunci cand se foloseste o variabila reala. !: nume. o variabila speciala numita )(inter retine intotdeauna un octet al fisierului *. $etP &int' .se utilizeaza la citire 1 4entr #(r"atarea citirii > $crierii $e tiliLeaLa vari-ileleF )reci$i(n + Pihth+ #ill 1ccesul la aceste varibile se face cu a@utorul unor functii speciale numite "ani) lat(ri.*. salt sau nu peste caractere albe . *. datele sunt memorate sub forma unei succesiuni de caractere .dbf 'fisier baza de date. latime . )reci$i(n . stabileste latimea int pe care este afisata variabila . /entru a le putea utiliza in program trebuie inclusa directiva #!i("ani).utilizat in fo!). Citiri > $crieri c #(r"at 1cestea sun caracterizate prin: . se utilizeaza la scriere si are rolul de a stabili numarul de caracatere utilizate pentru afisarea unei date0 . $et)reci$i(n&int' . este format din una sau mai multe linii care se termina cu caracterul nePline &Sn' .

h% #incl de!c(ni(. c( t!!$etP&3I'!!$et#ill&RYR'!!$et)reci$i(n&3'!!a. le#t . ))erca$e .h% #incl de!i("ani). 14entr #(r"atarea intraril(r > ie$iril(r $e tiliLeaLa varia-ilaF #la/$ care utilizeaza comenzile: . #iAed .se fiseaza semnaul la stinga si numarul la drepta . (ct .afisarea valorilor se face prin utilizarea formai normale 8ariabila #la/$ se utilizeaza in doua moduri: $eti($#la/$&masca' .afisarea valorilor se face prin utilizarea formei stiintifice '"e--) . $h(P)($ .in cazul afisarii in 2e!azecimal se vor utiliza literele mari '1.conversie in 2e!azecimal .valorile afisate sunt precedate de semn . $Qi)P$ . $h(P)(int .B.*3:@C=GBU. #incl de!i($trea".sunt sarite caracterele albe care preced valoarea ce trebuie citita .F) .pentru resetarea bitilor accesati /entru a avea acces la comanzile cu care lucreaza #la/$ numele lor vor fi precedate de i($FF masca este formata din una sau mai multe grupe de comenzi de forma: i($FFc("anda separate intre ele de operatorul logic E '%1U-pe biti) !emplu de masca: &i($FFinternal E i($FF$h(P)($ E i($FFri/ht' 33 . dec .forteaza afisarea punctului zecimal ..conversie in zecimal . variabila a va fi afisata cu 3 Leci"ale. ri/ht .. } 1fisarea se poate face pe 3I )(Litii 0 pe pozitiile ramase libere se afiseaza caracterul Y . /etch&'.pentru setarea bitilor accesati re$eti($#la/$&masca' .h% v(id "ain&' { d( -le a0I.!emplu. $h(P-a$e .conversie in octal .datele se tiparesc aliniate la dreapta .afisarea indicatorului de baza . heA . internal . $cienti#ic .datele se tiparesc aliniate la stanga .

.!!.-0. .a F .!!. c( t!!endl.cin%%a.!!.!!.!!.5adical l in" ltirii e$te . c( t!!.!!. !!$etP&*II'!!$et#ill&R R'!!$et)reci$i(n&3I' !!$eti($#la/$&i($FFle#tEi($FF$h(P)($Ei($FF#iAed'!!e. #0d1d.0. . e0$Mrt&d'. c( t!!endl. c( t!!.!!. c( t!!endl.h% #incl de!c(ni(. d0a1-. . !!$etP&*II'!!$et#ill&R R'!!$et)reci$i(n&*I' !!$eti($#la/$&i($FFle#tEi($FF$h(P)($Ei($FF#iAed'!!d.5eL ltat l i")artirii . !!$etP&*II'!!$et#ill&R R'!!$et)reci$i(n&3I' !!$eti($#la/$&i($FFle#tEi($FF$h(P)($Ei($FF#iAed'!!#.Intr(d ceti )ri" l n "ar . .!!.. c( t!!.h% #incl de!"ath. } 34 .Intr(d ceti al d(ilea n "ar . .a A . c( t!!. c0a>-.0.5eL ltat l in" ltirii . c( t!!endl.4atrat l in" ltirii e$te .h% #incl de!i("ani).a0.!emplu: #incl de!i($trea". !!$etP&*II'!!$et#ill&R R'!!$et)reci$i(n&*I' !!$eti($#la/$&i($FFle#tEi($FF$h(P)($Ei($FF#iAed'!!c. /etch&'. c( t!!.cin%%-. . c( t!!.!!.!!.h% v(id "ain&' { d( -le a+-+c+d+e+#.

h% #incl de!#$trea". Declararea #i$ierel(r teAt "e"(rate )e $ )(rt "a/netic. Cand se lucreaza cu fisiere pe suport magnetic in program trebuie inclusa directiva: #incl de!#$trea". unul '#) pentru citire si celalat '/) pentru scriere #$trea" #&.cFSS#i$3. tr nc .numeCfizic.tAt care se va gasi in radacina &cFSS' .+i($FF( t'.cl($e&' . #$trea" #&numeCfisier+ i($FF( t'.cFSS#i$.tAt. cu numele logic # . Forma generala a declaratiei: #$trea" numeClogic&. n(create . ate . in cazul nostru #.desc2ide fisierul pentru scriere .+i($FFin'+ /&.3.*. c( t!!. !emplul&.h% /entru a lucra usor asupra fisierelor sunt definite comenzile: .+i($FF( t'. a)) .cFSS#i$.salt la sfirsitul fisierului dupa desc2iderea acestui .fisier binar. n(re)lace .3I< .desc2ide fisierul pentru citire .h% #incl de!i("ani).dasc2ide fisierul daca acesta e!ista 'nu se creaza altul) . in .cin%%numeCfisier . Dupa desc2iderea si prelucrarea unui fisier acesta trebuie inc2is astfel: numeCfisier.tAt.cl($e&' !emplu de creare a unui fisier de tip te!t in c:? : #incl de!i($trea". %e utilizeaza constructorul inplicit al clasei (#$trea"&'. /etch&'. Declar doua fisiere. } 35 .desc2ide fisierul pentru a scrie la sfirsitul lui .h% #incl de!c(ni(.tAt. -inarX .daca fisierul care se deasc2ide e!ista in locul lui se creaza altul . + modCdeCdesc2idere' !emplu": Declar un fisier cu numele fizic #i$.h% daca utilizam acesta directiva poatei fi scoasa !i($trea".cFSS#i$*.N "ele #i$ier l i e$te . apoi se utilizeaza metoda ()en in forma generala Inainte de a lucra cu un fisier acesta trebuie declarat.h% v(id "ain&' { #$trea" #&.daca fisierul e!ista el poate fi desc2is numai pentru consultare . In cazul in care numele fisierului trebuie citit de la tastatura declaratia fisierului trebuie sa contina numele sau si trebuie plasata dupa citirea sirului respectiv astfel: char numeCfisier.+i($FF( t'. ( t .tAt. fisierul este declarat in vedera crearii lui &i($FF( t' #$trea" #&..

In acest e!emplu nu sunt scrise caracterele albe'deci intre cuvintele scrise nu este spatiu. char A.:.+i($FF( t'.h% #incl de!#$trea".tAt in dFS cu intrare de la tastatura 'scriu in el de la tastatura). 4rel crarea #i$ierel(r de ti) teAt /relucrarea unui fisier se face dupa urmatorul algoritm: Phile&daca nu este sfirsit de fisier' { citeste . } e(#&' n cite$te ci d(ar te$teaLa daca anteri(r a #($t detectat 36 . /etch&'. Phile&cin%%re$eti($#la/$&i($FF$Qi)P$'%%A' #!!A.h% v(id "ain&' { #$trea" #&. char A. Creez un fisier #i$.dFSS#i$. #. } /entru a preciza sfirsitul de fisier care se testeaza in paranteza de dupa Phile se scrie: 7 numeCfisier. 1ceasta sa realizat deoarece a fost introdusa comanda re$eti($#la/$&i($FF$Qi)P$' #incl de!i($trea".h% #incl de!c(ni(.tAt.Ca $a ter"in $crierea a)a$ c(n$ec tiv ta$tele CT5L+Z 'ec2ivalent cu $F) #incl de!i($trea".*.h% v(id "ain&' { #$trea" #&. Creez acelasi fisier dar for fi scrise si caracterele albe.+i($FF( t'.h% #incl de!c(ni(. prelucreaza .dFSS#i$.h% #incl de!#$trea". Phile&cin%%A' #!!A.e(#&' Atentie7 K nctia $#ar$it l de #i$ier !emple de programe: EAe")l l*.tAt.h% #incl de!i("ani).cl($e&'. } EAe")l l3. #.h% #incl de!i("ani).cl($e&'.

h% v(id "ain&' { #$trea" #&. /etch&'. /etch&'.EAe")l l:.*I<.. c( t!!.h% v(id "ain&' { #$trea" #&.ie $a $)eci#ic $i l(catia l i a$t#elF cFSnumeCfisier.h% #incl de!#$trea".+i($FFin'. /etch&'.cl($e&'. char A.tAt. Phile&cin%%re$eti($#la/$&i($FF$Qi)P$'%%A' #!!A.tAt.h% v(id "ain&' { char #i$ier.h% #incl de!i("ani).tAt sau dFSnumeCfisier.h% #incl de!i("ani).dFSS#i$.h% #incl de!c(ni(.+i($FFa))'.h% #incl de!i("ani). } EAe")l lC. #.h% #incl de!c(ni(. Phile&cin%%re$eti($#la/$&i($FF$Qi)P$'%%A' #!!A. char A.tAt 37 .cin%%#i$ier. #$trea" #&#i$ier+i($FF( t'. %criu la sfirsitul fisierului creat la e!emplul& #incl de!i($trea".dFSS#i$. char A. Phile&#%%re$eti($#la/$&i($FF$Qi)P$'%%A' c( t!!A.cl($e&'. Creez un fisier al carui nume il dau de la tastatura si scriu in el.h% #incl de!#$trea". } EAe")l l@. 1fisez fisierul creat la e!emplul& #incl de!i($trea".cl($e&'.h% #incl de!c(ni(. #incl de!i($trea".h% #incl de!#$trea". } 9-$ervatieF Cand $cri n "ele #i$ier l i tre. #. #.N "ele #i$ier l i e$te .

tAt.h% #incl de!i("ani). Cuvantul 6FIDI%E6 se adauga la sfarsitul fisierului creat la e!emplul&.sfarsit de fisier -e/ .EAe")l l=.c( t!!c.returneaza pozitia pointerului la un moment dat.al doilea parametru reprezinta reperul in raport de care este calculata pozitia %unt definite trei constante: end .h% #incl de!#$trea". #%%re$eti($#la/$&i($FF$Qi)P$'%%c .i!0n. #.h% #incl de!c(ni(.+i($FF( t+i($FFin'. char c.. /etch&'.CFSSn "ere.pozitioneaza pointerul in fisierul precizat . }. c( t!!. %e convertesc primele n numere naturale in (ctal si heAaLeci"al #incl de!i($trea". #!!$etP&*I'!!dec!!i.tell)&' . #.cin%%n.Intr(d ce n "ar l n0 .primul parametru reprezinta pozitia pointerului .cl($e&'.h% #incl de!#$trea".*II<. } 38 .dFSS#i$.inceput de fisier c r .cl($e&'.'. #!!re$eti($#la/$&i($FF$Qi)P$'!!c. } D Functia: numeCfisier.$eeQ)&I+i($FFend'. #(r&i0*.pozitia curenta in fisier D Functia : numeCfisier.KINI8O.h% #incl de!i("ani). #incl de!$trin/.tAt.h% v(id "ain&' { #$trea" #&.h% v(id "ain&' { #$trea" #&.+i($FFinEi($FF( t'.$eeQ)&I+i($FFend' .i++' { #!!$etP&*I'!!(ct!!i. EAe")l lG. #. /etch&'. int i+n. #!!$etP&*I'!!$eti($#la/$&i($FF ))erca$e'!!heA!!i!!endl. $trc)X&c+.h% #incl de!c(ni(.h% #incl de!$tdli-.

. iar fisierele se termina tot cu E9K . $ astfel de variabila retine o anumita adresa a unei alte variabile. Caracteristici: . scrierea unei variabile de tip pointer adrZ) intr-un fisier se face utilizand: numeCfisier. fisierele lucreaza cu variabile de tip )(inter.varsta) 39 . %e creaza un fisier binar cu n inregistrari in care fiecare inregistrare retine datele personale a unei persoane'numele. !emplul". fisierele sunt alcatuite din mai multe inregistrari de acelasi tip 'int .read&&char1'adrCp+$iLe(#&)'' /rin aceste comenzi de fapt se $crie respectiv cite$te continutul variabilei ) .ocupatia. Ki$iere -inare. a se declara in felul urmator: int a+ 1adrZa0Da + variabila 1adrZa a fost initializata cu adresa variabilei a 8ariabila 1adrZa este de tip )(iner /entru a obtine adre$a unei variabile .de tip #l(at1 nu este permisa atribuire de tipul a0.Prite&&char1' adrCp+$iLe(#&p'' .prenumele. aceasta atribuire se poate face astfel a0&int1'.3. pentru desc2iderea unui fisier binar se utilizeaza i($FF-inarX . citirea unei variabile de tip poiter adrZ) dintr-un fisier se face utilizand: numeCfisier. etc) . variabila este precedata de operatorul D Daca avem o variabila a de tip int1 si o variabila . $tr ct. numarul de caractere scrise sau citite fiind date de lungimea variabilei ) prin comanda $iLe(#&)'. datele sunt memorate in format intern.

Sign up to vote on this title
UsefulNot useful