Informatica, Notiuni de Baza

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

Sunteți pe pagina 1din 94

INFORMATICA

Informatica este stiinta care se ocupa cu studiul reprezentarii si


organizarii informatiei precum si cu studiul algotitmilor de prelucrare a
informatiei cu ajutorul unui calculator.
ALGORITM
Un algoritm reprezinta o metoda de rezolvare a problemelor de un anumit
tip.A rezolva o problema inseamna a obtine pentru anumite date de
intrare rezultatul problemei !date de iesire ".Algoritmul este #onstiuit
dintr$o su##esiune de operatii #are des#riu pas #u pas modul de obtinere a
datelor de iesire ple#and de la datele de intrare .
%&emplu '
(resupunand #a dispunem de un aragaz o tigaie ) oua sare si )** ml ulei sa
pregatim o#+iuri .
,-ate de intrare 'oua ulei sare .
,-ate de iesire 'o#+iuri .
(as .' /e pune tigaia pe 0o# .
(as )' /e toarna uleiul in tigaie .
(as 1' Asteptam pana #and se in#inge uleiul.
(as 2' /pargem #u indemanare ouale se rumenes#.
(as 3' Asteptam pana #and ouale se rumenes# .
(as 4' -a#a nu tinem regim adaugam sare .
(roprietati #ara#teristi#e ale algoritmilor
..Claritatea 5la 0ie#are moment operatia #are urmeaza a 0i e&e#utata este
uni# determinata de0inita si realizabila .
).Generalitatea !universalitatea "$o se#venta de pasi reprezinta un algoritm
de rezolvare a unei probleme da#a obtine date iesire !rezultate " pentru
ori#e date de intraren spe#i0i#e problemei .
1.Finititudinea 5rezultatele problemei se obtin dupa o se#venta de pasi .
1
Un algoritm este constituit dintr-o succesiune clara de operatii realizabile,
care au ca scop obtinerea intr-un timp finit a rezultatelor unei probleme,
pentru orice set de date de intrare .
-AT%
Ori#e algoritm lu#reaza #u date 'date de intrare !datele pe #are trebuie
sa le primeas#a un algoritm din e&terior "date de iesire !datele pe #are
trebuie sa le 0urnizeze aloritmul in e&terior "pre#um si date de manevra
!date temporale ne#esare algoritmului pentru a obtine datele de iesire pe
baza datelor de intrare ".
-atele #u #are lu#reaza algoritmii pot 0i #lasi0i#ate din mai multe pun#te
de vedere.O prima #lasi0i#are a datelor in 0un#tie de posibilitatea de a$si
modi0i#a valoarea este'
..Constante 5date #are nu isi modi0i#a valoarea .
).6ariabile 5date #are isi modi0i#a valoarea .
In 0un#tie de valoarea lordatele pot 0i #lasi0i#ate ast0el'
a.-ate numeri#e 5au #a valori numere !naturale intregi sau reale "7
b.-ate al0abeti#e 5au #a valori #ara#tere sau siruri de #ara#tere 7
#.-ate logi#e 5au #a valori adevarat sau fals.

%&presii

O e&presie este #onstituita dintr$o su##esiune de operanzi #one#tati prin
operatori.Un operand poate 0i o #onstanta o variabila sau o e&presie
in#adrata intre paranteze rotunde .Operatorii desemneaza operatiile #are se
e&e#uta asupra operanzilor.Operatorii #are pot 0i utilizati intr$o e&presie
depind de tipul operanzilor .
6om prezenta trei #ategorii de operatori.
Operatori aritmeti#i de0ines# o operatie aritmeti#a si pot 0i
#lasi0i#ati ast0el'
2
..operatori aritmeti#i multipli#ative '8!inmultire " 9!impartire":!restul
impartirii intregi".
).operatori aritmeti#i aditivi ';!adunare"si 5!s#adere ".
Operatori relationali
Opertorii relationali des#riu relatia de ordine sau de egalitate dintre
#ei doi operanzi'<!mai mi#"=!mai mare"<>!mai mi# sau egal".=>?!mai mare sau
egal">!egal"@>!di0erit ".
Operatori logi#i
Operatori logi#i de0ines# o operatie logi#a 'negatia logi#a $ @7#onAun#tie
logi#a 5 si 7disAun#tie logi#a $ sau .%0e#tul a#estor operatori este #el usual
invatat la logi#a matemati#a .Il reamintim in tabelul urmator'
B C @B B sau C B si C
Fals Fals Adevarat Fals Fals
Fals Adevarat Adevarat Adevarat Fals
Adevarat
Adevarat
Fals
Adevarat
Fals
Fals
Adevarat
Adevarat
Fals
Adevarat

Operatori logi#i se pot apli#a operanzilor logi#i .6aloarea unui e&presii
logi#e este de tip logi# .
Reprezentarea algoritmilor
I.(rin#ipiile programarii stru#turate
(rogramarea stru#turata a aparut in anii D* datorita #resterii
#omple&itatii apli#atiilor adu#and o serie de prin#ipii si te+ni#i inovative .
Modularizarea este una dintre ele permitand impartirea problemei in
subprobleme de dimensiuni mai mi#i si #omple&itate mai redusa.(roblemele
erau rezolvate de e#+ipe de programatori si rezultatele erau #ombinate in
s#opul rezolvarii problemei initiale.
3
O alta te+ni#a importanta a 0ost #ea a stru#turarii datelor si
prelu#rarilor./tru#turarea datelor permitea gruparea datelor in anumite
zone de program dar si des#rierea si utilizarea unor stru#turi de date
proprii./tru#turarea prelu#rarilor se poate realiza prin utilizarea modulelor
si a subprogramelor .Un prin#ipiu important presupunea #a ori#e program se
poate s#rie prin se#vente liniare alternative si repetitive.
II. -es#rierea algoritmilor
Un algoritm de rezolvare presupune stabilirea pasilor ne#esari. (asii
ne#esari pot 0i des#risi intr$un limbaA de programare insa nu toata lumea
#unoaste a#el program si ni#iun program nu s$a impus #a 0iind singurul utilizat
de programatori . -in a#est motiv s$au impus niste metode generale de
des#riere a algoritmilor independente de limbaAul de programare .
(rogramele se s#riu pe baza a#estor des#rieri . Metodele #ele mai importante
sunt '
E pseudo#odul
E s#+ema logi#a
(/%U-OCO-UL reprezinta un set restrans de #uvinte in romana sau
engleza aso#iate unor operanti.Ast0el #uvintele utilizate sunt ' intreg real
#iteste s#rie da#a atun#i alt0el s0arsit da#a pentru #at timp
s0arsit #at timp e&e#uta #at timp .
Exemplu : Cititi doua variabile intregi . Cal#ulati suma lor si a0isati
rezultatul.
intreg a b #
#iteste a b
#> a ; b
s#rie #

/CF%MA LOGICA este reprezentarea gra0i#a a unor prelu#rari.
A#easta reprezinta un set de simboluri gra0i#e '
/TART ' pun#tul de pornire al algoritmului
/TO( ' pun#tul de oprire al algoritmilor
Citeste variabila ' operatia de #itire a variabilei
/#rie variabila ' operatia de s#riere a variabilei.
4
Exemplul se s#rie in s#+ema logi#a '
/TRUCTURA /%C6%NTIALA
(resupune e&e#utarea unei prelu#rari in ordinea pre#izata . ! ele
nu se e&e#uta #onditional sau repetitiv ". %&ista #ateva tipuri printre #are '
.." -e#lararea variabilelor se 0a#e #u sinta&a tip data variabila GG.
-e0inirea variabilei pune in legatura numele variabilei #u tipul sau .
START
Citeste variabila
Citeste variabila
STOP
START
Intreg a, b, c
Citeste a, b
STOP
C=a+b
Citeste a, b Citeste c
5
cnd=
t
P
)."Citirea variabilei reprezinta operatia prin #are #ontinutul unei
variabile e in#ar#at de la tastatura.
1."Atribuirea este operatia prin #are o valoare e aso#iata unei variabile.
2."A0isarea se realizeaza #u sinta&a s#rie e&p . ... e&p n
3."Instru#tiunea #ompusa reprezinta un set de prelu#rari #uprinse intre
a#olade .
H p.
.
.
I pn

/TRUCTURA ALT%RNATI6A
/CO( ' permite e0e#tuarea unei prelu#rari in 0un#tie de valoarea unei
#onditii.
-%CIJIA
/CO( ' permite e&e#utarea unei prelu#rari da#a o #onditie este
indeplinita.
/e reprezinta in pseudo#od si s#+ema logi#a '
6

da#aK#onditie 9 e&presie
(
s0arsitKda#a

M%CANI/M -% FUNCTIONAR% ' se evalueaza #onditia sau e&presia
la o valoare logi#a.-a#a e adevarata se realizeaza prelu#rarea ( da#a nu nu
se e&e#uta nimi#.
/%L%CTIA
/CO( ' permite e&e#utarea unei prelu#rari din doua posibile la un moment
dat in 0un#tie de valoarea unei #onditii.
/e reprezinta in s#+ema logi#a si pseuo#od.
da#aK#ond atun#i
(.
alt0el
()
s0arsitKda#a

/#+ema logi#a'

Me#anism de 0un#tionare ' se evalueaza #onditia la o valoare logi#a.-a#a este
adevarat se e&e#uta (. da#a nu se e&e#uta ().
cnd=
t
P2
P1

Obs ' Atat pentru de#izie #at si pentru sele#tie se e&e#uta in mod
#onditionat o singura prelu#rare.
-a#a trebuie e&e#utate #onditionat pe ori#are din ramuri
mai multe prelu#rari a#estea trebuie #uprinse intre a#olade intr$o
instru#tiune blo#.
/%L%CTIA MULTI(LA
%ste o stru#tura derivata. %a poate 0i inlo#uita prin struturi de#izionale
deoare#e este implementata de instru#tiuni in limbaAe de programare. %a
poate 0i prezentata in s#+ema logi#a si pseudo#od '
#aseKe&p
v. p.
...........
vn pn
endK#ase
Me#nism de 0un#tionare ' se evalueaza e&presia . -a#a valoarea
obtinuta > 6. atun#i se e&e#uta (. si se iese din instru#tiune . -a#a nu se
#ompara valoarea #u 6).-a#a sunt egale se e&e#uta () . -a#a nu valoarea se
#ompara #u 6n da#a e egala se e&e#uta (n si se iese din instru#tiune.
!1 P1
!
2
P2
!n
Pn
"
START
Citeste #ed
$ed%=5
ne&r'#'vat
&r'#'vat
$ed%="
b(rsier
STOP
/TRUCTURI IMLRICAT%
O stru#tura alternativa poate 0i in#lusa in alta stru#tura alternativa
numindu$se stru#turi imbri#ate.
O regula utila este a#eea #a IF$ul>da#a se aso#iaza #u #el mai apropiat
else.
Exemplu : /e #iteste media unui elev.A0isati da#a este promovat
nepromovat sau bursier in situatia in #are are media mai mare de#at M.
real med
#itesteKmed
da#aKmedN3 atun#i
s#rie promovat
GG
da#aKmed =M
atun#i
s#rie bursier GG
alt0elKnepromovat
s0arsitKda#a

)
/TRUCTURA ,(%NTRU?
/CO( ' permite e&e#utarea unei prelu#rari de un numar #unos#ut de
ori . %ste o stru#tura #u te&t initial si numar #unos#ut de iteratii.
(rin te&t initial se intelege 0aptul #a se e0e#tueaza intai testarea
#onditiei si apoi se e0e#tueaza prelu#rarea.

pentruKO>6# 60 e&e#uta
(
s0arsitKpentru
M%CANI/M -% FUNCTIONAR% ' se initializeaza O ! #ontorul " #u o
valoare initiala . /e evalueaza #ontorul O<K60 . -a#a e adevarat se
realizeaza prelu#rarea si #reste #ontorul initial #u o unitate da#a nu se
iese din stru#tura.
Obs: /e e0e#tueaza in mod repetat o singura prelu#rare mai multe
prelu#rari 0iind in#luse$ntr$o stru#tura blo#.
*=!c
*+=!,
P
*=*+1
-A
./
10
Apli#atii'
." Cal#ulati suma primelor n numere naturale .
Rezolvare '
intreg n i /
#iteste n
/>*
(entru i>. n e&e#uta
/> s ; i
/0arsit pentru
/#rie /.
Citeste n
i+=n
S=s+i
i=i+1
-A
./
START
S=0
i=1
Scrie s
STOP
11
Citeste n
i+=n
Citeste 1
*=*+1
-A
./
START
S=0, &=1
i=1
Scrie s, &
STOP
S=s+1 P=&21
./
1%0
/imulare numeri#a'
n>1 />*
(. i>. .P1 !a" />*;.>. i>.;.>)
() i>) )P1 !a" />.;)>1 i>);.>1
(1 i>1 1P1 !a" />1;1>4 i>1;.>2
(2 i>2 2P1 !0" s#rie 4 .
)."/e #ites# n valori . Cal#ulati produsul valorilor pozitive si suma valorilor
negative .
Rezolvare '
intreg n i & / (
#iteste n
/>*
(>.
(entru i>. n e&e#uta
Citeste &
da#aK&N* atun#i (>(8&
alt0el />/;&
s0arsit da#a
s0arsit pentru
s#rie / (
12
i+=n
P ./
-A
/imulare numeri#a '
n>1 (>. &>) $. 1
(. i>. .<K1 !a" &>) )=* !a" (>.8)>) i>.;.>)
() i>) )<K1 !a" &>$. $.=* !0" />$. i>.;)>1
(1 i>1 1<K1 !a" &>1 1=* !a" (>)81>4 i>1;.>2
(2 i>2 2<1!0" s#rie $. 4
/TRUCTURA ,CAT TIM(?
/CO( ' permite e&e#utarea unei prelu#rari #at timp o #onditie e
indeplinita . %ste o stru#tura #u test initial si numar ne#unos#ut de iteratii.
! test initial>se e0e#tueaza mai intai testul #onditiei si apoi prelu#rarea
numar ne#unos#ut de iteratii> programatorul nu #unoaste la momentul s#rierii
programului de #ate ori se repeta prelu#rarea respe#tiva "
CatKtimp #ond e&e#uta
(
/0arsit #atKtimp
M%CANI/M -% FUNCTIONAR% ' se evalueaza #onditia la o valoare
logi#a. -a#a e adevarata se e&e#uta prelu#rarea ( si se revine la testul
#onditiei da#a nu se iese din stru#tura.
OL/ '
.$(rogramatorul trebuie sa asigure initializarea #ore#ta a datelor inaintea
intrarii in stru#tura. ! de regula repetitivele sunt #oordonate de o variabila
#ontor "
13
START
Citeste n
S=0
i=1
i+=n
S=s+i
i=i+1
Scrie s
STOP
)$(rogramatorul trebuie sa asigure trans0ormarea #onditiei din adevarat in
0als dupa un numar 0init de iteratii.In #az #ontrar bu#la e in0inita
! modi0i#area #onditiei se 0a#e de regula prin #resterea sau des#resterea
#ontorului #u o unitate. /e poate realiza si prin #itirea unor valori noi de la
tastatura sau dintr$un 0isier "
lpicatii :
.."Cal#ulati suma primelor n numere naturale 0olosind stru#tura #at timp.
Rezolvare '
intreg n i /
#iteste n
/>*
i>.
#atKtimp iPn e&e#uta
/>/ ; i
i>i;.
s0arsitK#atKtimp
s#rie /
/imulare numeri#a'
(o n>1 />* i>.
(. i>. .<K1 !a" />*;.>. i>.;.>)
() i>) )<K1 !a" />.;)>1 i>.;)>1
14
START
Citeste n
&=1
i=1
i+=n
Citeste 1
i=i+1
Scrie &
STOP
P=&21
-A
./
(1 i>1 1<K1 !a" />1;1>4 i>1;.>2
(2 i>2 2<K1 !0" s#rie 4.
)."Cal#ulati produsul a n valori #itite de la tastatura.
Rezolvare '
intreg n i ( &
#iteste n
(>.
i>.
#atKtimp i<Kn
e&e#uta
#iteste &
(>(8&
i>i;.
s0arsit #at
timp
/imulare numeri#a'
(o n>1 &>)24 (>.
(. i>. .<K1 !a" &>) (>.8)>) i>.;.>)
() i>) )<K1 !a" &>2 (>)82>M i>.;)>1
(1 i>1 1<K1 !a" &>4 (>48M>2M i>.;1>2
(2 i>2 2<K1 !0" s#rie 2M.
R%TIN%TI@
15
E (entru a #al#ula inversul unui numar trebuie sa 0olosim 0ormula '
NIN6>NIN68.*;#
unde #>n:.* iar n>n9.*
E (entru a demonstra da#a un numar e palindrom trebuie #a a#esta sa 0ie egal
#u inversul sau.
%& ' .)1 nu e palindrom
.). e palindrom.
1." Cal#ulati suma #i0relor unui numar .
%& ' n>.)1
/uma #i0relor>.;);1>4
(seudo#od'
Intreg ns#
Citeste n
/>*
Cat timp n=* e&e#uta
C>n:.*
/>s;#
N>n9.*
/0arsit #at timp
/#rie s

/imulare numeri#a'
(*'n>.)1s>*
(.'.)1=* A #>.)1Q:.*>1s>*;1n>.)19.*>.)
()'n>.)=* A#>.):.*>)s>1;)>3n>.9.*>.
(1'n>.=* A#>.:.*>.s>3;.>4n>.9.*>*
(2'n>*=* Fs#rie s>4
16
!c"ema logica
2."Cal#ulati produsul #i0relor unui numar.
(seudo#od'
Intreg np #
Citeste n
(>.
Cat timp n=o e&e#uta
C>n:.*
(>p8#
START
Citeste n
s=0
n%0
C=n310
n=n410
Scrie s
STOP
S=s+c
-A
./
1
N>n9.*
/0arsit #at timp
s#rie p
/#+ema logi#a'
/imulare numeri#a'
(*'n>.)1p>.
(.'n>.)1=* A#>.)1:.*>1 p>.81>1n>.)19.*>.)
()'n>.)=*A #>.):.*>)p>18)>4n>.)9.*>.
(1' n>.=* A#>.:.*>. p>48.>4n>.9.*>*
(2'n>*=* Fs#rie p>4
START
Citeste n
&=1
n%0
C=n310
n=n410
Scrie &
STOP
&=&2c
-A
./
1"
Instructiunea #if$

Implementeaza stru#turile logi#e de#izie si sele#tie.
%ecizia:
Are #a s#op e&e#utarea unei prelu#rari da#a o #onditie este
indeplinita.
/e implementeaza in pseudo#od #u'
da#a #onditie atun#i
(
/0arsitKda#a
/#+ema logi#a '
C;; '
i0 !#onditie"(.
Me#anism de 0un#tionare'
$/e evalueaza #onditia.
$-a#a este adevarata se e&e#uta prelubrarea (
$-a#a nu iese din instru#tiune
!electia:
(ermite e&e#utarea unei prelu#rari din doua posibile la un moment dat
in 0un#tie de valoarea unei #onditii.
/e implementeaza in pseudo#od #u'
da#a #onditie atun#i
(.
C'nd=T
-a .(
P
1)
alt0el
()
/0arsitKda#a
/#+ema logi#a '
C;;
I0!#onditie" (. 7
%lse
()7
&ecanism de functionare'
$/e evalueaza #onditia la o valoare logi#a.
$-a#a este adevarata se e&e#uta prelu#rarea (.
$-a#a este 0alsa se e&e#uta ().
Observatii :
Conditia se #uprinde intre paranteze rotunde
Conditia #uprinde operatorii ' R<R 7R=R 7RPR 7R>R et#.
%galitatea a doua valori se testeaza 0olosind operatorul R> >R.
%&emplu ' !a> >b"
%&presia Ra>bR in Ri0R este gresita pentru #a realizeaza o atribuire
sin u o #omparatie.
Conditia din Ri0R poate 0i #ompusa. Fie#are termen va 0i #uprins
intre paranteze rotunde si a#estea vor 0i in#luse in parabteza
prevazuta de sinta&a instru#tiunii Ri0R.
/e pune R7R dupa 0ie#are prelu#rare #+iar si inainte de else.
Nu se pune R7R dupa parantezele rotunde7
20
.( -a
C'nd=T
P2 P1
/e e&e#uta #onditionato singura prelu#rare. -a#a trebuie
e&e#utate mai multe prelu#rari a#estea se #uprind intr$o
instru#tiune blo#.
Instructiunea 'for'
RForR permite e&e#utarea unei prelu#rari de un numar #unos#ut de ori.
%ste o instru#tiune #u test initial si numar #unos#ut de iteratii.
Implementeaza stru#tura logi#a Rpentru9s0arsitKpentruR.
Llo#ul ,initializare? realizeaza initializarea #ontorului #u o valoare
initiala. /unt posibile si alte initializari ne#esare in program.
Llo#ul ,#onditie? testeaza #onditia. -e regula #onditia este ,#ontor <
valoare 0inala?.
Observatie' Repetitiva poate lu#ra si des#res#ator #az in #are #onditia
se s#+imba.
Llo#ul ,in#rementare? realizeaza #resterea #ontorului #u o unitate in
mod automat.
/e implementeaza in pseudo#od ast0el'
(entru S>v. v0 e&e#uta
(
/0arsitKpentru
/#+ema logi#a '
*=vi
*+v,
P
*=5+1
-a
.(
21
Me#anism de 0un#tionare'
6 /e initializeaza #ontorul #u o valoare initiala7
6 /e evalueaza #onditia ,#ontor < valoare 0inala?7
6 -a#a este adevarat se e&e#uta prelu#rarea ( si #ontorul #reste
automat #u o unitate7
6 -a#a nu iese din instru#rtiune.
Observatii :
6 /e e&e#uta in mod repetat o singura prelu#rare. -a#a trebuie
e&e#utate mai multe prelu#rari a#estea se #uprind intre a#olade intr$
o instru#tiune blo#.
6 Nu se pune R7R dupa paranteza in#+isa R"R a instru#tiunii R0orR
deoare#e se e&e#uta de n ori o instru#tiune vida.
6 /e pune R 7R dupa o prelu#rare.
6 (ot 0i 0olosite si #ontoare de tip real.
Instru#tiunea este implemetata in limbaAul de programare C;; ast0el '
0or!initializare #onditie in#rementare"( 7
plicatii :
." Cal#ulati suma primelor n numere naturale .
(seudo#od'
intreg n i /
#iteste n
/>*
(entru i>. n e&e#uta
/> s ; i
/0arsit pentru
/#rie /.
C;; '
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n i s 7
22
#lrs#r ! "7
#out<< GGn> ?7
#in==n 7
s>* 7
0or ! i>. i<n i;; "
s>s;i 7
#out<<s 7
get#+ ! "7
I
/imulare numeri#a'
n>1 />*
(. i>. .P1 !a" />*;.>. i>.;.>)
() i>) )P1 !a" />.;)>1 i>);.>1
(1 i>1 1P1 !a" />1;1>4 i>1;.>2
Citeste n
i+=n
S=s+i
i=i+1
-A
./
START
S=0
i=1
Scrie s
STOP
23
Citeste n
i+=n
Citeste 1 i=i+1
-A
./
START
S=0, &=1
i=1
Scrie s, &
STOP
i+=n
P=&21 S=s+1
(2 i>2 2P1 !0" s#rie 4 .
)."/e #ites# n valori . Cal#ulati produsul valorilor pozitive si suma valorilor
negative .
(seudo#od' /#+ema logi#a'
intreg n i & / (
#iteste n
/>*
(>.
(entru i>. n e&e#uta
Citeste &
da#aK&N* atun#i (>(8&
alt0el />/;&
s0arsitKda#a
s0arsit pentru
s#rie / (
C;;'
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n i p s & 7
#lrs#r ! "7
#out<< GGn> ?7
#in==n 7
s>* 7
p>. 7
0or ! i>. i<n i;; "
H
#out<<?&>?7
24
#in==& 7
i0 ! &=* "
p>p8& 7
else
s>s;&
I
#out<<?p>? <<p<<? GG 7
#out<<?s>? <<s<<? GG
get#+ ! "7
I
/imulare numeri#a '
n>1 (>. &>) $. 1
(. i>. .<K1 !a" &>) )=* !a" (>.8)>) i>.;.>)
() i>) )<K1 !a" &>$. $.=* !0" />$. i>.;)>1
(1 i>1 1<K1 !a" &>1 1=* !a" (>)81>4 i>1;.>2
(2 i>2 2<1!0" s#rie $. 4
1." Cal#ulati produsul primelor n numere naturale .
(seudo#od '
intreg n ip
#iteste n
(>.
(entru i>. n e&e#uta
/>/;i7
/0arsit pentru
/CRI% /.
C;;
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n i p 7
25
#lrs#r ! "7
#out<< GGn> ?7
#in==n 7
p>. 7
0or ! i>. i<n i;; "
p>p8i 7
#out<<p 7
get#+ ! "7
I
/#+ema logi#a
/imulare numeri#a '
START
Citeste n
&=1
i=1
i+=n
i=i+1
Scrie &
STOP
P=&2i
-A
./
26
(* n>1 p>.
(. i>. 7 .<>1 !T" 7 p>.8.>. 7 i>.;.>) 7
() i>) 7 )<>1 !T" 7 p>.8)>) 7 i>);.>17
(1 i>1 7 1<>1 !T" 7 p>)81>4 7 i>1;.>27
(2 i>2 7 2<>1 !F" /CRI% 4.
2." Cal#ulati produsul a n valori #itite de la tastatura.
(seudo#od '
intreg n ip& 7
#iteste n
(>.
(entru i>. n e&e#uta
Citeste &7
p>p8&
/0arsit pentru
/CRI% p.
C;;'
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n i p & 7
#lrs#r ! "7
#out<< GGn> ?7
#in==n 7
p>. 7
0or ! i>. i<n i;; "
H
#out<<?&>? 7
#in==& 7
p>p8& 7
I
#out<<p 7
get#+ ! "7
I
2
/imulare numeri#a '
(* n>1 p>. &>) 7 2 7 4 7
(. i>. 7 .<>1 !T" 7 &>) 7 p>.8)>) 7 i>.;.>) 7
() i>) 7 )<>1 !T" 7 &>2 7 p>28)>M 7 i>);.>17
(1 i>1 7 1<>1 !T" 7 &>4 7 p>M84>2M 7 i>1;.>27
(2 i>2 7 2<>1 !F" /CRI% 2M.
/#+ema logi#a '

3."Cal#ulati suma a n valori #itite de la tastatura.
(seudocod:
intreg n is& 7
#iteste n
START
Citeste n
&=1
i=1
i+=n
Citeste 1
i=i+1
Scrie &
STOP
P=&21
-A
./
2"
s>*
(entru i>. n e&e#uta
Citeste &7
s>s;&
/0arsit pentru
/CRI% s.
)**:
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n i s & 7
#lrs#r ! "7
#out<< GGn> ?7
#in==n 7
s>* 7
0or ! i>. i<n i;; "
H
#out<<?&>? 7
#in==& 7
s>s;& 7
I
#out<<s 7
get#+ ! "7
I
!imulare numerica :
(* n>1 p>. &>) 7 2 7 4 7
(. i>. 7 .<>1 !T" 7 &>) 7 p>*;)>) 7 i>.;.>) 7
() i>) 7 )<>1 !T" 7 &>2 7 p>2;)>4 7 i>);.>17
(1 i>1 7 1<>1 !T" 7 &>4 7 p>4;4>.) 7 i>1;.>27
(2 i>2 7 2<>1 !F" /CRI% .).
2)
!c"ema logica :

4." A0lati media aritmeti#a a primelor n numere naturale.
(seudo#od'
intreg n is med 7
Citeste n 7
/>*7
pentru i>. 7 n e&e#uta
s>s;i 7
START
Citeste n
s=0
i=1
i+=n
Citeste 1
i=i+1
Scrie s
STOP
s=s+1
-A
./
30
med>s9i 7
s0arsit pentru
s#rie med.
C;;'
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n i s 7
0loat med 7
#lrs#r ! "7
#out<< GGn> ?7
#in==n 7
s>* 7
0or ! i>. i<>n i;;"
s>s;i7
med>s9i
#out << ,med>?<<med<<? ,7
get#+! "7
I
!imulare numerica :
(* n>1 i>. s>* med>*7
(. i>. .<>1 !T" s>*;.>. med>.9.>.7 i>.;.>) 7
() i>) )<>1 !T" s>);.>1 med>19) 7 i>);.>1 7
(1 i>1 1<>1 !T" s>1;1>4 med>491 7 i>);.>2 7
(2 i>2 2<>1 !F" med>491>).
31
!c"ema logica :

D." /e #ites# n valori . Cal#ulati media valorilor pozitive si media valorilor
negative.
(seudo#od'
START
Citeste n
s=0
$ed=0
i+=n
S=s+i
i=i+1
Scrie #ed
STOP
$ed=s4i
-A
./
32
intreg ni&sumnsumpmedn medp#ountp#ountn 7
Citeste n7
/umn>*
/ump>*
#ountp>.
#ountn>.
pentru i>. 7 n e&e#uta
#iteste &7
da#a &<*
sumn>sumn;&
medn>sumn9#ountn
#ountn>#ountn;.
alt0el
sump>sump;&
medp>sump9#ountp
#ountp>#ountp;.
s0arsit da#a i>i;.
s0arsit pentru
s#rie mednmedp.
C;;
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n i & sumn sump #ountp #ountn 7
0loat medn medp7
#lrs#r ! "7
#out<< GGn> ?7
#in==n 7
sump>* 7
sumn>*7
#ountp>.7
#ountn>.7
0or ! i>. i<>n i;;"
H
33
#out<<?&>?7
#in==& 7
i0 ! &<*"
sumn>sumn;&7
medn>sumn9#ountn7
else
sump>sump;&7
medp>sump9#ountp7
I
#out << ,medp>?<<medp<<? ,7
get#+! "7
I
!c"ema logica :
34


!imulare numerica :
(* n>2 &>)7$1727$. #ountn #ountp>.7
(. .<>2 !T" &>) )=*!T" /p>*;)>) medp>)9. #ountp>.;.>) i>.;.>) 7
() )<>2 !T" &>$1 $1=* !F" /n>*$1>$1 medn>$19. #ountn>.;.>) i>);.>17
(1 1<>2 !T" &>2 2=*T" /p>2;)>4 medp>49)>1 #ountp>);.>1
i>1;.>27
Citeste n
i+=n
Citeste 1 i=i+1
-A
./
START
Sn7S&=0
$ed n, #ed & =0
Scrie #edn, #ed&
STOP
1%0
C'(nt n, c'(nt &=1
$edn=Sn4c'(ntn
S&=S&21 Sn=Sn+1
$ed&=S&4c'(nt&
C'(ntn=c'(ntn+1 C'(nt&=c'(nt&61
35
(2 2<>2 !T" &>$. $.=* !F" /n>$1$.>$2 medn>$29)>$) #ountn>);.>1
i>2;.>37
(3 3<>2 !F" s#rie $) 1.
M."Cititi un numar n . A0isati divizorii lui .
(seudocod :
intreg n i .
Citeste n 7
i>)
pentru i<n
da#a n:i>*
s#rie i .
s0arsit da#a i>i;.
s0arsit pentru.
)**:
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n i 7
#lrs#r ! "7
#out<<?n>? 7
#in==n 7
0or! i>) i<n i;; "
i0 ! n:i> >* " #out<<i7
get#+ ! "7
I
!c"ema logica :
36

/imulare numeri#a '
(* n>4 i>)
(. )<>4 !A" 4:)>* !A" s#rie ) i>);.>1
() 1<>4 !A" 4:1>* !A" s#rie 1 i>1;.>2
(1 2<>4 !A" 4:2>* !F" i>2;.>3
(2 3<>4 !A" 4:3>* !F" i>3;.>4
(3 4<>4 !A" 4:4>* !A"s#rie 4 i>4;.>D
(4 D<>4 !F" s#rie ) 1 4
Instructiunea '+"ile'
(ermite e&e#utarea unei instru#tiuni #at timp o #onditie este
indeplinita.
%ste o instru#tiune #u test initial!se testeaza intai #onditia si apoi se
e&e#uta prelu#rarea" si numar ne#unos#ut de itratii!programatorul nu
START
Citeste n
i=2
i+=n
i=i+1
Scrie #ed
STOP
-A
./
n3i=0
Scrie i
3
#unoaste in momentul s#rierii programului de #ate ori se e&e#uta
prelu#rarea".
Instru#tiunea RU+ileR implementeaza stru#tura logi#a
R#atKtimp9s0arsitK#atKtimpR #are se reprezinta ast0el'
(seudo#od'
CatKtimp #onditie e&e#uta
(
/0arsitK#atKtimp
/#+ema logi#a'
Me#anism de 0un#tionare'
6 /e evalueaza #onditia la o valoare logi#a7
6 -a#a este adevarata se e&e#uta prelu#rarea ( si se revine la testul
#onditiei 7
6 -a#a nu prelu#rarea nu se e&e#uta ni#iodata.
Observatii '
6 -a#a #onditia nu este indeplinita de la in#eput preu#rarea nu se
e&e#uta ni#iodata.
6 (rogramatorul are obligatia de a initializa #ore#t variabilele ne#esare
instru#tiunii respe#tive!initializarea se 0a#e prin atribuire sau prin
#itire de la tastatura sau din 0isier".
6 (rogramatorul are obligatia de a trans0orma #onditia din adevarata in
0alsa dupa un numar 0init de iteratii!in #az #ontrar rezulta o bu#la
in0inita".Modo0i#area se realizeaza prin in#rementari de#rementari
sau #itiri da la tastatura si 0isier.
6 Nu se pune R7R dupa paranteza in#+isa.
Instru#tiunea este implemetata in limbaAul de programare C;; ast0el '
U+ile!#onditie"( 7
C'nd=T
P
-a
.(
3"
plicatii :
.."Cal#ulati suma primelor n numere naturale 0olosind instru#tiunea ,U+ile?.
(seudo#od'
intreg n i /
#iteste n
/>*
i>.
#atKtimp iPn e&e#uta
/>/ ; i
i>i;.
s0arsitK#atKtimp
s#rie /
!c"ema logica:
Citeste n
i+=n
S=s+i
i=i+1
-A
./
START
S=0
i=1
Scrie s
STOP
3)
!imulare numerica:
(o n>1 />* i>.
(. i>. .<K1 !a" />*;.>. i>.;.>)
() i>) )<K1 !a" />.;)>1 i>.;)>1
(1 i>1 1<K1 !a" />1;1>4 i>1;.>2
(2 i>2 2<K1 !0" s#rie 4.

)**:
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n s i 7
#out<<?Vn?7
#out<<?n>?7
#in==n7
s>*7
i>.7
U+ile !i<n"
H
s>s;i
i>i;.
I
#out<<?s>?<<s<<GG GG7
get#+ ! "7
I
)."Cal#ulati produsul a n valori #itite de la tastatura.
(seudocod :
intreg n i ( &
#iteste n
(>.
i>.
40
#atKtimp i<Kn e&e#uta
#iteste &
(>(8&
i>i;.
s0arsit #at timp
/#+ema logi#a'
!imulare numerica:
(o n>1 &>)24 (>.
(. i>. .<K1 !a" &>) (>.8)>) i>.;.>)
() i>) )<K1 !a" &>2 (>)82>M i>.;)>1
(1 i>1 1<K1 !a" &>4 (>48M>2M i>.;1>2
(2 i>2 2<K1 !0" s#rie 2M.
START
Citeste n
&=1
i=1
i+=n
Citeste 1
i=i+1
Scrie &
STOP
P=&21
-A
./
41
)**:
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n p i &7
#lrs#r ! "7
#out<<?Vn?7
#out<<?n>?7
#in==n 7
p>. 7
i>. 7
U+ile !i<n"
H
#out<<?&>?7
#in==&7
p>p8&7
i>i;. 7
I
#out<< GGp> GG<<p<< GG GG 7
get#+ ! " 7
I
1." Cal#ulati suma #i0relor unui numar .
%& ' n>.)1
/uma #i0relor>.;);1>4
(seudocod:
Intreg ns#
Citeste n
/>*
Cat timp n=* e&e#uta
C>n:.*
/>s;#
N>n9.*
/0arsit #at timp
/#rie s
42
C;;'
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n s # 7
#out<<?Vn?7
#out<<?n>?7
#in==n7
s>*
U+ile !n=*"
H
#>n:.*7
s>s;#
n>n9.*7
I
#out<<?s>?<<s<<GG GG7
get#+ ! "7
I

!imulare numerica:
(*'n>.)1s>*
(.'.)1=* A #>.)1Q:.*>1s>*;1n>.)19.*>.)
()'n>.)=* A#>.):.*>)s>1;)>3n>.9.*>.
(1'n>.=* A#>.:.*>.s>3;.>4n>.9.*>*
(2'n>*=* Fs#rie s>4
43
!c"ema logica
2."Cal#ulati produsul #i0relor unui numar.
(seudocod:
Intreg np #
Citeste n
(>.
Cat timp n=o e&e#uta
C>n:.*
(>p8#
N>n9.*
/0arsit #at timp
s#rie p
START
Citeste n
s=0
n%0
C=n310
n=n410
Scrie s
STOP
S=s+c
-A
./
44
START
Citeste n
&=1
n%0
C=n310
n=n410
Scrie &
STOP
&=&2c
-A
./
)**: !c"ema logica:
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n p # 7
#out<<?Vn?7
#out<<?n>?7
#in==n7
p>. 7
U+ile !n=*"
H
#>n:.*7
p>p8#
n>n9.*7
I
#out<<?p>?<<p<<GG GG7
get#+ ! "7
I
!imulare numerica:
(*'n>.)1p>.
(.'n>.)1=* A#>.)1:.*>1 p>.81>1n>.)19.*>.)
()'n>.)=*A #>.):.*>)p>18)>4n>.)9.*>.
(1' n>.=* A#>.:.*>. p>48.>4n>.9.*>*
(2'n>*=* Fs#rie p>4
45
3. A0isati #i0rele unui numar.
(seudocod:
intreg n #
#iteste n
#at timp n=* e&e#uta
#>n:.*
s#rie #
n>n9.*
s0arsit #at timp.

)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
Hint n #7
#lrs#r! "7
#out<<?n>?7
#in==n 7
U+ile!n=*"
H
#>n:.* 7
#out<<#<<? ,7
n>n9.*7
I
get#+! "7
I
!imulare numerica:
(*' n>.)17
(.' .)1=* !T"7 #>.)1:.*>17 n>.)19.*>.)7
(1' .)=* !T"7 #>.):.*>)7 n>.)9.*>.7
(2' .=* !T"7 #>.:.*>.7 n>.9.*>*7
(3' *=. !F"7 s#rie ..

46
!c"ema logica :
4.A0lati produsul #i0relor nenule ale unui numar.
(seudo#od'
intreg p # n
#iteste n7
p>*
#at timp n=*
#>n:.*
da#a #=*
p>p8#
n>n9.*
s0arsitKda#a
s0arsitK#atKtimp
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
START
Citeste n
n%0
i=i+1
Scrie #ed
STOP
-A
./
c=n
310
Scrie c
4
Hint n # p7
#lrs#r! "7
#out<<?n>?7
#in==n 7
p>* 7
U+ile!n=*"
H
#>n:.* 7
i0!#@>*"
p>p8#7
n>n9.*7
I
#out<<?p>?<<p7
get#+! "7
I
/imulare numeri#a'
(*'n>.)1* p>.
(.'n>.)1*=* A#>.)1*:.*>. *=*!F" n>.)1*9.*>.)1
()'n>.)1=*A #>.)1:.*>1p>.81>1n>.)19.*>.)
(1' n>.)=* A#>.):.*>) p>)81>4n>.)9.*>.
(2'n>.=* !A" #>.:.*>. p>48.>4 n>.9.*>*
(3'n>*=o!F" s#rie 4
!c"ema logica :

4"
D. /e #iteste un numar n. A0lati inversul lui.
(seudocod:
intreg n ninv #
#iteste n
ninv>*
#at timp n=* e&e#uta
#>n:.*
ninv>ninv8.*;#
n>n9.*
s0arsit #at timp
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
Hint n # ninv7
#lrs#r! "7
#out<< RVn R 7
#out<<?n>?7
#in==n 7
ninv>*7
U+ile!n=*"
H
#>n:.* 7
ninv>ninv8.*;#7
n>n9.*7
I
#out<<?ninv>?<<ninv7
get#+! "7
I
4)
!c"ema logica :

/imulare numeri#a'
(*' n>.)17 ninv>*7
(.' .)1=* !T"7 #>.)1:.*>17ninv>*8.*;1>17 n>.)19.*>.)7
(1' .)=* !T"7 #>.):.*>)7 ninv>18.*;)>1)7 n>.)9.*>.7
(2' .=* !T"7 #>.:.*>.7 ninv>1)8.*;.>1).7 n>.9.*>*7
(3' *=* !F"7 /#rie 1)..
M./e #iteste un numar. A0lati da#a e palindrom.
(seudocod :
intreg n nau& # ninv
#iteste n
ninv>*
n>nau&
START
Citeste n
n%0
i=i+1
Scrie #ed
STOP
-A
./
c=n
310
.inv=ninv210+C
.inv=0
50
#at timp n=* e&e#uta
#>n:.*
ninv>ninv8.*;#
n>n9.*
s0arsit #at timp
da#a ninv>nau&
s#rie palindromGG
alt0el nu e palindrom?
s0arsit da#a
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
Hint n # ninv nau&7
#lrs#r! "7
#out<< RVn R 7
#out<<?n>?7
#in==n 7
nau&>ninv7
ninv>*7
U+ile!n=*"
H
#>n:.* 7
ninv>ninv8.*;#7
n>n9.*7
I
i0!nau&> >ninv"
#out<<?palindrom?7
else
#out<< Rnu e palindrom R 7
get#+! " 7
I
!c"ema logica :
51
!imulare numerica :
(*' n>.)17 ninv>*7
(.' .)1=* !T"7 #>.)1:.*>17ninv>*8.*;1>1 7 n>.)19.*>.)7
(1' .)=* !T"7 #>.):.*>)7 ninv>18.*;)>1)7 n>.)9.*>.7
(2' .=* !T"7 #>.:.*>.7 ninv>1)8.*;.>1).7 n>.9.*>*7
(3' *=* !F"7 1).>.)1 nu e palindrom
Citeste n
i+=n
C=n310 i=i+1
-A
./
START
S=0
P=1
Scrie s, &
STOP
C32=0
S=s+c P=&2c
52
Instructiunea ' do +"ile'
(ermite e&e#utarea unei instru#tiuni #at timp o #onditie este
indeplinita.
%ste o instru#tiune #u test 0inal!se e&e#uta mai intai prelu#rarea si
apoi are lo# testarea #onditiei" si numar ne#unos#ut de
itratii!programatorul nu #unoaste in momentul s#rierii programului de #ate
ori se e&e#uta prelu#rarea".
Instru#tiunea Rdo U+ileR implementeaza stru#tura logi#a Re&e#uta 9
#atKtimpR #are se reprezinta ast0el'
(seudo#od'
%&e#uta
(
Cat timp #onditie.
Me#anism de 0un#tionare'
6 /e realizeaza prelu#rarea (7
6 /e evalueaza #onditia ,#ontor < valoare 0inala?7
6 -a#a este adevarat se ree&e#uta prelu#rarea da#a nu iese din
instru#rtiune.
Observatii '
6 /e e&e#uta in mod repetat o singura prelu#rare. -a#a trebuie
e&e#utate mai multe prelu#rari a#estea se #uprind intre a#olade intr$
o instru#tiune blo#.
6 Nu se pune R7R dupa paranteza in#+isa R"R a instru#tiunii R0orR
deoare#e se e&e#uta de n ori o instru#tiune vida.
6 /e pune R 7R dupa o prelu#rare.
6 (ot 0i 0olosite si #ontoare de tip real.
Instru#tiunea este implemetata in limbaAul de programare C;; ast0el '
-o
H
(
I
U+ile #ond.

53
plicatii :
.."Cal#ulati suma primelor n numere naturale.
(seudocod:
intreg n is
#iteste n
s>*
i>.
e&e#uta
s>s;i
i>i;.
#at timp i<>n
s#rie s.
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
H
int n s i
#out<<?n>?7
#in==n7
s>*7
i>.7
do
H
s>s;i7
i>i;.7
IU+ile !i<>n"
#out<<s7
I
54
!c"ema logica:
!imulare numerica
(*' n>3 />* i>.
(.' />*;.>. i>.;.>) )<>3 A
()' />.;)>1 i>);.>1 1<>3 A
(1' />1;1>4 i>1;.>2 2<>3 A
(2' />4;2>.* i>2;.>3 3<>3 A
(3' />.*;3>.3 i>3;.>4 4<>3 F
s#rie .*
)."Cal#ulati produsul primelor n numere naturale.
(seudocod:
intreg n ip
#iteste n
p>.
i>.
START
Citeste n
Scrie s
STOP
-A
./
S=0
i=1
S=s+i
i=i+1
i+=n
55
e&e#uta
p>p8i
i>i;.
#at timp i<>n
s#rie p.
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
H
int n pi
#out<<?n>?7
#in==n7
p>.7
i>.7
do
H
p>p8i7
i>i;.7
IU+ile !i<>n"
#out<<p7
I
56
!c"ema logica :
!imulare numerica :
(o n>) p>. i>.
(. p>.8.>. i>.;.>) )<>) !A"
() p>)8.>) i>);.>1 1<>) !F"
/#rie )
1." /e #iteste un numar n.A0isti #i0rele a#estui numar.
(seudocod :
intreg n # 7
#iteste n 7
e&e#uta
#>n:.*7
s#rie # 7
n>n9.*7
#at timp n=*7
START
Citeste n
Scrie &
STOP
-A
./
P=1
i=1
P=&2i
i=i+1
i+=n
5
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
Hint n #7
#lrs#r! "7
#out<<?n>?7
#in==n 7
do
H
#>n:.* 7
n>n9.*7
I
U+ile!n=*"
#out<<#<<? ,7
get#+! "7
I
!imulare numerica
(*' n>.D4M
(.' #>.D4M:.*>M s#rie M n>.D4M9.*>.D4 .D4=* A
()' #>.D4:.*>4 s#rie 4 n>.D49.*>.D .D=* A
(1' #>.D:.*>D s#rie D n>.D9.*>. .=* A
(2' #>.:.*>. s#rie . n>.9.*>* *=* F
5"
!c"ema logica :
2."/e #iteste un numar n . A0lati suma #i0relor lui.
(seudocod:
intreg n s # 7
#iteste n 7
s >*
e&e#uta
#>n:.*7
s>s;#
n>n9.*
#at timp n=*
s#rie s.
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
Hint n # s7
START
Citeste n
Scrie c
STOP
-A
./
C=n310
.=n410
n%0
5)
#lrs#r! "7
#out< RVnR 7
s>*
#out<<?n>?7
#in==n 7
do
H
#>n:.* 7
s>s;#7
n>n9.*7
I
U+ile!n=*"
#out<<?s>?<<s<<? ,7
get#+! "7
I
!c"ema logica :

START
Citeste n
Scrie c
STOP
-A
./
S=0
C=n310
n%0
S=s+c
.=n410
60
!imulare numerica
(*' />* n>)24
(.' #>)24:.*>4 />*;4>4 n>)249.*>)2 )2=* A
()' #>)2:.*>2 />4;2>.* n>)29.*>) )=* A
(1' #>):.*>) />.*;)>.) n>)9.*>* *=* F
s#rie .*
3." /e #iteste un numar n. A0lati produsul #i0relor nenule.
(seudocod :
intreg n p # 7
#iteste n
p>.7
e&e#uta
#>n:.*
da#a #=*
p>p8#
s0arsit da#a n>n9.*
#at timp n=*
s#rie p.
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
Hint n # p7
#lrs#r! "7
#out<<?n>?7
#in==n 7
p>* 7
do
H
#>n:.* 7
i0!#@>*"
61
p>p8#7
n>n9.*7
I
U+ile!n=*"
#out<<?p>?<<p7
get#+! "7
I
!c"ema logica :

!imulare numerica:
(*'n>.)1* p>.
(.'#>.)1*:.*>. *=*!F" n>.)1*9.*>.)1 n>.)1*=* A
()' #>.)1:.*>1p>.81>1n>.)19.*>.) n>.)1=*A
START
Citeste n
Scrie &
STOP
-A
./
P=1
C=n310
C8=0
.=n410
n%0
P=&2c
-A
62
(1'#>.):.*>) p>)81>4n>.)9.*>. n>.)=* A
(2' #>.:.*>. p>48.>4 n>.9.*>* n>.=* !A"
(3'n>*=*!F" s#rie 4
4." /e #iteste un numar n . A0isati inversul lui.
(seudocod :
intreg n ninv #.
#iteste n
ninv>*
e&e#uta
#>n:.*
ninv>ninv8*;#
n>n9.*
#at timp n=*
s#rie ninv.
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
Hint n # ninv7
#lrs#r! "7
#out<< RVn R 7
#out<<?n>?7
#in==n 7
ninv>*7
do
H
#>n:.* 7
ninv>ninv8.*;#7
n>n9.*7
I
U+ile!n=*"
#out<<?ninv>?<<ninv7
get#+! "7
I
63
!c"ema logica :

/imulare numeri#a'
(*' n>.)17 ninv>*7
(.' #>.)1:.*>17ninv>*8.*;1>17 n>.)19.*>.)7 .)1=* !T"7
(1' #>.):.*>)7 ninv>18.*;)>1)7 n>.)9.*>.7 .)=* !T"
(2' #>.:.*>.7 ninv>1)8.*;.>1).7 n>.9.*>*7 .=* !T"7
(3' *=* !F"7 /#rie 1)..
D." /e #iteste un numar n . A0isati da#a e palindrom.
(seudocod :
intreg n nau& # ninv
#iteste n
ninv>*
START
Citeste n
Scrie &
STOP
./
.inv=0
C=n310
.=n310
n%0
.inv=ninv210+C
-A
64
nau&>n
e&e#uta
#>n:.*
ninv>ninv8*;#
n>n9.*
#at timp n=*
da#a ninv>nau&
s#rie , palindrom?
alt0el
s#rie , nu e palindrom?
s0arsitKda#a
!imulare numerica :
(*' n>.)17 ninv>*7
(.' #>.)1:.*>17ninv>*8.*;1>1 7 n>.)19.*>.)7 .)1=* !T"7
(1' #>.):.*>)7 ninv>18.*;)>1)7 n>.)9.*>.7 .)=* !T"7
(2' #>.:.*>.7 ninv>1)8.*;.>1).7 n>.9.*>*7 .=* !T"7
(3' *=* !F"7 1).>.)1 nu e palindrom
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
Hint n # ninv nau&7
#lrs#r! "7
#out<< RVn R 7
#out<<?n>?7
#in==n 7
nau&>n7
ninv>*7
do
H
#>n:.* 7
ninv>ninv8.*;#7
n>n9.*7
I
65
i0!nau&> >ninv"
U+ile!n=*"
#out<<?palindrom?7
else
#out<< Rnu e palindrom R 7
get#+! " 7
I
!c"ema logica :

START
Citeste n
Scrie ninv
STOP
./
.inv=0
C=n310
.=n310
n%0
.inv=ninv210+C
-A
.=na(1
.inv=na(1
.( e &alindr'# &alindr'#
66
M." /e #iteste un numar n. Cal#ulati produsul #i0relor impare si suma #i0relor
pare.
(seudocod:
intreg n p s #
#iteste n
s>*
p>.
e&e#uta
#>n:.*
da#a #:)>*
s>s;#
alt0el
p>p8#
s0arsit da#a n>n9.*
#at timp n=*
s#rie s si p.
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
Hint n # p s7
#lrs#r! "7
#out<<?n>?7
#in==n 7
p>.7
s>*7
do
H
#>n:.* 7
i0!#:)> >*"
s>s;#7
else
p>p8#7
n>n9.*7
I
U+ile!n=*"
6
#out<<?p>?<<p<<? ,7
#out<< Rs>R<<s<< R R7
get#+! " 7
I
!c"ema logica :
!imulare numerica
(* n>.)1 s>* p>.
(. #>.)1:.*>1 1:)>*!F" p>.81>1 n>.)19.*>.) .)1=* !A"
() #>.):.*>) ):)>*!A" s>);*>) n>.)9.*>. .)=* !A"
START
Citeste n
STOP
./
S=0
C=n310
.=n410
C32=0
-A
P=1
S=s+c
n%0
P=&2c
Scrie s,&
./
-A
6"
(1 #>.:.*>1 .:)>*!F" p>.81>1 n>.9.*>* .=* !A"
(2 *=*!F" s#rie ) 1
),! --
.O/IU.I I./RO%U)/I0E
Evolutia limbajelor de programare
LimbaAul de programare reprezinta un miAlo# de #omuni#are intre
utilizatorul uman #are este programatorul si sistemul de #al#ul.
-es#rierea algoritmului in limbaA de programare se 0a#e #u aAutorul
unui program.
Un program este o su##esiune de #omenzi$instrustiuni #e vor 0i
e&e#utate de sistemul de #al#ul.
Un #al#ulator poate sa WinteleagaW mai ulte limbaAe de programare
intru#at 0ie#are limbaA are un ?tradua#tor?$#ompilator propriu.
%volutia limbaAelor de programare a avut lo# paralel #u evolutia
sistemelor de #al#ul.
Generatiile #ele mai importante ale limbaAelor de programare'
.. LimbaAe #od$masina '
-enumite si limbaAe de baza sau de nivel zero limbaAele #od$masina
des#riu instru#tiunile in sistemul de numeratie binar !se#vente de . si
*". (rogramele sunt e&e#utate numai pentru #al#ulatorul pentru #are
au 0ost s#rise.
(rimul program a 0ost realizat pantru masina me#ani#a a lui
C+arles Lubbage !.M12" de #atre #ontesa Ada Lovela#e 0ii#a poetului
Lord LXron.
). LimbaAe de asamblare '
LimbaAele de asamblare au la baza un set de #oduri !mneomoni#e" #are
sunt reprezentari simboli#e ale instru#tiunilor masina.
1. LimbaAe de nivel inalt '
6)
Foloses# #uvinte din vo#abularul limbii engleze sunt a##esibile si au o
arie larga de apli#atie ' #al#ule stiinti0i#e sau e#onomi#e reprezentari
gra0i#e probleme de optimizare Ao#uri.
Cele mai reprezentative limbaAe de nivel inalt sunt '
FORTRAN!FORmula TRANslation" 5 #al#ule te+no$
stiinti0i#e!.Y33"
COLOL!Common Lusiness Oriented Language" 5 .Y4* 5probleme
e#onomi#e
LA/IC!LegginerGs Allpurpose /Xmboli# Instru#tions Code" 5
.Y42 5 apli#atii #omple&e
(A/CAL 5 .YD.7 6ersiuni noi' Turbo (as#al Lorland (as#al
-elp+i OOT
C9C;; $ .YD)
ZA6A 5 aparatura ele#troni#a inteligenta #one#tata in retea
LI/(C!List (ro#essing Language" 5 .Y43
(ROLOG!(ROgramming LOGi#" $ .YD1
/tiluri de programare '
/tilul de programare re0le#ta atat modul de gandire al
programatorului #at si 0elul in #are a#esta des#rie algoritmul la nivel de
program.
.. (rogramarea nestru#turata 5 stil ?liber? de programare 0ara reguli.
). (orgramarea stru#turata 5 respe#ta prin#ipiul ' ori#e program poate
0i implementat dora prn stru#turi de #ontrol se#ventiale alternativa
sau repetitive. (ot 0i realizate doar in limbaAe de programare #are au
instru#tiuni e#+ivalente stru#turilor de #ontrol. (as#al si C9C;; sunt
ast0el de limbaAe.
1. (rogramarea orientata spre obie#te !OO(". LimbaAele de programare
(as#al si C9C;; au si versiuni OO(.
0
!tructura programelor
Indi0erent de limbaAul in #are este s#ris un program des#rie datele
prelu#rative unui algoritm. /tr#tura generala a unui program realizat in
limbaAul C9C;; este redata in tabelul uramtor '
LIMLAZUL C9C;;
-ire#tive pro#esare
In#ludere 0isiere bibliote#a +eader !antet"
Tinclude<mat+.+=
de0initii de #onstante7 const n>.37
de0initii de tipuri de date7 t1pdef float sir[3\
de#laratii de variabile 7 int & X 7
de#laratii de subprograme!0un#tii"
void mai2 3
Hinstru#tiuni 7apeluri de subprograme 7
I
(re#izari '
.. Un program C9C;; este un ansamblu de instru#tiuni grupate in 0un#tii.
). Ori#e program C9C;; are #el putin o 0un#tie$0un#tia prin#ipala #are se
de#lara prin void main ! ".
1. Ori#e program C9C;; poate avea un sau mai multe 0un#tii de#larate de
programator.
2. Un blo# de instru#tiuni este delimitat printr$o pere#+e de a#olade H I.
3. Fie#are instru#tiune se termina #u ?4 ? .
%&emplu '
/e #ites# doua numere intregi a si b 7 se a0iseaza suma lor.
Tin#lude<iostream.+=
int a b 7
void main ! " 990un#tia prin#ipala
H#out<<?a>?7 #in==a7
#out<<?b>?7 #in==b7
#out<<?/uma a;b>?<< a;b<<endl7
I
1
0ocabularul limbajului de programare
6o#abularul ori#arui limbaA de programare este 0ormat din' setul de
#ara#tere identi0i#atori separatori si #omentarii.
/etul de #ara#tere '
Ori#e program este s#ris #u aAutorul uramtoarelor #ara#tere '
6 litere mari si mi#i ale al0abetului englez !A$J a$z" numite #ara#tere
al0abeti#e 7
6 #i0rele sistemului de numerotatie ze#imal numite si #ara#tere
numeri#e !*$Y" 7
6 #ara#tere spe#iale ' ; $ 8 9 > ] [ \ H I ^ _ spatiu ` K a b.
Identi0i#atori '
Un identi0i#ator reprezinta o su##esiune de litere #i0re sau
#ara#terul spe#ial ?K?7 primul #ara#ter nu trebuie sa 0ie #i0ra.
Identi0i#atorii pot avea ori#e lungime.
%&emple '
.. identi0i#atori ' a bc #odK* produs.
). /u##esiuni de #ara#tere #e nu pot 0i indenti0i#atori ' 1X!primul
#ara#ter este o #i0ra" ur;m!#ontine un #ara#ter spe#ial".
Obs ' Ori#e identi0i#ator trebuie de0init sau de#larat intr$o linie
anterioara re0eririi sale.
Cuvintele #+eie in limbaAul de programare C9C;; ' U+ile void 0or do
stru#t #+ar 0loat sUeit#+ NULL in#lude #onst 0loor i0 de0ine.
/eparatori
Unitatile sinta#ti#e!ansambluri de #ara#tere" sunt separate intre ele
0ie prin unul sau mai multe spatii libere!blanS" 0ie prin s0arsitul de
linie !#ara#terul CR" 0ie prin #ara#terul ?7 ? #are se utilizeaza pentru
separarea instru#tiunilor si a de#laratiilor.
Comentarii
In te&tul unui program sunt ne#esare note e&pli#ative!#omentarii"
atasate unor se#vente deoperatii de#larari de tipuri de date9
variabile #are nu au un rol a#tiv in derularea programului. A#estea
sunt delimitate in limbaAul (as#al prin H...I iar in limbaAul C9C;; sunt
pre#edate de ?99.?
2
)onstante si variabile
Asa #um se #unoaste un algoritm o0era date de iesire pe baza datelor
de intrare. In #onse#inta un program #are implementeaza un algoritm
0oloseste date #are se pot #lasi0i#a ast0el '
variabile
dupa stabilitate
#onstante
-atele problemei naturale
!#lasi0i#are" numeri#e intregi
reale
dupa natura litere
#ara#ter #i0re
semne spe#iale
sir de #ara#tere
logi#e
Tip de data
(rin tip de data se intelege o #onventie #u privire la '
6 multimea valorilor
6 operatii #ara#teristi#i
6 lungimea si organizarea zonei de memorie
%&ista limbaAe bogate de data.
LimbaAul C utilizeaza tipuri de date numeri#e. In lo#ul tipului de date din
alte limbaAe limbaAul C 0oloseste ve#tor de #ara#tere sau pointer.
C9C;; o0era tiplu ponter spre o zina de memorie #are reprezinta un tip de
date ... C el #ontine adresa de in#eput a zonei de meorie si nu #ontinutul ei.
In lo#ul tipului logi# limbaAul C9C;; 0oloseste o #onventie ' *$Fals iar
valorile di0erite de * sunt adevarate.
3
LimbaAul C9C;; o0era tipuri stru#turale #um ar 0i ve#torii stru#turile
si #+iar #lasele. Tipurile de date din limbaAul C9C;; sunt '
-ate Numar de o#teti
Intregi Int )
s+ortint )
unsigned )
long 2
Unsigned long 2
Reale Flat 2
-luble M
Long double .*
Cara#ter C+ar .
)onstante
Constantele reprezinta zone de meorie #are au #ontinultul 0i&. %le sunt
utile in programe #and se utilizeaza des anumite valori #and se 0oloses#
valori de dimensiuni mari si numar mare de ze#imale.
Constantele se de0ines# o singura data in program si se
-e0inirea unei #instante pune in legatura #uvinte #+eie #onst
eventual tipul #onstantei si numele aso#iat.
-e0inirea #onstatelor
Const[tip\idK#onstanta>valoare
%&emplu '
Const pi>1.2 7 #onst unu> d.G 7
%&ista mai multe tipuri de #onstante ast0el '
intregi 5 numere intregi pozitive #u valori intre * si 2.)Y2.Y42.)Y3 si
#are sunt de treii tipuri '
..
ze#imale!baza .*" !e& ' 21 7 .3) 7D34D"
).
o#tale!baza M" 5 sisunt pre#edate de un * nesemni0i#ativ
!e& ' *123$=132
!M"
1.
+e&aze#imale!baza .4" 5 sunt pre#edate de *& sau *B
!e& ' *B)F2$=)F2
!.4"
reale 5 ori#e valoare reala !e& ' 1) 23 *3"
#ara#ter 5 ori#e #ara#ter s#ris intre apostro0uri!e& ' dAG"
4
siruri de #ara#tere 5 o su##esiune de #ara#tere delimitate tot prin
g+ilimele
#onstate de0inite prin #uvinte$#+eie !e& ' NULL"
0ariabile
/#op ' permit in#luderea datelor de programe
-e0initie' reprezinta ansamblul adresa 0i&a #ontinut variavil din
memoria #aruia ii este pus in #orespondenta numere din program.
Memoria poate 0i asimilata unor #asute postale. O variabila reprezinta
o zona de memorie #u adresa de in#eput 0i&a dar #ontinut variabil.
Continutul variabilei $ se supras#rie o noua valoare peste valoarea
ve#+e.
O #elula de variabila este egal #u size o0!tip".
/ize o0 este o 0un#tie #are returneaza lungimea unei variabile sau a
unui tip de data.
(entru a 0i 0olosita in program o variabila se de0ineste o singura data.
Obs ' Numele variabilei este pus in #orespodenta #u adresa de$n#eput
a variabilei in memorie. Ori#e regasire ins#riere #itire se 0a#e de la adresa
respe#tiva pe o zona de memorie.
Operatii tipi#e '
6ariabilele de memorie suporta un set de operatii tipi#e. Cunoasterea
lor este ne#esara pentru utilizarea #ore#ta a variabilelor. Operatii tipi#e
sunt' atribuirea #itirea de la tastatura a0isarea si utilizarea in a&presii.
Mediul limbaAului de programare C9C;;'
Mediul de programare este o apli#atie #u un meniu intera#tiv #are
o0era o inter0ata a##esibila si prietenoasa.
Lansarea in e&e#utie 5 se lanseaza C Corland C Lin LC.e&e.
A##esul la 0isiere' 0ile$=neU$=e&istent
/alvare' F) sau File$=/ave as
%sitare' de la tastatura
Compilare ' #ompile$=#ompile sau Alt;F.
-epanare ' Run$=trage into
In#+idere' Alt;B
5
0ectori
!Tablouri unidimensionale"
/#op' (ermit implementarea datelor de a#elasi tip.
-e0initie' Reprezinta o #ole#tie de date de a#elasi tip situate intr$o
zona #ontinua de memorie.
-e0inirea in program '
O variaile ve#tor trebuie de0inita o singura data si poate 0i 0olosita de
#ate ori e nevoie.
-e0inirea se 0a#e #u sinta&a ' tipKdata numeKve#tor[e&p\ 7
%&' int ve#[1\7
Aspe#tul in memorie'
-upa de0inirea in progra in memorie se alo#a o zona#are are uramtorul
aspe#t!tipul ?int? o#upa ) o#teti".
l > size o0!tip"
L>e sing o0!tip"
A##esarea unui element de ve#tor in memorie'
Un element de ve#tor are #a adresa de in#eput Af.
A
element.
>A
ve#[*\
> Af
6
9le#ent 1 9le#ent2
:vec;0<= :vec;1<=
A>
n
i=1
A
element)
>A
ve#[.\
> Af;l
A
element i
>A
ve#[i$.\
> Af;!i$."l
(entru a##esarea unui element de ve#tor se 0oloseste relatia'
A
element i
>A
ve#[i$.\
> Af;!i$."l
Obs'pentru un ve#tor se retine o singura adresa indi0erent de
numarul de elemente.
(entru a##esarea unui element de ve#tor in program se 0oloseste
sinta&a 'numeKve#tor[indi#e\
%& ' ve#[*\
Operatii tipi#e $= un element de ve#tor se #omporta #a o variabila de
tipul respe#tiv. -i0era doar a##esarea. La variabila se 0oloseste numele
variabilei iar la ve#tor numeKve#tor!indi#e".
In #onse#inta elementele suporta urmatoarele operatii tipi#e '
.. Atribuirea $= reprezinta operatia prin #are unei variabile i se aso#iaza
un #ontinut la momentul s#rierii programului'
/inta&a' numeKve#tor[indi#e\>val7
%&emplu' ve#[*\>*
). Citirea de la tastatura $= reprezinta operatia prin #are unei variabile i
se aso#iaza valoarea tastata la rularea programului
/inta&a '#in== numeKve#tor[indi#e\7
%&emplu '#in==ve#[.\ 7
1. A0isarea $= reprezinta operatia prin #are #ontinutul unei variabile este
a0isat pe monitor
/inta&a '#out<<numeKve#tor[indi#e\ 7
%&emplu '#out<<ve#[*\ 7
2. Utilizarea in a&presii$=un element de ve#tor are rol de operant in
e&presie
%&emplu've#[*\>ve#[.\;ve#[)\7
%&emplu'
Urmatorul program #ontine e&emple pentru operatiile tipi#e si
aspe#tul in memorie'
Tin#lude<iostream.+=
Tin#lude<#onio.+=
void main! "7
H
99de#larare ve#tor
int ve#[1\7

0loat v [D\7
99atribuire
ve#[*\>.**7
99#itire
#out<<?ve#[.\>7 ?
#in==ve#[.\ 7
99a0isare
#out<<ve#[*\ 7
#out<<ve#[.\ 7
99e&presie
#out<<)8ve#[.\
99lungime element de ve#tori
#out<<size o0!int" 7 )
#out<<size o0!ve#[*\ 7 )
#out<<size o0!ve#[)\"7 )
#out<<size o0!ve#"7 4
99a0isare adrese
#out<<]ve#[*\
#out<<]ve#[.\
#out<<]ve#[)\
&atrici
!6e#tori bidimensionali"
/#op' Memoreaza date de tip matri#ial. -atele de tip matri#ial au
aspe#tul a
..
a
.)
a
.1
a
).
a
))
a
)1
a
1.
a
1)
a
11
Un element este identi0i#at prin indi#i.
-e0inire in program '
O matri#e se de0ineste o singura data #u sinta&a t?ipKdata
numeKvariabila [e&pK.\[e&pK)\?.
%&emplu' int mat[1\[)\
%&p. $=numar de linii
%&p) $=numar de #oloane
Identi0i#area unui element de matri#e #u sinta&a '
numeKmatri#e[indi#e.\[indi#e)\
"
%& 'mat[.\[)\ 7
Operatii tipi#e '
Un element de matri#e se #omporta #a o variabile de tipul respe#tiv si
suporta urmatoarele operatii tipi#e '
.. Atribuire
/inta&a ' nume matri#e[indti#e.\[indi#e)\>val.
%&emplu ' mat[.\[.\>1
). Citirea de la tastatura
/inat&a ' #in==nume matri#e[indi#e.\[indi#e)\
%&emplu ' #in==mat[.\[*\
1. A0isarea
/inta&a ' #out<<numeKmatri#e[indi#e.\[indi#e)\
%&emplu '
Tin#lude<iostream.+=
Tin#lude<#onio.+=
void main! "
H
99de0inire matri#e
int mat[)\[)\
0loat in[3\[1\
99atribuirea elementelor de matri#e
mat[*\[*\>.. 7
mat[.\[*\>.) 7
mat[.\[.\>.1 7
99#itirea elementelor de matri#e de la tastatura
#out<<?mat[*\[.\>?7 #in==mat[*\[.\ 7
#out<<?mat[.\[.\> ? 7 #in==mat[.\[.\7
#out<< ?mat[.\[*\> ?7 #in==mat[.\[*\ 7
99utilizarea in e&presii
mat[*\[*\>mat[.\[.\8mat[.\[*\ 7
99tipul si elementele au a#eeasi lungime
#out<<size o0!mat[*\[*\"<<?9n?7
#out<<size o0!mat[*\[.\"<<?9n?7
#out<<size o0!mat[.\[*\"<<?9n?7
#out<<size o0!mat[.\[.\"<<?9n?7
#out<<size o0!int"<<?9n?7
)
#out<<size o0!mat"<<?9n?7
99adresele elementului de ve#tor sunt
99su##esiv mai mari #u lungimea tipului
#out_ ]mat[*\[*\ _ ,9n?7
#out_ ]mat[*\[.\<<?9n? 7
#out<<]mat[.\[*\<<?9n? 7
#out<<]mat[.\[.\<<?9n?7
get#+! " 7
I
/ipul 5struct5
/#op ' permit implementarea datelor de tipuri di0erite.
-e0initie ' reprezinta o #ole#tie de date de tipuri di0erite situate intr$
o zona #ontinua de memorie.
%&emplu ' O adresa 0oloseste date sir de #ara#tere si numeri#e.
Aspe#tul in memorie '
ln>size o0!Cn"
L>e size o0!Ci"
-e0inirea variabilei se realizeaza in doua etape'
/e de#lara un tip stru#tura si$apoi pe baza lui se de0ineste o
variabila de tip stru#tura.
-e#lararea se realizeaza #u sinta&a '
/tru#tH
TipK.'#omp.7
Tip)'#omp)7
l l l
?
C1 C2 C3
Af
"0
n
i=1
...
Tipn'#omp n7I
%&emplu'
/tru#t telev
H#+ar nume7
int7
I
-e0inirea se realizeza #u sinta&a'
stru#tH
tip.'#amp.7
...
tip n'#amp n7
InumeKvar
%&emplu'
/tru#t telev
H#+ar8nume7
intKvarsta7
I elev
A doua metoda de de0inire este #ea #lasi#a'
%&' telev ev. ev)l
A##esarea unui element de ve#tor se realizeaza in memorie si in
program'
In memorie adresele #ampurilor sunt'
A
C.
>Af
A
C)
>Af; l
.
...
A
Ci
>esize o0!Ci"
A##esarea in program se realizeaza #u sinta&a'
NumeKvar.numeK#amp
%&' elev.varsta
Un #amp dintr$o variabila se #omporta #a o variabila de tipul respe#tiv
!di0era modul de a##esare la variabila numeKvariabila iar pentru #amp
numeKvar.numeK#amp".
"1
@
i=1
Operatii tipi#e '
.. Atribuirea '
/inta&a ' numeKvar.numeK#amp>val7
%&' elev.varsta>.D7
). Citirea de la tastatura
/inta&a ' #in== numeKvar.numeK#amp 7
%& ' #in==elev.nume 7
1. A0isare
/inta&a ' #out<<numeKvar.numeK#amp 7
%& ' #out<<elev.nume 7
2. %&presii ' se #omporta #a operand
%& ' elev.varsta>elev.varsta;. 7
Combiarea stru#turilor de date '
/tru#turile de dat se pot #ombina #on0orm #erintelor problemei. (ot
e&ista stru#turi #u un #amp ve#tor. /e pot realiza ve#tori de stru#turi
!e& 'numele si varsta tuturor elevilor din #lasa" se pot #ombina si tipuri
ve#tori. -a#a pentru un elev se retin notele pentru semestrul . se
prelu#reaza intreaga #lasa intr$o stru#tura.
%&emplu . '
Tin#lude<iostream.+=
Tin#lude<#onio.+=
99de0inire tip stru#tura
stru#t tselev
Hint #od7
#+ar8nume8prenume7
0loat med7
Ivel7
tselev vel.7
void main! "
H99.. Atribuire
vel.#od>.7
vel.nume>?ion?7
vel.prenume>?ionel?7
vel.med>4i7
99). Citirea de la tastatura
"2
#out<<?vel #od>?7
#in==vel #od 7
#out<<?vel nume>?7
#in==vel nume
#out<<?vel prenume>?7
#in==vel prenume7
#out<<?vel med>?7
#in==vel med7
991. A0isarea
#out<<vel.#od<<endl7
#out<<vel.nume<<endl7
#out<<vel.prenume<<endl 7
#out<<vel.med<<endl 7
get#+! " 7
I
%&emplu ) '
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
99de0inire tip stru#tura
stru#t tselev
Hint #od7
#+ar8nume8prenume7
0loat vmed[.*\7
99de0inire variabila tip stru#tura
Ivel7
99de0inire variabila tip stru#tura
tselev vel.7
void main! "7
Iint in>1
99.. Atribuirea
vel.#on>.7
vel.nume>?ion?7
vel.prenume>?ionel?7
0or!i>*7 i<n7 i;;"
vel.vmed[.\>i7
99). Citirea de la tastatura
"3
#out<<?vel.#od>? velmed 7
#out<<?vel9nume>?7#in==vel.prenume 7
0or!i>* 7 i< n 7 i;;"
H
#out<<?vel.vmed[,<<i<?\>?7
#in==vel.vmed[.\7
I
99A0isarea
#out<<vel.#od<<endl7
#out<<vel.nume<<endl 7
#out<<vel.prenume<<endl 7
0or!i>* 7 i< n 7 i;;"
#out<<vel.vmed[i\<<? ,7
get#+! "7
I
%&emplu 1'
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
99de0inire tip stru#tura
stru#t tselev
H
int #od7
0loat med7
I7
99de0inire variabile tip ve#tor stru#tura
tselev vel[1\7
void main! "7
H
int i n>17
#lrs#r! "7
99.. Atribuirea
0or!i>*7 i<n7 i;;"
H
vel[i\ #od>.7
vel[i\ med>)8i7
I
"4
99). Citirea de la tastatura
0or!i>*7 i<n7 i;;"
H
#out<<?vel[,<<i<<?\.#od>?7#in==vel[i\.#od7
#out<<?vel[,<<i<<?\.med>?7#in==vel[i\.med7
I
991.A0isarea
0or!i>*7 i<n7 i;;"
H
#out<<vel[i\.#od<<endl7
#out<<vel[i\.med<<endl7
I
get#+! "7
I
!/RU)/URI ,O6I)E.I.!/RU)/IU.I !O)I/E
Un algoritm se rezolva utilizand stru#tura blo# instru#tiuni
de#izionale si repetitive. LimbaAele de programare au instru#tiuni #are
implementeaza a#ezte stru#turi.
/TRUCTURA /%C6%NTIALA
(resupune e&e#utarea unei prelu#rari in ordinea pre#izata . ! ele
nu se e&e#uta #onditional sau repetitiv ". %&ista #ateva tipuri printre #are '
.." -e#lararea variabilelor se 0a#e #u sinta&a tip data variabila GG.
-e0inirea variabilei pune in legatura numele variabilei #u tipul sau .
)."Citirea variabilei reprezinta operatia prin #are #ontinutul unei
variabile e in#ar#at de la tastatura.
1."Atribuirea este operatia prin #are o valoare e aso#iata unei variabile.
2."A0isarea se realizeaza #u sinta&a s#rie e&p . ... e&p n
"5
cnd=
t
P
3."Instru#tiunea #ompusa reprezinta un set de prelu#rari #uprinse intre
a#olade .
H p.
.
.
I pn

/TRUCTURA ALT%RNATI6A
/CO( ' permite e0e#tuarea unei prelu#rari in 0un#tie de valoarea unei
#onditii.
-%CIJIA
/CO( ' permite e&e#utarea unei prelu#rari da#a o #onditie este
indeplinita.
/e reprezinta in pseudo#od si s#+ema logi#a '

da#aK#onditie 9 e&presie
(
s0arsitKda#a

"6
M%CANI/M -% FUNCTIONAR% ' se evalueaza #onditia sau e&presia
la o valoare logi#a.-a#a e adevarata se realizeaza prelu#rarea ( da#a nu nu
se e&e#uta nimi#.
/%L%CTIA
/CO( ' permite e&e#utarea unei prelu#rari din doua posibile la un moment
dat in 0un#tie de valoarea unei #onditii.
/e reprezinta in s#+ema logi#a si pseuo#od.
da#aK#ond atun#i
(.
alt0el
()
s0arsitKda#a

/#+ema logi#a'

Me#anism de 0un#tionare ' se evalueaza #onditia la o valoare logi#a.-a#a este
adevarat se e&e#uta (. da#a nu se e&e#uta ().
Obs ' Atat pentru de#izie #at si pentru sele#tie se e&e#uta in mod
#onditionat o singura prelu#rare.
-a#a trebuie e&e#utate #onditionat pe ori#are din ramuri
mai multe prelu#rari a#estea trebuie #uprinse intre a#olade intr$o
instru#tiune blo#.
/%L%CTIA MULTI(LA
cnd=
t
P2
P1
"
%ste o stru#tura derivata. %a poate 0i inlo#uita prin struturi de#izionale
deoare#e este implementata de instru#tiuni in limbaAe de programare. %a
poate 0i prezentata in s#+ema logi#a si pseudo#od '
#aseKe&p
v. p.
...........
vn pn
endK#ase
Me#nism de 0un#tionare ' se evalueaza e&presia . -a#a valoarea
obtinuta > 6. atun#i se e&e#uta (. si se iese din instru#tiune . -a#a nu se
#ompara valoarea #u 6).-a#a sunt egale se e&e#uta () . -a#a nu valoarea se
#ompara #u 6n da#a e egala se e&e#uta (n si se iese din instru#tiune.
!/RU)/URI RE(E/I/I0E
!1 P1
!
2
P2
!n
Pn
""
/tru#turile repetitive permit e&e#utarea repetata a unei instru#tiuni.
Au aso#iate instru#tiuni in limbaA'
Instructiunea '+"ile'
(ermite e&e#utarea unei instru#tiuni #at timp o #onditie este
indeplinita.
%ste o instru#tiune #u test initial!se testeaza intai #onditia si apoi se
e&e#uta prelu#rarea" si numar ne#unos#ut de itratii!programatorul nu
#unoaste in momentul s#rierii programului de #ate ori se e&e#uta
prelu#rarea".
Instru#tiunea RU+ileR implementeaza stru#tura logi#a
R#atKtimp9s0arsitK#atKtimpR #are se reprezinta ast0el'
(seudo#od'
CatKtimp #onditie e&e#uta
(
/0arsitK#atKtimp
/#+ema logi#a'
Me#anism de 0un#tionare'
6 /e evalueaza #onditia la o valoare logi#a7
6 -a#a este adevarata se e&e#uta prelu#rarea ( si se revine la testul
#onditiei 7
6 -a#a nu prelu#rarea nu se e&e#uta ni#iodata.
Observatii '
C'nd=T
P
-a
.
(
")
6 -a#a #onditia nu este indeplinita de la in#eput preu#rarea nu se
e&e#uta ni#iodata.
6 (rogramatorul are obligatia de a initializa #ore#t variabilele ne#esare
instru#tiunii respe#tive!initializarea se 0a#e prin atribuire sau prin
#itire de la tastatura sau din 0isier".
6 (rogramatorul are obligatia de a trans0orma #onditia din adevarata in
0alsa dupa un numar 0init de iteratii!in #az #ontrar rezulta o bu#la
in0inita".Modo0i#area se realizeaza prin in#rementari de#rementari
sau #itiri da la tastatura si 0isier.
6 Nu se pune R7R dupa paranteza in#+isa.
Instru#tiunea este implemetata in limbaAul de programare C;; ast0el '
U+ile!#onditie"( 7
.."Cal#ulati suma primelor n numere naturale 0olosind instru#tiunea ,U+ile?.
)**:
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n s i 7
#out<<?Vn?7
#out<<?n>?7
#in==n7
s>*7
i>.7
U+ile !i<n"
H
s>s;i
i>i;.
I
#out<<?s>?<<s<<GG GG7
get#+ ! "7
I
)0
Instructiunea 'for'
RForR permite e&e#utarea unei prelu#rari de un numar #unos#ut de ori.
%ste o instru#tiune #u test initial si numar #unos#ut de iteratii.
Implementeaza stru#tura logi#a Rpentru9s0arsitKpentruR.
Llo#ul ,initializare? realizeaza initializarea #ontorului #u o valoare
initiala. /unt posibile si alte initializari ne#esare in program.
Llo#ul ,#onditie? testeaza #onditia. -e regula #onditia este ,#ontor <
valoare 0inala?.
Observatie' Repetitiva poate lu#ra si des#res#ator #az in #are #onditia
se s#+imba.
Llo#ul ,in#rementare? realizeaza #resterea #ontorului #u o unitate in
mod automat.
/e implementeaza in pseudo#od ast0el'
(entru S>v. v0 e&e#uta
(
/0arsitKpentru
/#+ema logi#a '
Me#anism de 0un#tionare'
6 /e initializeaza #ontorul #u o valoare initiala7
6 /e evalueaza #onditia ,#ontor < valoare 0inala?7
6 -a#a este adevarat se e&e#uta prelu#rarea ( si #ontorul #reste
automat #u o unitate7
6 -a#a nu iese din instru#rtiune.
*=vi
*+v,
P
*=5+1
-a
.(
)1
Observatii :
6 /e e&e#uta in mod repetat o singura prelu#rare. -a#a trebuie
e&e#utate mai multe prelu#rari a#estea se #uprind intre a#olade intr$
o instru#tiune blo#.
6 Nu se pune R7R dupa paranteza in#+isa R"R a instru#tiunii R0orR
deoare#e se e&e#uta de n ori o instru#tiune vida.
6 /e pune R 7R dupa o prelu#rare.
6 (ot 0i 0olosite si #ontoare de tip real.
Instru#tiunea este implemetata in limbaAul de programare C;; ast0el '
0or!initializare #onditie in#rementare"( 7
Exemplu:
Cal#ulati suma primelor n numere naturale .
C;; '
Tin#lude <#onio.+=
Tin#lude<iostream.+=
Tin#lude<stdio.+=
void main ! "
H
int n i s 7
#lrs#r ! "7
#out<< GGn> ?7
#in==n 7
s>* 7
0or ! i>. i<n i;; "
s>s;i 7
#out<<s 7
get#+ ! "7
I
)2
P
C'nd=T
Instructiunea ' do +"ile'
(ermite e&e#utarea unei instru#tiuni #at timp o #onditie este
indeplinita.
%ste o instru#tiune #u test 0inal!se e&e#uta mai intai prelu#rarea si
apoi are lo# testarea #onditiei" si numar ne#unos#ut de
itratii!programatorul nu #unoaste in momentul s#rierii programului de #ate
ori se e&e#uta prelu#rarea".
Instru#tiunea Rdo U+ileR implementeaza stru#tura logi#a Re&e#uta 9
#atKtimpR #are se reprezinta ast0el'
(seudo#od' /#+ema logi#a'
%&e#uta
(
Cat timp #onditie.
Me#anism de 0un#tionare'
6 /e realizeaza prelu#rarea (7
6 /e evalueaza #onditia ,#ontor < valoare 0inala?7
6 -a#a este adevarat se ree&e#uta prelu#rarea da#a nu iese din
instru#rtiune.
Observatii '
6 /e e&e#uta in mod repetat o singura prelu#rare. -a#a trebuie
e&e#utate mai multe prelu#rari a#estea se #uprind intre a#olade intr$
o instru#tiune blo#.
6 Nu se pune R7R dupa paranteza in#+isa R"R a instru#tiunii R0orR
deoare#e se e&e#uta de n ori o instru#tiune vida.
6 /e pune R 7R dupa o prelu#rare.
6 (ot 0i 0olosite si #ontoare de tip real.
Instru#tiunea este implemetata in limbaAul de programare C;; ast0el '
-o
H
)3
(
I
U+ile #ond.
.."Cal#ulati suma primelor n numere naturale.
)**:
Tin#lude<#onio.+=
Tin#lude<stdio.+=
Tin#lude<iostream.+=
void main! "
H
int n s i
#out<<?n>?7
#in==n7
s>*7
i>.7
do
H
s>s;i7
i>i;.7
IU+ile !i<>n"
#out<<s7
I
)4

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