Informatica, Notiuni de Baza

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

Descărcați ca doc, pdf sau txt
Descărcați ca doc, pdf sau txt
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