Sunteți pe pagina 1din 269

A 001

t,

Variabila x est6 de tip real. care dinhe urmetoarele expresii Pascal I C/C++
are valoarea srue | 1 daci gi numai dacd numerul real memorat in
(4p)
varlabila x apa4ine intervalului (5,81?

t,
L
L
t,

(*'8

(Pascal)

) tod {*t=t
(x<.8) or (x>5 )
(x>8) or (x<=5)

b.

l, 8e consideri algoritmul aleturat, descris in


laludocod:
t

restul impa4irii numdrului intreg

notat cu

'l*y
la numerul intreg

nenul

gi

cu

Ial

partea

lnlroagd a numerului real a.

l)

citegte

n=103456.

n>0 executl
cnt10
n tn/101
rdaci ct3=0 atunci
I zz+p* (9-c)
ll pep*10

(4p)

Scrieti toate numere naturale impare,


distincte, fiecare avand exact doud cifre,
care pot fi citite pentru variabila n astlel incat
(6p)
sd se afigeze valoarea 3.
Rispuns corect:

0)

51, 55,

67

Scrieli Tn pseudocod un algoritm echivalent


cu cel dat,

cat

Tn

care str se inlocuiascd structura


structure

timp. ..executd cu

(6pJ

repetitive de alt tip.

Rezolvare.
aleturat:

soluiie poate

fi

algoritmul

z0; p1
fcat tinp

Respuns corect: 953

b)

** {*t=5;

(numer natural)

Scrieli valoarea care se va afiga daca se


citeste

(ClC++)

(x<=8) ll (x>5 )
(x>8) ll' (x<=s )
(x<=8) && (x>5 )

c.
d.

(x<=8) anal . (x>5 )


Rilspuns corect: d

l.r

(*'8)

a.

th
Lr

acrLe

citegte n (numer nalural)


z(Ot oQL
rdlcl n>0 atunci

|
I
|
I

;repet!
I cn*10; n In/101
| pacr c83=o atunci

I I

III

zGz+P* (9-c)
pD*10

ilr
I Lclt tinP n>0
Ll

acrle

d)

Scrieli programul Pascal lCiC++ corespunzdtor algoritmului dat.

(1opJ

VARIANTA
1.

VARIANTA

OO2

a.

mod x=0)
and (x*y>O)

a.

(x<=y) and (y<x)


(x<=y) or (y<=Ir)

b.

x+x=Y*Y

d.

r*!E=o ) && (rrdF=o

t.
) && (x.!ro

algoritmul aliturat, cittes


EesEe x

S-a notat cu x%y restul.imp;4irii numerului


intreg x la numerul intreg nenul y.
Scriefi ce se va afiga dace se citesc, in
aceastd ordine, numerele: L7 22 1-3

LoL275o.

Respuns cotecta 22LL77

b)

(6pJ

(numdr natural nenul)

ruti
ar tinp x)0 ex
at
execu
rca
cit
y
(numi
citegte
tey
rumer
natu ral)
ni
lc
y
x
x>y
aturl
turlci
rdace
tunci scrie
rie xtr*10
I atunc
ltfeI scrie
rie yg'910
I altfe

rl

lr

tt
tt
lLl-|

b)

Scrieli in pseudocod un algoritm


echivalent cu cel dat, in care sd se
inlocuiasce structura cat tiuD
executi cu o structure repetitivd de alt

98?7.
0sau988370etc.

...

(6pJ

tip.

Rezolvare. O solulie poate

fi

algoritmul

citegte

Scrieli ce se va afiga dace se citesc, in


aceaste ordine, numerele: 2 5 L6 9 L2 L3
(6p.)
s

Raspuns corect: 5993

xv
lx
l1t

9 19 28 37

c)

r.

citegte y

-2 )

(numdr natural)

\t

Scrieli

in

pseudocod

un

algoritm
se

echivalent cu cel dat, in care sd

aldturat:

x>0

(lopJ

rdac5 z<y-x atunci


I scrie x*10
I

aLtfeI

I scrie
Il-1*v

y*10

7310.

Rezolvare. O solulie poate

Scrieli programul Pascal I C/C++ corespunzdtor algoritmului dat.

pAt tinp x>0 executi


citette y (numer natural)

Scrieli un gir de date de intrare, format doar din numere naturale cu o singure
(4p.)
cifra fiecare, care se determine afigarea valorii

inlocuiascd structura cat tinp


executa cu o structura repetitivd de alt
(6PJ
tip.

fdace x>y atunci


I atunci scrie xt 10
I altf,el sclj-e y*10

xv
cat tittrp

&& (x<

(x-2)*(x+2)>0

Rdspuns corect: de exemplu, 9 1 7 3 1 o. $irul de date de intrare poate fi


de forma: 2,x,7 ,3,L,0, unde O<z<9 9i nraxirnr:n{ 7 -2, 1. }Sx39

(4pJ

(numdr natural nenul)

lrepeti

(2<x)

(numere naturale nenule)

o.

Rispuns corect: de exemplu

d)

d.

fl-a notat cu :<%y restul impe4irii numerului intreg


x la numdrul intreg nenul y.

Scrieti un gir de date de intrare, format doar din numere naturale cu cel mult

alSturat:

b.

c.

x*x-4<=0
4-x*x>0

2. 3e consideri algoritmul aliturat, descris in citegte z,x

doua cifre fiecare, care se determine afigarea valorii

c)

a.

p.cudocod:

descris in pseudocod:

a)

0,

xtx-4<=0
4-x*x>0
(2<x)andl(x<-2)
(x-2) * (n+2 ) >0
R;spuns corect: b.

x*x==Y*Y

Rispuns corect: a

2. Se consideri

b,
d.

(x<=y) && (y<x)


(x<=y) ll (y<=x)

c.

(C/C++\

(Pascal)

(.CA*+)

(pascag

b.
C,
d'

Care dintre urmdtoarele expresii Pascal" I c/ca+ are valoarea tru I 1 dace 9i
numai dacl numerul real memorat in variabilaxse afldin intervalul ('2'21? (4p'l

Variabilele x gi y sunt de tip inf,ger I ilrr. Care dintie expresille Pascal I


C/C++ de maijos are valoarea rrue | 1 dacd gi numai dacd valorile intregi
nenule memorate in variabilele x gi y sunt egale?

(x rod y=o)and(y

OO3

d)

fi

algoritmul

citeFte z,x
(numere naturale nenule)

pepeti
citegte y

(numar natural)

Tdaca z<y-x

I atunci scrie xt10


IqIaltfel scrie y*10
xv
cat timl'

:r>0

Scrieli programul Pascal I C/C++ corespunzetor algoritmului dat.

(1opJ

VARIANTA

1.

a 005

OO4

Care este rezultatul evaluerii


expresiei Pascal I C/C++ alaturate? (4p.)

a,2

lPascal) rL*3. d.Lv 2+2

'd.

!,

Se consideri algoritmul aleturat, descris


in pseudocod:

c,

d.

S-a notat cu x%y restul impe4irii numirului


intreg x la numdrul intreg nenul y gi cu n<)y

rumArului real a.

Scrieli toate perechile de valori care pot fi citite pentru variabildle a gi b,


lncat se se afigeze, in aceste ordine, numerele: 1, -1.

.)

Rispunscorect: (a,b)((2,-1), (-L,2), (2, -2), (-2,2), (L,-L),


(-L.L) , (L,-2), (-2,LD
Scrieli in pseudocod un algoritm citegte a,b (numere intregi)
echivalent cu cel dat, in care se se Tdace a<b atunci

inlocuiascd structura pntru..


executA cu o strueturd repetitivd de

tip.

alt

(6p.)

l.l

aldturat:

fi

algoritmul

b)

(x<2) ll

(x>9

Scrieli programul Pascal lC/C++ corespunzdtor algoritmului dat.

citete x,z

(6pJ

(numere naturale)

yy*10+x%10; x [x/100]
ILp6ni
cAnd x=0
rcat tinp y*z>0 9i yAaL0=z%L0

executi
v tvrrol ; zQlzlLol

rdace y+z=0
I

atunci acrie
al,tf,eI scrie

1
0

l.1

Dacd pentru z se citegte valoarea 99, scrieli cete numere naturale, cu exact 3
cifre fiecare, pot li citite pentru x astfel incat se se afigeze valoarea 0 in fiecare
(4pJ
dintre aceste cazuri.

Rispuns corect: 890. Dacd valoarea cititd pentru variabila x apa4ine mullimii
t909, 9L9, 929, g3g, g4g, 959, 969, 97 9, 9A9, 999), atunci se va afiga
valoarea 1. Deoarece existe 900^de numere, de cate trei cifre, eliminand cele
!.0 numere din mullimea M se oblin 900-10=890 numere pentru care se va

x>b execute

fdac5 x82#0
I atunci scrie
I.l

s32.

Rispuns corect: 1

xa

vt=

x,, '

afiga 0.

lxx-1
lt

d)

(x>2) && (x<=9 )


(x<=2) && (x>9 )
(x<=2) ll (x>9 )

ve0
1!ePeti

Scrieti ce se va afiga dace se


citesc, in aceasta ordine, valorile
7293 8s 9i

a<+b

rcit tirnp
Rezolvare. O solulie poate

b.
c.
d.

H.n notat cu :{%y restul impe4irii


rrurnarului intreg x la numerul intreg
rronul y gi cu [a] partea intreage a

Scriefi ce se afigeaze pentru a=5 gi b=12.

(6p.)

c)

a.

L Se consideri algoritmul aliturat,


dracrls in pseudocod:

operalia de interschimbare a valorilor variabilelor

b)

) and (x<=9 )
(x<=2) and (x>9 )
(x<=2) or (x>9 )
(x<2 ) or (x>9 )
Respuns corect: c.

xSi yi

97

(C/C++\

(Pascal)

2.

Rispuhs corect: 1? 15 13 11

I,

(rr>2

11

Rispuns corect: b.

a)

Variabila r< este de tip real. Care dintre urmeloarele expresii Pascal- lc,/c++
aro valoarea cruelr dacd gi numai dacd numarul real memorat in variabila
(4p.)
r. nu apa4ine intervalului ( 2, 9l ?

(C/C++J LL,3 /2',2 | 3

c,2.75

b. 10

t.

c)
(10p.)

Scriefi in pseudocod un algoritm echivalent

cu cel dat, in care sd se foloseasce o


(6p.)

singurd structure repetitive,

Rezolvare. O solulie poate


al6turat:

fi

algoritmul

citegte x

(numar natural)

v0

lrepeti

y.ey*10+x%10r xe lxl1001
ILp6ni
c6nd x=0
ldaei y=2 atuncL scrie 1
altfel Bcrie 0
I
l.1

d)

Scrieli programul paBcal lc,/c++ corespunzdtor algoritmului dat.

(10p.)

VAHIANTA 006

1.

A 007

Care dintre urmetoarele expresii pascal I c/c++, are ca valoare cel mai mic
dintre numerele naturale nenule, cu cel mult 4 cifre fiecare, memorate in
variabilele intregi x gi
(4p.)

x v
x
y
decat
5?
mai
mare
memorat in este strict

memoreaza cate un numer natural.


Fiecare dintre variabilele intregi
9i
mai jos are valoarea lrue/1 dace $i
de
Pascal
dintre
expresiile
Care
lclc++
in
este
strict mai mare ca O 9i numerul
numarul
memorat
numai dace'

y?

a.
b.
c.
d.

lPascaB

(x+y-ab6
x+y-abs
(x+y+aba
(x+y+abs

lCiC++)

(x-y) )div 2
(x-y) ativ 2
(n-y) )div 2
(x+y) )d.iv 2

(x+y-abs
x+y-abs
(x+y+abs
(x+y+abs

Raspuns corect: a

(x-y) ) ,/2
(x-y) /2
(x-y) ) ,/2
(x+t') ) /2

(PascaD

l,
b,

t,

2, Se consideri algoritmul alaturat, descris


in pseudocod:
S-a notat cu tcl partea intreage a numdrului
real c. iar cu ae"b restul impa4irii numdrului
intreg a la numdrul intreg nenul b.

a.

Scrieli valoarea care se aligeazd in urma


executdrii algoritmului, dacd se citeste
numerul 9321.
(6pJ
Respuns

b,

corect

Scrieti cea mai mare valoare de 4 cif re


distincte care poate fl cititd pentru n astfel
incAl sd se afigeze valoarea 11. (4p.)
Respuns:9gGz
Orice numer cu cel pulin 2 cifre ce nu are
cifrele in ordine strict descrescdtoare.

in

pseudocod un algoritm
echivalent cu cel dat in care sd se
inlocuiascd structura car timp

Scrieti

executi cu o strudure

final.
d.

repetitive cu test

(6pJ

Scrieli programul pascal ic/c++


corespunzetoralgoritmuluidat. (1opJ

citegte n

(numer natural)

-1

rcat timp

n>O execute

I pac: n81o>s atunci


I l- s n*.ro
I laltfel

I I
llr

Ee11

scrie

cu tcl partea intreage a numerului


c,
iar
cu a%b restul impe4irii numarului
tHul

Tpentru

tl"fi notat

b)

(numdr natural)

j alrfel
l1t

nro

Ee11

ll nrnr*1O
lrl
tr

execuldrii algoritmului

scrl.a nr

n>0

d)

+n%10

(6pJ

Rispuns: 5594 6954

n [n/101

fdace tn*O atunci

Scrieli doud valori naturale distincte care


pot fi pitite pentru n astfel incat in urma
afi9eze

executa

n%10*a executa
I
m
Im/101
Il-I
I

se se

-t

rcat tilnp n *0 9i

in urma
executarii algoritmului, dace se citegte
(4p.
pentru n valoarea 232493.
Scrieli valoarea afigate,

numSrul 9654.

c)

a=9 ,0 ,

mn

hlreg a la numerul intreg nenul b.

;.repeti

scrie s

r 11* 1y-5 ) <=0 )

Rispuns corcct 9432

rdace n%10>s atunci sn2.10

=0

ln pseudocod:

rdace n>0 atunci

lLeat tittE
L|

x* (y-5) >=0

Rezolvare cerinta c.

1* 1y-5) <>0
x* (y-5 ) >=0

x*(y-5)!=0

8s consideri algoritmul alSturat, descris

cite9te n
s -L

:riy-5

citelte n
(numer natural nertul )

l,

r)

Ilt n tt ZrOI

{ClC++)

**y-5<>0
not (x* (y-5) <=0 )
Rispuns corect d.

d.

(4pJ

Scrieli in pseudocod un algoritn echivalent cu cel dat in care se se inlocuiasca structura pentru. . . executi
cu o structurd repetitivd cu iest final. (6p.
Scrieli programul pascal lclc*+
corespunzetoralgoritmuluidat. (10p.

Rezolvare cerinla c)
cite$te n

(nulnir natural aenul


nr o; a9

grePeti

I ran
lrcat tinp tn *0 Si
n%10*a executd
I
lrnn/101
tt
rdace m+0 atrmci

Ilr nrenr*10 +me"10


laa-1
ll

c6t tinp
scrie nr

a>=0

VARIANTA

1.

OO8

a.
b.
c,
d,

(4p.
2

a+b+abs(a-b)duv 2
(a+b-rbs (.-b) )dltv 2
(a+b-abB (!+b) ) dliv 2
Respuns corect a

2. Se considerA algoritmul aleturat, descris

pseudocod:
S-a notat cu tcl partea intreagd a numdrului
real c, iar cu a%b restul impd4irii num5rului
intreg a la numdrul intreg nenul b.

Scrieti valoarea care se afigeazd, in


urma executerii algoritmului, dacd se
citegte pentru n valoarea 932125 gi
pentru k valoarea 3.
(4pJ
Respuns

b.

corect

Scrieli o valoare penlru n qi o valoare


pentru k astfel incat, in urma executerii
algoritmului, se se aligeze valoarea o.(6p.)

Rispuns corect:

in

9735

(a+b-abs (a-b) ) /2
(a+b-abB (a+b) ) /2

citegte n,k
(numere naturale nenule)

nr0, p1

k+0 executa

| {aci n*2=0 atunci


I nrnr+ n%10*p
I pp*10
altfel

d.

pseudocod

Scrieli prbgramul pascal lclc++

corespunzetoralgoritmuluidat. (1opJ

8e consideri algoritmul aliturat, descris

ll n notat cu tcl partea intreage a numarului


tarl c, iar cu a%b restul impi(irii numirului
hllrog a la numerul intreg nenul b.

r.

I kek-1
L{

gcrie nr
citegte n,k

(numere naturale nenule)

laltf,el
I kek-l

n Inl1ol
L-r cAt titllp n*o eau k*0
scrie nr

Scrieli valoarea care se aiigeaze, in


urma execuldrii algoritmului, dac5 se
citegte pentru n valoarea 1239.

R;spuns corect:

b.

Rezolvare cerinta c)

un algoritm nr0, p+ 1
echivalent cu cel dat in care si se ;repetE
inlocuiascd structura cat till!? ... I rdace n*2=0 atunci
executA cu o structure repetitiva cu test
I nrnr+ n%10*p
final.
(6pJ
I pp*10
Scrieli

l,

n In/L0l

22

(C/C++)

(Pascal

)or (a<>b)
l, ( (r>3)or(a<15) ) andl (a=b)
l, not ( (a<=3)or(a>=15) )or(a<>b)
l, ( (a>3)or(a<15) )and(a<>b)
a, noh(a<3 or a>15)andl (a<>b)
ilrpunB corect: b.

(a+b+abs (a-b) ) /2
a+b+abs (a-b) /2

rcet litl[) n*0 9i

de mai ios este echivalentd cu expresia


(4p.)

lclc++

( ( a> 3 ) and (a<15 )

(.C/C"*+)

(PascaD

(a+b+abs (a-b) ) dtiv

?n

a.

orrro dlntre expresiile Pascal


(iJ mai jos ?

pescsl lc/c++, are ca valoare cel mai


dlntre numsrele naturale nenule, cu cel mult { cifre fiecare, memorate in
Care dlntre urmetoarele expresii
variabilele intregi a gi b?

009

c.

(6p.)

Scrieli cea mai micd valoare de 4 cifre


distincte care poate fi citite pentru n astlel
(4p.)
incit si se afigeze valoarea'1.
Respuns corect: 1023

(a>3)&&(a<15) ) | | (al=b)
(a>3) | | (a<15) )&& (a'Eb)
( (a<=3) I | (a>=15) ) | | (at=b)
(a>3) | l(a<15) )e&(al=b)
(a<3 ll a>15)&& (a I =b)

cirgt n
e 10

(n numer natural)

tiry

n>0 excutA
atunci
n$10<s
I rdacA
sn%10
ll
| | altfel

Tcat

ll

lrl

se-r

lntn/x0l
tt
scri

Rezolvare cerinla c)

citFte n

(numer natural)

10

un algoritm
se
inlocuiasce structura cat tinp ...
Scrieli

in

echivalent

pseudocod

cu cel dat in care se

execute cu o structure repetitivd cu test

{inal.
d.

(6pJ

Fascal lcy'c++
corespunzetoralgoritmuluidat. (1opJ
Scrieli programul

Il.t s-l
ll n tnl1ol
cit timp n>o
lrr
l1t
scrie s

VABIANTA 01O

1.

VANIANTA 011

Care este valoarea expresiei

(Pascaf)

9 div 2*2-5

a.3

pascal lclc++ de
I

b.4

c.

Respuns corect: a

2. Se considere algoritmul aleturat, descris

in pseudocod:
S-a notat cu tqJ partea intreagd a numerului
real c, iar cu a%b restul impe4irii numerului
intreg a la numerul intreg nenul b.

a.

luc++t s /2',2-s
d. -3.zs

Scrieli doui seturi distincte de date de


intrare, astfel incei, pentru fiecare dintre
ele, in urma executdrii algoritmului, sd se
afigeze valoarea 234.
(6p.)
Rispuns corect:
2334s 2 gi 23141 2

Scrieli

in

cite$te n,k
(numere naturale nenule)

nro

pr

ll

lclc*+

corespunzdtoralgoritmuluidat_ (10p.)

kek-1

lLr

{CiC++}

3*x-4*y==0

*x-4 *Y=0

(x+y) div 2>x trlod Y+1


NOT (x iliv 2+2=Y)

gcrie nr

corect 15
Dace se citeqte Pentru

Raspuns

citegte n,k
(numere naturale nenule)

lpp*10
laltf,el
I kek-1

La

valoarea 4,
scrieli cea mai mare valoare de 5 cifre
care poate fi cititd pentru n astfel incat

Rezolvare cerinta c)

1O

(2t+y)

/2 >

2t26Y+!

| (r</ 2+2==Y)

x-y+3

x-y+3<>0
Rdspuns corect c.

citegte pentru n valoarea 2963a5,


(6pJ
pentru k valoarea 3.

lr,to/lOl
l-I

Ll
n [rrl

6'

(4pJ

=0

citegte n,k

(numere natural)
p1
li n notat cu :r%y restul impe4irii numarului
rcattinpn>O Fik>0 execute
rrrrtural x la numirul natural nenul v qi cu Izl
cn9"10
prrrtea intreagd a numirului real z
Tdac5 c82=1 atunci
n. Scrieli valoarea care se va afi9a dace se
I PP*c
ia(

cu cel dat in care sd

Scrieli programul pasca:_

2. Se consideri algoritmul aleturat, descris


ln poeudocod.

d.

r.
h.
o.
d,

v valoarea

o?

(Pasca\

un algoritm nr0
se
De1
inlocuiasce structura cat timp ... ;repeti
execute cu o structure repetitivii cu test I rdace nt2*O atunci
final.
(6pJ ll nrnr + tnl10 %10*p
echivalent

pseudocod

V0riabilele n 9i y sunt de tip intreg, x memorand valoarea 8, iar


(;rtre dintre eipresiile Pascal lcli++ de mai jos are valoarea

-3

Scrieli valoarea care se afigeazd, in urma

executdrji algoritmului, dace se citegte


pentru n valoarea 2345G gi pentru k
valoarea 3.
( 4p.)
Raspuns corect 24

b.

mai jos?

cat titlll) n*O sau


scrie nr

algoritmului

Rispuns:

IL| kk-1
scrie p

d)

in urma executdrii Rezolvare cerinla


(4P) cileste n,k
sa fie 1.
(nrmere naturale )

8888

Scrieli programul Pascal

lclc++

corespunzetoralgoritmuluidat. (10p)
Scrieti in pseudocod un algoritm

...

k+O

n tn/ l.0l

numArul afigat

echivalent cu algoritmul dat, in care sa se


inlocuiascd structura repetitiv5 cat titnp

lat

executS, cu o structur5 repetitive

pentru ... executi.

(4P.)

pe1
rpentru ik,1, -1 execute
cn%10
rdac5 c82=1

\l

I
lrl
\t

atunci PI)*c

n Inl 101
pacS n=O atunci keo

Ecri p

i
I
o^
EIpA

Sx!'r{i
F

lrld
V- .I
a^
vst

5
E

^ a[
F
Fv
^F nA .O
^O-

-i
E:

I -A
E{

o+'
22
ic
3c V2o E:E=iiu
o

EEE
o!u

9''l-

:.e,E

- !2

o-9

.Ee?

22-*

*s3:81;

'!g a^
HEd,
E q<t
r.t o

3e

a\^
[o
ll tt
>[
l.!

vv

it-

A>
a
e

g'n>

Ax
@-e

o$

(r{

o-o
b.g

c{ 5-_

E sg

<

i*Ei'

!,

(\r

!ll
Lx
l^

>-v

}l{

iio 3
n

tf,E o "^E
"?5
-^at

$
o

.-l

i a t *E5

E
-:q
i.a o

E,.i 3.*Bi:[ {nf

i
s,t-----r il

$f,E^* H.{l_l,iir

$i t{.::_:__--1,

6Eg;e E.e sE;!;=


E ; He =se3t
i
_HEU;
5' ds
's'H:
eE
t
:E .c." ;,x
Ee " ?: :;t ,:
ga '{ :;
r iF E;Fg*.

l ; gH:g ;E

@= El!)rXttt

d* o
Z
E

'

a I s f, S'3 o]

$-i.a!,i{

* I t5{

6E
UO

!- '(!
(DE

*g

fr#
e :*: ig; g$

l(

(\ d
=.a^
^ait .5
ll ^ N
N
I)r (\
ll ll

a6

iiiag

E
r{ Xo

tl

r{t
{
a->
i.lW|a v>ll

JO

!{:or

^N
(\
Itl
!t
x^

:-_
(Jp(E

'!

E;E

E'lH

.E

F!(!

ruO
+!

f"!

-o
fa=

(Dx!

,,

r il E,P tY'8.:---.

.;tE EulEg;-ggg
oi
o3Eg3O.6tr
(D
AsiE

dri

;e
OE

{.,

4i)

rlg
!39
dLE

-E!
b E6
<

cq

;;,E

@ <Da
.!a

n
!l

frf,

o.
A

e$[AEe
EE:E3e s$Es
E.=? EA B;* J-=P:sb
t FEIff ;fi; *:;Iac
HEBF.";

^F FF
,\II

aF
d'6
ar{ (|)
o
= o_

'i I Lli-----

d d dri

+o rtCL
U
)xo
r-l (D
dE
U>

ijd

H
t

: ^. - --

5Y

J{
^ Ili
C.ir

?o
=
-9.

T
g!$1i
l
i
ig tt$;i :i " 3t
$E. *.r:t-i-'-!,4i,
--- { t, ;iti-'-!,
-- ''r-i
-- $-,i

r.: -e-o!
!A-|5

!i+
a'I d
^
rr f
d+._t6lnlrttl ^ ^ ^m
a() \?
(\ [ vrt vd.t^
a!^

g iE

Hg
*i u6 ;.#fr d
E
'. 't

vX vX xr ._;:tta)$

dridE;

$gF,fila;nafr;f:;;

>r

.'lo

tt

(\ (5 CL
o <f
(! ('.
o
E o

6,S
nt;io

v)

'd
.g lt{

+o}l+
o
}rll
(! .j.ll*>ill
-o^pllN
o
(6

o)
(g

>lc{ t{
._\ 'I + I v

Y
c
.(6 o

X I{

X-

c;

o Ad
cf O+

'3
=6s
d')=
=X=

.I

x(Do{

r.l
*=
e

gE
5

= = ao o

o'

;ea Et'e:!gaE
'6 o tr E:-= E

;# E:,=EHHa*'
eEgcD 6' (

+^

Yg
rr

ol

:a

ii

.o

do
g

rd

6t

^(l
+
+^
a3
U.r

oo
'=

l'lI
at
I.l

.Q

o,

a;$
A(n.r [
o 3[

Ed
o

-lt

drd
tt

o
(!

>

a
o

ol
tulj

I6
EO

9.o
;![

.96
.o> :on
ov

gs-.

!!I

s EIH

<

.,.r

(l, c

i!=
'dp
a.: (6ti
d;O,a'--!
__ o) o i ..
-'-(E(!C|
>=0)
!:

H,,E
cE
Ec
o-r :(!.'
I > c
8

6' xo i 6,
='-!!(J-l,'
: rs :i ,ail
^
6E
oAtr

E.'
$,EJ
6qo5d
o(5

E.g E's ii

g-EB

:Es3;
IienE
6,b
H

3,R

tI

5
u

=
iisEc

o'U

'x
o

.J

rj

o,u
xd

id

tc ^6 ei
Aq

a,H
oH

,! IS;E; !- r*

FE

,tJ

r{

-ga

-o

o
.1, #o
>r..{

IHl:
v'I'3
>r!(dWx!
i'
i fl'tir
occ
t__ __
u,o,,u P
..+, o t

.2==
bq,h
l,Sutr
d'-=
E *E
.j

gSifg'
tit
E
frE3FE:fii;r:
*gi r;;{sEii; ic=l-;

&dx
o

>,

$g-sr

<i

<rd

=EE
?
n !i *",E8
$e cifil=
b-' d si;R $fi,E
*EF=,;EHtfi:";B
;E:E
E=pg,
d d.. i fla;
g g i EE,E iig:lH E;E?EE.=6;Ed FE,==n E a

fr;::5E;

6;; ;;elF gEeFgiE:E;i;


Z F* s3 : iF 3,o,9
=

o)r,-ll
r.l^UX

fiii=:!.it,u

de

or
A

ao

s$

g'EX(!

r.r

o - <E
vJ (r

Eg$EJ
!c9*

gg

irr

Fl

9...
- .-t

dE=E

dE,o F 3

,(t..{
,r
q !3
qt

50,dr-

ts*{
o

_Q

8
8E,E
_Eq)

rid

-1 ci

R
!

c(5

O.EE9'E
ii

lr===a

9,r

3,F"
.DJ
t'l c

e 9;
o@

{*o

aX}r
o 6
E
t
> lcc
E
E er xxx 9

d
6

,=co
=oo)
6' ::
] OJE

ao

o 9E

EEE E;E*

g;=
Eo te

t =>
'-4' oO

<r6

+CL 9B
(! (,''

(I) g-

16

96E

=-

tl

lo

fra* E:

o- d

fil

d
o
.r{

fr'E

ro

o
o

(E

E >,c tEe
'N k
.j de (!
g.ti
Ex

r{ +

C; U

lfco
.9ts0)
(s-oi
od)

(EO

E E
o)
o
E E

q)

9 6''==g

(!

o 'd.

::-d-

.pvtruw$v
",r
0l. .U
d d .-l
o
rJ I'tt
O t----J'!
'"r G
L------J

\-.)

E=8s

0)

:EI*{-{
rE
lo8 lo

(!

(6
o)
(6

=ci
.ov
f

to

(s
c)

(D)(5;e

-o

Hfri
F

.l

>l

j(!

(\l .= ,:

=c

EE;

ri

ss gns,E
.;

!t

c
0
.rl

u
4

VAHIANTA 018

1.

a.
b.
g.
d.

VARIANTA 017

care dintre urmitoarele instructiuni pascal lclc++ determine inserarea cifrei


7 in fala ultimei cifre a unui numir natural, cu mai mult de 2 cifre. memorat in
variabila x?
(4pJ
(Pascaf)

in

pseudocod. S-a notat cu x%y restul


impd4irii numArului natural x la numdrul

b.

Scrieli caracterele care se vor afiga in


urma executerii algoritmului dacd se
citegte valoarea

4.

RAsPuns corect

***#***

(6p.)

Scrieti o valoare care poate fi citite pentru


variabila n, astfel incat caracterul * se fie
afigat de exact 56 de ori.
(4p.)

Rispuns corect: 12

c.
d.

Scrieli programUl pascat" Jc,,'cr+

corespunzdtoralgoritmuluidat. (10p.)
Scrieli in pseudocod un algoritm
echivalent cu cel dat in care si se
inlocuiasce fiecare structure repetitivd

pentru.

repetitive

cat tinp.

execute cu cate o structurd


. . execut5. (6p.)

llpentru j i+1, n executi


ll serie

lr
l"t

Rezolvare cerinta d)

liei+1
l1t

do

I t
r

I )
c.

x=x/10;
y=y+Li
whil-e (x%100==0

d.0

120

citeFte x,Y

ln oseudocod.
pe care
i. Scrieti succesiunea de caracterecitesc'
in
se
daca
le va' afisa algoritmul
9'
respectiv
z,
valorile
aceasta ordine'

;dacd x(Y atunci

(6P')

Rispuns

b.

corect: aBABABAB

de perechi de

valori
pot fi
care
apa4inand intervalului t1,2ol,
incat
astfel
9i v,
citite pentru variabilele
12
exact
rezultatul afigat se fie format din
(4PJ
caractere

Scrieti numarul

'

Respuns corect:

c.
d.

1.2

$,5) , Q,L2l , (2'L3l , (3'L8)


'
(3; xe) , (3,20), 6,'L) ' (L2'21 '
(L3,2) , $a,31 (x9, 3) , ( 20, 3 )
'
Scrie.ti programul pascal lclc++

corespunzatoralgoritmuluidat- (1opJ

in pseudocod un algoritm
echiv;lent cu cel dat, in care sd se
inlocuiasca structura repetitiva clt
Scrieti

timp...enecuti cu o
repelitiva de alt tip.

structura
(6PJ

(numere naturale)

I xx-y
I yx+Y
ILtxy-.S

rcat timP x2Y executi


I scrie 'A'
I xx-y

I scrie 'B'
\l

Rezolvare cerinla d)

citegte x,Y

rdace x>Y atunci

I xx-y
I yx+y
ILIxy-x

fdaci x>Y atunci

I
I
I
I
I

\I

repetE

Bclie 'A'
xx-y

scrie 'B'

pAnE cAnd x<Y

la

(4p')

(c/c++\

2. Se consideri algoritmul aleturat, descris

j ei+1
acAt timp

j(n executi
, *,
s"rie
I
ljj+1
ll

I y=0 t

x daci'

2?

Rispuns corect b

cite$te n
s0; i1
p6! timp i=h-1 executi
ldaci i82=O atunci
lscrie '#'
I

(Pasca|

xrox div 10i


y r =y+11
untlL x mod 1oo<>0i
b. 5OO0
a. 300

(numar natural nenul)

secvenlei aieturate, variabila inireaga v are valoarea

r.D6at

x= (x/
x=x/ !0+7 +x%LO ,
x= (x%10*10+? ) r LO+x/lO, .
x= (x/10+7 ) * 10+x%L0;

natural, nenul, y.

a.

yr.0r

++l
X0 * 10+7 ) * 10+x%10;

citeste

variabila intreagd
Care este valoarea pe care poate se o aiba inilial

r6riiti"t"."iaiii

lt,tt

x!=(x iliv L0*10+7)*10+x mod 10


x:=x dliv 10+7+x rnod 10
x:=(x mod. 10t10+7)*10+x d.iv 10
x:=1:. dliv 10+7)+10+x mod 10

Rispuns cotEct: a.
2. Se consideri algoiitmul aleturat, descris

1.

VARIANTA 018
1.

VARIANTA 019

Care dintre urmdtoarele instrucfiuni pascal lc,/c++ determinA eliminarea cifrei


din mijloc a unui numer natural, cu exact 5 cilre, memorat in variabila
(4p.)

x?

(Pasca,

a,
b.

c.
d.

x=x,/ 100 0* L0 0+n%L00 t


x=x%l0 00 * 10 0+x/ 10 0;

in

pseudocod, S-a notat cu ae$ restul


impd4kii numdrului natural a la numdrul

Itt y)x

a)b

vor afi$a in urma executirii algoritmului


dace se citesc, in aceste ordine, valorile 2
9i e.

RAsPuns corect

b.

'

(6pJ

***+

$tiind ce pentru variabila

se

citegte
valoarea ?9, scrieli toate valorile distincte
care pot fi citite pentru variabila x, astfel

incat sd fie afigat de exact


caracterul

*.

40

de

ori

(4p.)

Rispuns corect

O,

1, 152 gi 158

lc,/c+*
corespunzetoralgoritmuluidat. (10p.)
Scrieli in pseudocod un algoritm
echivalent cu. cel dat, in care sd se
inlocuiascd structura repetitivd cat

titq).. . executi cu o

repetitiva de att

tip.

atunci

Il1lxx+1

rcat timp x(y executi

I xx+2
I sclie '*/
ll

Rezolvare cerinla d)

strudure
(6p.)

2. So considerA

algoritmul aleturat,
pseudocod.
S-a notat cu x%v
d.scrls in
rflBtul impetirii numdrului natural x la

t.

b.

ldaci x)y atunci

llrepeti

ll xx+z
s""i" '*'
llLp6ni
cAnd
I

lr

rpentru ia.b executi


I raacati/rOl=i*ro atunci
|

| scrie

lrl
ll

i810

Scrieli cate o valoare care poate fi cititd pentru variabila a, respectiv b, astfel
(4p')
incat algoritmul se afigeze exact 2
b pentru care intervalul inchis,
RAspuns corect: Oricare doud numere

valori
a,

c.
d.

Scrieli programul Pascal

algoritmului

lc/c++

in

pseudocod un algoritm
echivalent cu cel dat, in care sd se

Scrieti

inlocuiascd structura pentru.


executi cu.o structure repetitive
x>y

(numere naturale)

ae tal101%10 * 10+ae.10
be [b/10] %10*10+b%10

b conline

exacl 2 numere care au cilrele identice. De exemplu 154 9i 1167, deoarece in


intervalul Is4,57l exista doar numerele 55 9i 55 cu cifrele identice

\t

fdac5 xSy atunci

cite$te a,b

determinat de numerele lormate din ultimele 2 cifre ale lui a 9i respectiv

I y)x

Il1txx+1

Izl

partea
numerul natural nenul
$i cu'
hrtreage a numdrului z.
Scrie.ti numerele care se vor afi$a in
urma execdtdrii algoritmului dace se
citesc valorile a=3x2 9i b=1354. (6p.)
Rispuns corect: 234

citeste x.y

rdacE xt2=0 atunci

Scrieli programul pascal

d.

Tdace x*2=0

Scriefi succesiunea de caractere care se

d.8

c.2

Rispuns corect b

(numere naturale)

natural, nenul, b gi cu
interschimbarea
valorilor relinute de variabilele a gi b.

{p=p* 10 t
n=n-100; )

b.5

a.4

fdace x>y atunci

sunt

(4PJ

lC/C++J

n.=279 t
whi-t n>=100 do
begin D: =P* X0;
n:=n-100 end;

citegte x.y

n gi p

p=L; n=279 i
wh{lg (n>=100 )

pt-L,

x=x/ 100 * 10 0+xeo10 0;


x=:</ 10 0 0+x%100 t

2, Se consideri algoritmul aliturat, descris

CAte atribuiri se execute, in total, in secvenla urmdtoare, dacd


vBriabile de tiP intreg?
(Pascal)

{CiC++)

x:=x div 1000*100+x noal 100


xi=x mod 1000*100+x itiv 100
xs=x div 100*100+x moal 1OO
x:=x div 1000+* mod 100
Rispuns corect a

a.

l,

art

tip.

dat.

(1oPJ

Rezolvare cerinta d)

a,b
.. citeSte
ae Ia/ 101e.10* 10{a%10

de

(6pJ

b [b/10] %10*10+b%10
lcit tirnp a<=b executA
I rdacS[alXol=a%Xo atunci

ll scrie

lrl
I

aa+1

a%10

VARIANTA

1.

O2O

YAiIANTA 021

Care este valoarea tiperite de secvenla de program pascaL lc-lcr+"bleturat5,


gtiind cd x giy sunt variabile intregi, iar z este o variabild
(4p.)
(Pascal)
(C/C++)

reald?

x:=30t y: =5;
z. = (rt+y) /6t7.=trunc(z*100) t
zt=zlLoo i write(z:5s2) ;
a. 5
b. s.833333

x=30; y=5; z= (*+y) / 5 .0 t


z=floor ( 2*100 ) i z=z/1-00;
cout<<z

c.5.83

i I printf

(..%0.2f ,,, z ) t
d. s83

Rispuns corect: c.

2. Se consideri

algoritmul aleturat,
:re6y

citegte n

(numer natural)

an*10

na
'l la ;cit
numerul natural nenul y gi cu tzl partea
tinp 'n>g exLcuta
intreagi a numerului z.
I n tnl10l
I
a, Scrieli valoarea pe care o va afig; bnr1o
a>b atunci
algoritmul daci se citegte numdrul I fdacl
nn*10+b
ll
1538s.
(6p)
ll ab
Rispuns corect: 9831
lrl
b, Scrieli cea mai micd valoare de patru \lgcrLe n
cifre dlstincte care poate fi cititd pentru
variabila n, astfel incet sd se afigeze
valoarea 0?
(4pJ

Rispuns corect:

12 30

c.' Scriefi programul

pagcat lclc++
corespunzatoralgoritmuluidat. (10p.)

Scrieli

in

pseudocod

un

algoritm
dat, in care sd se

echivalent cu cel
lnlocuiascd structura car tfurw
ax.cutl cu o structure repetitive de

Rezolvare cerinla d)

cit9t n
an*l0

(nu;er natural)

rna

;dacl, n)9 atunci

l;repet{
ll n Inllol

... llll rd!c{ a>b etunci

alt tip.

intregi?

(Pascal)

t.0, v2r-0t
lor Lr-1 to 3

t1

do

brgln

lor J !.1 to i d,o v1:=v!.+1;


lor k!-l to 3 do v2 : =v2+1'

(CiC++)

v1=0; v2=0;
for ( i=1., i<=3, i++ )
{ for (j=1; j<=i; j++)w1=v1+L;
for ( k=i; k<=3 r k++ ) v2=v2+ !. t
]

and,

descrls in pseudocod. S-a notat cu


restul lmpe4irii numerului. natural

d,

Curo dlntre oxpresiile Pascet lclc++ de mai jos are valoarea true/1 dupd
oxocutarea secvenlei de instfucliuni Pascal lc/cr* urmdtoare, in care toate
(4PJ
varlabllele sunt

t,

(6p)

bnr1o

ll I nn*10+b
ll Itra+u
ll cana n<=s
$!nt
ll|

6c!L n

t,
0.

vlrv2

ilrpune:

l.

b.
d.

v7">v2

vL<!2

a.

vL+v2=9

c.

vL>vz
vl==v2

b.
d.

v1<v2
v1+v2==9

c.

8e consideri

algoritmul aliturat, I citegte a,b,n

doscrls in pseudocod. S-a notat cu tzl


partea intreage a numarului real z 9i cu
xty restul impe4irii numarului natural x
la numdrul natural

nenulv.

t.

(numere naturale)

rdace b=0 atunci

I
| | scrie "g!elit"
I laftfef
se | | :"t1" -t:?1
atb*o atunci

Scrieli valorile care se vor afrga daca


citesi, in ordine, vatorite rz,*sli.-ilrpuns: 2,sss3 (algoritmul afigeaze
vrloarea fracliei a/b cu n cifre dupe virsula,

1*| I *'"''99,:,1
I ii aago; io
I ii lreperi
dacl L7 l6 cu 4 cifre dupe virgule).
| | | | scrie t (a*10) /bl
b. scrieli ln pseudocod un alsoritm
I ll I :tl":to)*
echivilent cu cel dat in care sa se I ll I iei+1
inlocuiasca structura rePetS. '.pAni I I ! +a"g cand i=n aau a=0
cand cu o structura repetitiva de tip cat I l-l
(6pJl
timp.. execute.
Jlroru"r" ot
.

Rdspuns: Se poate fac6 inlocuirea ceruta lara I gcrt I (;*10) /bt


nlcio adaptare. Structura repttr...pant I a(a*10)*Jr
olnd se poate inlocui cu secvenla aldturate: I
Scrieli programul P&Ecal"lc/c++ | |-ctt tfrE) l<n 9i r*0 exocutg
(1op.)l ecrie [ (a*10) /bl
corespunzdtor algoritmului

c,
.r

rei*r

dat.

| | a (a*10)*b
ll ier+1

ll.r

Scrieti un set de date de intrare astfel incat, la finalul executarii algoritmului,


(4p)
valoriie variabilelor n qi i, sA satisfacd conditia:
sa
trebuie
repetitive
structurii
oprirea
Rispuns: Deoarece n-i=2, rezulti n*i, deci
cu
un
iie
o
valoare
sd
se face ca urmare a indeplinirii condiliei a=0, deci a/b trebuie
de
decat
numSrul
numer finit de cifre dupd virguld, iar n trebuie sd fie cu 2 mai mare
cifre aflate dupe virgule. Putem alege, de exemplu: a=9, b=8, n=4 (9/4=2,25 cu
dou5 cifre zecimale, deci n=2+2).

n-i'2.

VARIANTA 023

VARIANTA 022
1.

Care este valoarea expresiei paecal^ lc,r'ci, urmatoare dacd variabilele


iniregi a, b, c au valorile'a=20, b=3, c=5?
(4p.)

(Pascal)

(a dliv b mod c<=b) or not(b=a)


a. faLse
b, true
c'od'1

{C/C++)

(a/b%c<=b)

a,0
c.2

llt

(Pascaf)

b. 1
d. true

2. Se consideri algoritmul aliturdt, citeite n (numdr intreg)

descris in pseudocod. S-a notat cu ta] rdac5.n(0atunci


partea intreagd a numerului real a gi cu
n-n
ylx faptul cd numerul intreg x este l{I
divizibil cu numdrul intreg nenul y.
d1
i<2,1t\/2J executd
a. Scrieli valoarea care se va afiqa pentru rpentruj.In
atunci
n=r15.
(6p) I rdac5
Rispuns: 15 (cel mai mare divizor propriu al lui n)
b. Scrieti in pseudocod un algoritm echivalent ll
cu cel dat in care sd se inlocuiasce scrie d
structura Dentru ... executi cu o
Rispuns b.
structure repetitiva de tip cats rimp ...
citegte n (riumir intreg)
executi.
(6pJ

lldei
l,f

rdacen<0atuncj.

C.

Il1tn-n
at1

iex

d.

Scrieli o valoare pentru n astfel incat in urma


executirii algoritrnului oblinut prin inlocuirea
structurii

pe8ltru i2, [n/2] executd

t...
l.l

fpelrtru L<h/21

t...
\l

;c6.t tillp i3 [n,/2] executd


I rdace iln atunci

lldi
lrl

lii+1
l.l
scrie d

cu

,2,-f

Care dintre expresiile Pascallc/c++ de mai jos este echivalente cu cea


(4P)
aldturata?

execute

si se afigeze aceeagi valoare, ca in


algoritmut iniliat.
(4p.)
Rispuns: n poate fi orice numer prim sau orice numdr care are un
singur divizor

propriu (adice n este pdtratul unui num5r prim).


De exemplu, 5 sau 25.

\C/C++)

(a<=il)

!.
b,
o.
d.

ll

! ( (a<=b &e a>=c)

not( ( (a<=b) and (a>=c) ) or

tu==al

Rispuns: b.

Scrieti programul pascat lclc*+


corespunzdtoralgoritmuluidat. (10p.)

l,

at=al

(a<=b) 6a (a>=c) 61d (a<=d)


(a>b) or (a<c) and (a>d)
(a>b) or (a<c) or (a>d)

((a>b) or (a<c) ) entl

a>=c && a<=d .


a<c && a>d

a<=b

a>b
a>b

(a>b

(a>dl)

a<c ll a>tt
I a<c) && a>tl

Rdopuns: d

2. Se

considere algoritmul alaturat'

descris in pseudocod.
S-a notat cu x%y restul impS4irii numdrului

natural

tzl

x la numdrul natural

nenul

v 9i cu

partea intreagd a numirului real z.

!.

Scrieli valoarea care se va afiga dace se


citesc, in ordine, valorile 24 9i 35. (6p)
Rtrspuns: 2 (Algoritmul afigeaz, cea mai micS
putere a lui 2 carc apare in descompunerea in
lactori primi a numerelor a 9i b.)
b. Scrieli doua valori care trebuie citite (una
pentru variabila a 9i una pentru variabila
b) astfel incat, in urma executerii algorit(6p)
mului, sd se afigeze valoarea o.

cite$te a,b
(numere naturale nenule)

c(0

;rePti

I
|

Lea""2

)<br"2

I da"6 i+j=o atunci


I I cc+1
lrl
I aa*i+ ( 1-i l, lalzl
uu"5 + 11-5 1* 1b/21
ILpani
i* j=1

ecrie

cand
c

Rispuns: Cel pulin unul dintre numere trebuie se fie impar.

c.
d.

Scrieli programul Pascal- l.c/c4+ corespunzetor algoritmului


Scrieli in pseudocod un algorltm echivalent

cu cel dat in care sa se inlocuiascd


structura lepeta...Pane canal cu o
strudure repetitiva cu test

inilial.

(4pJ

Rispuns: Secvenla de instrucliuni din


zona haguratd se inlocuiegte cu secvenla
aleturatS:

dat.

(10p')

i?a%2
j<b%2
dace i+j=O

atunci cc+1
aea:i+ (1-i) * [a/21
bb*j+(1-j ) * Ibl2l
rcat tinp i*j*1 execute
I

i?a%2

i(v'."2

ldacA i+j=0 atunci cec+1


laa*i+ ( L-i) ** [a/2 ]
lbb*j + ( 1-j ) tb/ 21
\l

VARIANTA 024

1,
a.
c.

VARIANTA 025

Care din urmdtoarele afirmalii despre operatorii din pEscal"

rela[ional
logic

> este operator


aacl l&& este operator

b.
d.

lc/c++ este falsi?


(4p.)

2, Se consideri algoritmul alaturat, citegte a,b (numere naturale)


descris in pseudocod.
pa; qb
a, Scriefi valoarea care se va aflga pentru flace p=9 ,Eau q=0 atunci
Il1tPp*c; qp*q

F*q executg,

multiplu comun)

b.

Scrieli toate valorile care, citite pentru b,


determina afigarea valorii co, dacA pentru
a s-a citit valoarea 10.
(6p)
Rispuns: 12 gi 60

c.
d.

Scrieli programul pascat lclc++


corespunzetoralgoritmuluidat, (10p,)

Scrieli un algoritm echivalent in care sa se

Tnlocuiascd structura cat !inp...


execute cu o strudure repetitive cu test
final.
(4pJ
Rispuns: Se inlocuiegte secventa de instrucfiuni
hagurate cu cea aleturata:

scrie p

secvenla pseudocod aleturatA, toate

variabilele memoreazi numere naturale. Cu

ce valori pot li

nodl | % este operator aritmetii


<= este operator logic

Rlspuns: d (Sunt operatori logici operatorii care opereaze cu termeni avand valori
logice, nu cei care au ca rezultat o valoare logicd)
t

r=1s 9i b=25.
(6p.)
Rispuns: 75 (Algoritmul calculeazd cel mai mic

l. ln

suspensie din secvenla astfel incat, la finalul


executedi secvenlei se se afigeze, in acesta
(4PJ
ordine, valorile 16 9i

41?

a.

r9i 1
ihpuns: c.

fdecE p+q atunci


| ;repetA
| | {ac; p<q atunci

I I I ppr+a
| | laltfel
I I I qq+b
lltr
llr
LpAni
p=q
cdnd

b.

3$i

c'

rpentlu i3,7 executa


I ca+b; xa
I ab; bc
l.I

scrie x,c
'd,
s9i 2

2si

t, Se consideri algoritmul aliturat'

doscrls in pseudocod. S-a notat cu vl:!


faptul cd x este divizibil cu Y.
r. Scrieti care sunt valorile ce se vor afiga
(6P')
Pentru a=10, b=20 9i c=5.
ilrpuns: 12 18 (algoritmul afigeaza mutiplii lui c
dln lntervalul Ia, bl sau Ib, el )
b. Scrieti un algoritm echivalent cu cel dat in
care ia se inlocuiasca structura cat lfuil)
. .. erecut{ cu o structure Dentru ' "

axecut{.

d.

inlocuite punctele de

a...
b...

(6P')

Rlepuns: Se inlocuiegte secvenla marcati cu:

ia,b executi
dacl cli atunci sclie c
sfargit Pentru
Scrieli programul tascal lclc+t corespunz5tor
Dntru

c,
d.

algoritmului dat

Scrieli o formulS care sa calculeze cate numere se afigeaze dac5

a$'

tblcl - t (a-1)./ca (se gtie ca numarul-de multlpli pe care


lntervalul t1,al este tnlxl (t I reprezinte partea intreage)'
Rtrspuns:

(1opJ
(4pJ
are x in

VARIANTA 026
1

A 027

Care este cea mai mice valoare pe care o poate avea expresia
pescat lclc.r+ aldturate daca variabila intreag5 x, de tip inbeger
I int
memoreaza un numer natural cu o sjngurd cifra ?

a,

Rispuns:

2.
a.

(Pascah

div 7-x rbd 7


O
b. 1.L4
rr

c.

|
c.

(4pJ

G,C**l

-6

>

I,
t,

7-x%7
d.

I'

consideri algoritmul aleturat descris


in pseudocod. S-a notat cu :r%y restul
impi(irii numirului natural x la numdrul
natural nenul y.
Scrieli valorile care se afigeaze pentru
Se

n=11.

(6pJ

citeste n

(numdr natural)

c0
f9erltru i1,n executi
I c (c+1)%10

Il.l scrie

Rispuns:12345G28901

b.
c.

Scrieli programul

rasrat I clc{+

corespunzetor algoritmului dat.

(10p.)

Scrieti in pseudocod un algoritm echivalent

citeate n
c0 ; i1
Stfuctura pentru. . . executi cu o
tinE, i3l orecuti
strudure repetitive de un alt tip.
(6pJ icat
c (c+1)%10
I
Rispuns: Prezentem a,eturat pentru o solutie ce
I scrie c
realizeaze in locuirea structurii repetitive pentrlr
ii+l
cu o structure cat timp ... execute.
llI
cu cel dat, in care sd se

l,

tl,

Scrieli numerul de valori distincte, numere naturale nenule cu cel mult doue
n astlel incat cifra 1 sd fie afigatd de exact
'
(4p.)
Rispuns: 1o (ne {2x,22,2 3,...,30})

(Pascal) x. nbdl 2+ (x+1)tlbd

lC/C++) t<e"z+ (x+L)%2


(4PJ
nlo valoarea 1 pentru orice numdr natural x.
rro valoarea 1 dacd 9i numai dac5 x este un numSr par'
iro valoarea l daci 9i numai dacd x este un numdr impar'
aro o valoare sirict mai mare decat 1 pentru orice numer natural x'

Rlapuns corect: a.

consideri algoritmul aliturat descris in citeste a,b


(numere naturale)
tlludocod.
c0; tt0;p 1
l.r notat cu :f6v restul impd4irii numirului natural
tirE) a+b+c>O eqEuti
t la numerul natural nenul v 9i cu [8] partea rcatcea%10+b%10+c

l, !r

lntraagd a numerului real x.

l)

Scrieli valoarea care se afigeaze dacS se


citesc numerele a=493 9i b=1835? (6pJ
Respuns corect:2329

b)

Scrieli programul Pascal


algoridului

inlocuiasca

d.

ln oxpresia PascaL lc/c++ alaturate variaItlla x oste de tip intreg. Aceaste expresie:

o)
'

dat.

lclc'r+

corespunzdtor

(10P)

Scrieti in pseudocod un algoritm echivalent cu


cel dat. in care sa se inlocuiasce structura

dat+ (c%10 ) *D

I
IL|

p9*10
a Ial10I
be tb/1ot
c tcl101

scrie d
Rezolvare cerinF c)

citeste a.b

cat tirlp ... execute cu o structura c0; tt0;P1


(6P)
repetitivd de un alt tip.
r rqetE

cifre fiecare, care pot fi citite pentru


3 ori.

d)

Scrieti in pseudocod un algoritm echivalent cu

cel dat, care sd


iepetitive sau
Rezolvare: '

NU foloseasca structuri

recursive.

citegte a'b
scri a+b

(4P')

ca9o10+b%10+c
dat+ ( c%10 ) *D

pp*10
a Ial10I
I b rbl1ol
IL e Iclx0la+b+c=0
lxna cantl

scrie

d.

VARIANTA 028

1.

A 029

l;ara (llntro urmdtoarele expresii pe8callc /c++ are valoaroa truell dacd 9i
ntal docd numerul natural nenul memorat in variabila x de tip itbegerlint
trlF dlvlzlbll cu x0 0?
(4P)
(C/C++)
(Pascal)
*%10+x/
10%!.0==0
tnott
10=0
10
a,
t nod 1O+x dllv
b. x/ 100==0
r 6dv 100-0
10=0
c. x%10+x/10==0
dllv
10+x
I itod
r nod lo+x rnodl 10 iliv 10=0 d. rr*10+*%10 / 10==0

Cete valori distincte, numere naturale, poate primi variabila x pentru ca


x div 2 div 2 l x/2/2 scrise in pascal lclc++ sefi
egala cu 1?
(4pJ
valoarea expresiei

6.

b.4

Rispuns corect: b. (valorile 4,5, G,7)

c,2

d.0

2. Se consideri. algoritmul aliturat descris in citeste x


pseudocod.

(numer real pozitiv)

S-a notat cu txl partea intreagd a nuindrului real x.


Scrieli valoarea afigate daca se citegte numdrul

v [xl

a,
b.

x=L20.L2;
Rispuns corect: 2
Scrieli progEmul pascal

algoritmului

c.

dat.

'

lc,/c*{

(6p.)
corespunzetor

(10p.)

Scrieli in pseudocod un algoritm echivalent cu

cel dat, in care sd se inlocuiascd structura

cet tinD ... executi cu o structure


repetitive de un alt tip.

d.

xx-y
rcat lilll) :#[xl
Ill xx*10

lllrpuns

Brrloll valoarea care se afigeaze dacd se citesc


numorsle

ihpuns

astfel incat algoritmul sd afigeze valoarea 1.(4p.)

Rispuns corect: de exemplu 34.34 (orice


numer real cu exact doud cifre nenule la partea
?ntreag5, pentru care, aceasta este egald cu
numdrul format, in ordine, cu cifrele aflate dupe
punctul zecimal)

nr6 9i n=12.
corect:

tlr;rlo[i programul
2

(6P)

pasca]lc/ct*

corespunzdtor

Scrleti doua perechi distincte de numere ce pot


ll lntroduse pentru n 9i m astfel incat se se
urma executerii
dllgoze valoarea 10
perechi. (6p.)
pentru
dintre
{iecare
Hlgoritmului

in

Rezolvare cerinta c)

xx*10
llLpana

L|

cand :c [x]

rdac5. x=y

I scrie ,1
lattrer
I ecrie 2
l.|

t (n+nr)

t:4 ahDci

l;repeta

atunci

n,m

(numere naturale)

rcat ti[E)
I an+l
I mn-l

a5m

executi

Tcat titnD m<n executa

I mn+1
I nn-1
\t
scrie n

Rlspuns corect: de exemplu (8,12) 9i


(?,13)(orice pereche (n'm) cu proprietatea

citeat x
velxl rxx-y
rdaca :#

citeate

\t

rl0orilmului dat.

(6p.)

Scrieli un numer real, cu exact dou; cifre la


partea inlreage, care poate fi citit pentru x,

oonrldori algoritmul aleturat descfis in

elccute

fdace x=y atunci

I scrie
laltfel
I scrie
tt

corect3 a.

l,

/21=10)

Scrieli in pseudocod un algoritm echivalent cu cel


dat, care sa NU foloseascd structuri repetitive sau
(4pJ
r6cursve.

Rezolvare cerinla d)

citest
Ecrie

n,m
(n+n)
/21
[

VAHIANTA

1.

O3O

ANIANTA 031

Care dintre urmdloarele expresii pascallc /c++ are valoarea truelt dacd
numai daci numerul natural memorat de variabila x de tip inregerlinr

cifre?
(Pascal)
tOC*
a. x aliv 100=0
| x/ldO==O'
b. (x div 100 =0) aad (x rnod 10=0) lx.rlOO==O && x%lo==O
c. x div 10<>0
lx/10!=0
d. (:< dliv 100 =0) anat (x dtiv 10<>O) I x/100==0 && x/10t=O
exact doud

Care
iio considere variabila a care memoreaze un num;r cu exact 5 cifre
din
format
numdrul
jos
are ca valoare
,tlrrtro expresiile Pascal lc/c++ de mai
(4p)
a?
r:,,1o doui cifre din mijloc ale valorii memorate in

(4p.)

Rispuns corect: d.

2, Se consideri algoritmul aliturat descris in cite8te n


pseudocod.
n0
S-a notat cu x%y restul impS(irii numirului natural

x la numdrul natural nenul y gi cu tzl

Scrieli valoarea care se afigeazd dacd se


citegte numdrul n=5122.

(6p.)

Rispuns corect:4OGl.
b.

Scrie|i programul
algoritmului

d.

pascat,clc++

dat.

rcat titlE)

corespunzator

(10pJ

n>O executa

cn%10

ldacd c>0 atr.rlci


I cc-1
ll
lmm+c*prpep*10
I n tn/10l

Riispuns

corect

( 3 OO9,

(4p.)

3019,3109, 3119 )

(algoritmul micgoreazd cu o unitate fiecare cifrd


nenul5 a numerului n)

h.
o. I dl"v 1000+a moal l'000
d. a tltv 100 mod 10+a div 1000 mo'I

8o consideri algotitmul aldturat, descris in


pa.udocod:
ll

| r-|cec-r
ll nn+c*p;p(p*19
|

ll

| | n tn,rlol
| \rana cand n=o

l-t

scrie n

nolat cu

txl,

partea intreagd a numdrului realx'

Scrieli valorile care se vor afiga pentru a=9

(4pJ

Rispuns corect 1 9i 6
Alooritmul determine catul 9i restul impe4irii
viorii (a+1) (a+21 t2la numdrul a

scrie n

10

a/1000+a7.1000
a/ 100".10+a/ 10 00e"10

lllrpuns corect: b.

tr

Scrieli in pseudocod un algoritm echivalent cu Rezolvare cerinla c)


cel dat, in care se se inlocuiascd struclura
citeEte !
cat tiry...excute cu o structurd n0
r pe1
repetitive de un alt tip.
(6pJ
f daca n>0 alunci
Scrieli toate valorile distincte, fiecare avdnd lprepet5
exact patru cifre, care pot li ciiite pentru
I cn%10
variabila ! astfel incat se se afiseze valoarea
| 1-daci c>0 atunci
2008, pentru fiecare dintre acestea

a*.10 0 ) /100
a/ 10 0e"100
(

l.

P1

partea

intreage a numerului real z.

(numer

r,

(C/C++j

(Pascal)
(a mod 100) ativ 100
r dlv 100 tnoil 100

b.

citegte

(numer natural, a>0)

k+0
bt(a+1)*(a+2)/21
rcat tinp b>a executE
I bb-a

lkk+1
ll

scrie b,k

pentru variabila a,
Scrieti num5rul valorilor din intervalul t1,51 care citite
valorii 1in
memorarea
determine, dupa executarea,algoritmului aleturat'
(6p.)
variabila

b.

Raspuns corect 2 (cele doud valori sunt 3 9i 5)

Scrieli programul Pascal

ic/c++

corespunzator algoritmului dat'

Scrieti in pseudocod un algoritm echivalent


Oai. care sa nu se utilizeze structuri
"u
""t
iepetitive sau subprograme recursive (6p')

(1opJ

citegte a
bl(a+1)*(a+2)l/2
k tb/al
beb"oa

scrie b,k

VAFIANTA 032

1'

A 033

care are exact 3 cifre' Care dintre


Vrrlablla a memoreaze un numer natural
jos are ca valoare numdrul format din prima
lc/c++ de mai

stabilili care dintre urmdtoarere expresii Bascar lclc.i+ are varoarea rrue I 1
dace gi numai dacd numdrul intreg memoral in variabila *, nu api4ine
intervalului (-35,-20)utu,1ool.
(4pJ

;;;;;;itt";;;-t
ll

(Pascatl

s,
b.
c.
d.

(x<=-35) oR ((x<=15) OR (x>=-20)) OR (x>100)


(x<=-35 ) OR ((x<=l-?) AND (x>=-20)) oR (x>=lOO)
(n<-35 ) OR ((r.<16) AND (:!>-20)) OR (x>100)
(x<=-35) OR ((x<=15) AND (x>=-20)) OR (x>100)

(C/C++)

a.
b.
c,
d,

(x<r-35)
(x<=-35)
(x<-35)

((x<=15) II t*r=-29y,
( (x<=17) && (x>=-20)
( (x<16) && (*-20) )
|
(n<=-35)
( (x<=X5) && (x>=-20)
Respuns corect: d.

($1oo

r DIv 10+a MOD x00


r DIv 100+a MOD 10
r10+a MOD 10
t, r Drv 10 0
t, r-r DIv 10 MOD 10

b,

9 18 3d 7z L44

Dace pentru

valori.

d.

astfel incat,

in urma executirii

sd se afigeze

3{'

(6p')

se

Scrieli ?n pseudocod un algoritm echivalent

cu cel dat, in car sA se inlocuiasce


Structura ctt tinp ... executl cu O

Rezolvare cerinta d)

citegte a,b
fdacg. a>b atunci
I cb
I bC!
I ac
Lf

;!epetl
I scrie a; aQt*2
$int c6nd a>b

gcrLe

cite+te a,n
(numere
je3
rPentru i=1'

+3-l+3-4+3'4+3 -4+3 -4)

Rispuns corect: 3 (32+3'1t+3)

(6pJ

la numarul natural nenul

(12

un

150,

Rtrspuns corect 7

",
algoritmului,

Scrieli programul pascat lc,/ci+


corespunzetor algoritmului dat.

structur6 repetitive cu test final.

a-al10%10

Dace Dentru a se cite$te valoarea 32, scrieli


nLITar natural care poate fi citit pentru

Rispuns corect: 1199

c.

a/100t10+a%10

d.

.ii

scrieli cea mai mare valodre care se poate

afi$eze exact 4

a/1OO+a%tO

c.

pseudocod:
consldere atgoritmul aliturat descris in

u"riiOita

citi pentru a, astfel incat algoritmul

b.

Scrieti care este valoarea afigatd dace pentru


n se citesc numerele a=12 9i n=10' (4p')

zag

b se citegte valoarea

a/10+a%100

notat cu x%v restul impe4irii numarului natural

Scrieli numerele care sunt afigate dace


pentru a gi b se citesc valorile a=150 gi
b=e.
(+p)

Rispuns corect:

a.

Rl3puns corect: c'

2. Se consideri algoritmul aleturat, descris in


pseudocod.

a.

(CiC++) '

(Pascal)

ll (ploo)
ll t*t=1ss1
(x>100)
I

(4p)

ulllma cifrd a numarului?

0,

Scrieli programul

d.

Scrieti

echivalent
structuri
utilizeze
se
nu
sd
a"i O"t, in care
"r
recursive'
rep.etitive sau subprograme

naturale)

execute

4aca i.*z=O atunci


aea-j
1 |
|

artfel

aa+j
ll
lrlj7-j
I|l

ecrie

pascal lc/c++ corespunzdtor

in pseudocod, un algoritm

v'

alg^oritmului

dat'

(1opJ

citeqte a,n

fdace n*2'O atuncl

ala'lr/z
I
laltfel
Ill aa- [n/21+n
gcrie

A 035

VARIANTA 034

1'

ln secvenla aldturate de program, instrucliunea de afigare se va executa


de un
num5r de ori egal cu:
(4P')

a. 2l

b,

do

2r

51

Scrieti care este valoarea afigatd dace se


citesc valorile x=149 gi y=203.
(6pJ

ScrieJi un set de valori care pot li citite pentru

variabilele x gi y astfel incat, dupa


executarea algoritmului aliturat, se se

valori.

lv*

Il.IxFaux
I xx+1
I vv-r

Scrieti

in

pseudocod un alqoritm
echivalent cu cel dat, in care id se

in_locuiasce structura

executi cu o
... executi.

cat tiry)

algoritmuluidat.

x
afi9ate se fie 5.

(numere naturale)

yr410
fdacE y<x atunci
I auxy

I v*
Il]txaux

nre I (y-x) /21+1

x*10+y

il,nr executi
I scrie x
I xx+S
6rentru

l"t

lss+P

lff+x
qI
scrie g

astfel incal

valoarea
(4P.)

RisDunscorect:oricenumernaturalde3cifrepentrucaresumaputerilor

factorilor din descompunerea in factori primi este egale cu 6'


De exemplu: 4oo, 729 .

(1OpJ

Rezolvare cerinta d)

strudure Dentru xx%10

p0

fcat tinP xtf=o executi


Iqlxtx/f,1 ;pP+1

Scrieti o valoare de 3 cifre care poate fi

citit5 pentru

citegte x,y

...

lxl

Rispuns corect: 4

gi y=9 sau x=9 gi y=1 (pentru oricare dintre


aceste
perechi se aligeazi valorile 19,2g,37,46,s5)

d.

(numer nalural)

s0; f2
rcat tinP x>1 execute

Scrieti valoatea care va fi afi9ate dac.e se


(6p)
citegte numerul x=140.

rcat timp rdy 656.og;


I scrie x*10+y

(x>-20)
| (x>=-20

citegte x

partea intreaga a numerului


notat cu
restul impd(irii numdrului
rr%y
cu
iar
tlrl x,
natural nenul v.
numerul
ntlural :r la

Rispuns'corect x=1

Scrieli programul paEcal i c,,fc++ corespunz5tor

(x>20 )
RIEpuns corect: c.

l, l.

(4p.)

c.

c.
d.

(x<--35) 61d

(x<=-35)
)
(x<=-35) l(x>-20)
(x<=-35) && (x>20 )

b.

f'l

fdaci y<x atunci

(x<-3s)

a.

I auxy

xty,

afiSeze exact 5

{ClC++}

(Pascat

or (x>-20)
(x<.-35) es (1>=-20)
(x<.-35) or (x>-20 )

(x<-35)

(4pJ

consideri algoritmul aliturat, descris


prrudocod.
ln

Rispuns corect: 3g 47 s5

b.

b,
a,

naturale)

x'

xx%10
vrPa10

restul impd4irii numerului natural


la numdrul natural nenul y.

a,

I,
d,

2. Se consideri algoritmul aliturat, descris in citegte x,y


(numere
pseudocod,

valoarea true/1"
lublllli cars dintre urmetoarele expresii PeEcal" I c/c++ arc
nu apa4ine
variabila
rlEcd 9i numai dacd numdrul intreg memoral in
lf

hrtorvalului (-35, -2ol

f,or (i=1ii<=3ri++)

for (j=10rj>=i+1.j--)
cout<<j; ; I OrLnte, g*a.,
c,3
d. 30

Respuns corect: a.

S-a notat cu

(c/c+*)

(pascal)

for i:=1 to 3 d.o


for j:=10 dovmto i+L
rEite (i ) ,

0.

d.

Scrieli programul

rascal lc/c++

corespunzator algoritmului

dat

(10p')

pentru
Scrieli valorile naturale din intervalul 17,287 care pot fi introduse
se
afigate
variabila x, astfel incat, dupe executarea programului, valoarea
(6p,)
Iie 1.

Raspuns corect

, !r,

L3,

L7

Lg

23

(numerele prime din inttsrval)

VARIANTA 038
1.

AFIANTA 037

ln secvenla de instrucliuni aliturate, variabilele x gi y sunt de tip inLeser


Care este valoarea pe care trebuie s-o aibe initial variabila x dace la
executerii secvenlei s-a afigat un singur caracter asterisc

(Pascal)

x:=x+y endi

Rispuns corect: b

in

S-a notat cu x*y restul imp;(irii numerului natural x la


numerul natural nenul y gi cu 1zl partea intreage a
numdrului real z.

Scrieli ce valoare se va afiga dac5 se citesc, in


ordine, urmetoarele valori : LL4, L2g, sL7,

33L2, L4, 4,L2, 22,

0.

(6pJ

so
citegte v (valoare nafurald
rcat tirq) v + 0 execl

v*ro
I
b
lvl1ot%t o
I
a

| "s+a*10+b
v
I citegte
\l
Ecri s

RAspuns corect: 249


b.

Scrieti ce valoare se va afiga dace se citesc, in


ordine, primele 99 de numere naturale nenule,
urmate de 0 (adicd I,2,3,4,....9e,99,0). (4p.)
Respuns corect: 4950
( 1.+2+3+..-..+98+99, se adune valorile ob,tjnute
prin oglindirea numerelor formate cu ultimele
doud cifre ale fiecerului nurner citit )

Scrieli in pseudocod un algoritm echivalent cu


cel dat, in care se se inlocuiasca structura cat
timD. . .e*ecute cu o strudura repetitive de
, un alt tip.

d.

(6p.)

while

do

(x!

x=x-1;

bcgLn

cnd;

r.0

I citegte v
I a v%XO
I b tvlj-o)%Lo
l.Lpind
"6+a*10+b
c6nd v=0
gcrie E

Scrieli programul pascal l c/c++ corespunz5tor algoritmului

dat.

(10p,)

(',HH,, )

r)

d.5

ilrpuns corect: c.
l. 9e consideri algoritmul al5turat descris in
pr.udocod:

tt'R notat cu n%y restul impe4irii numarului natural :r


h numdrul natural nenul v 9i cu tzl partea intreage
a numdrului real z.

r,

Scrieli numarul afigat dace se citesc valorile


(6p)
n=1232 9i k=2.
22
122
3
Respuns corect:

b.

Scrieli toate perechile de valori care pot li citite


pentru n 9i k, cu n<100, astfel incat in urma
executerii algoritmului, valoarea afi9atd sa aibd
(4pJ
4 cifre-

Scrie{i in pseudocod un algoritm echivalent cu


cel dat, in care sd se inlocuiascd structura cat
tj-mp. . . execute cu o structura repetitive de
(6p.)
un alr

tip.

s0
flePetA

I printf

c.5

6.4

(99,9)

cerinli c)

I^,fite('IIII')

Rispuns: (n,k)e{(11,1) , (22,2), (33,3),


(44,4) , (ss,5\ , (66,6), (77,7) ' (88'8),

Rezolvare

=3 )

cout<<,,HIt",

x: =x-1i

Printf(n*")t
y=y+1r x=x+yr l
c. 1
d.4

2. Se consideri algoritmul aliturat descris


pseudocod:

whlle x<>3

(4P.)

(CK++)

(Pascal)

while(x<=3) t
cout<<"ru.

. yt=y+L;

a,

HHHHIIH

y=xi

writel'*'1'

x penlru

oa, in urma execut5rii secvenlei alaturate, se se afigeze girul de maijos?

(*)?

(C/C++\

y: =xi
tphiL x<=3 dlo begin

a.0b.2

Care esie valoarea pe care trebuie s-o aibe initial variabila intreage

Rezolvare:

se

inlocuieqte secvenla de

instrucliuni hagurate cu cea aldturate.


Scrie-ti programul
zetor algoritmului

lascal lc/c++

dat.

corespun-

(10P)

execute

tn/101
n
Rezolvare cerinla c:

citeqte n,k

nro;

pC1

lrePeti

c n%10
nr nr+c*p
p pr10

ldaci c=k atunci


t" nr+c*1l
I

I I
lrrn
ILpAni.

PP*10

In/101
cAnd n=0

VABIANTA 038

1.

A 039

Care dintre expresiile urmdtoare, scrise in limbajul nascal lc,/c++, are


valoarea TRUF/1 dacd gi numai dace valorile variabilelor intregi x gi y sunt
numere pare?
(4pJ

a.

{Pascal;

x-Y=o

Respuns

coreit:

x-Y==0
(r.+y ) "42== 0

d.

pseudocod:

[z]

partea intreagd

numirului

citeFte n

Scrie{i valorile afi$ate

in

urma

executerii

algoritmului, dacd se citegte numdrul n=3. (6pJ

Rispuns corect:
b.

OoL

Scrieli cea mai micd valoare care poate fi citite

pentru

astfel incat,

in

urma executdrii

algoritmului, in girul valorilor afigate se existe


cel pulin 3 numere care au ultima cifre o gi

(numdr natural)

Tpentru i<-1l n execute


p<-r
I lPentru5<-i, Z, -1 erecutA
ll p<-p*j

llr

tpl (i*2)
lscrie
l-t

t,a

Rispuns corect:

structure

repetitivd.

(6pJ

23 949

o.

pseudocod un algoritm Rezolvare cerinla c)


echivalent cu cel dat, in care sd se citelte n (numdr natural)
inlocuiasci structura cat tirE) ... ar0
execute cu o structura repetitive de un pel

Scrieli in

alt tip.

citegte n

(5p')

rdaci

(numdr natural)

I)<-1

rpentlu ie1,n execute

atunci

l.l

gace c>0 9i c<9 atuDci

||

cc+r

llrr

llnrp
ll
n
llLpdni

L|

Scrie,ti programul eascial- | c,rc++ corespunzitor algoritmului dat.

ntAO

llrepeli
ll c n%10

lp p*i
I scrie lp/ G*2ll

d.

d.s

Scrieli toate valorile care pot li citite


pentru variabila n astlel incat, in urma
executerii algoritmului, valoarea aligata
(4p)
se fie zoo9.
1009
1008,
Respuns:

acestei expresii, generate consecutiv, avand


ultima cifre o, corespund numerelor 5,2 9i B.
Scrieti in pseudocod un algoritm echivalent cu
singure

c.2

b,

si se afle pe pozilii consecutive.


Rispuns: n=8. Algoritmul afigeaze, pentru
fiecare numdr dln intervalul [].,n] valoarea
expresiei (i-1)l/2. Primele 3 valori ale

b.3

x=4; y=6i
while (y==5) y=y+1,
if (x==y) x=x+li

ilrpuns corect: b.
l. !o consideri algoritmul aleturat descris citeFte n (numdr natural)
nro
ln p.oudocod:
Il n notat cu x%y restul impe4irii numdrului p1
rcat tinP nta 0 execut6
[Alural x la numerul natural nenul v gi cu Iz]
c n%1.0
lurloa intreage a numdrului rcal z. ,
rdaci c>O 9i c<9 atunci
g. Scrieli numdrul afigat daca se citeqte lcc+t
(6PJ
\t
valoarea n=12939.

care

cel dat, in care sd se utilizeze o

whLle Y=S do Y: =Y+1;


If x=y then x =x+li
3

(rlPa2==o) ll (t'42==o)
(t%2==O\ a& fue"2==Ol

real z.

(C/C+'t\

(Pascat

xr-A; y: =6;

2, Se consideri algoritmul aliturat descris in


S-a notat cu

(4p.)

lnstrucliuni alaturate?

l.CiC++l

(n+y) mod 2=0


(x nod 2=0) or (y noat 2=O)
(x nott 2=0) and (y modt 2=O)

b.
c.
d.

orrre este numerul lotal de atribuiri efectuate la executarea secvenlei de

(l opJ

l.|

nr+c*D

Ptro

tn/101
cAnd n=0

scrie nr

d.

Scrieti programul pascal"

lc/c'r+

corespunzetor algoritmului dat.

(10p.)

VARIANTA

O4O

A 041

1,

Carg esto valoaroa gxprssigi


(Pascal)

50

a. -30

(100

300

pascat lc,/c++ aleturate?

dtv 2 dltv

b. 70

(cp.)
(C/C++.\

(2+3))

s0- (100-300/2 / (2+31)

d.60

c, -20

Rlspuns corect: c.

care este instructiunea prin care


$tllnd cd varlabilelB x 9i v sunt de tip tntreg,
varlabllei x i se atribuie ultima cilra a numSrului natural memorat in variabila

t,

xrry rrcd
s, yrq< div

pseudocod:

x*y

lzl

Scrieli numerele afigate dace se citegte


valoarea x=1G8.
(6p)
Rispuns corct: !E2 9i z=7 (cel mai
mic ai cel mai mare divizor prim din

l.

Scrieli cea mai mare valoare din intervalul


inchis t1,501 care poate fi citite pentru
variabila :r astfel incat,

in urma executerii
algoritmului, sA se afigeze doue valori egale.
(4pJ

Rispuns: n=49 ( se afigeaze Z ?)


Scrieli in pseudocod un algoritm echivalent
cu cel dat, in care s6 se inlocuiasca fiecare
structurd cat timp. . . executg cu cate o
structure repetitivd cu test final.
(6p.)
Rispuns: structura
xrAl . . .
executi (zona hagurat5) se inlocuiegle cu

cat tiq)

d.

!r

cerinli c.
citegte x
dI2; y0; z0

lrepeti

Scrieli programul pagcal lclc+.r


corespunzatoralgoritmuluidat. (1opJ

ll

fdaci xtd=o atuncjI I repeti

Fat tiry

x>d executl
x*dF0 executi
titnP
I rcat
I

lx txltl!

I lscrie x
Scrieli numerele care se aflgeaze dace lrl
(6pJ
se citegte valoarea 1oo?
ldtt+l.
l.|
5
1
Rispuns corect: 1oo 50 25
Scrieli cel mai mare numar natural de doua cifre care trebuie citit peniru
(4p)
varia6ila x, astfel incat algoritmul sa afigeze exact doui valori?
Rispuns corect: 97

p+1

struclure:

citeste x

(numdr natural)

n2

scrie x
rcat limp x>d executi
I fdaci xtd=o atunci
x txliU
||
scrie x
ll

| altfel
ildt+l
I

x tx/trt
I ILp6ni
cintt

|
I

plo atunci
I ra""a i-O atunci

Scrieli programul pascal lc,/c++ corespunzetor algoritmului

I|l

fdace

scria x

repetitive.

Rezolvare

PO

(numer natural)

d<2

Scrieli in pseudocod un algoritm echivalent cu cel dat' care sa conlina o


(6p')
iinguia stiuctura
urmatoarea
cu
ialpun" corect: Se vor inlocui cele doud structuri repetitive

ecrie y
scrie z

secventa aldturatei., (evident existd gi alte


posibilitali de echivalare).

citegte x

Y=xra10;

dt. x=x/10;

c. y=x/lOt

considerl algoritmul aleturat, descris


prcudocod:
ln
l.a notat cu txl partea intreage numarului
frtl n, iar cu x*y restul lmp64irii numdrului
lnlrog x la numerul intreg v.

l,

descompunrea numdrului :r)


b.

lot b. Y:an ncdl 10;


10; d. x:'{r div 10i

(C/C*+)

a. :.=l'e610, b,

Rtrspuns corect: a'

restul ?mpa4irii numarului natural


x la numdrul natural nenul y gi cu
partea
lntreaga a numerului real z.

a.

(Pascal)

..

2. Se consideri algoritmul aleturat descris in


S-a notat cu

(4pJ

v?

llved
lr
| ztt

lrr

ldat+1

k)ane cend x=l


gcrie y;scrie z

x%tl*O

lrl

dat' i

(1oPJ

VAHIANTA 042

1.

A 043

$tiind ce variabilete x 9i y sunt de tip intreg, care este instrucliunea prin car6
x i se atribuie cifra zecilor numerului natural cu cel pulin doud
memorat de variabila y?
(4p.)

variabilei

(Pasca0

a. x:=y noal 10 aliv 10,


b. :*=y div 10 modl 10;
c. *: =y mod 10,
d. x: =x itiv L00;
Rispuns corect: b.

2. Se

a.

b.
c.

{C|C++\

x=y%lo/10;
x=y/LO%L0;
x=y410

pseudocod:
S-a notat cu x%y restul imp64irii numerului natural
x la numerul natural y.
a. Scrieli valoarea care se va afiga la finalul
executdrii algoritmului dace se citesc valorile
x=]s gi y=2s.
(6p.)
Rispuns corect: g0

b.

xr.y dlv
y rctl 10;
x!-y + y div 10 + y tliv X.00;
xr-y npd 10 + y rnod 10 tliv 10
y dtiv 100;
xr=y nrod 10 +ymod100+
y rnod 1000;

cite$te x,y
(numere naturale)

rcat tinp

y>O executa

zQxeq

I x2*"
I\I y12+z

scrie x

Respuns corect: Se vainlocui structura repetitiv5

cat rinx,

Scrieti programul

(C/C++\

Scrieli valoarea Pe care


algoritmul dace se citesc,

LO+y /

(6pJ

Respuns corect: 5

b.

fOO,

x=ye"L0+yaL0 / to+y /

LOO

x=t'aX.O +ya6LO O +t'aLo

O,

(numere naturale)

o va afiga
in aceasta

ordine, numerele 30 9i 25.

rcat !irE) x*l+o executa


$aca x>y atunci

ll

x>r%v

|
lrl
\l

vrrar

| | altfe1

gcrie x+y

Dacd se citegte pentru variabila v valoarea 26, scrieli toate numerele naturale de cel
mult doue cifre care pot li citite pentru vaiabila x, astfel incat la finalul executerii
(4P')
algoritmului sd se afigeze valoarea 13.

Respuns corect

13 39 55

91

Scrieli in pseudocod un algoritm care sa fie


echivalent cu cel dat in care structura cat

tirry...enecut: se fie

structud repetitive cu

dat.

xFf4yl

y<2*z

pascal lc,/c++ corespunzitor algoritmului

x=y /IOO+Y/ L0%10+rr%10 t

10 modl 10 +

8"a notat cu :re"y restul impS(irii numerului


ndlural x la numarul natural v.

l.I
d.

y dliv

citegte x,y

c.

cu:

100 +

R{spuns corect a.
l. 8e consideri algoritmul aleturat, descris
ln peeudocod:

r.

Rispuns corect:1, 2, 4, s,7, g


Scrieli in pseudocod un algoritrn echivalent cu cel dat in care slructura cat
tirE)
. . . e<ecure sd fie ?nlocuite cu o structul repetfiive cu test final.
(6p.)

I LpAni cAnd y<=g

t.

v?

(Pascal)

0.

Dace pentru y se citegte valoarea 3, scrieli toate numerele formate dintr-o


singure cifr5 care trebuie citite pentru variabila x astfel incat, pentru fiecare
dintre acestea, la finalul executarii blgoritmului sd se afigeze o valoare de
forma 2D, unde rr este numer natural.
(cp)

ldaci y>0 atunci


llrepeti
ll zx%y; x2tyi

Care este instrucliunea prin care variabilei x i se atribuie valoarea sumei cilrelor
(4p)
numerului natural format din exact trei cifre, memorat de variabila

b.

dl. x=x,/1.00;

consideri algoritmul aleturat, descris in

inloeuitd

testfinal.

cu

(6p)

citeEte x,y (numere naturale)


fdaca x*f#o atunci
| ;repeti
| | faci *y atunci xx%Y
altf,el YlP6t'
lll

lltr
Lcat tinqg x*l+O
I

Lt

(10p.)

gcrie x+y

d,

Scrieli programul Pascal- lc,/c++ corespunzator algoritmului dat.

(10p.)

VARIANTA 044

1.

VARIANTA 046

Carg este lnstructiunea prin care variabilei x jse atribuie valoarea cllrei
numArului natural cu cel pulin 4 cifre memorat in variabila y?
(Pasca!
(C/C++)

a. ,r!=y nod 100 dliv Loi


b. xs'!y cllv 10 dliv 10;
c. x3 =y nod 100t
d. x:=y dllv 10 dliv 1o i

citeete x

consideri algoritmul aleturat, descris in

a.

(numdr natural)

Scrieli numdrul care se afigeaze dacd se


cilegte valoarea

2?4.

praudocod:

prepetd
lyy*10+9-x%10;
\>6ni clnd x(y sauy=g

8.a notat cu

lr

scrle y

(6pJ

I.

'

(numar natural)

repete

restul

impe{rii numerului

citegte x,y

(numere

naturale)

z!
reo
natural x
rcet tinp xlz axecutl
I

Scrieli valoarea care va fi afigata de algoritm


dace se citesc, Tn aceaste ordine, valorile 12

3.

(6pJ

rdace x*z=!' atunci

| .tz

lrl

lz?z+L

\l
scri t
(4p.)

Respuns corect: 14

(6p)
0r

Scrieti

in

pseudocod un algoritm echivalent cu cel dat in care sd se


cat tiq). . . executa cu o structura repetitiv5 cu test
(6P)

yy*10+9-x%10;

inlocuiasc5 structura

lyey*10+9-r!%10,

Rezolvare:

final.

fcat timp x>y gi y(>0 executi

citelte x.y (numere naturale)

scrie y
Scrieli programul pascai- lc,rC++ corespunzetor algoritrnului dat.

r!=ye"l0+y/ 10 t

0.

...

v0

d.

d.

Daci valoarea cititd pentru variabila v este 7, scrieli care este cea mai mare
valoare care trebuie citite penku x, asifel incat algoritmul se afigeze numerul

Rispuns corect; 6?B (orice numer de forma abg, cu b>=1)

citegte x

6.;=1410+Y/10*10;

R{spuns corect: 9

111t.

Scrieli in pseudocod un algoritrn echivalent cu cel dat in care structura


cAnd se fie inlocuitd cu o structurd repetitivd cu test inilial_

xty

numArul natural y.

9i

Scrieli un numdr natural de cate 3 cifre care poate ti citit pentru variabila x, astfel
incat, la iinalul executdrii algoritrnului se se afigeze valoarea
(4pJ

pini

10;
10t

Rtrspuns corect: b.

Rispuns corect: s55


b.

a. :3=y/10*10+1410 t
b. xR410 * 10+y/ 10,

10

I. 8e consider.i algoritmul aleturat, descris in

v0

S-a notat cu xay restul impe4irii numarului natural


la numdrul natural y.

(C/Ct +\

(Pascall

r, xlitt dlv 10 *. 10 + Y ld
b. xlry rEd 10 * 10 + y div
c. xr*y nnd 10 + y dliv 10 r
d. x3 yld 10 + y div 10,

dl. x=y/100%10;

pseudocod:

(4pJ

ln variabila y?

a. x=y4L0 /L0 i
b. x=y/L0/L0;
6. 1=1r4X-00;

Rispuns corect: d.
2. Se

Csre esto instructlunea prin care variabilei x i se atribuie numerul obtinut prin
lnversarea ordinii cifrelor numerului natural format din exact 2 cilre, memorat

z(1"

(10p.)

t0

rdaci x>z atunci


1!ePeti
I aaca xtz=y atunci t2
I

I
I
I

l.I

Il.l z?z+L
cAt tinp xlz

Scrieli programul PaEcal I c,/c+'r corespunzator algoritmului

dat

(10p')

VARIANTA 046

1.

ANIANTA 047

Variabila intreqgd
urmatoarele expresii

memoreazi un numdr naturat impar. Care dintre


pascal lclc++ are valoarea rrue/1?
(4p.)

(Pascal)

! (n%21
n%2i=0
n%2l=0
! ( (n+1) %2==0)

Rispuns corcc.t c
2. Se consideri algoritmul aliturat, descris
in pseudocod.
S-a notat cu xToy restul ?mpe4irii numerului
intreg x la numarul intreg nenul y Si cu tal
partea intreaga a numdrului real a.

a=a-bt a=c-ai
*a-c i
b. doar c
d. doar a Si b

a ! =c-ai
lra-bi
bta2* a-ci

t,
0,
(numer natural) -

b=2

niciuna

doar a gi c
Rispuns coaect d

l,8e consideri algoritmul aliturat,

descris

Scrieli valoarea afi$ate dace se citegte

ln peeudocod.
tl lr notat cu xoloy restul impd(irii numdrului
lnlrog x la numdrul intreg nenul y gi cu [a]

numerul

lrflrtsa intreagd a numdrului real a.

n=10325

Rispuns corect:

b.

Care dintre urmetoarele variabile nu igi modificd valoarea in urma executerii


secvenlei de instrucliuni aleturate, oricare ar fi valorile lor iniliale? (a,b,c sunt
(4p)
variabile de tip inteser
(Pascat
{C/C++\
c=2*a-bt
c t -2 *a-bi

lint).

(C/C++)

a, not (n Inoil 2<>0)


b. n nod 2=0
c. n rnod 2<>0
d. not( (n+1) rnod 2=0)

a,

t.

(6p.)

r,

Scrieli pentru cate numere de forma n =


= 31a5b, unde a este cifra sutelor, b este

atudci

Scrieli valoarea afigatd daca se citegte

27349.

(10pJ

numerul
RAspuns corect 7

cifra unitdlilor gi a#b, valoarea afigati


este 1.

(4pJ
Rispuns: 60 (s este lormat din cilrele pare

Scrieli cate numere naturale de trei cifre pot fi citite pentru variabila n, astfel
(4p.)
incat valoarea afiqata sa fie
Rispuns: 5o (algoritinul calculeaz5 cea mai mare cifrd a lui n excluzand cilra
unitalilor).

3.

ale lui n).

c.
d.

Scrieli programul .pescal

c/c*+

corespunzdtor algoritmului dat.

Scrieli in pseudocod un algoritm


'
echivalent
cu cel dat in care
se inlocuiasce
structura
cu o
structurd repelitive cu test
(6pJ

si
cat t!ry...executi
finat.
Rispuns: structura cat tinD

execut6 (zona hagurata) se


cu secvenla aldturatd:

n.O

inlocuiegte

rdace n+0 atunci

(1opJ

I prepeti
I I rdac; nt2=O atunci
I I I ss*10+n%10
llrr
I ILp6nine tnl101
cand n=O
I
t-l

c.

in

pseudocod un algoritm
echivalent cu cel dat in care Ee se
inlocuiascd structura repeti - ...
pani cand cu o struclura repetitive
(6p)
cu test initial.
Rispuns: structura repete...pane
cand (zona haguratd) se inlocuiegte

Scrieti

cu secvenla alaturata:

Scrieli programul pascat

lctcr*

n [n/101

rdaca max<n9"10 atunci

Il.|

naxn%10

rcat titp n*0 executi

I n Inl101
| $acd max<n%lo atunci
ll naxne"lO
llr
tt

corespunzator algoritmului

dat.

(6p.)

a,

VARIANTA 048

1,

(Pascat

not((a mod. c<>0) or not(b

mod

c<>0) )
b.

(a nod c<>o)aual nof(b mod c<>0)


(a modl c<>o)or not(b mod c<>0)

c.
d. not(c

mod a<>O)and
RAspuns corcct a

(c

motl b<>O)

2. Se considere algoritmul aleturat, descris


in pseudocod.
S-a notat cu xoloy restul impd4irii numerului
intreg x la numdrul intreg nenul y gi cu lzl
partea intreage a numerului real z.

a..

Scrieli valorile afigate daca pentru n se


citegte valoarea 6, iar pentru x se citesc

" in

ordine urmdtoarele valori: 2008,


L95s, 2727. LA6L, LLO2L, X65. (6p.)
Respuns corect: 8 905 7o7 801
10001 105

b,

p.ntru...

Variabilele !, b gi c, de tip lnteserllnr, pot fi initializate cu oricare


nalurale impare distincte. $tiind cd c este divizor al'lui a, iar b nu este
al lui c, care dintre urmdtoarele expresii scrise in paEc&.: Iclc++ are

true I f?

$tiind cd valoarea citita pentru n este 4,


scrieli un set de valori distincte, numere
naturale cu exact 3 cifre, care trebuie
citite pentru variabila x, astfel incat setul

de valori afigate in urma

executdrii
algoritmului se fie identic cu setul de valori
citite pentru x .
(4p)

Rispuns: patru numere distincte care au trei


cifre gi care au cifta zecilor egalS cu 0.

a.

!(

Scrlell ln psoudocod un algorltm chlvalnl


cu cel dat, ln care sA 3e lnlocuiasca
.xccuttr cu o
Structura

b. (a%c!=0)&& ! (b%c r=0)


c. (a%c!=0) | | r (b%c!=0)
al. ! (c%a!=O)&& (caJr! =O)

d.

ltuncl
rrepetl
lcitegte x (nr. natural)
| nreo
l;cat tinp x>0 execute

rdrctr t<n

I
final. (6p) I
RlspunE: structura pentru. . . executa |
(zona hagurate) se inlocuiegte cu I
I ll nrnl*1oo+x%10
secvenla aleturate:
I ll x txl100t
I lrrpat timp n!>0 executd
It
I ll xx*10+nr%10
I ll nr tnr/101
I lrl x'
I lacrie
I lii+l
Itl LcAt ttunP i3n
(10p.)
Scrieli programul pagcal c/c+.r corespunz5tor algoritmului dat.
structurd repetiliva cu test

tC/C't+)
(a%c!=0) | | ! (b%c!=0) )

tel

VARIANTA (X9

1.

VANIANTA

Variabila a, de tip

integer I inr,

b, de tip integerlint,
urmdtoarele expresii

pascal

memoreaze un numdr natural impar, iar variabila


un numer natural par. Care dintre
(4pJ
lc/c++ are valoarea true |

memoreaze

a.
b.

c.
d.

(a notl 2<>0) anal (b noal 2<>0)


not(not(a mod. 2<>0)or(b noal 2<>0))

(a+b+1) mod 2<>0


not(a tnod 2<>0) or (b noal 2<>0)
Rispuns corect b

{C/C++)
ae.2 && b%2,
! ( ! (a%2) ll b%2'

(a+b+1) %2,

G%2)

ll

Scrieli valoarea afigatd daca pentru

cite$te numerul

(6p)

21034s.

b%2 r

pseudocod un algoritm
echivalent cu cel dat, in care se se
Tnlocuiascd fiecare structure c6.t timp

executi cu cate o

repetitivd cu test

final.

Rispuns: structurile

executi

cat

structura

(6p)
ttuE). . .

(zonele hagurate) se inlocuiesc


cu secventa aleturate:

d.

c=d+2*

sintaclic? (4pJ

c=2-d%2*at
c=scrt (b*b) ;
b= (al<=c ) ,

Rlspuns corect b

l,

8e consideri algoritmul aliturat, descris

ln paeudocod.
ll n notat cu xoloy restul impa4irii numerului
hrlreg x la numirul intreg nenul y gi cu ta]

citegte

(numer natural nenul)

k9

executi

pnrtea intreage a numerului real a.

se

in

{C/C++)

l. c !rd+2ici
!, c r -2-tl mod 2*at
O. c r raqrt (a*a) i
d, br-(d<=c) -

r.

Scrieli cea mai mare valoare formate din


cifre distincte care trebuie citite astfel
incat numdrul afigat sd fie 98?.
(4pJ
Rispuns:96852{o

Scrieli

variabila

lnstrucliuni de atribuire nu este corect5 din punct de vedere

Rispuns corect 204


b.

irtr,

b este de tip boolean I int,


tip ral" I doubl"e. Care dintre urmatoarele
I

(Pascat)

2. Se consideri algoritmul aliturat, descris


in pseudocod.
S-a notat cu xoloy restul impd(irii numirului
intreg x la numdrul intreg nenul y gi cu tal
partea intreag5 a num5nilui real a.

a.

Variabila a este de tip integr


lar variabilele c $i at sunt de

1?

(pasca|,

O5O

$tiind

fdaci x+0 atunci


l;repetd

ci

valoarea cititd pentru

pentru variabila
numdrul

atunci

gcrie k

n este 4, scriefi un set de valori care pot fi citite


b finalul executerii algoritmului se se afigeze

astfel incat

9.
(4p)
Rispuns: 99,9a,97,96 (algoritrnul determind niinimul dintre cifrele zecilor pentru
cele tl numere citite)

ll kk+10+xe"1o
ll x txl10l
c6c lirnp x*0
lL
l1l

c.

rdace k+0 atunci

lp repeti'
ll xx*10+k%10
ll k tk/1ool
It- iat t*np t+o

Scrieli in pseudocod un algoritm echivalent


cu cel dat, dat in care sA se inlocuiasce
structura Dntru. .
o
strudure repetitive cu test
(6pJ

.executi cu

final.

Rispuns: structula pentru. . . execute


se inlocuiegte cu

ql

Scrieli programul pascal lclc++ corespunzetor algoritmului dat.

Scrieti numerul care va fi afigat daca


pentru n se citegte valoarea 3, iar pentru
x se citesc in ordine urmetoarele valori:
90, 965, 727.
(6pJ
Rispuns corcct 2

(zona haguratd)

(1opJ

secventa alSturatd:

d.

i1

ldaci i3n atunci

l;repeti
I citegte x

(numir. natural)

I c txl10l %x0
c<k atunci kc
ldaci
|l

liei+1
L

cdt tinp i3n

Sc{eli programul pascal lc,/c{+ corespunzetor algoritmului dat.

(10p.)

A 062

VARIANTA 061

1.

(:lllrl lntorval ii apa4ine valoarea memorate de variabila reale x astfel incet


rrJlorla urmdtoare, scrisd in limbajul Pascal" lclc++, se aibe valoarea

x memoreazd un numdr naturalcu oxact 4 cifre. Care


urmetoarele instrucfiuni PascallC/C++, dotermin5, in urma

Variabila lntreage

eliminarea cifrei sutelor numerului memorat de variabila x?


lPascal)
' lu/v++)
:<:=x noal 10+x div Lo+x itiw 1000;
x=:C{l0+x,/ 10+x./100

a,
b. rrs=x mod 1000+100+x ttiw 100;
c. x:-x mod 1000+* mod 100+x mod 10t
d. ir:-x div 1000*100+x moat 100,

lrrrrll?

(41
0

(l'd'i('rll) (:.<--2)or(x>-1) and (not (r<>=1) )or (x>50)


(r'll/ /) (x<--2) | | (x>-1) e& t (x>=1) ll (x>50)

x=x%loOO* 1O 0+x/ 1O O,
x=x%1000+x%100+x%10

x=x/100 0r10 0+8100,

iltpuna cotect

Rispuns corect d
2. Se considerA algoritmul aleturat, descris
in pseudocod,
S-a notat cu xToy restul impe4irii numdrului
intreg x la numerul intreg nenul y gi cu tal

,.

b.

llr:rloll care este valoarea afigald dacd

ta cltosc, in aceaste ordine, numerele


(6pJ
t,,12, L, L3,25, L7.
ilrpune corect 2

, (6pJ

Scrieli cea mai mare valoare formate din


exact 4 cifre distincte, care poate fi cititd
pentru variabila x, astfel incat algoritmul
se afigeze un numer format din toale
cifrele lui x, dar in ordine inversd. (4pJ
Rispuns: 8542 .

Srrlo{i un Sir de date de intrare ce pot


oltlte astfel incSt valoarea afigate se fie

ilrpuns:

Pseudocodul pentru
cerinieid):

Ecrleli

lclc+r

in

pseudocod

ochlvalent cu cel dat,

p.ntru...

un

in care se

final.

Rlepuns: structura pnlru...

\l

.x.cut!.

corspunzetor algoritmului dat.

atunci

2, 16, 625

algoritm
se
lnlocuiasca structura repetitivd
executl cu o structurd
(6pJ
ropetitivd cu test

final cu o structure repetitive cu test inilial. I I


I laltfel
Rdspuns: structura repete lT;l I I zz*!O+c
cafld (zona hagurate) se inlocuiegte Itt x
txl1ot
I
dupa cum se observi alelurat:
Scrieii prograniul pascat

(4p)

a.

titlp x*0 executa


Scrieli ?n pseudocod un algoritm rcat
c
x*10
echivalent cu cel dat, in care sa se I
inlocuiascd structura repelitive cu test I rdacl c*2rAO atunci
zz*10+c-1

d.

(numdr natural nenul)

lnlroagd a numdrului real a.

Scrieli ce valoare se va afi$a dacd pentru

x se citegte numerul 123{.


Rispuns corect 4220

h conslder2l algoritmul aliturat,


,fla ln ptoudocod.
lrolnl cu xoloy restul impd4irii numdrulli
x lR numArul intreg nenul y gi cu Ial

(num5r natural

partea intreagd a numerului real a.

a.

b. (--,-2)u(-1,50)
d. 1--, -21s1:1,x)u(s0, -)

l--, -2lu(-1,1)u(50, -)
l--, -2)v(-1,11u(s0, -)

loo'l

(zona

tnlocuiegte dupi
slAturat:

ha$uratd) se
cum se observe

i1

prepeti

I eitegte x
(numdr natural nenul)
rcat tinp x*2=0 executa
lx(txl21;dtd+r
|l.
rcat timp x85=0 xacutl

I x tx/sl; c
\l

c+1

i et+1

{,

:At tirnp i3n

Scrie{i programul

pascat Ic/c++ corespunzdtor algoritmului

dat.

(10p.)

A 054

VARIANTA 053
1.

x memoreaza un numar natural. Care dintre urmetoarel


expresii pascallc/c++ are valoarea o dace gi numai dace n
Variabila intreagi
memorat de

a.
b.

c.
d.

(PascaD

(Pascal

lC/C++l

xmod3
(1-x moal 3)+(2-x tnod 3)

,f43
(L-r&3)

1_:r modl 3') * ( 2 _x noat


3-x mod 3
Rispuns corect c

2. Se

3)

considere algoritmul

alStuTat,

Scrieli care este valoarea ce se va


afiga dac5 pentru x se citegte numerul

L234.

(6p.)

Rispuns corect 13 (se elimind din x


toate cifrele pare)

b.

Scrieti o valoare formata din exact 4

cifre, care poate

fi

t,
0,

(2-x"o3')

1-x%3 ) r (2-xe"3)

-rf43

citita

pentru

variabila x, astfel incat algoritmul se


(4p)
afigeze valoarea 0
Rispuns:2000 (cel mai mic numer de
patru cifre format numai din cilre pare)

c. Scrie_ti in

pseudocod un algoritm
echivalent cu cel dat, in care se se
inlocuiasci struclura repetitiva cu test
final cu o structurd repetitivd cu test
.

cum

d.

observe

aleturat,

A A notat cu xoloy reslul impd4irii numerului


Itrlrog x la numerul intreg nenul y gi cu Ial
ll{rloa intreagd a numerului real a.

(numdr natural nenul)

z?o
P1
'|lrePetd

a,

(1, soI

(numdr natural nenul)

n>0 executa
atunci

Scrieli care este valoarea afigate dacd


se citegte numerul

1234.

(6pJ

Rispuns corect 26

c:<%xo

I dacd c*2r40 atunci

b,

z?z+c*g
pp*10

lr
I x tx/101

LpAnicAndx=0
'scrie z

Scrieli un numdr natural, de exact 4


cifre, care poate fi citit pentru valiabila
n, astfel incat valoarea afigatd se fie 3.
(4p.)
Rispuns: programul calculeazi suma
factorialelor cifrelor pare dintr-un

numar: pentru

Rezolvare cerinla c.

cx:B10

exemple: 1oo 0, 1012.

rdaci c*2*0 atunci


I zz+c*g ; pp*10

o.

l.|
x [x/101
rcat timp x*0 executi

I I zz+c*D; pp*10

Itr
ILt x txl10J

d,
(10p.)

patra citr5 se

Scrieli

in

ne Inl10t

a obtine rezultatul 3,

oste nevoie fie ca numerul sd con_tine


cifrele 0 gi 2, iar celelalte doud cifre se
lie impare, lie si con$ne trei cifre 0, iar

Scrieli programul pascal lc/c&+ corespunzetor algoritmului dat.

(4p)

11(x<=1) | | (x>50)
(_-.11
b.
u (50, -)
{C|C++J

d.

IX,50)

l, 8e considerd algoritmul

citeFte x

II
II

Rispuns corect d

(6p.)
ini,tial.
Rispuns: structura repeta ..
cx%10
pini c6nd (zdna +laguratd) se II paca
c82*0 atunci
inlocuiegte dupd
se

aliturat:

(x,50)

rot ( (x<=1) or (x>50) )

ducrls in pseudocod,

descris in pseudocod.
S-a notal cu xoloy restul impir[irii numirului
intreg x la numdrul intreg nenul y Si cu' Ia]
partea intreagd a numerului real a.

a.

CArui interval ii apa4ine valoarea memorate de variabila reaH x astfel incat ex;rresia urmdtoare, scrisd in limbajul pascal lc/c++, sa aib6 valoarea true | 1?

(4p)

NU este divizibil cu 3?

lie impari;

pseudocod

cateva

un

algoritm
se
repetitive
structure

i.2
rdaci iSc execute
inlocuiascd structura
I prepeti
pentru. . . execute cu o
repetitivd cu test final.
(6p) I I Dp*i
ll Lcetitq1
Rispuns: structura Dentru
tiirl i<c
executi (zona haguratd) se Ilt
inlocuiegte dupe cum se observe
echivalent cu cel dat,

aldturat:
Scrieli programul

in care sA

pascal lc/c*+ corespunzdtor algoritmului

dat.

(10p.)

A 056

VARIANTA 055

1.

Varibbilele introgi

scris5 aleturat?

numai dace urmetoarea expresie scrisS

(C/C++)

(Pasca|

nor ( (x>=5)alld (x<10)


a.
b.

c.
d.

) or
(:r<5) or
(x<5

t ( (x>=5)

(:r<5)

(x>=10 )
(x>10 )
)

&&

|
) |
|
|

algoritmul aliturat, citegte n

descris in pseudocod.
S-a nolat cu xoloy restul impe4irii numarului
inlreg x la numerul intreg nenul y.

citegte
k0

valoarea

(x<10) )

t,
)

b,

t.

t,

4.

limbajul Pascal

CIC*+ are

a. v%rt
b. !4'*==0
c, x%y
d. x%Y==g

algoritmul aleturat, descris in

lib

cu

[x]

citegte n

r0

(numdr natural)

lrePeti

I r (r*10+n%10 ) *10
n tn/1001
ILpan5.
cand n<10
Scriefi valoarea care se va afiga pentru
"=ta?i. scri r
Rl6puns corect: 1o2o

Scrieli o valoare de 5 cifre distincte care poate fi citite pentru variabila n astfel
(4pJ
lncat numarul afigat sA fie 7 o8o.

Ecri k

Riispuns: un Sir de ? valori

Rlspuns corect: de exemplu 12837 (orice numdr de forma: abSc'1 \

unitefilor, iar a gaptea se termine cu o


15, 25,
afte cifre, de exemplu:

Scrieti programul Pascal I CIC++ corespunzetor algoritmului dat.

35,45,55,
Scrieli

in

5,

11.
pseudocod

un

algoritm
in
care sa
dat,
cu
algoritmul
echivalent
inlocuiasce structura repetitive
pentru. . . executi cu o structura
(5p)
repetitive cu test final.
Rispuns: structura . Dentru
(zona hagurate) se
inlocuiegte dupa cum se observe
alSturat:

se

Scrieli in pseudocod un algoritm eohivalent cu


cel dat, in care se se inlocuiagcd struclura

i<2

ropetd...pana cand cu un alt tip

rdaci iSn executi


I lrepeti
l l citeFte b

I I d""a

a*10=bt10 atunci

Ic/c+*

corespunzetor algoritmului dat.

(1opJ

Rezolvare.
aldturat:

solulie poate

de

(6pJ

structure repetitive.

execute

Scrieli programul pagc&t

(4pJ

(C/C++l

mod x <>0
mod x=0
mod y<>0
mod y=0

partea intreage a numerului real x $i


restul impe4irii numarului intreg a la numdrul
n6nul b.

in care
primele gase au aceea$i cifrd a

d,

in

| are o valoare nenuld:

Rdspuns corect: b

notat

Scrieli care este valoarea afigata dace


se citesc, Tn aceaste ordine, valorile: 5,
(6p.)
L2,22, L232, 3, 553.
Pentru n=7, scrieti un set de valori ce
trebuie citite in continuare, astfel incat
(4P')
valoarea afi$ate sd fie

y
y
x
x

(numdr natural
(numdr natural)

Rispuns corcct 2

b,

tru

(Pascall

(x>=10 )

(x>10)
11 1x>=5) ) && ( ! (x>10)
(x>=s) ll (x<10)
(x<5

(not (:r>=5) ) andl (not.(:<>10)


(x>=5) or (x<10)
Respuns corect a

2. Se considere

a.

x 9i y memoreaza cate un numdr natural nenul. Cel mai mic


multiplu comun al valorilor lor este egal cu 'numdrul memorat in y dace gi

Care dintre urmetoarele expresii pascel lc/c++, este echivalentd cu

fi

algoritmul

citegte n

(1op)

(numdr natural)

rn%10*10

n [n/100I
rcat titop n>10 executi

| ! (r*10+n%10 ) *10
Il.| n tn/100J
scrie r

A 058

VARIANTA 057
1.

a.
b,
c,
d.

gtlind ce variabila intreage n memoreazd un numer natural cu cel pulin 3 cifre'


care dintre urmetoarele expresii Pascal I C/C++ are ca valoare numirul
(4p')
obtinut prin eliminarea ultimelor 2 cllre ale lui

Variabilele intregi x gi y memoreaze numore naturale nenule. Care


urmdtoarele expresii Pascal I C/C++ are valoarea tru | este nenulii dace
numai dace numarul oblinut prin insumarea valorilor variabilelor x 9i v are
(4p,)
cifrd 0?
(Pascat

a,
b.
c.
d.

x mod 10+y moal 10=0


y noct 10=x noal 10
x+y mofl 10=0
(x rnoal 10+y noal 10) nodl 10=0

n?

l,
t,
I,

(CiC++)

:fa10+r&10==0
1r210==x%10

i,

x+1&10==0
(x%10+Y%10 ) %10==0

b.

d.

(numer natural)

scrie q

Scrie,ti programul Pascal I CIC++

Scrieli in pseudocod un algoritm echivalent

repetitiva.

intreg nenul b.

Rezolvare,.O solutie poate

fi

n=53,

(6p)

rcat tfulp n>0 execute


I 1daci nts=0
ll atunci qq*10

altfel

lr
I n Inl51

qq*10+1

ll

scrie

s6 fie t

A05 elc.

oo1.

(4p.)

Respuns corect: 100

!,

corespunzetoralgoritmuluidat. (10p.)
citelte tr (numdr natural)
Scrieli in pseudocod un algoritm echivalent
s1
inlocuiasce
se
in
care
sd
dat,
cu cel
n>0 atunci
Tdaci
cu
o
timp...execute
cat
structura
I
lrepeti
(6p.)
structure repetitivd de alt tip.
| | pace n85=O atunci q<q*10
Scrieli programul Pascal lClC++

lll

(6pJ

algoritmul

(num5r natural)

s1

Scrieli o valoare care poate fi cititd pentru variabila n astfel incat num6rul afigat

Rezolvare. O solulie poate


aleturat:

eitegte n

ll

Rigpuns corect: 1101

corespunzatoralgoritmuluidat. (1opJ

cu cel dat, in care sd se inlocuiasce


slructura cat tirq).. ! executa cu un
alt iip de structure

d.

Scrie.ti valoarea care se va afiga pentru

(4P)

?0, 77, 9f, 9a, 777,

n/100
nl LO%L0

c.
10

cu lxl partea intreage a numdrului real x


0u ar[b restul impa4irii numarului intreg a la

Scrieli o valoare care poate fi citite pentru variabila n astfel incat num5rul afi$at

e.

^%lO
n%10

b.

notat

ll qeq+i

Rispuns corect:

rcat titlp i< [n/i] execute


I rdace n*i=o atunci

llr
liei+3
l1t

Respuns corect: de exemplu, 63 sau


c,

citegte
ce1
i1

Scrieli valoarea care se va afiga pentru


(6p.)
n=20.

sd fie

10

Ec consideri algoritmul aliturat, descris in

S-a notat cu aub restul impd4irii numdrului


intreg a la numerul intreg nenul b gi cu lxl
partea inlreage a numerului real x.

a.

n nod 10 div
n mod 10
n div 100
n div 10 trod

a.

Rlspuns corect: c.

RAspuns corect: d.

2. Se consideri algoritmul aliturat, descris


in pseudocod:

(C|C++)
/ t0

(Pascall

alSturat:

fi

algoritmul

lllr

altfel

qq*10+1

n [n,/5I
| |Lcit
tinP n>0
I
\|
scri6 q

VARIANTA 069

A 060

Flecare dintre variabilelo intrggi x,y gi r memoreazd cets un numar natural


cel mult 4 cifre. $tiind cd x<y, care dintre urmtrtoarele expresii Pascal I
are valoarea
| 1 dace gi numai dace numerul memorat de va
apa4ine intervalului inchis Ix, yl ?

1.

true

a.
b,
c.
d.

(Pascalt

(C/C++)

(t<x)

andl (t>y)
(t>=x) andl (t<=y)
(t>=x) or ( t<=y)

(c<.x) or (t>-y)
(t>x) or (t<y)

b.

c.
d.

citette n

S-a notat cu

Trepeti
lnn+n?10
I n tnl101
Lpani cand n<10

Se considere algoritmul aleturat, descris in


pseudocod:

txl

partea intreage a numerului real

9i cu a*b restul impe4irii numerului intreg

x
la

Rllpuns corect:

a,

b.

b.

c.
d.

(t<=x) ll ttr=r)

(t>x) ll

1g<Y)

(t<=x) && (t>qy)


(t>x) && (t<y)

a.

conBlderi algoritmul aliturat, descris in

(numer

citegt n

(numer natural)

c10
cu txl partea intreagd a numerului real x
ou rtb restul impd4irii numdrului intreg a la
notat

lntreg nenul b.

gcrie n

numarul intreg nenul b.

a,

(t<rx) and (t>sy)


(t>*) and (t<y)

RAspuns corect: b.

2.

rru

t<x) && ( t>y)


( t>=x)
&& ( t<=y)
( t>=x)
il ( t<=y)
(t<x) il ( t>y)

a.

(t<x) or (t>y)

Flocare dlntre variabilele intrsgi x,y 9i t memoreaza cate un numer natural de


col mult 4 cifre. $tiind cd x<y, care dintre urmdtoarele expresii Pascal I C/C++
nro valoarea
| I dace 9i numai daci numdrul memorat de variabila
(4pJ
nu apa4ine intervalului deschis (lr,y).?
(CiC++l
(Pascal)

;clt tinp n*2=1 executa


I cn410; n Inl101
\t

gcrie

c
(6pJ

scrleli valoarea care se va afiga pentru r=3275L.

Scrieli valoarea care se va afiga pentru n=7526


Respuns corect:

Scrieli o valoare care poate fi citite pentru variabila n astfel incat numdrul

RIBpuns corect: ? (prima cifre imparl a numdrului n parcurgand cilrele de la


rtAnga la dreapta, toate cilrele situate la dreapta acesteia fiind impare)

sd fie 6.

Scrieli o valoare care poate fi

Rispuns coroct: de exemplu, 55261sau 54, 58000 etc.

rdfies.

cititi pentru variabila n astfel

Tncat numerul afigat

(4pJ

Rlspuns coroct: 10245


c.

Scrieli programul Pascal I C/C++

d.

Scrieti in pseudocod un algoritm echivalent cu


cel dat, in care se se inlocuiasca structura
lepetl . . . peni cand cu un alt tip de
(6pJ
structure

repetitive.
Rezolvare. O solutie poate fi

aliturat:

algoritmului dat.

algoritmul

citogte n (numar natural)


;c6t tinlp n>10 executl
Il.| n I (n+nt10) /101
scrie n

Scrieli programul Pascal I C/C++ corespunzetor algoritmului dat.


Scrieli in pseudocod un algoritm echivalent cu
col dat, in care se se Tnlocuiasca structura cat
tlmp. . . executd cu o structure iepetitive de
alt

tip.

Rezolvare.
6lAturat:

(6pJ

solulie poate

ii

algoritmul

citFte n
c10

(1opJ

(numer natural)

rdaci ng2=1 atunci


l;rePetd
cn8l0r n In/10I
llLpEnE
clnd nt2=0
I
lt
scrie c

VARIANTA 061

1.

AFIANTA 062

Variabilele intregi x gi y memoreaze doud numers naturale cu cel mull 4


fiecare. Care dintre expresiile de mai jos are valdarea rruo I 1, dacd gi

Toate variabilele din secventa de instrucliuni Pascallc/c++ aleturatd sunt


intregi. Care dintre urmetoarele afirmalii, referitoare la secvenla de instrucliuni

l,

dacl valoarea memorati de x apa4ine intervalului t10,1001 gi


memorate de y apa4ine intervalului ts, 301?
a, (Pascal) (x<=100) anit (x>10) anal (y>=5) or (y<30)
(C/C++) (zc<4AO && :D10) && (y>=5 | | y<30)
b. (Pascal) (x<=100) antl (x>=10) anat (y<5) or (y<=30)
(C/C++) (X<=LOO && x>=10) && (y<5 && y<=30)
c. (Pascal) (x<=100) and (x>=10) or (y>=5) antl (y<=30)
(C/C++) (x<=r00 && x>=10) ll tvt=s && y<=30)
d. (Pascah not{(x>100) or (x<10) or (y<5) or (y>30) )
(C/C++) t ((x>100 llx<10) ll tv.s 1l*30))

lasJat lclc++

2. Se consideri algoritrnul aliturat, descris

citegte a,b

(Pascat|

a. Secvenla

a.
b.

Scrieli ce valoare se va afiga daci se


citesc numerele a=82319i b=30?{" (6p)
Rispuns corect 1303

rdaci x<y atunci


lnn*10+x

laltf1

Inn*10+y

Scrieli cate perechi de numere formate din


dte o singure cifd pot fi citite pentru a Si b
(!>b) , astfelincat, de fiecare date, valoarea
(4pJ
afigatiisd fie

I
Il.|

Rispuns: ae (Cr2)

6cri rt

nenuE?

Scrie$ programul pacaL

lc/c++ corespun- citegte a.b


(1op) D0
dit.
Scrieli ?n pseudocod un algoritm rdaci a+b atu:rci
5 executi
echivalent cu cel dat in care structura cat
xa%10
tiq). . . executi se fie inlocuita cu o
yb%L0
structur5 repetitivi cu test final. (4p.)
rdac5 x<y atunci

lna*10+x
eJ.tf,eL

lnn*10+y
l.I

tt
Itl
ll

scrie

a [a/101
b tb/101

cat tiry)
tl

o instrucliune

b'

a+b

Secven,ta con,tine o instrucliune


de o instrucliune

alternative.

repetitive.

c. Secvenla conline o instrucliune

d.

Secvenla contin o instructiune

alternativd, urmatd de o instrucliune alternativ5 incluse intr-o instructiune


repetitive, urmate de o instrucliune repetitivS.
de afigare.

Rispuns coiect b.

l,

8o considere algoritmul aliturat, descris

pseudocod. S-a notat cu x%v restul


lrnpd(irii numerului natural x la numdrul
}ltural nenul y gi cu tzl, partea intreage a

ln

r.

Rezolvare cerinla d.

con,tine

lllrmdrului real z.

l.t
a ta/101
be rbl1or

zetor algoritmului
d.

do

repetitive inclusd intr-o instrucliune alternativa urmatd

(numere

xa%10
yb%10

printf ("kf.", i) ; I cout<<ii

ondt

for i:=a to b
write(i);

(4pJ

lCiC++)
(a>b)
{aur=at a=bt b=au*t }
for ( i=ar i<=b, i++)

if

begin
arxK!ai a:=bi b:=au,.

pseudocod, S-a notat cu :.%y restul care au acelagi numdr de cifre )


impe4irii numdrului natural x la numdrul n0
natural nenul y gi cu tzl partea intreage a rcat tiq) arAb execute
numirului real z.

adev5rata?

lf a>b then

Rispuns corect d,

in

alSturata, este

b,

Scrieli valorile care se afigeazd dacd se


(6PJ
cite$te numerul x=1528.
RAspuns corect:
aL62 2AL6 62AL L62A
Scrieli o valoare cu minimum 3 cifre ce
poate ii citite pentru x, astfel lncat toate
numerele afigate sd Jie egale intre ele. (4p)

Rispuns: 2222 (ori@ num6r natural


minim 3 cilre, cu toate cilrele identice)

cu

citegte x
(numar natural)

auxx

rex

;cAt timp aux>9 execute


lauxaux/x0

Iter*10
l1t
auxx

rrepeti
I cx%10

lxtx/10J
lxc*t+x
I scrie x

LpAni c6nd x=aux

Scrieli programul pascal Ic./c++ corespunzdtor algoritmului dat.

(1opJ

d.

Scrloll

ln

paeudocod

un

algorltm

ochivalsnt cu cel dal ln car structura cAt


ti.mp. . . .x.cutl Be fie inlocuita cu o

structuri repetitivd cu test final. (5p)

Rarolvara

6Lt.lt.

c.rlnlr: d.'
x

( numlr
aunx

A 083

nrtu l)

de'
Conslderdm variabilele intregi I gi J. Care dintre urmetoarele secvenle
de
succesiunii
a
lnrtructlunl dotermind afigarea pe ecran, in urma executerii,
(4PJ
ollrs 55?

t1

rdacl !ux>g rtuncl

l.

llrts*10
rpanf

Ilt

(c/c++)

(Pascal)

l;repet{
llauxaux/10

lrr5, I r.5,
whllc
brgln

cind aux<.9

J>4

a.

and,

;repetl

b.

I cx!10
I x lxl10l
lxc*!+x
I rcric x
\>lnl cSnd x=aux

t.5, J !r5,
wlrlX. J>l do
I

b.

J--tl
t.sr J-5r

whtle(J>tl )
grlntf, (',*d"r

wrltc (J ) r
J rrJ-1;
o. J

J=6t

prtntf ("*d",l), I cout<<lt

ltrlt.(l)1 J:'J-1

auxx

t=5,

lrhtle ( j >4) t

dto

J)

J--r
c. J'5r
lor ( lr5, l<15,

t15,

lor lr.5 to 5 dlo

wrlt,. ( l) ,
d.Jr.51

l++

cort<<J;

, Dllnlt("td",l)r I cort<<lr

lor lr.1 to 1 do

d.

wrlcr(J)r

J'5r
tor ( l.1l l<2 r l++ )
grlntf ("tdl, J ), I cout<<J,

Rllpun3 coFcti a,

conslderl algorltmul allturat' dorcrls clt.tta nrd


(numare naturale
ln prcudocod. S'a notat cu :ltv rastul
b+0
lmpl(lrli numerului- natural !l la numirul
nrtural nsnul y 9i cu lt!, partea lntreaga a v0

l,

!r

nenule)

num6rului real z.

t,

Scrieli ce se afigeaza dace nr3' d1r2' iar


valorile citile pentru * sunt, in ordine: 4'0,
(6p')
19, 55.

Rispuns corect: 40

b.

Pentru n=3 9i a1=2, scrieli 3 valori distincte


care pot fi cilite in ordine pentru x, astfel
(4pJ
incat valorile afigate se fie o
distincte.
Respuns: Orice 3 valori impare

0.

rdaca a>b atunci

I ba
| | vaux

lrl
qt

c,

Scrieli programul pascal

scrie v,' ',b

ic/cr+

corespunzator algoritmului dat'

(1opJ

d.

Scrlefl

ln

pseudocod

un

algorltm

echivalont cu csl dat in car6 structura cat


tinp. . ..xscutt se fie inlocuita cu o
structure repetitivd cu test final. (6p.)

a 064

Rozolveru carlnF d.

cit6tt.

n,d

(numro naturalg nenule)

be0
v0

ie1, n executa
citegte x (nr. natural

l,

(Pascaq

rDent,ru

a0
auxx

rdaci xgd=O atunci


| 1 executi

I I aa+1
I I x lxltlJ
Il.I tr ctt tirp
rdaci

a>b

lllea
| | vaux
llr
\l

x%d=0

a memoreaza un numdr natural format din exact trei cifre,


toet6 cifrele fiind nenule gi distincte. Care dintre urmqtoarele instruc,tiuni
(4p)
prscal lc/c++
a?
c/c++ atribuie variabilei e suma cilrelol lui a?

Variabila intreag6

(cic**\

f, .r.r mod 10 tliv 10 +


| a. e=a96LO ILO+a1100%10+a%10
r dlv 100 tnoal 10 + a nofi 10 |
l, rr.a dllv 10 + a ativ 100 + | b. e=a/10+a/ 100+a/ 1000;

r dlv 1000
!, .r.a*10 ttiv 1000 +

I dLv 10 trod 10 + a nod 10


d. .t.a*Lo iliv 1000-+
r nod 100 nod 10 + a nod 10

| c. e=a*10/ 1000+a/ 10%10+a%10,


I

I d. e=a* 1ol1ooo+at100*10+a%10,

Rlspuns corect c.

atunci

t,8e consideri algoritmul


ln p.oudocod.

Scrieli

ce se

aleturat, descris

afigeaze pentru n=4


(6p)

scri v,' ',b


Rispuns corcct:

234456557810

b,

Scrieli o valoare care poate fi cititS pentru


variabila n astfel incat, in urma executdrii
algoritmului, valoarea 20 sd fie afigata de
(4p.)
exact 5 ori.
Respuns: 15

citegte n

(numdr natural nenul)

ke0

rpentriu i1, n executi

pentru j1,i executl


ll scrie i+j
I

ll

kL+1

lr.r
tt
acri k
Rezolvare cerints d
(numdr natural nenul)

citeste tl

k0

i1

rcat tinE) i<=n executi


Scrieli programul Pascal" lc/c+i I i1
corespunzetoralgoritmuluidat. (1opJ
I ;cat titlp j <=i executi
I I scri i+j
Scrieli un algoritm pseudocod echivalent I I
kk+1
cu cel dat in care fiecare structure de tip
jj+1
pentru. . . execute se fie inlocuite cu ll
lll
cate o slructura repetitive de tip cat I ii+1
(6p.)
lt
timp. , executi,
.

scrie k

VARIANTA

VARIANTA 086

1.
,

Varlabilele a,

b gi z sunt

reale, iar asb. Care dinhe expresllle urm6toare aru

valoarsa tru6l1 dace gi numai dace valoarea

variabilei
intervalului inchis determinat de valorile variabilelor e gi b ?
(Pa$catl
(C/C++\

a. (z>a) or (z>b)
b. (z<a) or ( z>b)
c, (z<a) and ( z>b)
d. (z>=a) antt ( z<=b )

a.

nu

1,

(4p)

1z>alltz>u)

numarului real z.

a,

Scrieli ce valoare se va afiga dace se


citegte numerul n=132?.
(6p)
Respuns corect
1,327723L

b.

Scrieli doua valori diferite, cu exact 4 cifre


fiecare, ce pot fi citite pentru variabila n

astfel incat, in urma

executerii
algoritmului, valoarea afigate pentru m sd
fie 3.
(4p.)

Rispuns:

1111

2222

paacal lc/c++
corespunzetoralgoritmuluidat. (10p)
Scrieli in pseudocod un algoritm
echivalent cu cel dat in care structura
reperi... pani cand sd fie inlocuite
Scrieli programul

d.

cu o structurd repetitive cu test inilial.(6p.)

Trepeti

cn%10

vv*10+c
;daci c=u atunci

Il.I

nn+t

n tn/1oJ
Il.I pAnd

cind
scrie v,n

n=0

Rezolvare cerinla d

citette n (numir natural nenul)


m0 vn
un%10

rcat litEl) n*0 executi


cn%10

vv*10+c
rdaci, c=u atunci

mn+1

l-I

n [n/101
l.|
gcrie v, rn

sunt lntlegi, :i memoreazd valoarea ?, y memoreaze


memoreaze valoarea 5. Care este rezultatul eyaluerii

pascal lc,/ c++,urmatoare?


z di.f v
Q/C++) x+y+x'z
I

c. 29

b. 2S

d.

ly

$P'l

27

b.

l,

Se

t.

S-a notat cu a%b restul impa4irii numdrului


intreg a la numerul intreg nenul b
Scrieti ce se afigeaza in urma execulerii

pseudocod. S-a notat cu ,I%y restul (numer natural nenul, n<10000)


impe4irii numerului natural x la numdrul m0 vn
un%10
natural nenul y gi cu [zl, partea intreage a

v,

valoarea 2Or iar

ilrpuns:

in

,t,

exprosiei aritmetice
(Pascall x+y+a*

Rispuns corect b.
2. Se consideri algoritmul aliturat, descris

Varlabilslo

r. 28.?s

b, ( z<a) | | (z>b)
c. z<a && z>b
d, z>=a && z<=b

citegte

O8O

considera algoritmul aleturat,

descris in pseudocod,

algoritmului dacd se citesc, in aceastd


ordine, valorile L0, L3, 46,7 o, 35, 0. (6p.)

ilrpuns: MI

b.

Scriefi un gir de valori'care pot fi citite pentru


variabila x astfel incat programul se afigeze'
(4p')
in urma executerii, mesajul
ilapuns: Orice gir de nuniere naturale nenule
urmat de o valoare O care este format din tot
rtdtea valori divizibile cu 5 cdte valori nedivizibile
ou 5 sunt in gir. De exemplu: 38, 51, 305, 10,

DA.

a, 625, 0.

Scrieli programul Pascal

d.

clcr+

corespunzdtor algoritmului

dat

(10p')

'.:::t::.: SIiTlt:l?

scrieliin pseudocod un alsoritm echiva"t1 I


rlrruuurdJr/a I i .--care 5a
se se inlocuiasca
CU
Cel OaI
ln Uale
cu cel
dat in
-...--r n+n+1
I l.aact x%5
-z--i.e atulrci
structura repet5...pAni c6nd .y 9l ii"iti"r ne"-r
structurd repetitivd cu test inilial. (6pJ I i ||
Rozolvare: O solulie posibild inlocuiegte I iciteste x (numer natural)

rscvenla marcatd prin secvenla

aleturata: I tr

VARIANTA 067
1.

A 008

Variabilele intregi x, y, z gi
sunt introgi, x memoreaze valoarea 2
memoreaze valoarea 3, z memofeaze valoarea 5, iar w memoreaze
a

7.

Care dintre urmetoarele expresii are valoarea


(

a.
b.
c.
d,

Pascat)

(y>zl or (x>3 )
(x=z) Btrd ( (y=3) or (w=?))
(z<=w) and (x>0) or (y>=z)
(y>=3) anal

(w<7 )

(y>z)

truell?

Varlabilel x,

gi z memoreaze valori reale, iar x<v. Care dintre expresiile de

(Pascal)

tC/C++\
(x>3 )

{CiC++}

(z>=x) && (2<=y)


(z<=x) && (z<=y)
(y<x) ll (z<-x)

(z>-x) aad ( z<=y)


(z<ox) and { z<=y)
(y<x) or ( z<=x)
( z<:r) or (z>y)

ll

(x==z) && ( (v==3) I I tw==z 1 I


(z<=rr) && (x>0) ll (v>=t )
(y>=3) && (w<7 )

(z<x)

Respuns: c.

2. Se

considera algoritmul aleturat, cite9te n


descris in limbai pseudojod.
z?o

3e

(numdr natural)

a.

considere algoritmul alaturat'

descris in limbai pseudocod.


S-a notat cu xBy restul impe4irii numerului
natural x la numerul natural nenul v'
Scrieti valoarea afigate in urma executarii
algoritmulul daca se citesc, in ordine,
valorile:5,14,5,15,15,90. (6pJ

S-a notat cu n%y restul impe4irii numerului


natural x la numerul natural nenul y gi cu

tzl

partea intreagi a numdrului real z.

Scrieli vaioarea afigate dac5 pentru n se


citegte valoarea 52381.
(6p.)
Rispuns: 2 54
b. Scrieti o valoare de 3 cifre care poate fi
citite pentru variabila n astfel incat sd se

iot

afigeze 0.

Rdspuns: Orlce numar format din trei cifre, prlma cifri apa4inand
{5 ,6 ,7 ,8,9L iar celelalte doue apa4inand mullimii { O, s, 6,7, 8,9 }, este

c.
d.

cat

lrr
Lp3nd

cAnd n=0

z>v)

citeste x

(numdr natural)

nr0
fpntru i1,x e*cuta
I citeste n (numdr intreg)
| {aci ntx=o atunci

| | nrnr+l
lll
\l

gcrie nr

oxemplu: 6, 1L, 23, 5, L2, 4, 9.

Scrieli programul pascat

lc/c+i

cores'

(1opJ
punzdtor algoritmului dat.
Scrieti in pseudocod un algoritm echivalent
cu cel dat in care se se inlocuiasca
executi cu o
structura perLru

(10p.)

ll

este 7, scrieli un gir de numere distincte care


(4p)
fi citite in continuare astfel incat valoarea afigatd se fie
: Orice gir de 7 numere nedivizibile cu ? este un raspuns corect'

$tiind ce valoarea citite pentru

respuns corect. De exemplu: ozb .


Scrieli programul pascaL lc/c{* corespunzetor algoritmului dat.
Scriefi Tn pseudocod un algoritm echivalent rrepeti
cu cel dat in care se se inlocuiasce
cn%10
structura
timp...executE cu o
ne tnl101
structurd repetitive cu test final.
(6p.)
fdaci c<5 atunci
Rezolvarel Se inlocuiegte in algoritmul initial || z(zl L0+2* e
secventa marcata cu secventa alaturata.

este situatd in
(4p')
x
lntorvalul inchis determinat de valorile memorate Tn variabilele 9i v ?
mai ios are valoarea tru 11 dace valoarea variabilei

cit9te x (num6r natural nenul)


arO; i1
rcat tinP i<=5 drecutd
citeFte n (numer intreg)

fdace ntx=0 atunci


...
IlanrGnr+1
structure repetitivd cat titrD
(6P)
executE.
I ii+1
ilrolvare: Se inilializeaz5 i cu 0 9i se incremen- Ll
hnzd la fiecare iteratie, testandu-se condilia

ltu

i<5 gcrie ar

se inilializeaze cu 1, ca in exemplul alaturat.

A 070

VARIANTA 069

in secvenla de instrucliuni PascaL lcl c++ aleturate, variabilele x 9i Y


Tntregi. Ce valoare va reline variabila x dupe execularea acesteia?

1.

lC/C++l
x=20 i y=5i

(Paecatl

yr=5,

,..=2o i
x: =x+y;
y. =2:2+y
x: =y+Xi

x=x+yi
y=r.-2*y i
x=y+xi

i
b.

a. -10

c.

25

15

t'

jos, are valoarea true I


Care dintro expresiile Pasc&t lc,/c+r de mai
par gi strict pozitiv? (4pJ
Jaca uatoarea variabilei intregi x este un numer intreg

not((x

d.

40

pseudocod.

'S-a notat cu x%v restul impetirii


natural

x la num5rul

natural nenul

numarului

9i cu

lzl

partea intreag5 a numdrului real z.

a,

"Scrieli valoarea afigate dace pentru tr se


se
citegte valoarea 4599 9i pentru
citegte valoarea

723.

(6P)

Respuns corect: 4789


b.

c.
d.

Scrieli toate perechile de valori care pot li


citite pentru x gi y ast{el incat valoarea
(4p)
afigate se fie 2 oo.
Rispuns corect Pentru oricare dintre ele
se poate citi una dintre valorile 200 sau
100

citegte x,y
(x,y numere naturale nenule)

r0
ut
'lrePeti
I rdaci xt10 >
| | atunci
ll z x810
| | altfel
ll z :/410

Y*10

uur 10
lx txl101
y tvl 101
I
LpAni cAnd x=0 Si 1=0
I

scrie !

lc/c++ corespunzetor algoritmului dat'


Scrieli in pseudocod un algoritm citegte x,y
echivalent cu cel dat in care si se (x,y numere naturale nenule)
inlocuiasca structura rePeta. . .Pane t0r u1
cand. cu o structurd repetitive cu test rcgt timP x*0 sau 910
(6P.)
I dace xt10 > y*10
inilial.
I latunci z ? x%LO
Rispuns corect: este prezentat aldturi
llaltfel z ? Y+"Lo
un algoritm in pseudocod echivalent cu

lrl

cel dat.

Nu este cazul se se execute

odate

instructiunile din cadrul structurii


lepte...pana cand inaintea structurii
cat tinp deoarece se precizeazd in
enunt ce x,y sunt numere naturale
nenule.

Itt+z*u
luu*10
lx txl101
ly rvlro t

tf

scri,e t

a.
b.
c.
d.

or (x<=0))

(x+1)modl 2=0 ) anal (x>=2 )


Rlspuni corectr a.

lo

in pseudocod.
notat cu aeb operalia

! ((x%2!=0)

ll(x<=0))

(x*.2!=0) ll(x<0)
t((x%2==0) ll(x>0))
( (x+L)%2==0) && (x>=2)

citegte x,i/

consideri algoritmul aliturat'

(numere naturale nenule)

rdacA x<Y atunci

de

Itt *ev

intera
a valorilor variabilelor
9i b.

lr
Itt+zfu

Scrieli programul PaEcal

mod 2<>0)

(x mod 2<>0) ob (x<0)


noE( (x modt 2=0) or (x>0))

Rispuns corect: d.
2. Se considere algoritmul aliturat, descris in

(CiC++)

(Pascat)

n0

Scrieli ce valori se vor afiga daca


pentru x se citegte valoarea 19,
se citegte valoarea
lar pentru
(6p.)
4'l
43
Rl6puns corect:

rcat linP
I xx-y

x>=Y executl

Il1lnn+1

gcrie

tl, :t

cifra'
Scrieti toate perechile de valori, fiecare valoare fiind un numdr de o
afigate
valorile
incat
astfel
p"ntru variabilele x 9i respectiv v,
."i" ii"t ti
(4pJ
"itit" algoritmului sa fie 2 1, in aceaste
in urma e*ecutaiii

ordine

imp54irii prin
ie"p""" corct Aigoritmul este echivalent cu algoritmul
trebuie se
numere
doue
ecaderi repetate. Deci pentru a afi$a 2 l intre cele
sunt:
enun!
oxiste relalia: x = 2*v+1. Perechile ce satisfac cerinla din
(3, 1); (5, 2); (?, 3); (9, 1t).
Scrieli programul

rascal lc/i++

corespunzator algoritmului dat.

(1

0p.)

se inlocuiascd
Scrieli in pseudocod un algoritm echivalent cu cel dat in care sa
final (6p')
test
cu
repetitve
cu o structure
.

;;;;i;:tt
Avdnd

in

ii.p. ."i""ote
cd in enun.tul citeste

vedere

> Y' nu
problemei este Precizat cd
se mai este cazul se verificdm, inainte
de a intra in structura rePete
c6nd, daci x>=y.

Pana

x,Y

(numere naturale nenule)

rdace x<y atunci

'I *<tv
\t
no

rdacdxl=Yatunci
| ;rePeti

I
I

lxx-y
Inn+1
Itt Lpana cind x ( y
scrie n, x

VARIANTA 071

iIANTA 072

x retine un numdr nalural cu cel pulin douA cifre. Care


urmetoarele expresii are valoarea egala cu cifra zecilor numarului r
memorat in variabila x?

1.

Variabila intreagd

tczc.*1
Ilz<%f0
t
t*
l"

(pascaf)

a.
b,
6.
d.

x nod 10 div 10
x-xdlivL0 *.Lo
x d.iv L0 rnoti 10
x - x aliv 10 nott

,,

l.x/x0%
l* - (* z

10

Raspuns corect: c.

2. Se consideri algoritmul alaturat, descris


in pseudocod.
S-a notat cu talbl catul impe4irii intregi a
numarului natural a la numirul natural nenul b.

a.

care dintre urmetoarele expresii pascatlc/c++ are valoarea

t,

numdrul natural memoral de variabila n este divizibil cu

(n mod 4
(n allv 4
(n mod 4
(n div 4

b,

10) *

0,

10

d,

10

LO'

L0,

t.

io

0) ll (n%3 == 0)
t= 0) && a%3

b. @/4 == 0) && ! (ne"3)


d. (t:^/A == O) && (n/3 =-

(n%4 ==

RAspuns corect: a.

l,

8e consideri aldoritmul aleturat, descris

ln preudocod.

l.

Scrieti ce se va afiga dace pentru

citeste valoarea

(6p.)

se

Rispuns corect:

D,aci n = 4, scrieli un gir de valori care pot fi citite pentru


afi9eze 12 34.

Rispuns corect: Oricare patru

ce indeplinesc condiiiile:

c. Scrieti programul pasca] ic,r'c+r. corespunzator algoritmului dat.


(10p.)
i1,n
executd
Tpentru
- d. Scrieli in pseudocod un algoritm
citegte x (numer natural)
echivalent cu cel dat care se utilizeze
. in locul structurii
dac5 x>9
r
car timp ...
I
I repeti
execute o structure repetitiva
condi!ionate posterior.

(4p)

Rezolvare: Avand in vedere ce


structura repetitive repeti
pAni c6nd se execute cel pulin
odata, trebuie sa verificam .daca

primul numer citit este mai mare decat


9. Este prezentate al5turi o posibild
solulie pentru echivalarea secventei
de instructiuni hagurate:

ql

llxlx/1ol
I LpAn5 cAnd x<=9
ll
TPentru je1, i-l executj.
I x x*10
\t
sg+x

n
(numir natural nenul)

Tpentru L?L,2*n-L
executa
I

lbo n-i < O atunci


I ra."aji-n

I iej-1

(6pJ
numere, naturale

citeFte

rcat ttunp j>0 execute


I scrie ,,*"

x astfel incat s;

primul numdr se aibd cifra cea mai semnificativ5 egale cu


4, al doilea se aiba
cifra cea mai semnificafiva egald cu l, al treilea cu z, iar al patrulea cu 1.
Un
posibil raspuns este: 456, 3457, 2ggo, 12

0)

I
lattfe].
Il-l j n-i

**
b.

dacd

(4p.)

= 0) or (n tnotl 3=0)
= 0) anal not (n mod 3<>0)
<> 0) and (n mod 3<>0)
= 0) and (n ttiv 3 = O)

\O/C++\

O. (n%4

Scrieti valoarea ce se va afiga dac5 se


citesc pentru n valoarea 5 gi pentru x, in
aceaste ordine, valorile: 523, 4256,32A,
4, 859 35.
(6pJ
Rispuns corect: 94345

truell

(Prl"sca0

t.
1.0

12?

Se

inlocuiegte prima

daca...atunci cu

structurd

atribuirea

Modificati condilia logice

din

je4.

cadrul
structurii
titrll>...execute astfel
incat, pentru n=4, algoritmul se afigeze:

cat

Respuns corect
Scrieli programul

j >i

b1

\l
rdacEb+0aturci
I salt la rand nou

I I

It.r
ll

(sfar$ii de rand)

(lpJ

pascal lclc+* corespunzetor algoritmului dat. (10 p)


pseudocod
Scrieli in
un algoritm echivalent cu cel dat in care se se
inlocuiasca prima structure daci. . . atunci cu o operalie de atribuire. (6p,)
Respuns corect: Structura
se va inlocui cu atribuirea:

rdacen-i<0abunci

I ji-n
I altfel
I j ett-i
lf

jli-nl

unde prin

lxl

se inlelege valoarea

absolute a numarului x.

VARIANTA 073

1.

A 074

Varlabilole numerice a, b gi aux sunt de acelagi tip. Care dintre


secvente interschimbd corect valorile variabilelor a gi b?
(Pascat)

a.
b,
c.
d.

aux:=b; b := ai a != au:xi
aulr := ai b != ai b := ai.rxi
aux s= bi anllr := ai a := bi
b := aux; aux != ai a := b;

Care dintre urmetoarele expresii Pascat

(C/C++)

a. aux=b;b=a;a
= auxi
auR.=
ai
b
a;
b
b,
=
= auxi
aux
b;
anrx
a;
a=b;
C.
=
=
d. b = aux, anur = ai a=b;

Respuns corect: a.
(numere naturale nenule,

<

nr0
pentnr ia,b execute

xi

rcat tinp x+0 ii

I
I

Scrieti ce Se va aflga dacd se citesc


pentru a valoarea 250, pentru b
valoarea 288 gi pentru p valoarea 9.(6p.)

b.

t.
b,
0.

d,

d.

sqrt (x) ==floor ( sqrt (tr) )


sqrt (x) I =floor ( sqrt (x) )
floor ( Eqrt (x) ) r =ceil ( sqlt (x)

x-floor

(x) ==Eqrt (r<)

xtpr&o

execu

x txl1ol

\l
fdaoext0atunci
ll nrnr+l
lr.r
\l
scrie nr

corect: t2

(10p.)
pseudocod un algoritm echivalbnt cu cel dat, in care sa
inlocuiasce slructura cat tjrq)...executd cu o strudure repetitiv5 de un
tip.
(6pJ
cite9te a, b, p
Rezolvare:
Dace slructura cat tjrE). . .execute
(numere naturale nenule, a <b)
se va inlocui cu structura repeta nro
pAni cAnd trebuie se avem in T pentru ia,b'executi
xi
vedere cd aceasta se execute cel pulin
odate, deci verificdm dacd ultima cifra
fdaci x*p+o atunci
a numarul atribuit variabilei x este j lrepeu
divizibil cu numdrul p. Este prezentata
ll x lxl1ol
alaturi o posibild solulie.
lLp6ni cincf x=O Eau x%p=0

l.t

rdacex+0atunci
Ill nrnr+L
I
ECrl.e

co
p0

(numere naturale nenule)

a +b>0executa
x la numdrul natural rcat tfurE)
at10
= b*10 ei a82=0
|
{aci
nrnul y, iar cu t$/yl catul impe4irii
atunci cec*10+b%10
lntrogi a numirului natural n la numarul ll
altfer pp*10+a%10
ll
ntlural nenul y.
lrl
I a lal 101
se
va
afi9a
daca
l, Scrieli ce se
citesc pentru a valoarca 62523L, I b.e .bl101
numdrului natural

iar pentru b valoarea 4?5271.(6P.)

l.I
gcrie c'

Rispuns corect: 22 L356

fi citite pentru a'


(6p)
Rispuns corect Oricare dintre numerele 22400, 22140, 24ooo'
2to40
Dace b=12345 scrieli o valoare de cinci cifre care poate
astfel incat se se afigeze pentru D valoarea 42.

Scrieli programul pascat lc,/c++ corespunzetor algoritmului dat.

ln

algoritmul aliturat, citegte a,b

aarcrlB in pseudocod.

Dace a=l10, iar p=19, scrieli cel mai mare numar care poate li citit pentru
astfel lncet se se afigeze valoarea O.
(4p.)

Scrieli

aaqrt (x) etrurrc ( sqrt (x) )


rqrt (x) <>round(Eqrt (x) )
rouad( sqrt (x) ) sqr (x)
x-trunc ( sqrt (x) ) =sc! (x) )

l, 8e consideri

Rispuns corect: 125


c.

(4pJ

Rlapuns corect: a.

citegle a, b, p

2. Se consideri algdritmul al;turat, descris


in pseudocod,
S-a notat cu x%y restul impS4irii numerului
natural x la numdrul natural nenul y, iar prin
txlyl catul impe4irii intregi a numerului
natural x la numerul natural nenul y.

Respuns

lc/c++ are valoarea truo | 1 daca

variabila x memoreaze un numer natural patrat perfect?


(C/C++)
(Pascal)

dat.

(1opJ

0,

Scrieli programul Pascal

d.

Efectuali un numdr minim de-modificeri asupra algoritmului dat astfel incat


prin executarea algoritmul obllnut se se calculeze in variabila c numirul de
cilre impare, comune Si aflate pe pozilii identice, pe care le au cele doue
(4p.)
valori citite.

lc/c+r

corespunzetor algoritmului

Respuns corect: Pentru ca variabila c se relina numdrul de cifre pare,


comune gi atlate pe pozilii identice, pe care le au cele doue valori citite,
expresia c <- c+10 + b%10 vafi inlocuite cu expresia c +- c+1.

VARIANTA 075
1.

Care dintre urmdtoarele inshucliuni pascallc/cr+ sunt corecte siniacti0


(4pJ
daci x qi y sunt doue variabile de tip intreg?
(Pascal)

a, i-f (x<2 and :r>-5) then


begin x:= x+L; y:= y-l

b.

endt

if-5<x<2then

begin x:= x+1i y:=

y-

end;

c. ifx< 2 and x >-5 then


d. if (x<2) anal (x> -5 ) then
bisin x:= x+1i y:= y - 1
begin x:= x+1; y:= y-1
endi
. endi
(ClC++\
a. if (x < 2) && (x > - 5){ x=x+Li y=y-Xr}
b. if -s <x<2{x=x+liy=y-lt}
c. ifx< 2 && x >-5 { n=x+lr y=y-lr}
d. if (x < 2 && x > -5) {x=x+1t y=y-1t}
Respuns corect: d.

2. Se consideri algoritmul aliturat, ao


descris in pseudocod,
S-a notat cu Ialbl catul impd4irii intregi
a numdrului natural a la numarul natural
nenul b.

k0
prePeti

a,

llr

Scrieti ce se va afiga
citesc,

in

dad

se

aceaste ordine, valorile:

6252L,2s7!,2,56, 6L4. (6p.)


Respuns corect: 52255661,
Rezultatul se obline formand

numerul din primele doua cifre ale


fiecdrui numdr de cel putin 2 cifre

I citegte x (numdr natural)


I p6t tinp x > 99 executE.
llxlx/101

l;dacix>9atunci
llaa+100+x
| | kk+l
Itl
hranicandt=e
gcrie a

citit.
b.

Scrieli un set de date de intrare pentru care algoritmul sA afi$eze valoarea

L234s678.

(OpJ

RAspuns corect Algoritmul va afiSa f2345578 pentru orice set de numere


naturale dintre care exact patru sunt mai mari decat 9 Si indeplinesc condilia:
primul are primele doue cilre L2, al doilea are prime doud cifre 34, altreilea are
prime doue cifre 55 , iar urmetorul are primele doue cifre ?8.
Un posibil raspuns poate fi: i,2 347 5600 8 z89oo

c.

Scrieli programul pascat lc,/c++ corespunzetor algoritmului dat. (10p.)

d.

Scrieti

in

Rdspuns corects Structura a0


r.p.tA ... pAnI ctnd k0
se poate inlocui cu structura cite$te x
repetitive

pseudocod un algoritm echivalent cu cel dat in care structura


cand se fie inlocuitd cu o structure repetitivd de alt tip.

repeti.. .pAni

(+p)

repetitive cond(ionate

anterior.
Este prezentatd aleturi o posibild
solutie.

(numar natural)

rcattinpk<4
I rcat titll) x > 99 executi
llxtx/101

lrr

lpacex>gatunci
llaar100+x
| | kk+1

lr-r

x
lcitegle
L1
scrie a

VARIANTA 076

1.

VAFIANTA 077

Care dlntre urmetoarele expresii Pascal

lc/c++ are vdloaroa rRuall

dace

numai dace valoarea reale memorate de variabila v nu apa4ine intervalului


(x<z)? (4p.)
detgrminat de valotile reale distincte memorate de variabilele x gi
(C/C++l
(PascaD

l,

a.
b.
g.
d,

not( (z<x) or (z>Y) )


(z>*) and ( z<y)
not( (y>n) and (y<z) )
(z<x) and ( z>y)

a.

b.

c.
d.

l((z<x) ll

(z>y)
( z>:!) && ( z<y)
I ( (y>x) && (y<z)
(z<x) && ( z>y)

2, Se considere algoritmul alaturat' reprezentat

in pseudocod.

citeFle a
x2; p1

(numar natural)

t..'

S-a notat cu *ly relalia ,,n divide pe y' sau ,,v


este divizibil cu #' gi cu tzl partea intreage a

Scrieli valoarea care se va

a=2L5.

b.

corect

2, Se consideri algoritmul

t.

35

Scrieli un numer par, de trei cifre, care


poate li citit pentru variabila a astfel incat

c.
d.

scrie

Scrieli valoarea care se va afiga dace


se citesc, in acestd ordine, valorile: 2,

(6pJ

cileste a (irlmSr natural)


k0
;cdt tinP a+0 executi
citegte b (numar natural)
ldacE a < b atunci

Scrieli toate girurile de date de intrare


avand suma elementelor egala cu 4,
care sd determine afigarea valorii 0.

\t

kek+1

Il-lab

gcrie k

Rlspuns corect:

11110
t110
!1.0
l0

1l

Rispuns: Orice num5r par, de trei cifre, care se poate descompune in produs de
prime; de exemplu 285 deoarece 285 = 2*11*13
Scrieli programul Pascal lc/c++ corespunzetor algoritmului

dat.

(10p)

Variabila

Pgntru

k se incrementeaze dacd valoarea lui b este mai mare decat valoarea lui a.
a afiga valoarea o descompunem numerul 4 in secven,te de numere

descrescttoare.

Scrieli in pseudocod un algoritm echivalent


cu cel dat, in care si se inlocuiasce fiecare
structurd cat timp ... execute cu cate o
(4p)
structura repetitive de alt

s,
d.

tiri.

Respuns: structurile cat titrE)


execute (zona hagurate) se inlocuiesc

ScrieJi programul

Scrieli

in

pascallc/c++

pseudocod

un

corespunzetor algoritmului

algoritm

rdace a+0

lrdacei c*0 atunci pD*c

llr
1
illxx+:
LpanA
lL
l.l

cAnd a=L

dat.

atulci

llrepeti
b
se se inlocuiasce structura cat llll c.itette
ra".aa<batunci
timp...execut5 cu o structura
| | | kkr1
repetitivd de alt tip.
(6p)
echivalent cu cel dat, algoritm in care

dupe cum urmeaze:

prima structurd cat tilnp


executa a fost inlocuite cu o structure
pind cand, iar cea
repete
subordonate ei cu o structure executa

aleturat,

(4pJ

(4p.)

... cat tirE)

a,
b.

r.prozentat in pseudocod:

b.

(6pJ

n
n

5,7,3, 9, 8, 0,
nlspuns corect 4

afiga pentru

se se afigeze o valoare egale cu cea citite.

d.

(C/C+t)
ncn%100/10;
n=n/10%1000t
n=n/10t10000,
n=n%10/1000 t

(Pascal,

r.n mod 100 dlv 10


r rn di.v 10 motl 10 00
b.
o, nrrn d{v 10 tnodl 10000
{. n:.n motl 10 iliv 1000
l.

4, 6,

numerului real z.

Respuns

este:

nlrpuns corect b.

Rispuns coFct c.

a.

Variabila lntreagd n memoreaze un numer natural de exact 5 cifre. lnstructiunea


(4p)
car6 determina eliminarea din numdrul n a primei gi ultimei cifre

Rrspuns corect structura cat tinrt


execute (zona hagurata) se
lnlocuiegte dupe cum urmeaze:

il|l
ab
llLpini
c5nd
I

\t

a=0

(10p.)

VARIANTA o7g

VARIANTA 078

1.

Varlabila

memoreaza un numar natural de exact

realizeazd eliminarea din numarul

7 citre.

t.

lnstructiunea

este:

a celor 3 cilre din mijlocul lui

(ApJ

n: =n diw
n3 =n mod
c. n: =n diw
d. n: =n diw

L00000.* 100 + n mod 100,


10000 dliv 1OO + n tliv 100;
10 noal
1000 t

100

00,

r,

0+n%100,
6. n=n/
b. nin%l00 00 / 100+n/ t 00,
6. n=n/10%10000;
d. fl=n/ 10 00,

algoritmul aliturat, citeste a (numer natural)


k0
S-a notat cu x%y restul impa4irii numerului Tcat timp a*0 execute

b.

cite9te b

daca a*10

ILlkek+1

Scrieli valoarea care se va:figa dace


se citesc, in aceste ordine, valorile: 23,
423, 673, 55,77, 3, 93, 38, 0. (6p.)
3

r,

(numar natural)

b810 atunci

Il.l ab

b.

d.

Rdspuns

alt

80,

corespunzdtor algoritmului dat.

in

lip.

(6p)

Rispuns corect structura car timp


execute (zona haguratd) se
inlocuiegte dupe cum urmeazd:

a astfel
incat valoarea afigate in fiecare caz sd fle

9b, o

se

(10p.)

Tdaci a*0 alunci

lrrepeti
ll citeste

ll pace at10 = bt10


ll I kek+1

r
lt aeu
ll

I LpAni

l.l

cind

(4p.)

corect

Orice doua numere care au

o.
d.

Scrieli programul pascaL lc,/c++ corespunzitor algoritmului dat.


pseudocod" un algoritm rdac5 a>1 atunci
Scrieli
echivalent cu cel dat, algoritm in care I lrepeti
sa se inlocuiasc5 fiecare structurd cat

tinp ...

atunci

(1opJ

in

execute cu o

repetitiva de alt tip.

strudure

(6pJ

Rlspuns corect structurile cit tirnp


executg (zona haguratd) se
hllocuiesc dupe cum urmeazS:

a=0

scrie k

r:rr lactori in descompunerea lor in lactori primi


rk)ar 2, 3 gi 5. De exemplu, 50 gi 3oo

pseudocod un algoritm,
echivalent cu cel dat, in care sd se
inlocuiascd structura car timp ...
execut5 cu b structurd repetitive de

Scrieli

Scrieli doui numere naturale distincte


care pot fi citite pentru variabila
10.

10, 20, 30, 40, 50, 60, ?0,

rascal lclc++

12

Algoitmul calculeazd suma tactorilor primi din


(lo8compunerea lui a. (245=512 => 5+7=!2\

numere de exact doua cifre, scrieli care


poate fi valoarea maxima afisatd. (4p.)

Scrieli programul

xG2

k0

Scrieli valoarea care se va afiga dace se


(opJ
citegte numerul 245?

iilpuns corect:

Daca se citegte un gir de numere


naturale distincte doua cate doue,

va atiga valoarea 9

1"0.12

rmdrului real z.

scrie k

Rispuns corect Pentrul girul

(int ) (y*100 ) / 100;

fl fi notat cu x ly relatia ,,x divide pe y'' sau ,,y


oilo divizibil cu:r'gi cu [zl partea intreagd a

reprezentat in pseudocod.

corcct

b.

1012 .34

x=

printf ( -%al',, x) ; I cout<<x;


c. 0 .12
d. 10

naprezentat in

2. Se consider;

Respuns

diw 100;

l. Se considere algoritmul aliturat, citegte a (numir natural)


pseudocod.

Respuns corect: a.

a.

v=r0.1234;

ilrpuns corect d,

100 000 * 10

x la numdrul natural nenul y

lCiC++)

yrr10,1234;
r r -trunc (yr100
rrlte (x)

(C/C++)

natural

(4p.)

intreage.
(Pascal)

(Pascall
a.
b.

Stabilili ce se afiseazd in urma executerii secvenlei de instrucliuni


Pascal I c/c++ aldturate, dace y este o variabile reale, iat x o variabila

llco xla aEunci


I I rdadn
| | | ;executi

llll r.atcx; ala/xl


tinp xln
I I I
llr pace c+o atunci kk+x
II

llr
| | xx+1

Il.I t-pAni c6nd a=1

VARIANTA
1.

AHIANTA 081

O8O

Variabilole n, z gi u sunt lntregi, iar n memoreazd un numir natural cu 'cel pulln

cifre. Secvenla PaEc&l

lc/c++ care determine

cifre din scrierea numerului memorat de n

este:

interschimbarea ultimelor

(4p)

(Pascal)

a.

b.

c.
d.

11=(n div 100*10+n rnodl 10)*10+n tnod 100 div 10


u:-n nod 10; z:,.n dHv 100 nodl 10t n!=n div 100+u*10+z
nsr(n dlv 100*10+n noal 10)*10+n dllv 100 nod 10
u:-n nod 101 z:.n dlv 100 nodl 10, nt'n dLv 100*100+!*10+u

l,
l,6r

r.ty

l,
(numdr natural)

D1

a.2r15903,

(6pJ

astfel lncet sA se

Rlspuns corect oricg numlrformat doar din cifre impare. De exemplu, 13579
(1opJ
c. Scrieli programul pascallc/c++ corespunzetor algoritmului dat.
atunci
a>0
d. Scrieli in pseudocod un algoritm Itdacl
lregetl
echivalent cu cel dat, algoritm in care sd
ca%10
se inlocuiasce structura cat tirE) ... | |
cg2*0 aturci
execute cu o structur5 repetitive de alt | | rdac5
bb+p*cr pp.10
I
ll
(6pJ
rip.
I lr.|

cat tiry)

Respuns

corect

(zona haguratd) se inlocuiegte dupe

cum urmeaze:

structurEl

Scrieli valoarea care se vor afiga dace se


cltesc numergle

a.12

gi

n.10,

(6p)

DacA pentru a se citegte numdrul 32,


scrieli o valoare care poate fi citita pentru n
(6pJ
astfel incet sa se afigeze

ihpuna:

3.

Scrieti programul pascal lc,/c++


corespunzetor algoritmului dat.

ln

pseudocod

o unitate. Daca n este numer par, se oblin


ln/21 astfel de psrschi, deci valoarea lui a
made cu [n/2!. Daci n este un nuhar impar,
dupd ce valoarea lui a scade cu cate o unitate
d. l\l2l ori, la final se mai aduni valoarea
ou

afigeze o valoare egald cu cea citite. (4p,)

executi

aleturat,

ilrolvarc: Se observA ce pentru fiecare


Frcche t, t+r (l impar), valoaraa lui a scade

Scrltl o valoare nenula care poate fi citite

pentru variabila

.algoritmul

citegte s,n

l" t"lro I
Il.t Lp6ni cend a=0

(numere naturale)

ru)entru i=l,n

xecuttr

I rdac! i*2=0 ltunci


ll aea-r
I

!ltfel

aa+i.

lrl
ll

rcrLe a

cit.tt

rer-

htl n.

s,n

[n/ 2l

tdrcl nt2+0 rtuncl

un algoritm I ar+n
d,
lt
echivalent cu cel dat care sd nu continA
rcr{r
e
nicio structure repetitive.
GpJ

Rl3puru corcct 593

b.

/2*21 4*8
d.0

a.

Scrieti

Scrieti valoarba care se va afiga dacd se


citSte numerul

3{.

l,

partea lntreaga a numerului real z.

a,

doscrls ln psoudocod,

ihpune:

b0

restul lmpeiirii numerului


natural x la numirul natural nenul y gi cu Izl

S-a notat cu

c. 16

l, Se conslderi
l,

Rlspung corsct: a.

cit.tt. r

b. 1

lhpuna:

(C/C++)

2. Se conslderl algoritmul allturat, repro-

(C/C++)

littv4dlv2r2*l*8

S-a notat cu :.ty restul fmpe4irii numarului


natural :l la numerul natural nenul y.

a, nr( /100*10+neb10)*10+nt100/10r
b, u.nt10r zrnl100110, $.n/100+u*10+2,
6. n: (n/100*10+n110 ) *10+n/100t10r
{. urntl$; zrnl100t10, nrn/10 0 r 100+z* 10+u,
zentat ln pseudocod,

(4p.)

Precizali valoarea expresiei:


(Pascal)

ARIANTA 083

VARIANTA 082

1.
a.

b.
c.
d.

a.
b,
E.
d.

Variabilele intregi a gi b memoreazd numere nalurale. Care dintre expresiile


mai jos este echivalentd cu expresia (a+b) tnoil 2=0 (in Pascal) 9i

(a+b)%2==o (in C/C++) ?


(Pasca|
(a moal 2=0)aad(b tnod 2=0)antt(a modl 2=1)antl(b n(,d 2=1)
(a mod 2<>0)antl(b tnoar 2<>0)atld(a moal 2=1)andl(b moal 2=l')
(a noal 2=1)or(b nrott 2=1)or(a nodl 2=0)ancl(b ltloar 2=0)
(a rnoal 2=0)andt(b moat 2=0)or(a rnod, 2=1)and(b modl 2=1)

(Pascal)

t.
b,
0,

d.

t,
b.
0.
d,

) && (b%2==0 ) && (a%z==L) &&(b%2==L)


(a%2 I =0 ) && (b%2 !=0) &&(ao42==1) && (beo2==1)

@%2==rt ll(b%2==1) | | (a2.2==0)*c(b%2==0)


(a%2==0 ) && (b%2==0 ) ll Gro2==L, &&(b%2==Ll
Rispuns: d.

considerA algoritmul aliturat,

descris in pseudocod.
S-a notat cu ,re"y restul impe4irii numerului
natural x la numerul natural nenul y, iar cu
lzl partea intreagd a numerului real z.
Scrieti valorile care se vor afiga, dacd
numerele citite sunt n=5, n=5, apoi, in
aceastd ordine: 25, 40,8,L5,L33. (6p.)

citegte

(a nod 2=o)anal(b moal 2=1)or(a tnoal 2=1)and(b notl 2=0)


(a nod 2<>0)and(b noal 2<>O)anal(a motl 2=1)anil(b notl 2=1)
(a moal 2=1)or(b motl 2=1)or(a noal 2=0)alld(b nodl 2=0)
(a mod 2=o)and(b tnotl 2=0)andl(a lroal 2=1)antl(b nod 2=1)

(numar natural, n<10)

citegte

(numer natural, a>1)

fpentru i1. n executa

I citegte x (numdr natu

I auxx ; oko
I rcat tit p x>0 execute
II

ra^"a x*10=rr atunci

Hr
Itr
lrl

cu cel dat, in care se se inlocuiascd


structura cat timp...execute cu o

tip.

(4p.)
structure repetitive de un alt
Rispuns: Ceutem o solulie care se funclioneze
la fel gi pentru cazurile: m=o $i valori nule ale lui

r<.

O solulie posibile inlocuieste structura marcata

I
I

rrepet5
|

;daci

l. l orr
lLr

x810.=ar

I lxx/10
ILf Lp6ni cAnd x=0

atunci

(be.2==Ll ll (a%2==1) && (beo2==0)


=0) && (b%2!=0) && (a%2==L) && (b%2==1)

(a%2==0 ) &a,
(a%2 !

(a%2==1)

(a%2==0 )

ilrpuns:

| | lotlr
Respuns: 25 15
b. Scrieli care este cea mai mare valoare llxtx/1ol
care poate fi cititd pentru n, daci n=4, iar
pentru x se citesc, ?n ording, valorile 121, I rdace ok=1 atunci
781, 951, 4481 astfel incet, la linalul I lserie aux
executdrii algoritmului, se se afigeze
l-t
(6p.)
valoarea 7 81.
Rispuns: 7
(10p.)
c. Scrieli programul pascai lcy'cil corespunzitor algoritmului dat.
.dace
x>0
atunci
pseudocod
un algoritm echivalent
d. Scrieli in
j

cu slructura aleturatd:

b memoreazd numere nalurale. Care dintre expresiile


pescaL
de
maijos
este echivalentd cu expresia urmetoare? (qp)
lc,/c++
(Pasca4 ( d+b)ttrotl 2=1
lCtC++1 (a+b)%2=E1
|
Variabilole intregi a gi

(C/C++)

(C/C++)
(a*,2==0

2. Se

l'I tu*z==11 ll t"zz==q1 && (b%2==o)


&& (b%2==0) && (a%2==1) && (b%2==1)

a.

l, Se consideri algoritmul aliturat,


descris in pseudocod.
S-a notat cu :<%y restul impertirii
num;rului natural x la numerul nalural
nenul y, iar cu tzl partea intreaga a
numerului real z.
l, Scrieli ce se afigeaze la executarea
algoritmului daci se citegte valoarea
x=125.
(6pJ
ilrpuns: nu

b.

Scrieli cea mai mare valoare cu exacl 3


x astfel incdt

cifre care poate fi citite pentru


sd se afigeze mesajul nu.

(6p.)

cite$te x

(numer natural,

x>1)

auxx ; okLL
rcat titlrl) x>10 execute
I raaca x*rO> 1xl1Ol g10

ll atunci okl0
lrl
I x lxl10I
\I

rdace ok1=1 atunci

I scrie aux
I altfel
Il-l scrie "nu"

ilepuns:989

rascal lcle++ corespunzdtor algoritmului dat.


Scrieli in pseudocod un algoritm echivalent citegte x
Scrieli programul

d.

(1op)

cu cel dat in care sd se inlocuiasci auxex, ok11,


structura cat tirE)...executd cu o ntts xl
(4p.)
structurd repetitive de alt tip.
fpentru i1,n executi
| ;aac6 x*tO> 1xl1ol *10
ilapuns: Pentru orice valoare de intrare de o ll aiirnci olrO
tlngure cifre, inlocuirea brutd a structurii car
lrr
tfunp cu structura !epet6, va schimba lxtx/rol
*nomporlamentul"
algoritmului, deci este necernrd o adaptare (de exemplu, adaptarea clasica

drcl x)10 atunci repete...pini

cAnd

t<10). Propunem aleturat o solulie ce utilizeazd


rlructura Dentru, solulie in care se determine
t atematic nunirul de cifre-l ca liind
lmrtea intreagd a valoTii lt5-garitmului in baze Lo
(lh valoarea lui n.

qI

rdacE okl=1 atunci


I scrie aux

laLtfel
I scrie

l-|

"nu"

ARIANTA 085

VARIANTA 084
1.

a.
b.
c.
d.

n rnod 100 dliv 10 noil 2<>1 ' n%l00/10t2 I -1


n%100042!=0
n dliv 1000 rnodl 2=0
n/100t2=.0
n div 100 nod 2=0
n/ 10t10 I =1
n illv 10 modl 10<>1

2. Se consideri algoritmul

citgte

aleturat,

b,
0,

d,

S-a notat cu l.ty restul imp;4irii ok0


numerului natural x la numerul natural fcat timp n>0 e*ecutl
nenul y, iar cu tzl partea intreage a lcn%10
c>5 9i c*2=0
z.

Scrieli ce se afigeazd dace numarul citit


(6pJ
este n=4576.

Respuns: 5
b. Scrieti cea mai mare valoare cu exact 3
cifre, care poate fi citite pentru n astfel
TncAt sd se afigeze, in aceaste ordine,
(4pJ
numerele I 5.

dact

latunci ok1l

laltfel

lrl
I

ok10

rdacl ok1=1 alunci

ll scrie c,'
| | ok1

'

Itt n tnl101
I scrie
\t

Scrieli programul pascaLlc/c++ corespun(1opJ


zitor algoritmului dal.

(C/C++)

dlv 2-n div


(n-n) 6iv 2-1

m tnod

(m-al /2+L

2+1

ml2-nl2
(n-n) /2-1

-n mod 2

m%2-'l^%2

"nu"

aleturat,

de8cris in pseudocod.

S-a notat cu

restul impd4irii
numerului natural"iv
!. la numerul natural
nenul y, iar cu Izl partea intreagd a
numdrului real

L
b,

z.

Scrieti ce se afiqeazd dacd numarul citit


(6p.)
este n=9458.

ihpuns: s

lrl

rdacl ok=o rtunci

Rispuns:958

c.

I
I
I

(n-n) 4lv

L Se consideri algoritmul

(numer natural, n>1)

deecrls in pseudocod.

num5rului real

(Pascah

I,

Rispuns: c.

a.

Variabllsle intregi n gi m memoreazA numere naturale nenule pare, iar n<m.


Care dinlrs expresiile de mai jos are valoarea egale cu numdrul de valori
impare din intervalul inchis ln,nl ?
(4p.)

Variabila intreagd n memoreaze un numer natural cu exact { clfre. Care


expresiile de mai ios est6 echivalente cu expresia urmetoaro?
(Pascal)
{6/C++)
n/100%10t2.=0
n dliv 100 moal 10 ttiod 2=0

Scriefi cea mai mare valoare cu exact 3


cifre, care poate fl citite pentru. n astfel
incat se se afigeze, in aceaste ordine,
numerele 9 7. (4p.)

ilcpuns: ezs

0,

Scrieli programul Pascallc/C++ corespun-

(1opJ

zetor algoritmului dat.

Scrieli in pseudocod un algoritm echivalent celui

d.

Scrieti un algoritm pseudocod echivalent cu cel dat care se utilizeze o


tirnp. . . execut{. (6p')
repetitive de alttip in locul structurii
Rispuns: Se poate utiliza structura repelitive citegte n (numer natural, n>1)
cu test final, fere adaptari suplimentare ok0
(deoarece "comportamentul" algoritmului pentru ;rePetl

cit

n=o este acelagi indiferent de structura alease).


Nu este gregitd efectuarea altor restructureri
ale algoritmului, ca in exemplul aleturat, dar
trebuie avut gnje sd se pestreze echivalenla

cu algoritmul dat. ln plus. efectuarea altor

modificari mai "fanteziste" in algoritm lace mai


corectarea rezolvdrii.

difi cile

cnt10
l{acn c=5 Eau cog atu4ci
; oke1
l lscrie c."

lrl
n tnl101
ILpAnE

cind n=0
daci ok=o atunci acrie "nu

structura repetitivi

cit

tirnp.

-.

execut{

cu

luolvare:

Se poate utiliza structura repetitive cu test


fere
nici un fel de adaptdri suplimentare.
flnal

iccvenla aliturati rdspunde cerintei, facand


multe

adaptiri.

mai

fepetd
I dacd nt2=1 atunci
| | scrie n810
,l I okl

lr.r

n tnl10l

I
Lpini
clnd

n=0

VARIANTA

1.
a,
b,
c,
d.

O8E

Variabila intreaga n memoreaza un numdr natural, cu cel pulin dou6 cifre.

dintre instrucliunile pegcFllc/c++


ultimei cifre a lui n?
(Pascalt
n:=n* (n noal 10),
ni=n dliv 10;
n:=n-n motl 10,
n:=n-n tliv 10;

Respuns

corect

(C/C++)
n=n* (!%10 )

a.
b. n=n/10;

d. n=n-n/L0;

Se

S-a nolat cu :r%y restul impd4irii numerului


natural x la numarul natural nenul y, iar cu Izl
partea intreagd a numerului real z.

Scrieli valorile care se vor aliga dace se


(6p)
citesc, in ordine, numerele 7 gi 5.
Rispuns corect:
].2340t2

fpentru i1,n execu


I sdace [i/kl =0 atut

j I scrie i
I I kk-1
I laltfer
I I scrie itk
lll
lt

Scrieli cele mai mari trei numere naturale

nenule, distincte, cu cel mult doue cifre

fi citiie pentru a,b


astfel incat sa se afi9eze

liecare, care pot

respectiv c,
ualoarca 7,la finalul executarii algoritmului.
(4pJ

Dacd n=11, scrieli cea mai mic5 valoare


care poate fi cititd pentru k astfel incat, in

c.
d.

calculeaze cel mai mare divizor


al celor trei numere.

(4pJ

Scrieli programul pascal

12

lc/c++
corespunzetoralgoritmuluidat. (1opJ
Scrieli in pseudocod un algoritm echivalent
cu cel dat in care se se inlocuiascd structura
peatru. . . execute
structurd
(6pJ
repetitive cu test final.

cu o

Rispuns corect Structura Dentru...


execute este inlocuite cu structura

repeti...pani cand, duPi

lc/c*+

cum

scrie i
kk-l
I
a]-tfel
I scrie i*k
I

urmeaze:

\I

ii+l
llLgana
I

\I

cand i=n+11

llxb

IL

x>c atunci

Lo""t

llll.r

xc

| paca x*a atunci


I I aa-x

IL

bb-x

Ill.rI

cc-x

x+c atunci

Lo""u
scrie

ix
lll

fcat titrD a*b sau a+c


executi
I
I xa
| 4aca x>b atunci

tr

Rezolvare cerinla d.

;daei iSk atuaci


l;repeta
| | raac: Iilkl =0

(numere naturale nenule)

| |

co-

respunzdtoralgoritmuluidat. (10p)

Scrieli programul pascal

cilegte a,b.

ll-'
I rdaci x+b atunci

9a,9L,94 (in orice ordine)

urma executdrii algoritmului, sd se afigeze, in


ordine, toate numerele naturale din intervalul

inchis t1,11t.
Respuns coect k

consideri algoritmul aliturat, descris

ln pseudocod.
Scrieli numdrul care se va afiqa dac5 se
citesc, in ordine, valorile 5, 4 gi 10. (6p,)

(numere naturale nenule)

astfel incat aceasta sa


(4p.)

(CiC++)

ns: d.

citegte n, k

const in! x=314 / 10 0;


const char x=3.14t
conat unsigrned int x=3.14t
conat float x=3 . 14;

conat xr char=3.14 t
const x:woral=3 .14 i
congt x:real=3. L4i

c;

pseudocod.

b.

memoreze corect numerul real 3, 14?


(Pascall
son6t x! integer=314 / 100,

C, n=n-n%10,

2. Se considere algoritmul aliturat, descris in

a.

Care dintre variantele de mai jos declare constanta

de mai jos determini inlocuirea cu 0


(4p)

Scrieli in pseudocod un algoritm echivalent cu cel dat in care se se inlocuiascd

structura repetitivd

cit tinp.

. . execu ta cu

o structurd repetitivd cu test


(6p.)

final.
Structura repetitive cat titlll) lrePeti
poate fi inlocuitd cu I xa
execute
,..
dac5 x>b atunci xb
lhuctura repetitivi repeti ...panE I daci x>c atunci xc
tlnd. in cazul in care cele lrei numere I daci x*a atunci aa-x
I
0llllo sunt egale, secvenla de instrucliuni
I aace x*u atunci beb-*
deci
nu
nu
se
vor
executa,
tlF decizie
I daci x*c atunci cc-x
necesare condilii suplimentare.

llrpuns:

rrnl

Lp6nd cAnd a=b=c


serie a

VARIANTA 088

f.

A 089

in secvenlele paacaLlc/c++ urmetoare toate variabilele sunt de tip i


memoreaze numere cu cel mult E cifre. Care dintre variantele do mal
determina interschimbarea valorilor memorate de variabilele a gi b?
(Pascal)
tCiC++l
anrx: =b; at=b; bl=aux;
a. aux=bi a=bi b=auxi

a,
b, a:=a+b; b:=a-b; a: =a-b;
c. a3=bi b: =at
d. a:=a+b; b:=a-b; a: =b-a;
Raspuns corcct b.
2. Se consideri algoritmul aliturat,
descris in pseudocod.

S-a notat cu x%y restul

b. a=a+bi bia-bi a=a-bt


c. a=br b=ai
d, a=a+b; b=a-br a=b-at

citegte a

(numdr natural)

p1
b0

impe4irii

* la numarul natural rcat tinp arao


ca%10
lzl partea intreage a

numdrului natural

nenul

y, iar cu

rdaci

numdrului real z.

a.

(6pJ

b.

Scrieli o valoare cu exact 5 cifre

aeb+g"p
laL!felILt .bb*10+c
a Ial101
pp*xo

Ill

care poate fi citite pentru variabila a


astfel incat numdrul afigat s5 fie
format din toate cifrele lui a, scrise
(4pJ
in ordine inverse.

scri b

Respuns corect Oricare numer de

Rezolvare cerinla d.

5 cifte care are pe primele patru pozitii


numai cifre impare.

pdaci a#0 execute

Un posibil rdspuns poate fi: 13579


sau 13578.

ll ca%10
ll pac5 a*2=0 atunci
I beb+c*D
laltfeL
Il.I beb*10+c

Scrieli programul PascaL

c/cr+

corespunzStor algoritmului dat.

(1op)
d.

atunci

Scrieli numdrul care se va aliga


dacd se citegte valoarea L23456.
Raspuns corect: 246531

a82=0

execute

Scrieli in pseudocod un algoritm


echivalent cu cel dat in care sd se
inlocuiasci slructura cat !irll)..,
executa cu o strudure repetitivd
cu test final.

(6p.)

llrepeti

a ta/101
ll pp*xo
llLpAni c6nd a*0
I

scrie b

n memoreaze un numer natural format din oxact doue cifre


onule. Care dintre urmetoarele instrucliuni Pascal" lc/c++ determini

Vnrlablla intreg6

nramorarea in variabila intreaga


dar ln ordine inversd?
(Pascal)

It.n
ll-n
ll'n
lr-n

rlod 10*10+n div

xo

a numarului care are aceleagi cifre ca 9i n,


(4p)
(C/C++)

a. t=n*xo*10+n/10t
b. t=n/10*10+n%10;
c. t=n%10+n/10 t
d. t=n%10* 10+t/10,

dlv 10*10+D mod 10;


mod 10+n dliv 10;
nodl 10*10+t div 10t

corect a.
algoritmul aleturat'
considere
|l
ln pseudocod.
notat cu **y restul imPd(irii
natural x la numdrul natural
y, iar cu lzl partea intreage a
i real z.
Scrlsli numerul care se va afigaldace
rc citegte numarul D=30?2941. (6PJ

Rlspuns corect L0L2L4L


Scrieli un numer format din exact 5
ollrs, ele liind in ordine strict cres-

ciloare, care Poate

fi

citegte n (numdr natural)


tnr r0
rca! timp t>O executi
I rdacA (ttl0) *2=1 atunci
ll rr*10+1
| | artrer

ll rer*10+t%10
lrrre ro
I trl l
L
n0

fcat tttrll) r>0 executi

citit astfel

lnn*10+r%10

I rQElrol

lncet executarea algoritmul se deter'

mlne afigarea unui numdr egal cu


(4p.)
ol citit.
Rl8puns corect 12468
Algoritmul inlocuiegte cifrele impare
Fb numerului cu cifra 1, cele Pare

scrie n
Rezolvare cerinla d'

lrePeti

rdmanand neschimbate.

scrieti programul eascal lclci+


oorespunz5tor algoritmului dat.
Scrieli in pseudocod un algoritm
ochivalent cu cel dat in care sd se

rtructura repetitive cu test final.


(6P)

R{spuns corect: Vezi

*2=1 atunci

artrer

LpAni cAnd r30

scrie n

llsc6 numerul citit este 0, nu este


necesar sd punem conditii suplimen-

in

lrtr/10!

structura

nlAturata.

ldre deoarece

I rr* 10+1.

Lpind cind tSO


no
;rePetd
lnn*10+r%10

cat

tltqp... executi cu cate

p"ca tttfO)

ll rr*10+t%10
llr
I re tr/10l
-

(1oP)

lnlocuiasce liecare structura

urma executirii
r va avea tot

algoritmului valoarea
valoarea 0 .

AQ

VARIANTA

1.

O9O

a 091

Care dintre urmdtoarele instrucliuni poacal lc./c++ atribule variabilei


valoarea -1 dace gi numai dace variabilele intregi a 9i b sunt nenule
semne diferite?
(Pascal)

a. if
b. if
c. if,
d. if

(a>0)or(b>0)thn t: =-1t
(a>0)antl(b<O)then t ! =-1t
a*b<o thn t:=-1t
a*b>O then t:=-1,

iitllnd cA variabila intreagd nr memoreaza valoarea 5, stabilili ce mesaj se va


nflga ln urma executarii secvenlei de instrucliuni Pascal lclci'+ urmetoare.

(4p)

a. if,
b. if

(a>0) | | (b<0)
(a>0)&&(b<0)

c. if (a*b<0) t=-1;
d. if (a*b>0) t=- 1;

)
)

t=-X;

doscris in pseudocod.
S-a notat cu :r%y restul impd(irii
numdrului natural x la numarul
natural nenul y.
a. Scrieti valorile care se vor afiga in
urma executerii algoritmului dace
se citesc numerele a=105, b=118

gi

b.

r=7.

(6p)

RAspuns corect Lo7 LL7


Dacd pentru k se citegte valoarea 7,
iar pentru a valoarea 2009, scrieli
cea mai mare valoare care se
poate citi pentru variabila b, astfel
incat numdrul afigat se fie -1. (4p.)

Rispuns

corcct 2016

(cel

mai

mare numAr penAu care in intervalul


inchis determinat de el gi a nu apare
niciun numer care sd aibd uftima cifri

egab cu k).

Scrieli programul PascaS lc/cfi


corespunzAtor algoritmului dat.

'

d.

(1op)

in

pseudocod un algoritm
echivalent cu cel dat in care sd se

Scrieli

inlocuiascd structura car


tiry. . .executd cu o structure
repetitive cu test

tinal.

(6p.)

Rispuns corect: Structura car


timp. . . executi este inlocuite cu
structura repeta. . .pini cAnd.

ta
pe0

a, b, k

if

lf nr<7 th6n
l! nr>3

(nr<7 )

if (nr>3 )
ghn
printf ("Bine") t
writ ('Bine' )
lcout<<"Bine",
else
alae
printf ("Foarte bine" ) ,
writ ( 'Foarte bine' )
aIt
I cout<<"Foarte bine"t
printf (.'Rau" ) i
else
wlite(,Rau');
I
| cout<<"Rau",
|
d, Bine
c, Rau
lln6Rau
b. Foarte bine

t=-1,

Respuns corcct c.

2. Se consideri algoritmul aliturat, citeFte

(CiC++j

(Pascal)

{C/C++)

(numere

rcat timg t<b executi


I .daca k=tglo atunci

RABpuns corect: d.

ll sc'ie t
lller

Itt+r
l.1

nolat cu tal partea intreage a numerului real a


valoarea absolute a numeruluiintreg b.
ou

lLr

;repeti

Rispuns corect: 7

x? t
ILpdni
cind x1'
scrie x

I vt g+zh<l

/2J

(6P.)

Rezolvare:

lrrePeti

citeqte z,x

.aaca k=t*10 atunci

z lz l;

lll ".'i" t
lllp+r.

xlxl;

vx

a.(l(x+z/x,l 127
rcat timP xry i
I yx; x I (x+z/*.) /21

llrr
ll ct+r

l-l

Lpani cand t=b

rcrie x

h
Ll

lbl

lest initial.

.dac5 a<b execute

rdace P=0 atu1ci


I scrie -1

zlzl;xelxl

Scrieli in pseudocod un algoritm echivalent cu cel dat, in care sd se


lnlocuiasce structura repetE...pane cand cu o structure repetitive cu

Rezolvare cerinla d)

(numdr intreg nenule)

Scrieli valoarea care se va afiga pentru


(6p.)
r.5 0 9i x--1.

ldaci P=g ;gst.1


I scrie -1

II

consideri algoritmul aleturat descris in citegte z,x

l,
i,

Scrie,ti programul

pascal I c/ci+ corespunzetor algoritmului

dat.

(1op)

Daca pentru z se citegte numerul 30, scrieli o valoare care, cititd pentru x,
(4p.)
determind ca atribuirea yx sa se execute o singurd dati.

Rispuns corect: 5

VAFIANTA 092
1.

A 093

Stabilili care dinlre urmetoarele expresii pa8caL lclc++ are valoarea


dace gi numai dacd numArul intreg x, nu apa4ine intervalulul:

.l'=(-10,-2)v150,1001

rruo

(Pascal)

a.

b.
c.
d.

or (x<50 and x>=-2) or (x>100)


or (x<=50 and x>=-2) or (x>=100)
x<--10 or (x<50 and x>-2) or (x>1OO)
x<E-10 or (r.<=50 or x>=-2) or (x>tOO)
:.<=-10
x<=-10

ll

!.

c.
d.

1.

corlsidri algoritmul al5turat descris in

Scrieti programul Pascallc/c+r corespunzetor


(10P)
algoritrdului dat.

10.

se citeste vdloarea 1 scrie,ti


Dace pentru
numerul de valori naturale nenule de exact o
cifr5, care pot fi citite pentru variabila rn, astfel

lncat se se afigeze valoarea

Scrieti ce se afigeaze dacS se citesc,


in aceaste ordine, valorile: s, a, L2,
15, 10,2s, 9, 8, 30,
(6p.)
b.

:r/10==x*10+1

Scrieli valoarea care se afigeaze daci se


(6pJ
cltesc numerele n=2 9i n=11.
Rlspuns corect: 26

descris in pseudocod.
S-a notat cu [x] partea intreagd a numerului
real x.

x/10:=yt10
y/10==xt10

Rispuns corect:

Dacd pentru n se cilegte valoarea 3


scrieli un gir de date de intrare astfel
incat ultima valoare care se afigeazd
sd fie 3.
(4p.)
Respuns corect: trei numere din
intervalul t1,1ol (exemplu 2,3,7)

test initial-

(6p.)

Rezolvare: zona haguratd

inlocuiegte cu secvenla aliturat6:

fie
cu
se

o.

(6pJ

citeite

n,m

(numere naturale, n<n)

s0

rcat tirE,

n<m excute

lss+n
Itt nn+3

idace n=m atunci

I scrie
aItfel
I scrie

s+n

Lt

(ne{ 2,3,5,6,8,9})

recursive.

Rezolvare.

ciEeste n,m

Scrieli un algoritm pseudocod cite$tein


repet5.. .pAnd cAnd si
inlocuite cu o structu16 repetitive

11

Scrieti in oseudocod un alqoiitm echivalent cu cel dat, care se NU foloseasca


(4pJ
struct'uri repetitive sau

Scrieli programul paEcd.l^ | c./c+{ corespunzetor algoritmului dat.

echivalent cu cel dat in care structura

d,

Rlrpuns coroctt b.

I
|

considere algoritmul aliturat,

Respuns corect:

(C/C++)

x dlv 10'y nodl 10


y dllv 10Ex ttrod 10
x dlv 10.:r nodl . 10+1
0
b,9

(:r<50 && n>=-2 )


(*>1oo )
(x<=50 && x>r -2 ) I t*t=1qs I
(x<50 && x>-2) ll (x>100)
|
(*<=s0 ll x>=-2 ) | (x>xoo )
Rispuns corect: a-

2. Se

x gi y memoreaze cete un numAr natural, cu exact doue cifre'


Care este valoarea expresiei !(-v gtiind cd fiecare dintre expresiile rascal
(4pJ
lc/c++ aleturate are valoarea tru11?

Varlablle intregi

(Pascal)

(C/C++)

a, x<=-10
!. x<=-10
c, x<-10
d. x<=-10

(10p.)

nr0
ve0
fpentru i1, n execute

citegte x

(numdr real)

nrnr+L
rcAt timp x=0 sau x>10

I citegtb x
Inrnr+l
L|

I yy+x
l.l
acrie [y/nl
scrie nr

(numdr real)

Explicalie. Se calculeazd suma D+(n+3)+(n+2*3)+...+(n+k*3), unde


ieprezinte numerul de executeri ale buclei cat titnp. Valoarea variabilei
n ajunge egala cu valoarea variabilei tlt atunci cand n+3*k=m Rezultd de aici
ca avem k= (rn-n) /3r ceea ce indic5 faptul cd diferenla tll-n trebuie sd fie

divizibilS cu 3. Suma calculata este atunci:


n + (n + 3) + ... + (n

(uf

. t)(r"

+ 3k)= n(k + t) + 3(l + 2+...

i!!f)

_ n + 3) (n + m\

+ k) = n(,t + l) +

k(kl)

+ l)(?n + 3 kJ

-'

VARIANTA 094
1.

A 095

ln secvenla alituratd de instructiuni, variabilele I,J,k gi y sunt de tip


Pentru care dintre urmetoarele seturi de valori ale variabilelor i,j gi k
y va avea valoarea 1. in urma executdrii secvenlei?
(Pasca,

(L
Y=1,

y: =1t

if k>0 then
if i<>j the!

if

y: =0
elae y: =2t

U+ +)

\Pascal)

kxeo

Scrieti ce va afiga algoritmul dace pentru


n se citegte valoarea 1236L1. (6pJ

Rispuns corect 62U31

b.

Scrieli cate valori naturale

distincte,

tormate din patru cifre fiecare, pot li citite

pentru variabila

4,

astfel incat, pentru

fiecare dintre. acestea, valoarea afigatd de


algoritm sb fie divizibild cu

10.

Rispuns: nicio valoare

(OpJ

(algoritmul
construiegte numdrul oblinut din cifrele
pare resturnate ale lui n urmate de cifrele
impare ale lui n rdsturnate).

c.

d.

ll n2n2 * 10 +nti
I laltfer
ll n1 n!" * 10+ntt

Il.I k1 e k1+1
Itt r, lolrOl
p1

rpentru i<l, k1 execute

lpp*ro
l-t

xen2*p+nl
gcrie x

Scrieti in pseudocod un algoritm ech


cu cel dat care sd utilizeze
singurd structure repetitivd.
Rispuns: structura pentru nu este necesara; calculul valorii p se poate
in interiorul structurii cgt timp. . . execute: se inlocuiegte atribuirea
k1k1+1 cu pp*10, evident, atribuirea p1 se face inaintea
repetitive

lt k>0 rheD
tf i<>j then x:=o
Ls x:=1
rlee x:=2i
if i<>j then
if k>0 then y:=0
6Lae y.=2
clse y:=1

Y=0

y=2'

cet ti!trp. . . executi.

Scrieli programul pascal- lclc++ corespunzetor algoritmului dat.

k, x$i v sunt de

tip

9i k
lnlrog. Pentru care dintre urmetoarele
vdrlalilele x gi y vor primi valori diferite intre ele in urma executarii acestei
(4p')
rrtcvenle?

if (i!=j)
elge

i, j,

seturi de valori ale variabilelor i' j

(k>0 )

a, k=0, i=5, j=5


b. k=10, i=5r j=6
c. k=10, r=5 i
d, y nu va avea valoarea 1 indiferent de valorile variabilelor i,i 9i
Rispuns corect a.
I
2. Se consideri algoritmul alaturat, descris citegte n
in pseudocod.
(numdr natural nenul)
S-a notat cu x%y restul impe4irii numiirului al 0
natural x la numdrul natural nenul y, iar cu
n20
txlyl catul impd4irii intregi a numdrului
nalural x la numerul natural nenul y.
rcattirnpn*0execut{
| rdaci (n*10) t2=O atun

a.

hr sccvenla aleturate de inslrucliuni, variabilele

{C C+*t
|
I if (k>0)
i ir (ir=j)

x=o;

elge x=1;

IeLEe x=2;

if (ir=j)
if (k>0) y=ot
I
y=2;
else
I
| else y=1;
I

y primesc aceeagi valoare indiferent de valorile variabilelor i, j 9i k


d) k=0; i=s; j=5
c) k=10; i=5; i=5
b) k-o; i=s; j=6
Rlspuns corect d.

t)

Si

h consideri algoritmul alaturat, descris


pa.udocod.
I notat cu a*b restul impertirii numerului

xo

citegte nrk
(numere naturale nenule)

a la numirul natural nenul b, iar cu


bl catul impe4irii intregi a numerului
a la numirul natural nenul b.

Scrieli numerul care se va afiga daca se

cltesc pentru

pontru k valoarea

valoarea 528791

5.

(6PJ

9i

scrie

Rispuns corect 125


din exact 5
Daca pentru k se citegte valoarqa 9 scrieli toate valorile formale
se fie' de
aligat
rezultatul
cifre care se pot citi pentru variabila n, astfel incat
fiecare date, 20 08.
Rispuns: 80020, 80029, 80092, 80902, 89002' 98002'

(6p)

(10p.)

VARIANTA 096

1.

A 097

ln secvenla aleturate de instrucliuni, variabilele r, J, k 9l y sunt de tip i


Pentru care dintre urmetoarele seturi de valori ale varlabllelor i, J gl
variabila y va avea valoarea 1 in urma executerii secventei?
(Pascal)

(C/C++)

Lf k>O th6'a
if, i<>j then yr =0

if (k>0)
if (i!=i)

y=0,
e1B y3 =1
elsit y=1,
61Ee y! =2i
e1E y=2 i
a) h0; i=5; j=s
b) 1t=10; i=5; j=5
c) k=10; i=5r j=5
d) k=0; i=5; j=6
Respuns corect c
2. Se consideri algoritmul alSturat, descris citegte n (numer natural
in pseudocod.
i1, n executd
a. Dace se citegte pentru n valoarea 10, rpentru
j1,n executi
scrieli valorile care se aflgeaze, in forma | 4>entru
| | ;pentru k1,n executl
rezultate in urma executerii algoritmului.
lll{acf i<j<k atunci
(6pJ
| | | | 6aca i+j+k=n atunci
Respuns corct
,,
scrie

lllll sart i,' ,,j,'


la rend nou
lllll

127
136
145
235

b.

Scrieli o valoare formate din exact doue


cifre care, dac, se citegte pentru D,
determind ca printre tripletele de valori
afiSate se existe unul alcetuit din trei
numere consecutive.

Rispuns: orice num5r de doud


divizibil cu

cifre
(6p.)

3.

Scrieli programul pascal. lclc++

corespunzatoralgoritmuluidat. (1opJ
d.

Scrieli

in

fseudocod

un

algoritm

'echivalent cu cel dat care se utilizeze


exact douA structuri repetitive (4p)

lillrr
llllr
llLr
lrl
l,|

t,

Care dlntre variabilele intregi x, v 9i z vor avea la finalul executerii secvenlei


aldturate de instrucliuni, aceeagi valoare,ca inainte de executare? (4pJ
(Pascal)
{C/C+t"i

X
a
y
u

r!
att-

y + Zi
,l - zi
zi
x - yi

b. numai y gi z

a. numai x Si z

Rispun8 corect

l, 8e

b.

considere algoritmul

alaturat

flprcrentat in pseudocod.
l-r notat cu x%y restul impe4irii numerului
lnlrog x la numerul intreg nenul v.

x = y + zi
z = 2t - zi
y=zi
z = x - yi

c. numai x 9i y

d. x,ygi

lpenlru i 1',3 execute


citeFte x (numer natural)
s0
| ;Pentru j 1,i execute

ll ss+ *%10
lrl
Iql scrie s

Scrieti ce valori se vor afiga dace se citesc, in ordine, valorile

L23, 25,

2L8.

Rdspuns:

3,

Lo,

(6pJ

24

Scrieli un set de date de intrare pentru care se vor afiga hei


consecutive.

l;Joii

ultima cifrd a primului numer citit,. dublul ultimei


Rlspuns: Algoritmul
-de-al afigeaze
numdr
doilei
citre a celui
9i triplul ultimei cifre a celui de-al treilea

numdr, Pentru ca cele trei valori se fie numere consecutive trebuie ca ele sd
247'
aibd, fiecare, ultima cifre egale cu 1. Un astfel de set poate ti:

31 a

Scrieli in pseudocod un algoritm echivalent cu cel dat, care sa nu utilizeze


(4PJ
nicio itruiture

repetitivd.

Rezolvare:

citeFtex;scriex%10
cite9te y ; scrie 2+ ly4lo)
citeete z ; scrie f,*(z%10)
Scrieli programul

Pascal lc/c++ corespunzdtor algoritmului dat

(10p.)

VARIANTA 098

1.

A 099

(Pascal)

a. wlite (x tliv 1)
b. srritse (x ariv L00)
c. write(x nod 100 )
d, write (r{ tnoil 10 dliv 1)

2, Se consideri algoritmul alaturat reprezentat in pseudocod


Scrieli ce valoare se va afiqa pentru n=10.

Rispuns: 3

b.

lr.ri-'lLt

(n".A,,

citegte n

llrPuns corect:

(numir intreg)

lt

rdace n<0 atunci,

n-n

Iqt
iex

Rispuns:116,

4.

!L7, !rA, !Lg,

!2L, !22, t23, !24

(6p.)

l:2O,

Ill ii+1

st-i afle

in

d.

Scrieli programul

citegte x

v,

rpentru

Scrieti ce se va afiga Pentru x=8.


(4p.)

Itl x-x
pe1

Il-l p e
scrie

il,x

executi

(p*4 ) %10

numerului al*l. gt cum el"l =...e pentru x par nenut 9i el;l=...4 pentru
3, 5,,7 9.
lmpar, rezuna ce valorile de o cifre cerute sunt:

intervalul

t'

t ...6

in

(4p.)

Bezolvare: Se stabilegte ultima eifre

dat.

(10p.)

limbaj pseudocod un citeEle x


xlxl
algoritm echivalent cu cel dat care
sd nu utilizeze nicio strudura rdace x=0 alurrci scri
Scrieli

repetitiva.

corespunzdtor algoritmului

(numdt natural)

rdaci x<0 atunci

I,

repetitive.
n lnl

l
pascatlc/c++

L.

Scrieli in pseudocod un algoritm echivalent cu cel dat care sd nu utilizeze nicio


structura
(4p.)
Rezolvare: citeFte n

scrie

/2i
+ zll/2t

Scrieli toate numerele naturale, de cate o singura cifr5, care, ciiite pentru x,
(6P)
dotermine afigarea valorii
3, 5, 7, 9. Se observe ce valoarea afigate este ultima cifrA a
Rtrspuns:

Algoritmul determina cel mai mare numer al


cdrui petrat nu depagegte valoarea absolutd
a lui n. Penlru a afiga valoarea 4, ar trebui

ca modulul lui n sd
[4',52).

(C/C++\

congideri algoritmul alaturat,


in pseudocod.
notat cu x%y restul imPd(irii
natural x la numerul natural

ilrpuns:

scrie i-l

2 = 1x+y+zl l2i
><=:trl4 / 2+ yl412 + z/4/2,
x.=zt+ylz+zlzi
x=rt + y + zlzt
x=xlLl2+ ylLl2 + zlLl2i

It.x+ylz+z/2i
l|r.x+y+zl2i
tt.xlLl2+ yl!/2 + z/Ll2t

,rf6L}/L) t

valorile care pot fi citite pentru n rcat timp i*i:!n executl

Scrieli toate
astfel incat se se afigeze

lKr- (rr+y+zl
s1.a,l tLl2+ yl4/2

cout<<x/li I printf ( "%d",x/1) t


cout<<x,/100 i lprintf ( "%d", x/J.00 ) ;
cout<<r9"100 r Iprintf ( "ed't , x%1OO ) ;

cout<<r*1o/1r

c,/c++ sunt echivalente cu cea


(6p)
reale?

(Pascall

{c/C+1)

RAspuns corect: d.

a.

jHro dlntre urmdtoarele instruc{iuni pascet


rlllurat6, gtiind cd variabilele x, v z sunt
(

x memoreaza o valoare mai mare ca 1000, formata


doar din cilre distincte. Care dintre urmatoarele instruc[iunl
pascal lc/c++ afigeazd o singurd cifra?
(4pJ
Variabila fntreagd

a lui 4x pentru fiecare dintre cazurile:

exponent o, exponent paf nenul

9i

laltfel
I ftb"n :f62=0 alunci scrie
I laftfel Ecrie 4
lrl
l.t

exponent impar.
Scrieli programul Paecal"

lc/c+*

corespunzdtor algoritmului

dat.

(10p')

VARIANTA

1OO

A 001

x+y+z sd aibA valoarea maximd?


I) xsx+y-zi
lI) y=2s-y12;

a.IIIIrI

C. III

II
RAspuns corect:

in pseudocod.

I.lIl 7=2-a1y

b.

d.

algoritnul aleturat, descris

citegte

Scrieli. valoarea care se va afiga in


urma . executerii algoritmului dace se

199.

citegte numdrul
Respuns corect: 1

(6p.)

I
\r"+-t.zrot'
a<10

?.

R:ispuns corect: cel mai mic numer este 106, iar cel mai mare este 997

pascal i clc+.}

dat.

c,

Scrieli programul

d.

Scrieli in pseudocod un algoritm, echivalent cu cel dat, care se utilizeze


mult o singure structurA repetitive.
(4p.)
Rezolvare: Algoritmul calculeaze ,bitra de cite9te a
control" a ijnui numer. Avdnd in vedere acesl
(numer natural, a<1oe)
lucru structura repetS-.pana cand poate fi b<-0

corespunzetor algoritmului

ellminate deoarece suma cifrelor numerului cilil


este numer de 2 cifre. Suma cifrelor unui numer
de doui cifre este mai micd decet 20. Deci
suma ciftelor se calculeaza de cel mult trei ori,
din care de ultimele doua ori pentru numere de
maximum doui cifre, caz in care nu e nevoie
de o structuri repetitivi.

d.

45

25

I b<--u+a%10
Il.la<- Ial10l

b<-[b/101 +
b<-[b/101 +

declararea aldturate, cempurile x 9i v ale inregistrerii pot memora


coordonatele carteziene ale unui punct din planul xov. Scrieli o secvenlS de
instrucliuni prin executarea cdreia se memoreazi in variabila c coordonatele
mijlocuiui segmentulul cu capetele in punctele ale ciror coordonate sunt
(6p.)
memorate in irariabilele A gi B.

in

(1Op)

rcat timp a*0 execute

scrie b

b.4

24

c.

Rispuns corect: d
(Fieidrui graf ii corespunde o funclie r: t (i, j) li*j, 13i, j<4))t0,1)
care asociaza perechii de varfuri distincte (i, j ) valoarea 0 daca nu existe
muchie de la t la j, altfel 1. Numdrul grafurilor cu cate n varfuri este egal cu
^2 ,(r- l)
numdrul acestor funclii, adicd 2" = Z - )

lb<-b+a%10

Scrieti cel mai.mic gi cel mai mare numdr, fiecare avand exact 3 cifre, care
t
fi citite astfel incat, in ambele cazuri, se se afigeze valoarea
(6p.)
*

d.5

s.2

Cete grafuri neorientate, distincte, cu 4 varfuri se pot construi? Dotd grafuri


(4p')
se considerd distincte dace matricele lorte adiacenld sunt

a.

fcet tirnp a*0 executi

ctnd
gcrie b

r.

diferite.

b<-0

a<-b
ILpAnE

,, lTTtl

corect: cG
Rlspuns c(,reul:
Kaspuns

(numer natural, a< 1Oe)

;repeti

S-a notat cu x%y restul impe4irii numdrului


nalural x la numerul natural nenul y gi cu
lzl partea intreage a numdrului real z.

a,

. sd se noteaze cu AD(x) operalia


stementele cu valorile u,
prin care se adaugl elementul cu valoarea x in coadd 9i cu Er, operatia prin
care se elimind un element din coade. Cate elemente va conline coada i0 urma
(4p)
executerii secvenlei de operalii: AD(4) tEr,rEr,tAI)(5) tEr,tAD(3)

b.x II IIT
d.r III II

2. Se considere

b.

Se consldera o coadd in care initial au fost introduse, in aceasta ordine,

$tiind cd inilial variabilele intregi x, y 9i z au valorile x.1, y.2, respectiv


in ce ordine trebuie scrise. atribuirile urmdtoare astfel incat, in final,

1.

(Pascal)

punct=record x,Y:real endi


var A,B,Clpuncli
ts]zDe

Un

(CiC++1

slruct

punct

{ float x,yi} A'B,C;

rispuns corccti (Pascal) -c.x3=(A.x+B.x, /2tc.v.= (A-v+B.vl /2,


(C/C++) c'x={z'.a+8.1<) /2, c.v= (A.v+B.v) /2,

Prin indllimea unui arbore cu redecine inlelegem numdrul.de muchii ale celui
b%10
be"10

mai lunj lanl format din noduri distincte care are una dintre extremitdli in
rdddcini arbdrelui. Scrieli care este inel$mea 9i care sunt frunzele arborelui
(6p)
descris prin urmitorul veitor "de ta!i": 16 ,6 ,5 , o , 6,4 , L,7 | .
Respuns corect: Arborele are inillimea 3 , iar
{runzele. acestuia sunt: 1,2,3,8

ou e! uo program l,aacat lclc++ cat6 cltegte de la lastalura dou6 n


naturals nenulo n gin (2Sn310, 23n510) gi care construiegte in memorie gi
afigeazd o matrice A cu n linii (numerotate de la 1 la n) n coloane (
Si
de la 1 la n) cu proprietatea cd fiecare element a., memoreaze cea mai
dintre valorile indicilor gi (l<i<n, xsj<ri). Mairicea se va afiga pe
cate o linie a matricei pe cete o linie a ecranului, elementele fiecarei linii

i j

separate prin cate un spatiu.


Exemplu: pentru n=4 gi n=S se va afiga matricea aldturatd.
(10p.)

A 002

l.

Cate grafuri neorientate, distincte, cu

varfuri se pot construi? Doud grafuri

(4pJ

se considere distincte dace matricele lor de adiacenle sunt diferite.


d. 54
C, 4,.
41.
b- zLt

Rispuns cor'ect:

(Fiecdrui graf ii corespunde o functie

f:t(i,j) li*j,

1<i,js8))(0,1) care asociaza perechii de varfuri distincte (i,j)


valoarea o daca nu exista muchie intre i la j, respectiv 1, dace existe
muchia ti,jl. Numerul grafurilor cu cate n vArfuri este egal cu numerul

1111
L222

r233
L234

,{a ll

Rezolvare, O posibilifate de construire a matricei este prezentata de secvenfA

acestor functii, adicd 2c:

fpentlu iel/n execute


| [pentru j<1.m execute
ll ra""a i<=j atunci AIi,jIi
altfel AIi, jIj

Variabila

pseudocod:

=2

2- =4ta\

a,

b 9i c lungimile
t, declarata alSturat, memoreazi in campurile
laturilor unui triunghi. Care dintre urmetoarele instrucliuni atribuie cAmpului p
(4p.)
al variabilei t valoarea perimetrului triunghiului respectiv?
lCiC"t-+J
{Pascal)

ilt
ilrr
llr

tlrp triunghi=record
a, b, c,D:

real

nd,

l-1

L
b.
0,

d.

var t: triunghi t
p.t: =t.a+!.b+t.b
D. t : =a. t+b. t+c . t

struct triunghi
float a,b, c, pt

'tt a+!.b+t.b
a. !r. t.=t.
b. !,. t=a. t,+b. t+c. t
c. t.p=t.a+!.b+t.c
d. t.P==9.".1.6*a..

t..D: =t. a+!.b+t. c

t.p=t.a+t.b+t.c

RAspuns corect: c

Se considerd o stive in care inilial au fost introduse, in aceast6 ordine,


elementele cu valorile 1,2 gi 3. Se noteazi cu AD(x) operalia prin care se
adaugi elementul cu valoarea x in varful stivei gi cu Er, operalia prln care se
elimind elementul din varful stivei. Asupra acestei stive se executd urmetoarea
(6p.)
secvenla de operalii: a.D (4 ), Er,rAD ( 5 ), Er,rAD ( 5 ) ; E,r Er,.
a) Care este valoarea elementului din varful stivei in urma executerii acestei
secvenle de

operalii?

(gP)

b) Care este suma valorilor elementelor aflate


acestei secvenle de operalii?
Rispuns corect: a)

4.

in stive in urma

executerii

(3pJ

2; b) 3.

in secvenla alaturate, variabila a memoreaze o matrice cu n linii 9i n coloane


(numerotate de la l" la n I o la n-1) cu elemente numere intregi, iar toate
celelalte variabile sunt intregi. 9tiind ce n este un numer natural par, nenul,
scrieti instructiunile ce pot inlocui punctele de suspensie din secvenla de
program alaturate astfel incat, in urma executdrii acesteia, sa se afigeze ultima
(6p)
cifre a sumei elementelor pozitive de pe liniak ( o<k<n) a matricei
(CiC++\
{Pascat)

a.

E := 0;
forj:=1tondiv2
begin

write

(E

do
end

s = 0;
for(j = Otj<n/2tj++,

t .............
(

pritrtf

)
"%d", E) ; lcou!<<s;

Rlapun. coract:
(Pascal)

(()/C n.J

lr rlk,Jl>0 th.n
If

rr.(s+alk,JI)

[k, n+l-j I >0


then

modt 10r

5,

l"

s3u(g+g[k,n+1-jI

AiIANTA

1,, (r tkl IJI >0)


r- ( r+r Ikl IJ] )t10r

nodl 10;

tkl In-l-J I >0 )


6= ( s+a lkl In-x-i I ] 110,
(a

Si se scrie un program Pascal I C/C++ care citegte de la tastature un


format din cel mult 20 de caractere, doar litere mici ale alfabetului
Programul determina transformarea cuvintului citit prin inlocuirea
vocale a cuvantului, cu un gir format din doud caractere gi anume vocala

de litera mare

corespunzetoare, restul literelor nemodificandu-se, ca

exemplu. Programul afigeazd pe ecian cuvantul oblinut, pe o singura linie.


considere
urnrucra vocale
vouarc [[erete
literele utlt
din lltutu[nea
multimea tare,rroru].
{a, e, i, o, u}.

Exemplu: pentru cuvantul

bacalaurgt se va afiga pe

baAcaAlaAuureEaAt
'var

string [20I i
i:bE/tet c: chir;

radLn(E); i: =1t
whlle i <= length(a)

voial nain(
do

begtin

if pos(eIil,'aeiou'
then
begin

)<>0

i:=upcas6(stil);
inser! (c, s, i+1) t
i:=i+1;

etrdt

i;=i+1;
endi

writeln
end.

(E

)
!

- de la fiecare nod numerotat cu un numer neprim i (i.>1) la toate nodurile


numsrotate cu numere ce apa4in mullimii divizorilor proprii ai lui i (divizori
dlferlli de 1 9i de r)
- de la nodul numerolat cu 1 la nodul numerotat cu 6
- de la tiecare nod numerotat cu un numer prim i la nodul numerotat cu i-1
Pentru graful dat, care este lungimea celui mai mare drum, format doar din
noduri

Glaful din enunt este reprezentat

Cite frunze are arborele cu reddcine descris prin urm5torul vector "de tati":

(6,5,5,2,0,3,3,3,8,7,7)?
1b.2c.5d'4

ln

t tpl ='\0'r atrcpy(B,t) i

tyDe

(4P.)

d.L

in desenul
aleturat. Cel mai lung lant format doar din noduri
distincte este: 15,4,2,L,6,31. Lungimea
acestuia este 5.

char
E [2].1,vI I ="aeioun, t [4].l t
int i, n,g=g;
cin. get ( s,21) , n=strlen(s),
for(i=0, i<n' i++ )
( t [I)++] =s Iil ,
if (strchr (v, E til ) )
t [p++l =toupper(s Ii] ),
cout<<E
)

distincte?

t,6b.5c.3

Rispuns corect b.

#inclutle <string.h>
#include <ct!E)e. h>
#include <ioatream.h>

BEin

mullimea arcelor formate doar din arcel:

(1

(C/C++)

E!

S consldere un graf orientat cu 5 noduri numerotate de la 1 la 5 9i cu

ec

Rezolvare:
lPascal)

t,

OO3

Respuns corect:

c.

(4pJ

(frunzele sunt nodurile: 1, 4, 9, 10,

xl)

declararea aleturate, campurile rr 9i y ale inregistrdrii pot memora


numeritorul, respectiv numitorul unei fraclii. Scrieli secvenla de instrucliuni
prin executarea cdreia se construie9te in variabila f o fraclie oblinute prin
(6p.)
insumarea fracllilor memorate in variabilele f 1 9i f 2.
(Pascat]

vat

fractie

=record
x,Y3 intseger ndt

\C/C++)

struct fracti,
{int x,yr lf 'f.L, f.2t

f , f,1", f,2 zf.ractii


Un respuns corect:
(Pascatl f..x.z= f1.x*f,2.y+fl.y*E2.xi f.v z= f!.v'f2.yi
(C/C++) f .x = f,,L.x'f2.y+fL.v' f2.x; f .Y = 11.r*s2." t
ln secvenla de instrucliuni de mai jos, variabila I memoreaze un gir de
caractere lormat doar din litere ale altabetului englez, iar variabilele i 9i n
sunt de tip inteser I int. gtiind ce in urma executerii secven,tei s-a afi$at
succesiunea de caractere eiedteal*, scrieti cafe este girul de caractere
(6P)
memorat de variabila s.

(Pn.scn/)

for Lr.l to t.ngth(r) do


tf, s ttl.',
thn {'rit(,*,)
eLse write ( , , ,elLl) i

lt,/t. t I
n.ttrl.n(.),
for ( 1r0, d<n, l++ )
if ta 1t1..'1'
cout<<'*,,I ctlntf.1.t6a., ' t '1t
J

1s6 cout<<'e'<<s H.l t

I Printf ( "ttctc",'',s ttt ),

Rispuns corect

! ideale

- elementele aflate pe diagonala

principali a matricei vor primi valoarea o


elementele de pe pdma coloane; cu exceptia celui aflat pe diar
principald, vor primi valoarea n
- elementele de pe a doua coloand, cu exceplia celui aflat pe

n-1

elementele de pe ultima coloane, cu exceptia celui aflat pe

principald, vor primi valoarea 1


Programul.va afiga matricea pe ecran, cate o linie a matricei pe
cale o linie a ecranului, cu c6te un spaliu intre elementele
fiecerei linii (ca ?n exemplu).
Exemplu: pentru n=4 se va afiga matricea aleturatd. (iOpJ

Rezolvare.

posibilitate de
construire- a matricei a este
prezentate de secvenla
pseudocod:

So considera un graf orientat cu 6 noduri numerotate de la 1 la G gi cu


nrulllmea arcelor formata doar din arcele:

de la fiecare nod numerotat cu un numdr neprim (i>1) la toate nodurile


numerotate cu numere ce apa4in mullimii divizorilor proprii ai lui (divizori
dlferifi de 1Si de
- de la nodul numerotat cu 1 la nodul numerotat cu 5
" do la fiecare nod numerotal cu un numdr prim
la nodul numerotat cu i-1
Psntru graful dat, care este lungimea celui mai mare drum, lormat doar din
noduri distincte, ce unegte nodul 5 cu nodul
(4pJ

i)

5.

principald, vor primi valoarea

A 004

032L
4021'
4301
4320

j1,n execute
l;pentru i1,n execute
n+1-j
ll ra".a iraj atunci ali, jlj]0
aLtfel aIi,
ilt
fPentru

ll

lr.r

l.a

Lr

b.3

i
1?

c.4

d.6

Rlspuns corect: b.
Graful din enunl este reprezentat in desenul aleturat.
Cel mai lung lan! format doar din iloduri distincte este:
{6,3,2, Ll.l-ungimea acestuia este 3.

CAte frunze are arborele cu redecind, cu noduri, numerotate de


descris prin urmatorul vector "de tati": (6,5,s,2,O,3,3,31?

b.6

laLla8,
(4p.)

d.3

a. (frunzele sunt nodutile:1,,4,7,9)


Se considere o stivi in care inilial au fost introduse, in
aceasE ordine, elementele cu valorile 1,2 gi 3, ca ?n figura
al5turatd. Se noteazd cu AD(x) operatia prin care se
adauge elementul cu valoarea x in vArful stivei gi cu Er.
operalia prin care se elimine elementul din varful stivei.
Rdspuns corect:

H.:

Reprezentali, dupa modelul aleturat, conlinutul stivei rezultat


in urma executirii secventei de operatii:
rD(4) TELTELTAD(5) ;EL? (6pJ

Rispuns corect: Continutul stivei, reprezentat dupa modelul dat, este:

in secven[a de instrucliuni de mai jos, variabila s memoreazd un Sir de

caractere format doar din litere ale alfabetului englez, gi o variabile de tip
integr I inL. Scrieti instrucliunile ce pot inlocui punctele de suspensie din

secventa de program aleturatd astfel incat executarea

ei sa

delermine

eliminarea tuturor literelor mici din girul s gi apoi afigarea girului oblinut. (6p.)

tPasca,

lCiC*+)

,l . -r .

while i<=Length(6)
writeln

a) t

alo

i=0;
whiLe (i<strln(E)

printf('%str,s); I

bout< <s;

Un

rllpun! corectr
(Pascall

((

. else L++;

5-

a 005

/ /)

'/(
j.f r ti.l Ln l'^, . .'z'1
//#lnclud. <ctlt).,h>
thn delete (E, i, L) tf(lElowr(rltl ) l -0)
stlcpy 6+1, d+I+1)
1s6 i: =i+1t

lntr-un graf neorientat cu 2o muchii, fiecare nod al grafului are gradul un numdr
nsnul. Doar patru dintre noduri au gradul un numdr par, restul nodurilor avand
gradele numere impare. Care este numdrul maxim de noduri pe care poate sd
(4p.)
la albd gralul?
16
10
35
d.

Scrieli un program Pascal I C/C++ care cite$te de la tastature un numer


n (23n324) gi construiegte in memorie o matrice cu n linii gi n coloane ale

12

elemente vor primi valori dupa cum urmeazd:


- elementele aflate pe diagonala secundard a matricei vor primi valoarea 0
- elementele de pe prima linie, cu exceplia celui aflat pe diagonala
vor primi valoarea n
- elementele de pe a doua linie, cu exceplia celui aflat pe diagonala
vor primi valoarea n-1

Rl!puns corect:

intre

elementele fiecerei linii (ca in exemplu).


Exemplu: pentru n={ se va afiga matricea aldturata. (10p.)

Rezolvare. O posibilitate
de construire a matricei a
este prezentate in secvenla pseudocod aleturate:

rPen!!u
| 6>entru

ll ra".a
ilt Lr
ll

il,n executa
j1,n executd

b.

Considerem nodurile grafului notate cu 1,,2,...,n, iar m=20 reprezintd


Numerot6m cu t,2,3, L
numirul muchiilor grafului. Fie d(i) gradul nodului
cglg a noduri care au gradul un numAr par nenul, celelalte noduri numerotate cu
6,6,7, .. ,n avand gradul un numer impar. Pentru a obtine un lraf cu numdr
maxim de noduri toate nodurile trebuie sd aibe gradul minim. Nodurile 1,2,3,4
pot avea gradul 2, iar celelalte noduri pot avea gradul L.

l'

- elementele de pe ultima linie, cu exc'eplia celui aflat pe diagonala


vor primi valoarea 1
Programul va afiga matricea pe ecran, cate o linie a matricei
4440

pe cate o linie a ecranului, cu cate un spaliu

b.

Cum:

Za(D=Zn

= 40 , atunci

4.2+>d(i)=

40

eLd(i\=32
l=5

n+I-"5=32+n=36

3303
2027
0111

d, declaratd aleturat, memoreazi in campurile a gi b letimea gi,


rospectiv, lungimea unui dreptunghi. Care dintre urmitoarele instrucliuni
atrlbuie campului arLa al variabilei d valoarea ariei dreptunghiului respectiv?
(4p.)
Variabila

iran+1-j atunci al i, j I n+1-l

(C/C+.r\

{Pascal)

altfeL al i,i1o

tl4) dt!Dtunghi-record

var

Itr
\I

t,
a,

a,b,arir:retl

d3

droDluaghi t

d.aria=d.a*d.b
rrh.d:=a.d*b.d
rrla.dsod.atd.b
al. aria: =d. ard.b

Elruct drDtunghi
( float a,b, arla;
ndi
ld,
a,

b.

c.
d.

d.arla==d.ard.bt
aria.d-a.d*b.d;
aria.d=d.a.d.bi
d.arla=d.ard.b;

Rispuns corect: d.
Se considerd un arbore cu redecine in care doar 13 dintre nodurile arborelui au
oxact 2 descendenli direcli (fli), restul nodurilor avdnd cel mult un descendent
(6p.)
direct (liu). Care este numdrul frunzelor arborelui?

Rispuns corect:

1{

(numerul frunzelor=numerul nodurilor neterminale+1 )

Fie s o variabile ce memoreaza un gir de caractere, c o variabild de tip ctrar,


lar t gi J doud variabile de tip inreger I int. Scrieli ins{rucliunile ce pot

lnlocui punctele de suspensie din secvenla de program aleturate astfel Tncat

executarea

ei sa

determine modificarea conlinutul girului

prin

interschimbarea caracterelor aflate pe pozilii simetrice fala de mijlocul girului


(primului caracter cu ultimul, al doilea cu penultimul, etc).

(6pJ

(Pascal)

t:.1r J r.lcigth

while i<J
begin

(O/(:t t)
(g

do

endi

Un respuns corect:
c:=s Ij ] r slil r=6tiIt

Ii] ; =s;
inc(i) r alec(j)t
5. Scrieti un program rascat I
s

1.0, Jrrtrl.n(r)
whtlc ({<J )
{ .........
c=Elilr s li
8[il=ct
i++; j--;

1=E

lil

A 006

-1.,

Care dintre urmetoarele expresii reprezinte un element

bidimsnsional

t. a [401
6. r[2,3]

3,3.3 4

(4p.)

{C/C++)

ilr

aI6

'71
aI10r5l

a,
c.

t5l t6l ;

a I40l
a 12l 13l

I5l t7l

b.

d.

a[10*51

(4p.)

eliminat ultimul element al Iistei?


5

(C/C++)

{Pascal)

whiLe

(...

)do
D ! =D^ .urmi
disDose(p^.urm) ,

fpentlu i1,n executS.


lppentru j1,m execute
d""e i<j atunci a li. jl j

llr
lt

tabloului

Se considerd o list5 liniare simplu lnlentuite, alocatd dinamic, cu cel pulin


doue elemente. Fiecare element al listei reline in campul urm adresa
elementului urmdtor din list5 sau nil lNttr,L daca nu existe un element
urm5tor. 9tiind ce variabila D reline adresa primului element din listd, care
dintfe expresiile urmdtoare poate inlocui punctele de suspensie in secvenla
de instructiuni de mai jos astfel incat in urma executdrii acesteia sd fie

44445

aLtfel ali,il+i

b.
d.

al

Rispuns corect: c

L2343
223L9

ll
lll Lr
ll

aldturat?

vara:arrayl1. .5, ].. .6l of intege4

i j

alSturatd:

declarat

(Pascall

c/q+? care citeqte de la tastature dou6


naturale nenule n gi n (2st!<10, .2<n<10) 9i care construiegte in memorio
apoi afigead o matrice A cu n linii (numerotate de la 1 la n) gi n
(numerotate de la 1 la rn) cu proprietatea ce fiecare element Aij
cea mai mare dintre valorile indicilor gi (13isn, l<j<n). Matricea se
afiga pe ecran, cate o linie a matricei pe cate o linie a ecranului,
fiecerei linii fiind separate prin cate un spaliu.

Rezolvare. O posibilitate de
construire a matricei a esle
prezentate in secvenla pseudocod

D^.urm:=ni1;
L p^ . ur:n^ .urm<>nil
b. p^ .ur:m<>nil
c, g< >ni1
d. D^.urnr^ .urm=nil

while (...

).

p=p->urmt
dLete D->urmi

| f,ree (p->urm);

- >urm=NULL

6. p->urm->urin!=tlULL
b. D->ur ! =Nt IJIJ
c. D ! =NI'IJIJ
d. D- >urm- >urm= =NI'LL

Rispuns corect: a

!,

Se considera un arbore cu -11 muchii. care este numerul de noduri

al
(6P.)

arborelui?

Rispuns corcct 12

a.

Se considerd un graf neorientat c cu 12 noduri si ? muchii. Care este numerul


(6p.)
maxim de componente conexe din care poate ii lormai graful c?
Respuns corect 8

[.

Se considerd un text cu maximum 255 de caractere in care cuvintele sunt


separate prin unul sau mai multe spalii. Primul caracter din textul citit este o
literd, iar cuvintele sunt formate numai din litere mici ale alfabetului englez.
Scrieli un program paacallc/c++ care citegte de la tastature textul 9i il

transiorme, inlocuind prima litere a fiecerui cuvant cu litera mare


corespunzetoare, restul caracterelor rdmanand nemodificate. Textul astfel
transformat va fi afigat pe ecran.
Exemplu: dace de la tastaturA se introduce textul: mare
Roau
se va aiiQa pe ecran:

Mare t'rig

frig

rosu
(1op)

\rqrudtJ

\\!/v+*)
#lnoluda< lortr.rn. h>

vrr .l.trlngf2t5l,
l,nrbltrr

brgln
rcadln(r)

nt.lengtb(r),

I [ 1t :.up6s361s

111 ;

for l,:r2 to n do
tf (g It-rl =' ')adt(sIit<>' ')
thB 3Ill :.uncage(eIil ) r

wrltoln
eld.

(E)

A 007

illnolud.<rtrr,ng. h>
voldl nrln( )
{ char r [?551 ,lnt l,n,
cin. grtllno ( r,256 ) r
a.stllen (r) ,
6l0l = s t0I -32,
for ( l-1t l<n; l++ )
tf, (g tt-11=-' '&&slll lr'
t III lrt Iil -32,

Care dlntre varlantele, de mai jos reprezintd declararsa eficiente 9i corecte a


unul tablou bidimensional cu xact 20 de elemente numere intregi cu cel mult

vrr
vrr
vrr
vrr

cout<<ti )

(4pJ

cll16 fiacar6?

(C/C++)

(Pascal)

inr a[2] [10],


float a [40] ,

arirray[l ..2,L..I01 of intgr,

a:array[1..40]of realt
a:array[1..2, 1..101of chart
a:arrayl1..40! of, intgert

char a[2] [10],


lRt I [l0l t

nlspuns coEct: a.
O listi liniari simfilu inlenluita cu cel pulin doue elemente, alocate dinamic,
reline in campul info al fiecdrui element cate un numer natural de maximum 4
clfre, iar in campul u! adresa elementului urmetor din liste sau nil lNULI,
dace nu existd un element urmdtor. Daca variabila D retine adresa primului
slement al listei atunci, in urma executerii secvenlei de program de mai sus se
(4pJ
afigeaze intotdeauna:
(Pasca|l
{C/C++)
white (p->urm! =riIU[L)
whLL D^.urm<>nil do
{if (p- >urm- >info<D->illfo)
bcgin
p- >urn- > info=p->info;
lf p^ .urm^.inf,o < p^.info then
p^ .uran^ . info s =p^ . inf,ot
D=D->urmt )
cout<<9->info; I
D3=D^.uJllr

.ndi
write (p^ . itrfo) ,
I,
b,
0,

d,

printf

(*%d",D->info) ;

cea mai mice dintre v?-lorile memorate de elementele din lista.


cea mai mare dintre valorile memorate de elementele din liste.
valoarea memorati de penultimul element din liste.
valoarea memoratd de primul element din listd.
Rispuns corect: b.
Se considgrd graful neorientat definit.prin mullimea vartu ot LL,2,3,4,5,6t
multimea muchiilor lt1-,2J ,12,31 , t3,41 , t3, s.l , a4,51 , tL,31 ,

gi

a2,51

, a2,4J, t4,51l. Care este numdrul minim de muchii ce pot

fi

eliminate gi care sunt aceste muchii astfel incat graful pa4ial oblinut se nu mai
(6p)
fie conex?
pot
De
ii
eliminate
este
2.
exemplu,
minim
de
muchii
ce
Rispuns corect Numirul
se pot elimina muchiile: t1,2t $i 11,31
Se considere graful orientat cu 5 noduri reprezentat
prin matricea de adiacenle aleturai5. Care este
numerul tuturor grafurilor pa4iale distincte ale
grafului dat? Doud grafuri pa4iale sunt distincte
dacd matricele lor de adiacenld sunt diferite. (6p.)

01010
00001
00000
00001
00000
00100

L
0

0
0
1
0

FtrlPunr corlc$ lzu ,


Gralul dat prin matricoa de adiacenld aro z arco. Flo(:llrui graf pa4ial
corespunde o funclie definita pe mullimea A a arclor grafului din
f sl){o,1} astfel incat f,(a)=O dace arcul 4er existA in graful
corespunzetor, altlel f (a) =0. Numerul grafurilor pa4iale ale grafului cu ?
(card(A)=7) este egal cu numdrul acestor functii, adicl z'Itti(tt =21 =128
Se considere un lext cu maximum 255 de caractere, format din litere mici
alfabetului englez Si spalii. Textul conline cel pulin o consoane. Scrieli
program paEca:. tc/c++ care citegte de la tastature textul gi apoi detern
transtormarea acestuia, eliminAnd numai ultima consoana care apare in
ca in exemplu. Programul va afiga pe ecran iextul oblinut.
Exemplu: dacd de la tastature se introduce textul: rnare frig saci

S.

pe ecran se va afiga:

A 008

6z

b.2

begin
delete (s, i, 1) rbreak
eIrd;

variabila E memoreaze girul de caractere

\tr/t2++l

h>

voitl nain ( )
(char E[256], vll=,' aiou,, i
int 'n, i;
cin.getline ( s,255) t
n=strlen(6),
for ( i=n-1; i>=0; i-- )
if,( strchr (v,6Iil ) ==5utra)

lPasca,

de1et6(s,3,2)t
write(8, ' r, Lngth(s) ),

abcalefgh?

(6pJ

(CiC-r")
(
stEcDy 6+2, s+{ ) t

cout<<E<<' "<<Etrlan(s),
lDrintf ("%s %dt-,a,strLn(g) ) t

Rispuns cotbct alrefgb 6


intr-o listd liniard simplu inlanluite, alocatd dinamic, cu cel pu,tin 4 elemenle,
fiecare element reline in campul unn adresa elementului urmdtor sau
ni 1",/NUr,r, dacd nu existd element urmitor, iar in campul info o valoare
intreagd. $tiind ca variabila D retine adresa primului element din liste, inlocuiti
punctele de suspensie cu expresiile corespunzetoare, astfel incat secven,ta
aleturatd sd calculeze in variabila s suma tuturor valorilor elementelor listei.
(6p.)
(C/C**)
tPascaf)
3= ..-..i
a: =..--i

(strcDy( E+i, s+i+1) ,break; l


cout<<Ei

writeln(s)
nd..

d.4

#includ<s!ring.

(pascat

v:=r aeiou ! i
for i:=n dorunto 1 do
if Dos(slil,v)=0 then

c.

#includ.e<iostrea.m. t'>

Rezolvare:

bgin
readln(s) ;n:=length(s) t

nod listl
Lr 2,6,5
2: 3
3: 1
4: 6
5: 6

Respuns corect: b
Se considera un gral neorientat cu 50 noduri gi 32 muchii. Care este numerul
(qp)
maxim de varfuri cu gradul 0 pe care le poate avea gratul?
b. 40
c. 41
d. 50
Respuns corect c
Ce se aligeazd in urma executirii secvenlei de program de mai jos, dacd

nare frig sai

var E,v! atringi


i, n3 integeri

Se considerd graful.orientat reprezentat prin listele


de adiacenle alSturate. Cate noduri au gradul
(4pJ
oxtern mai mare decat gradul intern?

whil ....-

alo

begitr

. urmi
a8=s+D^.info

D: =D^

end;

write(s),
Rispuns corcct D^. info
D^.ulm<>ni1

l.

Scrieli un program pascal

while ( ...... )
{ D=D->urmi

s=s+D->irfoi

)'
cout<<si I Drintf

(..%d,,, s)

p- >info
D- >ulm ! =NIILIJ

lclc++ care citegte de la tastaturd doue numere


naturale a gi p (2SnS20, 1SpS20) Si construiegte in memorie un tablou
bidimensional cu n linii gi D coloane. Tabloul va ti construit astfel . incat,
parcurgand tabloul linie cu linie de sus in jos 9i fiecare linie de la stanga la
dreapta, se se obline girul primelor nrt) pitrate perfecte impare, ordonat
strict cresc;tor, ca in exemplu. Tabloul astfel construit va fi afigat pe ecran,

vv vere ull oPstru


elmentol flecerel llnll.

Exemplu: pontru

r.2, Dr3 6e va aflga

aleturat:

Rezolvare: O posibilitate de construire a


pseudocod:

k1
rpentru ieL. n executi
I pentru j1.p executi
ll eti,51g1"*L

ll kk+a
Itl
l.a

19

25
49 81 121
(1op)
matricei este prezentat5 de
tabloul

000

Oonslderand declararea aliturate, care dintre urmdtoarele secvente de


Ifirtrucliuni realizeazd in mod corecl citirea de la tastature a valorilor'celor
doud campuri ale variabilei x?
.
(4p.)
(PascaD

lyD. D-rcord
a, b r integer
Gnd;

xlpi

r.rd (x. a, x. b )
rard (a.x, b.x)

rard(a->x,b->x)

rrrd(x)

atruct {
int ai
in! b,
Itxi

{CiC++)

cin>>x.a>>x.b; lscattl.*64 ,&r..a, &x.b) t


cin>>a.x>>b.xi I Ecanf ( u%d?d/, &a.x, &b.x),
cin>>xi I Bcanf("Zd-, &x) t
cin> >a->x>>b->x; I
acanf ("%A*Aa ,&a->x, &b->r<) i

corect: a.
lntr-o listd liniare simplu inlenluite, alocatd dinamic, fiecare element retine in
cempul info o valoare intreaga, iar in cAmpul ur adresa elem6ntului
urmdtor din lista sau nil/Nulr, dace nu existd un element urmetor. Variabila p
rcllne adresa primului element din liste. Lista conline, in aceast5 ordine,
pornind de la primul element, valorile: 2, 3, 4, 5,6, z, g. Ce se va afiga in
urma execulSrii secventei de tnstructiuni aldlwat{?
(4p.)

vhlte

(Pascal)

(C/C++)

(p^.urm<>niL)
whil.e (D ! =NI'I,IJ &&D->urm! =NUIJJ )
.nal(D<>niL) ato begin
{
write (p^ . info, ,. r) t cout<<p->info; I
D^ .urm: =D^ .urm^ .urmi
Driotf ('%a1,,,D->info) ;
p->urn=p->urln->urmi
D:=p^.urn

and,

246

D=p->unnt )

b.2468

s,248

corect: a.

d.258

So considerd un grbf orientat cu 6 noduri care are urr.ndtoarele proprietdli:


Buma gradelor externe ale tuturor varfurilor grafului este egale cu 5.
. 6unt numai 3 varfuri care au gradul intern egal cu 1

Care este valoarea maxim5 pe care o poate avea gradul extern al unui vrirf djn
oraful
(6p.)

dat?

corcct 4

Se consideri declararea de maijos:

lPascat)
1c/c**1
a,x3 string[50L
I char sl50l, xI50l;
Ce se afigeazi in urma executdrii decvenlei de program scrisi aldturat dace
variabila s memoreaze girul abcdef g?
(5p.)

var

Pd,soit4

l(;/(; t t )

xtrcoDy(r,5,3),
delete(e,5,3 ) t a.-a+'t23' +x,
write(s),
Rispuns corect alid123ef g

5.

c 010

aurcDy(x,r+41),
cE\cay (.+4, "I23" I t
atrcat ( s, x) ,

cout<<si I Drintf

(,,%s,,.

tabloului gi apoi afigeaze pe dcran elementele primului patrat


separate prin cate un spaliu. Petratul este parcurs in sensul acelot
ceasornic incepand din collul sdu stanga-sus, ca in exemplu. Primul
concentric este format din prima gi ultima linie, prima gi ultima
tabloului.

|
iroijl I

Exemplu: pentru n=5 gi tabloul aleturat, se va afiQa:

L2345L6276s43;;;'

|
|

!::2 3 4

ezasr

234s6

78913
3 4 s 67

Rezolvare: O posibilitate de parcurgere gi afigare a elementelor primului


concentric al tabloului bidimensional A esle prezentate de secvenla pseudocod:

fpentru i1,n executi scrie A[]., il


la

Eentlu

fett.o

i2,n

execute

(C/C++)

(Pascal)

Se consider5 tabloul bidimensional cu n linii gi n coloane ce conline


naturale cu cel mult patru cifre fiecare. Scrieli programul pascal I C/C++
citegte de la tastaturd numerul nalural n (25n323) Si cele n*n elemento

Eentlu

oonsldrand declararea aletufate, care dintre urmatoarele secvente de


l nlrucliuni afigeaz; valorile memorate in cele doue campuri ale variabilei x,
(4pJ
rbparat printr-un spatiu?

scri Ali,nl

atruct

lypa Dorecord
a,b! intger

int

endt

vtr x:Di
irl.to(x.a,'

',x.b),
rrlt6 (a.x, ' ,,b.x);
;rlt (x)

vri,te (x->a,

at
int b,

)xt
a. cout<<*.a<.' "<<x.bi
printf ( "e6d %d", r.,.a, x.b) t
b. cou!<<a.:l<<" '..b.*;
printf ("%il %d", a,x, b.xl ,
c. cou!<<xi I Dri'reLf ("k1" , x) t
d. cout<<a->:t<</ -< <b->x;
printf ("%d d", a->rt, b->2<) i
I

' ' ,'{->b),

corect: a
lntr-o listd liniar5 simplu inldnluita, alocate dinamic, fiecare element reline in
cAmpul inf,o o valoare inheagi, iar in cAmpul urm adresa elementului
urmdtor din listd sau nil^.{or,L dacd nu exista un element urm5tor. Variabila
D reline adresa primului element din listi. Lista conline, incepand de la primul
olement, ?n aceaste ordine, valorile: 2; 3, 4, 5, 5, 7, 8. Ce se va afiga in urma
(4p.)
oxecutdrii secvenlei de inshucliuni aleturatd?

in-1,1,-1 executi Ecrie Aln,il

while

ien-l,2,-1 execut; scrie AIi,1l

do beEi!

(D^

(C/C++)

\pasca,

.urm<>nil

) andl (9<

>ni1)

D^.u:arIr3 =p^.urm^.ur ri
D ! =D^ .urflri

write(D^.info,'
endt

1,2s8

while
{ D- >urm=p->urm->urmi
(

b.248

p- >urm ! =NITLL&&P

p=p->urmi
cout<<p->inf,o<<

'

! =NULIJ )

'i

')

6.2468

d.458

corect: d
Se considerd un graf neorienlal cu 80 de noduri $i 3150 muchii. care este
num6rul de muchii ce pot fi eliminate astfel incat graful pa4ial oblinut se fie
(6pJ
arbore?
corect 3081
Ce se va afiSa in urma executdrii secvenlei de instructiuni alSturate dace
variabila s memoreaz5 girul de caractere abbacdde, iar variabila i este
(6p.)
de tip intreg?

\r (reu.r,/

I r.1r

wtrll. l<L.ngth(s) do
lf r ttl.s Il+11 th.n
tllt ( E, l, 1)
ls
l: =l+1;

wrlte (s) ,

Rispuns corcct lbacdl

5.

fleberei linii.

re
Exemplu: pentru n=2, D=3 programul va afiga I o
tabloul aldturat:
| 35 64 100
Rezolvare: O posibilitate de construire a matricei este prezentate de
pseudocod:

k0
rpentru i1, n execute

pentru j1,D

ll lri, jt<t *r.


ll kk+2
llr
ll

li

executa

11000
00011
00000
01010
1 10001
acel i 01000

conslderd graful orientat reprezentat prin matricea


aleturate. Care este lungimea maxime a
unul drum de la vArful 4 pan5 la varful 5 lormat din
yldurl distincte doue cate doud (lungimea unui drum

fu rdlaconla

altr

'

Scrieli un program paEcal lc,/c+. care citegte de la tastature doue


naturale tr 9i p (23n320, r3p52o) 9i construiegie in memorie un
bidimensional cu n linii gi D coloan. Tabloul va ti construit astlel
parcurgand matricea linie cu linie de sus in jos gi liecare linie de la
dreapta, se se oblina girul primelor n*D petrate perfecte pare, ordonat
crescdtor, ca in exemplu. Tabloul astfel construit va fi afigat pe ecran,
linie a tabloului pe cate o linie a ecranului, cu cale un spatiu intre

A 011

i..0 I

whll. (i<.trLrn(r) -1)


tf (.ttI...tl+11 )
rtrcpy B+1, r+l+1) ,
e1s i.-1+1,
cout<<8, I prlntf, ( "t.u,

gale

cu numSrul de arce care compun

0
0
0
0

(4pJ

drum)?

I'l

b.3

ilrpuns corect: a (drumul

d.s

c. 1
care trece prin nodurile

4,3,L,2,6)

Clle graluri neorientate, distincte, cu 5 varfuri, se pot construi? Doua grafuri


(cpJ
l. consiCere distincte dace matricele lor de adiacenle sunt diferite.
d.
4"
c,
e"
b.
5'1
t,5'

ilrpuns corect c
(Flocdrui graf ii corespunde o funclie
otre asociaza
muchie de la

f:{(i,j) li+j, 1<i, j<s}tt0,1}


perechii de virfuri distincte (i, J ) valbarea o dace nu exista
la

j,

altfel 1. Numdrul grafurilor cu cate n varfuri esle egal cu

adice 2c; =27 )


Cc ee afigeazi pe ecran in urma execut5rii secvenlei de program alSturate, ln
oare variabila E memoreaze un gir cu cel mult 12 caractere, iar t este de tip
(6p)
lntreg ?
numarul acestor funclii,

(C/C++)

(Pascall

tr.'abracadabr!',
vrlteln(lenEth(s) ),
I r.1;
vhlle l<glcngth(e) alo

lf

[l].ra'

d1et6 (s,
.116
I t.1+1;

")

dout<<strln (s) r I
Drlntf, ( "9Bd",.tr1n(E)
whilo ( l<.trln (s) )

),

int lEo,

thtr

tf

t,1)

rrltln( ' ' ,.1 t

ta tt1==

'"'

strcDy(t+1,6+l+1),
elB lrl+1
cout<<n n<<gt
Drintf (n %e .sl t
I

rL
brcdbr
(C/6++) 11 brcdbr

Rf8puns corec,t (Pascal)

strcDy ( 3, abrrcadabra
u

lntr-o listd liniare simplu Tnlenluite, alocatd dlnamic, cu cel pulln 3 nodurl,
flscare 6lem6nt relln Tn oampul nr un numer real, lar Tn c6mpul ufir adresa
urmetorulul element din llste sau valoarea nil /Ntr,L in cazul in oare esle
ultlmul nod al listei. Dacd p reline adresa primului element dln liste, scrieli o
oxprosie parcal lc/c++ a cerei valoare este egale cu suma valorilor reale
(6pJ
relinute tn prlmele trei nodurl ale
Rlspuns cotcfi (Pascall g^ .nt+D^ . ulm^ .nreD^ .trtn^ . utrt[^ . trr

listei.

(C/C++) p->rr+D->u!tn->[r+D->u:lm->urm->ar
Scriefi un program pascallc/c++ care cite$te de la tastature doud valori
naturale nenulengi n(m510, n310) gi apoi mrn numere naturale nenule cu

8.

Scrlsll un program FascaLlc/c++ caro cllagte de la ta8taturA


naturalo ngnul ngi n(n310, n310) gi apol mrn numre naturale
cel mult { cilre liscare, reprezentAnd olemontale unel matrice cu n
coloane. Programul determind apoi valorile minime de pe fiecare
matricei gi afigeazd pe ecran cea mai mare valoare dintre aceste minimc,

(s e s l z\
Exemplu: pentru nF3, o=s 9i matricea
, l', , ,o l, ,"
lg 13
7 2 3)
fs

ecran valoarea 5 (cea mai mice valoare de pe prima linie a matricei


cea mai mici valoare de pe linia a doua este d, cea mai micd valoar
linia a treia este 2. Cea mai mare dintre aceste trei valori este G)
Rezolvare: Se parcurge matricea a pe linii gi pentru fiecare linie se
valoarea minima. Se compare aceaste valoare cu cea mai mare
tuturor minimelor ob_tinute anterior. O posibild implementare a acestei
este prezentate de secventa pseudocod:

uax0

fpentlu i1,m

A
tlll

012

graf orientat oste reprezentat prin

mntricea de adiacenla aldturata. Care


(lhtre verfurile grafului au gradul
(4PJ
txtorior un numdr

impar?

a. 1,3,1,5

c. L,4,5 ' 6

d, 2'3,5

ilspuns colect: b
lnlro listd liniar5 simplu inlenluitd, alocate dinamic, fiecare element reline in
oempul inf un numdr intreg, iar in campul urm adresa urmetorului nod din

nil

lNUI,L in cazul ultimului nod al listei- Adresa primului element al


llstei este relinutd in variabila prirn, iar p este o variabile de acelagi tip cu
Drtn. Dace in listA sunt memorate, in aceastd ordine, numerele 1-,2,3, 4 ca
tn figura de mai jos, care va fi conlinutul listei Tn urma executdrii secvenlei de
lht6 sau

lnstructiuni

executE

b. 2,3 ,4 ,5

01L000
001101
110100
0000L0
010000
0 L 0'0 1 0

alaturate?

(4P)

I nina Ii,1I
I rpentru j( 2, n execute
I I ra""a eti,jl < nin atunci ninati,jl

llrr

lrl
I ra""a min > max atunci nax
lrl
'l

gcrLe na:r

(Pasca\

nin

tClC++)

p=primt

-prim;

prirn:=p^.urm;
. urm: =!i1i
prim^ .urm^ .urm^ .utm: =P;

D^

b.2341

^.L324

prim=p->ul.mt
p- >urm=NttIJJ,'

prin->urm->urm->ur rl9 i

c.41-23

d'L432

Rispuns corect: b
Pentru arborele cu redecin5, cu 9 noduri, numerotate de la 1 la 9, avand
urmetorul vector de,,ta!i" tata= (8,7 ,6,5.7 ,7 ,9, o,8 ), care este radecina
(6p.)
arborelui gi care sunt descendenlii nodului z?
Rispuns corect:

Redecina:

Descendenlii direcli ai nodului

7: 2,3,4,5'6

Scrieli ce se afigeaze pe ecran in urma executerii secvenlei de program


aleturate, in care variabila s memoreaze un gir de cel mult 12 caractere, iar
(6p)
variabila i este de tip intreg?

rdsLi ,

\t./L' t

! t r ' Lnlormatlca, ,

wrtt.ln(Lngtsh(I) ),
for i:=1 to Length(s) do
if pos(EIil,'aiou' )>0
then

chat r t131 rtrlnf,ormati.cin


cout<<rtrlan(a),
I Drinlf (ntd',strlen(r)

for
Ll

Rispuns corect (PascaD rL

s til ) t
slil= '*"
cou!<<rr n<<5i
I printf(" %a",s),

(C/C++)
Secvenla de program inlocuiegte fiecare vocald litere micd cu *

Scrieli un program pascat lc/c++ care citegte de la tastature un numdr


natural n (2<n<25) gi apoi construiegte in memorle o matrice cu n linii gl
coloane, numerotate de la 1 la n, ale cdrei elemente primesc valori dupd
urmeaze: elementul din linia i gi coloana primegte ca valoare ultima
produsului
(1<i<n 9i x3j<n).
Programul va afiga matricea astfel construitd pe ecran,
L234
cate o linie a matricei pe o linie a ecranului, elementele
246A
fiecerei linii fiind separate prin cate un spaliu.
3692

i*j

4e26

Exemplu: pentru n=4 se va afiga matricea al5turate.

Rezolvare:

posibilitate de construire

secvenla pseudocod:

i1, n executd
fpentru
I r;pentru jl,n execute
a Ii, j J i* je.1o
ll
Itr
lt

{;!rn esto vectorul "de tali" pentru arborele


tllllclnd din figura

cu
(4p.)

aldturata?

0057651

b. 1007650

?t50{54

d.7 45 0457

ilrpune corcct c

*nf*lmrE*c*
fL *nf,*rm*t*c*

5.

(l=0, L<atrln (E), l-++l

(Etrchr( I'aeLou',

Elil:='*"
writeln( ' ,, E) r.

A 013

(1op)

matricei este prezentatd

O llstd liniard simplu inlentuite, alocate dinamic, memoreazd in campul ret al


ll.cdrui nod adresa urmetorului nod din listi sau ni1 lNsffi in cazul in care nu
rxl8td un nod urmetor. Lista conline cel pulin 5 noduri, adresa primului nod
b sunt de acelagi tip cu D.
r.to memorata in variabila p, iar variabilele a
Adrosa cerui nod va fi memorate in variabila b, dupe executarea secvenlei
(6p.)
rldturate de program?
(C/C++)
(Pascal't

9i

lrrD,
Yhile

a4t

brgln

t b=ir a=a->refr

a:=a^.ref, i ndt

b! =at

r.

whiLe (a->ref t= Nt[ilr)

a^ .ref,<>nil do

b. Penultimul nod al listei


d. Nodul al treilea din liste

Nodul aflat in mijlocul listei

o. Ultimul nod al listei

R[Bpuns corcct b
Scrieli listele de adiacenla prin care este reprezentat un graf neorientat conex,
la 6, care este eulerian, dar NU este
cu 6 noduri, numerotate de la
(4pJ
hamiltonian.

O solulie posibila este: L.2'4t


5!3,5t
421-'3i
5:3, 5,
3t2,4,5,5t
Scrieli ce se afigeaza pe ecran in urma executdrii secvenlei de
Rlspuns corect

alatuiate, in care variabila


variabila

este de tip

21,

,.3

program
memoreaze un gir de cel mult 12 caractere, iar

intreg.

(Pascal)

r!=rabcdfghoidl' ; i:=1;
writ (length (s ) ) t
while i<=length(s) tlo

if pos(elil,'aeiou')>0
thn dlIte (4,1,1)
else L ! =i+1t
writeln( | t,al ,

Rispuns corect: 11 bcdlf,shdl

(6p)
(C/C+*)

char I [12] =r'abcdlefghoiil",


int i=0;
cout<<Etrln

s)

Drintf "%d", 3tsrlen(s)


(

!*rl1 (i<strlarr(E) )
L!
(strchf (.aeiou",3lil

) t =NItr,I,)

EErsIry(s+i, s+i+1)
elae i++1
couE<<r r<<Br'l
prlntf (" %s't t
's)

{!u nl. ufl program parcrL lc,/c++ care clteglo d6 lA teStAtuf[

Un

naturel n (e<n<25 ) gi apoi construlqgte ln memorle o matrice cu n


coloane, numerotate de la 1 la n, ale cdrei elemente primesc valori

a o14
llo con8idera un graf neorientat cu 5 noduri, etichetate cu literele a, b, c,
l, ., [n care orice nod etichetat cu o vocal5 este adiacent cu toate nodurile

urmeazd:

- elementele aflate pe diagonala

- elementele de pe coloana

i;

au valoarea egald cu
- elementele de pe linia
valoarea egald cu i.

secundari sunt toate nule.


(1SiSn), aflate deasupra diagonalei

n-i+x (l<iSn),

rllchotat cu consoane gi numai cu acestea, iar orice nod etichetat cu o


0onsoan5 este adiacent cu toate nodurile etichetate cu vocale. CAte muchii
(4p.)
116 acest gral?

aflate sub diagonala

Programul afigeaz5 pe ecran malricea construitd, cite o linie


a matrlcei
malricei pe cate o linie a ecranului,
ecranului, elementele
elementele fiecerei
fiecirei linii
tinii
fiind
fiind separate prin cete un spaliu.

spaliu.

r.
I
I

Exemplu: pentru n=4 se va afiga matricea ateturati.


aleturat;. (10p.)
(fOp.)l
il:qplu,pentru
Rezolvare:
O posibilitate de construire a matricei este prezentlia

pseudocod:

12

d.3

c.4

b.5

ilrpuns corect: b
lntr-o listd liniard simplu inlenluit5, alocate dinamic, fiecare element reline in
o|mpul lnf un numer intreg, iar in cempul ref adresa urmitorului nod din
llrtd sau nlL/ Nux,L in cazul ultimului element al listei. Adresa primului
al6ment al listei este relinutd in variabila Drin, iar variabila D este de acelagi
llp cu prirn. Dace in liste sunt memorate, in aceaste ordine, numerele 3, 5,
la, 20, ce se va afiga pe ecran in urma executerii secvenlei aleturate de

12 t

12Q
102

01tr
Oe

rpentru i1,n executi


I lpentru ji,a+1-i executi
| | raaci i+j=111 atunci'Ali,jleo
| ! I altfel AIi, j]j; ]tn+1-j, n+l-itj

program?
(Pasca|
pr.prLn;

bcgin
lr p^.inr noal 5<>o then
s: =g+D^. inf;
g:=p^.ref
.ndr
rrl!6Ln(' ',s),

lt if
B=3+D->inft
I
l
o=n->ref;
I
lcout<<ai
ll Drirtf("*dn,s)t

(4p)

nhllo D^.rf<>NIL do

llr.
lrl
l1t

b.25

..21

G/C++)

|n=nriw(D- >rf t IrIr)


=Nt
l!thi1 (p->inf%5==o)

c.5

d.46

Rlspuns corect: c

Ce se afigeazd pe ecran in urma executerii secvenlei de program alaturate, Tn


9i
care variabila E memoreazd un gircu cel mult 10 caractere' iar variabilele
(6P')
J sunt de tip inkeg?

(Pasca,

{C/C++}

char s [ 111 = "sbcducdai,


cout<<strl,e! ( s) t
I nrintf ( "*d" , strleD ( a ) ) ,
int i=0, i=strlen(s) -1,
while (i<j )
if (stil==s151'

ar-'abcduecda't
1t =1, j:=Length(E),
wrlceltr ( Iensth ( s) ) ,

Yhlle i<j alo


tf 8[i]=sljI

the!

begin
alelete (8, i,1) ,
atelete ( s,
nd

i,1) ,

j:=j-2

elae
begia

i:=i+1; i:=j-1
trlite].n (s) ,
ndi

Rispuns corect: 9 balual

l,

strcpy ( E+j,3+j+1) t
strcpy ( s+i, s+i+1) t

j=i-2t
l
e1s
t i=i+l; j=j-1; )
cout<< " "<<gi
I printf(' %st.al t

Care sunt nodurilor de tip frunzd ale arborelui cu red5cind, avand 7 noduri,
numerotate de la 1 la 7, si urmetorul vector "de ta!i": (5,1,5,1,0,7,5)?

(6p)

rlarPun! G01!cI: zrit,.lro


5.

Scrieli un program paacallc.rc++ care cilegte d6 la tastatura un


natural nenul, cu maximum I clfre, construiegte in mmorie gi afigeazd r
pe ecian o matrice petratica, avand numerul de linii gi de cbloane egal

A 015

l,

numdrul de cifre ale numerului dat, completate cu cifrele numerului citit.

Astfel, elementele de pe prima coloane a matricei vor fi


toate egale cu cifra unitallor numerului dat, elementele
de pe a doua coloane a matricei vor fi toate egale cu
cifra zecilor numerului dat, gi aga mai departel ca in
exemplu.

Exemplu: dacd se citegte numerul 1359, matricea


construitd va fi cea

aleturate.

(10p.)

r;
ln

t'

JJ
{?

I
l.l

l*
l1t

Ari, j r x%10

(C/C++)

(Pasca0
p

t.Dri:n;

wtrlLe (p^.inf notl 2=0)

JJ

(p<>Mr,) (lo

I!

Rezolvare: Algoritmul descris in pseudocod este:

cite9te x
, n0; yx
fcat tirE) y>0 executa
Itt nn+1;yIy/1OI
rpentru je1, n executl
fi)ntru i l,n executi

lntr-o liste liniard simplu inlantuite, alocate dinamic, fiecare element reline in
cAmpul ref, adresa urmetorului nod din liste sau nit /Ntr,r. in cazul ultimului
elsment al listei, iar in campul inf un numdr intreg.
Adresa primului element al listei este relinutd in'variabila prin, iar p esteto
variabila de acelagi tip cu prim. Ce va afiga pe ecran secvenla aldturatd? (6p.)

p=prirn;
and

p:=1l^.reft
D<>NIL

th6n wliteln(D^.inf)
1se $TitIn( 'NUr ) i

while ( (9- >inf%2==0

) &&

(!' ! =NUIJIJ) )
D=D->reft
if (p r =NI'I,L)
.otrg3a 1p->inf);

printf ('%at",D->inf ) ,
cout<<"Nu"i I printf("NU") t

el,se

a. Toate valorile impare din liste dace

astfel de valori existe gi NU in caz

a.

Prima valoare impard din liste, daca


aceasta existe 9i NU ?n caz contrar.

b. Prima valoare pare din liste, daca


b. Toate valorile pare din liste daci aceasta existe gi NU in caz contrar.
astbl de valori existe gi NU in caz c. Toate valorile impare din liste dace
contrar.
astfel de valori existe 9i NU in caz

conlrar.

c.

t*zrol

Prima valoare impard din lista, dacd


aceasta existd Si NU in caz contrar.

scrie matricea A

d, Prima valoare pare din liste, dacd


aceasta exisld gi NU in caz contrar.
Respuns corect: c.

contrar.

d. Toate valorile pare din list5 dacd


astfel de valori exista $i NU in caz
contrar.

Celi frati are nodul L din arborele cu rddecind cu ? noduri, numerotate de la 1


(4p)
ta i, avAnd urmetorul vector "de tali":

G,r,5,L,0,7,51?

a.3

b,

c.0

d.2

Raspuns corect d

l,

Ce se afigeaze pe ecran in urma executdrii secvenlei de program aleturate, in


care variabila s memoreazd un gir cu cel mult 10 caractere, iar variabila este
(4p)
de tip intreg ?
(C/C++)
(Pasca,

i:=1t s: = 'abaemiut' t
whiLe i<=length(E) alo
if,

(DoB (s

Iil ,raeiou')>0)

then
begin
ilaler ( s, i,1) r i:=i+1
esd

eLge i: =i+2t
writeln(' ',E),
Respuns corect:

9 beqltut

i=O; char s [11] = " abaemeiut n t


cout<<Etrlen (d ) i
I Drirtf ( "%illI strle!(s) ) i
white (i<Etrlen(B) )
if
( Etrchr (
"4'eiou", B Iil ) ! =NULL) )
{ slrcDy(3+i, E+i+1) , i=i+1, }
lEe i=i+2;
cout<<n "<<ai
I Drintf(" %8".sl ,

etr uu urut'lu grurut nBorlenral cu u noour, numorotalt oo la 1 la g,

t1,21,

tl,6t

t5,51 , I7,81

5.

gl

, tL,71,12,31 , t2,6), t3,61 , t3,{1, r{, st , t4,8J,

A 018

Care este gradul minim al unui nod din acest gral? Care

nodurile care au acest grad minim?


Rdspuns corect: Gradul minim:2, Nodurile cu grad rhinim: 5, ?, 8

Dace n este un numdr impar mai mare decat ?, un graf neorientat cu n


noduri, in care liecare nod este adiacenl cu exact n-1 noduri, este

Scrieli un program pasca\lc/c++ care citegte de la tastatuE un numir natural


exact 5 cifte gi construiegte in memorie o malrice petrate cu 6 linii gi 6
numerotate de la 1 la 6, formatd astfel:

lntotdeauna :
r. arbore
c. graf neconex
corect: b,

- elementele aflate pe diagonala principale sunt toate nule.


- elementele de pe linia 1, aflate deasupra dlagonalei principale precum

elementele de pe coloana 1, aflate sub diagonala principale au toate valoarea eq


cu cifra unitdlilor numdrului citit;
elementele de pe linia 2, ailate deasupra diagonalei principale precum
elemenlele de pe coloana 2, aflate sub diagonala principale au toate valoarea eg

(10p

matricei pe cate

o linie a ecranului, elementele de

pe

aceeagi linie fiind separate prin cate un spatiu.

Exemplu: dacd

se

citegte numerul 28?31 matricea

construite va ft cea scris6 aldturat.

0 1
1 0
L 3
1 3
L 3

1 3

111.

7,9 2

cite$te n
rpentru j1,6 executa
I ppentru i j+1, 5 executd
ll AIi,itn%10, A ti, it Ati, i l

lh

lA{j,jl0,
l.l

n tnl10I

Ecrie matricea

var

(C/C++)

(PascaI
lr: rcord

atruct {float mGttiat


ilt varatai ] xt

nedia: real i

varsta:b!'te
end;

tlzpe x=lecord
media

Etruct x {fIoat nediat


l"nt varsta, ) i

!lealt

varsta:bYEe

Rezolvare: Se va construi o matrice A simetrice fafd de diagonala principala.


posibilitate de construire a matricei este prezentate de algortimul pseudocod:

Care dintre urmeloarele variante reprezintd o declarare corectd pentru o


variabili x care memoreaze simultan varsta in ani implinili 9i media la
(4pJ
bacalaureat a unui elev?

3333
07't 7
70LI
7 802

(4p.)

b. gral eulerian
d. graf aciclic (graf care nu conline nici un ciclu)

etdt

float !r.Bediat
int' *.vatBtli

var x.media: real;

vargta i b't'ta ;
tyDe eLev=record
x.media: real t
x.vargta !byte
x

Etruct elv(float x.mediat


int x.varsta) t

end;
corcct: a.
intr-o liste liniare simplu inlen,tuite, alocate dinamic, fiecare element conline in
cAmpul nr un numer real, iar in campul urn adresa elementului urmetor sau

pulin doua
lNrnL dace nu existe un element urmetor. Lista are cel
elemente, iar variabila x memorcaze adresa primului element din li$e Cu ce
pot fi completate punctele de suspensie din secvenla urmetoare, astfel incat
in urma executdiii, se afigeze cuvantul ADEVATAT dace media aritmetica
dintre valorile campului nr ale primelor doue elemente din lista este mai mice
sau cet pulin egale cu 4.75, respectiv cuvantul rAr,s in caz contrar? (6p')

nil

(Pasca,

tf ..... then
tEite ( ' ADEVARAE ' )
else write('FAr,S'),

(C|C++)

if (.....)
cout <<

elBe

'ADEVARAT";

I Drintf,

("ADSVARAT"),

cout << -FAIlszt I grirtf("FAls"),


ilapuns corect:
(Pasca,
f r^ . nr+x^ . urm^ .'rrl l2<=4.7 5

(C/C++)

II (x->nr+x->ur:n->nrl

/ 2<=4' -7 5

4.

Ce se va afiga in urma executerii secvenlol de program aldturate gtiir

variabila a memoreaze un gir cu cel mult


k sunt de tip intreg?
(6p.)

X.OO

(Pascat)

a:='claEa a-Xfl-a A,t


writeLn(a),
for i: =1 to Length(a)ato
if (alil >=,a, ) antt
(aliI <='2' 1 11t"o
a Iil :=chr(ord(attl ) -k) ;
lEite(a),

k=,a,-,A,-

EtrcDy (a,,,claaa a-xll-a A,,),


cout<<a<<end.Lr Iprintf ( "%s\n.,
f,or ( i=0, i<Btr1en (a) ri++)

if

IiI

'a'&&alit <=, z ' )


a til =a Ii I -k'
cout<<a, I Drintf ( r.%s/, a) ,

a-xrr-a

Rispuns corect: (Pascal) claEa

(a

>=

crasA A-xrr-A A
Scriefi un program paEcat lc,rc++ care citegte de la tastature

a.

elementelor sunt egale cu 3.

Elementele matricei vor fi afigate pe ecran, cate o linie a


matricei pe cate o linie a ecranului, cu cale un spaliu intre
elementele fiecdrei linii. Exemplu: peniru n=5 se va
afiga matricea
(1opJ
,

aldturatS.

Rezolvarea in pseudocod:
citegte n

ll I
ll I

ilr

j altfer
lr

irr

d.32L

c,2t3

123

z, iat

de acesta la examen, exprimate ca un numar

01L1
3010
33 03
3020
0222

(4p)

(C/C+11

(Pascak

Etruc! x { int coal, float


mediai ) x,

!t4)e x=recoral
codl!

real?

intgeri

media 3 reaL

endi

Elruc! {int codt


f,loat mediai ) x

var x3record
cod: integeri
mdia: real
tld i

var x.cod3 integrt


x.mdlia: rali
tltr)e candidat=recoro
'x.codt:integert
x.media: real

arr+-3

int x.cod t
float x.mediat
Etr-uct candida!{ int x. cod,
'
float x.mediai )

end;
corect: b

lrl
lf

afigeazi matlicea

b.
a

Care dintre urmetoarele variante reprezinte o declarare corecte pentru o


variabila rr care memoreaze simultan codul de identificare al unui candidat la
un examen, exprimat ca un numer natural de cel mult 4 cifre 9i media oblinute

fpentlu i=1,n execute


| rentru j=1,n execute
ll $aen i=j sau j=n-i+t atunci alj{-g
ll I aftfel rdace i<j Fi j<n-i+1 arunci arj{-l
ll I
I altfet rdac5 i>j 9i j>n-i+1 aruaci all{-2

132
corect:

un

natural n (2<n<15), construiegte in memorie gi aligeazd pe ecran o


n linii 9i n coloane in care elementele de pe cele doue diagonale sunt
cu 0, elementele care se afle deasupra ambelor diagonale sunt egale

elementele care se afld sub ambele diagonale sunt egale cu

(4p.)

care este ordinea numerelor din lista?

.t

(C/C*+)

ll I

O17

hrtr-o listd liniard simplu inl5nluite, alocate dinamic, fiecare elemenl


momoreaze in campul nr un numer intreg, iar in campul urm adresa
olomentului urmdtor din liste sau valoarea Nrr,,/Ng:,L dacd nu existe un
olement urmator. Lista conline exact trei elemente ale caror adrese sunt
msmorate in variabilele p, q 9i r. $tiind cd:
(c c'-)
(Pascat)
p^.nr=1, q^.nr=2, r^.nr=3, I p->nr==t, q->nr==2,
I r->nr==3,
D^.urm<>NIL qi r^.urm=q,,,
r->urm==q,
9i r->urm=
I D->urm!=NULL gi

(C/C++)

k: =o!d ('a, ) -oral( ,A, ) ;

5,

de caractere, iar variabiiele

Care este gradul maxim posibil gi care este gradul minim posibil pentru un nod
(6p)
dintr-un ar5ore cu n noduri
il.puns corcct gradul maxim =n-1 9i gradul minim=l

t,
a

(n>1)?

este

srr9.r llr urrrla exculant secvenll da program


alAlurEit6,

a memoreazd un $ir cu cel mult t o0 ds caractore, lar


de tip intreg ? (6p)

variabila

(pascat)
a

=,bacalaureat, i
nlitLn ( length (a) ) ,
for i:=1 to length(a) alo
if pos(atil,'aeiou,)<>O
then

write(.*,),

5'

Fiecaro element al unei liste circulare, simplu inlenluite, nevide, alocatd

(C/C ++)

Rispuns

A 018

corect:

dinamic, memoreaze in campul val o valoare intreaga, iar in campul ailr


adresa elementului urmitor din liste. 9tiind ce variabila D reline adresa unui
alement oarecare din liste, iar variabila q este de acela9i tip cu D, precizali
care dintre urmatoarele secvenle de program afigeaze, in urma executirii,

ELrcDy ( a, ,'bacalaureat/ ) ,
cout<<strlen (a) < <endl;
I Drintf ("%al\n,,,strlen(a),
. (i=0r
for
i<strlen (a), i++)
if (srrchr (-aeiou., a tiI ) ! =O)
cou!<<, *, i
I prinut(,r

q!=Dt ..(Pasca|'
whil q<>p do

*____

q=pt

(q^ .val ) t
q: =q^ . adr

entti

este mat

cu o unitate decat vecinul aflat ne aceeagi tinie-in


Oreapta lui!i
ut"m
aflat sub diagonala secundard este mat mare cu o
unilate decat vecinul aflat
aceeagi linie in stanga lui.

fl."r"

linia.

elementele fiecarei
Exemplu: pentru n=5 se va afiga matricea aleturata.

Rezolvarea

in pseudocod: o
i, i+1, . . .

matricei cu valorile

L23
, ao

writ (q^ .va1) ,


q! =q^ . adr

endi

xei

llll.r

af,iteazi matricea

I Drintf

writ (q^ .vaL ) i


q8

q=q->adr;

=q^. adr

!,

(*%d", q->vaI) ,

)whiI(g!=P),

until q=p,

q=p->adrt
while (q! =D)

q: =p^ .ad.r;
q<>D do

while

begin

cout<<q->val;

rpeat

x<-x+r

l.r

while (c->attr I =P1


{couE<<q->vali
I Drintf ("%d",q->val) t
q=q->adr; )
q=pt
dto {

q3=Di

cite$te n
fpentlu i=1,n executi

tPentru j=1,n executi


I all<-x

do

begin

-rJ"r"u*j,,l"i

q=pt

q: =Di

while q^.aalr<>D

I
u
I , t so
(fOp.t I 4 S 6 7

posibild rezotvare constd in

tC/C++)

while (q! =p)


{cout<<q->valt
I Drintf (""6d",q->val) t
q=g->adr; )

begi!
write

Scrieli un program BaEcallc/c++ care citegte de


ra tastaturd un nur
natural n (2<n<20), construieste in memorie gi
angeaza pe ecran o matricc
n .linii 9i n coloane, in care fiecare elemeni de p" Oiugonu|a1""rnoure
valoarea n, fiecare etement aflat deasupra diagonalei
.;;il;;

Elementele matricei vor fi afigate pe ecran, c6te


o linie a
matricei pe c6te o linie a ecrinului cu c6te un
,prti, iniru

(qpJ

toate valorile memorate de elementele listei?

write(q^.val),

{cout<<q->val- t

- q=q->adrr l

q3=qa.ad!
end;
ilapuns corect: c.
Care dintre urm5toarete variante reprezinte o declarare corecte pentru -o
variabild x care memoreazi simultan coordonatele reale (abscisa 9i ordonata)
(4P)
ale unui punct in planul xoy?
(C/C++)

(Pascal)

var'r! record
3

ox, o*:
endt

b.

c,

d.

real

var x: strinE [2] ;


tyge x=record
ox, oy:real
eldt
var *:reali

a,

struct Dulct{f ].oat oz'oy; |

b.

char x[2] t

c.

Etruct x{f,loat

d,

float xt

ox, oY, } ;

>t'i

R rpunr coroc't:

3.

a.

Un arbore binar este un arbore cu rAd5cind in caro flocare nod are cel mult
descondenli direc{i (fii). inillimea unui arbore esle reprezentate de

VARIANTA 019

maxim de muchii ale unui lant elementar ce unegte rddacina cu un


terminal (frunza).
Pentru un arbore binar cu exact I noduri, care este initimea minimd posiblli
gi care poate li numarul de noduri terminale (frunze) in acest
(6pJ
Rispuns corect: inilfimea=l 9i nr. noduri terminale=4

1.

4.

ilepuns corect:

caz?

in secvenla urmatoare, variabila a memoreaz6 un gir cu cel mult

caractere, iar variabila

este de tip

intres.

1oo

..

Completali punctele de suspensie din secvenle astfel incat aceasta sd


girul de caractere

(Pascal)

elae

write(..

.)

!.

(C/C++)

= 'informatica' i
for i:=1 to lnsth(a) do
if ... then write(.. . )

Etrcprr(a, "informatica" ) t
for (i=0r i<strlen (a) ri++)

if(...)

.;

Drinlf(...),
printf(...),
cou!<<...,

cout<< . .
eIEe

Respuns corect:
pos (a Iil , 'aiou'

) <>0

atil

slrchr(\aeiou",alil

Rezolvarea in pseudocod:
citegte n

urmetoarele secvenle de instruc,tiuni copiaze in campul nr al celui de'al doilea


(4p.)
elemqnt al listei, conlinutul campului nr al primului element din

liste?

(C/C++)

(Pascal)

l, D^.nr: =p^. adr^.nri


b. p^.adr:=D^.nrt
0. D^.adr^.nrs=9^.nri

lllr
lr.l
lt

D- >nr=D->ad.r-

3.

>nri

D->adr=p->nri

>adr->nr=D- >nr;
9- >adr->adr->n!=D->nri
D-

corect: c

Ce se va afiga ?n urma executerii secvenlei de program aleturate, gtiind ce


variabila x memoreazd un gir cu cel mult 100 de caraclere, iar variabila
(6pJ
este de tip intreg ?

(C/C++)

(Pasoaf)

BtrcDy(x, "bac2009'l ,

x: ='bac2009' ;
writIn (x) t

cout<<x<<end1r

for i:=1 to length(x) alo


Drintf ( *ts\n", x) ,
(
if pos (xlil , '0L23455789' ) for i=0; i<strlen (x) t i++ )
if ( Btrchr ( "0L23456789' ,r<a|l )
-0 thdn
write (ntll )
==o )
cout<<xlil r I Drintf ('%c-,xliI ) ;

Rdspuns

corect:

4.

(Pasca0 bac2o09
(C/C+ +\

fpentru i=1,n executi


| ;Pentru j=1, n execute
llra".a i mod 2=O atunci arr-j
lll altfet aij<-i

afigeaz5 matrj-cea

11111
L2345
33333.
L2345
55555

d..21-

campul nr un num;r intreg, iar in campul adlr adresa elementului urmetor


din lista sau nil lNutl, daca nu exi$a un element urmetor. Daci D reline
adresa primului element, iar lista are cel pulin doue elemente, care dintre

Rtrspuns

Scrieli un program pasca!lclc++ care citegte de la tastaturd un


natural u (2<n<20), construiegte in memorie gi afigeazd pi ecran o matrice
n linii gi n coloane, numerotate de la 1 la n in care fiecare element
matrice aflat pe o linie impard va fi egal cu numerul liniei pe care se afld gl
fiecare element aflat pe o linie pare va fi egal cu numerul coloanei pe care
Elementele malricei vor fi afigate pe ecran, cate o linie a
matricei pe cate o linie a ecranului cu cate un spafiu intre
elemenlele fiecarei linii.
Exemplu: penlru n=5 se va afiga matricea aleturaH. (10p.)

b. 1

d. D^.adr^.aat!^.nr=D^.nri

atil

afld.

c.5

Fiecare elemenl al unei liste liniare simplu inldnluite, alocata dinamic, reline in

(4pJ

arbore?
a. 15

*nf*rmt!*c*.

a:

Un graf neorientat este complet dac6 oricare doua noduri distincte ale sale
sunt adiacente. Care este numerul de muchii care trebuie eliminate dintr-un
graf neorientat, complet, cu ? noduri, astfel incat graful pa4ial oblinut sa fie

ac

Fiecare dintre variabilele a Si b, declarate in continuare, memoreaze simultan


coordonatele reale ale cate unui punct in planul xo!,.
(C/C++)
(Pascal,

war

a, b:

record
x, y:reaL

struct

Dusct {

float x,yt )a,b

end;
a

Completali punctele de suspensie din secvenla urmetoare de program, astfel


incat aceasta sA afigeze cuvantul DA dace dreapta, determinate de punctele
cu coordonalele memorate in variabilele a gi b, este paralele cu axa ox,
(6p.)
respectiv cuvantul lIIt in caz contrar.

(C/C+

(Pascnr)

lf . ..th.n !rrr.!.(.DA, ) lf (...) cout<<"D ', I Drtntl('DA'),


lae wrlt(.NIt,),
14 cout<<'Nu' I Drtntl (..Nu" ) ,
Rispuns corect: (Pascar) a.y=5.y | (C/C++) a.y--6.y

5.

Scrieli un program pascal lc/c++ care citegte de la tastature

A 020

un

natural n (2<n<20), construiegte in memorie gi afigeaza pe ecran o matrice


n linii gi n coloane, numerotate de la 1 la n, in care fiecare element aflat
o linie impard este egal cu suma dintre indicii liniei gi coloanei pe care se
gi fiecare element aflat pe o linie par5 este egal cu cel mai mic
elementele aflate pe linia anterioare gi pe aceeagi coloand cu el sau pe
anterioar5 gi pe una dintre coloanele vecine cu cea pe care se afld el.

Elementele matricei vor fi afigate pe ecran, c3te o linie a


matricei pe cete o linie a ecranului cu cate un spaliu intre

I
|
elementele liecerei linii. Exemplu: penlru n=5 se va |
afiga matricea aleturate.
(10pJ
Rezolvarea in pseudocod

Observem ce nrin(a1-s,3-1, a1-1,3, a1-1,3+r) =ar-1,J-1

citegte n
fpentru i=1,n exec'uti
I Pentru j=1,n executi

llra""a i

mod 2rA0 atunci-

z ll I sil
2 2 Pl 4
4567

4L55
67 89

ilrpuns corect: a.
Care dintre urmetoarele variante reprezintd o declarare corectS pentru o
variabile x care memoreaza simullan numeretorul gi numitorul unei frac_tii

ireductibile:

J
8
7

(Pascah

d. var x:recold
n1, n2
end,
Mrpuns corect d.

lll
lltr

I altfel

a1-1,1-1

intger

struct flacFie {int n1.n2,'} x;

(op)

secventa urmetoare?
(Pascal)

lr
tt

afigeazi matricea

Etruct x{int n7.,n2il;

intr-o lista circulare, simplu inlenluite, nevide, alocate dinamic, cu exact 9


elemente, fiecare element memoreazd in campul va1 o valoare inlreage, iar in
campul aatr adresa elementului urmator. $tiind ce in list6 sunt memorate, in
ordine, numerele de la 1 la 9, qi variabila I) retine adresa elementului cu
valoarea 4, iar variabila s este de acelagi tip cu p, precizali ce va afiga

rdace j=1 atunci


a1,1{- a1-1,5
I

ai,1(-

(CiC++)

fLoat:ri
char x[2];

endt

altfel

Ir.

(4p.)

l. var x i raI;
b, var x:string[2] t
!, llZl)e x=record
n1,n2:inleger

ar,l<-i+j

lll

Matricea de adiacente a unui graf neorientat c are numdrul valorilor de egal


cu jumdtate din numirul valorilor de 0. Care dintre numerele de mai jos poate
fi numdrul de noduri ale grafului c?
(4pJ
8. 12
b. 14
c. 11
d. 13

(C/C++l

q3=Dt

writeln (q^ . adr^ .vaL ) t


while q^.adr<>D do
q ! =q^ . ad,r t
write (q^ . adt^ .val ) t

ilrpuns corect:

l,

q=p,
cout<<q->adr->val< <endl i
lDritrtf ( *%d-, q->adr->va1)
while (q->aalr ! =D)

q=q->edri

cout<<q- >adr- >vaL i


I printt ('%d", q->adr->val

5
4

in secvenfa urmetoare variabila a


caractere, iar variabila

memoreaze un gir cu cel mult 1oO de


este de tip intreg. Completati punctele de suspensie,

astfel incat aceasta sA afigeze doar literele mici gi literele mari din $irul de
caractere memorat in variabila a.

A 021

tl
BlrcDy(a,..Bac 2009 lulte"
for ( i-0, i-<atrln (a) r i++)
(C/C t

(Pasca0

arE'Bac 2009 luLl6' ,


for L:=1 to lngth(a) do
if ... then
write (a lil ) ;

if(...)

cout<<a

Rispuns corect:

lil

lil

<='z')

Scrieli un program pascallc/c++ care citegte de la tastaturd un


natural n (2<n<20) qi construiegte in memorie o matrice cu n linii
coloane, numerotate de la 1 la ri, in care fiecare element atlat pe

5.

gi

fiecare dintre celelalte elemente este egal cu suma celor trei "vecini" situall
matrice pe linia anterioare. Doui elemente din matrice se numesc vecine
se gesesc aleturi pe linie; coloane sau diagonale. Chenarul exterior al

matrice este format din prima linie, ultima linie, prima coloand 9i
coloane.

Elementele matricei vor fi afigate pe ecran, cate o


linie a matricei pe cate o linie a ecranului cu cate un
spaliu intre elementele fiecdrei linii.

aldturate

va

obtine matricea
(10p)

Rezolvarea in pseudocod:
citegte n

fpentlu i=1,n executi


I lPentru j=1,n executd
llra".a i=1 sau j=l sau i=n sau j=n atunci
II

ar.jc-i+j

II

ai,J<- ai-1,j-1+ ai-1,j+

234
391"2
42t36
55494
67I

...
i1*"1i, rt- ',
l, p:FDra [21-i,*ali,20-il
f, n:=n*a Ii, i] ia[21-i,21-i]
3, p: =p.a Ii, i]
l, p:=pra [21-i,21-i] *a Ii,21-il
for

78
9

l,

20 do

P=L,

for(i=1;i<=20;i++1 ...

[21-il til la lil lzL-rl t


[il til *a lil t20-Ll t
Iil Iil *a ]21-il L2f-Ll t
p{r*a[21-i] t21.-il *a Iil t21-il .
D=p*a

p=p*a
p=p*a

d.
intr-un gral orientat cu ? noduri suma gradelor interioare ale tuturor nodurilor
este egale cu 10. Care este valoarea sumei gradelor exterioare ale tuturor
5

(4p.)
b.

llrpuns:

l,

20

10

d.

L7

c.

Se consideri declardrile de mai .ios, in'care variabila v memoreaze date


despre un anumit elev. Scrieli instrucliunea Pascal I c/c++ prin care se

1990.

(6p.)

ini{ializeazd anul nagterii acestui elev cu valoarea


(Pascal)
lC/C++)

llD.

ai-1,J+1

struct

data=record,

It

end,

in! lurat
int alt

atnrct Lsv
char

[30I t
data-..tnastrii : datat
rnedia: real eod;

alata{

int zi,

zi ! intgert
Lura: iDtegert
rrr: Lntegr

llD. olav: ttcord


nun: string

lrl
l.l

afigeaz5 matlicea

to

nodurilor?

lll altfel

lltr

L:=1

ilrpuns:

L5
34

(C/C++)

(Pascal)

p: =1;

exterior al matricei este egal cu suma dintre linia gi coloana pe care se afle,

Exemplu: pentru n=5 se

ln sewenla de maijos, variabila a memoreaze un tablou bidimensional cu 20 de linii


gi 20 de coloane, numeroiate de la 1 la 20, cu elementele reale. Variabila p este
reale, iar este de tip intreg. Care dintre instructiunile de mai jos poate inlocui
punctele de suspensie astfel incat secvenla se determine memorarea in variabila p
(4p.)
a valorii produsului celor 40 de elemente aflate pe diagonalele matricei.

Ii] i

(Pascat (a til >='a ' ) and(a til <=' z') or (a


>='A' ) anal (a [i]
(C/C++) ati-l>=, a,&&a I i.l <=, z, I la
>=,a,8 &a
<='z'

til

)r

nun t3OI

atruct dala datajrasterii,


fLoat ntliat

var ev:e16r;
)evt
ilrpuns: (Pasca, ev. data-naaterii. an := 1990
(ClC*+) ev. diata_naEtrii. an = 1990;

l,

Stiva s gi coada c memoreaza numere intregi. ln ambele se introduc, in ordine,


numerele 1,,2, 3, L. Se noteaze cu s)c operalia de extragere a unui element
din stiva s gi adiugarea acestuia in coada c, iar cu c)s operalia de eliminare
a unui element din coada c Ai introducerea acestuia in stiva s.

Care este ultima valoare introdusa ln stiva s gi care ultima valoare care a fost
addugat5 in coada c la executarea urmetoarei secvenle de operalii:
(6p.)
s+cr
C)S; ?

c)sr s)c, c)s,

c)s,

s)ct

ilapuns: in stive valoarea 4, in coade valoarea

3.

5.

56 considerd un text alcdtult din cel mult 250 ds caractere, in care cuvintols
formale doar din litere mici ale alfabetului anglez gi sunt separate prin unul sau

multe caractere *.
Scrieli un program paac&l lc,zc++ care citegte de la tastature textul

afigeaze pe ecran, pe cate o linie, toate secvenlele formate din cAte doud
identice, ca in exemplu.
it
coroiiiI t srrnt *la * * tzoo
Exemplu: dace textul citit este:
tl
't--Lr
ll
se afi$eazA perechile aldturate.

oo
Rezolvare: Se parcurge secvenlial $irul citit testandu-se dacd sunt identice

chile de caractere aflate in pozilii consecutive.

var

(Pasca\

string [251] ;
i:b!'te,
s:

bgin

rad1n

(s

f,or i:=1 to length(s)-1 tlo


if E Iil =E Ii+11 thn
if 3 [il <>, *, then
writeln (E IiL s ti+11 )

ad.

AO22
lntr-o stivd ce memoreaze numere intregi se inlroduc, in ordine, urmdtoarele
numere: 1,2,3,rt,5,6,7.Ce|e numere trebuie sA eliminem din stiv5 astfel ca
ln varful stivei se se geseasce numirul 5?
(4p.)

b.2c.3

d.4

b. (Primele numere scoase din stlve sunt ultimele introduse, deci trebuie
7 9i apoi 6)
Pntru declardrile urmetoare, precizati care din instruc_tiunile de atribuire este

(5p)

gregite:

\C/C++)

#includ,e <ioatrean.h>
#includ <Etring.h>

(Pascal)

int nain ( )
{int i; char s [251] t
cin>>s i
for (i=0ri<strln(s) -1r l++ )
if (E Iil ==E Ii+1I )
if (8 [il t='t')
cout<<E Ii] <<s Ii+11 <<end].t
rturn 0t)

lC/C+-t.l

lyp 16v=rcord
numes string [20] i
Rota1, nota2 : integor
ndi

var

e1, e2

{cbar nurl1201,
itlt lotalt
int no!a2, ) e1, E2;

elev,

a. e!=e2+1,t
b. el.EuI! [2] ='x',
c. e1=e2,
d. e1. notal=e2 . nota2+1t

a1: =a2+1

.1.nu.ne[2]:='x'
.L.

Etruct elev

=e2

a1.Dotsa1!=e2.ttota2+1

: a, (operatia de adunare pentru acest tip nu este definite)

Ce valoare are expresia de. mai jos dacd variabila


caractere

alfabet?

lengtb (copy(s,3,7

))

| {C/C++)

memoreaze girul de

at.rlda (atrcD:.( s,

(6p.)
s+2 ) )

intr-un gral neorientat cu 10 noduri, numerotate de la 1 la 10, existe cate o


muchie intre oricare doue noduri numerotate cu numere consecutive gi cate o
muchie intre nodul numerotat cu 10 gi fiecare dinlre celelalte noduri. Cate
subgraturi cu exact 3 noduri, toale adiacente doua cate doua, are graful dat?
Scrieli pentru fiecare dintre aceste subgrafuri nodurile din care este format.

(+pJ
8

de noduri pentru cele 8 subgraturi sunt:

It,2,10l;
lr,5,10);
17,8,10);

{2,3,]-01 t

t5,5,10);
{8,9,10}

{3,4,10};
15,7 ,rol ,

Scrieli un program Bascal lc/c+* care citegte de la tastaturd numerele


naturalengi ndin intervalul t1,241, apoi conslruiegte in memorie gi afi$eaze
pe ecran un tablou bidimensional cu n linii gi n coloane astfel incat prin
parcurgerea acestuia linie cu linie de sus in jos gi fiecare linie de la stanga la
dreapta, se oblin ln ordine descrescetoare toate numerele naturale de la 1 la

mrn, ca In xmplu. Flecare llnls a tabloulul

lltr

aflgatd po cete o

A 023

ecranului, elmentele aceleiagi linii fiind separatc prln ceto un spallu.

Exemplu: pentru m.4 9i n-3 se va construi 9l aflga


aleturat.

tebloul

0op.)

12 11
e I
6 5
3

Rezolvare: Pentru conslruirea tabloului se poate iolosi un algoritm:

citett n,n
k1

ars

k;

EtrctrD (8, E+5 ) ==0

s==strstr (s, s+5 )


=1
E==a+5
t.a+ 5
strqqD ( E, strcat ( E, E+5 ) ) ==0
!+oopy ( s, 6,5 ) =s
: b. (pozi[ia in care apare subgirul format din ultimele 5 caractere in girul

kk+1
a

Se poate calcula direct valoarea fiecerui element


astfel: a13 n*n- (i-l) rn-j

(C/C++)

(Pascat)

aroopy(a,5,5)
Do. (coDy(s,6,5),8)

Dltru in,1, -1 xecutl


pencrrr jn, 1, -1 execut;
afi'eaztr matricea

(laro din urmltoarele expresii are valoarea urue l1 dacd gi numai dace girul
(io caractere B, lormat din exact 10 caractere, este oblinut prin concatenarea a
(6p.)
rloud giruri identice?

Tn

functie de pozilia lui in

uto

chiar pozilia de inceput a girului)

Care dintre urmdtoarele.arce trebuie adeugat unui graf


orlontat cu 5 noduri gi cu matricea.de adiacenld
rldturate astfel incat in acest graf se existe cel pulin un
(4pJ
drum intre oricare doud vArfuri?

G,

(4,

b.

s)
:a-

(s,

1)

3)

01
00
00
00
10
d.

010
100

obo

001
000
(3, 2)

Care sunt nodurile care au exact 2 descendenli pentru un arbore cu rddecina,

0u

noduri, numerotate

tL

?L

(t,i,o,L,2,2,4)2

2, l

de la 1la 7, dat de

are descendenti

pe4gi 7; 2pe5gi

vectorul

de

"tati":
(4P.)

6.

Pontru declararile urmatoare, care este numdtul maxim de numere intregi ce


(6p.)
pot fl memorate in variabila a?
(C/C++)
(Pascaf)

Dunct3D=record

x,y.z:inleger

and,

lrrrray[1.

10, 1.

.10Iof nunlt3o;

alruct purct3D {
in! xt inb yt int zt

t;

struct

Dunct3D at10l I10l t

300 (a este

un tablou cu 100 elemente, iar liecare dintre aceste elemente


momora 3 numere intregi)
[Jn tablou bidimensional A cu n linii gi n coloane (13r'<100, 1<l<100) conline
po prima linie numerele L,2, ...,n, iar pe prima coloane numerele
1,2, . . .,n. Celelalte elemente ale tabloului sunt date de relalia:
ls,1111-1,3+41,;-1. Scrieli un program paseal lc/c++ care citegte de la

ln8tature numerele n gi n Si afigeazd pe ecran elementul de pe ultima linie gi


(10p.)
ultlma coloane a tabloului.
lxcmplu: pentru tn=3 gi n=4 se va afi9a S deoarece 1234
247l,L
elsmentele tabloului A sunt:

3 7 1"4 25

Rczolvarc: S completeeze prlma llnle 9l prlma coloand cu numorele


L,2,3,.. . , iar celelalte elemente ale tabloului conform relaliei date ln enunl:
citqtc m,n

Dentru i=l,n executi AIi,1l =i


Dntn j=1,! execute AI1, j I =j
pentru i=2.m executi
Delltru j=l,s execute
A Ii, i I =AIi-1, i I +A Ii, i -11
scrie A[m,nl%10 (restul impa4irii luiAtn,nl

la 10)

a o24
lntr-o listi simplu inldnluite, alocate dinamic, cu cel pulin palru elemente,
fiecare element retine in campul urm adresa elemenlului urmetor din listd sau
Nrr, lliuLL daca nu existe un element urmetor. Dace variabilele p, q gi r
memoreaz5 adresele a trei noduri din liste astfel incat p ^. urm = q^.u!m ^ .
urm gi r^.urm=ql p->urm == q->urm->urm gi r->urm==q,atunci
ordinea logic5 a nodurilor in listi (noduri identificate prin adrese) este:
(ap)

r,q,D
D,q,r
llrpuns:

b.
c.

D,r,q
q,r,9

a.

Care din urmetoarele propriet5li este adevdratd pentru un graf orienlat cu n


vdrfuri gi a arce (n>3) care are un circuit de lungime n:
(6p.)
exisle un varf cu gradul intern n-1
pentru orice varf, gradul intern gi gradul extern sunt egale
graful nu are drumuri de lungime strict mai mare decat 2
gradul intern al oricerui varf este egal cu 2

b. Respunsul corect se poate determina prin eliminare.

Stiva s gi. coada c memoreaze numere intregi. in ambele se introduc, in


ordine, numerele L,2, 3, 4. Se noteazd cu s)c operalia de extragere a unui
element din stiva s gi addugarea acesluia in coada c, iar cu c)s operalia de
eliminare a unui element din coada c $i introducerea acesluia in stiva s.
Care este ultima valoare introduse in stiva s Si care este ultima valoare care a
fost adeugate in coada c la exeoutarea urmdtoarei secvenle de operalii: s)c;
(4pJ
c)s ?
: in stive valoarea 3, in coad6 valoarea 2.
Scrieli o secvente de instrucliuni pascal lc/c++ care se inilializeze
elementele unui tablou bidimensional cu cu n linii 9i n coloane, 1<n<100, cu
numerele naturale 1,2,...,r. astfel incdt pe fiecare linie sau coloane sd
existe toate numerele din mullimea {1,2, . . .,n].
(6p)
Procedand astfel, pentru n=5 se
llrpuns: O sdlulie posibila construiegte o
mttrice cu proprietetile cerute, dupe metoda:
obline matricea:

c)s; c)sr s)c,

lantru iel,n executi


Dentru je1,n executi

rij=(i+j-l)%n+1
ll reprezinte restul irq)irgirii)

1234s
2345L
34512
45r23
5r23L

Scrieli un program psscal lc/c++ care citegte de la tastaturd doue giruri de


caractere formate din maximum 100 litere mici ale alfabetului englez gi
afigeazi pe ecran cel mai lung sufix comun al celor doud giruri de caractere.
Dacd cele doue giruri nu au niciun sufix comun, atunci programul va afiga pe
ecran mesaiul NU ExrsTi.
Exemplu: pentru girurile narina gi eLena se va afiga na
(1opJ

Rrrolrlerrr

var 11, .2 r.trlng


n1,a2,ltb!rt.,

[100] ,

begln
rcadla(s1) r r6!dun(.2) t
n1: rlngth( s1) rn2:=lngth(s2),
lf s1lnll <>52ln2l th!
wrlteln( | NIt ExrgrA, )
etee bgin

lrhlls s1[!1l
begln

-s2

[n2]

d6c (n1) , alc (n2 ) ,


lf (n1<=0 ) or (tr2<-0

dto

thn break'

*lnclud.< lortraanr. h>


#lncludr <rtrlng.h>
cbar !1[101L.2 [101] ,

for ir-n1+1 to length(sl) do


writ sl til )

drd.

end.

Structura de date la care se aplice principiul ,,primul venit, primul iegit": (first in,
llrst out) osto:
(4pJ
graf orientat
llsta ln16nluita
coada

b.

rllln( )
{L!t n1,!2,1,,
cLn>>s1>>g2 i
nl-Blrlen(sl), n2Estrlcn(.21
lf (sltal-11 t*z2ta2-Ll )

vo{.d

Un graf

(D1<0 |

stiva

cu I

d,

c.

noduri

are gradele

Pentru ce valoare a lui

b. x<3

tlr1

c,

x>3

x gralul este

nodurilor egale cu
arbore? (6p)

d. nicio valoars

d, Suma gradelorsz*numarul muchiilor, iar un arbore cu n noduri are


x=-1,

olse {
drtlc ( g1[nt] ==g2ln2l )
{ n1--rn2--,

lf

neorienlat

1.,2,r,?,3,2,L,r1.

cout<<'Nlt EXIST Tt

enttr

A 025

lC/C t+)

(Pasda4

muchii. Deci ar trebui ca L+2+4+2+3+2+!+n=1{, adicd

Se considera graful orientat din figura alaturata. Care este


numerul minim de arce ce trebuie addugate grafului gi care
sunt aceste arce, astfel incat oricare doui varfuri din graf sd

ln2<0) break,

for (iEn1+1, i<strlen( sl.) t l++)


cout<<s1[iL

fle unite prin drumuri elementare?

''

: 2 arce: (3,4) Si (4,1)

o secventd de instrucliuni pascallc/c++ care determina, in urma


executerii ei, afigarea pe ecran a mesajului corect daca un gir de maximum
100 caractere, memorat de variabila s, este palindrom sau mesajul Incoract
Scrieli

ln caz contrar. Un gir de caractere este palindrom dacd citit de la inceput la


sfargit este identic cu girul citit de la sfargit la ?nceput.
Exemplu: girul de caractere cojoc este palindrom
(4p.)
: Dacd se solioite o secventa de program, amintim cd este bine se nu scrieli
loala de examen tot programul, deoarece ce6a ce este scris in plus nu aduce
suplimentare, in schimb, daci conline erori, punctajul poate fi diminuat.

(Pascal

11,

=lngth ( B) , ok ! =1,
t<J dlo bagln
l! r til <>E lJ t rhn oh:.0i
lno(l), t16c(l)
JI

{C/C++l

l.0r J=6tr16n(s) -1, oL'l,


whlle (l<J )
t tf (sttl l=slJI ) ok=o,
1++; 1--'.
l
it(ok==l) cout<<"Corct"i

okrl then wrlteln('Corec!' )


wrlteln('rncorct')
elg cout<<r,Incofedlr"
Se considerd un tablou bidimenqional cu n linii $i n
(lft<l00,1ft<l00),

coloane

alo odrui elemente apa4in mullimii {0,L,2). Sorieli un


program Fasca:. lC/c++ care cit6$te de la tastature valoril , n gi.elementele
tabloului gi care afigeaza pe ecran numerele de ordlne ale coloanelor pentru
care produsul elemontelor sltuate pe 6le, este maxim. Linille gi ooloanele
tabloului se numeroteaz5 de la I la , respectiv de la I la n. Numerele s6
vor afiga separate prin cete un spatiu.

Exemplu: pentru nE4 gi n=a gi tabioul aldturat se va afi$a:

1,2

2110
1111
222r
L2LL

(lopJ

FOZOruAru: Fentru punclal maxlm, ueDul sa evrum otccluara proo


coloane, deoargce valorile acestora pot dep69i posiblllta$le de rprezentara
tipurilor numorice disponibile. Produsul elementelor de pe o coloand este
pentru coloanele unde sunt cele mai multe valori do 2 gi nu sunt valori
Deoarece nu se cere un algoritm elicient ca num5r de pagi, se fac doue
ale matricei: prima pentru a determina produsul maxim gi a doua pentru a
coloanele care dau acest produs maxim.

Pentru graful neoriental din flgura aleturate, care


oste numArul de muchii ale celui mai lung lant'
format din noduri distincte, ce are ca extremitdli
(4p.)
nodurile 1 gi 3?

b.3

naxo

fDeltru j=l,n execute


zo; ct2o
I peot"o
i=l,rn executi
I
daci
Arr=0 aturci z0 altfel daci At5=2 cE2<c|.2+L
I
z=0
daci
9i ct2>max atunci maxect2
I

\t

rpntru j=1,8 executE


I zo; ct2?0
I pettttu i=1,m executi
daci lEj=O aturci z0 altfet dacl Air=2
I
I daci z=0 ii ct2> ax atunci scrie j, " "
l,|

1-2-4-s-3)
nodul ce poate fi ales ca dddcind a

( lanlul

Care este

arborelui din igura aleturate, astfel incat iecare nod

care nu este de tip fiunzd sE aibd un numdr impar


(4p.)
de descendenli directi (fii) ?

c.6

3b.4

cE2<-c|-2+L

afisat dupa executarea secvenlei de program


(6P)
aldturate, in care variabila s memoreaza un Sirde cel mult 5 caractere?
lC/C++)
(Pasca4

Care va

fi girul de caractere

char E[]=oraton"t

I : ='raton' i
g [2] :=s[4];

slll=s[3];

cout<<si I Printf("""s"'E),

write(s);

intr-o stiva care memoreazS numere, o valoare t( poate fi


addugati numai dace in varful stivei se afld un element cu o

vabte strict mai mare decat x; in caz contrar sunt eliminate toate
elementele care nu indeplinesc aceasta condilie 9i apoi se
adaugd valoarea x.

Exemplu: pentru stiva din f ig.1, addugarea elementului 11


este precedata de eliminarea elementelor ce Gonlin Vblorile 2 9i
l"o. Dupe adeugare, stiva va avea conlinutul din

ta
ltol
n*i'le
lzoi
lz>

bd
fis.l

f|g '2'

Dacestivaesteinilialvida,careestenumerulelementeloraflateinaceaste
O"pa addugar6a, respectand condiliile de mai sus, in ordine, a numerelor
(6P')
"ti*
zo,,s,tsl,g ,s,z ,s,i,e Z
F]
ilspuns: I

trtr

alSturatd)
{rvolulia stivei este prezentate in imaginea

t, tLt !l [,]bi
t" lt" l " lt, , t ,l

"FFHHHHEH

Scrieli un program pascallc/c++ care citegte de la

tastaiurd un numdr natural n (2<=n<=9) 9i elementele unui


linii 9i coloane, care
tablou bidimensional .e' cu
memoreaz5 numere naturale mai mici decat 10, Si afigeaze

pe ecran (daca exista), separate prln cate un spaliu,

elementele din malrice care au proprietatea cd sunt egale


cu produsul celorlalte elemente aflate pe aceeaqi coloanS'

A 027
Care este numerul mlnlm de arce ce trebuie adAugate
tn oraful orientat din figura alaturatS astfel incat fiecare

Rezolvare: Problema se poate rezolva calculand


pe-ntru Jiecare element (vezi secvenla pseudocod
aleturate) produsul celorlalte elemente aflate pe
aceeagi coloanS, urmand se-l afigim doar dace este

uaf;

Pentru fiecare pereche (l,j):

a. 1

D1

egal cu acest produs.


AltA solulie calculeaze produsul tuturor elementelor de
pe coloane, identificand acele elemente de pe coloand
al caror pdtrat este egal cu produsul calculai, deoarece
&J.AUrerj.. . . *At-t,l*Al*r,J*. . . *A"l )

executd

pp*e*.,

noduri, numerotate

fdaca Alld) atuncL


scrie ArJ,, ,
lfI

p:arrayll. . 9lof lcrglnts,


n,l,J,nrlb1tel

!dt

nule [J I r =nule [J I +1

for L:=1 to n do
for J:=1 to n do
tf
(Elll tJ I >0) ard(a Ii, J I *a ti, J I =-)
or (a[i,jl=0)rnd (uulelj] >1)
then begin

write(aIi'j], ' ' );


(nr)
inc

endl;

if, nr-o thn write ( ,M, E:tfisTA, )

nd.

tf'tr6

Ill tJL
D tJ l.D IJ I *AIit IJ I ;
if(ltil tJ I =-0 ) nut ti

)
f,or ( 1=0r

if
)

fractliracord
x,yrLntcecri
ond,

ale inregistrarii.

reprezinta

tCrC+*l

f,rac!16

tfttt x,Yt) r,G,Hi


I "t:t"Jg

Rozolvare:

(Pascal)

-r .y,
H.x:
II.x:=E.ll-9.Y+rJtrf,
=t!.xrc.y+G,x*F.y,
rf
.Y*G.Y'
H.ys

t ++,

l<n.l++)
for ( Jr0, J <n, J++ )
tf (AItI IJi&&ATtt fJ I *A It] IJ I..9
ll Atil tjt-=o ec nuletJl>1j
{cout<<AIil lJ I <<' ',
nr++i

gi

d.

var F,S,tl: f,ractl6t

(ctn>>A

bCrln

readr(alt,jJ)r.
DtJl !=DIJI trti;Jl,
lf all,JI=0 then

(Pascar)

()

for( i.0r i<n; l++)D Ill =1,


for ( l=0 r l<n, 1++ )
for (J c0 r J <n, j++ )

for'l.rg1 to n do Dfil:-tr
f,or l!=1 to n ato
f,or
J:=1 !o n do
'

(6p.)

c.5

in variabila H fractia
Scrieti instructiunile prin executarea carora se memoreaza
(6 p)
G'
in
F
9i
oblinute prin adunarea fracliilor relinute

tcLn>>n1

bogln
readln (n) I

l la 8,

numbratorul, respeciiv numitorul unei fractii de forma

# Lnclude <iostrem. h>


ln! Jll9l I9l,n,t, J,nutatgl,n!
long D[9],

voldl netn

cu redecine, cu8
pnn
vectorul "de tati"
reprezentat

Rlspuns corect: b. (nodurile 1'3'7'8)


in declararea aleturatd, campurile :r

(C/C++l

t!alrtyll..9,1..91 of b[,te,
! .rray[l..91 of, brter

d.4

b.4

e.3

nulA-

Dul

(4P)

c.3

b.2

de la
(2,O,6,2,4,4,5,5t?

lll

Un element nul va fi afigat numai dace pe acea coloand mai existd


cel pulin o

vt':'

Rdspuns corect: a. (se adaugd arcul 24)


Care este numerul nodurilor de tip frunzd din arborele

daca i* k atuncl

l.|

(pascal

unui ci-rcuit

"partina

)entru k1, n

ll

tr:* Artt A:.1*Azl*...*Ao:

i!

a,

(nr=eq ; 65gg< <,'NU EXISTA,,,

lCtC**1

H.*=F.x'G'y+O'x*tr

I g'Y'r'Y'c'Yr
I

nr al fiecdrui
O lista liniard simplu lnldnluite, alocatd dinamic, reline in campul
urmator
elemenlului
element cete un numar natural, iarin cAmpul urm' adresa
memoreazd'
Lista
din lista sau nlr rNltr,I. dace nu existe un astfel de element
ih ordine, numai elementele 1'2'3'{,5.
(C/C++'l

(Pasca4
Dr

'yi

rDrl,m,

rhll D^.urn<>nll ilo begi!


Da . urlr^ .nr: r
D^ .nr*D^ .ulm^ .nri
D: =D^ . urm

and,

D=Drimt
whil (D->utm! EMTLIJ)
(D- >urrn- >nr=p- >nrrD- >urnp=D->urmi

>tri

gtiind ca variabila prin memoreaza adresa primului element al listei 9i ca D


in ultimul
Jsie o variabite dJacelagi tip cu Drlm, care va fi valoarea relinute
(4p)
program.de
mai
eLment al listei dupe exe;utarea ;cvenlei de
in
listei
sunt
elementele
secvenlei
(oupa executarea
ordine 1,2,6,24,12 0)

sus?

C;;p;;;;;;il''rzo

tastaturd un numdr naturat


(r'.;.:ro) ;; clonlHi"il ;;
momorie o malrice cu n linii $i n coloane in car6 toale
elemente de pe prima linie, prima gi ultima coloand au

valoarea

I 33
I 79
I t7 23

suma

"

1 gi oricare alt element Au din matrice este egal cu


a 3 elemente situate pe linia i-1: primul aflat pe
coloana j-1, al doilea pe coloana j, iar al treilea pe coloana

4l

A 028

care este numarul minim de muchii ce pot fi eliminate din


graful aldturat astfel incat in graful pa4ial rezultat se
(6P')
6xiste exact un varf de grad o?

17

s? 4l

j+1, ca in exemplu.

r.

Matricea va fi afigatd pe ecran; linie cu linie, numerele de


pe aceeagi linie liind separate prin cate un spaliu.

Rlspuns corect: b. (gradul oricarui nod este mai mare sau egal cu 3)
intr-un arbore cu rSdacind nivelul unui nod este egal cu lungimea lanlului
format din noduri distincte care uneqte redecina cu acel nod R5ddcina se afle

Exemplu: pentru !.=5 , se afigeazd matricea jldturate.


Rezolvare:
Se completeazd cu valoarea 1 elementele aflate pe prima linie, pe
coloani gi pe ultima coloand.
Celelalte elemente .hj primesc valoarea &.- r, J -r +At'r, j +At
-r, * r .
(pasca,
{C/C++1

pe nivelul O. Daca toate frunzele se afl5 pe nivelul 3 9i olicare nod neterminal


allat pe un nivel kare exactk+1 descendenli direcli (fii), care este numarul de
(4p.)
noduri din acest arbore ?

war rr, i, j :blte;


e!arriay[1..10,1..101 of
Lalager;
bgin
raalla (n) t
for L:=1 to ! tlo bgin

r[1riI:=1; A[i,1]:=1;
Ali,al : =1

eud;

for i:=2 to n do
f,or j3=2 to n-1 do
Iti,JJ:= AIi-l, j-11+
AIt-1, i I +ati-1,

nd
nd-

I
j

cu n linii $i n coloane not;m cu Aij elementul


intr-un tablou bidimensional
gi coloana (13i5n, l-<j<n). Care este valoarea expresiei
allat pe linia
dad eleme;tul Aij este situat pe diagonala principalS atabloului A? (4p')

J-i

ci!>>n,for (i=1r i<=n. i++ )

R;spuns corect:

(orice element aflat pe diagonala principald este de forma

tnt =1;

O list5 liniard simplu inlenluita, alocate dinamic, reline in. campul nr al


fiecerui element iAte un num5r natural, iar in campul urm, adresa
ri urmetor din liste sau niL lNUr,L dace nu existe un element
"L."ntrf
urmator. Lista memoreazd, in ordine, doar elementele r'2'3'4'5'
Stiind cA variabila prim memoreazd adresa primului element al listei 9i cd o
Jiie o variabiu de acelaqi tip cu prim, care sunt, in ordine, elementele listei

for ( j=2 r j<=n-1-j++)


elil tj I =eti-ll Ij -1I +
Ati-1! ti I +rti-1t Ii+
for(islti<=n, i++)
{for(j=1; j<=a; j++)
cout<<Alil tjI<<, ,.
cou!<<end.lt )

i+11 ,

for i:=1 to n do bgir


,
for j:=1 !o n do
lrrite(A[i,JL ' ' );
lgl iteln

d-5

10

Rispuns corect: c.

()

Atll [il =Atil I11=Alil


for (i=2; i1=11, i** I

c.

5.8b.9

* inctutl,e <iostrean.h>
irrt At11l t11Ln,i, j;

void nain
t

c-2

b.3

(6pJ

dupe executarea secvenlei aleturate?


t

pascdl

(C/C++)

p=prim; x=p->nri

=I)rimt x!=p^.nri
\uhi1e (p->urm! =NIIIIIJ)
whii-e g^.urrn<>niL do begin
.nri
{p->nr = p->urm->nri
.um^
D^ .nr : = D^
p=p->urmt )
eltdt
D!=p^.urm
I)->nr=xi
D^.nr3 =xi
Rispuns corect:.2,3,4,5,L (secvenla rcalizeaze o rotalie catre stanga
D:

valorilor din lista)

l.

se poate
$irul de caractere s2 este "clona" girului de caractere sl dacS
Se
vocale.
obline din s1 prin eliminarea tuturor apariliilor unei singure
considerd vocald orice litere din multimea {a,e,i,o,ui.

Scrieli programul pascallclc.+ care citeste de la tastaturd .un cuvant


format din cel mult 20 litere mici ale alfabetului englez 9i afigeaze pe ecran
(dacd existe), toate "clonele" acestui cuvant, liecare pe cate o linie a
ecranului.

Exemplu: pentru cuvantul inf,ormatica se afi9eaze, nu I nfornatca


neape;at in aceasta ordine, "clonele" scrise aldturat. (1Op')l

i*ffi:l:"

Pentru.afigrea clonolor glrulul este suflclont ca pentru flecare vocala


apare.rn.qtr
apare
fn gir sa
parcurgd girul 9i
sd se parcurge
aflseze doar caracterole
Si se aflgeze
caract6r6le diferltl
diferl
aceasta (se afigeazd girut iniliat din care am eliminat toate apariliile vocalelj

(Pasca|

var s!6trlng[20];i,J:lrrrtet

voc:string[5],
begin
readtn(s) tvoc3=,aeiou, r
for ir=1 !o 5 do

if DoE(voc[il ,a)>O rhen

begin
for j:=1 to length(s) do
if slil<>voctil then
writ(E[j])r
lriteln
lrd

erd.

Iint i,j;

Rlapuns corect: a.
r

I if("t""frr(r,voclil))
I tror15=gr5.gtrfenisi;ir*)
if(Etjl r=voctil)
I
coui<<s tj t ;
I
I cout<<endl;

b.sc.3d'2

t.4

lvoitt naino

| {cin>>s;
j for(i=Ori<=4.i++)

gral neorientat cu5


Cars oste numdrul maxim de noduri de grad 3 intr'un
(4p)
noduri?

@rc*1
I # include <iostre!m.]r>
l* includ <atring.h>
lchar s I21L voc l l ='aeiou'

a 029

cu
lntr-un arbore cu radecine nivelul unui nod este egal
uneste
care
distincte
noduri
runoimea tantutui format din
tai"Jcina cu icel nod. care dintre noduri trebuie ales ca
pe fiecare
rddlcind in arborele din figura alSturatd astfel incat

niuJ.Jte gas""ta

un n-umar impar de

),2b'3

noduri?
c.5

(5pJ
d.

R{8puns corect: d'


Care va

fi

de
girul de caractere afigat pe ecran dupd execularea secvenlei
iar
4
caractere'
gir
mult
cu
cel
un
in care variabila s memoreaza

ii'g-; "l6iri"i"

variabila t un caractet?

(Pascatt

.ti'a1;ac,i
glrst2l rBt2l:=EI4l,

)al,lt='E',

wrlte (E) t

(4pJ

Ilcha!
-

--tc/9::)
sll="arac"t
l t=5tl! tsl1t=st3l tst'3I^='t"

Icout<<6t I Drirtf("%s"'3)'

Rispuns corect: acat


nl. al tiecerui
O liste liniare dublu inlentuita' alocate dinamic, reline in campul
un numer natural, in campul wr! adresa elementului urmator
dace nu exista un element urmdtor' iar in campul
Nrt

J"r"ti"at"

din listl sau

lNur.r,

din liste sau Nr:'lNUr'L daca nu existi


o""i, "Oi"t. elernentului precedent
p
i.l!t"nlpt"."dent. Variabilele 9i q memoreaza adresa primului' respec'tiv
ultimului element al listei.

pe care le poate avea.lista astfel incat'


c;;;.b;ffititl maxim de elgmentevaioarea
(6p')
variabilei n se fie 3?
il;;;;;;;ecv-n1ei aldtJrate,
(C/C++l

(Pasca|,

nrOl

nr.0i

whll (D<>q) aflat(q^ . u:.m<>D) do

bogln

.urn,
qr.q^ .Draci

D: ED^

n: =n+1

nd,
Rispuns corect: 7

L-*iii""tie.

whll3(Dl=q && q->uml=D)


( D=D->unnt
q!q->Drac t
nsn+1,

pornind
Structura repetitive se incheie atunci cAnd se ajunge'
vecine
pe
noduri
doud
fie
pe
nod,
acelasi
ooua capete, fie
de
relinut
celui
inaintea
aflat
element
q memoreaza adresa unui

;;ri#;i"-";6
;;;il;#

indepliniE in cazul in care numerul de noduri este impar' iar


par' La liecare pas se
"ste
de-a doua'conditje atunci c6nd numerul de noduri este
realizeazi doud dePlasdri
Valoarea 3 se obline atuncicand numdrulde noduri {5,7} '

i. e,lr" -nOi1i"
-cea

yv,,vt, urr prvurolr rrcrfi.rrlu/u++

qar ctlegte o la

taetaturd un numdr natural n (1<.n<-e) gi elomentele


unui tablou bidimensional r, cu n linii gi n coloano, care
memoreaze numere naturale nenule mai mici decAt 100,
gi afigeaze pe ecran produsul numerelor ,.pivot,, pentru
matricea A dacd existe astfel de numere, ,ltfel va afiga
mesajul Nu ExrsTA.

Un numdr natural x este ,,pivot,' pentru matricea e daci inmul!ind


element de pe prima coloane cu numdrul x, se oblin, in aceeagi
elementele unei alte coloane din matrice.
Exemplu: pentru matricea din figura alaturat; se afigeaze B.
Rezolvare. Se calculeaze pentru fiecare cotoanl 1, I
x=A11/111 gi se verifice faptul ce toate celelalte
elemente ale coloanei respectd rela,tia &j=A{1*x.

A 030
Care este numerul mlnlm de muchii ce trebuie mutate in
oraful din fiqura alaturata asffel incat acesta se fie conex
(6p)
[l fi"."r" n;d sa apa4ina unui

ciclu?

d.

0b.
Rtrspuns corect: b.
Putem muta muchia

I3,5t

asfelincat se uneasce nodurile 2 9i 4'

tenght {6) | strlen {s ) pentru variabila s de tip


gir de caractere, declaratd var srEttinE[15] t 9i initializata E3='erciba-E'; I
(4pJ
char s [15I =oP!oba-E" t

Care este valoarea expresiei

7b.

d.5

15

Rlspuns corect: a.
(pascat

(CiC++)

var A:e:rrayll. .7,f ..71 of btte,


# include <iostream.h>
nr i, i, k, ok:blrue;
ints AtTI tZLn, i, j,x;
p: lorgint i
long I)=1, ok=o,
bagin
voidl nain ( )
radlB (!) ,
{ ein>>a;
for i:=1 !o t'' do
for(i=1i i<=n, i++)
for j:=1 !o n do
for(j=1rj<=n-j++)
read0[[i, j J );
cin>>Alil Ij t ,
foi I .=2 to n d,o
for(j=2rj<=n.j++)
if At1, i t rnod AI1,1l =0 theue
it (At1t tj I %A t1I t1l ==o)
begJ.n x:=A[1, jt ativ A11,1],
tx=Atxl til,rAIlI I11 ;
ir=2;
whll (L<=!) eBat (A Ii,1l *x=A ti, i t )do
lrhile(i<=n &&
i: =i+1;
AtiI I1t *x==AtiI til )
lf i=n+1 thn bgin
i ++;
p:=p*x;ok:=1
if(i==n+1) {p=p*;; e}=f; }

elrd
entt;
if ok=1 th.D write(D)

la wrLte(.nu exiEta, ) ,
nal.

if (ok) cout<<Dt
els cout<<onu exiata,, )

Care sunt nodurile de tip frunzd din arborele aleturat


(6p)
dace se alege ca redacina nodul

5?

Respuns corect:

2,3,4,5

(in orice ordine)

reline
O liste liniare simplu inlanluitd cu cel pulin s elemente' alocate dinamic'
u:trr
campul
iar
in
natural'
in cAmpul nr al fiecerui element cate un numar

din lista sau nit lNur'r' dacd nu existe


aflat
element urmetor. Variabila Drim memoreaze adresa elementului
adresa' elementului urmetor

un

pe
pozilie
in
lista'
pe
ultima
prima pozilie in liste, u!.tim adresa elementului aflat
Pe
ce pozilie se va gesi
cu
tip
acelagi
de
Dri:n
variabile
.unt ooui
ili

o- ii c'
pe
in listi modificatd in urma executerii secvenlei aleturate, elementul aflat
(4p.)
pozilia a doua, in lista iniliala?

(PascaD

=ultimt
while(p<>prim) do
begia q:=p;p:=I)^.urmi
p: =prin;prim:

ultim^.urm:=q;
ultim: =s

nali
uttis^ .u::m3 =nilr
Rispuns cotect: 3

Sipii""ti".

(C'C+*)

I o=nrin; prim=ultimt
I while (o ! =nrin)
| {c=D;n=D->urm'
I

ultis->u1fltr=qt
u]'tirn=q;

I
| )
I ultim-

>urm=![I['L;

Secvenla muta uftimul ultimul element la inceputul listei'

6,

Scrlell un program prscallc/c++ care cltgto de

la

A 031

tastaturd un numdr natural n (2<n<.15) gi construiegts in


memorie o matrice A cu n linii gi n coloane in care orice
element aflat pe prima linie sau pe prima coloane are
valoarea 1 gi oricare alt element Arj din matrice este egal
cu suma a doue ebmente din matrice, primul aflat pe linia
gi pe coloana j-1, iar cel de-al doilea pe coloana gi pe
linia

i-1.

Matricea va

la ? 9i
Se considere graful neorientat cu ? noduri numerotate de la 1
12'41'
t2'51'
muchiiletx,3l, 12,31, 13,41, t3,51, t5,41, tL'21,
un
reprezinte
noduri
t6,?1, t3,51. Care dintre urmetoarele succesiuni. de
(4PJ
laniciie trece o singure date prin toate nodurile,g,rafului?
(4,
7)
(1,,

(7, 5, 3, 5, 4, 2'

fi atigata pe ecran, linie cu linie, numerele de pe aceeagi

Unarborecullnoduri'numerotatedelaxlall,esiememoratcuajulorul

Rezolvare:
Se completeaze cu valoarea 1 elementele allate pe prima linie sau pe

vectorului de,,ta,ti"

begdn

rrtlln (n) t

for l:=1 to n alo bgln


A[1,i] :=lrAli,1I :=1 end;
for L:=2 to n do
fo, j.=2 to D do
AIi, JI | =Ati, i -11+Att-1,
for i:=1 to n do
begin
for j!=1 to n do
!,rtre(AIi,jl,,'),
$ritln
sd

(C/C++l

(4p.)

c. t5) d. ts, 2)

simultan'
Scrieti definitia corectd a unui tip de date necesar pentru a memora

unsigmed lorg A116l IX5t t


unsigad n,l, j, k;
noial naln ( )
{ cin>>n;
for(i=1; i<=n; i++)
AIll til =Atil I1t =x,
for(i=2; i<=n; i++)

ale unui
il;-;. ;;;ffi uuti"nira de acest tip. urmetoarelegicaracteristici
(numer
marca (cuvant de maximum 20 caractere) anul fabricatiei
jos
"ril"rir.i
n"iri"i iott"t Oin exacl 4 cifre), astlel incat expresia rascar' lc/c++ de mai
sunt memorate in
sd aib5 ca valoare vechimea maqinii ale cerei caracteristici
variabila:r.
2OO8-x.

for (j=!;j j=1.j11)

(6P')

anul-f abricatiei

Respuns corect:

AItI tiI=

Atil Ij -11+Ati-1l Ijl,

tC/C++)

(Pascaf)

f,or ( i=1t i<=n, i++ )

Elruct autoluriEm{
char narca [21] i

type autoturiEm=record
rnarca:gtrinq[20];
anul-f abricaLiei intger

( for(j=1, j<=n. j++)


cout<<Afil [j I <<' '-

int

cout<<end,lt

Dd.

t5, 2, 5t

Mullimea tuturor

Rispuns corect b'

# incLuale <ioEtran.h>

t=12,5,5.3,o,2,4'6,6,2'3)''

ascendenlilor nodului 8 este:


b.
$, 2, s,6, LOt

coloane. Celelalte elemente Arj primesc,valoarea .e.i,3_"+A1-.,3 .

lpascat)

5, 3' 6,
b.
(r,
5' 4, 2, 3, 6'
3'
d.

7)
L)

Raspuns corect c'

fiind separate prin cate un spatiu.


Exemplu: pentru tr=4 , se afigi:azd matricea aleturat5.

var n, i, j:blte;
ararral'l1..15,1..15I of 1ongint,

2, 3, r, s, 6,

anuL-f

abticatieilx;

endi

var x:aulolurismi

rl.

sunt de tip..intreg' iar variabila a


aleturatS, variabilele 9i
numerotate cu 1'
memoreaz'5 o matrice in care prima linie 9i prima coloand sunt
Toate elementele matricei primesc valori in urma execut5rii secvenlei'
pe cea de-a
Scrieli in ordine, incepand cu prima linie, doar elementele situate

in secvenla

treia coloane a matricei.


(Pasca|,

for j:=1 to 5 do
for i:=1 to 4 do
ati,jl:=2*i+j;
Rispuns: 5 7 9 !L

(6p)

(C/C++l

lfor(i=1; i < =5; i++)

lfor(i=1;i<=4;i++)
I ali! Ij I =2*i+j;

5.

So conslderd o listd linlard simplu lnldnluitd, alocatd dlnamic, in caro fiecaro


memoreazd in campul lnfo un cuvant format din Cel mult 2O do caractere,

a 032
I

litere mari ale alfabetului englez, iar in cAmpul urm, adresa urmetorului
listei sau Nrr.lNUr,L daca nu existd un element urmator.
Scrieti un program pascalJclc++ care citegte de la tastatura un numar
n (*-<100) qi apoi n cuvinte distincte, fiecare cuvant tiind format din cel mult
de caractere, doar litere mari ale alfabetului englez, gi construiegte o
I
simplu inlantuita, cu acele cuvinte citite, care incip gi se termind cu
literd. Cuvintele se vor memora in lista in ordine inversd citirii lor. proo
afiga pe ecran cuvintele din lista, in linie, separate prin cate un spaliu. - (1

Exemplu: pentru n=9

IRI E SUPAXAT POP DORIS SI

lerrcsr

f-+l m

r _r __

tPascat

info: string[20] ;

nod{

char info [21] ;


nod *urmi ) t

endt

s: string [20 ] rn, i:byee,


prin,p:pnod.;
begin write( ,n=' ) rreadLn(n),

begin
readln(E),
if cuv[1] =cuwtlengrth(s) l
then begin
new(p) t
P^. info: =s;
p^ .urm: =primi
Drim: =P

endi
p: =prira;
vrhiLe p <>

begin

cout<<'rn=n
prim=NItLL,

for ( i=1;
{

cin>>s;

niL

aleturate. Pentru acest graf este adevdrate

o1110000
r0101100
110 010 0 0
afirmalia:
10000100
01100100
o 10110 0 0
(4p) 0 0 0 0 00 0 0
o 0 0 0 00 0 0

b.
d.

Gralul nu are noduri de grad 0


Gralul are trei componenle conexe

linie

i cin>>n;

i<=11; iaa

'),'

Yalorii

Drim=P;

l
for(p=prim;p; p=p->urm)
cout<<p->info<< " ,,t

(6P)

i matricei.

(C/C++\

\Pascal)

for j:=1 to 6 do
for i3=3 doamto 1
AIi,jl:=i+j;

strcfry (D->inf,o, s) t

do

r 51

d.2 9i 3

c.5

5: (2)
6: (2,4

pe a doua
Scrieli in ordine, incepand cu prima coloane, doar elementele situate

if (s[0]==cuv Istrlen(s)
{ p=new nod;
l

3!(1,5)

l. (I ' 2')

ln'secvenla aleturate, variabilele i 9i j sunt de tip intreg, iar variabila A


1'
memoreaz'5 o matrice in care prima linie 9i prima coloana sunt numerolate cu
Toale elementele matricei primesc valori in urma executdrii secvenlei'

()

o-2,11rrn=prim;

wlite(I)^'info"

I): =P^ . urm


- end
end.

nain

(1,5, L)

R{apuns corect: b.
Graful neorientat cu I noduri, numerotate de la 1 la I'
oste reprezentat cu aiutorul matricei de adiacenle

RAspuns corect:

char s [21] i int n,it


nod. *prim, *pi

do

X! (5,6)
2z

lntr-o structurd de date de tip coad6 au fost addugate, in aceaste ordine'


urmetoarele valori:3,7-o,2,8 9i 5. Care este ultima valoare care s-a extras din
coade dac6 s-au efectuat, in aceast5 ordine, urmetoarele operalii: extrageJea
1Oo, extragerea a trei elemente' (6pJ
r"ri"f"t""t, adeugarea

include <ioEtrean.h>
iuclude <slring.h>

urm: pngd.

end

b. 1,3 9i

Gralul este hamiltonian


Gradul maxim al unui nod este 3
Rtrspuns corect: d.

1::::_l

lCiC++)

llnod=^nodi
nod= record

' prin: =nil;


for i:=1 to n

t,29i

ANA CITESC IiStA VAfJ

Rezolvare:

var

cu ajutorul
llstelor de adiacenle scrise alaturat Nodurile
(4p.)
care au gradul exterior egal cu 2 sunt:

Si cuvintele citite:

URSUZU

t}'I)e

Un gral orlgntat ste memorat

-11 )

Rispuns corect:

for(j=1; i<=6; i++)


do

3, 4, 5, 6, 7'

for(i=3;i>=x;i--)

Alil Ij I =i+j
a

(AItr t1l=3, AI2l 121=4,e12l t3l=5, At2t tat=6,e12! t5l=7, e12l t61=8)
Scrieli un program Pascal lc/c++ care citegte de la tastaturd doue caractere
c1 9i c2 (iite; distincte ale alfabetului englez),9i un te)d avand cel mult 250
car;ctere (doar spatii 9i litere ale alfabetului englez), pe care il modifica
inlocuind toafe apariiiile- caracterului memorat in c1 cu cel memorat in c2 9i
toate apariliile ciracierului memorat in c2 cu cel memorat in c1' Programul
afigeazi pe linii separate ale ecranului atat textul initial cat 9i textul ob-tinut dupe
efecluarea

inlocuirilor.

Exemplu: dace pentru

c1

se citeste a, pentru

este:

hocus pocus DrepgratuB


se va afiga

hocus pocus PreparatuE


hacus pacuB PrPgrgtug

(10PJ

c2

se citeste o iar textul citil

es t,srut.lruo . lrlrrur tnrrooulr, Camolaf CU CAtaCtCr,


9l S6
toFtc aparlllllo caractorulul 01 cu 02 lnvere.
9l
Notgm cu D pozlfla prlmulul caracter dln
9lr 9l cu u pozllla ul mulul caractr dln glr
(pEntru limbajul Parcal D.1, u.rengrhir),
lar pentru llmbalul c/c++ p.o

u-rtrl.n

(. ) -1)

cittt cl,
cit.pt s
tcrLc e

c2

alrfel
I I
I I d""a slil=c2 arunci s[i]c1

lltr

gcrLe s

Se conslderd graful neorlentat cu 6 nodurl' dollnlt


cu alutorul lls'ielor de adlacenle aldturat' Care

scrLa rand nou


fpGntlu iD,u executi
I d""A slil-cl aruncl stilcz

lrl
l.|

A 033

l,

1r 4,5 ,5
trt 5
3r 4

1,3

5r L,2,6
!t5

6z
dinti6 mufhrle urmltoare de nodud."': !?1:
ale unor lanluri de lungime
(4p.)
(4p)
.2 cu
"*tt"titet
o'rromitate
"i"t"tt"i"
calalta e*remitate in nodul 5?
^,, ^^6r.tri
(3)
d. {2,6}
c.
b. {2)
t1, {, 5}
Rtrapuns colecti a.
de la 1 la 18 Si este
Un arbore cu redacind are nodurile numerotate
'
;;or;;;; prin vectorul de tati t: ie'8'o'3'4'3'4'7"L'2't'3'7
3 este egal cu: (4p)
nodului
descendenlilor
tuturor
r.rtmarul
t il-t, .'lit I .
1s

d'

c' 17

b.6

Respuns corect: c.
pentru a memora simultan
Scrieti definitia corecti a unui tip de date necesar
ale unui cerc:
caracteristici
o" ut"tt tip, urmetoarele
"
4
cifre) qi raza
mult
cel
cu
centrului cercului (numere intregi
ai
diametrur
calculeze
sd
mai.los
"to"nuta
;.tr;i incai exiresia de
x'
in
varlaolla
aie carui caracteristici sunt memorate

;;;ttdilJi;;;ia
"t.i*
#::l"rl'""i;#;;;"i;
cercului

(6p)

2*x.raza
Respuns corect:

s]rpe

lPasca{J
cerc=record

alsciea, oraooata:

raza:real

'I

(Cc'

r)

int alsciaa' ordonatat


integeri l:ta:t::::
l{
I f10at raza) i

endi

j
tip intreg' iar variabila a
ln secvenla de mai jos' variabilele i, 9i tr sunt de
coloandsunt numerotate cu
rutor""ta o matriie in care prima linie 9i-prima
;:"+;;ilil";t"ie matricei piimesc vatori in urma executarii secven'tei
il;ii;

;i.;,1;cepdnd

p fiecare linie
cu prima coloane'lementele situte

#Hil"i1#""iu'u?#;ilili;u"i""uia'ii"""uunleialeturate'
:f;z=2i

lPascal

for j:=1

tso

5 do
3 dlo

i"i i,=r !o
begin

endl;"i

j, il t=*;*t=x+1 ',

Respuns corect:

234
567
s 9

10

1L 7.2 1,3
14 15 15

It'r=ti

Q/C++\

lfor(J=1;j<=5;j++)
lforli=1;i<=3ti++)
tlt=x;
I tatjt
x=:r+li
I

(6pJ

o ste dublu lnldnlultd, slocatd dlnamlc, memoroaza ln cempul j.n!o


fiecdrui nod un numdr real, iar in campurile ,.rln gt pr..
aOresa nod
urmdtor, respecliv precedent din listd sau NrLlN0Ll Aacd
nu exista un
urmdtor, respectiv precedent. Adresa primului nod este
memorate in

prim.

Considerandu-se .creatd lista dublu inlentuita, scrieti


declararite de
d,efiliri lisiei precum gi secventa de program pascal
T^1e,:?:e.
lc./cr+
modlficd lista, inserand dupe fiecare,valoare negatiia oln
tista, un nou nod,
care se va memora valoarea o. gi afigeaze toate informatiile
din nodurile

dupe efectuarea acestei operalii.

ARIANTA 034

l.

Dnod,=^nodt

nod,=record

infot real i

urm,prec:Dnod.
endt

slruct

{C/C++J

nod(

fLoat info,

nod *urm, *preci


) *Prim, *P, *n'

var prim, p,q: pnod,


p: =prim;

while p<>nil d.o


if D^. info<O thn
begin

t q^. info: =0;


q^.urm:=p^.urm,
new(q)

Q^

D^

.Drec: =p;
urrn: =q;

if q^.urm <>nil then


q^ .urm^

.prec: =q,
p=p^.urm^.urm

nd

elge p: =p^.urmt
p; =prirn;

while p<>nil do begin


t"ite (p^ . ittfo, ' ';-

muchiile t1,601, I60,201,

r.3b.56c.54d.0

cu:

(4pJ

Rispuns corect b.

t.

intr-un arbore cu reddcini cu to noduri, numerotate de la 1la L0, nodul L0


este radecine, iar intre celelalte noduri existe relalia: nodul cu numerul i+1
este tatal celui cu numerul i, pentru i'e|L,2,3,4,5,5'7 'S'91' Veclorul de
(4PJ
tali al arborelui astfel definit, este:

t. (o'L'2,3,4.5,6,7'a'9,

b. G,2,3,4,5,6,7,4,9,O'
d. (9,8,7,6,5,4,3,2,L,O)

E. G,3,4,5,6,7,A'9'tO'O)
Rispuns corect c.

l,

intr-o liste simplu Tnldnluiti alocate dinamic sunt memorate

in

ordine,

urmatoarele valori:

E-rE-'E-rE-'E-'fl-'E
p estEo variabile care reline adresa primului element al listei 9i fiecare

(p | =NIILL)

Dacd

in cAmpul urm adresa elementului urmStor din listd sau


NrtlN{rl& daci nu existd un element urmetor' care este informalia din
element reline

if (Xr->inf,o<0)
t q=new nodi q->inf,o=0;

elementul a cerui adrese o va reline p

q- >urm=p- >urmt

Q->Prec=P;
P->urm=qt

if (q->um!

numerotate de la 1 la 60, are numai


t2,301 9i I4,3Ol. Numarul componentelor

cu 60 de noduri,

conexe ale gralului este egal

Rezolvare:
( pdscalt

tlE

Graful neoriental

(Pascalt
D: =p^

=NIr,Ir)

.urmi

while p^.urm^ .urm<>NIL do

q->urm->prec=qi

p3=p^.urm^.urmi

p=p-)urfl->urmi

Tn

urma executerii secventei alSlurate:

(6p)

(CiC++j
D=p->urttri
while (D->urm->urmf

9=p->ulm- >urni

Rispuns corect: 9 (dupd executarea secvenlei

]
else p=p->urn;

=0 )

D va reline adresa penultimului

nod din lista)

f,or (p=prirn;p;p=D->urm)

Ce se va afi9a in urma executarii secvenlei aldturate, in care variabila c


memoreaze un gir cu cel mult 20 de caractere, iar i este o variabile de tip

<<F->info<<" ',
I Printf, (2%f ,,,p->info);

intreg?
(Pasca,

p=p^.urm endi

(C/C++j

ci=rlamara'i

for i:=1 to length(c) do


begin p:=!)os(rar,c)i
write (9) enal,.
Rispuns corect: 222222

(6p.)

char c I21l ="tanara", *Di


for(i=0, i<strlsr(c), i=i+1)
(p=strc!b.r (c, 'ar) t
cout<<P-ci
' 111111
Respuns corect

Se afigeazd pozilia pe care se gesegte litera a in gir de un numer de ori egal cu


lugimea girului
t6.

c.

Scrieli programul pascal lc/c.r.+ care citegte de la tastature un numer natural


n (a<20), construieqte in memorie 9i afigeaz5 pe ecran, matricea cu n linii gi n
coloane, in care se vor memora in ordinea crescetoare a valorii, pe linii I'
coloane, primele n' numere naturale nenule, pare, care nu sunt divizibile cu 3.

rrossrc flnto a marfloot !o vg altge p catc

nlo a

ecranulul, cu elementls de pe acaeagl llnle separat prln


cete un

Bpallu.
Exomplu: pentru nrl

alaturate.

Rszolvaro: o solulie posibild de rezolvare este descrise


n
zr2

)entru i1,n excuti


I pentru j1.n executl

ll

A 038

se va construi gi afiga matriceal 38 {O 44 46

cite?t6

I z { a 10
I 1{ 16 20 22
| 26 28 t2 3l

(10p.)
Tn

mullimea muchlilor

pseudocod:

|L,2,9'4,5,5,7,8, 9i
{t1,21, t2'31, a2,11, t4'71' t2,5I' 11,sl' I5,51'

Se consldera graful neorientat cu mulllmoa nodurilor

t5,st, I7,sl ). Pentru a traslorma gratul intr-un arbore, putem elimina:


b. muchia I5, 5l
l, muchiile t1,5: 9i t1,21

o.

d.

nodul 3
Rtrspuns corect: d.

muchiile

12,6t qL

(4p')

14,11

I u1ix
I xx+2
|
4aca x *

Se consideri o listd alocate dinamic care are cel pulin 10 elemente 9i fiecare
slement al listei memoreaze in campul info un numar intreg, iar in campul

\l

aleturate de program, variabila p are valoarea Nrxr lNUI"L, atunci:


(C/C++)
(Pascal)

adresa elementului urmetor in liste sau NII,lNur,L daca nu existe un


element urmdtor. Variabila D memoreaze adresa de inceput a listei, iar
variabila aux este de acelagi tip cu p. DacA in urma executerii secvenlei

3=0 atunci
xx+2

II
lr.r

ncxt

rpentlu i1,n eriecute


I rpentlu j1,n executi

| | scrie

while (D<>NIL)
. (D^.info

ll13

lEserie rand nou

whil (D

aral
UOD

5<>0)

dlo

aux: =pi
=aux^ . nerrt t diBDos ( aux)

D:

ndi

t.
b,
0.

d.

&& D->info%51=0 )

t
aux=Di
D=auj<->nexti

begin

IqI

(4p)

delet auxi /f,ree

(aurc) t

toate numerele din stive sunt divizibile cu 5


doar primul element din stive este divizibil cu 5
in stive nu s-a memorat niciun numer divizibil cu 5
doar ultimul element memorat in slivA este divizibil cu 5
Rispuns corect c.

Ce se va afiga in urma executerii secvenlei aleturate, ln care variabila c


memoreaza un 9ir cu cel mult 20 de caractere, iar variabila i este de tip
(6P)
intreg?
(C/C++)

(Pascaf)

char cll="trmlra"i
c:='taMra't Ltz4i
for ( l=0, i<3, i++ )
whil i>'1 ato
clilscli+11,
bogLn c til 3=61i+11ri:al-llendt
wrlt (c) ,

RAspuns corect:

rrrrra

Un grat neorientat cu

10

ama.ara

1:3,5

noduri numerotate de la 1 224

reprezentat cu ajutorul listelor de 3:1,5


adiacenle alaturate. Cate componente conexe are 4t,2,9
graful gi
care este numerul minim de muchii ce 5:1,3
-addugate
pentru ca graful se fie conex? (6p')
tiebuie

la 10, este

Rispuns corect: 5
conexe gi 4 muchii.

componente

let lz'ro
l8r4

ls, -

I'o''

t.

Scrlgll programul paEcat lc,/c++ care cltegte de la tastaturd un numdr


n (n<50) gi construiegte in memorie o matrice cu linii gi coloane,
cdrei elemente sunt numere intregi citite de la tastature. peniru fiecare colo
a matricei, in ordine, programul afigeazi pe ecran cel mai mic num5r dt
respectiva coloan6. Numerele afigate vor fi separate prin cate un spaliu. (101
Exemplu: pentru n=4 gi matricea aleturata, se vorl rzz
10

a 036

l,

$tiind cd in urma executArii secvenlei alaturate s-a afigat succesiunea de

caractere Exar@N, care este girul de caractere memorat de variabila


(C/C++l
(Pascal)

ros 5

R.ezolvar:: Urmetoarea solulie (descrise in pseudocod)


elementelor memorate in matricea

citegte

Dr

sunt numere din intervalul

xr-lnglh(s) t
lor i!=1 to x diw 2 do
writ (s Ii], 8 hr-i+11 ) t

presupune .ce

il,nl.

INXAI4E

i1,n executi
| ;pentru jl,n executa
I I citegte Mij
lll
\I
rpentru j1,n executi
fDntru

raia_col

ltr

I scrie min_col,,

x=strlen(s),

b. EAETSD(
corect: b.

for

( i=or i<x/2 t i++ )


cout<<s Iil <<s 1x- i-11 ;

lprintf

('?ctc",

C. ITEEX}IA

tiL s [x-i-1I ) t
d.

NEMAXE

L
b.
0.

(6p.)

intr-o listA liniara simplu inlSnluitd, alocate dinamic, fiecare element reline in
campul aalr adresa urmetorului element din liste sau niliNur,L daca nu
existd un asemenea element, iar in campul info un numer intreg. Adresa
primului element al listei este memoratd in variabila p. $tiind cd lista con.tine
elemente, atunci expresia p^.adr^ ' iafolp-> adr:- > iixfa
exact
(4p.)
reprezintd:

trf11

rpentru i2, n executi


| 4aca Mrj<miD._col atr.rnci
I I rniq-colur;

llr

Rtrspuns

3?

d.

adresa celui de al doilea


adresa celui de al treilea
valoarea memorata in al
valoarea memorata in al

element
element
doilea element
treilea element

R;spuns corect: c.
Se considera un graf neorientat cu 7 noduri numerotate de la 1 la 7 gi muchiile
care
aL,21 ,tL.3l ,t2,31 ,12,41 ,t2,sl ,t2,61
graful
incat
se
astfel
adeugate
este numerul minim de muchii care trebuie
(4p.)
qi
muchii?
care sunt aceste
devine eulerian

,14,6l't5'7!,t6'71.

Rispuns corect: 3muchii: a2,71,a3,61 ,t3,71


CAte muchii trebuie eliminate c,inlr-un grat neorientat complet cu 20 de noduri,

pentru ca graful partial obtinut sa lie

arbore?

Rispuns corect: 171 muchii (un graf complet cu 20

(6pJ
de noduri are

20*L912=r9O muchii gi un arbore cu 20 noduri are 20-1=19 muchii)

l.

Se considerd o matrice cu n linii gi m coloane (13<30,


1<n<30), ce memoreaze numere intregi de cel mult 4 citre
fiecare. Scrieli un program Pascal lc/cri care citegte de
la tastature valorile a, n gi elementele matricei gi care
afigeazd pe ecran, separate prin cate un spaliu, valorile
minime de pe fiecare coloand, in ordine de la prima la
ultima coloand.

Exemplu: pentru

n=4, n=4 gi matricea


3 2 ? 3.

afiga pe ecran valorile

aleturate se vor
(10PJ

34
252
183
37

90 10
79
104
203

E.rorvrra: urmarosroa Sotulto (o0cfl84 In pScudocod) progupune


olgmentolor memorate ln matrlcea A sunt numere dln lntervalul [1,n].

cLteat n,

lr
qI

tpentlu i2, n executi

I
I
I

\t

llr
lt

gcrie minc, , ,

Etruct elev(

ttt). .lvercord'
nune t Etring[30],
nota: rsali

minceArj

(C/C++1

(Pasca4

rpntru jen,1, -1 executi


dac5'Aij<min atunci
I minc A15

Fle dclar6rile aleturate. Daca variabila x reline informalii despre un elev,


proclzali care este varianta corectd ce afigeaze prima litere din numele
(6P.)
rc6stula?

tertru l1, n executi


| 6rentru j1.m executd
citeite Au
I I

I
I

037

l,

vtr

elovt

nrl,ta'tr(nurn)

t, rrlt.

cout<<numet

printf

nume

[30] t

float lotai

elev xi

end;

char

)t

('%c", nume)

;
cdut<<x; I nrintf ('?c",x);
corrt<<x.nune; I
printf ('?c", x.nrure ) ;
cout<<x. nurne [0] ; I
printf ('?c", x.nune [0] );

(:r) t

t, nrlte tx.lune) ;

L vrlce(x.nune[1] );
Rlspuns corece d.

lntr-o listd liniard simplu inlenluiti, alocate dinamic, fiecare nod reline in

cAmpul adtr adresa urmetorului nod din listd sau ni1 lNsr,x, dace nu existd un
relin
9i
nod urmator, iar in campul lnfo un numar ?ntreg. Variabilele

adresele cate unui nod (nodul referit de d este inclus in lista, iar cel referit de

q nu apa4ine listei). Sa se identifice secvenla de instrucliuni carc tealizeaze


lnserarea corecti, in list5, a nodului referit de variabila q, ca succesor al
(4p.1

nodului reterit de variabila dl.

(C/C++)

(Pascal)

t, d^.adr:=qt q^.Adr s =d,


b,
0,

d.

q^.adlr:=d^.adr, d^.adr! =qt


d^.adr:=qt q^.ldr!=d^.ad
dsEqt q^.adrr=d^.adlt
Rispuns corect: b.
Se considera un graf orientat cu

varfuri reprezentat in figura aleturate

a)

d.->adr=qt q->adr=d,
q->aalr=d,->adri d->adr=q;
d->adr=qt q->adr=d->adrt
d=q, q->adr=at- >ad.ri

Care este matricea de adiacen!5


(6pJ
Rispuns corect: o 1 o 1 1

corespunzetoare

grafului?
10100
00010
00001
10000

b) Scrieli varfurile care au gradul intern


maxim.

(6PJ

Rispuns corect 1, 4, 5 (grad intern 2)

\,

4.

Un glr cu maxlmum 255 de caractero conlin cuvinte separate prin unul


multe spatii. Cuvintele sunl formate numai din litere mici ale alfabetulul
Scrieli un program pascal lclc++ care citegte un astfel de gir gi il

A 038

lntr-o lisl6 liniare simplu inldnluiti, alocate dinamic, fiecare nod reline in
oAmpul adlr adresa urmetorului nod din listd sau nilllrul"! dace nu existe un
nod urmltor, iar in campul irfo un numdr intreg. Consideram ce o astfel de
llat6 memoreazi, in ordine, doar valorile 7, 5, 4, 9, 3. Variabila d reline
adresa nodului la care este memorat5 valoarea 4. Care este secvenla de
lnstrucliuni care lrebuie executati pentru ca lista si con!in5, in ordine, doar
(6p.)
valorile ?, 5, 9, 3?

modificat, prima 9i ultima litere a fiecdrui cuvant fiind afigatd ca literd mar6,
Exemplu: pentru girul: naine
Lnf,ormatlor
afiqa:

ejte Droba la

MAiDE EEtE
Rezovare:

PTobA

LA

hfor aticA
(CiC++j

{Pascal)

v!!

string [255] t
i ! b!'te,

voitl main( )
{char E[256] rint i,

aI

begin

radLn ( s)

if

[1] <>' ' the'lr


I [1I !=chr(ord(s t1l ) -32 ) t

Ilength (s) I : =
chr(oral(s IlenSrh(B)

if

[trlen(s) -11 r=,')


[strlen{E) -1t -=32,for ( i=l; i< Btrlen(s)-1rr.++

elld.

(s

if (s Iil !="&6.
(sli+ll==" ll Eti-r1==
s til =E Iil -32'

COut<<gi

I,

d^

a&:

b,

at^

ad!

t,

] ) -32 ) ,

for i:=2 to lnght(s)-1 ato


if (s Il1a; ' t1"n6
( (sti+r1=' ')o!(EIi-1I='
') )then
s Iil : =qlr1'16e6(s Ii] ) -32 ) ;
wrile (a) t

(Pascal)

cin. get (a,255 ) ,


if (8t0I !=' ')
E I0l = (8 t0l -32 ) '

if gllellgth(s)I<>' . thetl
s

.(10p,!

r!.

=d^

! =dt^ .

d^ . info: =d^ . ad!^


adlr^ . aalrt

adr;

info,

d^ .lnfo: =d^ . adr^ . info; d^.adr!=d^'adr^'adri


d^ . adr^ . adr 3 =d.^ . ad,rt at^ . adr^ . ilf o : =d^ . inf, oi
(C/C++)

L d->ad!=d->aalri d->iafo=d->adr->info;
b, ll- >!d!=d->adr->adr;
0, d- >irtf o=d->adr->inf o; d->adr=d->adr->adri
d, d- >ldr->adr=d- >Bdri d->adr->inf o=d->inf o;
corect c.
Considerdm ce variabila E memoreaze girul de caractere examen. Care va li
valoarea lui s dupa executarea instrucliunilor?

(Pascat
rN', 3
[tength( I ) ativ 2l
r [1] ! ='E'r s ILngth ( 3) I : =
r Ilnsth(s) ctiv 2+11 := 't'l'.

=']'t

(CiC++)
g

I0l =;E'; g Istr].e!r (s ) -11 ='N't 3 tstrlan (8) /2- 1I ='A',

(4p.)
s) /21 = 'M't
E
rAlleN
d.
c. EXII'EN
b. exNten
llrpuns corect: c.
l. Se considera un graf neorientatcu 7 noduri, numerolate de la 1 la ? Si muchiile

Istrln(
a, lnlmN
r

I1,5l t2,3t, 12,4!, t2'sl,

13,41' ar'51' ar'71' a5,61, ts,7!.

a) Cate cicluri elementare distincte existe in graf? DouS cicluri sunt distincte
daca diferA prin cel putin o muchie.

(3p.)

Rispuns corect 6 cicluri


b) Care este lungimea maximd a unui ciclu elementar din acest graf?
Respuns corect: 5

(3pJ

c) Care este numerul minim de muchii care trebuie eliminate astfel incat graful
(6p')
p;4ial oblinut sa aibd 3 componente conexe?
Respuns corect: 2 muchii

n linii 9i n coloane (13<30)' ce


mull doua cifre fiecare. Scrieti un
de
cel
memoreaze numere intregi nenule
valoarea n 9i elementele
de
la
tastature
program Pascal I c/c++ cate citegte
produsului
acelor elemente de
pe
cifra
a
ecran, ultima
matiicei gi care afigeaz5
Se considerS o matrice patratica cu

pc oragonals rocundare ca au proptlctatct ot lunt velorl mlnlm ps


lor. Dacd nu exlstd astfel d elemenle ln matrlce, ss va aflga

txts!r.

n-{

Exemplu: pentru
pe ecran valoarea

A 039
(1

gi matricea aleturatd s6 va aflga

1 (3*7-21).

34 90 10
2s2 fle
183 10{
'Ez 203

Stabllitl care dlntre urmatorii vectori este

vcctor do "tali" pentru arborele cu 7


noduri, numerotats de la 1 la 7' cu
rddecina 1 reprezentat prin matricea de
(4pJ
adlacenla alaturate:

Rezolvare:

cl"tst a, m
citesle n, n
rD:rtru,i1, n exeeuti
| ;pentru j l,n executl

citegte

I I

Itl
l1t

l, (1, 0, 2, 2, 1-' 5, sl
f, (3, 1, o, 2, t' s' 6l

diferd prin cel Pulin o muchie.

2l

t1,sl,

al.

c.5

b.{

Cate
dacd

(4p.)

corect: c.
retine in
lntr-o listd liniard simplu Tnlenluite, alocate dinamic' fiecare element
nod din
urmetorului
la.ori i"eo un nuniar intreg, iarin campul 1eg adresa prirnului element
Adresa
nod
urmator'
ii.iJ'.", Jir"uor, daci nulxisti un

fpentru j 1,m executi


nlnca13

Eatru i2, n executl


| ;aaA ArJ<niD. aturci
ninc ea1
ll

;i'i"i;i;];

alSturate, dacd lista memoreazS,

(Pascal)

I ra!,.f nincrA o.r-:,1 rtuacl


p (p*rdnc)t10
I I
nrenr+l
I I
Itl
l.|

xr-1r
*frff" tp^.f"S<>ni1)ato
begln
*]=1 * 9^.Ieg^.info,
p3=p^.1g,
rndr

fdaca nr>o atuncl.

wrLt(x)

fflpu^ "iiidtl
pozitia a doua)

l,

e. Ce valoare se va afiga' in

mlmorate in vanabila

"iJi,jiitiiil-*J.tei
J',-i,ii,z,ez'

Ilrl lrr

I scrle p
altfel
Itf acrle Mt ExrsrA

5)

t2,3J, 12,41, a2,5!, a3,41, tL,5l' a4,71' 15'61' as,7l


cicluri elementare distincte existS in graf? Doui cicluri sunt distincte

tu3

nr0

d.

corect: b.
Un graf neorientat cu ? noduri, numerotate de la 1 la 7 are muchiile

D1

I
I
|
I

b.

0100100
1011000
0100000
0100000
1000011
'0000100
0000100
(0, L, 2, 2; L, 5,
Q, L, O, 2, t, 5,

urma

in ordine, doar valorile


(6P')

'tcrc**\

lx-1;

(n- >Ieg I :NIlLIr)


lwhile
(
I x'x * p->1eg->infor
I
I ) n=n->Ieer
|
(?d
I
- lcout<<xr lprintfaflate
'x)liste
incepand
in

{44 (se calculeazi prbdusul elenientelor

considerrmdeclaraliile:

(pascal

,1"/?llo, ,r0,,
lr".
var i,J lintegeU
f-- -"'a3array[1..10'1..101of lnlgrr"
(5p.)
Ce se va afiga dupaexecutarea secvenlei de instructiuni aleturate?
I

(Pascall

f,or i!-1 to 3 ilo


for j!=1 co 3do
att'jl:=i+J;
for i!=1 to 3 alo begin
f,or j:=1 to 3 tlo
wrice(aIi,il)t
lrri!e1n
enal;

|lfor

(c/c**I

1,.1t i <.3, i++

I forU=1r j<=3rJ++) atil tJl=t+j;


lfor ( i=lr i<.3, t++ ) {
I for(J=1;J<=3rJ++)

lcoue<<ati! tjt, lDrintf('?d",atil


(-\n') , )
I cout<<eattl; lDrintf
I

tjl );

Rdspunr corect: 23r(

a 040

3{5
{55
Un gir cu maximum 2s5 de caractere conline cuvinte separate prin
spaliu. Cuvintele sunt formate numai din litere mici ale altabetului
Scrieli un program pascal lclc++ care citegte un astfel de gir Si il
modificat, inversdnd prin oglindire doar cuvintele care incep cu vocald,
exemplu. Se considere ca fiind vocale urmetoarele litere: a, e, i, e, u.
Exemplu: pentru girul: maine este proba Ia informatica

5.

afiga:

Rezolvare:

wa! s: st!i!.g [255] t


i, j, k: intege+
begin
reedh ( s ) i s =s+, ' i
i:=1;i:=1;
for j:=1 to lensth(s) do
if s[jt*r I g5e'
begin
if
Dos(E [il, 'aeiou'
th!'
for k:=j-1 dlowntq i tio
l'rite (c [k] )

for k:=i to j-l ito


write (c lkl ) ,
write( " ),
i:=J+1

ad

eld.

s 12551 ,

*pt

9=strtok(s," ',),

ls4

while (p)

{if (strchr("aeiou",pl0I
Btrrev(p),
cout<<D<<rr ni

) >0

p=strtok
)
)

(NUIJIJ,

tr r)t

rD x operalia prin

)}

xin

coadd 9i cu Er. operatia prin care


Asupra cozii se efectueaze,
din
coadd.
Bo elimind un element
AD
x0; AD 15; Er"; A.D 4;
in
ordine,
operaliile
exact
aceaste
rr,; AD 20; Er,. Care este conlinutul cozii dupe executarea
(4pJ
operaliilor de mai sus?
care se adaugd informalia

voial main( )
{cin. get ( s,255 ) t

1se

roprezentat in figura aldturata. Notem cu

(C/C++)

char

coract: d.

6s considere o coadd, in care au fost introduse initial, in


aceaste ordine, doud numere: 2 gi 1. Conlinutul cozii este

mline tEe Dloba la acitarEofni.


(Pascai

So consider5 vectorul de "tali" al unui arbore cu redecine t= (3,4, 0, 3, 3, 5 )


sle cdrui noduri sunt numerotate de la 1la 6. Alegeli alirmalia corect6: (4p.)
L noduril 4 gi 5 sunt noduri de tip frunzd
t. nodul 3 are un singur descendent direct (liu)
t, nodul 6 este tatel nodului 5
rl, nodurile 1,2,5 sunt noduri detipfrunze

c. L20

b. Ls120

d.

20

corect: b.
Se consideri un graf neorientat cu 8 noduri numerotate de la 1 la 8 9i muchiile
I3,71, 14,61, t5,8t, t7,8I. Dace
t1,5t, t1,5t, t2,61, t3,41,
se elimine nodul 5 9i toate muchiile incidente cu acesta, cate componente
(6p)
conexe va avea subgraful rezultat?
corect: 3

I3,6I

Considerim declara.tiile:

(P"u"",

,,

\C/C++.\

var i,J:iateger;
lint i,j,at10l
a:array[1..10,1..10]of integrt

1101,

Ce se va afiga dupd executarea secvenlei de inslrucliuni


(CiC++)
(PascaD

lor i:=1 to 3 atro


f,or js=1 to 3 do
if i<j then ati,jl r=i
else all,il:=i;
f,or i:=1 to 3 do
begin
for j:=1 to 3 do
write (a Ii, i I ),
writeln
endl;

ilrpuns corect:

for ( i=1; i<=3; i++ )


for(i=1;i<=3;J++)
if(i<jlalil Ij I =ir
else a Iil Ii I =i;
for (i=1r i<=3 r i++) {

for(j=1tj<=3tj++)

L22

t2z

[i] [i],
lnrintf ('?d",alil tjl );
cout<<eadl r lprintf ("\a");
cout<<a

]
111

aleturate?

(6p)

6.

Un glr cu maxlmum 255 de caractre conllne cuvlnt tormats numal dln


mici ale altabotului anglez. Fiocare cuvAnt este urmat de un caractar r.
un program pascatlc/c++ care citegte un astfol de gir gi afigeaze pe
girul oblinut prin eliminarea tuturor apariliilor primului cuvanl, ca in exemplu,

Exemplu: pentru girul: bin*albl.ne*

foarte*bL!*

A 041

Cete dlntre varfurile grafului neorientat ct, reprezntal prin I


matricea de adiacenlS aleturata, au gradul un numir par? (4p.)l

se va afiga:

*e1bir6*foarter r

1b.

Rezolvare:

(Pascat

var srstrlng[255],
Drlrnr ltring [25{l
l, nr ! Lrtgr,

rrflln(6),
l:'Dos('t',s)t

grfun: -copy ( s, 1, 1- 1) I

ndl,

end.

[255], rD,Drlr [2551,

cln.got(s,256),
D.strtok (s, " *,,) ,
strcDy(prln,D) ,
whlI. (D)

begt n

dLot6(s,1,1), !'rlt6 (, r, ) ,
lrhll. r<>,,do begln
ItrDo.('r',!),
ct!60lry(!,1,l-11,
lf c<>grln th.n !r!l!6 (c ) ,
trrlg6lr*';,
dLl.tc (., l, I )

1
0
1

1
0

Flcare nod al unei liste simplu Inlenluite, alocate dinamic, cu cel pulin {
noduri, retine in campul urrn adresa nodului urmator din liste sau nt1 INULL
dacd nu are un nod urmetor. gtiind ce variabila D retine adresa primului nod
din list6, variabila c retine adresa celui de-al doilea nod din liste, iar variabila
roline adresa celui de-al treilea nod dln liste, care este secvenla prin care se

vold n in()

(ch!r

00
11
0L
10
11

Rtrspuns corect: b

(C/C++)

2d.

01
10
01
01
10

lnterschimbe al doilea cu al treilea element din lista iniliale.


(C/C++)
(Pasca\

. ttf(trtrcryr(c,D))

I D->u: t=r, q->ul1trrr->urn,


r->ullnEqt
r^.um3'q,
p^.urn:=a, r^ .urrot !q^.urrn, lD->u!$Ffl r->ulmFq->u''l,
q->ut|rllrf ->urtn,
q^.utttr:Er^.u u

cout<<D t
cout<< "* ",

D^.uaml.r, q^.urm!!tr^.urm,

D=statok(M,LIJ, tr*1),
)
)

r->utmrq->urn, q->urnEr->ufin,

r^.Ut:n! Eq^ . Utm,


q^.uflltt =!^.ultrrt 9^.unntcr,

D->UllrEfl

D->urnrfl
a, q^.uflnrr^.unni p^.urnrEr, I q->unn'r->urn,
r- >Ul]ncq- >Urru
r^ .Uttn: !q^ .U:rm,
Rlspuns corocti a,

l,

Penttu reprezentarea unui arbore cu redacina, cu 10 noduri, etichetale cu


numere naturale de la 1 la 10, se utilizeazd vectorul de'lati": TATAc ( 4 9r 8,
(6 p.)
0, 10, ,rl, 8, 6, 2, 6 ) . Care sunt frunzolo arborolui?

Rlspuns corect:

l,

1, t, 5, 7,

Ce afigeazd pe ecran in urma elecutdrii secvenlei de program alaturate gtiind


(6 p)
ca variabila i. este de tip
(C/C++)
(Pascat)

char?

for (l='a, rl<.' zr rL++)


'lf (strchr( nlnfou,l) )

for l:o'a' to 'z' do


if por(i,'lnfo')>0

cout<<Li

tbn wrlte(l) t

Rispuns corect:

!,

Prlntf, ( "%c", i) ;

fino

Scrieli un program Pagcat lc/c++ care citegte de la tastature un


numar natural n (1SnS23) 9i apoi construiegte Tn memorie o
matrice cu n linii 9i n coloane, numerotate de la 1 la !, astfel incet
(lsisrr) 9i pe o coloan5 J
liecare element situat pe o linie
(lsi<n) va fi egal cu suma dintre 9i Programul va afiga
matricea pe ecran, cate o linie a matricei pe o linie a ecranului,

j.

elementeie de pe aceeaqi linie fiind separate prin cate un spaliu


Exemplu: dacd n=rt, se va afiga matricea aleturate.

23 45
3,4 56
45 57
55 7g

(Pascal)

war n,!.,JrInEcgcr;
!rarrry[1. .23,1. ,23] of
irrtgri
begin
read(n);

for i:=1 to n do
for j!=1 to B do
ati,jl:=i+j,
for i:=1 to n do begin
for j:=1 !o n do
write (a [i, j L , ');
eEitela
ud
eott.

(C/C r

tl

#Lnctudc< lor!r.am. h>


lnr n,l, J, a [art] I24l I

voial naln
{ cin>>n;

()

for ( i=l; Ii=1. ia*;


for (j =1, j <=nr j ++)
a [1] L] J =l+l t
for ( i=1; i<=n; i++ ) {
for(j=1tj<=nrj++)
cout<<a IiI Ij] <<" ".

cout<<end.li
)

A 042

(;nte dintre vadurile gralului neorientat

c,

nrotricea de adiacenld alaturate, au gradul

b.

reprezentat prin

o?

(4pJ

c.3

d.

00011
00000
00000
10000
10000
0

Rlapuns corect: a.
hrtr-o tistd simplu inlSnluite, alocatd dinamic, cu cel putin doue noduri, fiecare
nod retine in campul urm adresa nodului urmetor din liste sau nil /NUr.r, dace

nu are un nod urmelor. 9tiind ce variabila I) reline adresa. primului nod din
llBtd, iar variabila q este de acelagi tii cu p, care este secventa ce realizeazd
ollminarea celui de-al doilea nod din list5.

(4pJ

(Pasca,

t.

(C/C++)

q!=p^.urmt

a. q=p->urmt

D^ .urm: =p^ .urm^

.urmi

D'-

>urm=D->urm- >Urmi

disDose (q) t
delte q, I free (s) ,
b. p^ .urm: =p^ .untr^ .urmi
b. p- >urm=p- >urm- >urmi
dlisDoae (p) ,
delete Dr I free (p) ;
o. qr =D^ .urmi
c. q=p->urmi
q^ .utm! =D^ .urm^ .urmi
q- >urm=p- >urm- >urmi
dlispose (c) ;
delete qr I free(q) t
d. q: =p^.urm;
d. q=fr->urmt
q^ .urm: =p^ .urm^ .urmi
q- >urm=p- >urm->urm;
tlispos (q) ,
detete qr | f,ree (q) ;
Rdspuns corect: c.
ft]ntru reprezenlarea unui arbore cu rddecina cu 9 noduri, etichetate cu numere
rlnturale de la 1 Ia 9, se utilizeaze vectorul de
Dln c6te muchii este.format un lanl de lungime

Rd8puns

corect:

'[ali":r=15,9,2,7,3,3,2,4,7).
maximi in arborele dat? (6 p.)

6.

Variabila a memoreazd un tablou 6idimensional cu

5 linii 9i 5 coloane, numerotate de la 1 la 5, ale


c rui elemente sunt numere intregi. Care este cea
m8i mare valoare, memorate in tablou, deasupra
dlagonalei principale a tabloului construit in urma
nxecutdrii secvenlei de program aldturate ? (6 p.)

tPasca,

for i:=1 to 5 do
for j:=X. to 5 d.o
ati,jl:=j
nod i +
tC/C++)

for ( i=l, i<=5. i++ )


for ( j =1; j<=5' j++)
atil Ij I =je"i+i%j,

Rfspuns corect: 5.
Scrieti programul pasqat lc/c++ care citegte de la tastaturd un gir de cel mult
a0 de caractere, format doar din litere lmici ale alfabetului englez, $i care
flfiieazd pe ecran, pe o singur5 linie, toate vocalele ce apar in girul citit.
Vocalele vor fi afigate in ordinea aparitiei lor in gir, separate prin cAte un spa(iu,
ca in exemplu. Se considerd ca fiind vocale urmdtoarele litere: a, e, i, o,
u, Dacd qirul citit nu conline nicio vocale, se va afiga pe ecran mesajul fara

vocale.

Exrmplu: dacA se cltogto glrul oalcult!or, atuncl pe ecran ss va afl9a:

r ur o
var

(C/Ct'+\

(Pascal)

gtrLng [40] r
I, gasl,t: integer;

#Lnc1ud6<r.ostrcrm. h>

gr

begin
reatlln(E) t
for l: =1 to lngth(E)
do

if

pog ( s

til ,'aeiou')

*includ<atring.
char s I41l ;

h>

ini l, saEit t
voitl rnain ( )
t

>0

citr>>a

for ( i=0, i<Etrln ( 8) ti++)


if, (Etrchr( taetou", g [i] ) )
{cou!<<s Iil <<" ", gaEit=1, ]
if (sasit==0 )
cou!<<'lfara wocale" I

thon begin
write(elil,");
gasit: =1;
endl

lf glrsit=o then
rrri! ('fara vocale') ;
end.

A 043

(1

'

[,n graf

0x001
10110
01011
0L101
10110

neorientat este reprozentat prin matricea de


rdlacente aleturatd. Cete grafuri pa4iale distincte, formate
doar dln noduri cu gradul egal cu z, se pot obline din graful
dat? Doud grafuri sunt distincte dacd matricele lor de
rdlacenld diferi.
(4pJ

b.r

'd.

c.2

Rl3puns corect: c.

lntr-o listd simplu inldntuite, alocate dinamic, cu cel pulin doud elemente, flecare

aloment reline in campul um adresa elementului urmetor din liste sau


Nr.I lNur,r, dace nu are un element urmetor. $tiind ci variabila D reline adresa
prlmulul element, iar q reline adresa ultimului element din liste, care este
numdrul de elemente din listi, dace expresia de maijos are valoarea true I 1?
(Pascaf 9^.urm^.urn=q I (C/C +.*l p->uzn->uIm==q
(4p.)

b,f

c.{

d.5

Flrpuns corect: b.
Pcntru reprezentarea unui arbore cu redecind cu 10 noduri, etichetate cu
numore naturalg de la 1 la 10, se utilizeaze vectorul de tati: ,IATA= (6, 8, g,
0, Lo,
6,
6). Care este redacina arborelui gi cate frunze are
tcs6ta?
(6pJ
ilrpuns corect; reddcina 4, 5 frunzo

4, 8,

2,

Cc afigeazd pe ecran urmatoarea secvent5 de program, unde a este o variabild

dt tlp

string | gir

d.6

c!r!c!r?

\Pasca\

rri'lnfo:irnrtLcr't
d.l.te(a,3,3),
rrlt. (a) ,
Rlspuns cotcti I trtlc!

(6p)
(C/C++)

ttrcDy(a, " lnf o:maticr" ) ,

cout<<a, I Drtntf

"%r", r) ,

Scrieli un program pagcat lclc+r care citegte de la tastatur, un numer.natural


n (0<n523) gi apoi construiegte ln memorie o matrice cu n linii gi D coloane
.Btfel lncet elementele situate pe diagonala principald sd fie egale cu a, cele
rltuate deasupra diagonalei principale se fie egale cu 1, iar cele situate sub
dlagonala principald sd fie egale 3.
Programul va afiga matricea pe ecran, cate o linie a matricei

pe o linie a ecranului, cu cate un spatiu intre elementele


flocerei linii.

lxemplu: dace n este 4, atunci programul va construi gi va


eflga matricea aldturata:

(10pJ

2L
32
33
33

11
11.
2L
32

- Q/A+rl
*i.nclud.< lortr.an. h>
lnt t, J,n, r t24l [2{1,

(Pascall

war areffry[1. .23,1. .231 ot


latogorr

vold nrh

a,l,J:iltteg6ri

bgiD

rrdll! (q) ,

tor i:=1 to r do
for jr=1 to a do
if i=j tbn ati,jl:*2
lB if i<j thll ati,jl
elge ali,il:=3;
for l;=1, to n alo begin
for j:=1 to r do
write(ali,iL " );
l'riteLn
6d
@d.

s=1

()

(
cin>>n;
for(i=1;1<=nr i++)
for(j=1, i<=n, i++)
if (t==j ) alil tjl=2r

alse if (i<j ) atiltJl


else a Iil IjI=3r

for(i=1;i<=n;i++) (
for(j=1; j<qu j++)
cout<<alil [j I <<"

cout<<odli

a 044

(lrrful orientat

0.1 0 01
10100
00011
0x001
10000

G este reprezental prin malricea de adiacenle

dlllhrratA.

OAte vaduri din gratul dat au gradul interior egal cu gradul

dxlorior?

(4p.)

b.

c.3

Rlspuns corect: d.

d.

Irrtr-o listd simplu inlentuite, alocatA dinamic, cu cel pulin 4 elemente, fiecare nod
rollne in campul urll adresa nodului urmetor din listd sau nit llru]:L daca nu are
un nod urmelor. $tiind ce inilial variabila p rqine adr*a primului nod din listd,
dupA executarea cerei secvenle p va retine adresa ultimului nod din listn? (4p.)
(CiC++)
tPasca[l

t. r,rhile D^.urm<>nil

p: =p^ .urmt
b. while p<>nil do

do

p!=p^.urm;
o. p 3 =p^.urm;

d,

D: =D^ .p^ . urm,

a. !*rile

(p->u:n! -M!IL) lFp->ujalt

b. trile(p!{Dl[,)
c.
d.

IFp->ursnt

IFp->utmi
I=p->p- >urrn;

Rdspuns corect: a.

Itrntru reprezentarea unui arbore cu reddcinS,. cu 9 noduri, etichetate cu


nlllnere naturale de la 1 la 9, se utilizeaz5 vectorul de ,,tati":
1r17,0,2,7,6,2,3,6,5). Care sunt nodurile arborelui ce au exact 2
dnscendenti direcli (Ri)?
(6 p)
ilapuns corect 2, 6, 7
On valoare se va afiga pe ecran in urma executerij secvenlei de program
rltlturate, gtiind cd variabiia a este de tip Sir de caractere, iar
do lip

intreg?

rr.'info"
lor i: =1 to'16nEth(a) alo
| [1] . =chr (ord(a Iil ) +1) ,
rrlte (a) t
5

este o variabili
(6 p.)

(Pasca,

Rdepuns corect:

(CtC+.r\

strcpy(a, "info" ) t
for(i=0, i<Etrlen (a) ri++)

a Iil =a [i] +1,


cout<<ai I printf

( "e"6

", a) t

os1>

Scrieli un program pascaL lclc++ care citegte de la tastaturd un numdr natural


n (0<nS23) $i apoi construiegle in memorie o matrice cu n linii gi n coloane,
k)rmate din numere naturale nenule mai mici sau egale cu n, astfel incat sd nu
xiste doue linii cu aceeagi sumi a elementelor gi nici doud coloane cu aceeagi
xume a elementelor de pe ele.

lrrogramul

va afiga matricea pe ecran, cate o linie a matricei pe o linje

ncranului, cu un spaliu intre elementele fiecarei linii.


Exemplu: dacd n=3 atunci o solutie posibild este urmetoarea matrice:

111
112
L23

R.zolvar.: Vom mrg pe ldeoa do rzolvarc datd do exomplul dln snunl


completa matrlcea pd llnil, de la stenga la droapta astlol: pe. prlma llnlr
elenientele egale cu 1; pe a doua llnle, n-1 valorl ds 1 lar tn ultlma
valoarea 2, pe a treia linie, n-2 valori de 1, un 2 9l un 3 etc.
(PascalJ

vsr a:ar?aytl..23,L..231 of
irt69lri
n,i,isintegert
begin
readlln(n),

f,or l:=1 to n do
for J:=1 to n.do
lf, j<-n-l+t then ali, jl:=1
elge ali,Jl:=i+j-n;
for ir''l to n dlo begin
fo'r J:=t to n do
wrtte (all, J L " ),

lrrlteln
and
nd..

(C/C++\

#includ<loatsrerrrt. h>

int 1, j,n,a[24'1124rt
voiil main( )
t

cin>>nt
fsa ( i=l; i<=n; i++ )
for ( j=1r J <=nr j ++ )
if (j <.n-i+1) atil tJl

elge a lil Ill=i+j-nr


for ( i=1; l<=n; l++ ) (
for (J=1, j <-n, j++)
cout<<a Ii] [i ] <<" "
cout<<endli

4il6
Gralul neorientat
rllturat6.

este dat prin matricea de

CAte vArfurl ale grafului

c au gradul 1?

b.2

illpuns

adiacentd

c.3

d.

00001
00110
01011
01101
10110
0

corect: a.

lnh-o listi simplu inlSntuite nevidd, alocate dinamic, fiecare element reline ln
Olmpul urm adresa elementului urmetor din liste sau nil /r{trtL dace nu are un
nod urmetor. $tiind cd variabila D retine adresa primului element din listd,
varlabila q retine adresa ultimului. element din listd, iar lista este format5 din
lxact 3 elemente, care dintre urmatoarele secvenle de instruc{iuni determine in
urma executerii eliminarea celui de-al doilea element din liste.

(Pasca|'

P^.urrn:rq; disDos (q)


D^

(C/C*+)
t

D->ufin=qi

alelete

.urm: =qi

q, I fre(C),

D->urrn=q;

delet D->unn, | f,ree(p->unn) I

illrDose (D^ .ulm) ,


p1.q; dlapoee{D^ ,ufln) t

D=q,

delet D->u!rnr I fre6 (D->urT),


661t D- >unn, | f,ree(D->urn) I

dlrgoea (9^ .urm) ;


P^ .urrn: =q,
Rlspuns corect: d.

D->urnrrql

Pantru reprezentarea unui arbore cu radecine cu 9 noduri, tichetate cu numere

naturale

de la 1 la 9, se

r.(2,0,L.7,3,L,2,4,Ll
lrunze are arborele

dat?

Rlspuns corct descendenli direclii:


Variabila

utilizeaze vectorul

de

,,tati":

. Care sunt descendentii direcli ai redacinii gi cate

gi 7. Arborele ar6 4

ttunze.

memoreaze elementele unui tablou bidimensional

cu 5 linii gi

coloane(numerotate de la 1 la 5), numere intregi. Care este suma elementelor


rflate pe diagonala secundare a tabloului construit Tn urma executerii secventei
do program alSturate?
(5 pJ

(Pascal)

lor i:=1 bo 5 dlo


for j:=1 to 5 dlo
ati, jI s =i-j t
Rispuns corect : 0
Scrieli programul passat lclc+r care citegte de la tastaturi un gir de cel mult
40 de caractere, format doar din litere ale alfabelului englez, gi care afigeaze pe
ecran toate girurile obtinute prin eliminarea succesive a cate unei singure litere

din girul citit, ca in exemplu. girurile obtinute se vor afiga cate unul pe cate o
linie a ecranului.

Examplu: Decd
bbc
abc

Be cltegte glrul

rbbc, atuncl pc rcran

8e va aflga:

A(M6
Care dintre urmetoarele propozilii este falsa
pentru graful orientat o dat prin matricea de
(4pJ
adlacenld

rbc

aleturate?

.bit
nar

\Pasca'
s sstrirg [{01 ;

i,j:irtegrt

bgia
radlla(a),

for i;=1 to leDgEh(s) alo


bgtn
for j := 1 to lngth(s) dlo
if i<>j theo $rite(E[jl)t
lrritln

(C/C++)

*ircLud<ioEtram.h>
#fucluala<strhg.h>
char s [4U t

int j, i;

void nain
t

I,
t,

()

cin>>s,

for(i=0;i<gtrla(E) ri++)

{ for( j=0r j<strleu(s) ; j++)


if(i!=j) cour<<sljl t

@d
@d.

cout<<e{rdlt

I,

xiste cel pulin un nod in graful c care are gradul intern egal cu cel extern
graful o nu are circuite
existe cel pulin un drum intre oricare doue noduri ale grafului c
gfalul Gare9arce

Rispuns corcct: b
ln secventa alaturate, variabila v memoreaze ebmentele unei matrice cu n
llnii, numerotate de la 1 la n, gi m coloane, numerotate la 1 la n, iar toate
celelalte variabile sunt intregi. Daca 1<k<n, atunci execularea secvenlei
(4pJ
determine:
(Pascaf)

01100
00110
00011
11000
00010

for i:=lc+1 to !

. (C/C++)

Ao

for j:=1 to mm ho
vli-1,j1:=vlirjl;

n!

for ( i=k+l, i<=nt i++)


for (j=1; J <=m; i++)
vli-11 tjl = vtil tJI r

n=n-1i

=n-1t

k din matrice
c. eliminarea coloanei h din matrice
b, adeugarea liniei k in matrice
d. adeugarea coloanei l! in matrice
Rispuns corect: a
Care sunt nodurile de tip frunza ale arborelui cu redecina, cu 9 noduri,
numerotale de la 1 la 9, al cdrui vector ,de tali' este (6, 6, 8, 8,?, 7, o,7 ,7)?
(6p)
RAspuns corect 1,, 2, 3, 4, 5, 9 (Rezultatul se poate oblirie
determin6nd care valori din mullimea 1,,2, ...9 nu apar in vectorul ,de t4i"
a. eliminarea liniei

sau desenand arborele).

intr-o liste simplu inlenluitd, alocate dinamic, cu cel pulin 3 elemente, fiecare
element reline in cdmpul inf un numer natural, iar Tn campul urrr adresa
elementului urmetor din liste sau nil- lNUr,L daci nu existe un element

urmetor. Variabila D reline adresa primului element din liste. Dace se


prelucreaze lista de mai jos, care este valoarea memorata de variabila
intreage k, la finalul executerii urmetoarei secvenle de instructiuni?
(6pJ

,k:=0;

(Pasca+

(C/C++j

k=0t

rnit"(O^..tt ^ . u:m< >!,11 ) aaat while (D->ulm->ut:tn &&


(D^.iaf>D^.ur ^.lnf) ato
D->inf > g->urmr->inf)
begia
{ D = D->urmi
p: =D^ , urni
k=k+p->urn->iaf;
k I =k+p ^ . urfi^ . iaf
)
eD'd,

Rispuns corect 13

5.

Se consldord un txt format doar dln spalll gl llters mlcl ale

a o47

ongl6z, care lncepe cu o literd gi car contine cel pulln o vocald din mu
(a, ,l,o,u). Scrieli programul Pascal lc/c++ care citeqte de la
un gir cu cel mult 10o de caractere, ca cel descris mai sus 9i care

transformarea acestuia prin inlocuirea fiecerei vocale din texl cu


imediat urmatoare din alfabet (a se inlocuiegte cu b, 6 se inlocuiegte

(lnro dintre urmetorii vectori Nrl poato reprezenta vectorul ,,de


Frl)ore cu rddecina, cu 5 noduri, numerotate de la 1 la
0U

g.a.m.d.). Programul va afiga pe ecran girul oblinut.


Exemplu: dacd girul citit este exann d bacaraureat, dupa
se afigeaze:

fxhf n alf bbcblbvrfbt

lPascall
s

citegte
lun e lungine (s )
fPentru i1,lun execute
I dace slil e vocale atunci
s til succ(sltl )
Ill
gcrie s

,0Lx,2

d.4 r. 1 0

scri

til

s IiJ

reline girul de caractere


are

blcahurat. Ce valoare
txprosia pog('a',8)?

Variabila

re_tine girul de caractere

bacalaureat.

Ce se afigeaze la
executarea instrucliunii de mai jos?

cou!<<strchr(3,'a' ) ;
prinf f ("%a",strchr(8,'a'
I

citelte s
1un e lunsime ( s)
fPentru i0, Lun-1 executl
I daci Elil .e vocale atut
s

(4p)

(C/C++)

(Pascah

(C/C++l

Ilt

tali" al unui

ilapuns corcti c.
Varlabila

Rezolvare: Folosim o variabili s gir de minimum 100 caractere in


respectiv minimum 101 caractere in C/C++:

c,30023

11012

5?

+1

),

a. 2
b. acalaureat

a
2

rorlaurat
boluret

c. 4
d. bcluret

Rlapuns corect: b.
hrtr-o listd simplu inlenluita, alocate dinamic, cu cel pulin 2 elemente, fiecare

i.nf un num6r natural, iar in campul ufln adresa


lista
sau niil l!It'r,r, dacd nu existe un element
olomentului urmetor din
urmdtor. Variabila D reline adresa primului element din listd. DacA se
prolucreaze lista de mai jos, care este valoarea memorate de variabila
lntreagd k, la finalul executerii urmetoarei secvenle de instrucliuni?
oloment reline in campul
.

(6 pJ

ll

(i'asca,

k!-0,
whlLe (D^.urm<>niI) anal(p^ . inf tD^ . u::rtr^ . inf moft
do begin p != D^.urztri-k s=k+1endt

10<>

\L'/t ++)

k-0;

whiLe( (p->u:in! -NI'LI,) && (D- >inf*D- >urm- >lnf%10

{p=9->urmtk++;l

Rtrspuns

corcct

t =0

))

ln declararea aldturate, campurile a gi b ale inregistrerii,

roprezinte numdrdtorul, respectiv numitorul unei fraclii.


(;are este expresia cu care se pot inlocui punctele de
ruspensie in secvenla de mai jos astfel incat daca
h8ctia memorate in variabila f se simplifica prin numarul
(6pJ
niltural nenul k se afi$eaze mesajul DA

?
if ... then writeln('DA')
\t)/C++) t f (...) cout<<,,DA', I printf('DA")t
ll\rccaf)

(C/C++\

struct raD
{ inr, a, br} f,
int k;

Rl!punrl
5.

(Pascal) (f .a mod k . 0) and (f .b nod k - 0)


(C/C**\ f.a%k=-O && f.b%k==0
Scrieti un program pascal lc/c++ care citegte de la tastatura
naturale n Si n(0<n<10, O<n<10) gi elementele unultablou

A 048
doud

n coloane care reline numere naturale mai mici decat 100;


va construi gi va afiga pe ecran un nou tablou bidimensionbl cu n llnll
coloane, oblinut din primul prin rotirea acestuia in sens trigonoinetric cNJ

rn linii gi

ca in exemplu.
Exemplu: pentru n=4 gi n=5 $i tabloul:

21 22 23 24 25
26 27 2A 29 30
3L 32 33 34 35
35 37 38 39 40

se va
25 30

24
23
22

2L

29
2A

27

3t
3l
3!
3l

26 3tr

hlr.o llstd simplu inlenluite, alocate dinamic, cu cel pulin 3 elemente, liecare
tltlrgnt retine in campul lnf un numer natural, iar in campul urm adresa
tl.msntului urmdtor din liste sau nil"/bltLr dace nu exi$e un element urmetor.
Vrrlablla p reline adresa primului element din lista, iar variabilele q 9i aux sunt
dr acolagi tip cu D. Dace se prelucreaz5 lista de mai jos, care va fi continutul
llrlcl dupd executarea urmdloarei secvenle de instrucliuni?
(PascaD
\C/C++l
q=Dt
lr-D,

rlh (q^ .urrn^ . urm< >nLl)


rnd (q^.lnf >= D^.inf,) tlo
q t= q^.urni
aux r rq^ .unlt
l^,urm3=au:r^.ullmi

Rezolvare: Folosim doue matrici (tablouri bidimensionale) a gi b. in a citim


de intrare, iar in b memorem matricea rotita. Observem cA b1,1ea1,,, b1,2
. . ., bz,rar,o-1 b2,2ea2,o-1 etc. Rezulta urmetorul algoritm:

citeste m,n
citegte matricea a
Dentru ie1.n execute
pentrrr j1,m execute
btil Ijt aIjl [n+1:il
afiSeazA matricea b

while (q->urm->urm ! =NI'LIJ

q->inf >o D->hf


q = q- >urmi

&&

aux=q- >Urmi
q- >urm=anrja- >u:rmi

d.lete ar:xi

llrpoge(aux);
p

15893
t8893

c.7
d.7

(4p)

5893
5t3

ihpuns corect: d
ln eecvenla aleturate, variabilele al, s2 gi s3 relin giruri de caractere. Dupe
(ApJ
txocutarea acesteia, variabila intreage va!. primegte valoarea l
(C/C+*)
(Pasca,

dace

ll not ( (81<>s2) or (s1<>s3)) if (!(Etrq)(s1,ga) ll


strqrE)(sl, 83) ) ) vaI=1t
lhen wa1: =1
elEe val=2t
1116 wal: =2
.1, e2, a3 relin giruri identice de caractere
11, s2, s3 relin giruri de caractereordonate lexicogralic
.1, s2, s3 relin giruri de caractere de lungimi diferite
.1 este oblinut prin concatenarea girurilor relinute in E2 gi s3
Rlepuns corect: a
Oare sunt arcele care alcetuiesc un drum
olementar de lungime maximd de la nodul 1

la nodul 5 pentru graful orientat cu gase


noduri numerotate de la 1 la 6, reprezentat
prin matricea de adiacenF

alaturati?

Rlspuns corect3

(1,{) ({,3 ) (3,21 (2,6)

(6p.)

011
000
'010
001
01..0
000

100
001
100
001
000
010

(6,5',)

x gi y coordonatele unui
xoy. Care este expresia a cerei valoare reprezinte distanla
punctului respectiv fa!5 de originea axelor de coordonate?
(6p)
ln declararea alSturatd variabita a reline in campurile

puncl

in

planul

(C/C++)

(Paecal'1

tytra punt.racord

*,y I ratl

'

aEruoE Dunot

.nd,

var

)ar

i
Rispuns: aqrt(a.xra.x + a.y*a.y)

5.

a: Dunct

Scrieli un program pascallc/c++ care


citegte de la tastature un numer natural n
(2<n<10) gi care construiegte in memorie

gi

pe

A 04S

( lloab ,r,y,

un

afigeaze
ecran
tablou
bidimensional cu n linii gi n coloane astlel
incal parcurgandu-l linie cu linie de sus in
jos gi fiecare linie de la stanga la dreapta
se oblin primele n2 numere pare nenule in
ordine strict crescdtoare, ca in exemplu.

24

68

0rrr dlntre urmdtoarele propozilli MJ ests adevtrrate pentru graful orientat cu 5


llrfurl, numerotate ds la 1 la 5 9i ale cdrui arce sunt: (2,1), (3,5), ({,1),
(4pJ
fa,f), ({,5 ), (5,2), (6,r1?
numorotat cu 5 apa4ine unui circuit
numerotat cu 1 aro gradul extern 0
lntern al varfului numerotat cu 4 este 1
nu are circuite

L0 1,2 14 15
Le 20 22 2L
25 29 30 32

cofoct! d
'cate elemente se
lllnd dat un tablou bidimensional cu 2o linii 9i 20 coloane,
(4pJ
strict deasupra diagonalei secundare a tabloului?

b.

Exemplu: pentru n=4, se consiruiegte


se afigeaza tabloul aleturat.

gi

(10p.)

Rezolvare: parcurgem matricea element cu element in ordinea precizate ?n


ii atribuim valoarea unei variabile (notatd k) ln
,pregdtim" valoarea pe care urmeaze sA o atribuim.

iar elementului curent

cite?t6

k+2
Deatru l1, n execute
Dntru Jel,n execute

ltl Ijlk, hk+2


rfigeazl matricea a
a

c.

200

d.

190

210

rpuna corect: c

declaratd aletural memoreaze in cempurile nedu 9i rnedz mediile


Imestriale ale unui elev. Scrieli expresia a carei valoare va fi media anuale a
Vrrlabila
toostui

elev.

(6

lylra elev=lecord,
mrtricoL s intege4
med1,med2

P)

(C/C+ +l

(Pascal)

reaL

end;

Ylr xslvt

struct 1v
( int tnatricol,
float nd,1,md2
)x,

ilepuns: (x.m1+x,m2 ) /2
lntr-o liste simplu inlantuite, alocate dinamic, cu cel pulin

2 elemente, fiecare
iar
in
cAmpul
u:m adresa
llcment reline in c6mpul inf un numdr natural,
.lomentului urmetor din listd sau ail/Nul,L dacd nu existe un element
urmetor. Variabila D retine adresa primului element din lista, iar variabila q este
do acelagi tip cu p. Dacd se prelucreaza lista de mai jos, care va fi conlinutul
llrtei dupd executarea urmdtoarei secvenle de instrucliuni?
(C/C++l

(Pascal)

qr-D,

nhlLe (q^.urm<>Eil) and


(q^.inf<=q^.urm^.inf, ) tlo
q! =q^ .urmi

q ^ . irrf

=q^.um^ . inf +1;

q=D,
whi le ( q- >urrn I =liruLt &&

q->inf<=q->urm->inf

q=q_>urm,
q->inf =q->urm->inf, +1 t

ll

(6pJ

Flspuns: conlinutul listei rdmine neschimbat


Un cuvant s, de cel mult 20 caractere, format doar din litere mici ale
alfabetului englez, conline cel putin o consoane 9i cel pulin o vocali. Scrieli
programul paacat lc,/c*.r care citegte de la tastature cuvantul E, construiegte

ln memorie qi afigeaz5 pe ecran cuvantul oblinut prin eliminarea tuturor

consoanlor dln cuventul r. s6 congldrg consoane orlcare lltora cero


afle ln multlmea {a,6, l, o, u}.
Exemplu: dace se citegte cuvantul lagalaula!, Pe ecraR se

aaau6a

(1

Rezolvare: folosim doud giruri de 20/'21 de caractere, s1 gi s2. Citim in


dat de la tastaturd, apoi parcurgem caracter cu caracler acest gir gi copiem
doar vocalele.
(Pasca4

gitegte

s1

s2esirul vid

lulg lurgime ( s1)


pentru i1,1ung executd
dace sl[i] e vocal5 atunci
. s2s2+s1[il //concatenar
afigeazi s2

lC/C++J

citegte

j0

s1

lurls lunsin ( s1)

penlru i0, lurlg-1 execu


dace s1[il e vocald a
s2 ti t Eltit ; ij+1
s2 tj I ' \0'
afigeaz5 s2

A 050

Care este numerul de circuite distincte ale grafului


orientat dat prin matricea de adiacenle aldturate?

Doue circuite sunt distincte daca difere prin cel


(4p.)
putin un arc.

b.

c,2

001000
10 L 011.
000000
001000
000000
000L10
d.3

Rlspuns corect: a
intr-o listi simplu inlentuitS, alocatd dinamic, cu cel pulin 2 elemente, tiecare
element reline in campul inf un numdi natural, iar in campul urm adresa
/N{tt & dace nu existe un element
elementului urmatof din liste sau

iil

urmetor. Variabila p retine adresa primului element din liste. Dacd se


prelucreaze lista de mai jos, care este valoarea memorati de variabila
inheagd r, la finalul executarii urmatoarei secvente de instructiuni? (4p)

(CiC++|

(Pascall

k=3,

k: =3;

while (p->uf[! =N['IJL &&


p->inf > D->urm->inf)
p = p->urrri

while (D^.urm<>nil) and


(D^. inf > p^.urm^.inf) do
p:= D^.urmi
k:= k + p^.urm^.inf,
I
b. 10
Raspuns

corect:

k=k+p->urm->inf;

c,

L2

d.

13

aI

Care dintre nodurile arborelui din ligura

aleturatd pot fi considerate ca flind


rddecine astfel incat in aiborele cu
redacine rezultat fiecare nod sd aibd cet
(6pJ
mult doi descendenli direcli?
Respuns: 9, 10, 6, 7, 8,

(cele care nu au gradul 3).

Elementele tabloului bidimensional

din

tigura

aleturata, cu 5 linii 9i 5 coloane, sunt toate numerele


naturale cuprinse intre 1 9i 25 agezate in spirale,

al

primei linii 9i
continuand in sens invers trigonometric ca in ligura
aleturata. Care este ultima cifre a produsului
numerelor impare aflate sub diagonala secundard
(exclusiv diagonala secundare), in cazul unui tablou
bidimensional cu 4 linii si 4 coloane generat dupa

incepand

cu

aceeagi regule?

Rispuns: 5

primul element

(6p.)

L2345

15 17 18 196

152425207
1423222L8

x.3 12 11 10 9

t.

Scrlell programul Drrcat lele++ car cltegtO do la tastatura un cuvant r


mult 20 lltre micl ale alfabetului englez, conetrulegte fn memorie 9l
scran cuventul . dupe ollminarea primoi gl a ultlmel vocals. Cuvantul r
pulin doud vocale gl cel pulin o consoane. Se considerd vocale literele: a,
oe u.
Exemplu: dace se cibgb crlvanful bacalaurar, pe ecran se afigeaza:

Rezolvare: facem o parcurgere a girului in ordinea crescatoare a poziliilor


stanga la dreapta") pane .intalnim prima vocald, pe care o eliminem
parcurgerea). Proceddm apoi similar pentru o parcurgere inversd.
(pascat)

citete s
te1
rcat tinp s[i] nu 6 vocall

Ill tt+r

dleto ( s, i, 1)
Jlungritno(s)

rcet tinp

I ie:-r

s[

j] nu e vocalg

dlt. ( s, J,1)
afigeazl s

(C/C++)

citagte

ie0

rcet tirp
Il.l ii+1

s[i]

Conglder6m declararea a6turate foloeitd pontru a memora numele, prenumela


tl media unui elEv.
Care dlntre exprsiile de mai jos are ca valoare prima litere a numelui unui
(4P)
alev ale cArui informalii sunt memorate in variabila
(C/C++)
(Pascal')

p?

atrcDy(E+i, s+L+1)
j lungitrle (s) -1
rcat titnp sljl nu e vocall

Il.| iej-1

strcDy(s+j , s+j +1)


afigeaz5 a

Etruct lsv
t

lyDa aldt.racord

rtrlng [10] t
Drenuna r llrlng [20 ] ,
n dL r roal
nune

and,

nu e vocall

0Q1

vrr

char

nt$st10l,Dre ImI20l t

float
l9t

D t g1vt

ndlit

p. nurne [ 0l
9. nune [ 1l

a. D.nun [1]
b. p.nurne[01

D. truma
nume [ 1l

C. D,

lune

d, aune t 1l

Rispuns corect: b

Se considere un graf neorientat cu

noduri 9i

muchii' Care dintre

urmatoarele giruri de numere pot fi gradele nodurilor grafului?


c' 1' 1, 1' 1, 1 d.
b.2,2,L,2,2
{,2,6, 1,2

(4pJ

4,3, 3,4,

Rlspuns corectr d

secvenla alaturate, variabila a memoreaze elementele unui tablou


bidimensional cu 4 linii (numerotate de la 1 la 4Inumerotate de la 0 la 3) 9i 4
coloane (numerotate de la l la 4Inumerotate de ia O la 3), iar toate celelalte

in

variabile sunt de tiP intreg.


Dupa executarea secvenlei de instrucliuni scrisa alSturat:
a) ce valoare va avea elementul s t2 , L'l / at|l l3l?
'b1 care este suma elementelor de pe diagonala principalS a acestui tablou?

(6pJ

(C/C++)

\Pascall

x:r1;

x:=1t

for i: =1 to I dto
for j:=1 to 4 alo

for ( l=0; i<=3; i++ )


for (j=0rj<=3rj++)

if i=j rhn
ali,JI:=2*x
18 ali,jl:=xt

if (i==i )
a Iil Ij I =2*x;
elge a Iil Ij I.x;

begin

:t3

:rEx{.Li

rx+1

eadi
RAspuns: a)

8;

b) 58.

4.

Car est numdrul maxlm d6 muchli po care ll poate avea un grat


cu 5 noduri gi 3 componente conoxo?

A 052

Rispuns: 6 (doue noduri izolate Sl o componenttr conexd cu4 nodurl

Considerem declararea aleturatd folositd pentru a memora numele, prenumele 9i


cgle 2 note ale unui elev.
Care dintre instructiunile de maijos calculeaza in variabila reale n media aritmeticd
(4p.)
a notelor elevului ab cerui informalii sunt memorate in variabila x?

muchii)
5.

Se considere un 9ir s avdnd maximum 52 de caractere, gir ce conline


litere mici ale alfabetului englez 9i cifre. primul caracter al girului esle o
mice, ultimul caricter al girului este o cifre gi fiecare literd mice din glf
urmate de o cifre nenule. Scrieti un program paEcal lclc++ care citegic
tastatur5 girul s, apoi construiegte gi afigeaze pe ecran un nou gir de
format numai din litere mici ale alfabetului englez, qir construit
urmatoarea regula: fiecare literd micd se va repeta de atatea ori de cets
indica cifra situata pe pozilia imediat urmdtoare in $irut inilial, ca in
(1

Rezolvare: deoarece nu se cere explicit conlruirea unui al doilea $ir g


9i
afigarea pe ecran a acestuia, parcurgem girul citit doar in pozitiile pare,4mpare
garanteazd ce in acele pozilii sunt cifre) afigim pe ecran ciracterul din
9i
precedentd de un numdr de ori egal cu valoarea cifrei din potilia curent6_
(Pascall
(ClC++)

cite9te

ie2

luag luagirne (s)

fcat tiq) i3lung exeeuti.


I pentru k'1',s[i] executi
I I scrie s [i-11

lrl

Ilf ii+2

citegte
i1

tr.rnghmgirne

s)

rcat tinp i<Iung execute


executl
I lpentru k'1,,slil
serie s [i-1]
ll

lrl
liei+2
\t

struc! eLev
{char nume [10] , prenun [20] ,
fLoat notal, nota2 i
l *t

ttzDa elev=!cord.
nune: string [ 101 t
prenume: string [20 ] ;
nota1, nota2 3 real
nd;
var x: eLevi

Exemplu: dace se citegte de la tastaturd girul a2b1f2 atuirci girul cerut

aabff

lC/C+*\

tPascaD

t,

m3 =

b,

m! =

(x.notal+x

-Irot-a2\ 12,

I,

(notal+nota2 ) /2t
11.113 = (x.nota1+x.'roxaz) l2t

d,

m! =

(;, notal+x

''i,oEa2)

m=
tnF

(x. notal+rr.nota2,

l2t

(notal+nota2 ) /2,
x.m= (rr. ndtal+t.'rot.a2) l2t
m= (x, notal+x, noga2) l2t

12,

Respuns corcct: a
Se consideri graful neorientat din

figura
aleturata. Care este numarul minim de muchii
ce se pot elimina astlel incat graful pa4ial
oblinut sA aibe exact 3 componente conexe?

b.4

c.

(4p.)

Rispuns corect 3 b

secvenla aleturate, variabila a memoreazd elementele unui tablou


bidimensional cu 4 linii (numerotate de la 1 la 4 | numerotate de la 0 la 3) 9i 4
coloane (numerotate de la r. la 4Inumerotate de la o ta 3), iar toate celelalte

in

variabile sunt de tip intreg.


Ce valoare va avea elementul a14,41 /al3l
9i care este suma
elementelor de pe prima linie a tabloului dupe executarea secvenlei de
(6p.)
instrucliuni scrisd alaturat?
(C/C++)
(Pasca,

[3]

x:=5i
for i: =1 to 4 dlo
for j !=1 to4do
begin
rr r=f then ali,il:=x,
eLse

ali,il:=i;

x=

Respuns:

at4,4l /al3l I3l

x=x+1i

13 =11+1

end

5;

for ( i=0; i<=3; i++ )


for (j=0tj<=3rj++)
t if (i==j ) atil tjl=xt
eLEe a Ii] [i ] =i;

=20; suma=8

4.

So conslderd o llstA llntard slmplu fnlAnlultd, alocatd dlnamlc, cu cel


noduri, ln caro ficare nod al listei conline tn cempul urm adresa
urmetor din liste sau nlt/NUr,L dace nu existd un nod utm6tor.
primului nod este memorate in variabila Drj.tn, iar variabila p este
do
tip cu prin. Ce modificare se produce asupra listei prin executarea
de instrucliuni aldturate?

(Pascah

dlleDos (p)

ln recvonla .aleturatd, variabila

lp=prim;
lDrirn=p-11111,
I deler; (D) , i fr-(D) ,

lr'1r
rhll. t<=lngth(x) do

G,C+.1

bagln
wrtte (x III ) ;
I r .i+3

Scrieli un program pascal"lclc++ care citegte de la tastatura un


natural nenul n (nS1OO), apoi n giruri de caractere, fiecare gir
maximum 30 de caractere, doar litere mici ale alfabetului englez
9i
pe ecran cete dintre cele n giruri de caractere sunt formate
nu-mai din

Se considere vocale literele a, e, i, o, u.


Exemplu: dacd n=3, iar girurile citite sunt date aldturat, atunci
programul va afiga pe ecran l- deorece girul a este
lormat
numai din
(10pJ

vocale.

(Pasc.at1

lcitegte
okl

ae

atunci

dac5' ok=1 atunci

lrl
\l

acrie ct

ctct+l

r0;
lor i:=1 to 5 do
lf a Ii, ilnrodl 2<>0

lok1
| ;pentru jeO, Iungin (E) -t
ll ra".a s[j] nu e vocall
ll I atunci oko

lLr
I

daci

r<r

then

lrl
L|

x: =x+a

rdrlt (x) ,
ok=1

t=i+3

lDrtntf('tc",xtil)t
d.8

c.9

b.3

lPascal)

ll lr

(4pJ

(Observalie: e vorba de lungimea maxime efedive.)

ln secvenla de program urmetoare, variabila a memoreazd elementeie unui


lablou bidimensional cu 5 linii (numerotate de la 1 la 5) 9i 5 coloane
(numerotate de la 1 la 5), iar celelalte variabile sunt de tip intreg.
Co valoare se va afiga.in urma executdrii secvenlei daca se prelucreaze
(6p')
tebloul bidimensional aleturat?

rpentru i1, n executi

lciteFte

-!;

b. 2,2,6,s,L
2,3, 1, 1, 1
Rllpuns corcct: a

creion

ctel

(:<)

astfel

citegte n

fPentru il, n executa

for (i=O i i<=str!6n


cout<<xlll t

8e considere un graf orientet cu 5 varfuri 9i arce. Care dintre urmetoarele


acestui grat?
;lruri de numere potfi gradele exterioare ale varfurilor
-(4-p')
1
c. 1, O, 1, 1, 1, 1 d. 1, 1, 0,2,

arc

{CiC++)

and,

ilapuns corcct: c

Rezolvare:

citegte
ct1

memoreazd un $ir cu cel mult 100 de

otractore, lar variabila t


Crr6 esie numerul maxim de caractete pe care

Riispuns: se elimina primul element din listd

5.

gste de tip intreg.

il poate avea girul


ale acestuia?
exact
3
caractre
lncet secvenla aleturate se afigeze
(ClC++)
(Pascall

1l3=prim;
prim:=D^.u!:ni

A 063

i, 6-i ] ;

r2 342

(C/C++)

x=0,

f,or ( i=1r l<=5, i++ )

tf

(a

Iil

fil%21=0)

x=x+alll [5-il r

-cout<<xt

67 894
LA 043
72 1{ 5
L2 34 5

Drhtf ('td',:.)'r'

Rlspuns: 12

atunci ctct+

[n secvenla de mai jos, variabila E memoreaze un gir de caractere, iar


variabila i este de tip intreg. Ce valoare se va afiga in urma executarii
(6p)
secven!ei?

scri ct

(Pasca,

r: ='bacalaureat'i

l:=Dos(,a',s),

writ ( i ) t

(C/C++)

stlc9y(a, "bacal,aureato ) t
i=aErchr ( s, 'a' ) -at
cout<<i+1t I
Drintf (**d", i+1) t

Raspuns: 2

!.

Se considere o li$e simplu inlenluita, alocate dinamic, in care liecare nod


memoreaze in c6mpul info un numar intreg, iar in campul u]m adresa
elementului urmetor sau nil-/NtlLL dace nu existe un nod urmetor'

scfloll un program prrcallc,/c++ cars cllegt d6 la tsstaturd 3


naturale nenule n, a gi r (n520, a5r0, rSlO) rl10),
memorie o listd simplu inldntuite gi o afigeazd pe ecran, astfsl
parcurgendu-se lista de la primul nod pane la ullimul nod, se vor

separate prin cate un spaliu, numerele memorate in campul tnfo al


nod, ob{nandu-se in ordine strict crescdtoare toate elementele

{a, a+r, a+z.r, ...,a+(n-1).r}.


Exemplu: dace n.4, a=10, r=2, atunci se vorafiga

!f=

elementele alSturate.

1,0 L2 14 16

(10p.)

Rezolvare: propunem un prog;am in care listi esie construitd incepAnd


ultimul element.

(Pasca,

type jnotl = ^notlr


nod = record info s longint t
urm:pnod

ndi

var Drirn, current: Dnod,i


i, n, a, r: intgert
begin

rad.ln (a, a, r) t

prlm: =ai1;

for i := 1 to n

d.o

begin

[ew ( current ) t

(n-i ) rri
current^.urm:=primi
Drims =current
current.^ . info

=a+

etldi

currnt ;= prin;
whil cufrent <> ui1 do

begin
write ( current^ . info, , r)current := curretrt^.urm
end

eld

\C/C++)

#include <iostrean.h>
nod *Drim, *current t

A 054

So considerd un graf neorientat complet cu 10r varfuri. Cate lanluri


3 exista intre varful 2 gi varful 4? Doua

olomontaro distincte de lungime

currn!=priltri
rthiLe (currernt I =NUIIJL)
{cout<<cuffent->info<<. r,
current=current - >urmi

d.

90

s6

Rlspuns corect! d

Se consideri graful orientat

din

llgura aleturate. Cate dintre varfurile


0rafului au gradul intern egal cu
(4P)
gradul extern?

-1

t(s

c.

b.2

{2

t,

int n, i, a, rt
voitl nain ( )

{cin>>n>>a>>r;
prim=mtl,I,t
f,or ( l.=l; ii=1;11a I
{cufint = new nod;
current- >info=a+ (n-i ) *r,
currelrt - >urrtr=Drimi
Drilrl= current t

(4p)

lanluri sunt distincte dace difere prin cel putin o muchie.


c. {5
b. 28

/
\4

d.4

Rlspuns corect: a

ln secvenla aleturate, variabila x memoreaza un gir de caractere, iar toate


celelalte variabile sunt de tip intreg.
Co valori au variabilele k1 9i k2 dupa executarea secvenlei de instructiuni
(6pJ
aleturate?
(CiC+ +j
(Pasca,

strcpy(x, "bac2009, I t
k1=strlen (x) t

r r -'bac2009't
kt 3=lengt.h(x) t
k2.=O t

for i:=1 to length(x)

k2=0 t

for ( i=0 r i<Btrlen (x) r i++)


if (xlil >=,0'&&x Ii I <=,9, )

alo

1f

til >='O') ard (x tiI <='9 | )


thn k2 s=k2+1,
Rispuns: kL=z, k2=4

k2=k2+L t

(x

Se consideri lista liniard simplu inlanlufta, alocatd dinamic, cu 6 noduri,


reprezentiate mai jos, in care fiecare nod con,tine in campul info un numir
natural, iar in campul urr adresa nodului urmdtor din liste sau niliN$LL dacd
nu existai un nod urm5tor.

Dace adresa primului nod este memorata in variabila prilo, iar variabil4 este
acelagitip cu Drirq ce se atigeaze la executarea secvenlei alaturate? (6pJ

(Pasca,
g: =priu^ .urru
while p^ .urm<>niL do

begia

writ (9^ . info, ' ' ) t


D:=p^.um^.urn

endi
Rispuns:

lC/C++\

or (D=Drfutr->urmrD->urml =Nt'IrIJ,
D=p->urm->u:m)

cout<<D->info<<" " i
I printf ("%i1 ",D->info) t

t.

Scrlell un progrem parcat lc/c++ care cltgtc d la tastalurd un numdr


par,
(4Jn510), gl un num6r natural 13, cu sxact 3 clfre, gl care
in memorle un tablou bldlmenslonal cu n linii 9l n coloane, ce are e
pe diagonala prinoipald egale cu prima cifrtr a numlrului x, elementla
diagonala secundard egale cu ultima cifr6 a numdrului x, iar restul
egale cu cifra din mijloc a numerului x, ca in exemplu.
Tabloul bidimensional se va afiga pe ecran, c6te o linie a
tabloului pe cate o linie a ecranului, elementele fiecerei linii
liind separate prin cate un spatiu.
Eremplu: dacd se citesc de la tastature n-a gi x=123,
atunci se afigeaze hbloul aleturat.
(1opJ

a 065

Conslderdm declararea aleturate. Care dintre urmdtoarele instrucliuni este

(4pJ

oor6ctd din punct de vedere sintactic?

(C/C++)

(Pascal)

L22t
2L32
23L2
322L

ttrtra

Fezolvare:
citatt n

citegt x
clelx/1001, c2rsr ( txllOt r 10) I c3reet (x, 10 )
rDentru l1, n executl
I drntru J1,n executl

struct

Dunctrrcord x,Y3 intgr

puflct (

endl
vlr DtDuncti
p^ .y.D^ . y+1t

9-lyep->y+11

Dt.9,
9,xt.1 t

P=9t
9.x=7 t

D=D+1,

) 9'

r rg+11
Rlrpuns corcctt c.

Variabila

n memoreaza un numer natural nenul. Cale este numarul total de

0raluri orientate distincte cu

noduri? Doud grafuri orientate sunt distincte

(4pJ

dace matricele lor de adiacenld sunt diferite.

I j] c3

{nr l.-r.)

/2

C.

b.3!.(r-1)/2
Rlspuns corcts a,

4ar

(!-1)

d. 2^.|a-rt t2

Considerem urmatoarele declareri:


lPascal)

int !r,y,

war i, !u:r! int6gr, alaffay[0..9,0..91

iiaux,all0l

(C/C++) Lnr-

of lntegeri

t10l r

Ce valori se afigeaze in urma executerii secventei aleturate daca liniile 9i


coloanele tabloului bidimensional sunt numerotate de la o la 9 9i inqial fiecare
llnie a tabloului conline, de la stanga la dreapta, in ordine descroscltoare,
(6pJ
toate numerele naturale, de la 10 la 1?
(C/C++)

(Pascat)

f,or l:=0 to I

j,f ali,9-ll

<a

thn
begln
aux:.a

for

dlo

tf(

ti+1,8-tl

[1,9-i] i
a Ii,9-il : =a Ii+1,8-ll
a Il+1,8-il .autt

endl

write(a[0,9] ,' ' ,a'19,01) t


Rispuns:

lr0 t lcrS r l++ )


ittl l9-ilcaH.+11 I8-tl

au*=! Iil l9-iL


r Itl I9-il =a It+1]
a Ii+11 [8-il.auxr

I8-tl ;

cout<<a
[0] [9]<<' '<<a[9] I0l,
'
lDrintf ("%d*d", a t0l I9l , a I9l t0l ) ;

Se considere o liste liniard simplu inlSnluite, alocata dinamic, cu cel pulin 5


noduri, in care fiecare nod al listei conline in campul ufln adresa nodului

urmator din liste sau nil lNur,L dac5 nu existe un nod urmetor.
Dace adresa primului nod este memorate in variabila Drin, iar variabila p este

de acelagi tip cu
instructiuni?

prin, ce prelucrare

rcalizeaze urm;toarea secvenle de

(6p)

\(.:/(; n)
g-prln->urml

Irursca4

DtrDrlm^.urm,
DrLm^.u nrp^.urm,
dlispose (p) ;

del-et6(p), |

Rispuns: elimine al doilea nod din liste

5,

A 056

prl"m- >urm.p'>urml

f,ree (p) I

Varlabila

ralariul este un numdr natural nenul mai mic decdt 3oooo. Care dintre
(4pJ
rurmeloarele declarari este corecte?

caraclere format din maximum 10 caractere, reprezentand un numdr


care partea intreag5 este separate de partea zecimald prin caracterul

Programul afigeazd pe ecran valoarea oblinuta prin adunarea


corespunzdtor pa4ii intregi gi a numdrului corespunzdlor pe4ii zecimall
datei citite.

Exemplu: dace se citegte de la tastature girul de caractere L2o.4s6,


se va afiga 576, iat dacd se citegte de la tastature girul de

12L.090. atunci se va afiga 130 .

Rezolvare: se pot implementa diverse solutii:


- punem in doud giruri partea intreage gi partda fracfionare
folosind functii
girurilor de caractere, convertim in numere aceste siiuri gi efectudm adunarea.
- parcurgem girul citit caracter cu caracter gi facem suma valorilor corespunzd
caracterelor cifrd din gir (solutie implementate mai jos in pseudocod).

citegte

'

si

ne reamintim cd

sumO; J.ualungine ( s) ;

rcat titr[) slil*,./

euarsum*10+orat

I iet+r
l-l

il

9i islun
( E Ii] )-48,

0; ii+1
fcat tilnD islun
I ff *l.O+ord(s til ) -48, ii+1
l-I
fcat timp f modl 10=0

I
tt

t< rttrot

sunsum+f

scrie

suin

'0,

are codul ASCII 49.

(Pascal)

utilizatA pentru a memora numele, prenumele 9i salariul unei

porsoane. Numele gi prenumele pot avea cel mult 20 de litere fiecare, iar

Scrieli un program Pascallc,/C+i care citegte de la tastature un

aceastd solutie e bine

x este

citegte

(CtC"t+j

suno, lunelungine(B), I
;c6.t timp slil+,., qi i<J.

surnsu.n* 10+s

lii+r
l-l

til -48;

f0, iei+1
Fcat tiry) i<lujn
I f,f*10+s Iil -48; ii+1
ll
rcet timp

Itt

f%10=0

reru ro

surnsurrr+f
scrie srrn

(Pascall,"

'

{C/C++}

a. float x[3] t21];


var x: array [ 1 . .3, 0 . .201 real,
vrr xsarray[1..3,0..201 of integert b. inr x[3] [21],

c. stluct prsoana{

tlT) DrBoara=record
a!m, Drenurne:

string

saI: intger eEdi

[2

char rrunre[2L],

],

preJlune [21] t

int sal, ) x,

vtr ra:Dergoanai

t'l4) Deraoala=recard(
trum, prenume : Etring

aal: integer) t
var:r:DerSoarai

[20

d. Et!-trct x I
char tlulle [21] ,

prenume [21] ;

in! salr l x,

Rdspuns corect: c.
Care este num5rul maxim de muchii pe carel poate avea un gral neoriental cu
(4p)
6 noduri, care nu este conex?
b.

15

L2

.d.

10

Rispuns corect: d.
Fie r un arbore cu redicine. Arborele are 8 noduri numerotate de la 1 la 8 9i
este descris prin urmatorul vector ,de tali': ( 4,!,6, O,L, L,4,7 ) . care sunt
(6pJ
frunzele arborelui?

Ri6puns corccti 2,3,5,8


Scrie-ti o expresie in limbajul Pascal I C/C++ care sA aiba valoarea true I o
valoare nenule dace gi numai daca variabila c de tip char este o literd mid a
(6pJ
allabelului englez.

f
rispuns corect:
(Pascal G>=, a,)andl(c<=,2,) | (C/C++l (c>='a')&&(c<='z')
Scrieti un program Pascal I CIC+* care citegte de la tastature doud numere
naturale n gi h (2<n<25, 0<k<a) gi construiegte in memorie o matrice cu n linii
Un

1,2,3 9i astfel incat: elementele aflate


la interseclia primelor k linii cu primele k coloane sunl egale cu !., elementele
aflate la interseclia primelor k linii cu ultimele n-h coloane sunt egale cu 2,
elementele aflate la interseclia ultimelor n-k linii cu primele k coloane sunt egale
cu 3, elementele aflate la interseclia ultimelor n-k linii cu ultimele n-k coloane
sunl egale cu 4 ca in exemplul de mai jos.
9i n coloane formatd numai din valori

mat cet pe o rtnie a ocrenutur ;f

Hft ;ili:TJir'lHl"'ii'ii",ll

separate prin cete un singur spaliu.

Exemplu: pentru n.s,


afigeazd matricea

k.3

se construiogte in memori gi se

alSturatd.

(1Op)

t"

I
I

1
1 1
3 3
3 3

Rezolvaie, Secvenla pseudocod urmetoare reprezinta o solulie posibila


construirea malricei:

(Pascat)

rpentru i1. k executi

| grentru j+1,n executl


I I . ra""a jSk rtr:nci arjl
altfe1 arjz
lll

lrl
ll

LI

llrr
llr

este utilizata pentru a' memora valoarea 9i numele autorului unei


cd4i. Valoarea cd4ii este numar natural de cel multg cifre, iar numele autorului
nu poate avea mii mult 20 de litere. Care dintre urmetoarele declardri este
(4PJ
cor6cte?

Variabila

(C/C++\

pEatru lk+1,n .:(


I rpentlu jl , n .*t
jsk rrunct
aruncl
I I ra""f jSk
altfel alr5'
lll

||ll

A 057

(C/C++)

(Pascat)

Btruct carte

tl'D carte=rcord
val s inlegri
nume ! char

{ lnt

va1.,

char nunr )tt

nd,

var t scartei
b.

t!E)6 cart=record
val, nune s lnteger

geruct clrt
( Lnt vrl, nutne,ltt

endt

var t cartei
s

gtnrct calt
{ lnt valt
chrr nrune I21l r )tr

tl4) carto=record
val s Lntegert
nune: strlng [20]

vrr

nd,

t r cart,

d.

!!'!r cartslrecord
val,:arrsy[1. .20,L..201 of

latogafl

nun

var t r ctrte,

rchlr

ttruct clrts
t tnr vll1211 1211,
cha! nunar )tt

nd,

Rispuns coroct: c.
Care dintre urmdtoarele afirmalii este adevarate pentru orlce grat neorientat
(4pJ
cu s noduri gi 6 muchii?
este conex

c are cel pulin un ciclu

b.

c are toate gradele nodurilor

d.

nu poate avea noduri cu

gradul o

numere pare

Respuns corect: a,
I ;

,. ..

Fie r un arbore cu riddcind. Arborele are g noduri numerotate de la 1 la 9i


este descris prin urmetorul vector,,de ta!i": (3,5,0,3,3,5,5'5).
(3p.)
a) Care este nodul cu cei mai mulli descendenli dkecti (fii)?
(3p.)
graf?
ale
acestui
nodurile
frunzd
b) Care sunt

Raspuns corect: a) 5 (are ca lii nodurile: 2,5,7,8)


b) fiunzei L,2,4,6,7,8
Se consideri mullimea vocalelor {a,e,l,o,u}. Scrieli o expresie in limbajul
Pascal I C/C++ care se aibe valoarea true I lie nenuli dace gi numai daca

variabila c de tip

char este

o voqald.

(6pJ

A 058

Un r{8puns coroct:

5.

(Pascal) (c-, d, I or(c-,, ) or(c!,1, ) or(cr,o, ) or(c-,u')


(C/C++) 1s==,a,) | | tc==,6, y | | tc--,i, ) IIt.'.,o, )
||(c--,u,y
Scrieli un program Pascal I C/C++ care citegte de la tastature trei
naturale n, a gi b (z<n<25, o<a<n, o<b<n) gi construiegte in memorie o
cu n linii gi n coloane numerotate de la 1 la n, formate numai din valori O,l,
gi { astfel incat: elementele aflate pe linia a sau coloana b sunt egale cu O,
allate deasupra liniei a 9i la stanga coloanei b sunt egale cu 1, cels
deasupra liniei a gi la dreapta coloanei b sunt egale cu 2, cele aflate sub
gi la stinga coloanei b sunt egale cu 3, iar elementele aflale sub linia e
dreapta coloanei b sunt egale cu 4 ca in exemplul de mai jos.
Programul afigeazd pe ecran matricea construitd,
fiecare linie a matricei pe o linie a ecranului 9i
Lro22
elementele de pe aceeagi linie separate prin c6te uh
singur spaliu.

Exemplu: pentru n=5,

a=4, b=3

memorie gi se afigeaze matricea

se construiegte in

aldturat5.

(10p.)

Lro22
LL022
00000
33044

Rezolvare. Secvenla pseudocod urmdtoare reprezinti o solutie posibilA


construirea matricei:

fDentru i1, a executi


I lpentru jl,n executi
I I ra".a i=a sau j=b

|
|
I
I

|
|
I
I

latunci

x15o

laltfel
I 1-dace j{c atunci xijl
I I altfet x112

llth
llrr
Itr
\a

rpentru ia+1,n executi


rpentlu jl.n executi
Tdaci j<c atunci xi53
I .at"e j=l
| | | latunci xiro

llllartfet

lltr
lJrr
llr
l.1

xr';4

este utilizatd pentru a memora numdrul de exemplare disponibile


lnlro bibliotecd gi titlul unei cd4i. Numerul de exemplare este un numdr natural
do cel mult 2 ciire, iar titlul nu poate avea mai mult 20 de litere Care dintre
Variabila

(4p)

urmdtoarele declareri este corect5?

(CIC+4

(Pascaf)

struct carte
{fLoat nr, titlui }tt

tyD carte=record

nr, tit].u: real end;


var t: carti
tl4)o carte=record.
nr: integert titlu: Etring
andl

b.
[2

0l

var t ! cartei
ttrDe carte=rcord

nr:chari tit1u3 integer endi


var t 3carti
tt'De carte=recoral
nr, !it1u: !.ongint endi

d.

stluct carte
{int nlt
cha! titl.u [21] , ]tt
Etruct carLe
( char nrt
int titLur ]tt
Etruct carte
{ long nr, d.itru;} ti

var t:cartei

Rlspuns corect: b,
neorientat cu 11 noduri 9i 13 muchii, fdrd noduri cu gradul
0, atunci numdrul maxim de componente conexe pe care le poate avea graful
Dace

c este un grat

(4PJ

d.a.

b.4
d.5

3,
Rispuns corect: b,

Grc

(rc
(re

Se considerd o stiv5 inilial vide in care se introduc, in aceaste ordine, numerele


L,2,3,4,5 apoi se fac dou; extrageri, se introduc, in aceastd ordine' numerele
5, 7 gi 8 9i apoi se mai fac 4 extrageri.
a) Ce numer se va afla in varful stivei dup; finalizarea acestor operalii? (3p')
b) Care este suma elementelor aflate in stive dupd efectuarea acestor operalii?
(3P.)
(ln stivd s-au introdus valotilei1 ,2,3,4'5'6,7,8 9i au
lost eliminate 5 valori, in aceastd ordine: 5,4.,8,7,6 La final' stiva conline' in
aceaste ordinb, valorile: 1,2)
b) (=1+2 )

Rispuns corect: a)

Variabila a memoreazd o matrice cu 10 linii 9i 10 coloane, numerotate de la 1 la

10, iar

expresie

sunt variabile intregi cu valori cuprinse intre 1 9i l0 Scrieli o


limbaiul Pascal I CIC++ care se aiba valoarea irue | {ie nenuli daca

gi

i;

-.LrJtl

otrJtJl

P0 urogullarar Pr

metrlc6l.

Un rlspuns
5.

corect:

(j.<>J) and (.{+J<>n+1)


(C/C*+) tt t*Jl a& ( I+j I
'en41)

Scrieli un program pasbdl I C/C++ care citegte de la tastaturd un gir do oa


50 de caractere (cifre, litere ale alfabetului englez 9i spalii; girul conline od
o litere), apoi construiegte in memorie gi afigeaze pe eicran girul de
oblinut din girul citit prin eliminarea tuturor caracterelor care nu sunt lite16,

Exemplu; dace se citegte girul:


afiga:

voitualainformatLca

voi lua 10 Ia informarica atunol

Rezolvare, Fie s girul de caractere citit de la tastaturd. Din enunt se


trebuiesc eliminate din s cifrele 9i spaliile. O solulie posibile este:
(Pasca|
(CiC++)
vlr s s string [50 ] i
*includle <atring,h>

i : integeri

I i:=1;
whlte i<=lengEh(E) do
tf 3ltlin I'0'..'9','
't
thn delet (s, i,1)
bgLn radln(g)

wrlteln
end.

elee I I =i+1t
(s )

A 059

(Pascal)

#lncluite <ioatream,h>
void nain( )
{ char s [51] , tll='01234567
int l=0, cin.get (6,51) ,
while ( l<strln (s) )
if ( Etrchr (t, E til ) )
else

strcDy (s+i, s+l+1) ,


5,++;

cout<<g, ]

Varlablla

memoreazd un gir de caractere. Caro dintre urmetoarele expresii


nonull dacd 9i numai dacd lungimea
(4p.)

Paecal I C/C++ are valoarea true I este


;kului esie strict mai mice decat

10?

l.ngbh

s ) <10

I.ngth(t,10)
atrl(s)<10

a,
<0

b.

c,

a-'0'<10

d.

strln ( s ) <10
strln(s,10) <0
lng(E) <10

s-'0'<10

RIBpuns corct: a.
Fle n este un numar natural, n>4. Orice gral neorientat cu n hoduri 9i n muchii:

(4pJ

are gradele tuturor nodurilor numere pare


are cel pdlin un ciclu

b,
d.

este conex
este arbore

Rlspuns corcti c.

Fls un arbore cu rad5cin5. Arborele are 8 noduri numerotate de la 1 la gi


oste descris prin urmetorul vector,,de tali": (l,5,0,3,4,5,4,5 ) . Care sunt
(6p)
lrunzele arborelui?

Ri8puns corect: 1,2, 5,7, 8


Variabila a memoreazd o matrice cu 10 linii 9i 10 coloane, numerotate de la 1
Scrieti o
la 10, iar 9i J sunt variabile intregi cu valori cuprinse intre 1 9i
true
valoarea
sA
aibd
lfie nenul5
Expresie ln iimbajul Pascal lC/C++ care

l0

da'ci 9i numai datl elementul ali,Jl laltl IJI se afld pe penultima linie 9i
(6pJ
sub di;gonala secundare a matricei.
Un rispuns corgct: (PascaD (i.n+1)and(j>2)
(C/C++)

(i-=n'L)

&& ( J >2 )

Scrieli un program pa$cal I C/C++ care citeqte de la tastature un 9ir de cel mult
ro d6 caracte-re (litere mici 9i mari ale alfabetului englez, cifre, puncte, virgule 9i

spalii) 9i afigeaza pe ecran cifra care apare de cele mai multe ori in girul citit'
dac'a'girut c6nline mai multe cifre cu numer maxim de aparilii, atunci se va afiga
cea mai mic5 dintre acestea. Dace girul nu conline cifre' se va aflga pe ecran
mesajul Nu.

Exemplu: dace se citegte girul:

Voi iua 9,5 la rnatensticl 10 Ia inf,oflutlc! si 10 1a rodE lt


atunci se va afiga cifra o (pentru ce cifrele o 9i 1 apar de cele mai multe ori in Qir
gi 0 este cea

mii micd dintre

ele)

(10p')

rll.rrrv.flr rl9 I

gtrut qe caraclor
(Pas6a0

cfil da la ta8taturd.

vrr !Irtrl'tlgf50l,
l.,rlx, kr {ntgr,
c, c[ax: ch!r,
begin readun(s) ;
f,or c3=,6, to ,9, dio
begia t: -01
for i:o1 to teqEth(a) ato
if glilac thea iac (k) ;
lf
h> nrx tb6! bgiD
I
ctnrta! =ci nax: -k ead
tltlt
Lf nrx=0 thr lrrlth(,NU, )
Ige sritIn (cnEx)
Dd.

O solull
(C/C++l

*lncludlc <rtrlng.h>
#Lncludc <i.ortre.r.h>
volal naln( ) {
char s [51L c, cma:<,
irt i,[!,l-o,!, k,
cin.geg(a,51),
for(c=,0, ic<-, 9,, c++l
for(t=0,l=0r i<ni l-++ t

if

(s Iil ==c ) k++;


(k>n!r.)
{cnax=q; nrx=tt }

if
tf

(nix==O) coot<<,NU,,,

else cout<<qExt )

A 080

memoreaze un 9ir de caractere. Care dintre urmAtoarele expresii


Parcal I C/C++ are valoarea true I este nenulS dace 9i numai dacd lungimea
(4p.)
llrului este un numer par?

Varlabila

'

(C/C++)

(Pascal)

r-X.0
L.ngth(3'2)=0

a.

s-2==0

b.

Etrln(s,2

noal 2<>0
l.ngth(E) noal 2=0

c.
d.

1ng

rtrl (s)

Rlspuns corect: d,
D6cd c este un graf neorientat cu

9.
d.

11 de muchii

=0

Etrlen(s)%2==0

graful are cel mult:


28 de muchii

( E.) %2

varfuri gi 2 componente conexe, atunci


(4p.)
12 muchii
15 muchii

Rtrspuns corect: c.

Dace

T este un arbore cu rdddcind, cu 1oo de noduri, care este

minim de frunze pe care le poate avea

Rlipuns corect:

T?

numerul

(6p)

(un arbore in care fiecare nod dintre cele 99 are un

singur liu, cel de-al 100-lea nod este frunze)


Fie a o matrice cu 5 linii 9i 5 coloane numerotate de la 1 la 5. P6ntru fiecare
(1<i<5, 1<j<5), expresia
elementati,j!
til==(i-1)*s+j este nenule. Care este
(6pJ
valoarea sumei elementelor de pe diagonala secundare a matricei?

| alil tjl
rti,il==(i-1)*5+j I atil
Rispuns corect:

55 (=5+9+13+U+21)

L2
57

LL
L6
21

34
8:

10
L2 1.3 14 15
L7 L8 19 20

122

23

24 25

Scrie,ti un program Pascal I CIC++ care citegte de la tastature un Sir de cel


mult 5O de caractere (litere mici gi mari ale alfabetului englez, cifre 9i spalii) Si

afiQeaze pe ecran litera mic6 cel mai des intdlnitd in girul citit. Dacd existe
mai multe litere mici cu numdr maxim de aparilii, atunci programul o va afiga
pe prima dintre ele in ordine alfabeticd. Dace girul nu con.tine litere .mici,
atunci pe ecran se va afiga mesajul nu.

Exemplu: dace se citegte girul: mergm 1a murte atunci se va afiga: e


(pentru ci literele gi n apar de cele mai multe ori ln gir, iar e este prima
(10pJ
dintre ele in ordine alfabetica).

,'A

Fczolvarc. Fle r glrul de caractgro cltlt de la tastaturd. ParcurgAnd


litsrelor de la 'a' la 'z', se numdrd flecars aparitie a literel
memoreazi prima literl cu numer maxim de aparitii.

var

(Pascal)

[50L
i,nax, k: integert

#incluile <string. h>


#include <ioatran.h>

if
endl.

if

(s

Il]

==c

a,8

end,

k++;

if

nax=O

(max==0 ) couE<<,''o,o,,

61Ee cout<<cmaxi

(Ftgura

1)

(Figura
d.5

c,5

b,7

2)

ilrpuns corcct d.

if, (k>nax)
{cmax=c; nax=k; }

mr:r: =h

then writLn ( 'nu, )


Lae writeln (cmax)

dtcA graful din tlgnra t


nprezintd un subgraf al lui
0, lar graful reprezentat in
Slqrura 2 este graf Pa4ial
(4PJ
rl lul o?

voldl rnain ( )
{ char E [51] , c, cma:(;
int i,max=0, n, k;
cin. get, (s,51) ,
n=Etrlen ( s ) t
for (c=' a' i c<=' z, i c++l
( for (k=0, i=0 r icnr i++)

begin readlln(s);
for c:G,r, to 'z' do
besln k!=0;
for L:!1 to lngth(8) dlo
tf s ltl.c th6n lnc(k)t
lf h> tnan thn
begin crnrx; =c I
, nd

Car6 este numerul minim

d. muchll pe care le poato


tvoa gralul neorientat o,

(C/C++)

s ! gtring

c , crnax : char

A 061

Care vor

fi

valorile afigate dupe executarea secvenlei aleturate, dace


(4p.)

vrrlabilele s1, s2 9i s3 sunt de tip siring?


(C/C++l

(Pascal)

Its-'algoritm't
12 r.'bioritm' ,
13 r .'ritm' t
Measth(gl)< length (s2 )
thotl

t3 r =s3+31

alre s3 ! =s3+E2t
rfrlte(31,' ',82,'

'831

r. algoritmritm bioritm ritm


c, algoritm bioritm ritmbioritm

'

s1 [20] E"algoritn",
s2 t20I ="bioritn",

char
E3

[20I ="rittn" t

if (Etrlen(s1)< strlen(32

))

atrcat (83, E1) ;


alse
Etrca! (83, s2) ,
Drintf ('%B %E %a',sL,e2,s3, t I

cout<<81<<' ' <<g.2<<' '<<E3i


b. algoritm bioritm ritmalgoritm
d. algoritm bioritmritm ritm

Rdspuns corct c.
Se considerd un arbore cu redecina, cu 1oo noduri, numerotate de la 1 la
1oo. Dace nodul 13 are exact 1rr frati 9i nodul 10o este tatel nodului L3, care
(6pJ.
este numerul total de descendenli direcli (fii) ai nodului 100?
Raspuns corect: 15
Se considere o stive, inilial vide, in care s-au inlrodus in ordine valorile
4.
3 gi o coadd, inilial vide, in care au fost introduse, in ordine, valorile
din
elementele
toate
se
extrag
Cire va fi elementul din varful stivei daci
(Fp)
coadd $i se adauge, in ordinea rjxtragerii, in stiva

1,2,

6, 5'

datS?

Rispuns corect 4

Scrieli un program pascallc/c++ care citegte de la tastaturd un numlr


natural n (2<n<=100) 9i construieqte ln memorie o malrice patratd cu n linii 9i
n coloane in care ultima linie conline, in ordine, numerele !'2'3' ..,n'
elementele situate deasupra diagonalei principale sunt nule 9i oricare alt
elemenl este oblinut prin insumarea elmentelor vecine cu el, aflate pe linia
imediat urmdtoaie, pe aceeagi coloane cu el sau pe una din coloanele
aleturate. Programul va afiga pe ecran matricea oblinute pe n linii, elementele
(1opJ
fiecdrei linii fiind separate prin cate un spaliu.

Ertmptu; ponrru nra p CrantBC

Rezolvare in pseudocod:

firctru jl,n
ILa atal tjljr

Ve eflga:

270
9 18 0
3590
L23{

A 062

OFrs dlntre urmetoarele afirmalii referitoare la

e, reprezentat
rllturatd, este adeverate?

0raful neorientat

executl

ta-l,1 executi
jl.n execull
rlltru
I
ll ra".l i(j atunci
E)ntru

r.

I
ll
l!ll
I

ll

lr.
ll

I
I
II

rr

se afigeaze matricea

(4p.).

"

c oblinut prin eliminarea muchiilor:


I10,8l , t1,3t, este un arbore.

15,61

.a2.51 ,

b. Graful conline un singur ciclu.


o. Cel mai lung

I stil tjlrli+l] Ijl+ati+l! Ij+1t;

latrfel
Ilr atil tJIati+1t Ij-1I+ati+1l Ijt+ati+1t

ligura

Graful pa4ial al lui

17,U, t2,Lol ,

arir rireo;
iiij iialtrer
dact 5=1 asur.i

in

lanl elementar are lungimea 8.

d, Numdrul nodurilor de grad par este egal cu numarul nodurilor de grad impar'
ilrpuns corect a.

IJ+1t

Considerand declarerile aleturate, care dintre urmetoarele referiri este corede


(4p)
dln punct de vedere sintactic ?
(C/C++\
(Pascal)

tlDa co[qrlex=rcord
ra,lm:real rdi
vtr x,yscollE lxi
a,

b. x.re

cqlIex.ro

il3puns corect

Etruct cq)llr
(float !, in, ),
ccqtl,* x,yi
c.

ccnpL:a.x d. re.x

b.

86 considere graful orientat G, cu 5 vaduri numerotate


ou numerele de la 1 la 6, delinit cu ajutorul lislelor de

dlacenF aleturate. Construili matricea de adiacen,te


corespunzdtoare grafului orientat G1, cu 5 v6rJuri, in
numai dace in graful

I la J.
ilspuns corcct:

01L001
001000
000000
001000

9i dacd 9i
pulin
un
drum de la
existe cel
(6PJ

care exista arc intre varfurile distincte

1:
?t
3:
4:
5:
5!

26
3
3

{5
3

001101
001000

6e consideri o stiv5 s1, initial vide, in care s-au introdus, Tn aceastai ordine,
valorile 10, 12, 3 gi o afe $ive, s2, inilial vidd, in care au fost introduse, in

lceastai ordine, valorile 5,5,4,3. Care va li valoarea elementJlui din varful stivei
11 qi care va fi valoarea elementului din vlrful stivei s2 dace se extrag iumetate
dlntie elementele din stiva s2 9i se adauge, in ordinea e)dragerii, in sliva sl?

(cpJ

R{spuns corect

4,

6.

Scrlell un program Ftlorl lc/c++ car cltsgte de la tastaturd un text


mult 255 de caractere, dintre care cel pulin unul este o llterd micd a alfr
englez.,_ 9i afigeazd pe ecran, pe o singure linie, despd(ite prin cete un
toale literele mici ale alfabetului englez care apar in t6xt.'Fiecare literl

text

afigata o singure date, in ordinea primei ei apariliiin

(11

Rezolvare

'

(Pascal)

voidl nrin
(

char

eadt

!d.

o, Frin eliminarea muchiei


d. Arborele G are 5 frunze.
Rlapuns colect b.

voidl rnain( )

radlln(a),

for i:=1 to length(E) do


(s til >=,6,1
tf
(s Ill <=,2,1 6o
begin
write(slll,, r),
for js=i+1 to length(s)
if s[lI=slit chn
etil=t * t '

(t /v11)
s 12551;

int i, j,

()

cin.get (s,255) t
for ( i=0; icstrlen (s) ri++)

if,(s[iI>=,a,

and

&& s lil <-,

' It
if(EIiI==stjI )
sIjl=t*"

cout<<E

[i]

<<

ta,ti

tiis

t6,7I seobline

nu

un graf pa4ial' conex'

reline in
lntr-o listd simplu inlenluitd circulara, alocati dinamic, fiecare element
q
elementului urmator din liste Dace variabilele D si
fie
adresele a doue elemente distincte din liste astfel incat sa
lndeplinite condiliile
(p, q^adr) arral (qr = p^adtr) | p:*q->ad.r && q -, p->adr ;'atunci-lista

oa.pri

r,

for(j=l+1r j<Etrlelr(E),
do

r. Nodurile x,4 $i 5 sunt frali.


conex;i prin eliminarea unei rnuchii oarecare din G' graful oblinut
U, o
"ttu
artg conex.

var ssatring[256I;
i, j ! integr,

.ajutorul vectorului de
8o considerd un arbore o, cu radecina, memorat cu
urmdtor: r. ( 2, O ,4,2,1,7 ,2) Care dintre urmdtoare," "nrt"lii
adovArata?

Cg.culati vaLoarea er{)resLei


se va afiga: a I c u ! i v o r e x D a

Exemplu: pentru textul


Pe ecran

A 063

"J
memoreaza

iOi"si

(4pJ

!r0:

a.

un numar impar de elemente


cel
o, pulin 3 elemente
Rtrspuns corcct: b.

b.
d,

exact
exact

2
1

elemente
element

gradul
Cate virfuri ale grafului din figura aleturata, au
(6pJ
gradul
mai
mare-decat
tnierior

exterior?

Rispuns corect 2

s1 9i E2 de tip 9ir de caractere' Scrieli o secvenle de


giruri in ordine
lnstrucliuni care, in urma execularii, afigeaze pe..ecran cele 2
31 reline
dace
E-xemplu:
prinir-un
spaliu'
loxicog'raficd crescatoare, separate
va
afiga
phul nama gi s2 reline girul nacara, pe ecran se
Se considere variabilele

fi[cara

mama

(6p)

Ruspuns corcct:
{Pascalt

lf s1<s2 thn
write ( 81, ' ', s2)
alae

write ( s2, ' ', s1),

(C/C++l

it (s!tc5q)(61' E2 ) <0)
cout << E! <<n tt<< B2i
printf ("9"E %s" ,a!,s2) ,
elEa
cout << s2 <<,, ,,<< 81,
Drintf( "%8 %e" ''2'3L, t

vv,,et, ull prugr.rI|r rn flrnoalut pagcat


Jclc+{ caf6 cltogte dO la tastatul
valori naturalo n 9i rn (1SnS50, 1<mS5O) gl costruiegte in memorie

un

.bidimensional cu n linii gi n coloano tormat dln toate numerel natural


la n*m, ca in exemplu. programul va afiga pe ecran, pe linii,
tabloul
!.
elementele fiecerei linii fiind separale prin cdte un spa[iu.

Exemplu:L61L16
afiga:

pentru n=5 gi n=4 se va

'
Rezolvare: (in pseudocod)

27L2L7
3 I 13 1.8

4914
5 t0 L5

19
20

A 004
o{)nslderand declararile aleturate, care dintre urmdtoarele referiri este corecta
(4PJ
tlltt punct de veddre sintactic ?
(C/C++)
(Pascal)

!ldt. daEln- record


rI, ln,an!Lntgri esdt
lytra al-v= r6cord

nulmr6tring[30];

ci.tegte n,m
x1

and,

TDenLru

l. ..dtatan.ln

j1,m execiti

I rpentru il,n
I latittjtx
I j xx+r

lr
lt

afigeazi mat:|icea

executE

itn,

tla: tlatan;

Yrr ar!,6vi
iltpuns

b.

nurne.

struct datan{
iat zi,lE, an, ) i
s$nrct s1s {
cbrr trImi3ol ,
tlataur tLr,aiat ) t

d. e.itn.

c. e.d8'an[21

zi

corec.t d'

listi simplu inlenluite, alocate dinamic' cu cel pulin 1000 de elemente


ldontificate prin adrese, fiecare element reline in campul adr adresa

lntr-o

rlementului urmdtor din listd sau nillNULL daca nu existe un nod urmetor'
tip cu q'
Dabe q este adresa unui element din listd 9i p o variabile de acelagi
cc reti;e adresa unui alt element, care nu face parte din li$e, atunci inserarea
ii"."ntrtri de la adresa e, in li$e, imediat dupi elementul de la adresa q se

(4pJ

rcalizeaze cu ajutorul secvenlei de instrucliuni:

(C/C++)

lPasca,

t. D^.adrs= q^.attrt C^ . adr: =9;


b. D.=qt q^. aalr o D^.adri
O, q^.adr!=Dr D^ . adr: =q;
d. q: =p^. atlr; D^.adr:= q^.ad,ri
3

p->ad!=q->adrt q->adt=Dt
b. p=q; q->adr- D->adlrt
c. q->attr=Dt P->adr=q;
d. q=D->adrt D->adr= q->adrr

Rtrspuns co]ect a.
Se considere un graf neorientat dat prin

llstele de adiacenle alSturate' Car-e este

muchii care Pot fi

de
oliminate din graf asttel incdl
numerul maxim

pa4ial rezultat sd fie conex


Rtrspuns corect 3

graful

(6PJ

23
2tt3
Lz

3z L

4223
5t 3 4

1l 5
5

intr-un gral orientat G cu 6 vaduri numerolaie cu numere distincte de la 1 la 5'


Car
9i
oxiste ;rc de la varful la vdrful J daca 9i numai daca
(6p')
gradul
exterior?
mare
decat
gradul
mai
interior
sunt vaduri din gral ce au
Respuns corcct 4 5 5

t<j

j-i>l'

Scriefi un program Pascat lc./c++ care citegte de la tastature un text format


din cel muit 2oo de litere ale allabetului englez, in care cuvintele sunt separate
printr-un singur spaliu 9i aligeaze pe ecran-numerul de cuvjnte din textul citit'
iare au primi resbe;tiiultinia literd vocala. in cazul in care in te)d nu existe un

cuvant, se va afiga pe ecran mesaiul NIt ExrsrA' Se considere


(1opJ
vocale orice litere din multimea {a,A, e,E, i, r, o, o,u,It} '
astfel

d;

Exemplu: dacd t6xtul introdus este:

Erato.t.+a r sugorat ca anl.t blr.ctl ,e r.D.tsa ta


Dacru lgg
pe ecran se va afiga:

Rezolvare: utilizdm variabilele saairl gi gaBlr.2 prntru prima literA,


ultima literl a fiecerui cuvant; sasirl (saaitz) este 1 dace prima

vocale gi 0 altfel.

(Pascal)

begin

lnt l,gasitl,
voidt rnain
(

! = ' aeiou.eEfou,,
radln(a ) ;

voc

gaait2, nrcuv,

ir=1;

if strchr (voc, s Iit ) ) t


(

if poe(e [ll,voc)>O lhen


Eagitl=1;
gaaitl s=L,
else gaEilL=oi
else gasitl r =0t
whlle (8 [i] r = '
whiLe (s lit <>, . ) and i<EtrLen(s) ) i++t
(l<=l6nght (s) ) alo inc(i),
if (strchr(voc, s Iiif Dos(sli-ll ,voc)>O then 1l ) ) saEit2=1t
gaait2 =1,
if (gaEi!1*gaair2 )
if gasi!1*gasit2< >O thn
i+i;
inc (nrcuv) t
gasit2=0t
inc (i) t
l.
3

nd.

)orrslderAnd declardrile aleturate, care dintre urmetoarele referiri este corecte

(4pJ

gaalt2: =0t

cou!<<nrquv,.

(C/C++)

(Pascal)

lypa Punc!*rcord

n,yrreallendi
!y9. c6rcorecold
za l f,loat i cntru: Punct i endi
vlr ctcerci
l, o.Dunct.Y b. c. raza.Pulct
ilrpuns corcct

()

cin.gt (s,201) ,
l=0;
trhile(i<Etrlen (s)

rb,il (i<=lnght ( s) )

writ (nrcuv) t

rlhr punct ds vedere sintactic?

var voc: slring [5] ,


s:atringt201l,
i, gasitl, gasit2 ! integeri
nrcuw: integer

A 066

Etruct punct (fLoa! x,vr l t


Struct cerc
{f,loat rEzat
purct cntrui ) ct
c,cenlru.:r d. c.Y.centru

c.

reline in
lnrr-o lisiA liniard dublu inlantuita' alocata dinamic, fiecare element
nu
existd
un
dace
oirpri er adresa. urmdtorului nod din liste sau nillNULL
nillNULL
noO'urmator, in cimpul st adresa nodului precedent din liste sau
Adresa
rlncd nu existd un nod precedent, iar in campul info un numer intreg
in
listS
sunt
Dace
in
variabila
relinuta
listei
este
prlmului element al
.
de
naturale
numerele
toate
de
la
adresa
D,
hrsmorate, incepand cu elementul
in
campul
memorat
fi
num5rul
va
care
ln x00oo la 1, in ordine descrescetoare,

lnro al

celui de-al 4-lea element din liste dupe executarea $ecvenlei

(4p.)

rlalturate?

lC/C++\

easch\

r->info=0t
q= p->dr->dr->dr;
q->E!=fi

r^.Info:=0;
qr. D^.dr^ .d.r^.dri
q^.at:=ri

r->dr=qt
r->st= D->dr->dri
p- >dr->dr- >dr=ri
d.0
c. 9997

r^ . dr: =qi

tr^,at!= D^.dr^.drt
. dr^ .dr ! =ri
b, 999 9
..9998

p^ . dlr^

Rdspuns corect: d.
Care este numdrul minim de muchii care trebuie
deveni
addugate grafului aleturat pentru
(6P.)
oulerian?

Rdspuns corcct 4

o
care este numerul de noduri ale unui arbore cu 1oo de muchii?
Respuns corect 101
Scrieti un oroqram in limbaiul Pascal I CIC++ care citeste de la tastature doue
uurori'n'.tui"f" r $i !l (13ns;4, 13tr|52{) 9i construie9te in memorie un tablou
de la 1
bidimensional cu n linii 9i tn coloane lormat din toate numerele naturale
oblinut'
pe
tabloul
a
linii,
pe
ecran,
la n+m, ca Tn exemplu. Frogramul va aflga
(10p)
elementele fiecerei linii fiind separate prin cete un

spaliu'

L2345
Exemplu:pentrun=l gim=s sevaatiga:

A 066

l0 ; : ; :

20 19 18 1?

15

Rezolvare:
(pascal)

war n, i, j,x; ing6gsa;


a3arraytl. .24,f. .247of inlegery
begin
rdad(n,:n);x:=1;

for i:=1 to n do
if i nod 2=1 then
for j::X. to m ato begin
ali,jI 3=xrinc(x) r errd

el,a6

f,or j:<n dolvnto 1 tlo begdn


ali, j I :=x;inc (x) ;entt
for i:=1 to n aio begin
f,or j:=1 to m do

wrire(afi,jl,'
writeln

e8raf

,);

(C/C++)

Cum se poate accesa prima

produs-rcord

finclude<ioatream. h>
inr !, i, j, a [25] t25lx,

voitl main ( )
{ cin>>n>>n;1=t;
for (i=l; ii=11; i1r;
if (i%2==L')

for (j=X, j <=m- j +{,)


{aliI Ij I =x;x++; }
else
for ( j =n, j >=1- j --)
{a til Ij I =xrx++. }

for(i=1ri<=nri++) {
f,or(j=1rj<qtr.j++)
cout<<a Ii] tjl <<" ".

cout<<endl t

literd
denumirii unui produs
caracteristici sunt memorate in varlabila p, declarate ca maijos?
(Pascal)
{C/C++\

atruct

dnumire: atlins [15 ] t


Drt : integer

cdrui

(4p.)

proalus

char drrumire [15I i


int prelt
)p;
produs. denulire [01

.ndt

r produa;
produE.denumire [1]
d.nrmire.D [1]
p.dnurnire[11
D^ . dnumire [11

alenumire.D [0I

D.tlerumire[0]
p- >alenunire [0]

:c.

Se considera graful neorientat dennit piin mullimea nodurilor {

gi muchiile

ale

1, 2,

,4,5,6l

tl,21 ,tL,3l ,12,3j,Io,sl , t3,4i ,14,s!, [4,6t.

Care
aste numdrul maxim de muchii care pot fi eliminate din graf pentru a se obline
un graf pa4ial al seu care se fie conex?
(4pJ
1b.2
0
d.
3

c'"

(ldl.
Un arbore cu rddacin; avand 9 noduri, numerotate de la

1 la 9, este memorat

cu ajutorul vectorului de "ta{i" E=(2,5,5,3,O,2,4,L,L).


sscendentii nodului 4.
: 5, 3

Scrie,ti toti
(6p.)

lntr-o listd simplu inldnluitd, alocate dinamic, cu cel pu{in dou5 elemente,

flecare element memoreaze in campul info un numar intreg, iar in campul


urm adresa elementului urmdior din liste sau ni1 INI'IL dacd nu existd un
olement urmetor. $tiind cd prinu.J. reprezintd adresa primului element din listd,
lar variabila esle
acelagi
rcalizeaze
DlimuL,

I)

de

tip cu

ce

urmatoarea secventd de program?

(6pJ

(Paxa,
p: =prirmrJ,;

lrhile D^.urm<>nil do
p: =p^ . ul t
w"rite (D^ . info)

(CiC++1

p=grinu1;

while (p->urm! =NUI"IJ) D=Ir->urmi


printf ('%d.",p->info) i
I cout<<p->inf,o;

: Secventa realizeaze afigarea valorii memorate in ultimul nod al listei.

Scrieti programul Pascallc/C++ care cite$te de la tastature un cuvant format

din cel mult 50 de caractere, doar litere mari ale alfabetului englez, Si afigeazd
pe ecran, liecare pe cate o linie, toate prefixele acesluia, in ordine crescetoare
a lungimilor. Un preiix de lungime k al unui cuvant este un sub$ir format din
primele k caractere ale acestuia.
(1op)
Exemplu; dacd se citegte cuvantul BACALAITREAT, se vor afiga prefixele:

BAC.trI.AU
BACAT.AUR

AA
BACA

BACAIrAURT
BACAI,AUREA

BACAI.I

BACAI.AI'RTAT

BAC

'

A 067
Cum se poate accesa prima literd a numelui unei persoane ale c6rei date de
ldsntilicare sunt memorate in variabila D, declaraH
(4pJ

maijos?

BlcAtA

(Pascal)

Rezolvare: Se va realiza intregul program. Aborddrile Pascal $i C/C++


distincte, avand in vedere facilitetile diferite oferite de fiecare dintre celo

nume,prnume ! strlng I20l ,


varat! t integr
.ndt

limbaje:

(Pastal

Declarand

s:gtring[50]

prelucrarea:

readln(s);
for i=L to 1ngth (E)do
vrltLn (coDtz ( 8,1, i) )

\C/C++\
Propunem

char s [51!
Etring.h:
cin>>si 1=atrLen ( E ) i
for ( i=1; i<=I; i++ ) {
for(j=0rj<irj++)
cout<<s Ij I t
Declarand

cout<<endli

gifolosind

atruct

Darcoanaircord

rDrgoala,
D . nun (1I
D

(C/C++)

Dersoana

char num [ 211 , prenume [21] ;


int varstat
e,

'
D.nunlelCI

Darsoana. num

[1]

Dersoana.rune[0]

D^ . nun [11

D- >num

nurne. p [ 1l

num.p

l0l

[0

Se considere graful orientat definit prin mullimea varfurilor

arcele

tL,2,3,4,5,61

(1,2),(1,6),i1,s), (2,3),(3,6), (4,L), (5,4).

gi

Care este varful

accesibil din toate celelalte varfuri prin intermediul unor drumuri elementare?
(4p.)
b.
d.
Un arbore cu redecine, avand

cu

ajutorul vedorului

8 noduri, numerotate de la 1 la 8, este memorat

de "ta!i" t=(8,8,0,3,4,3,4,5l . Care

doscendentii nodului 4?

5gi

sunt

(6p.)

o liste liniare simplu inlenluite, alocata dinamic, ale cdrei noduri


relin in campul data o. valoare numericd intreaga. $tiind ci x, y $i z relin
adresele unor elemente din liste, ce se va afi$a dupd executarea secvenlei
urmitoare de program?
(6p)
Se consider5

(Pascal

,drta!

=2

(C/C++)

:{->data=2i z=xt
y->data=sr y=zi

. ahta 3 =5,
.t,
t. (x^. drta,y^ .da!a, z^.data)

cout< <x- >data< <y- >d,ata< <z - >data i


I printf ( 'td%d%d. , :r- >dLata,

y- >data, z->data)

222
Scrieli programul

pascat lclc++ care citegte de la tastature un cuvant format

din cel mult 50 caractere, litere mari ale alfabetului englez, gi afigeaze pe ecran,

flecare pe cate o linie, toate sufixele acestuia, in ordine crescetoare a lungimilor.

Un sufix de lungime

caractere ale acestuia.

k al unui cuvant

este un subgir format din ultimele


(10p.)

Excmplu: dacd
t{

ss

cltogte

cuvantul

rt(llcN ee vor aflga

A 068

EN
MEI{

Oum se poate accesa prima litera

TITEN

(Pascal)

EXAME![

Rezolvarer Presupunand ce girul de caractere citit este s, o solulie de afigare


(Pascalt

lu.ng

denumirii unui material ale cdrui

0aracteristici sunt memorate in variabila rn, declarati

XAIIEI{

=lenglh s) t
(

for i:=1 to lurrg do


writela (coDy( B,luaE-i+1, i)

(C/C++)

lung=strlen
for (i=1; i<=lung; i++ )
cout<<a+Lu!g-i<<ndl,
(

s) -

maijos?

slruct matrial

andt

)m;

n^ . denumire [11

ntterial.
rn.

denu.mire [ 1]
denumire [ 1I

:d.

\CiC++l

nrtoriaL:record.
dnumire: Etring [20] t
pre! r intgr
nrrmrterialt
d.nunire.m[1]

(4p.

char

dtenumire [rO I t

int pret i

dlenumire.n[0]
m->denunire [0]
naleriaL. dnumire
m. denumir [ 0l

[0

Se considerd graful orientat cu vadurile numerotate cu numere distincte


L,2,3, .. ;. Graful este reprezenlat printr-o matrice de adiacente A. precizati
care este semnificalia sumei valorilor de pe o linie oarecare x a matriceiA. (4p.)
roprezintd
roprezintd
roprezinte
rprezinte

num5rul arcelor care au ca extremitate initiale varful x


numerul drumurilor care contin varful x
numirul arcelor care au ca extremitate finala varful x
num5rul drumurilor care pornesc din varful x

Care este vectorul de "tali" asociat arborelui cu


rdddcina din figura aleturate, in care nodul 5 este
nodul riddcind?
(6pJ

Respuns:

(2, s, L, 2, o, s, sl

Fre o liste liniard.simplu inldnluitd, alocate dinamic, ale cdrei noduri relin in
campul next adresa nodului urmdtor sau nil lrfur,r, daci nu exist5 un
element urmdtor in listd. Listd are cel pulin doui elemente. Variabila x reline
adresa primului nod din listd, variabila y reline adresa celui de-al doilea
element din liste, iar variabila z, de acelagi tip cu I! gi y, retine adresa unui nod
ce nu_ apartine
pascallClc++, prin
.listei. Scrieti o secventa de instruc,tiuni
executarea cAreia se insereaze in lisld nodul referit de z intre cele doud noduri
Ieferite de x gi y.
(6pJ
.
Se inlocuiegte legatura de succesiune de la * cdtre y cu doue leg5turi
urla de la x citre z gi una de la z cdtrey.
(Pascal)
(CiC++l
,

orice ordine)
=zi z^.next: =yi

nar(t:

/,/in orice ordine


x->nex!=zi z->nxt=yi

Scrlefl programul PaecallC/C++ care cltoqlo do la tastaturd doud


naturals:n gi n (15rn550, XSn350) gi apol min numere intregi de col
cifre ce reprezintd elementele unui tablou bidimensional. Programul va aflgi
ecran ultima cifra a produsului elementelor pozitive aflate pe linii cu numert
ordine pare gi coloane cu numere de ordine impare. Numerotarea
respectiv a coloanelor se face incepand de la 1. Dacd nu exista
pozitive aflate pe linii cu numere de ordine pare gi cdloane cu numere
ordine imparc, se va afiga mesajul Nu ExrsTA.
(r
Exemplu: pentru m=4, n=4 gi matricea aleturatd,
Lt -2r 31 41
se va afiga 5 (reprezentand ultima cifra a valorii
8t
91 11 2L 31
355=5x71)
Fril 0
Fezolvare: Se parcurg gi se inmullesc elementele de pe linii pare gi coloane
5.

'

a 069
Cum se poate accesa prima literA a numelui unui elev ale cerui date de
ldentilicare sunt memorate in variabila , declarat5 aleturat?
(4p)
(Pasca|
(C/Ct+)

tl4 e 61ev=record
ntrm, Drrrume atring
varsta ! integeri
3

E-erE
E

rr

pastrand la fiecare produs numai ultima cifre.

D1r el<istaefalEe
)entru i(.2 ,t,2 executd

I
|
I
I

pentru J(L,n,2 executS.


| paca a13)0 adunci
I I D (e*arj)%10
I I existaetrue

llLr
lrl
lt

rdace exista atunci scrie p


laltfef sclie "Nu exista"

Observafie: in Pascal se pot utiliza

irtrite

clasice sau structuri

fo!

for i:=2 to n div 2 do


for j:=1 to (r+l)itiv 2 alo
if a I2*i,2*j -11>=0 then
D!=p*a[2*i,2*j-11 nodt 10

[2

0l ;

ndi

var :61vi
t.
b.
0.
d.

Etruct lv{
char aume l2olprenume
int varstat )6i

a.
b.
c.
d.

o^ . nun [11
c. nune [ 1I
Lev.nune [1l
num6.6 [ 1I
Rlspuns corect: bi

->nunelol
.num [01

elev.nume [0I
nume. [01

Se consideri graful orientat dat prin matricea de adiacente


aldturate.
Care este numarul de varfuri ale grafului care au gradul interior
(intern) egal cu gradul exterior
(4p.)

(extern)?

b.3

[20 ]

c.2

00000
1011L
00010
10001
01000
d. 1

Rispuns corect: c.
Se noteazd prin d (v) gradul interior, respectiv prin al*(v) gradul oderior al unui
vArf

v.

Urmerind matricea de adiacenla se observd ca: dt. (1)

=0,

d-

(L)=2,

d* (2)

=a,

d-(2)=L, d'(3)=1, ar(3)=x, d.(4)=2, d-(4)=2, al.(s)=1, d-(5)=1.


Care este vectorul de "tali" asociat
arborelui cu riddcind din figura aldturatd

in care nodul

este nodul

-rddecind?
(6p)

Rezolvare: Vectorul de tali asociat arborelui din figure este:

t = (0 1 1 3 3 4 4)

Se consider5 o listA liniard simplu inldntuite, alocatd dinamic, ale cerei noduri
relin in campul next adresa nodului urmitor sau nit
lNur.L daci nu eiistd
un element urmetor in listd. Lista are cel pulin un element. gtiind cd variabila u
reline adresa ultimului nod din liste, scrieti o secvenle de instrucliuni in
limbajul nascat lc/c++ prin care se insereaze in listi dupd ultimul nod, cu
adresa relinute de u, un nou nod a cerui adrese este retinutd de variabila v, de
acelagi tip cu u?
(6 pJ
Rezolvare: (Pasca, u^.next: =
v^.nx! :=
(C/C++) u- >urrn =
v->urm = tintLLt

vi
v;

nil;

Scrioll programul narcal lc,rc++ car6 cltegte de la tastaturd un


natural n (1<n<50) gi nr n numere naturale de cel mull 5 clfre ce
elementele unui tablou bidimensional a, gl verificd dace matrica
triunghiulard superior. Programul va afiga. pe ecran mesajul

a 070
$tiind ci flecare dintre variabilele var1, var2 memoreaze numele gi nota
cAte unui elev in brma datd de declararea aleturatd, indicali care dinhe
urmetoarele instrucliuni
instructiuni determine,
ur
urma
executSrii, memorarea in
variabila reald n a mediei aritmetice a notelor celor doi elevi.
(4p.)

,,Este triunghiulari. superior', respectiv oN

triunghiular{ superior,,.

in

O matrice se numegte triunghiulard

dace toate elementele aflate sub diagonala principale a ei sunt nule.

Exemplu: pentru n=3 gi matricea alAturate se va aliga


mesajul:

Este triunghiulari

superior

lPascal

tftrro levarcord,

'-23
0s5
009

lune!strLng[30],
nota: ralt

Rezolvare: Secventa pseudocod aleturati reprezintd o solu!ie posibild

endt

construirea matriCei:

citste n (numdr natural)


fpentru i1,m executi
I pentru j X.n execute
| | citeate ai,j (numere naturale)
Itl
tt
s1
fpentlu i2,m execute
| ;pentru j 1,i-1 executi
| | aacd a1,1 * 0 atunci g<O

l.
b,
0.
d.

var war1, var2:elev;


tr:-(v!r1.nota+var2.nota)d,iv2,
m =var1 . nola+ver2 . tlota d,iv 2t
r: = (var1+v:r2 ) .Dota div 2t
ms =nota (var1+var2 ) div 2,
3

Rispuns corcct a.

tn = (varl.nota+var2.r,ota) /2 i
m = vsrl . nota +var2 .\!]ot,a/ 2 t
n = (var1+var2 ) .'l,oEal2 t
n = nota (var1+vas2l 12;

Se considere un graf orientat dat prin matricea de


adiacen!e aleturate.

Cate varfuri ale grafului au proprietatea cd diferen,ta


absolutd a gradelor (intern gi exlern) este egale cu 2?

lrl

b.3

l.I

rdaceg+Oatunci
lscrS.e Este triunghiularS. superio!
I altfel
lscrie llu este triunghiulari superior
l1t

\lJ/U++l

struct Iev
{ char nun [30I t
float notai
)var1, var2 i

c.4

R;spuns cotct: d.
Se noteazi prin d-(v)gradul interior, respecliv prin at

vdrfw.,

(cp)

(v)

01101
0 01r0
11000
01101
01010
d.2

gradul exterior al unui

Urmirind matricea de adiacenti se observd ce: d.(1)=3, d.(w)= t,


dr.(2)= 2, {(2)=4, d:(3)=2, il-(3}=3, ar-(4)=a, d-(4)=3,
at' ( s ) =2, dt-(s)=2.

Care este vectorul de "tati" asociat


redecine din figura alSturatd ?n care
nodul reddcina?

Respuns corect vectorul de tali asociat arborelui este:

252s

Se considerd o lisli liniard simplu inldnluitd] alocatd dinamic, ate cArei noduri
relin in campul rext adresa nodului urm5tor sau nil" lNur.x, daci nu exista
un element urmator. Lista are cel pu,tin doue elemente. gtiind cd variabila pl

reline adresa primului nod din listd, iar variabila u1 adresa. ultimului nod,
scrieli o secvenle de instrucliuni In limbajul pascal- lc/c"+, prin executarea
cireia lista liniare se transforma intr-o listd circulard?
(6p.)

(Pascnl)

Rczolvirc:
5.

u1^ .naxt !.D1,

(c/C rt)
| ul->urm
r
I

Scrieli programul FaEcal lc/c++ care citegte de la tastature doul nui


naturale n Si n (15nJ24, 15n324), un numer natural x (l<xsn) 9i apol
numere naturale de cel mult 5 ciire ce repretinta elementele unui
bidimensional a, cu n linii, numerolate dQ la 1 la n, 9i n coloane, nu
de la 1 la n. Programul va determina eliminarea liniei cu numdrul de
din matrice, modilicarea corespunzetoare a numerului de linii din
afigarea matricei obtinute in urmetorul format: cate o linie a matricei pe
linie a ecranului, eiementele fiecirei linii fiind separate prin cate un
Exomplu

pentru

m=3, a.4,

x!,,2

gi matricea aleturate

Rezolv#e: Este
aleturat

prezentate

o posibili rezolvare in

pseudocod.

11 21 31 41
51 51 71 81
91 11 21 31

se va afiga matricoa

11 21 31 4t1
91 11 21 31

citeste n, n, * (numere naturale)


rpentlu il,m executl
I lpentru j 1,n execute
| | citeste a;,;

lrr
ll

Tpentru ix,rn-L executi

| ;pentru j 1,n executi


I I ai,ja;*r.j

Ilrl

nm-1;

a 071

P1;

t,

Cate noduri ale grafului orientat cu gase noduri numerotate de la I la 6 gi


urmdtoarele arce: (1,5), (1,6), (2,1), (2,3), (3,1), (3,,(t), ({,3),
(4,5), (5,4), (5,5) au gradul interior egal cu gradul exterior?
(4p.)

b.e

c.5

d.3

Rlgpuns corcct: c.
Gradul exlerior al unui nod v este reprezentat de numarul
arcelor ce au ca extremitate inlliala acest nod, iar gradul

lnterior este reprezentat de numArul arcelor

ce au

ca

t, 2, 3, 4 gi G au

extremitate finald nodul v. Nodurile


gradul interior egal cu gradul exterior.

lntr-o listd liniare simplu inlenluitd, alocate dinamic, cu cel pu{in 3 noduri,
fiecare nod reline in c6mpul urm, adresa urmdtorului nod din liste sau
nj"l" IIftnxJ dacd nu existA un nod urmetor. Dace in variabila D se reline
adresa primului nod din listd gi q este o variabile de acelagi tip cu p, atunci
care dintre secvenlele de maij-o.s elimind din liste al doilea nod ?
(4p.)
(Pascat
(C/C++l
q3 =D^ .urmt
q=p->urmi
p->ufm=q->urmi
D^ .urm: =q^ . urmi
dispose (q) ;
delate qi I fra (q) ,
q: sD^.u!.mi
q=D->urmt
dispose (q) ,
delet q, I fre (c) t
p->urm=q->urmi
D^ .urn: =q^ .unit
dlispoae (D^ .urm) t
dlete p->urm; I free (n->urm) ;
p->urm=D- >urm- >urmi
D^ .urm: =p^ .urm^ .urmi
qa =!r^ . urm^ .urmi
q=D->urm->urmi
p^.urm3=q^,urmi
p->urm=q->urmi
dlispose (q) t
delete q, I fre (c) t
Rispuns corect: a.
Variabila i este de tip intreg, iar variabila a
(C/C++)
memoreaze o matrice cu n linii gi n coloane,
a1 =0rs2=0;
numerotate de la 0/1 la
ale cerei
for(i=0t i<n; i++)

^^L/^,
elemente sunt numere intreoi.

inlocuili punctele de suspensie din secvenla


program aldturatd cu instructiunile
corespunzetoare, astfel incAt, in urma executdrii secventei, variabila intreage s1 sd

de

I @rr*t\
I sr,=o; 82.=O t
| fo" ir= ltoodo
begin

...............

end;

memoreze suma elementelor de pe diagonala principalS.din malricea a, iar variabila


intreage 82 suma elemenlelor de pe diagonala secundar5 din matricea
(6p.)

a.

Respuns corect:
(C1C++J

sr = st

{Pascaf) eX,:

+ a

sL

[i] Iil;
ali,ilr

s2

= A2

823= a2

+ a Ii] In-i-11 ;
+ a Ii,n-i+XI t

Fiecare dintre variabilele declarate mai jos memoreazd numele gi nota cate
unui elev. Scrieli secventa de instructiuni prih care se cilesc de la tastature
numele gi nota pentru fiecare dintre variabilele e1 Si e2 9i apoi se afigeaze
numele elevului cu nota cea mai mare. Dace cele doud note sunt egale, !e va
aliga numele elevului memorat in variabila
(Op)

e1.

l(ii(;

(f'ast;at)

!!4)o clGv-rccord
nun: stringt20l,
eud;

no!a: r41

var e1, e23 elevi


readln (el.nurr, e1. notd),
reedln ( e2 . nurl, e2 . aota) t
if el.Dota >= e2.nota tlren

lrrit (e1.nuln)
else write (2.nune) i
Scrieli programul pascal, lc/c*+

care citeste de la tastature, separate I


Entei, douE giruri de caractere: un gir s de maximum 25s de caractere; o
pot fi litere ale afabetului englez 9i spalii, apoi un $ir c de.maximum ?0
caractere. Programul va inlocui in girul E toate apariliile girului c cu un 9lr
exact aceeagi lungime efective cu c, lormat doar din caractere *, ca
exemplu. $irul s oblinut in urma acestei prelucrdri va fi afigat pe ecran,
cazul in caie c nu apare in s, programul va afiga mesajul Nu APAxt.
Exemplu: dac5 girul s citit este Din d.eDartare se ved tar idl
este tare atunci pe ecran se va afiga:
(1
Dit} deDar**** Ee vede ****
Sugestie de rezolvare: {C.C+t1: se caute apariliile girului c in s, prin
repetate al funcliei strErrO. Cautarea incepe intotdeauna de la
primului caracter care urmeazd subgirului c.
(Pasoat: se utilizeazd procedura Dos, penlru determinarea ocurenlelor
c in s, apoi inlocuirea propriuzise se poate realiza prin perechi de

delete

9i insert.
tPascalt

(6/C++)

#incl-ude <iostrean.h>

var E ! stringi
c,d : string [20] ,
gasit 3 booleant
Doz, n, i: integer;

#include <string. tr>


int nain( )
t
char s[256L cI2L] t
char* Dt
int n, i, gasit = 0,
cin.gtline(s, 256) t
cin >> c;
n = strlen(c);
D = ELrstr(s, c)t
if (p) gasit = t;
rshil.e (p)
(for(i=p-sr i<p-s+ni i++ )
s[il = '*''
p = Etrst!(p+n, c) i

begin

readln(s); readln(c) t
D != length(c),
d. != ct
fori:=ltondo
dllil := t*';
gaait != falEei
reDeet
poz := pos(c, s);
if Doz <> 0 then
bgin
delete(E, 9oz, n,i
insert (d, e, p'ozl ,
gasit := true;

if(sasil == 0)
cout <<
else cout << si
return 0i

endi

urotil poz = 0t
if gaEit lhen writln (s )
elEe writeLn( '!M, aPARE'!)

ud.

A O72
Fi6 un arborele cu radecine cu 9 noduri, numerotate de la 1 la 9. care este
vectorul ,,de tali" al acestui arbore $tiind ca nodurile r, 2, 3, L ,5, 5, z, 8 au
exact cate un descendent direct (tiu)?

(L,2,3,t,5,6,7,5)
(o,L,2,3,4,5,6,7,8)

Rispuns corect:
cin >> el,. nune >> e1.nota,
cin >> e2.nutne >> e2.notat
if (el.nota >= e2.noLa)
cou! << el.nunei
else cout << e2.aumei

Respuns corect:

5.

t t)

struct clcv(
char numG [20L
float notai ) t
etev el, e2 t

(4pJ

b.

d.

(1,,2,3,4,5,6,7,A,9'
(o,L,2,3, 4,5, 6,7,8,9'

cotct: c,

Rtrspuns

ln secvenla aldturat5, fiecare dintre variabilele x gi e sunt de tipul gir de


i este de tip intreg. Dac6 variabilele x gi s memoreazd initial girul
rbaolvat, ce se va memora in variabila x in urma executerii secventei
caracter, iar
aldturate?

(4p.)
(Pascall

(C/C+*\

for i:=1 to leuqh(E)

for(i=0ii<Etrten(s) ii++)
if (strcq) (x, a+l)<O)
atrcDy(x, s+i);

alo

bcgin
b: -copy(g, i,lngrh (s) -i+1) ,

lf(b>x) thn xs=b

.ndt

b. absolvent

lDt

C. Eolvn!

d. veat

Rispuns corct d.
Variabila

memoreaze cel mai mare sufix in sens lexicografic, al girului.

Se consideri un graf neorientat cu 8 noduri, numerotate de la 1 la g, qi


muchiile: t1,{L I1,sl, t2,11, a2,31, F,U, t4,51, a4,71, a5,71,

t5,51. Scrie.ti cate componente conexe are graful dat gi care dintre nodurile
acestuia trebuie eliminate astfel incat subgraful oblinut sd aibi un numer

conexe.

maxim de componente
(6p)
Rezolvare: Graful dat este conex, deci are o singura componentd conexa.

Prin eliminarea nodului 1se vor suprima muchiile t1,41, aL,el, p,Ll
oblnandu-se astfel 3 componente conexe. Prin eliminarea oricdrui alt nod
numarul de componente conexe oblinut este mai mic decat 3.

Se considerd lista simplu inl;nluite, alocatd dinamic, in care liecare nod


memoreaza in cdmpul info un numir intreg, iar in campul urm adresa
nodului urmetor sau nillNur,L daca nu existe un nod urmdtor. in listd sunt
memorate, in aceastd ordine, numai valorile 1, i, g. Dace variabila D retine
adresa primului nod din liste, iar variabila u adresa ultimului nod din listd,
scrieli inslrucliunile care pot inlocui zona punctati din secvenla aldturat5,
astfel incdt, in urma executdrii acesteia, sd se atiseze 3 2 1.
(6p)
tPascat)

whil u <> nil


begin

(C/C++\

do

write(u^.inf,o, r '),.
u := u^.um

while
{

ead;

(u != Nt'IrI" )

cout << u*>info<<" ";

u = u- >urmi

Razolvarc:
(Pasca0
U^ .Ua:r
D^ .urm^

r D^ ,Ur l,
.urm ! F D,

5.

U->Urn

D^.uinr !=

A 073

(C/C++J

D->utm,

p-irlen->urm.91

Ss considore arborele cu 12 noduri, numerotate d6 la 1 la 12, detinit prin


urmdtorul vectori ,,de tali": ({, S, o, 3, 10, L, g, 3, 2,4, ?, 1O). Care dintre
nodurile arborelui au exact un descendent direct (fiu)?
(4pJ

D->urfir r NI'IJJ,

MTIJL,

Scrieli programul pascarlc/c++ care citegte de la tastaturd o


naturale ! (23n32a), construiegte in memorie gi apoi afigeaz5 pe
matrice a, cu n linii $i n coloane, simetricil faF de diagonala
Elemente matricei situate deasupra diagonalei secundare; inclusiv
o(o 1) .
secundara, sunt toate numerele naturale de la 1 la

Rdspuns

135

10

xr integert

reprezinti o solulie posibile pentru


construirea matricei:

x:At
yrB nd,
vtr *, y3 Ci

Tpontru i1,n executl


I rcet tinp i+j <= n executl
llrdacti=latunci

longl-nt
ohar

la 1.1J (J+1) /2

(4p.)

in! *t
chlr yt

It

float

r.t

long y;

Btruc!*C
t

integer
real

atrarcE A :li
struct B yt

I ,1, yt.
a, longt
C, chlr

b.
d.

int
float

Rdspuns corcct: c.

altfl
a n-j+l,n-i+l

b.
d.

slruct

T,

xl real i
y: Longin! end;
tl4) C=record

j1

a.. a, ,, , -1

IyD B=record

citsest n

ll

struct

yr char
.nd,

(1opJ

x.x.y ?

(C/C++)

it"Da A=record

2596
4853
7 421"

Secvenla pseudocod alSturati

b.

(Pascal)

fiind separate lntre ele prin cate Un spaliu.


Exemplu: pentru
= 4 se va afiga matricea aleturate.

. Rszolvare:

corct:

L,2,7
L0, L,2,7

So considerd declardrile de maijos. Care este tipul expresiei

Elementele fiec5rei linii, de la stanga la dreapta gi ale


fiecerei coloane, de sus in jos, situate deasupra
diagonalei secundare, inclusiv cele de pe diagonala
secundare, sunt in ordine strict crescetoare, ca in
exemplu. Matricea se va afiga pe ecran, cate o linie a
matricei pe o linie a ecranului, elementele fiecerei linii

b.
d.

6, 9, t 1
5, 12, 5, 9, 11

l,

e a::

E noduri, numerotate de la 1 la d, gi arcele


(1,2), (1,s), (I,6r, (2,3r, (t,3), (4,s), (6,5). Care este numdrul

Se consideri graful orientat cu

minim de arce ce trebuid ad5ugate grafului astfel incat acesta sA conline cel
pulin un circuit elementar de_lungime 4? pentru graful rezultat, da{i un

ljJ+1
lt

sxemplu de astlel de

ql

circuit.

(6p.)

Rispuns corect: Numerul minim de arce care hebuie adaugate grafului


astfel incat acesta sd conlini cel pulin un circuit elementar de lungime a eite z .
Sunt mai multe posibiliteli de a alege arcele ce trebuie adeugate. Se poate alege
una dintre urmjtoarele variante:
1) sau

(5, 3), (2, Ll; (3, 5), (5 ,


(5, 2), (3, 4t). in urma adaugirii arcelor se poate obline unul
dintre
circuitele: L, G, s, 2, L, L, z, 3, s, 1 sau 5, 2, t, 4, s.

i, 9 9i q sunt de tip intreg, iar variabila a memoreaze un tablou


bidimensional cu n linii gi n coloane numerotate de la
la n/0 la n-1
( 0<n<50 )
, cu elemente numere reale. lnlocuili punctele de suspensie din
secvenla de program de mai jos cu instrucliunile corespunzAtoare, astfel incat,
Variabilele n,

in

urma executirii acesteia, sa se interschimbe elementele liniei q cu


9 ale tabloului a (lsq<n, lSpsn varianta pascal, respectiv
05q5n-1, 0fpSn-l varianta C/C++). Dace sunt necesare gi alte variabile,
scrieli declarerile acestora.
(6pJ
elementele liniei

lC/G t 1)

(Pasca/)

tor(l .01 i.

torlr-ltondo

t........)

bogLn. . . . . . . .cnd,

<

nr

a tr

i.++)

cnd
an4,

,}

fcir(i=Oti<nti++)

var arx: rali


fori3=ltondo
begi!
au:r := a[k,i]t
atk,il := a[1,i],
a[1,i] ;= aux;

l,oat aux = atkl til ;


a tkl til = a t11 til;
a

tIl lil

auxi

Scrieli un program Pascallclc++ care citeste de la tastatur5 un nu


natural n (i<o.rof) 9i apoi n propozi,tii. Fiecare propozilie este formate
maximum 255 de caractere care sunt numai litere mici ale alfabetului

spalii. gtiind ce fiecare propozilie se termind cu caracterul Enter' se


ahgeze-pe ecran propozilia care are cele mi puline vocale (sunt conside
uoiite i:aractereri
4'r, o, u). Dacd doud sau mai multe propozilil
",
acelagi num5r de vocale, se va afiga ultima propozilie, in ordinea citirii,

conoilia.

indepiinegte
Exemplu: pentru

n = 4 9i urmetoarele
tar
a
azi Dlouat
a f,oet innorat DeEt tot
maine va f,i soare
acum llu mai vreau sa Ploua

(1

propozilii:

se va afiga:

f,i

soar

Rezolvare:
(Pasca||

var a, a: string;
n, i, j,mio,nv : integer;
voc : 3et of chart
bgin

mia := 2 55;
radLa (a) ,
.r*ii;=1,"' ,tet,ti.t,
!orrrur],

for i := 1 to n alo
bgi!
readh(s) t
nv := 0;
for j : =1 to 1ength ( 5) dlo
if sljl in voc
thes inc (nv) ,
if nw <= min then
begin

(C|C++J

#incLude <iostranr.h>
#incLude <string.h>

int
t

rninim = nv;
atrcpy (Pmin, s) t

cout << xmint


return 0i

eadl,

.rr"

(C/C++)

(Pascal)

*ir""

l! (.Erdhr (v,
rlJl ) )nv++r
Lf(nv <. mLnlm)

rrlt.In(a),

Rezolvare:

5.

tnain ( )

char s [256] , Ptninl256l t


char vll = I'aeiou";
int minim = 255t
int n' nw;
int i, j, 1,
cin >> n;
cin. get O ,
for(i = 1; i <= n; i ++)
t
ciD.stline(8,2561 t
I = atrleD(s) t
nv= 0;

iazolv!ru;

VARIANTA 074

r) 2 muchli

tisla tiniare simptu intentuite, atocate dinamic, cu


cet putin 3 etemt
111-o
ae.care erement reline in campul u"nr adresa
urmatorului erement din liste
nillNUr,r dacd nu existi un element urmdtor, iar in campul
ilrto intorr
utile de tip intreg. Dacd variabira p reline adresa primur[r
er"ment oin
atunci care dintre- secvenlele de mai jos atribuie
cdmpului
al cetul
rrelea etement informalia utile din primul element al
(

iJo
listei?

a.

b,
c.

d.

(C/C+ +)
D- >urTn- >urm-

> info=D- > info,


p- >urm- >urri- >info=p- >urm- >info;

D- >info- >Lnf,oD- >unn- >urtn =


D^ .urm^ .urm^ .

b.
c.
d.

D^ .unn^ .urm^

2.

info:

.lnfo!

=D^

.inf,o,

D^. Lnfo^. Lnfo^. info3 =p^.


P^ .urm^ .urm 3 = p^ .l"nfo,
Riapuns corect: a.

.lnfo,
lnfo,

cifra a cate unui termen al


si pane la termenul cie indice

nu in ordine' linie cu
'
;;i;iil;;ril;'inoil" r
ii;;i; tr; l. ios, 9i in cidrul liecirei linii de la stanga la dreapta' ca in

1ge

lfxcythenwrite(y),
lse write ( . inpoEibil, ),
iry)oslbit
brnal

(c/c++)

if ( strctqp (x, y) > O) cout<


elEe
lf (Etrctnp (:r,y) < O)cout<
else cout << .fuqposlbil,,,

b.

bacaLaureat

d.

Rispuns corect: c,
Secvenla de program compare gi afigeaze cuventul
mai mare in
lexicogralic.
Se.considera un arbore cu 9 noduri, numerotate
de la 1 la 9, gi cu vectorul
tali" urmdtor: (9,9,8,2, 6,2, g, o,2),
a) Enumerali descendenlii nodului 2.
b) CAte noduri de tip frunze are acest arbore?

nodutui

l,":-"ly:::]
p,
Aroorete are 5_Descendentii
noduri detipfrunze

6scventa Pseudocod al6tu'


solutie
rstd rePrezintd
po8ibile pentru construirea

(Pascat)

2 su;tnodurite 1,6,s,5,7.
1, s,4,7,3j.

(nodurile

Se considerd graful neorientat


urmdtoarele muchii:

iror"t""ia"i rrti.a

Razolvarl

Ce.se.va afiga in urma executerii secvenlei de program


de mai Jos
variabila r. memoreaze cuventul bacaLaura!,
iar variabila v
cuvanlul banal?

a)

o valoare
;;il- "; orooramul PaEcaLlc,/c++ care citegte de la tastature
pe
o matrice
ecran
in memorie 9i afigeazi
;il;id;'iii"iiil, "onttruiegte
liecare
naturale'
numere
.., " fi.ii'ii" coloane ale cirei elementq sunt
incepand
girului lui F-ibonacci'

-D^ . urm^

if x > y then writ.e(x)

a,
c.

dace n>1.

lxemplu
matricei Pe
Matrlcea se va afiga Pe ecran, c)ate o linie a
pe
linie
aceeaqi
de
elementele
eqrdnuiui,
;it;;titG a
lllnd separate intie ele prin cete un spaliu
Excmitu: pentru n = | se va ob{ne .rtti."" .l?l[;ti'

>info = p->info;
p->info,

(Pasca0

a.

b) I muchis
EoconsiderdqirulluiFibo'nacci,definitastfel:f,0'0'f,r'1'f"'f'-1+f!-2'

cu 6 noduri, numerotate de la 1la


t1,3t t1,5t 12,31 12,41 t2,6t ts,3I I6,{d

a).pg1e gste numdrul minim de muchii ce trebuie


eliminate din acest
"

astfl Tncat grafut pa4iat oblinut se nu .on1ra

ni":u,i#ui'''"

or..uire este numdrul minim de muchii ce trebuie


eliminate din acest
astfel incat grafut pa4iat oblinut sd aiua e*act
ooui c#poilni"1on"""z

matricei:

1123
5831
4594
37 07

cltost n
f 01r f 11
rpentru il,n exocutx
i,.ocntru 'i 1,n 6:.acutl

ii ,4..r jlr li i=r atunci ar,r1


lllaltfsl
iiiro."a j=2 ei i=r atunci arz1
ll | | artfer
(fo+f1)t1o

ll f2
lllla'.rrz

||

llllroerl
llllrlr2
llltr
llrr
Itr
lt

1.

\\,/tj t t I

(Pasoal)

VARIANTA 075
Ce se va afi$a in urma executerii secvenlei
de program aldturate gtiind
este o variabila de fip intreg, iar variabila
este- Oe tip
caractere?
"irL,"g I I

D r ptl,m, q r Drl'm->urn,

D !- Drlm, q l- Prl-m^.urml
p^.urm t. nj.L,
whlL6 q <> nlL do beg!'n
r r- q^.urmi

- NULL,
wtrile(q l= NULL )
{ r=q->urmi
D->urm

(Pasca,

Rozolvare:

cu ? varfuri, numerotate de la 1 la 7' 9i arcele


(1,2), (2,s), (3,2), (3,4), (3,6), (s,6), (s,7), (5,1)' care este numerul

Se considerd graful orientat

atrcDy (!., '?xAttN ![aTiOtAr,") ,

for(i = 0; i < strlen(x); i++;


if(xtil >='A && xtit <='N')
xlil = r. til + 'a'-'A';
cout << xi I prittf (,?c',, rr) ,
xlrrne natLonele
b.

xa.mn DaTionaLe

E:I(IUENE NATTONAI,E

errAtneN

Riispuns corect
alfabetului englez
2.

d,

pentru orice
minim'Ce arce care trebuie adaugate acestui graf astfel incat'
pulin
un drum de
cel
sa
existe
y,
mullimea
din
io"f noo"ii x 9i
(6p.)
16
adeuqate.
y? Fn,,marati
arcele care trebuie adiugate'
Enumerati arr:.le
la ,,?
la ..
x ra

it,z,s,+t

(argoritrnur transformi primere 14 caracterere


"'- ritere
litera micd corespunzato# acestoral-_'-''"'

Se.considere graful neorientat cu 6 noduri, numerotate


de la 1 la d, definit prin listete de adiacentd aleturate.
Cete
muchii trebuie addugate in acest graf astfel incat
el sd

oevrna grat

comptet?

16

b.

14

(4pJ

c.6

Rispuns corect d.
3.

lAtfoNalE

b.

Tn

(C/C*+) q->urrn = ptt P = q,

(Pasca| q^.urrn := Eri 1l 3= qt'

(C/C++)

'c.

cndl;

a,

q= rt

q := r

x:= | ExAlteNe NaTiOnAIJe ' ,


for i:=1 !o teagth(x) dlo
if (xtil >= 'A' ) andt (xIiI <= ,N' ) then
=chr (orat (x Iit ) +orit ( 'a, ) -ord( ,A, ) ) .
.:([il
(x) t
rrrite

1:3

2t 3 4

3:1 2 5
4t 2 6
5:1 3
5:2 4.
d.8

Numdrulde muchii ale unu; graf complet este egal


cu D* (r_1) /2.
simptu intdntuire, atocard dinamic, cu cet pulin 3
I,::"-]':11j1'::i
fiecare
element reline in campul urm adresa ,rratorrrri
oin ti"te

oil

"Liluini
lNln x" daca nu existe un, element urm;tor. Oacj'in
u"ri"Utf"
reline adresa primului element din liste, iar
q
D, Si .rni u"ri;[it" O"
scrieli instrucriunite cu care ir"Ouie int"rit" puncrete
Il--":^?_"T
.
susp_ensie din secventa
de program aleturat5, astfet incat, in urrn"

et, sa se tnverseze sensul legdturilor in liste.

Rezolvare: Este reprezentat alaturi


graful corespunzitor enunlului. Numa-

iul minim de muchii ce irebuie


adaugate este 2. Acestea pot fi alese
in mai multe moduri. O Posibila
alegere este: (4,3)
(5,4) 9i (4,3)

$i (2,3)

sau

linii gi n coloane, numerotate de la 1 la n, numim


ie indice tr" mullimea formate din elementele ar,i ale matricei
pentru cire relalia: i+j=k+!. este adevirata (!'3k<2*n' 13i3n' 13j<n'
tN, jN,kN).
Scriei programul Pascal lc,1c++ care citegte de la tastaturd o valoare
naturalj n Q3rr3241 , construieste in memorie 9i apoi afigeaze pe ecran o
matrice a cu n linii 9i n coloane, numerotate de la I' ta n, in care elementele
liecarei semidiagon;le de indice- k sunt egale cu (k+1)2, ca in exemplu'
Matricea se va afiga pe ecran, cate o linie a matricei | 4 -? 1: ?7
36
p" o lini" a ecr;nului, elementele unei linii fiind | 9 15 2s
49
35
.,^
I
re
25
z'
ro
-^-ri,,
I
separate inlre ele prin cate un spatiu.
49 64
Exemplu: pentru n = 4 Se va obline matricea | 25 36
intr-o matrice a, cu
;'semidiagonald

aliiurata.

(1oPJ

Rezolvare:
i citeste n
'solulie
n executi
prdzentata
in
posibild
este
O
I rPentrua.tti1j 1
, n executi
pseudbcod
aleturat.
algoritmul
I I rp"t
,

| | lat.j(t+/)'z
lrl
l.t

VARIANTA 076
in secvenla de program alaturatd, variabila t memoreazd o mavice
cu
5 coloane, numerotate de la 1 la
la 4, cu elemente numere i
celelalte variabile sunt intregi. Executarea acestei secvenle
.
memorarea in variabila x a sumei elementelor situale:

1.

5lo

(PascalJ

x=0;

for i:=1 to 5 do
f,or j:=i+X. to 5 dto
x: =x+t Ii, i I ;

for(i=0ri<5ri++)
fot(j=i+1rj<5-j++)

deasupra diagonalei princjpale,


inclusiv diagonala principald
strict sub diagonala principald

Raspuns corect: b,

x=x+r

strict deasupra diagonalei

d.

strict deasupra diagonalei

intr-o-liste simplu in16nluite, alocatd dinamic, fiecare element


retine in
urm adresa elementului urmetor din listd sau nil
lNulr, dica nu
element urmelor, iar.in cempul
un numdr inlreg. Adresa prjmului
al listei este memorate in variabila prLrn, variabili D este de acelagl
prirn, iar variabjla x este de tip intreg. lniljal, in listd sunt
aceasta ordine, numerele de mai jos. Care este continutul listei
in

inf

executerii secventei de instrucliuni sCrise aldturat?

prirn
,,

! =prim;
while p^.urm <> nil
begin

inf;
inf I = D^.urm^.inf,,
g^.urm^.inf := x;
13 =pe .

D^.

I'3=D^'urm
end.i

a.2 3 4 s 61
Rispuns corect: a.

3,

b.6 5 4 3 21

(1op)
'se
Se gterg primul 9i ultimul caracter din girul de caractere 9i aPoi
operali6 caie se repete Pani cand girul devine vid.

.nd

12345

s)

l'rlte1n(s),

D=p->urmi

d,

lhll. lensth(E)>0 alo


brgln
d.1t6(8,1,1) t
tt ( Ingth (s ) >0) thn
dl.ele ( E, length ( 3) , 1) ,

tthile (p- >urm t =NItLIr)


1s=p->inf;
D- >inf =p- >111111- yitt6,
D->urm- >inf=xi

c.2 r 4 3 6 5

lru

tardLn

D=primi

d,o

ttliur
lhur

rr.tr{ngrisintgert

(C/C*+\

lroalaurat
lorlauraa

(PascalI

p-*@--p+p+p+p
(Pascaf)

ilrpune corcct: (5, 3, 6, 6,'1, o, 6, 3l

afigare se
niiv0ntul rozultat din prelucrarea anterioara. Procedeul de eliminare 9i
inilial 9i
Cuvintul
in
exemplu
ui *o"t" pAni cAnd se obtine cuvantul vid, ca
a
ecranului'
pe
linie
cate o
Itccaie cuvAnt oblinut se va afiga
se va afiga:
bacalaurat,
cuvantul
lr.mplu: daca se cite$te

Ii] [i ] ;

b.

F rllddcind

l()rlotl programul P&scal lc,/c++ care citegte de la tastaturd un cuvant de


citit
nt*i'i tir io d" lit"t" 9i minimum o litera 9i afigeaza pe ecran cuvantul
primei
gi
a
prin
eliminarea
n,.,;um si toate cuvinteie obtinute din cuvantul citit
la
urmetoarele
liir-rr"i rii"r.. Frira pretucrare se "referd la cuvantul citit, iar

(.CiC++)

x: =0i

2.

dlf6rlls, gralul ogvlne lar oonol v vnrrarrra yuErwrrq


rrlltr rga muchille (3,8) 9l (4,1) ,
la 8' Ei
{:rn} oste vectorul de lali pentru arborele cu I nodurl, numorotate de la 1
se
aloge
dace
6,
?
L
t
t5,71'
llxitllllo t1,5t, t2' 31, t3,51, t3,81' I{,61,
(6P)
nodul numerotat cu 6?

Fie gralul orientat cu 8 varfuri, numerotate de Ia 1 Ia 8, gi arcele

e,2l , (2,
(3,11, 14,51 (s,6), (s,7), (5,7), (7,4
(8,7
,4 )., (8
,71 . Care este

minim de-arce care trebuie addugate astfel incet, pentru oiicare


Joua uarfurl
sA existe cel pulin un drum de la nodul x la nodul y?

y din graf

Rispuns corcct: Pentru oricare doud varfuri x gi y din graf sA existe


cel
un drum de la nodul x la nodul y dace graful esie lare dnex.
Gralul dat a
componente tare conexe definite de multimile de varfuri:
2, 11 , 14,
6, 7L t8). Dace se adaug5 2 arce, astfel lncattr,
sd ,,lege,, varfurl

(C/C++)

int rnlin ( )
{ char sl256lt lnt it
cLn>>g i
whl l (strLen ( B) >0 )
(
BtrcPY ( B, E+1),
lf Etrlen ( 6) >0 )
E Istrlen(5) -11=0t
.
(

cout<<g<<end1;

letufn

0,

a ultlml lltere A16 flscerul cuvant


dln col lnlllal prln transtormarea prlmei lltero 9l

VARIAIIITA 072
1.

cu 8.tinii gi 8 cotoane, numerotate de ta 1 ta I 0le


L:1i13r"1!*
I
elemente
numere intregi, secventa de program aldturata, in care
*, gi j sunt de tip intreg, determind, in urma executirii ei, memorarea
ts

iii i*Jutclta, t""tul caracterelor rdmanAnd nemodificate


Gxam6n de
lrrmplu: dac6 se citeqte textul azl
rllga rzr tttE ExtrneN DE BecllauraT'

ct!'

itrolvare:

sumei tuturor elementelor situate:

(Pascat)

(C/C++\
z=O

for i:=1 to I do
for j !=1 to i-1 clo
zr=z+tli,il;
a. strict sub diagonala principald

b.
c.
d.

for ( i=0, i<8, i++ )


for ( j =0; jci; j++)
z=z+El|l lJl I

2.

r lf

iJ'linju.itd, atocard dinamic, fiecare etement rerine in


lg"
5li-.:lt!
ut:m adresa
elementului urmdtor din listd sau n

lruii- OIJ

inf

nu

element urmetor, iar Tn campul


un num5r int,"d. nOr"r" piiruf ui
al listei este memoratd in variabila prirn, iar u"riuOi"i"
o-Ji_{"rnt O"
tip- cu prin. lnitiat,.in liste sunt memorate,
in aceastd orJinl, iumerete dfl
ios. Care va fi conlinutul listei dupi
,""u""1"i"Uirr"i"Z

prrm
,,

lT-l-- l-rl-+

"r".rt"r"u

p-+ @+ p-* @

(Pascah

,"O,,1
I
D:=Drim^.unu q:=p^.urmi
lo=pri.-rorn;
p^.u: r! =g^.ur:ni Drim^.urm: =q, n_irri=q_i,r=Iniq=D_>urmi
i"ir_r,.r*=ql
II
q^.u!u: =Di
q->unn=D,
--,,,*-^.
a. 132456
b. 654 32L . c. 124356
d. 2Lg4S

Rilspuns corcct a. Secventa inv-erseazd.in fi.tJ


OoiL" gi at treitea nod,
inversarea regdturiror. Astfer dupa executarea "f
secventei, erementere rister
memora in cAmpul inf , in aceasti ordine, valorile:

3.

i t ;-; ;";.

Fie graful orientat cu 6 varfuri, numerotate de


la 1 la 5, gi arcete

(3,1), (t,5), (5,6), (3,5).

(L,2), (2
Care este numdrul minim de arce care tft

adeugate pentru ca toate varfurite se aibe gradul


int"rio,

"gj ",

gr"o"l

Rispuns corec't 2 (de exemplu arcele (5,3) gi (5,4)


)
4. Care este numirul minim de noduri cu gradul penhu
1
un graf neorientat
cu 21 noduri gi 2O muchii?
R5spuns corct 2
5.

Scrieli programul p.acal lc./c++ care citegte de


la tastaturd un text de cel
:o oe caractere, (titere mici ale alfabetulul englez gi spalii), text,ormat
din
multe cuvinte, separate prin cale un spaliu,

si

"fisl";;;;'""ran

textul

int

(r) r n:=letlgth(E) t
llt r.uncaee ( s Ixl ) i
I !.2 to n do
'

lhrn s It-1!

Rlspuns corec{: a.

#include <iostrean.h>
*iDclude <striag-b>

r.trlng t50l t n'i:bylet

.lll.'

deasupra diagonalei principale, inclusiv diagonala princioald


srrrct deasupra diagonalei principale
strict deasupra diagonalei secundare

: =upcase (s

ti-11='

se va

(1oP)

(CiC++j

(Pasca4

zzeOi

brcalaurra!,

[i-11

'

th.n Elil :=uDcase(slil ) ;


Inl r.uocaae (s [al ] ;
t. (s)

main(

char s [5xI t

int i;

cin. get (s, 51) ;

i""

if,

ii=dr i.""rlen(E) t i++)'

(sIil>='a'

&&

gIil<=tz'

&c (i==0 ll i==3trlea(s) -1


l

l lsti+11=="))
lsti-rt==''
E Iil
til -32 t
=s

cout<<ai
retura 0i

graf neorlontat conex'


Ca16 este numdrul mlnlm de muchll ale unul

VARIANTA 078

nodurl?

r cu s.tinii Si 8 cotoane, numororate d ta x ta I (o la 7)


:,:111."^T1l1g"
elemente
numere intregi, secvenla de program ataturaia, in
caie
i,.9i sunt de tip intreg, determind mem;area in , a srr"iirtrro,

1,

telor situate:

Scrieti oroqramul

@,c,nl

r""f:=oii.e_i;j**l
z=z+r

lit Ii I ;

.situate slrict sub diagonala secundard


ql"gonatei principate, inctusiv diagonata principate
deasupra diagonatei secundare, inctusiv di;go;;ia';""u[i"'ra
-' :
strict deasupra diagonalei secundare

intr-o
....i

listd simplu inlenluite, druuala


alocate otnamtc,
- l:"
dinamic, flecare
fiecare element
element retine in
urm aoresa
etementului urmetor din liste sau nil
lNur,!, dace nu e
erement urmdror. no,"'" p,i,,i,ii :U:T, :1'1,J:li#T#:i"ii""J:?l:
prin, iar variabilele D gi q sunt de acblagi tip cu prl..

p: =pfim,

Ej

E_+

while pe.gsle .utm^ .utm<>nil

do p: =pr. s1a;
q: cD^.ulrni
P^ .urm! =D^ .urm^ .urmi
aliEDoB (q) ,

a. 12345
b. 1?345
c. 13455
d.234s6

Cir"-*

ti

,lr

"ontin,

E* E

{pascal)

(apJ
{C/C++)

p=prim,
lyhile (p->urm->um->ur:n

ggtut
fie
(3,1).,

exanenul

NUIIr)

Rezolvare:
(Pascal)
a, anlx, cuv ! Etring

k, l, g: integeri
brgln
t.adlln(s) t
r.adln ( cuv) t
I r.lengttr (cuv) t
grr0t
lux: =' ' i

D=D->Urmt

se va afiga:

#include<9!ring.h>
*includte< ioEtrean.lr>

int

intk,g=g;
char
s I15Ol,auxl15Ol, *P,cuv[15] t

cin.get(3,x50),
cin>>cuvi

p=s!rE!r ( s, cuv) t
$hiLe (p)

k+l-1 ) ;

alelet.e E, 1, k+1-1) t
if E lXl =' ' then
au:t: =au:t+ | ? I i
(

G,6r, (5,7,), (6,2),

17,41

$,2t , (2,,

. Care este numdrul minim

;;;il;"

== 0)

Etrcpy(aux,I)+k) t
EtrcPY( (P+k) , "?" );
strcDy (9+li+1, aux) t

]
p=EtrEtr (p+k' cuv) i

EXISTA' )

rnd.

if(!g) cout

ExrsTA",
<<
',Nu
elEe cout<<Ei

ar'tieoui
ru u rra srarur
*'i#jparri
:f:",:j::?.:Tr^T_s3:,ctlyere..afe
ob{inut
sA nu mai conlind circuite?
"iirin"te t'sr
''
Rispuns corect 2 (de exernplu arcele (1,3) gi (4,
s)

s=Lt
k = slr1en(cuv);
if (ptkl==' ' ll ptr:
t

k3=pos(cuv,s)t

and,t

lfg=1then
writeln ( aurr)
.16e writeln('NU

main ( )

anrx! =aux+copy s, 1,

delete q I free (q);

(1oPJ

(C/C++l

q=p->urm,
D->urn=D- >urm->urm;

orientat cu 7 verfuri, numerotate de la 1 ta ?,


9i arcete

1a,51,

Pascallc/c+{

krEpos(cuv,s),
yhlte k>0 do begin

!=

Rilspuns corect b.
3.

muchii)

atestat.

Rispuns corcct c.

Frirn
r. F-l_* l-trI_*

(un graf neollentat conex cu numer minim de muchii este

'le
de
exannenului exanenul ? de bacalaurea! Ei examenul?

si cuvantul

listei de mai jos dupe exebutarea secvenlei aliturate?

n-l

(6P')

care cite9te de la tastature un text cu cel


9i spatii) 9i un cuvdnt
;;tt lt;;";;;;ctere (ooar litere mici alfabetului enslezenglez
9i care afigeazd
." l"l t"ft tu caracteie, doar litere mici ale alfabetului
? dupe fiecare
ne ecran sirul obtinut prin inserarea in textul inilial a caracterului
va
afiga mesaiul
se
lp+i" lt"a"iJiri.itit o".a in text nu apare cuvantul citit'
"
NU APARE.
Exemplu: dace se citegte de la tastaturd textul
atestat
exannu1 de bacaliurea! si exanenul

I z=o 2
I for(i=0ri<8ri++)

!.
c. 9:tfll
d.
2.

coroct 99

arbore, deci contine

(Pascat)

a.

Rdspuns

zt=Oi
for ir=1 to I do
for j:=1 ro B-j+l dlo
zt=z+lqlirJl t

cu 100 d0

return 0t

VARIANTA 079

1.

Ecrlsli programul Pascar

Pentru o matrice cu 8 linii gi I coloane, numerotate


de la 1 la 8 (0 ln ?)
elemenle numere intregi, secventa de program alaturatd,
in care varlabllrl
gi sunt de tip ?ntreg, determind ,Jmorarea in
trtrroi
mentelor situate:
(4p.)

i,

" " "rr"i

tPascal

zz=0i

for i:=1 !o 8 d.o


for j:=9-i to I

z.=z+1rai,i1

{C.C,

-.y

z=O;

for ( i=0 r i <8. i++ )


for (j-- =7-i, j <8. J++,
I
tit tiJ
Secundari "="*t

do

a. sub diagonald secundare, inclusiv diagonala


diagonatei principate, tncrrs"iu Oiigonai, prilJp"ra
!.
c. !".:y?ra
sub dtagonala principale
d. strict deasupra diagonalei secundare

2.

prim

retine adresa primului element din list5, variabila

ests
acelagi tip cu prim., iar variabila k este de tip
intreg. Care este valoarea c6
va afiga fn urma executdrii secvenlei aleturate
?
(pascal)
(C.C++)

p:=prim; k3 =Q;
while (p^ . urm<>nil
do

andl

(k>=0 )

begin

if p^.nr nod 2=0 lhen


else k: =k- 1;

p=Drim,
k=0;
ruhile (p->urm! =NULL && k>=0)
{if, (p->nr%2==O) k++,

elae k-- i

tr3=k+L

P=P->urmt

p: =p^ .urm,
endi

l
Drintf ( N%dz, p->nr)
lcout<<D->nn
3d.g

write (p^ .nr) ,


a'9b.4
Rispuns corect: a.

Se considere arborele cu 13 noduri, numerotate


de la x ta 13,
muchiilor lt]-,+7, 12,51, t3,s1, t4,7:J,

16,L21,

ts,6l, tLg,2j, t2,gt].


g.

--'

".J

"ioJo"

6,g,2,S, 4, 3,2, 6, 4, 6, 2)
4. Fie gralul neorientat cu 6 noduri, numerotate de la 1 la
t2,31, 12,41, 13,4r, r3,st, ro,ui
Iktl.,._,*1,.1
maxim de muchii care p"t-ri
::P_.iTaI!t
oblinut
se-$i pdstreze proprietatea o" gr"i h";iii;;["i
"li,i,i""i"
Respuns corect 4
O,

gi

t4,9t, t4;i1t, t5,3I, t6,10

Oaca se atele-nodut notat cu 2

rddacind, care este vectorul de tati p"ntru

Rispuns corect

(Pasca|
a,

rux:

atringi

J r lntegeri

booleaat

{ClC++l

*include< Btriug. h>

oEtraln.h>

int

ain(

s1p1 s[101],auxt202l,
ctrar vll ="aeioutErou" t
k!= f,a1s6t
t.,.i
int i, i=0, s=0 t
begin
ilo
It.X to lngth(s)
cin.get ( 3,150 ) t
lux! =au*+s lil,
( i=O r i<3t!len(s ) t i++)
l! pos(stil , 'aiouAErou'| * )| >0 for
aux
tj I =s [il t
i t
thn begin aux:=aux+
j++;
g := true; end;
if, (strchr (v,3 [il ) )
(E),

tista

3,

Razolvare:

gt

simptu intenluite, atocatd dinamic, ?n care fiecare


:"^_":)f]9gr^A
memoreazd
in campul nr o valoare intreagd gi in campui or"Jairesa
'
urmetor sau niL l NuLL daca este ultimul nod ain
lista.
in listd sunt memorate, in aceasta ordine, valorile 4,3,2,5,7,9,
5, L,
Variabila

mult
care citegts de la tastature.-un txt cu cel

englez 9i spalii)" construieqte in


1oo de caraclere (doar liters ur" "tt"outuiui
gi;r de caraitere oblinut- din girul initial' in
momorie si apoi afigeaze p"
""'"n Liacterut r' Se considera vocale literele
care se insereazA oupa Recare vJciJ
i'i, u. oaca textuicitit nu conline vocale' se va afiea mesajul
;;;;;:;;;;;
ttn vocN,E.
textul E*amenul d bacalaureat
iifrpi", a."a se citegte de la tastature
ba*ca*La*u*re*a't' (10p')
ar va obline 9i afi9a: E*xa*rne*nu*L de*

t,

Rispuns corcct a.

lclc++

G, Si

muchiile t1,2

iol'ei, Is,5I.

"rilii#i graful(6p)

(k)then
fflte].n (aux)
write( rFARA VOCALET ),

tauxtj I =''';

if( !g) cout

<<"FAR]A VOCALE"

elEe

auxlil='\0';

cout<<au:!t )
0t

i++, g=Lt'

VAHIANTA

1.

de program aldfurate, variabila a memoreaza


o matrice cu
-secvenla
de ta 1 ta 8), cu
intresi, tar
'Ce
:::-,:?.':*:^gl:rotare
.
celelalte.

-';;;
"t";;ni;;;;,"
valoare ;;

variabile sunt ?ntregi.

I8,81 la t8l

I8l

dupd executarea secven,tei?

(Pascat

for i:=1 to 8 do
begia
k:=i;
for J:=1 to 8 do.
begln
k:=k+1,
endr"fi,51r=*,
ndr
*_..16^
Rispuns

"

.id"il
;t ;;;

ln

^^ -

corect a.

I for(i
t
I

tr=i;

'

l"^:::^.ltrd o

".'

64

tisra simptu intinluire, atocare dinamic,


o valbare inrrei ja_nr
nodurui urmetor "-1'pur
j
sau' nn nnrn r. lJJa;;,;
aceastd. ordine, vatorite

cu variabita

vocali
oLfinut prin interschimbarea primei consoane cu ultima
ilt""..
din
sau
numai
vocale
din
"irv.*,"i
..i5 tu"ant,l este format numai
ffi;ffiJ$;;;uiin
Se
consideri
rMPosrBxr'
il;;;;;, pt"gr"ttr afigeazd pe ecran mesajulu'
vocale literele a, e, i, o, u, A, E, r, o'
gi afiga cuvAntul
Exemplu: dacd se citeqte cuvdntul Marmora! se va obline
aarmorM!

to

in care fiecare

B, 5, 4, 6,

reJine adresa primului element din

.,

listi, u"iiuO-iL o

prim, iar variabita s este de ti;

s:=0;

whil D^.urm <> nil do

b6gin

i
".

if D^.nr modl 2=0then


E =s+p^ .nri
3

D8=D^.urm^.urm
ndi

write(g);
a, 18

gc: booleant
v = ,aeiouAEIOUr ;
rcadtln ( e ) i !t=!; gc!=f,alset
vrhlle ( i<=length ( s ) ) aridl not

Raspuns corect d.

3.

20

Raspuns corcct S noduri

endi
:= Length(s) i gw 3= falsei
whiLe (i >=1) anal not gv do

cou!<<B'
L4

Ur_graf orientat are 8 arce gi fiecare nod


al grafului are gradul exterior un
dinrre noduri au sradur
;r;;;impar, resrur
gradete exterioare numere oare
c"i"
u.t"
nrrurr]
poate avea gratur?
'rrq^rrrr uv rr(

llli;3::i,::-l

gc

if Dos(Btil, v) =0 then
gc : ='lrue
elge inc(i)

'

D=D->ul3tB->tIrmi

b.

do begin

s=E+p_>nri

";";;;,;,iii.r'o" iil,rfiii

begin

if

pos(sljl,

gw != true

v) <> 0 then

alse tlec(i)
"l"ri

endt
if (grv ancl gc) then begin
3= sIil; stil := slj];

"n*
EIjl != au:rr write(s)t

entl

Lse wlite(' rMoslBrr,' ),


6rld.

ioBtreanr.h>

int

C'l',

if(p->nr*2==0)

l
orintt 1,,v6" ,,1 , 1
c. 12
d.

lude<3tring.h>

I, j 3 integeri

il*g. ;" ;;*".t"'0"


." ,;

p=prim,
s=0;
whil (p->utnt =NItLIr)

(CiC+"t)

{Pasca,
gl Etringt
aux ! chari

(C/Q1n1

p: rgrim;

(1oP)

Rezolvare:

urma executarii secvenlei de program aldturate?

(pascat

la tastatura un cuvant cu cel


Scrieti programul Pascal lclc++ care citeste de
afigeaze
n,,tin'un" s] cel mult 20 de litere ale alfabetului englez, construiegte 9i

ii-i;;il;i ;"*
ff;,i'#
;il1'fl#.Tl",l
-r,

:j:l:,":j.11
1_1r::ll ii
prinr

d.

in nodul L gi una
corect: a) Lungimea celui mai scurt lanl cu o extremitate
nodul I este 2 (muchiile tt '21 Ei tz'31)'
b) Numdrul niaxim de muchii ce pot ii eliminate este 4 '

\tilJ++l
= 1; i<=8r

_ 1;
Ir j++)
r. -, for(j
I
t atil ljl=kt
I
k=k+lt
I
)

b. ls

Lr X,,3 t 6
2t L,3,4
3. 2,1,6
4t 2,1,5
5z L,4,6
5: 1,3,5

cu 1'
So conslderd graful neorlentat cu 5 nodurl, numorotato
2,3,4, 5,6 qi muchii dat prin listelo do adiacenla aldturale
cel mai scurt ianl cu o extremitate in nodul 1 9i
(3p.)
""t.i
ooalalta extremilate in nodul 3?
;;te numerul maxim de- muchii-ce Pol eliminate
(3p)
grafut pa4ial oblinut sd remanA conex?^fi
incat
Iitfet

OSO

nain

()

cher 3[21l,au:rt
cha! v[] = "aeiouallou" '
int i, j,n;
gc = 0;
intw=0,
cin> >E t
n=EtrLen

s)

&& I gM, i++ )


for(i=0;i<n
(v,
slil ) == 0)
if (Etrchr
Sv = 1;
j,--t
for(i=n-1;i>=0 ee tgc;j--)
if (strchr(v, s ti I ) )
gc = L; i++;

ir(w
(

= s Iil;
s ti I = allxi
cout << si

aux
)

&& sc)

Iil = sljl,

6l-se cou!<< "IMOSIBII"" i


return 0t

VARIANTA 081
1.

scrioti un program Paocarlc/c++ care citegte de ra tastaturd trei varori naturare

patindrom

dace girut cirit de a stanga ta


!:J'r_1"-.",:r:",:1e
esrc rdentic cu girul:".l.yT"sle
citit de la dreapta spre stangp_ Care dintre urn
expresii pascallc/c++ are valoarea rrue/1 Oiia
oaca girui
9i
caractere memorat in variabila E, avend exact 3 caractere, ""r"i
este palindromi (

(Pascalt

a.8t1I=6t2I

b. s12l=st3I c. stU=sJ3J
b. E I1l ==E t2l c. E tOl ==s tzI

(ClC*+)

a.

[0J ==8 [11


Rdspuns: c.
E

2.

d,
d.

Et2I=sI
s I r.]

=-r

Care dintre urmetoarele afirmatii este adevdratd pentru graful


neorientat
mullimea noduritor x=tL,2,3,4,sr
murgmea9i
EL, sL a2,3J , t2,4.! , t3,4! , t4,5!,2

ilr"-n-iiii'ii=ili,i

a, Este graf hamiltonian, dar nu.este eulerian.


b. Este gral eulerian, dar nu este hamiltonian.
c. Este gl graf hamiltonian graf eulerian.
d, Nu este graf hamiltonian,9igi nu este nici graf eulerian.

Se considere un arborele cu rddecine cu 11 varfuri numerolate


de la
descris prin urmetorul vector de,,tafi,,: (6 ,s,5,2,o,1,3,,,,e,,

descendentii direcli ai reddcinii gi cdte frunzL


Rispuns: 2 gi 3. Arborele are 5 lrunze.

jre arbo,.l#

determind 9i afigeazd pe ecran suma numerelor de ordine ale coloanelor care


conlin cel pulin o datd valoarea k. Dace nu existe nicio coloand care se contind
col pulin o dald valoarea k, programul va afiga pe ecran mesajul Nu ExrgrA.

Exemplu: pentru k=3, n=5, m=4 $i.matricea aldturatd


ee va afiga 5, deoarece coloanele 2 gi 3 ale matricei
conlin numerul k=3.

;;t

,l).

pentru declararea gi prelucrarea matricei:

la

citeste k,n,m

C^r"

pentru je1/n execute estejO

j 1 ,rn executd

Se observe ca 5 este radecind (rt5l=0) si cd nodurile 2


3 au ca "tatd', p6
(t t2t =s qi.r t3I =s). Acete valori cire nr'uiuiin vectorul $i"ta!i"
de
sunt etichete

rrte0
6nntru i1, n execute
I daci arr=1 atunci eEt1

4.

drc6 este=l atunci

O listd liniare simplu inlenluite, alocatd dinamic, retine in campul


info
fiecerui etement cdte un numdr natural nenut * .Lr
i5r. i.
adr adresa elementului urmetor din liste sau adresa"iriia
nula "irr",
Oaca nu existd
element urmetor. Se considere cd adresa primului element
al-lisli este
de variabita prirn gi ci variabita p esie oe a"eiaqi li; ;;il.';l;
inlocuiasce punctele de suspensie din secventa O"'pa'Srurn
urmatoare
instructiunite corespunzetoare astter incai- in Lri"' !"i"",i!r,i,

determine afigarea tuturor numerelor din tista careiuni


oiviriili"
(Pascal
(C/C++)
p I =prim;

trhile (p<>nil
begin

.;, z."""u"tu

p=prim;
)

while
(

(p ! =NULr,)

end
]
Rezolvare: Se afigeaze valoarea cempului info
a elemenlului curent (condilionat do
restul impeftirii la Z) gi se avanseaza in liste la.adresa
etemeniutul
urmator:

if

lpascal
p^.info mod 7=O then
trriteln (p^ . info) ,

P: =P^

adr

\u/u++)

if( !p->info%7 )

cout<<p->info;

P=p->adri

(1opJ

Nu recomanddm solulia urmetoare, degi


este mai eficienta, deoarece enuntul face
referire la o malrice gi este de prbslpus
cd baremul va aloca o parte din punctaj

l, tit"stt " '

trunzelor arborelui (1, 4, 9, 10 gi 11).

245-8
1379
4-2310
54237
57313

Se parcurge matricea pe coloane, pentru fiecare coloand semnalizandu-se


djutorul unei variabile) prezenla valorii k pe coloana respectivd:

l.fte k,n,m
i1, n executd
rD6ntru j1,m execuld

Rispuns: a.

3.

Ionuls k, n, n (n(10, rn<10, k<32OOO) gi apoi n*m numere intregi, fiecare


nvAnd cel mull 4 cifre, reprezentend elementele unui tablou bidimensional cu
llniile numerotate de la 1 la n, coloanele numerotale de la 1 la n. programul

ta

s+E+

s=0 atunci scrie a


tfI Eqri ,,Nu EXISTAU

s0
fi)entru

i1,n executi

I pentru j 1,m execute


I I citeste x
I I dacd x=k atunci estejel
llr

lf

rpentnr j 1,m execut;.


Ill dacA estej=1 alunci ss+j
etc.

VARIANTA 082
1.

Se considere graful orientat cu nodurile numerotate de la 1 la 5 9i


Q, 2), (L, 5), (2, L), (2, 3 l, (2, 51, (3, 4', (5, 21, (s,4 ). care este
maxime a unui drum de la nodul 1 la nodul 4, drum lormat doar din
distincte?

a.5b.5c.4d.
Rdspuns: b.
2. Un gral neorientat cu nodurile numerotate de la 1 la 4 este
reprezentat prin matricea de adiacenld ateturat5. Care dintre
aflrmaliile de maijos este adevarata pentru acest graf? (4p.)

arbore. b,
ciclic. . d,

a.
c.

Gralul este
Gralul este
RAspuns: a.
. $tiind ce variabila

3.

0110
1000
1001
0010

este de tip intreg gi ce variabila E reline $irul de


barba, ce se va afiga Ia executarea secventei urmetoare?
(CiC++)
(Pasca,

write ( I )

for(i=0t i<st!1en(s) r i++)


if (8 til =='b' ) s lil=' x' '
cout<<Ei I nrintt("%s",s)i

Rispuns: tarla
4. O liste liniare simplu inldnluita, alocata dinamic, reline in campul
fiecdrui element cate un numer natural nenul cu cel mult 4 cifre, iar in
aalr adresa elementului urmetor din lisu sau nu1 lNUI,L dace nu

element urm5tor. Considerand ci adresa primului element al listei este


de variabila grin 9i ci variabila p este de acelagi tip cu variabila Drin,
inlocuiasce punctele de suspensie din secvenla de program
inslrucliunile corespunzdtoare, astfel incat executarea secvenlei se
afigarea pe ecran a tuturor numerelor memorate in liste care care au
unitetilor egala cu 0.

(Pascal)
p ! =primt

while p<>nil do
begin ... end

determind

(C/C++)

p=prim;
whiLe (p I =NUIJIJ)
)

t ...

R5spuns: Se afigeazd valoarea campului inf,o al elementului curent (


ultima cifra egala cu 0) qi se avanseazd in liste la elementul urmdtor:
(CiC+ +)
(Pasca\
if (p->info % 10 ==0)
if D^.info noil 10=0 then
cout<<D- >info<<endL i
writeLn (D^ . info) t
D3=D^.ad.rt
I Drintf ("%al\n-,p->info

D=p->adrt

gi

afigeazd

pe ecran produsul numerelor de

ordine

alo coloanelor care conlin cel putin o date valoarea k. DacA nu existe nicio
coloane care. sa conline.cel pulin o date valoarea k, programul va afiga pe
ocran mesaiulNu ExrsrA.
(10p.)
Exemplu: pentru k=3, n=5, n=4 gi matricea aleturat5, se 2{
5-8
ve afiga 6, deoarece coloanele 2 gi 3 ale matricei conlin 53
79
numdrul k=3.
5-2

Graful nu este conex.


Graful are toate gradele nodurllor numere

for i!=1 to length(6) tlo


if s til ='b' then slil:='t"

scrletl un program Pascarlc/c{+ car crtegte de ra tastaturd trei varorr naturare


nenulo k, n, n (n310, n<10, k<32000) gi apoi nrm numere intregi, fiecare
avend cel mult 4 cifre, reprezentand elementele unui tablou bidimensional cu
llniile numerolate d la 1 la n gi coloanele numerotate de la 1 la m. programul

de

Prezentem o rezolvare
a cerei logice este mai

urmerit, pe foaia de
urmand a se transcrie in
de programare, sub lorma

program complet. se
matricea

pe

coloane,

identificarea fiecdrei
ce confine cel pulin un
egal cu k:

t.tte k,n,m

p1, e6!eo
fDntru j 1,n executi

3 10
237
3 13

74
87

I iel

I c6t tirpAll<>k gi i<nexecutd il+t


I facd A{r=k atulci
I I pp*J; es!e1

Itt
\l

fdace este=1 atunci acrie

gcrie
laltfel
q|

,,NU EXTSTA/

Exemplu: dacd lista conline ini[ial valorile


VARIANTA 083

1.

gtiind ce variabila

este de tip intreg 9i variabila


ce se va afiga la executarea secvenlei urmatoare?
(Pascalt

s: ='bac2009';

for i3=x. to length(s) alo


if (E Iil <'0' ) or ( s Iil >'9' )
then write (s lil ) ;

a.

b. 2009

bec2009

s reline un gir de
va afiga urmdtoarea listd:
(C/C++)

EtrcDy( s,'bacz009', t

for(i=0i i<Btrlen(E), i++)


if (8til<,0, l l (stil>,9,)

IiI
d.

cout<<E

bac

c.

,are: Deoarece enun{ul nu precizeaze, vom denumi campurile de legiturii


$i respectiv urrn. Se pot interschimba informatiile nodurilor simetrice. Noi
o varianta in care se interschimba adresele prec gi urm pentru toate

;
2009bro

Rispuns: c,
Se considera graful orientat cu nodurile numerotate de la 1 la 5 9i
(2,1), (5,1), (L,2',t, (3,21, G,2), (4,3t, (2,51 , (4,5). carc
lungimea maxime a unui drum de la nodul 4 la nodul 1, formal doar din

ile din lista gi apoi se inlerschimbe valorile variabilelor

2.

(pascall

adr=^nodt
nod.=record

a.5b.5c.4

d.

Rispuns: a,
3. Scrieli matricea de adiacenla a unui graf neorientat cu

noduri in care

nodurile au gradul 2 gi care are doud componente conexe.

rDrl-m;

llr(p<>niI)do begin
luxr=Ir^.prec;
D^,prect=p^.urmi

Respuns: Existd mai multe matrice diferite ce rdspund cerinlei.


Fiecare este asociata unui graf ca gi cel din flgurd, plasarea celor
12 valori 1 depinzand de numerotarea aleasi pentru noduri. La
corecturd, se recomandi sd se realizeze desenul, urmarind
corectitudinea matricei gi numdrul de componente conexe.

D^

Se considerd variabilele intregi n, n gi k (1<-<10, 1<G10


variabila a care memoreaze un tablou bidimensional cu n linii,
la 1 la n, gi m coloane, numerotate de la 1 la n, avdnd n*nr numdre i
Scrieti secvenla de program PascallClC++ care sd determine 9i se
ecran elemenlele impare de pe linia k ale tabloului a.
Fezolvare: Recomandem sd nu se includA in rezolvare declareri, secven.te de
etc. limitand totul la secvenla cerute gi respectand intocmai identificatorii din
(Pasca,
{CiC++l
fot (j =1, j <=rnt j ++ )
for j:=1 to m do

5.

if

(a

tkl til?2)
[kl Ii I <<, .;

cout<<a

I printf

(*%d

O lista liniara dublu inldnluite, alocate dinamic, reline in

*,atkl

IJ

campul

fiecerui element cate o litere din alfabetul englez. Considerand cd lista


create Si contine un numdr par de elemente Si cd adresa primului element
retinuta in variabila prim, iar adresa ultimului element este re,tinute in

ultin,

sA se scrie declardrile de tipuri gi date necesare

program care inverseazd ordinea valorilor relinute in liste.

.urm: =auxi

,r.D^.Dreci

4,

if atk,jl nod 2=1 then


.)
write(alh,il,,

prlm, ultim, aux,D I adri

9i

|.prt m;
r.uLtim;
lmr =arrx

gi

uttim.

NOD{

chai info;
*prec, *urmi
*I)rim, *ultim, *aux, *pi

NOD

grec, urm: adr


end

5.

struct

info: char;

distincte?

prin

(C/C+.)

'

for (p=prim; p;p=p->prec


t
aux=p- >Drec

p->prec=D->urmi
rr- >urm=aua

)
au:<=p!im,

prin=ultirn;
ultim=auxi

lcrlo doclardrllo d6 tlpurl gl dat6 necesars gl socvenla d pascallc/C++ care


rtlgeaz5 p ecran produsul numsrelor rhemorate ln piimul gl ulflmdl elment al

VAHIANTA 084

1.
a.2

Se considere graful neorientat cu nodurile numerotate de la 1 la 6 gi


muchiile I1,21, t2,31, a2,51, t2,61, t3,L1,14,51, 14,61, Is,6l.
lanluri elemenlare, distincte de lungime 3 existe de la nodul 1la nodul
g.raful dat? Doue lanluri sunt distincte dace diferd prin cel pulin o muchie.

b.0

llstol.

Excmplu: ponhu lista


!o va afi$a numdrul 4182.

d.3

Rispuns: d.

2.

{1,6}

d.

(81

3.

(Pasca|)

lCiC++)

wliteLn ( succ (c) )

cout<<++ci
printf("%cn,++c),
un tablou bidimensional, cu 4 linii gi 4
I

Variabila a memoreazd
numerotate de la 1 la 4, ce memoreazd numere naturale de cel mult 2
fiecare. Scrieli secventa de program care afigeaz5 pe ecran
numerelor de pe diagonala secundara a tabloului.

Rispuns: Amintim ce elementele aU apa(indnd diagonalei secundare a


matrice cu n linii gi n coloane are proprietatea ca i+j=1+116"a5 numerotarea
coloaneldr se face de la 1) sau i+j=q-1 (dacd numerotarea liniilor Si
face de la 0). Aici propunem solulia directe, ce nu face apel la n;cio structurd rep(
Observatie: atat in Pascal cat 9i in C, dacd ambii factori ai inmultirii sunt de tip
pe unul sau doi octeli, este utild conversia a cel pulin un termen cetre un tip
mare, pentru a nu altera rezultatul inmullirii atunci cand acesta depdgegte
ln acelagi timp, considerem acest aspect tehnic destul de subtil $i nu cons
ar trebui punctat la o probe scrisd.
(Pascal)

lrriteln

(longlnt

a [2,3 ]

5.

)a

{CiC++J

[1,4] *

ra [3,2] *a [4,1]

cAmpul

cout<<(long)al0l I3l *a t1l t2l


a t2l t1l *al3l t0l t

printf ( "%1al', (long) a tOl t3l *


alli t2l * at2l t1t *at3l I0

O liste liniari simplu inlenluite, alocatd dinamic, reline in campul :


fiecerui element cate un numdr natural din intervalul t1,10OOOl, iar in
adr, adresa elementului urmdtor din listd sau nil lNur.r dace nu
element urmetor in list5, Considerand ce lista este creata (are cel pulin
elemente) gi ce adresa primului element este relrnute de variabila prin,

info

de tip intreg pe 4 octeti pentru a evita acest lucru.

(Pasca|,

ltJ/u++)

struc!

rdrrsa=^NODi

t1,5,81

Rispuns: a,
Se considerd variabila c, de tip char, care memoreazd o literd a
englez, diferite de z sau z. Scrieli secven,ta de program care afigeazd pe
litera care ii urmeazd in allabet.
Exemplu: dace litera memorati este g se va aliga h.
RAspuns: Se afigeazi succedorul valorii variabilei c:

4.

se nu produci o depegire aritmetice. Propunem de data aceasta

Un arbore cu redecine, cu 9 noduri, numerotate de la 1 Ia 9, este


ajutorul vectorului,,de ta!i" E=(9,3,4,7,3,9,0,7,2). Multimea
nodurilor de tip lrunzd este:

a. t8,5,1,5) 6.

(10p.)

IiIOD=record

inf,o: tongint,
rdr3adreaa
and,
DrLm,D tadreaa,xI longin!;
rDrr.m,

(p^,adr<>nLl)do
t.D^ . Bdr,
Drln^ . info*D^
t.ln (x)
D

.lnfot

NOD{

long infot

NOD

long x;

*adrt

*Dr.im, *Di

for (p=prin; p- >adriD=D- >adr) i


x=prirn->iaf o*D- >inf ot
cout<<xi lDiintf (,,%lal', x) ,

sd

56 parcurge llsta aflgAnd valorile din cAmpul tnlo


este
un
numdr lntreg.
Pllrstd
(Pascaf
brclarAri:
Declardri: (C/C++)

VARIANTA 085
1.

a.4

Se consideri graful orientat cu varfurile numerotate de lh 1 la 7 9i


(L,2) , G,7, , (2,31', (?,21 , G,4), (4,3), (s,{) ' (5' 6) ' 16'41 '0'
CAte vArfuri din graful dat au gradul extern impar?
1

c.

b.3

.d.

hD. rdrcrr'^NoDt

NODrrcord
J.nfo: Lutager;
adr 3 adrBa
cndt

Drln,p:adreaaix:rea1i

Rispuns: a.

2.

1la 9, este m
ajutorul vectorului ,de tali" t={.9'3,4,7,3,9,0'7 '.21 C"f, ::l:
celul mai lung
rinit a" noduri ce trebuie eliminate pentru ca lungimea
pa4ial
oblinut t
qi
graful
fie
3
si
rddicind,
in
extremilate
;i;;;"t"r, cu o
Un arbore cu radecina, cu 9 noduri, numerotate de la

tot arbore?
4

s.2

b.3

d.5

strins'h

{C/C++}

(Pascat)

cout<<E IOl <<s IElr].en(s) -11 ,


write t1l llength( s) I )
Variabila a memoreaze un tablou bidimensional' cu 4 linii 9i I
4.
numerotale de la 1 la 4, cu elemente numere naturale de cel mult 2
fiecare. Scrieli secvenla de program care afigeaza pe ecran
numerelor de pe diagonala principde a tabloului'
Rezolvare: Amintim ci elementele arj apa4inand diagonalei
proprietatea cd i=j. Propunem in aceasta variantd o solulie ce implem
pe 4
structurd repetitivi. Utilizdm in calculul produsului o variabile intreaga
(s

,g

pentru a evita posibile depagiri aritmetice.


(ClC++)

lPascal)

9tt:=1; {pdt ale tiD t ongint}


f,or i!=1 to 4 do pdl:=t*t*ali,il;
rrite (Dd)
5.

long Dd=L,

fo;(i=Ori<4ri++) Pil*=a liJ


cout< <pdi I Drintf ( "%1t1",

O liste liniara simplu inlanluita, alocatd dinamic, reline in campul :


{iecerui element cAie un numdr natural din intervalul t1,10000t ' iar in
adr, adresa elementului urmdtor din liste sau nit lNUr'! dace nu
element urmdtor. Considerand ce lista este create 9i ca adresa
relinute in variabila

prin,

se se scrie declarerile de tipuri

pe ecral numerele
"i"tn"nt
necesare""r"
$i secvenla de program care afigeaze
care sunt petrate perfecte.

Exemplu: pentru lista


se vor afiSa numerele 25 9i '15.

(D<>!iI ) dlo b6gin


xt -aqrt (D^ . info) t

l!

l.

Raspuns: b. Se vor elimina nodurile 1, 5 9i 9'


pulin 2 9i cel mult
3. Variabila 6 reline un gir de caractere format din cel program
care
de
litere mici ale alfabetului englez. Scrieli secvenla
ecran primul gi ultimul caracter al girului 3
Rispuns: Pentru a apela funclia 8tr1en in C/C++, se ulilizeaze

rprlnt

int

(D^ . info)

Dt-P^.adr

(x) =1

atruct

a c5ror

rdddcind

tiIOD{

int info;
rad4

NOD

) *Drim, *Dt
float xt
p=Dri!,
whil (p) t
x=gqrt (p->inf,o), //nath.h
if ( (int )x==x) cout<<!r->infoi
lDriBtf ('?d', D->irf,o) t
D=D->adrt

(O/Cr

VARIANTA 086
declararea aleturate, variabila D memoreaze in campul x absclsa, l'f
campul y ordonata unui punct din planul xcv' Daca punctul se atl6 chlll

in

1.

originea axelor, care dintre expresiile de mai jos are valoarea

(Pascat

war D:

x,y:real

nd
a. (D.*=O).ndt(D.y=0)
b. (lr.D=O ) rntl (y.D-O )

c.p=o
d. ip (x)

=o ) andt (D

(v) -o

1?

! Etruct
| (float xt
I float Yt I 9,

b=q->nr;

| a. (D.x=-0)&&(D'v"0)
(x.D=-0 ) && (v'D"0 )
I b.
n==0
I c'
d'
| (p (x) '=0 ) && (D (v) "0

Mcpune corect ! a=2 b=9


Scrleli un program pascal lc,/c++ care citegte de la tastature un numdr natural n
(lrnslo) apoi construiegte in memorie o matrice cu 2*n linii gi 2*n coloane,
numerotate de la 1 la 2*n, astfel incat parcurgiind doar liniile impare ale matricei

Respuns corect a.

2.

th de caractere dupd executarea


jos?
de mai
(Pasca, s:=copy('exanen', DoE ( 'n' ,'nen'),4)t
(C/C++) etrrr.cw ( s, Etrstr ( "exanen't ,"asr"),4) ; 8[4]=t\0',
d. nrn
c. rnenn
b. xam
a, ann
Ce valoare are variabila s de tip

Rispuns corect a.

Scrieli matricea de adiacenle a arborelui cu 5 noduri, numerotate de la t'


i'de tali": ( o, 1, 1, 1, 3, 3 )
(
delinii prin urmdtorul vector

3.

'

Rdspuns corect:

4,

011100
100000
100011
100000
000100
000100

sau nlllNttr,L dacd nu existe un


element urmetor. Ce valori au
variabilele intregi a 9i b dupd

executarea secvenlei aleturate, dace

'

spaliu.

itrolvare:

alt.fte

reline adresa

primului
variabila
iar
mai
element al lislei de
ios,
q este de acelagi tip cu D? (6P)

(Pascal)

q:

'rD,

rs=D^,uI:n^.n
whi.!,e q^ . urm^ .urrn<

>nll

begin

Ctr

ntru i1,n
.ntru je1,2*n
frr[2*i-1,j1k;
kk+2;

q! =q^ . urtlri

q^.urm^.nr3=q^.nr+qa.
endi

b:=q^.nri

(2t
tt.n tru i1,n
Lp. nlru j2*n,
[2*i.j]k;

il; ek+z t

llr

b
lorl oa

I r rr rr
I u

Este prezentatd mai jos o posibila rezolvare in pseudocod.

adresa urmetorului element din liste

dr eus.in jos gi fiecare linie impare de ra stanga ra dreapta se oblin in ordine strict
orcgcdtoare toate numerele impare cuprinse in intervalul [1,4*nr], iar
prrcurgand doar liniile pare ale matricei de sus in jos gi fiecare linie para de ja
drcapta la stanga se oblin.in ordine strict crescdtoaie toate numerele pare
ouprlnse in
ln lntervalul
intervalul [1r4*a'1,
in exemplu.
I1,4*a'1 , ca
Cain
exemplU.
Programul afigeaze pe ecran matricea oblinutd, cete o linie a
| 1 3 s 7
netrlcei pe cate o ljnie a ecranului, elementele fiecdrei linii I S 6 4 2
lllnd separate prin cate un
rs
lxrmplu: pentru n=2 se obline matricea aleturate. (1OpJ rs
rz ro

IL

Fiecare element al unei liste inlanluite,


alocate dinamic, retine in campul n!
un numer intreg, iar in cAmPul urm

variabila

{
q=q->urmi
q->urm- >nr=q- >nr+q- >urm- >nri

(ci)++)

record

tru/

t')

qrD,
;rp->U!m->flft
rrhl-Ie (q->urm->urm! -NULIJ)

1,

-1

VARIANTA 087

r-2 br-l

llcrleli un program pasc6tlc/c++ care citegte de la tastaturd un numdr


n (1sns20), elementelo unei matrice cu n linii gi n coloane, numere
1111169l din intorvalul t-loo,10oI gi afi$eazd pe ecran
media aritmetic, a
llemntslor strict pozitive ale malricei, care sunt situate sub diagonala
rralural

t.

declararea aliturate, variabila p memoreaze in camPul x abscisa,


campul y ordonata unui punct din planul xoi.. Dace punctul se afle P col
una dintre axele de coordonate, care dintre expresiile de mai .ios are

in

true/L?

(CiC++)

(Pasca|,

Etruct
{float x,
float yt ) P,

var D: rcord

a.
b,
C,
d.

x, y:real
end
D. x*D. y=0
(D.x=0) anal (9.Y=0)
x.t)+Y.D=0
(D(:<)=0) or (D (y) =0 )

Rispuns: a,
2. Ce valoare are variabila

lllgeazd valoarea

de

\Pascal)

oltrtte n gi eatricea
runa0;nrO;
I

for

b.

forrna

c.

{C1C++)

strs!r

3,

Se considere,un arbore cu 5 noduri, numerotate de

la 1 la 5, reprezentat prin matricea de

adiacen,ta
pot
fi alese
datd aliturat. Scrieli toate nodurile carc

ca redacini a arboielui astfel incat acesta se aibd


(6P)
un numer maxim de frunze.

"

Infor

d,

InfoBAC

Respuns: b.

01
10
01
01
01
10

1
0
0
0
0

001
110
000
000
000
000

Rispuns: 1,2
4.

in ca
Fiecare element al unei liste inlenluite, alocate dinamic' reline
din
element
urmdforului
un numer intreg, iar in campul urm adresa
variabilele
au
valori
,.ir,r*ooo Ou"? nu exista un element urmitor' Ce
a gi b dupd executarea secven.tei aleturate, dace variablla.p retine
primului element al listei de mai ios, iar variabila q este de acelaqi tip cu

(Pasca,
q! =pi

a:=D^.unr^.nri
while q^.nr>=o do
begin
q^.UrIr^ .trr: =q^.trr-9^.nri
q: =q^ .urmi
endt
b3

=q^.!t

(ClC++\
q=p

t
a=D->urm->nri
while (q->nr>=o
{

q=q->urmt
)

q- >urm- >trr=q- >nr-p-

b=q->nri

lprntru i2,n

tip gir de caractere dupe


strncDy (s,

(sunt luate in considerare

-1 2 4
0631

dttrzo

Pl

instrucliunilor de mai jos?

E:=coDy('hfor Etica',
lensth('BAC'),5),

2.5

doer slementele marcate).

P.x*I).Y==0
(I).x==0) && (P.Y==0 )
x.tr+y.D==0
(p (x) ==o ) I | (P (Y) ==0 )

prlncipala, ca in exemprur urmdtor. Dacd nu existe eremente strict


fozitive situate
rub dlagonala principald, programul va afiga mesajul .Nu n*rsrni.
(10p.)
lxcmplu: pentru n=t gi mairicea aldturate se
5

>nri

lpontru j e1, i-1

ll ra""" a[i,j]>O arunci


ll I s"-"6"-*+ati, jI;
ll I nrnr+l;
llllr 'r
tr

lal

-s l! -3

VARIANTA 088

f.

in declararea aleturate, variabila p memoreaze in campul x absclsa' laf


y ordonata unui punct din planul *o]' Dace.punctul
?:::l^q1
"9."fla
jos aro
"atpuf
,n"idinrte axele de coordonate, care dintre expresiile de mai

true/l?

struct
{float x,
float y, l r'

var Dt record
x,y:rea1

nd

D.x*9.Y=o
(D.rc=0) andl (D.Y=0)
c. n.D=Y.D
d. D (x) -0
b.

a,

Exemplu: pentru n=4 gi matricea aldturatd se afigeazd


valoarea 2.25 (sunt luate in considerare doar

D.x*D.y=80

c,

:(.D=.y.p
p (x) .=0

b. (D.x==0) && (I).Y==0)


d.

ilrolvare:
citegte n 9i matricea
hcven(a pseudocod aleturaH s(0rnr0 r
llprezinte o solulie posibile fpentru il,n
ptntru rezolvarea cerinlei.
I rpentru j1,n

Rispuns corect a.
Ce valoare are variabila s de tip 9ir de caraclere dupi executarea
de mai jos?
Bacalaurat' , 5, length('8Ac2009' ) ),
(Pascal) a :.cogy('
z
(C/C++)

!:Jj"j"t t.tr"tr

"bacarlurat

a, BAC2009
b. laurca!
c. B.cr1BAC2009
d. aur2009
Respuns corct b.

"b!ct')+atrton("2009n)'(09

b.

lrur!t09

I altf,el
I|l serie s/nr

c, Brc2 00909
d. aur2009

frunze

Rispuns corecti

liste

tnlentuite, alocatd dinamic, reline in


cAmdul nr un numer intreg, iar in

cempul

u:m adresa

urmetorului
element din liste sau nll/Ntn L dace
nu exista un element urmator. Ce
valori au variabilele intregi ! 9i b dupa
executarea secventei alaturate, dacd
retine adresa primului
variabila
lisiei de mai jos, iar
element

p
'al

variabila q este de acelagi tip cu r,?


(6p)

qr!D,

0100
1011
0100
0100
0100
1000

\P?scal)

ar ED^ .u:a:tr^.n

wlrllc q^.urm<>nLl
bogln
--ii.rrn^

.a" r.q^ .nr*D^

q: rq^.ur:nu
endll
b! rq^.!r,

qr9,

.ti

(C/C++)

alD->u:tm->nrt

whLl (q->unntrMr.L)
(

q- >u!tn- >nr=q- >nr*D- >n

qrq->um,
)
b=q- >nri

ll

lrl
LI

-r -l2l -4 !op)
lsl

0 5lll
!_LJ

El

2t20
.3 -5 1 -3
a

|-a"". ali,jl>o ei i<j


I as+ati,Jlr
Irrnrnr+t;

fdaca nr=O atunci


I scrie ,,Nu Exrsr}-,

a. BAC2 00 9

Se considerd un arbore cu 5 noduri, numerotate de la 1 la 6'


reDrezentat Drin matricea de adiacenF dati aliturat Scrieli
io5i" *o"tit" care pot fi alese ca radecina a arborq,lui astfel
(6p)
lncat acesta sa aiba un numar minim de

3, l, 5' 6
4. Fiecare element al unei

ll
ll
ll

(C/C++\

(Pascal)

3.

ixrs,re,.

elsmentele marcate).

a.

2.

programul va afiga mesajul ,,Nu

(C/C++'1

(Pascalt

Rlrpunr corcc* r.2 b-1


Scrlel un program pascat lc,/c++ care citogte de la tastature un
numar natural
n (1sn<20), elementele unei matrico cu n linii 9i n coloano, numere
intregi din
lnlervalul t-100,.100t gi afigeaze pe ecran media aritmeiicd'a
;iementetor strict
pozitive.ale matricei, care sunt situate deasupra
diagonatei prlncipale, ca in
exemplu. Dace nu existe elemente strict poziiive situiie
Olaiupra diagonalei
prlncipale,

atuncL

(/

VARIANTA 089
't.

x abscisa' llt

in declararrea aleturata, variabila p memoreaze in cAmpul


punctul se
campul y ordonata unui punct din planul xov' Dacd
-alll
interiorul domeniului dreptunghic definit de punctele A(1'1) 'B({'
c (4, 3 ) , D( 1,3 ) , care dintre expresiile de mai jos are valoarea tru/t?(
{C/C+'}

(Pasca,

struct
{floa! xt
float y, )

var p: record
x,y: ral
end.

(p.:D1) slat(P.x<4)att(D.rD1)

dtl b.!K3)
b.

(:r.D>1)

alal(x.Ix4) antl(Y.P>1)

atl (y.F3)
Gr.rol)d.{ (p.x<4) c
a.r

d.

2-

(p.y<3)
(p(x) >1)ant(p(x)
rr (p(y) <3)

(P.Px)

<4)c(p(9

>1)

q^ .urm^

rnd,

b! rq^

.nr

=2

qrp,

Pt

(x.xr>1) &&(x.p<4) && (v.p>1)&&(v.

(D.rel)&&(p.x<4)

II

(D.lPx)&e(p.r'<ll

b(x)>!.)&&(p(x) <4) | | (D(v) >1)&&

,Rispunscorect a.
Ce valoare are variabila

E de tip gir de caractere dupa


iFjt"r4 ", =""pv ( ' inforrnatica' , pos('b','Fibonacci') '6' '
(C/C++\
s=etmcpy(s, strstr( ninf,ortnatica", tform" ) , strlen(
I et5l='\0';
d. informgrC
c. inform
b. infornat
format
instrucliunilor de mai jos?

a=D->urm- >nr,

whiLe (q->urrnt
t

d.o

3.

i6i"""o-"tfi
Rdspuns

nr;

b=q->nri

ticrieti un program paEeal lc.rc++ care citegte de la tastature un numer


Idtural n (1sns5) apoi construieste in memorie o matiice cu n linii gi n
r;oloane, astlel incdt parcurgind liniile matricei de sus in jos gi de ia stanga la
rlroapta se oblin, in prima linie primele n numere ale girului Fibonacci in ordine
croscitoare, in linia a doua urmetoarele n numere ale girului Fibonacci in
ordine descrescitoare, in linia a treia urmetoarele n numere ale acestui gir in
ordine crescitoare, gi aga mai departe, ca in exemplu. Elementele girului
llbonacci se ob{in astfel: primul element este 0, al doilea este 1, iar
olomentele urmdtoare se obtin insumand cele doui elemente care preced
0lementul curent. Asttel, primele f b elemente aie acestui gir sunt: O, 1, t, 2,
t, 5, 8, 13, 21, 34, 55, 89, L44,233,377, 610.
0112
l)rogramul afigeaze pe ecran matricea

corect

13 8 s
21 34 55

ot){inute, cate o linie a matricei pe cate o linie

ecranului, elementele fiecerei linii filnd

6LO 377 233 r44

noparate prin cate un spatiu.

Exemplu: pentru
lllAturatd.

F={

se obtine

89

matricea

(1opJ

vectorului "dl
7 noduri' numl

nind pe nivelul n=0, 9i fiecare l9d 9-a. qib.a,..cel


Sirieli mitricea de adiacenli a arborelui astfel definit'

0L10000
1001001
1000110
0100000
0010000
0010000
0100000

4.

,,?") din

arborele cu rdddcind, cu
i;; i;i;;, a, J, zt astlet incat
se aibe pe liecare nivel n exact 2n
vector,
de
acest
7,
descris
iii
ri
,i" -raOati"a
n
noO"f

=NULL)

q=q->Urm;
q->urm->nr=2 *q->nr+1,.
)

*q^ .nr+1

R:ispuns

cu

((;/t) t t)

rpune corect a=2 b=23

(p.p1)c&(p.x<4)&& (p.P1)&&(p.]l^<!,'

corect a,
Determinati ultima valoare (notatd

lrsrl'4

qr-p,
I r:D^.urm^.nr,
whllo q^ .urm<>nil
brgln
qr-q^.urm;

Fozolvare:
prezentate aleturat o posibile
re in pseudocod. Deoarece nu_

citegte

Tpentru k3,35

restrictii privind numdrul de lrt*1 =r 11-11*s 1o-, t


au spaliul de memorie folosit, ll
calcula gi reline intr-un vector ke1
Fibonacci pAni la cel de rpentru ieL,n
36 (matricea pe care trebuie l;daca i mod 2=1 atunci
fi (x)nstruim are cel mult 6 linii gi 6
ll pentru j!",n
rnrrel). Apoi construim matricea
lxti,ilrlkl;
vnlori luate secvential din vector.

Fiecare element al unei liste inlenluite, alocata dinamic, retine in campul

numer intreg, iar in cimpul urm adresa urmdtorului element din lll
ni1/Nur,r. dicd nu existd un element urmdtor' ce valori au variabilele
gi b dupe executarea secvenlei aleturate,. 9:cd val?bll?
"q
llp
de acelasi
irimutui'elehent al listei de mai jos, iar variabila este

-'lT

ftll0;f12l1;

IL|t<t+r;

laltfel
| ;pentru jen,r, -L

I I xti, jlf tkl;


ll Ir.|kk+1;
ll
lrl
\I

gg]lgti t.a,
VARIANTA

1,

O9O

ln declararea aleturata, variabila p memoreaze in c&mpul x absclea,


cernpul y ordonata unui punct din plinul xov. Dacd punctul se
semiplanul din dreapta axei oy (dar nu pe aceaste axd), care dintre
de mai jos are valoarea rrue/ 1?

Istructtctc"*J

(Pascal||

var D: record
x,y: real

xt
| {float y,
I float
)

end

'l

a. p.x>0
b. p.vtO

Dt

a, info

b.

),

IEtrlen( "2009i ) ] =, \0, t


strca! (s,,'BAC" ) ;
c. B.e,cinfo d. InformatL
s

infoB.e,c

Respuns corct: b.
3.

Se considere un arbore cu 5 noduri, numerotate de la 1la 5,


reprezentat prin matricea de adiacenla daH aleturat.. Scrieli
toate nodurile care pot fi alese ca rddecine a arborelui astfel
incat acesta se aib6 un numer par de
(6pJ

frunze.

Respuns corect
4.

!.,

Fiecare element

0100
1011
0100
0100
0x00
1000

al unei liste

inlen[uite, alocatd dinamic. retine in


campul nr un numdr intreg, iar in

(Pascall

q: =9t
a: =p^ .urm^

nri

campul ulm adresa urmdtorului whil"e q^.urm<>nil do


element din liste sau nil" /Nnr,L begin
dace nu existd un element urm6tor.
Ce valori au variabilele intregi a gi b

dup5 executarea

secventel

aleturate, dacd variabila p re[ine


adresa prlmului element al listei de
mai Jos, iar variabila q estg de
acelagi tip cu

p?

(6p.)

q^ .urm^

=q^

.nr*at

(C/C++l

q=D,

a=p->u!tn*>n4
{

ffi

.nr:

q: =q^ . urrn
end,
b: =q^ . n4

whll6

(q->urllrit -MrrJL

q- >Urm->nrrq-

q=q->urni
)

b=q->nri

drarupra dlagonalei principale, iar n2 este media aritmeticea elementelor strict


porltlvo ale matricei, situate sub diagonala principale, ca in exemplu. Cele doud
madll ss considsre egale cu 0 dace nu existe valori strict pozitive in zonele

(1op)
pentru nr4 9i matricea aldturate se
E
l5l
tllfcazd valoarea 0.25 (nl=2.75, calculate din
tl.mcntele aflate deasupra diagonalei principale,
3 -5 1 -3
mrrcato cu chenar, gi rQ-2.5, calculate din
tbmontele subliniate).
llrolvare: Este prezentata mai jos o posibile rezolvare in pseudocod:
oltagt n gi matlicea a
fdaca nr1=0 atunci
r10 r nrl0 r
I n10;
r2 0; nr2 0;
laltf,el

-1

-4

OEEE

?!20

Ce memoreazi variabila s, de tip gir de caractere, dupe executarea


de mai jos?
(C/C*+\
(Pascal)
gtrncpy ( E, " informaLica", a
E : ocoDy(' infomatica,, 1,

r"2009")

*rrloll un program pa8ca:" lc/cf + car cltegte de


de la tastaturd un numdr
(15ns20),
linii
n
elemontole
unel
matrlce
cu
n
linii gl n coloang, numere
flrfural
pe
gi
lnlorvalul
1001
afigeazd
ecran diferenla tn1-n2, unde
l lro0l dln
t-100,
pozitive
ale matricei, situate
rl 6sls medla aritmeticd a elementelor sirict

lrrmplu:

c, x,p+y.D>o
d. p (x) ip (y) >0

Iength(,2009,) ) t
g: =concat ( s, 'BAC' ),

0oraepunzdtoare.

Rispuns corcct: a.
2.

prro

>nr*a,

Tprntru il,n-1
I ppentru j i+1,n
ll ra... a [i, j] >0 atunci

ll I s1s1+ali,iJ;
ll Ir.rnrlnr1+l;

ll

Itr
l.l

lrnls1/nr11
l1t

fdaca nr2=0 atuici

ln20;
laltfel
ILtm2(e2lnt?i
Bcrie

atunci

m1-m2

I'l llKlll dublu lnldnluitd, alocatd dinamic, momoreazd ln fiocaro nod al sdu, in
|Arlrlnrl lnfo un caracter, iar in cAmpurilo Drc gi urm adresa nodului
|rfl{xldent, respectiv urmdtor din lista sau nil IMrLL dac6 nu existd un nod
pnr;odont, respectiv urmdtor in listd.
Hr;thrll programul pascat lc,/c++ care citegte de la tastaturd un cuvant (avand
fitnxllnum 20 de litere), creeazd lista dublu inlanluite care va conline in ordine,

VARIANTA OOl

1.

Se considera un graf neorientat c cu

loL

noduri

gi

101 muchii.

maxim de varfuri izolate ale grafului poate li:

a.0

b.

c.

10

Rispuns corect d,
2.

d.

50

86

dF kr stanga la dreapta, caracterele cuvantului citit (cate o literd in fiecare nod al


lhldl) gi afigeazd pe ecran caracterele din list5, ?n ordinea inverse a memorarii

Un arbore cu ridecine, cu 11 noduri, numerotate de la 1 la 11, esto


cu ajutorul vectorului de tali t= (2, 5, 5 ,3, O,2,4,6,6,2,3, .

direcli (fiii) ai nodului 2 sunt:

a, L,6si10

b.5

c.6,8gi9

krr Exemplu: dace s-a citit de la tastature cuvantul rRrNA se creeazi lista de
Itul jos, apoi se va afiga ANrRr.

d.3

(10p.)

Respuns corect: a.

3.

Se considera definitti matricea A care are 10 linii, numerotate de la 1 la


coloane, numerotate de la 1 la 8, ale cerei elemente sunt numere intregi.

Rescrieli secvenla aldturate astfel

incit toate,elementele de pe

\l'

for J:=1 to

r IJ,8I : =0;

Rispuns:

for J:-1 to

10

AIi,3l:=100;

4.

(CiC++)

10

alo

alo

for(j=11j1=19'5**1

llj

ultim,p
rlrtring[20],

I t8l =0;

variabila c memoreaz5 un gir cu cel mult 20 de caractere, iar variabila


tip intreg?
t

o^^^^1,
doocl,.l

.c:='a.bracadabra

i:=5r
"
writh(c [i] ,c [i+11 );
while i>=1 dio
begln
write ( (c Ii]

end;
Rispuns corect:

char
i=6 t

lil <<c [i+1] <<endllr


I nrintf ("%c%c\n", cltl,cti+l
while i>=0 )
tcout<<clil; lnrintf ("%c", c I
i'-; l
cout<<c

); i: =i-1

aia

dacarba

if (srrlen(s) >0)
{ prim=new nod;
prin->info=s [0]

info: =s Iil t
tr,Drec!=ultimt
lltln^.urrn=p;
t

p->prec=u1!imt
ultim->urm=pt

ultim=pt

u1!im- >urm=Nul,tt

ln->urm: =ni1

(p=uLtimr pr p=p- >prec

tin;

cout<<p->inf,ot

p<> nit do

p: =p^ . prec

ultim=prim,
for(i=1; i<slrlen(E), i++)
{p=new nodrp->info=s [i] t

=Di

write (p^ . info)

D!im- >Drec=NULLi

(p) rD^.

Iltlll:

()

cin>>cuv;

lr=2 to length(E) tlo

c I I =,,abracad.abra " t

nain

prim=uLtim=NULLt

=s [1] ;
.prec : =nil;
tlnr =prim,

(C/C++)

\r

*prim, *u1tim, *Di

char 6 [2XI ; int i;

i !bytet

(prin),
. info:

program,

struct nod
{ char infot
nod *urm,*I)reci);

3pnodt

(a);
l<>' ' then

I3l =100;

Ce se va afiga in urma executerii secvenlei aleturate de

j,n,

Dr

for(j=1;i<=10;i++)

etil

{CrC**)

nod= recordl
irrfo chari
urm, prec:pnod.i
endt

cea"

coloana a matricei sA fie initializate cu valoarea 100.

(Pasca\

scal)

Dnod=^nod.t

VARIANTA 092

1.

Care din urmatoarele arce apa4ine


gralului orientat cu 4 vArfuri, avdnd
gradele din tabelul aldturat (x,yell)(4p.)

a.

(2,3)

b,

(1,2)

olementele fiecdrei linii fiind separate prin cate un

c.

(1,4)

d.

Respuns corect: b.
2.

Variabila

s este de tip gir de caractere, iar variabilele

cl

(4,1)

conline caracterele memorate de variabilele

cl

Exomplu: pentru me3 $i n-4 9i tabloul de mai ios

gi c2 sunt de

char. Care expresie are valoarea rru/l dace gi numai dace


caractere

gi

girul

c2?

d.

Dor (c1+c2, s) <>0


Dos (cl, s) <>0 andl DoE(c2,8)<>0
DoB ( c2, coDy ( s, Dos (c1, E) ) , 255 ) <>0
pos (cl, B) +Dos lcz,E)>=2

a,

strstr

c,

3.

(Pascal)

m.n

fpantru i1"n execi:ti


| ;pentru jl,n executl

| | citegte e13

Pe ecran se va afiga:

1463
9225

Itl
l1I

(C/C++)

rntru iltnin,.m-1 excutll


| 6nntru j1,n executl

I I er,ien.r,:
lrl
l.t

s, c1+c2 ) l=0
Etrchr ( E, c1) l=0 && Etrchr(s,c2)t=O

nln

lnlnel

rpentru j jrnin, n-1 xecutl


I ppentru i1, n executt

Respuns corect: d.

Jntn1
rpntru

lrl
l.|

strchr (strchr(s, c1), c2) I =0


( strchr ( E, c1) I
=0) t ( strchr ( s, c2 ) I B0)
Scrieti vectorul de "tati" corespunzAtor arborelui cu
radacinS, cu noduri, numerotate de la 1la 8, dat
prin lista aleturata a descendentilor direcli (fiitor)?
(6pJ

Lz 4,5 ,7
2z -

3! 1,8
4t -

5:
6:
7.
8:

Rispuns corct:

tr (3, 6, 0, L, 8, 1, 1,
4.

(10p)

92285
.
cltotte

\u/Q++)

b.
c.
d.

17t4
14 5 123

spaliu.

Rozolvaro: o posibile solulie, descrisd in pseudocod este urmetoarea:

(Pascal)

a,
b.

Scrloll un program Pifcal lc/c++ care cltgte de la tastaturd numerelo lnirogl


n gl n (13ng24, 1<n524) 9l elementele unui tablou bidimensional cu n llnii 9i n
coioane, numere intrsgl distincte de cel rnult 4 cifre fiecare, 9i elimind din
tablou, la nivelul memoriei, linia 9i coloana corespunzetoare elementului de
valoare minimd. Programul va aiiga tabloul oblinut pe ecran pe tn-l linii,

Scrieli o expresie logic5 paEc!} lc/c++ care sd codifice conditia ca


din declaraliile aleturate se reprezinte segmentul nul (segmentul care
originea identicd cu extremitalea).
(4
(Pascal)

(C/C++)

TyD Dunct-record

'l,
6nd,

fgal,

l!'It Bgtnnt=rcord

Elr1lct Dunct
(float x, flort yr, t
gtralct Egtr[nt (

atruct
Elruct

orLgine 3Duact t
fxtrnritate punct,

DuJtct origrLne;

Dunct extremitat, )

nd,i

Var v: aegmnt i
RAspuns corect:

(Pascal) (v. origine. x=v. xtrernitate,:r) and.


(v. origine.y=w, e:!!tmitate.y)
(C/C ++\

v. origine. x==v. entrenitate.

&& v.

origdr.

y==w.

extranrltatd.

I I

41,1[.1*1

il ,n oxecutl
| ;psntru jl,n executl
| | {acf }ir<nln atunci
| | | nrn41
I I I ininr
llljnrinJ

nn-1
f?6ntru ie1,tft xecut!
| grcntru j1,n xecutt
| | acrie tu3,' '

lr
ll

l,|

llrl

3)

mrn-1
t11

lrl3r1t la rln{l notr


|

!t

VARIANTA
1.

OO3

\r2

Care este numdrul minim de noduri ce trebuie eliminate


din graful alalurat astfel incat subgraful obtinut se nu fie
eonex?
(4p.)

a'3

b.o

r1

c.2

d.

R;spuns corect: d.
2.

ln

declararea aleturatS, campurile


gi ale inregislrdrii pot
coordonatele carteziene ale unui punct din planul :rov. Care dintre
toarele expresii are valoarea lruell dace gi numai dace punclul p este
pe axa ox ?
(Pascal)

(CtC++j

tyDe punct=record
x,

y:rea1i

c,

P.x=O
P.x+P.yro

Rispuns corect: b.

3.

a. P.x==0
C. P.l(+P.Y==o

b,
d.

Se considerd arborele din figura aldturatA.

a)

Care este nodul care trebuie ales ca riddcini


astfel incat acesta se aibe I descendenti directi (fii)?
(opJ
Rdspuns corect: 1
b) Care suntcei patru fii ai nodului ales ca rddecine in acest caz?
Rispuns corect 2,3,4,6
4.

O listd liniarS simplu inlenluite, alocatd dinamic, cu 99 de elemente,


cdmpul nr al fiecerui element cate un numir natural, iar in campul
adresa elementului urmetor din liste sau niL lNnr"L dac6 nu existe un
urmitor. $tiind ce pri& pestreazd adresa primului element al listei gi ce D
sunt doua variabile de acelagi tip cu Drim, cate elemente are lista
executarea secvenlei aleturale?
(Pasgal
(C/C++\

p:=prin; i
while D^.u::r!<>nil
begin q: =p^ .s111;

D=Drimt

do

D^.ut:(r:=q^.urmi
duDose (q) t
D: =D^ . urmi

while (D->urm!

=NULIJ)

{q=p->urmt
D->Urn=q->urllt

delete qi I fre (q) ,

p=p->urm; )

endt
Respuns corect: 50 (se elimini din liste nodurile aflate pe pozilii pare in
inilialdj2,4,6,... .,9S, gi de aceea in tistd rimAn 9o-49=so de noduri)

Scrieti programul Pascal lc/c++ care citegte de la tastaturd doue ghuri de


caractere, de aceeagi lungime, formale din cel mult 200 de litere mici ale
alfabetului englez, gi afigeaze pe ecran, un gablon comun celor doua giruri
citite, care conline un numar minim de caractere ?.
(1(
Exemplu: pentru girurile ilianant giDlerarut se afi$eaza
Rozolvare. Se parcurg simultan cele doue giruri gi pentru orice pozilie in care
avem in ambele giruri vocale scriem *, pentru orice pozilie in care in ambele
giruri avem consoane scriem #, iar pe poziliile rdmase scriem ? .

#r*#??#

1C/C++\

.1, s2: strius [200] , i:bytet


lotltt vocal: atring [5] ='aeiou',
lunctj,on voc (char c) !booleani

float x,y,

}P;

b. P.y=0
d. P.x=P.y

t*,
*
x

(Pascal)

EtrucE Dunct

endi
var P:Durct i
a.

Un gir de carectoro r 66 numogte "tablon" pentru un alt gir de caraclere x,


? ,#l , are aceeagi lungime
dace esl format din caractere din mullimea
in se gesegte o vocale,
cu n gi po fiecare pozilie din B in care apare
po fiocare pozilie din a in care apare # in
se gesegte o consoane 9i pe
fiecare pozilie din g in care apare ? putem avea orice caracter in x. Se
considere vocala orice literd din mul[imea { a, e, i, o, u}.

legln

vocale

II

="aoiou",

int i;
int voc (char c)
{ return
atrchr (vocale, c)

voc: =Dos (c,vocale) >0

r.idla ( s1) rreadLn(E2) t


lor i: =1 to L.ngth(s1)d!o
It not voc(s1lil ) anat nol
voc(s2 lil )then write('#r)
alae

lf voc(s1[il )anal voc ( s2 [il


the! write(!*')
etE ttrit('?')

* include <ioEtream.h>
# inclutle <EtrinE.h>
char s1[201] , s2a20Ll ,

=NI'IJJ,

)
voidl nain( )
{cin>>g1; cin>>s2;
for ( i=0, i<strln ( s1) ti++)
if (voc (slIil )&& voc(s2[il)]

cout<<'r',

else

if

rvoc ( 31 [il ) && lvoc ( 32 [il ) )


cout<< ,*, i
e!.Ee cout<< I ?r i )
(

VARIANTA 094

1,

lC/C t r)

Pn.sol/)

cit.ft. 11
prlpozitia primului spaliu

l.ft.
l fpozltia primului Epafiu
rl
X.n 11
pozltia ultimului spatiu gz2(pozilia ultirnului spatiu
in g1
r1
j0
rlrul vi-d
11

Care dintre nodurile grafului neorientat cu 5 noduri,

numerotate de la 1 la 5, dat prin matricea de


adiacenli al5turatd, are gradul cel mai mare? (4p.)

a.4lb.3

01100
101.01
11011
00101
01110

u.2

Rispuns corcct b.

Un graf cu 5 noduri, numerolale de la 1 la 5, conline urmetoarele


aL,2t, tL,31, a2,31, t2,51, t3,4t, t3,5L t4,5t. Etiminati din
graf numdrul necesar de muchii astfel incat graful pa4ial rezultat
se fie
Consider6nd ce acest arbore are ca rddeci;d va;ul 5, care este vectorui
legeturi ,,de tip tatd" corespunzator ?
Riispuns: Se etimind 3 muchii astfel inc6t graful rdmas sa Re conex
9i

conslruiegte vectorul de iali pornind de la nodul 5. O

tru ipz2+
a212+s1[il

rPenlru ipz2r1, lungin ( sl) -1


s2 [j] sl lil

1, lungirne ( s1)

12

12+sl

\I

s2[jlspatiu
jj+1

til

fPentru i0,p21-1 executi

I s2 [j] sltil
IL| jj+1

.t2

aioi

12,51, a3,41 iar considerand nodul S rdd5cind, vectorul de tip tata


o.
Un graf neorientat cu 5 noduri, numerotate de la x la 1,t 2, 3
5, este reprezentat prin listele de adiacentd aleturate. 2r L, 3, s
3t !, 2, 4, S
Transformali acest graf intr-un grat o;ientat prin
4r
3, 5
inlocuirea fiecarei muchii cu exact un arc, astfel incat
5.
2,
3, 4
in graful

s2tjl=o
/*se
Iungimea efectiie
E2* /
acrie .E2

con(inutul 2, 5. 1,, 3,

3.

orientat care rezuhe se existe cel pulin un


drum de la orice nod x pane la orice nod
(rref,).
Scrieli reprezentarea grafului orientat pe care Fali
construit, prin liste de adiacen{e.
Rispuns: O solulie posibil5: 1!
4.

(6pJ

3, 2.L,3, 3 t,4'5;

4.5

5t2t

Scrieli un program in limbajul eaecal lc/c++ cate citegte de la tasiatura


singur gir format din cel mult 20 de caraclere care ieprezinti numele
prenumele unei persoane. lntre nume gi prenume se afli un numar
de caraclere spaliu (cel pulin unul). AtAi numele cat gi prenumele sunt
numai din litere ale alfabetului englez. programul construiegte in memorie
afigeaza pe ecran un al doilea gir de caraltere, care s6 conlind
grmat d.e exact un spaliu gi apoi numele din girul citit inilial.

Exemplu: dace se citegte girul:

PoDsscu vasite

marcheaza

a Filu1ui

ln memorie este construitd o liste simplu inlenluite, alocat6 dinamic, ale carei
un caracter 9i in campul next adresa
olemente memoreaze in cimpul
clomentului urmdtor din liste sau valoarea nil /NItr,L dac5 nu existd un
olement urmator. Se gtie ce aceaste lista contine cel pulin trei elemenle.
Variabila prirn reline adresa primului element al acestei liste, iar variabila

1i!

ulrin

v,

jj+1

fr2+spatiu
lntru ie1,9z1-1 execute

reline adresa ultimului element din aceastS listd.

Scrieli secventa de program care interschimbd valorile relinute in^campurile


de la al doilea, respectiv de la ultimul element al acestei liste. ln cazul in
(:are veti folosi $i alte variabile decat cele date prin enun!, scrieti gi declarerile

lir

nocesare pentru aceste variabile.


Exemplu: dace presupunem ce inlial lista avea conlinutul 9i forma urmdtoare:

orinl

ultim

E-'E-E-E-E-E
E-E-E-E-E-E

rutunci,

in urma executdrii secvenlei, ea va avea urmetorul conlinut:

tu].tim

Drr"m.L

(6p.)

se va construi gi apoi se va afiga pe ecran girul

Vasile

PoDescu

Rezolvare: Folosim doue variabile, s1,82 giruri de minim 20 caractere in


respectiv minim 21 caractere in C/C++:

Bezolvare:
(Pascall

ault 3 chari
r.Drirn^ .next^ .lit i
ln^.nexE^. lit : =ultitn^, lit,
tl.m^ ,lit: =auxt

(C/C++)

char

anrxi

aur=Drim- >next->1it t

prim->nex!->1it=uItin- >lit t
u].

iir- > 1i t =au:r ,

dac6'ss cltogt glrul:

VAFIA|ITA 095

1.

toD..cu

Cate valori nule pot se apare int-un vector cu legdturi ,,de tip tat5" asoclal
arbore cu reddcind care conline 10 noduri?

a. niciuna
c. depinde

b.
de configuralia arborelui

Rispuns corect: 'b.

2.

RAspuns

4.

b.54

corect:

c. 24

d.

Se da graful orientat cu 5 noduri, numerotate de la 1 la 5, definit

4rLt

0100
00xl
0101
0010
0000

Scrieli un program in
in limbajul rascallc/c1+ cate citegte de la
gir,
format dir
tn cel mult 20 de caractere. care reprezinte
. singur
prenumele unei persoane. intre nume $i prenume se afle un numar
caractere spatiu (cel pulin unul). Atat numele, cat 9i prenumele, sunl
numai din litere mici ale alfabetului englez. Programul construiegte in
afigeaze pe ecran un alt gir de caractere, care se conlina iniliala
(prima litera a prenumelui), urmata de un carbcter punct, de exact un spaliu
numele din girul citit inilial. Toate literele din girul afigat vor fi, de asemenea,
mici.

9i apoi se va afiga pe ecran girul

(1op)

rospectiv minimum
(Pasca\

21 caractr in C/C++:

.1

citegte sl

20 caracter i!

(C/C++\

gia pritlului paiiu Dozlpozi+ia priDului spagiu in 31


s,oz2.pozlli-a ultimului sPaliu in s1

tDotitia ultioului spatiu


lrul vid
ta, + 6Lt92+!l + '.'
ltu tl,Dozl-l executi
12+81tiI

E2

[0] e61[p2+1]

s2aLl*'.,'
g2l27Q "
j3

rPentru ieo,poz1-1

[jl e slli]
I s2
Ilt jj+1

32ljl=0

L:2,3,4,5i 2tL,3,4,5i 3:L,2,L,5i

prin matricea de adiacenle aleturate. Determinati un drum de


lungime maxime de la nodul 1 Ia nodul 5, care se fie alcetuit din
arce distincte dou5 cate doue. Scrieli lungimea drumului
determinat precum qi arcele care il compun (lungimea unui drum
'(6pJ
este egale cu numdrul de arce care il compun).
Rezolvare: lungimea=S; arcele sunt.
(L,2) , (2,3) , (3,4) , (4,3) , (3,4) , (2,5't

5.

Scrieli listele de adiacen,t5 pentru un graf neorientat, cu 5 noduri, n


la 1 la 5, care are un numer maxim de muchii gi nu este eulerian.
Rezolvare: Pentru un numer maxim de muchii, gradele trebuie sa fie cat mal
dar dace toate gradele ar fi egale cu 4, graful ar fl eulerian.
singur nod de grad 3, suma gradelor ar fi impara, ceea ce nu este posibil.
ce graful trebuie sa conline 3 noduri cu gradul 4 qi doud noduri cu gradul

solulie posibild:
5 tL,2 ,3;

vrr{I.

Folosim doud variabile, s1,s2 giruri de minimum

in secvenla alStr.rratd, i, j gi n sunt variabile ?ntregi, iar a este o matrice


formate din n linii gi n coloane numerotate de la o la n-t . Care este
elementelor de pe diagonala secundard din matricea a, in urma executdrii
secvenle, dace n=8?
(Pasca,
{CiC++)
for i:=0 to n-1 alo
for(i=o; i<nr i++ )
for j:=0 to n-1 do
for(i=0; i<n; i++)
ali,jl:=(i+j)
nodl n
a til tjl = (i+j)e.nt

4.8

3.

exact una
d. exact doue

tr v{, construl
Yr DODllcu

/*marcheazl sf,arlitul girului s2*/

scrie

s2

VARIANTA

t.

OOT

lPnscal)

Care este numdrul maxlm do valorl egale care pot ee aparA Tntr.un
legdturi ,,d tlp tale" asociat unui arbor cu redAcind care contin 10 ilodurl?
a) cel mult 2
b) 10
c) nu pot sa aparA valori egale lntr.un vector cu legeturi de p tate

d)e

RAspuns corcf d
2.

ln secvenla aleturate,

r, J gi n sunt variablle

intregi, iar a Ests omt


pehatica formata din n linii gi n coloane, numerotate de la 0 la n-1, Carl
suma elementelor de pe. diagonala principald din matricea r, ln.
executdrii acestei secfenle, dacd n.8?
(Pascal)

(C/C+ +)

for l:.0 to n-1 dlo


for J:=0 to n-1 dlo
attrJl:-(t+J)tttotl n
t, 24
b) 54

foti(l-0, l<nt i++ )


for(J=o, J <n, j++)
altl IJI e (I+J )*n,
c) 55
d)8

Rlspuns corect: a.
Scrieti listele de adiacenF pentru un graf neorientat cu 5 noduri,
de la 1 la 5, care este hamiltonian, dar NU este eulerian.
Rispuns corect un graf in care trei noduri au gradul 4, iar celelalte do
gradul 3 este hamiltonian conform unei teoreme cunoscute, dar nu
eulerian datorite celor doue noduri de grad impar. O solutie posibild

Lt2'l,rL,5i

4.

32L,2,4,5i

42L,2,3t

Se dd graful orientat cu s noduri, numerotate de la 1 la


5, definit prin matricea de adiacenla aldturate. Scrieli
arcele din care Este alcatuif un drum de la nodul 1 la
nodul 5, care trece prin cel pulin patru noduri.
Rezolvare:

5.

22L,3,4,5r

I
|
|
(6pJ I
|
(L,2\, (2,L1 , $,g), (3,2t, e,S;

SzLrT

o, o o o

00111
01010
00I 00
00000

ScrieJi un program in limbajul pascaL lclc++ care citegte de la tastaturd


giruri,
formate liecare
fiecare din cel mult 20
2o de caractere. Primul gir
reDrezintd nu
nt
9rrun, lormate
sir reprezintd

unei persoane, lar al doilea gir reprezintd prenumele aceieiagi persoan.


numele cat gi prenumele sunt formate numai din litere ale alfabetului
fiecare conline cel puljn o consoane. Programul construiegte in m
afigeaze pe ecran un al heilea gir de caractere, care contine consoanele
prenumele citit dispuse in ordinea in care apar ?n prenume urmate de exac
spaliu 9i de numele citit.
Exemplu: dacd primul gir citit este ropescu, iar al doilea este vasil
se va construi gi apoi se va afiSa pe ecran girul vsl poDeEcu
Rezolvare: parcurgem prenumele gi copiem consoanele intr-un
intr-u al treilea
apoi addugem prin concatenare spaliul gi numele.

al,

12

rtllngl2U

rlr.trlns[{1],
l, :t r lnt.s.r,

(C/C++)

Tln6Luda<lo.tr.ern. h>
*dnctudl.<.trlng.h>
ohar 11F1l , a2a21.1 ,.9l[Ll,
tnt l-0, J I

()L,.21 ,
lnt tnrtn ( ) {
l.ne&h(r2)
dlo
cln>>r1>>r2l
rr
1
to
J
), J++)
lf Do. (.2 IJl,'a.loutlrou')r0 for(( JrO, J<rtrl.n(12
l! r.trchr ( 'rErour.toun,.2
lh.n.3rrr3+.2[Jl,
+r1,
13 [t++1's2 111 ,
t ra!+ "
a3 [l].0r
It.In (.3 ) ,
!Urc!! (i3' " "),
rlrcat s3, 61) ,
(

cout<<43,

rslurnot l

[J I

Exemplu: penlru

VAFIANTA 097

1.

t71
456
7 S9
3{ 5

Se considere un graf neorientat cu 5 noduri $i 3 muchii. Care este


maxim de noduri cu grad l care pot exista in graf?

a.2b,3c.4

R6spuns corect c
Un mod convenabil de djspunere a celor trei muchii pentru
a obtine numerul maxim'de noduri avand gradul 1 este
prezentat in ligura aleturata.

d.s

a,345

g.

b.

c,25

1".'."",'.

Respuns: TrTA

d. 126

"ili?s.

trrr

)r

listei.

Rezolvare:

5.

{C/C++}

Etruct NOD
int info;
NOD

);
NOD
,.

*adrt

*pt

cou!<<p->ad!- >adr- >inf o;


printf ( n%d",p->adr->adr->
I

Se considerd un tablou bidimensional cu a linii gi m coloane (1ft<24,


ce memoreaz5 numere intregi cu cel mult doud cifre fiecare. icriefi un

in

limbajul pascat lc,/c++ care cite$te de la tastature valorile n,


elementele tabloului, gi care inverseaze ordinea elernentelor in cadrul
coloane, ca in exemplu. Programul va afiga pe ecran, pe n linii,
oblinutd dupd inversare, elementele fiecdrei linii fiind separate prin cate

spa!iu.

i, i : incegeri

(n,n) t

(C/C++)

#include <iogtrearn.h>
int a [25I [25l,n,n,aux,i,j,
void nain( )

Ir=1 to n do
tor J:=1 to m do
raat(aIi,jl ),
i.!=1 to n div 2 do
lor J:=L to m alo begin
rux:=ali,iI ;ali,il :=atn-

(10p.)

cin>>n>>mi
fori ( i=1r i<=nr i++

for (j=1tj<=ntj++)
cin>>a Ii] Ii I ;
for (i=1; i<=n /2, L++)
for (j=1;j<=a;511;1
x=a Iil Ii I ;
a til Iil=atn-i+11 til t
a [n-i+l1 Ii I =x;

t
|'Jl
[n-i+1, j I r=au<

fiecerui element cate un numer intreg de cel mult 4 cifre, iar in cAmpul
adresa elementului urmator din listd sau nillNULL dace nu exist5 un
urmetor in listd. Lista are cel pulin trei noduri, iar variabila p retine
primului nod al listei. Scrieli, in limbajul pascat- lclcar, declardrile ce
lista gi o singure instructiune prin a cerei executare se afigeaza pe
valoarea memoratd in cel de-al treilea nod al
14
(Pa$ca4

345

{56
L7

4. O listd liniare simplu intenluite, alocatd dinamic, retine in campul

tfE)e ad_nod=^nod;
nod=record
inf,o: in!eger;
adr: ad_nod
endi
var p: ad:nod;
wiiteLn(p^ . adr^.adr^ . info)

Pe scran se va atlga:

'r 89

lrrrray[1. .25, L. .241 of

{PascatT

s:=copy(s,pos ('TI'.s),4)

9l matrlcoe:

(Pascal)

n,m, aux,

Rispuns corect: a.
Se consideri variabila s care memoreazd qirul de caractere
valoare va avea s dupe executarea instrucliunii de mai jos?

tn.3

Rezolvare: Se interschimbe linia 1 cu ultima linie, linia 2 cu penultima etc.

Se considerd un arbore icu redecind memorat cu ajutorul vectorului de


r= (2,0.L,L,1-,2). stabiliti care dintre nodurile arborelui sunt situatC
nivelul 3, daca redecina este situau pe nivelul 1.

2.

n.l,

and,
1: =1

to n dlo begin
lor j:=1 to n d.o
write(aIi,j],' '),
irlt1n

for ( i=1, i<=n, i++) {


for i( j=1t j<=mt j++)
' cout<<a lil [il<<'
cou!<<ndLi

)
)

"

Rarolvil.:
VARIANTA 098

(Pascal)

! vArfurl, numorotats cu 1,2,3,{,5, 9l arcele (1,


(1,3), (1,{), (7,3r, (4,21 , (1,5), (5,2), (2,4). care (
(
urmdtoarele vArfuri au gradul extern egal cu gradul lntern?
d, 39i {
c, 19i ?
b. {$i s
r, 2gi I

1.

Fle gralul orlontat o cu

Rlspuns corocti b.

2.

In

C se va

afiga
urma executarii urmetoarei secvente de
conslderend cd E a este o variabild de tlp gir d caractere gi asts o
de tip intreg?

(C/C++)

(Pascal)
at

r'Exlrnatl' ,

for Lr-1 to 3 dlo


dlta ( s, l, 1) ,

!rrlt61n(s),

:ntnI

b.

Ele

char a 1101.'ex!rnan",
f,or ( l!0 r l<r2 r l++ )
slrcDy(a+l,a+l+1),
cou!<<ar I Drtntf ( "Bs ", a) t

c.

d.

mn

Exarnn

RAspuns corect a.

3.

Scrieli vectorului "de tali" al unui arbore cu redecin5, gtiind ca:


nodurile arborelui sunt numerolate cu numerele naturale distincte 1,2,3,.,
numarul nodurilor este.4 sau 5;
nodul l este desemnafca redecine;
numarul nodurilor Oe tip frunze este egal cu jumdtate din numdrul
noduri din arbore;
num5rul de niveluri pe care sunt dispuse nodurile arborelui este
numerul nodurilor de tip frunze.
Rezolvare: in ipoteza ca arbotele are 4 noduri, ar trebui ca
cele 4 noduri se fie dispuse pe doue niveluri 9i doui dintre
ele si fie frunze. Absurd. Un arbore cu 6 noduri, avand 3
frunze, gi cu cele 6 noduri dispuse pe 3 niveluri este posibil.
Un astfel de arbore este tigurat in desenul aleturat gi are
vectorul de "tali": [=(0,1,1,1 ,2,3). Existe Si alte
dispuneri posibile ale nodurilor astfel incat sa se respecte
conditiile impuse.

4.

doue numere
reprezentdnd valoarea exprimatd in euro a unui colet pogtal, reqpectiv g
exprimatd in kilograme, gi un gir de caraclere reprezentand numele

Tipul de date structurat CoLET permite relinerea

expeditorului, lormat din cel mult 30 de caractere. Sffieli in


pascal lc/ca* declararea structurii coLET 9i o secvenle de instrucliuni
permite citirea valorilor 'componentelor variabilei x de tipul cor,E!.
sugestiv componentele tipului de date cor,ET'

(C/C++)

tlD. oolatrraoord
aut, hg

o .r

rad,

ratl,

rtrlne|

13

0l

vlr ratoolat, ...


r..dlla(rl..ur, x.trg),
r.rdln (x.orra)

rlruot COIJIT {
llort aur, kg,
shr! orrr [!0],
,,

COLI!! r3, ...


cln>>x.qur>>:r. kg,

cln.g.tlln. (x.or!.,

30,, \n,

),

Ecrlefl un program eaecat lc/c++ care citegte de la tastature un numer natural


nonul n (!S2{) gi conshuiegte ln memorio o mafice cu n linii gi n coloane care sd

conllne primole nr numere naturale pare, Prima linie a matricei va contine, ln


ordlne crescetoare, valorile o, 2,,,, 2a-2i a doua linie va contine, Tn ordine,

valoril 2n, 7a+2,..,

ln+2,.., 5!-2,

l^-2i

a treia linie va conline, in ordine, valorile

4n,

iar ultima linie va conline, ln ordine, valorile 2n2-2n,

ln2-2n+2,..,2n2-2.
afigeaze pe ecran matricea construite, cate o linie a matricei
o
linie
a ecranului, elementele de pe aceeagi linie fiind despenite
olle
o0te un spaliu.
: pentru n=3 Se va afiga matricea alSturatS.
(10p.)

: Se copiaze toate valorile de la 0


pe
lnl-a linii, de sus in jos, pe liecare linie,
lr alAnga spre dreapta.

citegt

02I

6I

10

12 14

15

k0
rpentru

i1,r executl

FDntru J+1,n xecute


I arrkr kk+2

lt
\l

irrolvarc:
VARIANTA

1.

OO9

Considerem un graf orientat cu

noduri, numerotate de

la1la7,9i

(2, x), (3,1), (3,4 ), (3,s't, (5,2), (7,31. Care este


maximd a unui circuit elementar care se poate obline in graf prin
unui singur arc?

(1,5),

llnlo

x care memoreazi

(:l ILngth(x) -31

s, write(x[3] );
d. write (n llenglh(x)

-1I

);
);

Respuns corect a.

3.

cout<{. Islrlsr (x) -31t

I Drintf ('?c',n[Btrl@(x)

I Dlintf { "*c",xlstrler(x) -11 ),


cout<<x[2] i I printf ( "%c",xt2J ],
cout<<x Iatrleo (x) ] t

I printf ("*c',xlEtr].dr(x)

problemei, matricea de adiacentd a acestui graf

00100
00001

?\
l-F
L.'

oGf

este: loooo
00001
01010

4.

I)

Considerem un graf neorientat cu 5 noduri gi 3 muchii format din


componente conexe. $tiind ce doar patru dintre noduri au gradul 1,

Rispuns: .Un astfel de graf este prezentat in


figura aleturat5. Fere a fi unica solulie a

'

-31 ) ,

cout<<x IEtsrln (x) -11 ,

metricea de adiacenla a grafului.

Se consideri o coade, fn care au fost introduse initial, in aceaste


ordine, primele trei numere impare 1,
9i 5. Continutul cozii
este reprezentat in figura aleturate.
Notam cu a.D x operalia prin care se adauge informa,tia x in
coade gi cu ErJ operalia prin care se elimine un element din
coad5. Asupra cozii se efectueaze, exact in aceaste ordine,
operatiile Er.; AD 4; rD 6. Reprezentati, dupe modelul din figura
(6p.)
aleturata, conlinutul cozii dupa fiecare operalie.

A.D

...,a;

girul de caractere ABAc. Care


urmatoarele instrucliuni conduc la afigarea caracterului B?
(C/C++)
(pasca,

h wiite

I-4 I

0oloane care se conline primele n numere naturale nenule. prima linie a


labloului va conline, in aceaste ordine, valorile 1,2,...,n; a doua linie va
0online, ?n ordine, valorile 2,2,3,
a tr'eia linie va contine, in ordine,
vslorile 3, 3, 3, 4, . . .,n, iar ultima linie va conline valorile n, n,. . ., n.
Programul afigeazd pe ecran malricea construita, cate ol 1 2 3 4 5

(2,7,3,1 ,6,2)

(x) -21),

l-tl-s

Ecrleli un program pascat lc/c++ care citegte de la tastature un numar natural


flonul n (n<24) gi construie$te in memorie un tablou bidimensional cu n linii gi n

Raspuns corect d.

a. rorlta (rr I le|lglh

Dupd operatia nD
Dupe operatia

ln figura aleturata se observi ce, prin adeugarea


arcului (2,7 ), se obline circuitul de lungime 5:

Considerdm variabila

FT'1

'

a.5b.4c,3

2.

Dupd oporatia EL

matricei pe cate

linie

ecranului, elementelel

llccdrei linii fiind despd4ite prin cate un spaliu.


lxcmplu: pentru n=5 se va afiga matricea aleturate. (10p.)

223 t5

3334s
c4445
55555

Rlzolvare: Se observd ce fiecare element aflat sub diagonala principala in


nrolricea conslruitd este egal, ca valoare, cu linia pe care se afld elementul
ro8pectiv gi orice element aflat deasupra diagonalei principale in matricea

construite este egal cu colana pe care se afle elementul respectiv. propunem doar
tlcventa de construire a matricei, reprezentate in pseudocod:

l?.ntru ie1,n executd


I rn"otto j1,n executi
I I dacE, i>j atunci ai5i altfet arjej

lr-l
Lr

VARIANTA

1.

1OO

Care este. numdrul minlm de muchii care trebuie eliminato dintrun


neoriental complet cu loo de noduri astfel incet graful pa4ial obtinut
eulerian?

a. 48s1

b.

c.

d.

100

50

Rispuns corect d.

Un graf este eulerian dacd gradul fiecdrui nod este numer par. lntr-un gral
cu 100 de noduri gradul fiecerui nod este 99. Nodurile grafului se impart ln
mullimi disjuncte, prima mdllime poate sd con$na nodurile de la 1 la 50, iar a
t2,521 ..., 150'
de la sl la 1oo. Astfel dace se elimind muchiile

t1-,srl,

gradul fiecSrui nod va

fi 98.

DupS acest ralionament numerul minlm de

eliminate este 50.

2,

Fiecare element al unei liste simplu inlenlujte, alocata dinamic,


cdmpul unn adresa urmalorului element din lista sau nillNULL daca nu
un element urmetor in list5, iar variabilele k1, k2 9i k3 relin adresell
elemente succesive in lista, ca in figurS. Cu ce instrucliune se pot Inll

punctele de suspensie din secvenfa de mai jos astfel incat aceastl


determine interschimbarea corecte a poziliilor in liste, a elementelor
adresele k2 gik3?

-ffi-ffi'[-r*

tPascaA

k1^ .urm3 =k3 i... k3 ^ .urtfl: =kl


(C/C++)

k1->urn=k3 r.,. k3->urm=k2,


a,

k2^.um:=k3^.urmt

c.

k2^.urm3 =kL^ .urmt

!.
d.

c, k2 - >urm=kl- >um;

RAspuns corcct: a.
Se memoreaza adresa nodului ce urmeaze dupe nodul
memorate in variabila k3.
3.

c6rui adrsd

5,

cu
Se considerd arborele cu 6 noduri, numerotate de la 1 la
toate
Scrieli
t6,31
16,21
a2,41
desemnate ca redecine astfel incat fiecare arbore cu raddcine obtinut sa

, a4,5),

,2,U,

exact

4.

cifre fiecare;

programul afigeaze pe ecran acele valori din tablou care sunt strict mai mici
dccet toate elementele cu care se invecineaze direct (aflate pe aceeagi linie
dar pe o coloand aleturate sau pe aceeagi coloanS, dar pe o linie aleturate), ca
ln oxomplu. Numerele afi$ate vor fi separate prin cate un spaliu,
lxrmplu: pentru n={ gi tabloul alaturat se afigeazi numerele:
s zg
(2
2
se invecineazi direct cu
pfffil.q
5 9i
9i este mai
0985
mb docat acestea, iar 0 se invecineaze direct cu 5, 9 gi 1gi
.st maimic decat
(10p.)
Hczolvare: Se citegte matricea incepand cu linia 19i coloana 1, pana la linia
n gi coloana n. Se completeazi apoi linia O, coloana 0, linia u+L 9i coloana

4, 3,

s,

acestea).

I {
I
I
I
11386

n+l cd elemente egale cu cel mai mare elemeni din matrice. Astfel

cand se
parcurge matricea nu mai trebuie puse conditii suplimentare pentru elementele
allate pe "marginea" matricei (pentru cei care lucreaze in limbajul Pascal
declararea matricei se va face corepunzetor).
O posibila solulie este prezentatd in algoritmul pseudocod de maijos:

cltst n
nax -1

rp.ntru i1, n executd


I pentru j e1,n executi
| | citeste ar,l
I I ;daci a1.1> mhx attrtrci max

llrr

l.I
rt)ntru i0

b, l->urrr!i
cl. k2=k3->um,

k2 ->ur3l=k3 - >urm,

ooloan, care memoreazl numere naturale nenule cu cel mult

ai.3

lr.r

k2^.uerl:=k3;
l(2 ! =li3^ .urflrt

(C/C++)
a.

Frzolvarc: varlablla . va memora glrul 3


Bcrlell un program parsal lc/C++ care citegte de la tastaturd un numer natural
n ( 1Jnl50 ) gi apol elomentele unui tablou bldimensional cu n linii gi n

frunze.

Rezolvare: Nodurile desemnate ca r6decina astfel incat arborele


aibe exact trei frunze sunt 2, 4 9i 6 (nodurile frunzd vor fi de fiecare
39i s)
Se considerd declararea (Pasoa4 e ! Etrinsaz0l , / (CiC++)'
el21)=tr5r+73 r Care este girul memorat de varidbila e dupd
secvenlei de mai jos?

n+1 execute

Ilt a6,1=max, ai+1,r=m8rl' &i,o-!laiK, at,,+l=nax


pentru i1,n executi
I pentru j 1,n executi
I I ;daci a1,3<a1-1,j gi al,J<ala1,j gi ai,j<ai,j-1 Si ai,j<al,j*l
I I I atunci scrie a1,5

llrr

ltlll

a ool
t,llllzend metoda backtracking se genereaze in ordine lexicograficd cuvintele de
r;nts patru litere din mullimea.f,=(a,b,c,dt,e), cuvinte care nu conlin doue
vocale aleturate. Primele opt cuvinle generate sunt, in ordine: abab, abac,
.bid, abbr, abbb, abbc, abbat, abb. Cate dintre cuvintele generate incep cu
lllora b gi se termind cu litera e?
(4pJ
b' rs
c, L2
d. 20

Rhpuns corect: b (Cuvintele sunt de forma b _ _ e. A doua literd poate fi


orlcare literd din
deci sunt 5 posibiliteli. A treia litere poate fi orice consoana
dln r, deci sunt 3 posibilitef. Sunt generale 5x3=15 cuvinte cu proprietatea din
onunl.).

l,

Subprogramul

I lLzL,L)

t?

este definit alSturat. Ce se afigeazd ca urmare a apelului


(6p.)

(Pascal)

procedure f (D, i: longint ) ,

brgln

i,f tr< >0 ther


lf ! mod 3 >0 tben
b6sin

write ( i) ; f (n aliv 3,i+1)


end,

(C/C++)

void f (1ong n, int i)


tif (D!=0)
if,(a%3>0) (

cout<<i,
Dritrtf(.%al",i)t
I

f (n/J,

i+x),

and,
RlBpuns cotect: 12345

txr

Flgiorul text bac.


conline, pe o singurd linie, cel mult 1o0o de numere
nAturale nenule cu cel mult c cifre fiecare, numerele tiind separate prin cate un
rpaliu, Scrieli un program Pascal I C/C++ care citegte de la tastature un num5r
natural nenul (a<999) gi numerele din figierul bac.rxr gi care afigeazd pe
ncran, separate prin cate un spaliu, toale numerele din figier care sunt divizibile
r:u n. Dacd figierul nu contine niciun astfel de numer, atunci se va afiga pe
6cran mesajul NU ExrsrA.
Exomplu: dacd figierul bac.tx! conline numerele:3 Loo
?o 25 5 80
6 3798, pentru n=10 atunci pb ecran se va aflga: L00 40 70
(10p.)

to
80

Fozolvare, Se citegte

n, apoi se

citegte cate un numdr din figier; dacd

lndeplinegte condilia cerute, se afigeazd pe ecran 9i se incrementeazd un


conlor.

l)upd ce s-au citit toate numerele din figier, se testeazd conlorul; dace acesta
d$te zero, inseamna ce nu s-a afigat niciun numdr gi atunci se afigeazd mesajul
{lln enun,t. Descrierea in pseudocod a algoritmului prezentat este:

e-etter

I trrurl|ar

arurarr nul|ut,

cts0
rcet timp (nu t. rting. .f,ertitul dr fillrr)
I citctta x (din fiqier)
| ;dact x t n=0 atunci
ll ctcr+1
| | afigeazt x (pe ecran)
Jtr
lt

Rezolvare se bazeazd po ideea cA exprosia

.ub(n,n,vtLl+1) - rub (v, n, v [1J )

.x.cutl

reprezintd numArul de valori din tabloulv care se afle in intervalul

Iv[1] ,wIll +1)

clEogt n
rpGntru ie1,n *ecute citegte vtil
(I

ot0
rpantru i1,n xecuti
| {actr aub (v, n,v tl I +1) = Bub(v,n,vIi]

rdacl ct=O atunci

Itt scrle

,,NU Er(ISTtz

Subprogramul Fub, cu trei parametri, pdmegte prin intermediul parametrului:


v un tablou unidimensional cu cl mult 1oO de componente be memol
numere intregi cu cel mult 4 cilre tiecare;

n un numer natural nenul mai mic sau egal cu

1OO

ce reprezinte

ll

lrl
l.t

atunci ctct+l

rci ct=n atuncl sc!16


altf1 Ecrie

) ) +1

DA
NU

efectiv de componente ale tabloului primit prin intermediul parametrulul


a un numer lntreg cu cel mult 4 cifre.

Subprogramul sub returneaze numerul componentelor tabloului primit


intermediul parametrului v ale ceror valori sunt st.ict mai mici decat

parametrului r.
Exemplu: pentru valorile n.5, vs ( 1,21, 9 ,Zr,4Og) , a*20 ale
urma apelului, subprogramului sub va retuma valoarea 2.

a) Scriefi definiliile tipurilor de date Si definilia completS a subprogramului r


b) Scrieli un program Pascal I C/C++ care s6 citeasce de la taitatura un
natural nenul n (n3100) gi n numere intregi, tiecare avand cel mult 4
care, tolosind apeluri utile ale subprogramului sub, se afigeze pe ecran

DA dac5 oricare

a)

doui numere dintre cele n numere lntregi ciiite sunt

doue cate doue, sau mesajul NIr in caz contrar.

il;

Exemplut pentru n.d gi cele n numere citite de l; tastaturd:


{7 183 59 813{ -55
se va afiga pe ecran mesajul Dr.

Rozolvata
(Pascal

tylrs v.ctlarrryl1. . 100lof Lntegcrl


fu[ctloD au]r ( vsvect, n:brtrt6, asinteg6r) tb!t,
vlr L, ct : b!'t ,
bcgla ct: =0;
for i:=1 to n do if vlilca the$ inc(ct);
Eu.b:

endtt

=ct

li
{i

(C/C++\

lnt suJr(int vH, int n, inE a)


( int l, ct=ot
for (lEorl<nrl++) if (vlil<a)
rtuln ctr )

c!++1

illi

irli

fqaoa nrv tEuncr lcrat,,&u


VARIANTA

l.r tfrl

OO2

1.

b.

eeee

c.

edale

if

=0)

a) Scrieli definilia

rcat tji!trp (nu se atinge sf,argitu]- de figier)


I citette x (din figier)
I dace x>O atunci vlnl xi n n+1

lr.r
l.l

f,, cu

un

a un numdr natural

parametru,

cu cel mult 3

valorii parametrului a.

Exemplu: pentru a=90 subprogramul va returna valoarea

r.3.!.':iggi

1+2+1=4.

4,

"

deoarece
(ApJ

b) Scrieli un program Pascal lC/C++ care citegte de la tastature un num;r


natural D, 2Sn<999, gi, Jolosind apeluri utile ale subprogramului f, verifice
dacd n este un numdr extraprim. ln caz afirmativ, programul aligeaza pe
(6p.)
ecran mesajul DA, in caz contrar afigand mesajul Nu.
Rezolvare

f(

(fi

i.,

(Pasca,

a! integer)

ct: intgrt

ct:=0;i:=2;
Urlle a<>1 do
ll a nocl I =0 then
bsi4 a:=a div
olse iIrc(i);

r.ctt
t

executi

unui subprogram

- returneazi suma tuturor exponenlilor din descompunerea in factori primi a

I prirtf ( "%d",
eJldt
]l
Respuns corect: 531013 5
Figierul text rnR. Txr conline, pe o singure linie, separate prin cate un
cel mult 100 de numere intregi, fiecare numar avand cel mult 4 cifre.
un program Pascal i CIC++ care cite$te numerele din figierul NR.
afigeaze pe ecran, separate prin cate un spatiu, in ordine crescdtoare,
numerele naturale nenule din figier. Dace nu existe astfel de numere
afiga pe ecran mesajul NL ExrgrA.

n0

cilre (a>l)

f(n/100) r cout<<n%101

prezentat este:

complete

subprogram care:
- primegte prin intermediul parametrului

Exemplu: dace figierul NR.Txt conline numerele: -3 -1002 -57


-soo 5 3?98, atunci pe ecran seva afiga: 5 7 7 51 37 98
Rezolvare. Se relin valorile strict pozitive din figier intr-un
unidimensional, se sorteazd crescetor acest tablou gi in final se
elementele tabloului sortat. Deoarece nu se cere un algoritm eficient,
o metodd cat mai simpld pentru sortare. Descrierea in pseudocod a

rpntlu i 0,n-1 executi sclie v[i]


lt

Un numdr a se numegte exlraptim dace atat el, cat gi orice numdr oblinut prin
permutarea cilrelor lui sunt numere prime. De exemplu, numer{..............1 u3 este
un numlt extraprim deoarece 113, 311, 131 sunt numere prime.

I Drintf ( '"al' , n%10 ) ,

(n!

vlj]

l1l

d.

Rispuns corect: d
Pentru definilia de mai jos a subprogramului f, ce se afigeazd
apelului f ( 1234s ) r?
(C/C++)
lPasca,
(Lons
n)
f
voial
Drocedur f (D.: longint) t
cout<<n%1o
t
{
begin

write( n notl 10);


begir
if n<>0 lheD
f (n dliv 100),
write (a noal 10) end

3.

general?

edlcb

2.

cu

lltr
lrl
\I

alcac, abadl, abba, abbb, abbc, abbd, abbe. Care este ultimul

"

llra""r vlil>vljl atunci interschinbi vtil

Utilizand metoda backtracking se genereaze in ordine lexicografice


de cate patru litere din mullimea A={a,b,c,tl,e}, cuvinte care nu
doud vocale aldturate. Primele opt cuvinte generate sunt, in ordine:

l.'lll'l'

4rrntru t 0,n-2 .x.cutl


llprntru J L+1,n-1 .x.cutl

integer;

irinc(ct)

ldl

\C/C++)

int f(int a)
t ilt i, ct=o,
for (i=2ral =1; )
if, (a%i==0)
{a=a/ii ct++ r }
e13e i++t
retutan ct i

b)

Rezolvare se bazeaz6 po ldeea ce dac6 r egte numdr prlm atuncl t (r) '1 ll
observa{ia cd valorlle cltlte pentru n pot ava col mult 3 cllre deci sunt cel
gase numere oblinute prin permutara cifrelor lul n.

citgte n
okl; c0n%10r c2tn/1001r cl [n/101t10r
tdac! n<10 (numere de o cifrd)
I atunci
| flice f (n) tA1 atunci ok 0
|

artf1

fdaci n<100

rdacl f(10*c1+co)ra1 etunci ok 0


l1t
fdaci f(10*co+c1)tA1 atunci ok 0
l.|

I
I

-t
I
I
I
I

I
I
I

(numere de trei cifre)

rdacl f (100*c2+10*c1+c0)*1 atunci ok 0


Lt
dacl f ( 100 *c2+10*c0+c1) *1 atunci ok 0

tt

rdaci
Lf

f, ( 100ic1+10

rc2+c0 ) ral

rdact f ( 100rc1+10*c0+c2

) rA1

atunci ok 0

*c0+10rc2+c1) +1

atunci ok +0

100

l1t

I
pdacl ok=1 atuncL acri6

Il'| altfel 6crie

"Nu"

r'Dtr"

edc

b.

eclecl

c. edde

Pentru definitia de mai jos a subprogramului


apelului

f (26),

d.

ir

edlcb

f,

ce se afigeaza ca urmare a
(6p.)

(Pascat)

Drocdure f (x: htegr) i


begin
lf x>0 thn
tf :. noal {=O then
bgin wrlte(,x') r f, (x-1)
lrd

elae
begin f (rr div 3);
writ ( 'y, )

alunci ok 0

f, ( 100rc0+10*c1+c2 ) rA1

rdaei f
l.l

l.

Utllizend metoda backtracking se genereaze in ordine lexicograficd cuvintele de


cate patru litere din mullimea A={a,b,c,d,c}, cuvinte care nu conlin doud
vocale alaturate. Primele opt cuvinte generate sunt, in ordine: alrab, abac,
abad, abba, abbb,lbbc, abbd, abbe. Care este penultimul cuvant generat? (4p.)

atunci ok 0

l1t

rdace
ll

OO3

Rilspuns corect: a.

(numere de doud cifre)

latuaci

axrfel

VARIANTA

nd

end;

(C/C++)

voidl

f (inr

x)

tlf (x>0 )
if (x%{==0 )
( cout<<'x't
Drlntf ( "tc", 'x'
f, (x-1); )

rll

eIEe

{ f (x/3)r
cou!<<'y'i
gr lrgf. (,'%c" , ,y'l
I

liil

Respuns corect: xy1'1'


Figierului text NR.Txr conline pe o singure linie, separate prin cate un singur
spaliu, cel mult 100 de numere intregi, fiecare numdr avand cel mult 4 cifre,
Scrieti un program Pascal I C/C++ care citegte numerele din figierul r,IR. Txr gi
afigeaze pe ecran, separate prin cate un spaliu, in ordine crescetoare, toate
numerele din fi9ier care au cel pulin 3 cifre. Dacd figierul nu conlino astfel de
numere se va afiga pe ecran mesajul lw ExrsTA,
(1opJ

Rezolvarc. Se refin valorile mai mari sau cel pulin egale cu 100 din figier intr-un
tablou unidimensional, se sorteazd crescdtor acest tablou qi Tn final se afigeaza
elementele tabloului sortatrDeoarece nu se cgre un algoritm eficient, alegem o
metode oat mai simpld pentru sortare. Descrierea Tn pseudocod a algoritmului
prezentat esle:

n0
Tcat

tinp (nu Be atinge Efer9itul de filier)


{
I citegte r. (din fitier)
x>100
vtnl
atuncl

x;
n

n+l
I dEcf
lrl
l,|

executl

l'fr

;decl n-0 .tuncl tcrj"r .,NU f,xlaTt/


lltf.lrpantru i 0,n-2 .xcutl
I lpentru j e i+1,n-1 xecut{
atunci interschitnb{ vIi] cu vIJl
I I d""e vlil>vljl

llr-l

onunlate este indeplinitd, atunci parcurgem acest tablou descrescdtor gi


construim prima jumetate a palindromului intr-un alt vector de 4 elemente.

\I

Afigdm acest vector in ordine gi apoi in ordine inverse.

It.r
I
I

i 0,n-1 execute scrie vlil


fpentru
ll

c{tette n,. ok1, iO


TcAt timp i39 9i ok=1 executd
I ct til cif(n,i)
| ,-aaca ct 1i1 *2 = 1 arunci ok 0

ll
Subprogramul cif,, cu doi parametri, primegte prin intermediul
un numdr natural cu cel mult I cifre gi prin intermediul parametrului
subprogramul returneaze numdrul de aparilii ale cifrei b in scrierea

a,

Exemplu: pentru a=125854 gi b=5, subprogramul va returna valoarea 2.


a) Scrieti definitia complbld a subprogramului cif .
b) Scrieli declaririle de date gi programul principal Pascal I C/C++ care citr

de la tastaturd un numer natural n cu exact

cifre 9i care determinl

afigeaze pe ecran, folosind apeluri utile ale subprogramului cif, cel mai
numdr palindrom ce poate fi oblinut prin rearanjarea tuturor cifrelor
a. Dacd nu se poate obline un palindrom din toate cifrele numdrulul
programul va afiqa pe ecran numdrul o. Un numer natural este palindrom
este egal cu numdrul obtinut prin scrierea cifrelor sale in ordine inversd.

a)

Dooareca numdrul cltit ar6 exact cifro, liecaro dintro cifrole care il compun
trebuie sd aparA de un numdr par de ori; folosim un vector de 10 elemente in
care relinem numdrul de aparilii ale celor 10 cifre in numerul citit. Dacd conditia

Exemplu: daca n=21523531 atunci se va afi$a pe eoran numerul 532112


iat daca a=f2272351 atunci se va afiga pe ecran numerul 0.
Rezolvare
(Pascal
{C/C++)
fiilction f( !: longinttc:b!te) 3b'!rtet int cif(Long n, int
c)
. var cE sbtztei

b6gin ct:
reDeat

=0

{int ct=0,
do

if ! motl 10 = c then iac (ct) t


h: =n ativ 10
urtll n=0 t
Lz=cEi
end;

{ if,

(n%10 == c

ct++i
n = n/10; )
while (a!=0);
returr cli
]

Itr
I ii+r;
11|

fdaci ok=o atunci Ecrie

lrlrfel ko
ppentru i9,0, -1 executA
I
lfpentlu j1, Icrtil/21 execuri paltlrli,
I

llr
I
ltr
|
lr-l
l.a

ir.r

|-n.tta.u

i0,3 execute scrie pal[i]

;pentru i3,0,-1 execute sclie pallil

kk+1

rql or nru lEunot aorta ,,t{u IXIST ,,


lrr t!.lr?.ntru t 0,n-2 rxroutl
l6>rntru J I+1,n-1 .x.outt

VARIANTA Oo4

Utlll?ind metoda backtracking se genereazd In ordine lexicograficd

llpecr vtttcvtJl rrunct tnt.rlchirnb{ vlil


ilr
Itl

cur,

e, d,.}, cuvlnte car6 nu contin


vocale aleturate. Primele opt cuvinte generate sunt, in ordinB: !bab,
de cete patru litere din muliimea

A:{a,b,

rb!d, !bba, abbb, rbbc, lbbdl abb. Care ests anteponultimul

.aldl.

i 0,n-1 6xecutl scrie v[i]


rp.ntru
l.I

generat?

c.

b.

d.

db

odcb

Rlspuns corect: c,
2.

Pentru definilia de mai jos a subprogramului


apelului

f (15,2),

ce se afigeaze

(Pascal)

IEooeatE

f (n,x:intqE),

bgir
if, :on thrl rdrite(o)
e1e

if, x d 4<=1 tlrgr f(n,:+rL)


lse begrh f(n,x+3) t
$rit(l) erd

eni}

(C/C++)

void f (int n, int x)


t if (x>n)
eou!<<or I Drintf (,,%4t,,, O)
else {f(n,x+3);
cou!<<1i I printf ( /%d.,

Rezolvare, Se relin valorile strict mai mici ca 100 din figier ?ntr-un
unidimensional, se sorteaz5 descrescdtor acest tablou 9i iri final se a
elementele tabloului sortat. Deoarece nu se cere un algo;itm eficient,
metode cat mai simpld.pentru sortare. Descrierea in pseudocod a a

prezentat este:

n0

\t

ctf,.

lnversd.

Exemplu: dace n=21523531 atunci se va afiga pe ecran numdrul r23SSg21_,


ht dace a=L227 23 5t atunci se va afiga pe ecran numdrul O.
(6pJ

Figierul text NR. TxT conline pe o singura linie, separate prin c6te un
spaliu, cel mult 1OO de numere naturale, fiecare numdr avand cel mult 4
Scrieli un program paecal I CIC++ care citegte numerele din figierul m.
afigeazi pe ecran, separate prin cate un spatiu, in ordine descresc,
toate numerele din figier care au cel mult 2 cifre. Daca figierul nu conline
de numere se va afiga pe ecran mesajul NU ExrsrA.

lrr

(4pJ
pascal
b) Scrieli declaririle de date gi programul principal
I C/C++ care citegte
de la tastaturi un numir natural n cu exact 8 cifre, fiecare cifrd fiind nenule,
gi care determine gi afigeazi pe ecran, folosind apeluri utile ale subprogramului
clf, cel mai mic numir palindrom ce poate fi oblinut prin rearanjarea tuturor
cifrelor numirului n. Dacd nu se poate obline un palindrom din toate cifrele
numdrului n, programul va afiga pe ecran numerul o. Un numer natural este
palindrom dacd este egal cu numarul oblinut prin scrierea cifrelor sale in ordine

else
if,(x%4<=1) f (n, x+l) t

rcat tinp (nu se atinge sfargitul de fiFier)


I citette x (din fisier)
I rdacd x<1OO atunci v[n] x; n nir

, cu

a) Scrieli definilia complete a subprogramului

Respuns corect: oL11l

3.

clf

doi parametri, primgte prin intermediul parametrului a un


numer natural cu cel mult cilre gi prin intermediul parametfului b o cifra;
subprogramul returneazS numerul de aparilii ale cifrei u ln scridrea numdrului r.
Exemplu: pentru a.125854 gi b=5, subprogramul va returna valoarea Z,
Subprogramul

f,

cu vI jl

Rezolvare a)

(Pasca,

f ( n: longin!;

(C/C++)

Ungll n=ot

int cif (long n, int c)


(int ct=o,
dlo ( if (n810 == c)
cE++ i
d = n/L0i )
while (n! =0) ,
retura ctt

ct ! btrt e,.
ct: =0 t
faDat

c I b'!,t )

sblrte,

lf n nodl 10 = c then inc(c!) t


nr-n div 10

-ct;

executd
Deoarece numerul citit are exact I citre, liecare dintre cifrele care il compun trebuie
tpare de un numer par de ori; folosim un vector de 10 elemente in care retinem
de aparilii ale celor 9 cifre in numerul citit (9 deoarece se precizeaze fapld ce
sunt nenule). Dacd condilia enunlate este indeplinite, atunci parcurgem acest
crescetor gi construim prima jumdtate a palindromului intr-un alt veclor de 4
Afi9dm acest vector in ordine gi apoi in ordine inversd.

clt.lt n; ok1, l1
rctt tinp i39 11 ok.1 .x.6utl
I ctttl ctl (n,l.)
I r.f""f ctlil *2 = 1 atsuncl ok 0

A 005
Folosind modelul combinArilor se genereaze numerele naturale cu cate trei cilre
dletincte din mullimea lL,2,3,71, numere cu cifrele in ordine strict crgscdtoare,
obfnendu-se, in ordine: L23, r27 , r37, 237. Dace se utilizeaza exait aceeagi
tohnicd pentru a genera numerele naturale cu patru cifre distincte din mullimea
lL,2,3,4,5,6,7,8), cate dintre numdrele generate au prima cifre Z gi Littima
clftd 7?
(4p.)

lrl
Il1l ii+r;

rdaci ok=0 atrr.acL scri

aLtfl keo

r?entlu i1,9 executi


pal tkl
I rlntru i+1', t&a l2l execute

lrl
tt

rpentru i0.3 execute scrie Pal[i]

\t
I
I

tf

rpeDtlu
ll

i<3'0,-1

execute scrie

pal[il

b.3
RIBpuns corect: d,

i;

c.4

x*y.

d.6

(Numerele sunl de forma

2;*y7, 4,ye13,4,s,6r,

NumSrul de posibiliteli de alegere a celor doud cifie

9i

y este egal

cu

(:'zr=6)
Pontru subprogramul

t(3,L7) t?

definit aldturat, ce se afigeazd ca urmare

(6p.)

(Pascal)

IlraceeE

lC/C+*\

f (a,b:ialr);

voitl f ( int a, int b)


{ if (a<=U)
(f(a+1,b-2),
cout<<, * , i lOri-dttl,%c., ",,1t

bcgin

If a<=b therr
besin
f,

a apelului

(a+1, b-2 ) t

write(t*,)

elEe

end

etse write (b)

andt
Rdspuns corect'|

cout<<br I Dtj-IilEf (,,rA",bl t

7*****
Scrieli un prcgram pascat I c/c** care citegte de la tastature un numar
natural n cu cel mult 8 cifre (n>10) gi care creeaze figierul text ![R. Txr ce
conline numerul n gi toate prefixele nenule ale acestuia, pe o singure linje,
separate prin cate un spaliu, in ordine descrescatoare a valorii lor.

Exemplu: pentru n=1030s fisierul NR.Txr va conline numerele:


t

0305 1030 103

10

(10p.)

Rezolvare. Un algoritm pentru rezolvarea cerintei, descris in pseudocod, este:


citegte n

lrepetd
I scri.e n (in figier)
n tnl10l
tlI pAni c5.nd n=0

4.

Subprogramul

!,

cu un Paramotrul

- priheife prin intermediul parametrulul a un numdr natural cu cel mult

A 006

(at1)

- returneazA cel mai mic divizor prim al valorii paramelrului a'


Exemplu: pentru valoarea 45 a parametrului a, subprogramul va
valdarea 3 deoarece a=1'*s iar cel mai miC divizor prim.al seu este 3'
a) Scrie-ti definilia complete a subprogramului' f

b) Scrieli declardrile de date 9i ptogramul principal Pasc&I 1 c/c++ cr


citeasci de la tastaturd un numer natural nenul n (n31oo) 9i apoi un 9k
numere naturale de cel mult 8 cifre fiecare, toate numerele din gir fiind
mai mari decat 1. Folosind apeluri utile ale subprogramului f '
determina gi va afiga pe ecran toate numerele prime din qirul citit Nun
J"i"rtinut.." uor iti$a pe o singure linie a ecranului, separate. prin cl
spatiu, in ordinea cres;dtoare a valorii lor. Daci nu existe astfel de n
va afiga pe ecran mesajul NU ExrsTA.

Exemplu: pentru n=?, girul: 1125, 2,3r4' r0L'


afiga:

2 37 101

225' 12 pe ecran

!'

Rezolvare a)

(Pascal)

funclion f( n: longin!) : l"ongintt


var d s longint t
begin d,: =2;
while (at<=n) and (n moil d <>
inc (41) ,

IC/C+ +)

0)

alo

f:=dl

if

d=2 t dl<=nt d++

(n%dt

== 0)

rlurn dt

ndt
b) Dacd a este numer prim' atunci cel mai mic divizor prim a lui a este chiar
rtel = a. Citim de la tastaturd n apoi celennumereqi pe m6sura ce le citim' di
prime le memorem intr-un vector; apoi sortam vectorul crescator 9i il afi9em pe

citegt

\l

8o considerd
t (L28,2t?
lunctl.on f

frgln

subprogramul

(Pascalt
(a, bs iltegr)

de mai jos.

!bl'tet

l! b<1 thn fs--1

al

ra

l! a mod b=0 then


!r.1+f(a tliv b,b),
al.. f !=0

k+1r vlk!

are t (r5,2r?

Ce valoare

149
Dar
(6p.)

(C/C++)

int f,(int a, int b){


tt (b< 1) return -1,
elge

if (a%b==o)
return l+f,(ai/b,b),

eIEe

raEurn

0r

Ecrlefi un program pascat I c,rc++ care citegte de la tastaturd un numer


natural n (n3100) gi apoi cele n elemente, numere naturale cu cel mult 4
ollrs liecare, ale unui tablou unidimensional a. programul afigeazd pe o linie a
tcranului suma celor n elemente ale tabloului, pe urmitoarea linie a ecranului
tuma primelor n-1 elemente gi aga mai departe astfel inc6t ultima linie afigata

rl

conline doar primul element al tabloului.

lxcmplu: dacd n=4, iar tabloul are

tt

(L,7 ,3

4l

elementele
programul va afiga valorile aldturate:

tc n (numer natural, n <1OO)

llrr
lr.r

rpentru i g 1,k execute sclie v[i]


t1t

d.

230

15
11

O posibilitate de rezolvare este prezentatd in algoritmul pseudocod

rdaci k=0 atunci scrie ,'Nu EXISTA,


laltfel rpentru i j 1,k-1 executi
lrpentru e i+1,k execute
I
iilaac: v1:.1>v1jl alunci interschinrbe
i

c.

execute

citegte

lLl

b. I47

k0

I
I

f. 145

Rlspuns corect: a

ilrpuns: t (Ls,2) =o, f (Lz8,2l -7

ong f,(long n)
{ Long alt
(

s cifre, avand toate

p0rltate diferite. $tiind ct primele gase solu{ii generate sunt, in aceastd ordine,
103, L05, 102, 109, I.23, Lz5, care este a zecea solufie generatd? (4pJ

and ,

for

UtlllzAnd mtoda backtracking sunt generate numerele de

(,lfrel distincte gi cu proprietatea ca cifrele aflate pe pozilii consecutive


sunt de

i1,n executi

.ltegte
aCr+a ti

vlil

cu

vljl

lil

(numdr natural)

ru in,1, -1 execute
torl E
lal"t Ia linie noui
lr-a til

Se considorA flglorul BJtc.Txr ce contine un gir crescltor cu cal mult


milion de numere naturale de cel mult noue cifre flecare, separat prin ceta
spatiu.

a) SA se scrie un program paEcar I clc++ carc,lolosind un algoritm


din punct de vedere al memoriei utilizate gi al timpului de executare, citegtc
figier toli termenii girului gi afigeaze pe ecran, peo singure linie, liecare
distinct al girului urmat de numarul de aparilii ale acestuia in gir. Valorile
sunl separate prin cate un spaliu.
Exemplu: daci figierul arc.rxE are urmetorul conlinut:

A 007

l,

Se considera subprogramul

t (r23l5l t?

lf n motl 2= 0 the!
vrite(! nod 10),

f (a aliw 10)

13 54 9211 1203

end

Rezolvare: a) O posibilitate de rezolvare este prezentate in programul

endi
x: =y

Dd,

close ( f)
ead.

f (nl Lo) t

(6p)

Rlspuns corect 12315, L2355, L2456, 1-3156, 23456

(C/C++)

#i!clude<fstrean.h>

voitl nain ( )
( long :r,y,n=lt
ifstrean f (tbac.txtn) t
f> >:!i

while ( f,>>y)

{if(x==y) a++,
e18

{ cout<<x<<'

<<!<<

a=1;
)
x=yi

)
cout<<x<<

f. clos

()

'

'

<<tr<<e!dli

b) O solulie eficienta din punctul de vedere al memoriei se poate obline

doui variabile intregi pentru a memora valorile a cate doi termeni succesivi
citit, iar eficienla din punct de vedere a timpului de executare se poate
parcurgerea o singura datS a girului de numere.

5, care vor fi generate de program.

(Pascaq

reafl(f,y),
if x=y thn inc (n)
else begin
write(x, ' ',!, ' ') in:=1

( if (nt =0 )
tif (n*2 == 0I
cout<<n*10,
plintf ( *%d",nt10 ) t

a. 513
b. 24
c. 42
d. 315
Rilspuns corcct c
Folosind tehnica bactracking un elev a scris un program care genereaze toate
numerele de cate n cifre (0<n<9), cifrele fiind in ordine strict crescdtoare. Dacd n
este egal cu 5, scrieli in ordine crescetoare toate numerele avand cifra unitelilor

b) Descrieli succint, in limbaj natural, metoda de rezolvare folosita,


ce conste eficienla ei (3 - 4 rdnduri).

begln

(C/C++)

voidl f(loag int n)

eqdt

deoarece j. apare de 3 ori, 5 aparede 4 ori, etc.

rad(f,r<), n3=1t
whil not eof (f )alo

(4p)

(Pascal

programul va afiga:

begia
lsslga (f,, rbac. t:rt' ) ,reaet (f) t

definit alaturat. Ce se va afiga in urma apelului

Drocdure f (n:longint),
bcgin
Lf n<>0 the[
begin

11155ss99Lt202020

var f: txt i
xry,a: longint,

Scrieli un program ?agcal lc,/c++ care citegte de la tastatura un numar


natural n (0<!3100)gi cele 3rn elemente ale tabloului unidimensional w,
tiecare element fiind un numdr natural cu cel mult patru cifre fiecare. Tabloul
este impa4it in trei zone cu cate n elemente: prima zone conline primele n
elemente din tablou, a doua zone conline urmatoarele n elemenle din tablou,
restul elementelor fiind in zona a treia. Programul va interschimba primul
element par (daca existe) al zonei unu cu ultimul element impar (dace existe) al
zonei lrei 9i apoi va scrie pe _prima linie a figierului text BAc. TxT toate
elementele tabloului, separate prin cate un spaliu. ln cazul in care unul dintre
acesle doue elemente, pare urmeaze a fi interschimbate, nu existd, programul
nu va electua nici o modilicare asupra tabloului dat.
Exemplu: pentru rr=39i
455
fisierul BAc.TxT va

v=1ffifr

contine:

iiffir56m

ffi),

(10p.)

Herolvare:
(Pascat)

:a)

(C/C t r\

var vrarrayll..3001 ol Lntegr, #i-nclude< f atrarn. h>


n, i, x,pp, ui: integery
void lll.aln( )
frtextt
{int v [301] , n, I, x, DD, ul,
begin
of,Etrean f ( I'bac. txt i ) ,
read.ln (n) t

for i:=1 to 3*n do reatl(vlil );


for i:=1 to n do
if vttl rnod '2=0 thn
begin pp:=i;break endi
for i:=3*n downto 2*n+1 dlo
if vlil mod 2<>0 then
bagin ui: =i; brak errdi
if (DD>o) andt (ui>o) tha
begin x: =v[ppl tv[Dpl :=wlui];
v luil : =x

cin>>ni
for ( i=1t i<=3 rnt i++

cin>>vlil;

DP=o, ui=o,
for ( i=1; i<=n; i++

(nr longi.nE)
k

Longl-nt;

3longintt

aa

brgln
hr.5r

4.

- [n, dacd n <= 5


+=tz*t_,.
dacdn>5

l! k-n then

aub3 =k

alse sub:=k div 2;

for ( i=3 *n; i>2 *nr i - - )


if, (vlil%2!=0)breakt

(C/C-t t\
l.ong aub ( long n)
(if (n<=5) return ni
long k=5t
while (k<n) k=2*k'
if (k==a) relurn kt
else return k/2 i

trtrl1 k<n do k: =2*k,

if (v Iil %2==0 )breaht


if(i<=n) gp=i;

errd..

and

t, n: Longin! t

(s);
Lo B>0 do
b.gln
nr =Eub ( s)

#include <iostream.h>
voidl nain( )
{ long E,ni
cin>>s i
while(s!=0)
{ n=sub ( E ) t

wri! (n, ' ') is!=a-n

aIrd

a) Scrieli definilia cornplete a

unui subprogram Eub care primegte


intermediul singurului sau parametru n un numer natural de maximum I'
gi care returneaza cel mai mare termen al girului care este mai mic
mult egal cu n.
(
Exemplu: dace n=83, atunci subprogramul va returna valoarea

80.

b) Scrie{i un program pascsJ. lclc++ care citegte de la tastature

un

natural s (s310000000) gi detetmine scrierea lui E ca sume de termeni


ai girului.dat folosind apeluri utile ale subprogramului Eub. Numerele
determinate se vor scrie pe ecran, pe aceeagi linie separate prin cate un
Exemplu: dacd valoarea citite de la tastaturd este 63, se va afiga:

40 203

lon

n<r5 then aub.=n


)

if ( i>2*n) ui=i;
lf( (DD!=0)&&(ui!=0) )
Bndi
{ x=vlppl rvlppl =v luil t
vlui] =x; ]
aEBigm(f ,'bac.!x!' ) ;rewrite (f ) ;
for i: =1 !o 3*n d.o
for ( i=1; i<=3 rn; i++ )
, ,) t
f<<vlil <<' ' t
$rit(f,vlll,
(f)
f.ci.oseO;
cloge
Se considera girul definit de relalia de.
recuren!5 aleturatS;

(PirsL?4

cout<<n<<
)

'

' , s=s-nt )

n (dln fl;ierul dr t nt r.)


80r k0
fl)cntru 1e1,! oxcutl
I citegtc x (din fitierul de intrare)
I ra""e kij=Ji "r",,.t
clt.tt.

VARIANTA
1.

OO8

Ljtilizand metoda backtracking sunt generate numerele de 3 cilre


cifrele in ordine crescdtoare. lar cifrele aflate pe pozilii consecutive

de rezolvare
l)rozontate in algoritmul
aldturat:

paritate diferite. sliino ca orimete cinci solutii generate sunt, in acoastt


este cel de al 8-lea numar generat?
t23, L25, L27 , izg, ]ts,
la
"ur"
6. 167
b. 1.49
a. L69

ss+r.
I I kel+kr
k>l atunci

d.

| | |daci

lllr

Rispuns corect c

2.

Se considera subprogramul f , descris mai


f (31 t?

jos

voitt f(int n)
( if ' (nl=0)
( if (n%2==0 )
cout<<n<<' ' i
I printf('%al

integer) t

procedure f
begin
if n<>0 then
begin
if n mod 2=0 then
(n

wrile(n, , ') t

f (n-1) ,
cout<<n<<' 'i

f (n-1) t

write(n,'
nd

'),

scrie '=',

I Drintf

',tl)

"e"tt ",n)

else cout<<enall t

else wrileln

Iorintf("\ni)

ndi

I I sclie x
lrl
l.1

Ce se va afiga in urma
(C/C++)

(PascaI

unuia dintre tablouri, astfel incat orice doue elemente aflate pe pozilii
consecutive se fie de paritate diferite.
lxemplu: pentru n=5, rn=3 gi lablourile

lubprogramulvaafiga2

t)

n (1
Pe prima linie a lisierului text BAc.Txr se afle o valoarenaturale
fiecare'
iar oe a doua linie n numere naturale cu maximum 4 cifre
prin cate un spaliu. in girul numerelor de pe a doua linie a figierului
outin doui numere patrate perfecte.
Siii"ti t" program'pascar lc/c++ care citegte toate numerele din
atigeiza pe eJran expresia aritmetice reprezentand tu.t?,: 11"t-"loj
Ooi," fini! a figierului care au proprietatea ca sunt patrate
sume'
simootut ,,*" intie ele 9i, dup5 un semn "="' valoarea acestei
exemplu. Termenii sumei afigate se pot afla in orice.ordine'
Exemplu: daca figierul BAc.Txr are urmetorul conlinut:

b)

a=(2,t,8,LO,Lt) gi b=(3,5,11),
3 4 5 g 11 14sau2 3 4 5 10 11 L4.

Scrieli definilia complete a subprogramului sub, alegand pentru rezolvare

un algoritm elicient din punctul de vedere al timpului de executare.

9 5 35 9 I

Subprogramul sub primegte prin intermediul parametrilor:


' n 9in doui numere nalurale (1<n<100, 1<n<100)
- a 9i b doue tablouri unidimensionale, fiecare avand componente numere
naturale de maximum patru cifre, ordonate crescitor; tabloul a conline n
numere pare, iar tabloul b conline m numere impare.
Subprogramul va afiga pe ecran, in ordine crescetoare, separale prin c6te un
rpaliu, un gk format dintr-un numar maxim de elemente care apartin cel pulin

Rispuns: z

t23

scrie '+,

'

-"tun"-p"Gcr"n se poate afiga:


9+9+36=54 sau 9+35+9=54 sau 35+9+9=54

Descrieli succint,

. 1

in

(6p)

limbaj natural, algoritrnul pe baza cdruia a fost sdis

lubprogramul de la punctul a), explicend in ce consta eficienta metodei utilizate.

(4pJ

(Pascal)

vcc=array[1..100I of integert
Eub(n,ms inlegeri a,b:vec) ;
l. J : integer;
i: =1; i:=1;
(i<=n) anal (j<=n) tlo
l! atil <btjl thn begin
write (a lil '' ) ,
whil-e(i<=n) antl (atil<btil) tlo inc(i);
alae begin

write{bljl, , ');
while(i<=m) anal (alil>btil)
L.n then tfrile (a lil )
.lt writ (b Ii I ) t

alo

inc(i) r

endt

(C/C++)

vor.dl

rub ( lnt n, lnt n, lnt

( lnt t.Jr

t.J .1r
rhlle ( i<=n && J <=lll)
{ if(aIil<btjl )
{ cout<<a [iI <<'
whil(i<=n && alil
elae
{ cout<<bljl<<'
whiLe(j<{n &&

[100] ,

tnt

00s

bt1001)

8o

considere subprogramul
I (!,?L1LLL , 1,) ?

<b

Ij

if n<>0 lhetl
if n rnod, 10=k thn
f:= 1+f (n dliv 10,k)

Lse coul<<b I j I t

are

(C/C++\

brgLn

if(i==n)cout<<alil;

Ce valoare

int f (long int n, int k)


(if (nr=0)
if (n?10==k)
return 1+{(n/10,k);
else return 0i
eLEe retum oil

!unctlon f (nl longint rk! in!ger)


, inlegeri

alil>btil)i++;)

aleturate.

(4p.)

(Pascal)

i++, )

eLEe f,: =0

else f !=0

andi

b) Se parcurg simultan cei doi vectori, o singure datd, selectand alternativ v


astlel incat acestea s5 {ie afigate in ordine crescitoare 9i sd aibd parita.ti diferit,
maniere asemendtoare interclaserii a doi vectori ordonali crescetor. Sunt

doui variabile de tip tablou

f cu definilia

c.2

b.3

t,5

d.

corect: b

Ulilizand metoda backtracking, sunt generate in ordine crescetoare toate


numerele de 3 cifre, astfel incat cifrele sunt in ordine crescatoare, iar cifrele
aflate pe pozilii consecutive sunt de paritate diferite. $tiind cd primele trei
solulii generate sunt, in aceasta ordine, t 23, L25, L27, scrieli toate numerele

gi cateva variabile simple.

(6p.)

geoerate care au suma cifrelor egala cu 12.

corect:129,

L47

345

a subprogramului su.b cu doi parametri: n (numir


gi
(numer
k
natural, 0<k<20). Subprogramul determine
natural, 0<nS50)
pe
afigarea
o linie noui a ecranului, in ordine descrescatoare, a primelor n
numere naturale nenule divizibile cu k. Numerele vor fi separate prin cate
Scrieli definilia complete

spa!iu.

Exemplu: dace n=3 9i

15 10

k:5

(Pascal'l

aub(n,k!bvte) t

mr
I

la apelul subprogramului se va aflga o"

integeri

(CiC'i+)

void aub (int n, int k)


{ int m,
m=n+ki

rn*k;

le m>0 d.o bgin


rlte (m, , ' ) ;rn: =m-k; end

""r1100,

while (tn>o )
{ cout<<m<<' 'i

m=m-k; )

Se considere figierul BAc.Txr ce contine cel mult un milion de numere naturale


separate prin spalii, fiecare numer avand cel mult noue cifre.
care citeste toate numerele din figierul
a) Scrieli un program pascar

lc/cri

BAc.Txr gi determine, folosind un algoritm eflcient din punct de vedere

al

timpului de executare, gele mai mari doua numere de trei cifre care nu se afl6 in
figier. Dace nu pot fi determinate doue astfel de numere programul va afiga pe
ecran valoarea 0.

A 010

Exemplu: dac5 figierul BAc.Txr con[ine numerele:

L2 2145 123 67 989 5 999 123 57 989


alunci programul va afiga 998 997

999
Se considerd subprogramul cu definilia aleturatd. Ce valoare

b) Descrieli succint, in limbaj natural, metoda de rezolvare folosite,


ce conste eficienta ei (3 - 4 randuri).
{Pascag

var f: text i
v:array[100..999I of byte,

x: Longintt
i,rnax!.,max2 : integeri
begin
asEigrr(f ,,bac.txt, ) ;reset (f ) ;
while not eof(f) tto

lC/C++)

inr v [10001 ;
void nain() '
{in! nrax1,max2,i;
long xi

h>

nd

ifatrean f ( "bac. txt" ) ,


whil ( f>>x)
if (x>=100&&x<=999 )
vlxl =1t
for ( i=999; i>=100; i-- )
if (vtil ==0 )
{rnaxl=i; breakr }
for ( i=naxl-1; i >=10 0; i-if (vtil ==0 )

end;

nal

e.9
2.

v pentru care vlil =0.

el8e return 0i

'

d.8

c,7

b.5

Un elev a scris un program care, folosind metoda backtracking, genereazd


toate numerele de cbte! ciire, cifrele fiind in ordine strict crescetoare Scrieli
(6p.)
toate numerele generate de program care au prima cilre 5 '

il8puns corect:

567 89

Scrieli definilia complet5 a subprogramului aub cu trei parametri: n (numer


natural, 5<nJ30000), a gi b; subprogramul fwnizeaze prin intermediul
parametrilor a b cele mai mad doui numere prime distincte mai mici decat

{rnax2=i; breakt }

if (ma:<X*max2==0 ) cout<<0 t
else cout<<maxl<<' ' <<ttrax2,
f.closeO,

b) O solulie eficientd, din punctul de vedere al timpului de execulare, poate


vector a in care indicii reprezinte numerele de trei cifre. Astfel, v[xl va avea
1 dace
se afle in fiSier, 0 in caz conltat. Se vor afiga cei mai mari doi indicl

il8puns corct: a

end.

vectorului

int f(int n,int Y)


t if(n!=0)
{ y=y+lt
retur[ y+f (n-1,Y)
l

lae f !=0

maxl=rnax2=0;

begin rad(f,x) i
if (x>=100) anal (x<=999) then
v lxl : =1.;

for i!=999 ttownto 100 dlo


if vlil=O lhen
begin ma*1:=it break end,
fo! i:=rlaxl-l downto 100 ilo
if, vlil=0 then
bagin max2:=it break end t
if rnaxl*max2= 0 then write(0)
el-se write(maxl,,' , ,ma*2) t
cloae (f) t

begin
if n<>0 then .
begin
y: =y+1;
f, : =y+f (n-1, y)

'

#itrclude<fatr6an.

(C/C++)

(Pascal)

function f (n,y : integr) : integeri

Fezolvare: a)

are t ( 3, 1) t ? (4p')

9i

Exemplu: dacd n= 28 la apelul subprogramului re va lurniza prin


parametru a valoarea 23 9i prin parametru b valoarea 19'
Fezolvare:

'

lPasca,

grocedure gub (n integerivar


t,b: integer) t
var k, d3 integert
b.gin
3

a: =n-1i k: =0 i
whil k=0 do begin
k3=1t
for d3=2 to truflc (sq*
if a moil d=0 then

begin a: =a-1;k:
b

=0 t

(a) ) dlo

break

b=a-1t k=0,
while (k==0 )
t k=1;
f,or (at=2; d*d<=br d++)
if (b%d==o) { b--rk=0tbreak, }

end;
r =a-1; k: =0;

while k=0 do bgin

end
andi -

{C/C++)

void sub(int n,int &a'int &b)


(int k, alt
a=q-!; k=0;
,1ri1s 1k==0 )
{ k=1;'
Lor. (d=2, d*d<=at d++ )
if (a%tl==o) { a--, k=0;
break; l

end.

k:=Xt
for d!=2 to trurc (sqrt (b) ) alo
if b moal il=o thn
begin b: =b-1; k!=0tbreakend

(1opJ

)
)

Evldenla produselor vAndute de o goclotato corrterclalA oste


figierul pRoDusE.Txr. Pentru fiecaro produs se cunoagte tipul
(un numer natural de cel mult 4 cifre), cantitatea exprimate in kilograml
numdr natural mai mic sau egal cu 1oo) 9i prelul unui kilogram (un
natural mai mic sau egal cu 100).
Figierul pRoDUsE. TxT are cel mult 2oOOOO de linii gi fiecare linio
trei numere naturale, separate prin cate un spati,.u, ce reprezintA, in
ordine tipul, cantitatea gi prelul de vanzare a'f unui pioOus ia

4.

vanzerii respective.

a) Sd se scrie un program pascatlc,/c'+, care utilizand

un

1 20 5
2 10 3
1 10 5

230
3s
(6p.)
b) Descrieli succint, in limbaj natural, metoda de rezolvare folositi,

in ce constd eficienla (3 - 4 randuri).

(4p)

1r.10

Pascah

Pontru funclia

var f:text;
'
v:array[1..99991 of, longin!,
t, c,p, i: inlegert

begin

assigm ( f, ,Droduse.Ext, ) i
rest (f,) t
whiLe not eof(f) tlo
begin read ( f, t, c, p) ,.
vItl ! =vlt] +c*p
end;

t(231s9)?

for i:=1 to 9999 dlo


if vlil >0 then
,,vlLl)t
writeln(i,,
clos (f)

alSturat, stabilili care este valoarea


dpfinite
t

(Pascall

f(5)

Dar

(6p.)

{C/C++J

inr f,(int n){


int c;
if (n==0) relurn

tuncti.on
I (n! integer) : inbegeri

vrr c ! integeri
brgln
tf n=0 then f :=9
.l.e begin
orE f(n aliv 10),
lf n mod 1O<c then f:=n

else
{c=f (n/10

9t

)t

if (n%10<c) return
else return ci l

moal

n%10

10

else f,: =c
.nd
f (2315i)

=x (cea mai micd cilrd din numerul 23r.s9)

#include<fstream. h>
Iong v[].00001,
voidl nain ( )

{int t, c, p, i;
ifstrearn f (,'produEe. txtn ) ,
while ( f>>t> >c> >p )
vltl=vltl+c*pt
f,or ( i=1; i<=9999 r i++
if (v til !=0)

Rlspuns corect : f (5) =5t

(CiC++\

d.0110x

c. 01011

b.01100

Rl.puns corect b

andi

Rezolvare: a)
(

lJn algoritm de tip backtracking genereaza, in ordine lexicografice, toate girurile


rle I illre o 9i 1 cu proprietateiia nu existd mai mult de doue cifre 0 pe pozilii
oonsscutive. Primele 7 solulii generate sunt: 00100,00101,00110, 00L11'
01001,01010,01011. Care este a 8-a solutie generate de acest algoritm?
a.

eficient din punct de vedere al timpului de executare, determine


flecare tip de produs-vandut suma totali oblinutd in urma van,
Programul va afiga pe cate o linie a ecranului tipul produsului gi suma
oblinuta, separate prin cate un spaliu, ca in exemplu.
Exemplu: dace figierul pRoDUsE. TxT are continutul
315
aleturat, programul va afi$a numerele urmdtoaie:
1 150

A 011

cout<<i<<" r<<vlil <<endl

f.cloaeI ) i
)

nd.
b) O solulie eficientd din punct de vedere al timpului de executare se poate (
prin utilizarea unui veclor v cu 9999 elemente in care indicii reprezinte codul
produs, iar valorea elementului vlil suma oblinute in urma vanzdrilor acelui

Flqierul text numere.tx! conline pe prima sa linie un numer natural


(n<30000), iar pe a doua sa linie, n numere intregi, avand maximum 4 bifre
cu
itocare. Se cere sd se .afigeze pe ecran un gir de n numere intregi'
qir
din
acest
(i=L'2,"',n\
pozilia
pe
de
proprietatea ce valoarea termenului

a figierului
Lste egald cu cea mai mare dintre primele valori de pe a doua linie
nurner . lxt .
i) Descrieti pe scurt un algoritm de rezolvare, eficient din punct de vedere al
tlmpului de executare gi al spaliului de memorie utilizat. explicAnd in ce conste
(4pJ
Bficienta sa.
descris'
algoritmului
n) Scribli programul Fa$cal I c/c++ corespunzdtor

(6p')

txt

Exemplu: dace figierul numre.


are conlinutul aldturat, se afigeaze pe

1-2

463781527910

ecran numerele

a 5 5 ',t I

I I 8 I 9 10 10

O solulie eficienta din punctul de.vedere al spaliului d?

-?i?-ti:

i:

iaotourl, ciiitea numerelor din figier realizAndu-se succesiv, comparandu-se


r"*itut numerelor citite anterior, actualizandu-se acest maxim Prin
"ii't ",
numeretor din figier o singure date se obline eficienla ca timp de

;;;;il";;;

n,rlralC Icrrn rr.trar,


tcr{c nrx
rP entru i+2, n executd
citegte x (din figier)
fdace &ax<x atunci maxx
l.l
sclie max

urE.fE.

l;r, considerd subprogramul r, definit aliturat. $tiind ce valoarea variabilei

t[trogi a este inainte de apel 4, care este valoarea ei dupe revenirea din apelul

(4p)

u(a)?

\t

4,

012

(Pasca0

a) Scrieli doar anletul funcliei sum care primegte ca parametru

un

natural x cu maxipum g cifre gi returneazd suma divizorilor numerului x.


Exemplu: sur(6) are valoarea 12 (=1+2+3+G) .

b) Sd se scrie un program pascallc/c++ care citegte de la tastaturl


numdr natural nenul n (o<n<25) $i apoi n de numere nalurale cu maxim 9
fiecare. Programul calculeazS, folosind apeluri ale funcliei sun, 9i afigeazl
ecran cate numere prime conline girul citit.
Exemplu: pentru n=5 gi valorile 12 3 g 7 1se va afiga pe ecran
(in Sirul dat existe dou6 numere prime gi anume 3 9i ?).

Rezolvare:

a) (Pascal) nrnction Errtll(n:lonEint) | longint,


tC/C++) Long aum(lons ,! )
b) Rezolvarea se bazeaze pe observalia cd un. numar
sr,In(x) =x+1.
Un algoritm scris in pseudocod este urmdtorul:

citegte

k0
fpentru i1, n executi

I citegte x
I dace sum (x) =x+1 atunci kk+l
Itl
l.l

gcrie k

este prim

\CiC++)

void P(int
{ x=x+5; )

grocedure P(var x: integer) t


l).gin x: =x+5i endi
n.

10

b.4

c.9

&x)

d.s

Rd8puns corect: c

llontru a scrie valoarea 10 ca sume de numere prime se folose$te metoda


lnrcktracking gi se genereaze, in aceastd ordine, sumele distincte: 2+2+2+2+2,
2+2+3+3, 2+3+5, 3+7, 5+5. Folosind exact aceeagi metodd, se scrie
voloarea 9 ca suma de numere prime. Care sunt primele trei solu{ii, in ordinea
(6p.)
{lonererii lor?
Rtr6puns corect: 2+2+2+3 , 2+2+5,2+7
[igierele text ![R1.Txr qi NR2.Txr conlin, separate prin cate un spaliu, mai
rnulte numere intregi de cel mult 9 cifre fiecare. Fiecare dintre fiqiere conline
cel mult 1oo de valori gi numerele din fiecare fi9ier sunt ordonate strict
r:rescdtor. se cere s5 se afi$eze pe ecran, in ordine crescdtoare, numerele
(jivizibile cu 5 care se gesesc doar in unul din cele doui figiere.
Exemplu: daca fi$ierul NRl.Txr conline numerele

L23472050,

lar fiqierul NR2 . Txr contine numerele

3s789rOL22024,

rtunci qe vor aflga pe ecran valorile

5 10 50.

a) Descrieli un algoritm de rezolvare a acestei probleme, elicient din punct de


vedere al timpului de executare 9i al spaliului de memorie utilizat, explicand in
(4p.)
ce consti eficienla acestuia.
pescal
(6p')
descris,
algoritmului
programul
corespunzetor
c/c++
b) Scrieli
I

:l

Bezolvare

a) Pentru o solulie eliciente ca spafiu de memorie utilizat, se folosesc doar


variabile simple, aplicand tehnica de la interclasarea a doua giruri ordonate
crescetor. Solulia este eficienta ca timp de execulie dac5 valorile cerute sunt
oblinute prin parcurgerea o singure date a numerelor din cele doud figiere.
b) O implementare in pseudocod a soluliei descrise esle date de algoritmul
pseudocod:

I,

1i

lt
;

x (Clln NRJ. . TxT)


cltitt. y (dln m2 . TXT)
fctt timp nu astG sfartit flglor NRl.TXT
gi nu est6 sfirgit figicr NR2.TXT executl
I
|
4aca x=!' atunci citegte x (din NR1 .TxT)
citegte y (din NR2.rxT)
I I
|
| altfel rdacd. x<y arunci
I
I
|
4aca x85=O atunci scrie x

,l

or.EatEa

ll

I
I
I

I
I
I

ll
ll
lrr
.r

lr-r

citegte x (din NRL.TxT)


I
altfol
I
| 6daci y35=O atunci scrie
llr
Irr citegte y (din NR2.TXT)

pit tirnp nu este sfarqit figier


| daci x*5=O atunci sclie x

llr

Iql cite$te x (din

NR1.

fXT executd

lSRl.

TxT

NR2.TXT executd

cate un spaliu.

Exemplu: pentru n=5 gi numerele 11111 33333 LzL23 sgg2t


33443 se va afiga: 1L111 11111 33333.
Rezolvare: O solulie se poate obline observand ci un numdr cu exact 5
are toate cifrele egale dacd este divizibil cu 11111. O implementare
pseudocod a soluliei este data de algoritmul pseudocod:

iel.n execute
I citegte x
I idace xt11111=0 atunci kk+l
,

lrl
l.I

6cri k

(Pascal)

voitt fct(.... )
{ x=x+1; y=Y-l;

brgln
xr-x+1i y: =y-1t
z

l.
b.
o.
tt.

z=rt+y i

-x+yi endi

(/)nsca4

procedure
Drocedure
Drocdure
Drocedure

\C/C++\

Scrieli un program pascal lc/c++ carc citegte de la tastaturd o


naturale nenuli n (n320), apoi un gir de n numere naturale, avand
exact 5 citre. Dintre cele n numere citite, programul determind pe acelea car
toate cifrele egale 9i le afigeazd pe ecran, in ordine crescetoare, separate

ppentru

(4p.)

lL,

ri

(C/Ct-+)

procadur fct (.. .. ),

lr

citegte
ke0

I lo subprogramul fcr definit aleturat, pa4ial. lnilial, variabile intregi a, b 9i c au


vrrlorile a-8, b=31 gi c=9, iar dupa apelul fct(a,b,c), valorile celor trei
vnrlabile sunl a-9, b=31 9i c=39, Care poate fi antetul subgrogramului f,ct?

lli

ilt

fct (var x,y, z!integer) i


fct (x integeri var y3 intgeriwar
fct (x, y, z integer) i
fct (var x: integer;Y: lintegerivar
3

z:

integer) ;

zI

integer) ,

[",

l1

l. voiat fct int


b. void fct (int
c. voial fct (int
d, void fct int
(

rcat tinp nu este sfArgit figie!


I
raac; yts=O atunci scrie y
I citegte y (din NR2.Txr).

4.

A 013

int &y, int &z)


x, int &y,,inE &z)
x, int y, int z)
&x, int y, int &z)
&x,

ri

Rtrspuns corect: d
Trei bdieli Alin, Bogdan 9i Ciprian, 9i trei fete Delia, Elena 9i Felicia, trebuie
sA formeie o echipi de 3 copii, care sd participe la un concurs Echipa trebuie
sd fie mixtd (adice si conlind cel pulin o fat5 9i cel pulin un bdiat). Ordinea
copiilor in echipe este importante deoarece aceasla va fi ordinea de intrare a
copiilor in concurs (de exemplu echipa Alin, Bogdan, Delia este diferite de
eciripa Bogdan, Alin, Delia). Cate echipe se pot forma, astfel incat din ele sd
facd partelimultan Alin gi Bogdan? (doar pentru C/C++): D4i exemple de o
echtpd corect formati din care sa nu faca parte nici Alih 9i nici Bogdan. (6p')
Rlspuns corect: 18 (=3 3 r ) solulii. Echipa formata din Delia, Elena, Ciprian'

It

il

1, 2,1, ,,r,r, o,r,r',1, ... construit astfel: prima


grupe este formate din numerul 1, a doua grupe este formatd din numerele 2 9i
1, iar grupa a k-a, este formate din numerele k, k-1, . . ., 1.
se consioera girul

Se cere se se citeasca de la tastaturd un numdr natural


afigeze pe

cei de

n (n<1000) 9i sa

se

al n-lea termen al girului dat.

"cran
a) Descrieli un algoritm de rezolvare a acestei probleme' eficient din punct de
vedere al iimputui Oe executare 9i al spafiului de memorie, explicand in ce
(4pJ
conste efi cienla acestuia.
(6p.)
descris.
b) ScrieJi programul Pa$caLlc/c++ corespunzator algoritmirlui
nu se
memorie
de
ca
spaliu
R'ezolviro: Pentru oblinerea unui algoritm eficient
vor
nu
se
pentru
timp
de
execulie
ca
un algoritm eficient
vor lolosi tablouri, iar

lil
tll
11il,

ill

genera termenii girului pAnd la cel de-al n-lea termen.

ldeea algoritmului consti in a determina cel mai mare numar natural k cu


proprietatea ci girul de numere conline k grupe complete de cate 1 numdr (1)'
2 numere (2,1), 3 numere (3,2,1),..., k numere (k'k-1,....1), iar grupa

il[

{l

k+r. 8a conlna ct oe-at n-t6a numar. Acea8ta ul ma grupa poate avea


k+1 numere, de unde rezute cd numdrul k este cel mai mare num6r
care satisface refatia:

tltj]] < n<ft+l)


22

lk+2)
k2

k'(k+1)<2 n<(k+1).(k+2)

, - (-rJffi
n'l
\ -t-'

-r+Jr+az

r-

)r...

rpol scrle ln figlerul t6xt Blc.our numerolo astfol oblinute, separate pfln cale
lln spatiu. Dacd un numdr din figierul Blc.rN nu confine nicio cifrd pare
(8p)
rronuld, acosta nu va mai aperea deloc ln figiorul de iegire.
Excmplu: dace figierul BAc. rN contine numerele 25 7 38 1030 {5127 0

t5 50 15,

+.k*2n<0

e { k2+3k-2(n-t)>o ,kN {

f -:*Jr*sr._

lll
./L

lmplementare

este k =

soluliei propuse

este descrisd in algoritmul pseudocod


urmdtor:

Razolvare:

1^
)

*=

fdacE n=1 atunci acrie

I al.tf el

k r( -l+sqlt 1+8'n) ) /
I nk
* (k+Ll 12
I
(n-m-

I ecrie
\I

k+1-

1)

O altd solulie se poate obline determinand valoarea lui k ce satisface


k.(k +1) <2.n <(k +l) (k +2\, ca in algoritmul pseudocod urmetor:
citegte n
1

laltfel
ke1
linp (k+1)*(k+2)<2*n execut5 kk+1
rcat
l.l

I r k* (k+1) /2
I scrie k+1- (n-n-l)
h
4.

2 a 12

50.

! Dlocedur P(var ! s longinti c3b!t!e)t

rcris in figierul de iegire.


O posibili implementare a acestei solulii in pseudocod este:

l-F]

citegte

va avea conlinutul:

(C/C++l z void P(lolg &!, ilt c)


b) Pentru eliminarea unei cifre dintr-un numdr se folosegte subprogramul r' Al
dollaa parametru al subprogramului va primi, pe rdnd, ca valoare, toate cifrele
lmpare determinand eliminarea succesive a tuturor cifrelor impare din numerul
prlmit prin parametrul n. Pentru fiecare numer din figier, se apeleaze acest
rubprogram. Fiecare numdr nenul rezultat in urma acestor transformeri este

Se considera subprogramul p care are doi parametri:


- n, prin intermediul ceruia primegte un numer natural de cel mult 9 cifre
- c, prin intermediul caruia primegte o cifrd.
Subprogramql va furniza tot prin intermediul parametrului n numirul oblinut
prin eliminarea tuturor apariliilor cifrei c. Dacd, dupe eliminare, numarul
mai conline nicio cifre sau contine doar cifre 0, rezultatul returnat va fi o.
a) Scrieli doar antetul subprogramului p.

b) Pe prima linie a figierului text BAc. rN se gesesc, separate prin c6tc


spaliu, mai multe numere naturale de cel mult 9 citre liecare. Scrieti
Pascal I c/c++ care citegte numerele din acest figier, utilizand apelurl
subprogramului p elimine toate cifrele impare din fiecare dintre acesF

sfargitul fiqierului
citegte n (din BAC.IM
c?L,9 '2 excut5 P(a,c)t
rpentru
l-l

rcat tinP nu este


I

fdac5 n=1 atunci scrie

Brc.our

a) (Pascal)

.
l_r*,{+s, _r+"/r+8, ln n
t_t@
=*'L , ' z 1 = ^"rr = L
2 rl
Astfet numerut de srupe comptere

atunci

daci tl > o atunci acri n,'


qt

' (in

B.AC.IN execute

BAc

'ow)

clcafEa
VARIANTA 014

rP rntru iX,n
cltattO c (din figior)
v tcl vlcl +1
I

1,
a.

2.

Utilizend metoda backtracking se genereazd permutArile cuvantulul


Dac5 primele trei solulii generate sunt: fino, fton, fnlo care estg csa
cineea solulie? .
b. fnoi
foin
c. foni
d.
lfon
Rispuns corect: a
Penhu functlile
9i f,2 definite alSturat, stabilili care este valoarol
f1(3). Dar f2 (4L3e2)?

f1

(Paseaf)

(C/C++)

function
f1(c: lntegr) : longint i
begin

if, c modl 2=1


then fl: =1

eLEe f13 =2
end,

long fl(int c)
t if (c%2-=1) rturn It
els rturn 2i
)

Long f,2(1ong n)
t if (n==0) rturn 0t
!, Ee

f,unction

return f,1(n%10) +f.2 (^/ LO, i

f2 (nr longlnts ) 3 Longint t


]
begln
if, n=0 thn f2:=O
lse f2: =f1(n rnod.
10)+f2 (n dtiv 10)
ndt
Respuns corect: f1( 3 ) =1; f2(41382)=s.
3.

Se citegte de la tastaturd un numdr natural

pseudocod este:

I
I

l1t

Flgierul text BAc.Txr conline mai multe numere naturale, cu cel mult 5 cifre
flocare, cate un numdr pe fiecare linie a figierului.
11
Scrieli un program Pa3cal lc/c+*, care citeste toate numerele din
2t
flgierul BAc.TxE gi le afigeaze pe ecran, cate 5 pe tiecare linie,
30
Beparate prin cate un spaliu, cu exceplia ultimei linii care poate
40
conline mai pulin de 5 numere. Programul va afiga apoi pe ecran,
51
po o linie separate, cate numere din figier au suma cifrelor pare.
16
L7
pe
ecran se vor afiga
Exemplu: dacd figierul are conlinutul aleturat,
10
jos:
numerele de mai
1
11 21 30 40 51

16 17 10

(1opJ

Rezolvare:
:

rcat timp nu este sfargit de fisier


I citegte x (din figierul BAc.TxE)
I scrie x

BAc.TxT execute

kk+1

(nS5oo) gi apoi n cilre

n cilre citite,

2 L 2 L 3 7 L 5 27 L0
2 2 2 2 3 3 3 3 3 57 7 t

a) Descrieli pe scurt un algoritm de rezolvare al problemei, eficient din punct


vedere al spatiului de memorie utilizat gi al timpului de executare,
ce constd eficienla metodei alese.
b) Scrieli programul pasc&l I c/c++ corespunzdtor algoritmului descris.
Rezolvare. O solulie eficiente din punct de vedere al memoriei gi al timpulul
executare pentru obtinerea cifrelor ce apar in figier in ordine crescatoaro,
poate construi folosind un vector v cu l-O componenle, ce va reline
de aparilie a flec6rei cifre intdlnite in figier. La citirea unei cifre c din figier v !
va cregte. La final, fiecare cifrd c, ce a aperut in figier, se afigeaze de vlcl

in

c0,9 executtr
il,vlcl execut5 scrie c,' '
fpntru
tf

Tltantru

k0r nr0

prin spalii. Se cere sd se afigeze pe ecran cele

Un algoritm scris

q|

Un algoritm scris in pseudocod este

crescatoare, separate prin cate un spaliu.


Exemplu: pentrun=19 gi cifrele 3 3 o 9

2 3 sevaafigapeecrano 0 1 M

rdaci k=O atunci keot 3a1t la linie

\t

s0

rcaf tsiry) x>0 etrcuti

noua

noue

qrEatEa n

VARIANTA 015

1.

Cate numere cu exact 2 citre pot fi construite


folosind doar cifre pare

a. L2
Rispuns corcct: b

b.

c-

x6

d.

20

25

Cele 16 numere care se oot construi sunt: 20,


24, 26, 2g, 40, 42, 46, 48, 6l(-,
68, 80, 82, 84, 86.
2.

Pentru functjire
apelul f(5)?

gi g definite mai jos, stabirili care este rezurtatur

(pascat

functid

g (x:

(C/C++)

ldgilrt) longint,
s

besin
if x>9 thsr
g:=n diw 10 + :r 1p6

long g(long
{

if

rr)

(x>9)

returm (x/10 + :*10)


elge
retu:an x

19

1se

g::rlr
ndt

bSin
if c<1 thqr

long f(int c)

{ if

lxplicand in ce conste eficienla

(c+f (c-L)

),

f,:=g(c+f(c-1).)
sralt
Respuns corect : f (G) =4

f(6)=s(5+f(s) )
f(5)=s(5+f(4))
f (4) =s (4+f (3) )
f(3)=s(3+f(2) )

3.

f, (1) =s(1+f (o) )


=s(1+1) =s(
(2) =E (41=4
fMl=0::

f(3)=s(7)=7
f(4)=s(11)=i
f (5)=g (7 ) =7

f
=g(2+f ( 1) )
f (1) =s ( l+f (0) )
f (5) =s(13) =4
a"t]ut|Jl glgnrur pascal. I c,/c++ care citegte de la tastaturd
un numdr
(2 )

l1

(r-r<32000) gi afigeazd pe ecran numdrul


natural din intervalut inchis
cei mai
divizori. Daci existd mai mulfe numere
:119
."1".
_mutti
propnetate
se va afi$a cel mai mic dintre ele.

Exemplu: pentru tr=20 se va afiga valoarea 12


- -- --

divizori, iar 12 este cel mai mic ointie eiej.

(12,
x8 e'
si 20
\--' rs

Rezolvare: Cdutim numdrul cerut doar printre numerele pare


din interval.
Un
algoritm scris in pseudocod este:

58

E g

90

acestuia.

(4pJ

b) Scrieli programul pescal lc/c++ corespunzetor algoritmului descris. (6p)

else

return

r) Descrieli in limbaj natural un algoritm eficient din punct de vedere al spaliului


db memorie gi al timpului de executare, pentru rezolvarea acestei probleme,

1sa1;

return 1t

f:=1
lse

lnruficierte.
lxemplu: dace figierul BAc. r![ conline valoriles 12
ll se va afi9a 17 31.

functicr f (c: ilteger) : ldtgint,

ln fisierul text BAc.rN se g5sesc, pe o singuri linie, separate prin cate un spaliu,
mal multe numere naturale de cel mult 6 ciire fiecare. Se cere si se determine 9i
rd se afiSeze pe ecran, separate printr-un spaliu, ultimele douA numere impare
(nu neaperat distincte) din figierul BAc. rN. Daca in fi9ier se gdsegte un singur
numAr impar sau niciun numer impar se va scrie pe ecran mesajul l0unere

Razolvare: Pentru a ob,tine un algoritm eficient ca spaliu de memorie se vor


lolosi doar variabile simile, iar pentru a obline un algoritm eficient ca timp de
txgcutare se vor determina ullimele numere impare printr'o singurA parcurgere,
chlar de la citire. Variabilele n1 9i n2, inilializate cu 0, vor memora ultimul $i
panultimul numdr impar.
Un algoritm scris in pseudocod este:

nl 0 n20
At tiry nu este sfalfit de figier BAC.IN execute
citegte x (din figier EAC.IN)
rdaci xg2*O atunci n2n1t n1:r

l.

-l

ace n1*n2 = O atunci scrie.'Numere insuficiente'

rtr

altfI scrie n,2,' ',

o'7'

b^rrIt,rs,

VARIANTA 016

wqwe rrtre, Y, ..-rE

39628
79

1,

Funcfia F are definitia aldturat6. C valoare ars


(Pascall

\rctn (n.0)
tf
or (n=1) lhen
Irrl

r.tuan

ad,

b,

Rispuns corct: d

2.

1,

glsa

Fr 12 *tr (n-1) +2rF (n-2

a'l

Descrletl succlnt, tn llmbaj natural, strategia de rezolvare 9i justificati


(4pJ
sflclenta aloorltmului ales.
(6pJ
ales,
algoritmului
corespunzetor
piogramul
Pascal
b) Scrl;ti
lc/c++

i)

(C/C+ +)

lnt F(lnr n)
ttf (ni-o I Inrrl)

firnctLon
(nr lntegr) r Lnt6gr,

elr

se vF tlpdrl 99877 66322.

r(3)?

2)t

)
12

return

iuolvare:
Se citesc pe rand numerele din figier 9i se contorizeaze in vectorul fr
linovrngll numerul de aparilii ale fiecdrei cifre din numlrul citit' se parcJrg

ll
2

*F

(n-1) +2*r

c'6

d.

10

clfrole d la 9 la o gi fiecare cifra k se afigeaze pe ecran de f,rlkl ori.


I este ticient din punct de vedere al timpului de executare pentru ce se
o singura datd figierul.

Un algoritm genereazd in ordine crescetoare toate numerele de n

3, s 9i 7. Dac6 pentru n=5,

folosind doar cifrele

sunt 33333, 33335, 33337, 33353, 33355,


solulii generate, in ordinea generdrii.
Rispuns corect 77773,7777 5,77777
3.

primele 5 solutii gener!


precizali care sunt ultimelo

Scrieli definilia complete a subprogramului nulEiDlu care are 3 parametrl:


prin car'e prime$te un tablou unidimensional cu maximum 1Oo de numt
naturale mal mici decat 1000, n, numerul de elemente ale tabloului gi k,
numdr natural (k<9). Subprogramul returneaz6 numdrul de elemente

tablou care sunt multipli ai numerului

gi au ultima cifre egald

Exemplu:. dacd n=5, a=(2,27?,63,g3,93,L231, iar


returna valoarea 4.

(10

subprogramul

(CiC++)

tv?e
vct=arrayl1, . 100I of, inlegr,
function rmllliptu (a vect,
n,k:byte):b1&e;
var i, ct:byt,

int nultiDlu(int a , int


t

begin

ct:=ct+1i

k.

#incluate<f strearn.h>

int i,k,fr[101t

xi
ifstrean f ( ,,numere. lxt
voitl nain( )
Long

in! k)

tor k3=9 tlottrnto 0


lor i!=1 to frlkl
oloee (f );

do
alo

anct (a

Ii]

[x%101 ++,
LO

for (i=1; i<=fr [k] ; i++)


cout< <ki

ltrite(k),

and.

int ct=o t
for(int i=0; i<n; i++ )
if (a Ii] %k==0&&a Iil %10==k)
)

mult'ipLu: =cti

end;
4.

fr

)whiLe (x I =0 ) t
for (k=9, k>=0, k-- )

return cti
r

x=zr/

cE++i

mod 1o=k)then

")

while (f,>>x)
ato

and,

Rezolvare:
(Pas6a'

c!: =0;
f,or ir=1 to n do
if, (a [iI mod k=0)

tjg,

cu

(C/C++l

(Pascal)

l, k: integer;
fr:arraylo. . 9] of integert
f r t.exti
lrgln
llrlglll ( f , 'nu.tller. lxt' ) i
r.rt (f ) t
vhll not eof(f) ato begin
r.ad ( f, rr ) i
raDat
' Inc(f![x noal 10]),
xr=x div 10;
until:r=0;

ln figierul numre.txt sunt memorate maximum 1OOOO de numere


cu cel mult 9 cifre fiecare. Fiecare linie a figierului conline cate un numer. {
cere afigarea pe ecran, in ordine descrescatoare, a tuturor cifrelor care apar
din figier Alegeli un algoritm de rezolvare eficient din punct
.:llerele,
vedere al timpului de executare.

aFl

f.cLosO,

VARIANTA 017

1.

Subprogramul

t (t2345) t?

are definitia aldturat5. Ce se va afi$a

(paxatt
Drocdure f (trllongin!),
bgin
t if !>9 then
begin
lrrite(rr div 100);
f (n div 10)

pe prlma llnle esto memorat un numdr natural n


(n<x0000), iar pe linia urmetoare un gir de n numere naturale distincte doud
0Ato doue, separate prin cate un spaliu, cu maximum 4 cifre fipcare. Se cere
nfigarea pe ecran a poziliei pe care s-ar gdsi primul element din girul aflat pe
llnia a doua a figierului, in cazul in care girul ar fi ordonat crescetor.

L23L210
Rispuns corct: a

b.

urma

(C/C++)

n. Alegeli un
nlgoritm de rezolvare eficrent din punct de vedere al memoriei utilizate gi al
Numerolarea poziliilor elementelor in cadrul girului este de la 1 la
tlmpului de executare.
Exemplu: dacd figierulhunere.

{cout<<n719g;',-

printf(*%d-,n/XOO).
f (n/10 ) t

L23X2r

267 L3 45 52A 7 79
afiga 5, deoarece primul element din girul inilial, 257, s-ar gdsi pe

pozilia a cincea in girul ordonat crescetor

c,

r) Descrieli succint, in limbaj natural, strategia de rezolvare gilustifica{i eficien{a

L234L23T2L

d.

Un algciritm genereaze in ordine descrescetoare toate


numerele de
avand cifrete in ordine srr;ct crescJroare.
P::1"-olll*.:"
Sir"a
4 67 Is, 4s7 Is, o, u r r, n u r'r r,
"a
:::,ili,,"n:::j""r"^
sunt ultimele 3 solulii
^::ll,r_r_1:,
generate, in ordinea genererii.
Rispuns corect L2g47. L2346, L2345

12

inlerval

!"i:11"1:1'tl1
n,
care primegtd un tablou unidimensional
.prin

care are 2 parametrt

.u,,irm

io-o ol
"uOe etemente oin
numdrul
unidimensional. Subprogramul returneazd numdrul
de
oi"
unidimensionat care apa4in intervatutui incrrii oeGimiilt "f"r""i"
i" piirrr gi

looo gi

ultimul element al tabloutrii

Exemplu: dacd tabloul are 6 elemente gi este de


fotma (!:2,27,6,9,9,
subprogramulva returna valoarea 5.
na
Rezolvare:
(pascat)

(C/C++\

Etap

vect=arrayl1. .100t of inleger'


FuDctio!|r

interval- (a: vect,


iltger) ! integeri
var i, rrr itrtger,
n:

for i: =1 to n. do
if (a [iI >=a t1I ) andl (a [i] <=a [n]
or(a Ill >=alnl )antt(atiI<=aI1I
thn inc (nr) ,
interval : =nr

int interval (int a[],inf


{in! nr=0;
for(int i=1; j <=!r; iaa;
if (a til >=a I1I && alil<=a
ll atil >=alnl && alil<=atl
!r++ i

bgin
ar: =0 i

rturn nri
)
)
)

ead;

alF.)

(7 13 4s 79 257

ales.

algoritmului
b) Scrieli programul

tascal lc/c++

corespunzetor algoritmului

62a).

ales.

(4p.)

(6pJ

iLl"ji

naturale mai .mici decat

contine:

bo va

2.

:"mpletd a subprogramutui

tx!

eEd

a,

in

void f (long n)
{if (n>9i'

endt

3.

txt

ln figierul num.r..

citegte primul numer din figier in variabila tr, iar apoi se citesc pe rand celelalte
din fi$ier in variabila x gi se numare cate dintre valorile memorate in
sunt
mlci strict decat k.
l primului numdr in $irul ordonat va fi datd de numerul de numere mai mici
el (poz), mdrit cu o unitate.
este eficient din punct de vedere al spaliului de memorie, deoarece nu

to

variabile structurate (tablouri).


este eficient din punct de vedere al timpului de executare pentru ca
o singurd dati figierul.

'

(Pascaf)

k, poz,

x: integri f ! textt

lgn ( f, 'numere. txt' ) t reset (f ) ,


(f ,kt ; gozr=O t
e no! eof ( f,) alo

brcin

f, x) ;
lf x<k then ilrc
raad

(C/C+-;

#inc1uale<fstrean. h>
int k,poz, xt

if,Etrean f ( ,'numere. txt', ) i


voitl nain ( )
t
f,>>k;

while ( f>>x) t
if, (:r<k)

(poz ) t

rnd;

Poz++ t )

Iteln (poz+1) ;

cou!<<poz+1i
f. close ( ) t

lose (f ) t

ln

VARIANTA 018

glerul num..r..

!x!

estg memoral un glr do maxlmum 10OOO numare


I cifre fiscare, separate prin
(;Alo un spaliu. Pentru un numer k citit do la tastature, se cere afiqarea pe
F0r0n a poziliei pe care se va gisi acesta irl Sirul de numere din figier, dacd
llrul ar fi ordonat descresc5tor, sau mesajul nu existA, dacd numerul k nu
rd ofld printre numerele din figier. Alegeli un algoritm eficient de rezolvare din
Eturalo, distlncte doud cato doud, cu maxlmum

1.

Funclia '

f (L2345

are definifla urmetoare. Ce se va afiga

nt?

in

urma

(Pascat)

(C/C++)

Drocedure f (n: longintt i ! integer),

void. f(Long n, int


(if (i<d%xo) ,

beg5.n

if i<n mod 10 then

{cout<<n%l0,

bgin

lnrintr

writ (n nodl 10) t


. f (n div 10,i+1)

..24,,,

f (a/]-0, i+!) ;

a, 5432L

b.

543

c.

2.

54

Un algoritm genereazd, in ordine lexicografice. toate girurile alcatuite


n.cifre binare (O gi 1). 9tiind cA pentru n=5, primele 4 solutii
00000, 00001, 00 010, 00011, precizati care sunt ultimele 3 solutii

Scrieli definilia completd a subprogramuluj counr care are 2 parametri,


t
prin care primegte un tablou unidimensional cu maximum 100
de numere

gi numerul de elemente din tablou. Subprogramul returneaza num


elemente din tabloul a care sunt mai mari iau cel pulin elate cu

Ll, 7.5), subprogramul va returna valoarea 4


elementelor este
medie).

(LZ,

.5,

"gut"

(Pagcat)

tylre vector=array[1. .].OOl of


real;
functlon count (a!vecEori
n: intgef) j integert
var L,nr:integeri s ! real,
begin
nr:=0iEss0t
for i:=1 to n do
s:=s+aIi];
for i:=1 !o n do
if, a [il >=s/n then
inc (nr) t

count : =nri
end,

(C/C++)

int count (float all,


{int nr=0, i;
float s=0,
for ( i=1, l<=n. i++ )

E=s+a I lI t
for ( i=!; i1=1; 111;
if (a Iil > =s /n)
nr++,

return nrt
)

iark

de

cltosc pe rand numerele din figier in variabila x Si se contorizeazd in poz cdle


valorile memorate in x sunt mai mari strict decat k.
numarului k in girul ordonat! daca acesta existd in gir, va fi datd de numirul
in poz, marit cu o unitate.
este eficient din punct de vedere al spaliului de memorie, deoarece nu
variabile structurate (tablouri).
este eficient din punct de vedere al timpului de executare pentru ca se
o singurd dati figierul.

(Pasca,
k. Doz, x

(C/C++t

3l,ntgefi

, gaait:booleani

"u,

Rezolvare:

dacd igierul nunere.

79,

int i,k,poz,x,gasit;
ifstream f

snljlnre.

txt" ) t

6.

(deoarecimedia

2.5 $i numerele subliniate sunt cel pulin

rezolvare 9i justifica!i
(4p.)
(6pJ
b) Scrieli programul pascaL lc,/c+.r corespunzetor algoritmului ales.

d.

aritmetice a tuturor elementelor din tablou.


Exemplu: dacd tabloul are E elemente Si este de fotma

a2

Descrieli succint, in limbaj natural, strategia


tflclonla algoritmului ales.

in ordinea obtinerii lor.


Rispuns corect 1 1101, 1111 0, 11111
3.

!:rt

contine numerele 2G 2 5 30 13 45
are valoarea 13, sevaafiga 6 deoarece 13 s-ar gasi pe
pozllia a gasea in girul ordonat descrescetor (79 62 45 30 26 13 7s2).

lrrmplu:

t)

end
endt

Respuns corct: b

punct de vedere al memoriei utilizate gi al timpului de executare.

lgm(f, 'numere.txt, ) i
(f ) t
(k);
r r0; gaEit: =falst

Lo not eof (f) d.o


hctn
r.ad(f,x),
l! x>k then inc (Doz ) ;
ll x=k then gasit =true

voial nain( )
t
cin>>k;
while ( f>>x)
(

if(x>k) Doz++;
lf (x==k) gaalt=1t
]

if (sasit

lndl

grrit then

Lae

wriCeln (Doz+1) ,

wrileln(.nu exiEta, ) i
(f );

COrr!<<Doz+1i

eout<<"nu xigta" i
Ot

f. clos6
)

VAFIANTA OlO

l.

nrl.txt oste memoratd pe prhnn llnl6 o valore naturale n do col


cifre, iar pe linia urmetoare sunt msmorate n numoro nalurale, cu
finxlmum 4 cifre fiocare, ordonato slrict cresc6tor gi separate prin cete un
r|lflllu. ln figierul nr2.bxr este memoratd pe prima linie o valoare naturalA n
llslorul

l|rll

Funclia F are definilia urmetoare. Ce valoare are F ( 18 ) ?


(Pascal)
(C/C+ t)

function

F (x: iatger) : integeri


begiu
if x<=1 tb.en F: =x
elEe F:=F (x-2 ) +x

endt

inr P(inr x)(


else

x+F

(x-

a, 90
b. L?L
c. 91
d.
Riispuns corcct a
Un algoritm genereaza in ordine crescdtoare, toate numerele de n

2.

ullllzate 9i al timpului de execulare.

cu cifre distincte, care nu au doue cifre pare aleturate. Dacd


primele 5 solulii generate sunt 1.032s, 10322, t0329, 10345,

precizati care sunt urmdtoarele 3 solulii generate, in ordinea


obtinerii lor.
Respuns coiect rob4g, Lo3sz, Lo3s4

3.

Subprogramul aranjare are 2 parameli: a prin, care primegte


un
unidimensional cu maximum 100 de numere reale gi n, numdrul
de
din tablou. Subprogramul rcararyeaze elementele tabloului
astfel incat toate valorile negative sd se afle- pe primele pozilii, iar
pozitive in continuarea celor negative.. O-rdinea in cadrul sec;enJei
de
pozitive, respectiv in cadrul secventpi de elemente negative,'poate
fi
Tabloul modificat va li furnizat tot prin intermediul param;trului a.
Exemplu: dacd tabloul are 5 elemente Si este de forma (L2, _7 .s,
6.!

-8,

7.5),dupiapel,acestaarputeafi: (-7

-5, -3, -a, L2, 6.5,

Scrieli definitia compbte a subprogramului aranjare.


Rezolvare: O rezolvare posibile este o sortare crescdtoare a vectorului.
(Pascal)

tytte vect=array[1.

Procedure aranjare

100]
reaL

of
i

(var a:vect, [! inleger) i


var i, j : integeri a!x: real i

begin

for i:=1 to n'-l do


for j:=i+l to n do
if a lil >a tjI thdn
bagin

aux!=a[i],
atil:=aljl t
alil:=aux;

etrd.i

end;

(C C+-J

void. aranjare (float at1,

{int i, j;
float auxt
for (i!Xi i<n- i++ )
for(j=i+t;j<=4;j1a;
if (a IiI >a Ii I )
{au:<=a Iiatil=atjt;
a li l =au'<,.
l
)

col mult 8 cifre, iar pe linia urmetoare sunt memorate m numere naturale, cu
tnxlmum 4 cifre fiecare, ordonate strict crescetor gi separate prin cate un
tpnliu. Se cere afigarea pe ecran, separate prin cate un spaliu, in ordine strict
(lro8cdtoare, a tuturor numerelor aflate pe a doua linie in cel pulin unul dintre
0610 doua figiere. in cazul in care un num5r apare in ambele figiere, el va fi
rllqat o singure datd.
Alogefi un algoritm de rezolvarc eficient din punct de vedere al memoriei
116

if (x<=1)

rturn

lxcmplu: pentru urmdtoarele figiere:


nr1. tx!

I
l6I91"2

t0 va afiga

nr2

txt

23567a

2357 913
9

L2 L3.

t) Descrieli succint, in limbaj natural, strategia de rezolvare gijustificati eficienta


rlgoritmului ales.
(4pJ
pascat lc,/c+{- corespunzetor algoritmului ales.
(6p)
.b) Scrieli programul
numerele sunt ordonate strict crescator in fiecare dintre figiere, putem
principiul interclasirii, parcurgAnd concomitent numerele din cele 2 figiere, cat
nU s-a terminat niciun figier, apoi parcurgand figierul remas neterminat.
este eficient din punct de vedere al spatiului de memorie, deoarece nu

variabile structurate (tablouri).

tPascak

nL,n2,a.,y, i,, j. integeri


lL , f2. EexL,
grr ( f1, rnrl.txt'),
9m(f2,'!r2.txt');
(f1) r reset(f2).
( f1, al) t
(f2,r2l ;
(f1,x);i:=1;
(f2,yl t j z=Li
Le (i<=n1) anal (j<=n2) do
ll x<y lhen begin
write(x,' t ) rread(fl",x) t

i.nc(i)

alse

enal

lf y<x then begin


lrrile (y, ' ,) rread.(f2,y),
inc(j ) r enal
elae
begin write( x,'

'),

lClC++\

#include< fstream. h>


j-tE n'L,n2,x,y, i, j;
ifEtrean f X (,,nr1. txt,, ) t
if strean f2 (,,'tiz .i-t<t,', t

void nain
{

()

f1>>n1r f2>>'l,2,
L=L; i=L;
f!>>t<i f2>>yt

whiLe(i<=n1 && j <=n2 )

if (x<y)
{cout<<x<<r' ;f1>>xii++t}
elEe if (y<x)
(eouc<<y<< ' ' t f2>>y, j++ r't
. elae
{cout<<x<< " i fL>>xi f2>>y t
i++;j+i;)

while.( i<=n1)

rarcr

rrr xr r rarq ( rr, y,,

Inc(t)rj.nc(J),

6ndt

while i<=n1
begin

do

write(x, ' ') rraal(f,L,x),


inc(i); endt
while j <=12 6e
begin
' write (y, , ,)
rreaal(f,2,y),
inc(J), entt
close ( f,1) r cloge(f2),

toouE<<x<<

"

whj-1e(J<.n2)
{cout<<y<< f

!1>>xr 1++,

A 020

l'unclia

f2>>yr J++,I

"
f,l..cLose(), f2.c!.oB(),

areF(5)?

are defini{ia urmetoare. Ce valoare

(Pascal

(C/C++)

lunctlon F(xrlnteger) I integer;


brgln
lf x<>0 then F:= x+F(x-l)

int F(int x)
{if (xf r0) return x+F(x-1) i
1s

return xi)

alBe F!=x

and,

r.5

(4pJ

b.

c.

10

d.6

15

corect: c
Un algoritm genereaze in ordine descresc5toare, toate numerele de n cilre
(n<s), cu cifrele in ordine strict crescetoare, care nu au doue cifre pare
aldturate. Daca pentru n=5, primele 5 solulii generate sunt 55789,45789,
15679, 45675,36789, precizali care sunt urmdtoarele 3 solulii generate, in
ordinea obtinerli lor.
(6pJ
coroct 35789, 35 67 9, 3567 a
S0bprogramul nule are 2 parametri: a, prin care primegte un tablou
unldimensional cu maximum 100 de.numere intregi, cu cel mult 4 cifre fiecare
gl n, numerul de elemente din tablou. Subprogramul rcatanjeaze elementele
tabloului unidimensional astfel incat toate valorile nule se se afle la sfargitul
tabloului. Ordinea in cadrul gecvenlei de elemente nenule poate fi oricare.
Tabloul moditicat este lurnizat tot prin parametrul a.
(6p.)
Exemplu: dac6 n=6, a= ( x.2,0,0, -3, -8,0), dupd apel, acesta ar putea fi:

nd.

a.(L2, -3, -8,0,0,0).


(Pasca,

Scrieli definilia completd a subprogramului


(C/C++)

11..1001of integerl'
nul (a:vector, n! tnteger) i

l, j : integef,

ll

Iil

=0

{int i,j; nr=0;


for ( i=0 r i<=n; l++ )
lf(a(il ==0) nr++;
for(i=1ti<n && nf>o, i++)
tf(alil==0)
(

then inc (nr) ;

til

begin

i--; nr--;

li

alnl=0t

=0

f,or j:=i to n-1 do


atjl :=aIj+1];
alnl :=0t nr l =nr-1i

for(j=irj<n'j++)
aIJ]=a.tj+11;

r1t
lrlLe i<n do
r

lf

nute.

void nul(int all, int n)

l: =1 to ndo
a

il

)
)

end,

tl,
I

il

.lsa i++ i
,

nrl.txt

este memorate pe prima linie o valoare naturald n de cel


mult 8 cifre, iar pe linia urmatoare sunt memorate n numere naturale, cu
maximum 4 cilre fiecare, ordonale strict crescdtor gi separate prin cete un
spa{iu. ln figierul nr2.rxt. este memoratd pe prima linie o valoare naturald n

ln figierul

I
il

dg cl mull 0 clfre, iar pe linia urmdtoare sunt memorato m numero

maximum 4 cifre fiecare, ordonate strict crscetor gi separate prin


spaliu. Se cere afigarea pe ecran, separate prin cAte un spa{iu, in ordlna
crescdtoare, a tuturor numerelor aflate pe a doua linie atdt in primul cAt ;l
doilea figier.

Alegeli un algoritm de rezolvare eficient din punct de vedere al


utilizate gi al timpului de executare.
Exemplu: pentru urmitoarele fi giere:

nr1.

txt

nr2

trrt

23579It

358912r

afiga 3 9.
in
a) Descrieli succint, limbaj natural, strategia d.e rezolvare
se va

efi

gi

cien[a algoritmului ales.

pascal lc./c++ corespunzator algoritmului ales.


Rezolvare: a) Deoarece numerele sunt ordonate strict crescdtor in fiecarQ
fiqiere, putem folosi principiul interclasarii, parcurgand concomitent
b) Scrieli programul

cele 2 figiere, cat timp nu s-a terminat niciun figier.


Algoritmul este eficient din punct de vedere al spaliului de memorie,
utilizeaza variabile structurate (tablouri).

(1000<nS10000). Care dintre acestea, comparativ


olgoritm care se incheie dupe un numar minim de

pagi?

nortarea elementelor multimii M


gonorarea elementelor produsului cartezian M x
dsterminarea elementului minim al multimii M
gonerarea tuturor permutdrilor mullimii M

c. (necesite o singure parcurgere a mullimii

(Paseall

var n1,n2,x,y, i, j : integer;


f1, f2: textt
begin
assiga(f 1,' nrl.txt'

rn!2.txt') i
(f1)
reset
2 reset- (f.21 i

aEaigm ( f,z,

reaalln ( f1, n1) t


readln(f2,n2) t

readt(fl,x);i:=1;
readl(f2,y);j:=1;
while i<=nl and j<=n2 do
if x<y then begin
readl(f1,x);
inc (i); endl

lCiC++)

#include<fstream. h>
i-Iiic IrL, ttz , rt,y , L, j t
ifstrean f,1(,,nr1. txt" ) t
ifstran f2( n\2.ExE" ) ,

void
t

inc(i)rinc(j),

end;

clos(f1); close(f2);
end.

f1>>x; i++; )
elae if (y<x)
lf.2>>y2 j++ ; I

else
(cout<<x<<'

read ( f2, y) t
inc (i ); end

i++t j++; )

',

f1>>xt

f,L.c1ose( ), f2.close( ) t
)

M)

lPasca,

lf n=0 then f :=0


rlrr f:=n nodt 2+f(n aliv

(6p.)
tCiC++)

int f(int n)
t if (n==0) retura
eIEe return

2)

n%2+f

0t

(trlzl t

rr=16 (sau orice numar de forma 2h, k natural)


Scrieli delinilia complete a unui subprogram ijrin
care primegte prin
singurul sau parametru, n, un numdr nalural din intervalul 12,300001 gi
returneaze diferenla minime p2-D1 in care pl gi D2 sunt numere prime gi
p1<n<p2. Exemplu: dace n=20 atunci ijrirn(n) =4, valoare oblinute pentru
( 1OO )

=3

p1=19 9i p2=23.

(10p.)

Antetul funcliei:

. if y<x then begin

'

definit mai jos.

f (n! inleger) : integert

()

f,l>>n1; f2>>n2;
i=1; i=1;
f!>>xi f2>>yi
ruhile(i<=n1 && j <=n2
if (x<y)

elae

elge
begin write( x,' ');
read(f1,x) i read(f2,vl ,

main

f,

Se considerd subprogramul

(4pJ

. Ce valoare are"f ( 100 ) ?


. Scrieli o valoare pentru :r astfel incdt r (x) =t .

b)

xr, ..., x"}


cu celelalte, admite un

Urmdtoarele probleme se refere la mullimea de numere reale M={xl,

(Pasca,

function ijrim(n: integer) !integeri

(C/C++)

Lnx

ijrim int
(

n) t

scrierea corpului funcliei este foarte util se declarem o funclie ajutetoare Drirn
parametru
u
de tip iltteger:'int care se relurneze valoarea 0 dace parametrul
numer neprini gi valoarea
dacd parametrul este numer prim. Cu aceasta
declarate, corpul funcliei
ar putea fi urmetorul:

ijrim

p1n; cdt tittrI) prin(D1)=0 p1eD1-1


D2n, cat tirE) prin(p2)=O 92(92+L
returneazi p2-p1

Figierul text BAc.TxT conline pe prima linie doud numere naturale

n gi k

separate de un spaliu (33<10000, 2<k<^/2\, iar pe a doua linie un $ir de n


numere naturale xr, xz, ..., xn separate prin cate un spaliu, fiecare numer din
acest gir avand cel mult patru cifre,
a) Scrieli un program pa$caL/c/c++ care citegte numerele din figier gi
determinS, utilizand o metode eficient5 din punct de vedere al timpului de
nurnerelOf
pe ecran-

xr, xi*r,

(1<i3-k+1)

pentru care media aritmeticd a


..., xi.k-1 esle maxime. Programul afigeaze valoarea lui

executare, cel mai mic indice

Extmplu: panku figldrul alaturat 80 aflgoazd 2, dsoarece


media maximd se obllne pentru

9, {, 7.

(6pJ

tB

lz s r

ts

b) Explicali succint, in limbaj natural, metoda utilizate la punctul a,


(4PJ
eficienla
Rezolvare: a) deschide
"BAc. TxT"

acesteia.
fitierul

citegte n,k din figier


s0
fDentru

'I I
Ll

ie1,k executi
citegte din fiFier alil
ss+alil

emaxs; irnaxl
TDentru ik+1, n executa

I citegte a[il din figier


I ss-a ti-kl +a Iil
Iqtdaci s>snax atunci smax=s; imax=i-k+1
scrie inax '

A O22

lrr tlmpul procosului de generaro a permut5rilor mullimii {1i2,...,n} prin


nroloda backtracking, in tabloul unidimensional x este plasat un element nr

(6pJ

(1(h<n), Acesta este considerat valid dacd este indeplinita condilia:


b. xro*xr-r
ll*f (xr, xt, -., xr-r]
rd

d.

txy xa, -., x')

x1*xs-1 $i x;.;ex;11

a. (elementul x* trebuie se fie diferit de toate elementele aflate pe pozitii


Considerem urmdtorul subprogram recursiv. Ce se va afiga

r(,c,)t'l

in urma apelului:
(4p.)

(Pascal)

f (c: char) t

o>'A' lhen
t,.(c) t

f,

(preti (c ) ) t

c>,l.' then f (pred. (c ) )

{C/C++1

void. f(char c)
{ if, (c>,A' ) f(c-1};

cout<<ci I printf ("%c", c) t


if (c>'A' I f (C-1) t

b)

Media aritmetice a k numere este maxime daca suma lor este


algoritm corect, dar cu un numdr de pagi mare (complexitate (o(n*k) ) ar
urmetorul: se relin toate numerele din figier intr-un vector a, apoi se determind
secventele de k numere consecutive 9i pentru fiecare dintre acestea se
suma elementelor ce o compun, relinandu-se suma maximi a unei
pozilia unde a aparut.

figierul "BAC. TxT"


citegte n,k din figier
Dntru i1,n execute citette atil din fiFier
deschide
enax0

il, n-k+1 executd


I pentru ji,t+k-1 executi sg+alil
ILl aaef s>smax atunci Emax=s; imax=i
fDontru
I s0

Ec?i lmlx

Problema se poate rezolva cu un algoritm cu complexitatea o(n): se pleaca


observalia ca avand calculatata suma a k termeni succesivi ar+ar.r+ ". .
atunci suma urmetoarei secvenle poate fi calculate conform formulei:
!r+l.!Eif2*.. . +ai+h = (a1+a1*1+., . +ar+t-r) - at + at+lr

a) Scrieli definilia completi a unui subprogram, nz, cu un parametru intreg n


(o<n<32ooo), ce returneaze numerul zerourilor de la sfAr$itul numarului n l. (6p')
b) Scrieli programul p&scal. lc,/c+a care citegte de la tastalule un numer
natural k (o<k<3) 9i determina, folosind apeluri ale subprogramului nz, cel mai
mic numer natural n pentru care nl are cel pulin lr zerouri la sfersit. Numerul
determinat se afigeaze pe ecran.
a) Antetul functiei: (PascaD function nz (n:

{?C+*) int nz(int n)t

(4p.)

integer) : inleger;

de cifre o cu care se termine n! este egal cu cel mai mic dintre exponentul
Qi al lui 5 din descompunerea in factori primi a lui nl. Cum este evident cd
lui 5 esle mai mic, il calculdm doar acesta. El este egal cu suma
de multipli pe care ii au in intervalul IL,nl puterile lui 5 mai mici decat
000. Cu aceste remarci, corpul funcliei poate fi urmetorul:

r.rurneaze Inl 5l + [n/2sl


ditegce
xo

+t

rL/L251+tr\/ 6251+ [n/3125]

t<

cat timp nz(x)(k executS xx+1

+ [n

/L56251

4.

Scrioli programul pnncnl

lc/cr'r care cite$te din ll$ierul loxt BAc.TxT


(1<n<10000) 9i un gir de n perochi de numere introgl I
(1<a<bf32000), fiecare pereche fiind scrisa pe o linie noud a figierulul,
spaliu intre cele doui numere. Programul afiEeazd pe ecran pentru
pereche a,b cel mai mare numdr natural din intervalul inchis ta,blcan
o putere a lui 2 sau numerul 0 dacd nu existd nicio putere a lui 2 in
intreg

A 023

respectiv.

Numerele afigate pe ecran se scriu in linie, separate prin cate un


Un numer p este putere a lui 2 dacd existd un numer natural k astfol

r:llrele ordonate strict crescetor, este echivalent


rubmul,timilor unei mullimi cu 5 elemente
prcdusului cartezian a unor multimi de cifre

nronjamentelor de 9 elemente luate cate 5


rx)mbinerilor de 9 elemente luate cate 5

:d.

P=2k '

Exemplu: dace figierul BAc.TxT contine numerele


3

269

l'ontru subprogramul sutla definit in continuare, scrieti valoarea expresiei


(4P)
rurna ( s,4).
(C/C++)

(Pasca,

10 20'
L9 25
se va afiga:

5 cifre nenule, fiecare avand


cu algoritmul de generare a: (6p.)

nlgoritmul de generare a tuturor numerelor de

lon
64 16

6urla (a, b:

0.

Rezolvare:

figierul "BAC. TXT"


citeste n din fiFier
pentrrr i1, n execute
cite$te a,b din figier
deschide

lf (a=0)antl(b=0)then
ll ro if a=0 then

aura !=0

Euna (int a,int b)

if(a==0 && b==0) rturn 0i


else it (a==0 )
return 1+auflra (a,b-1) t
else

suma : =1+ surna ( a, b- 1 )


else surna 3 =1+suna (a-1,b)

return l"+surna(a-1,b) ;

p+1

cat timp pr2<=b executi pp*2


dacd p>=3 scrie p a1tfe1 scrie
EfarFit pentru

int

integer)
r inleger;

a) Scrieli definilia complete a

shift

care primegte prin


lntermediul parametrului n o valoare naturala nenule (n<100), iar prin
lntermediul parametrului x, un tablou unidimensional cu maximum 100 de
subprogramului

oomponente. Fiecare componente a acestui tablou este un numdr intreg care


nre cel mult 4 cifre. Subprogramul permuld circular cu o pozitie spre stanga,

primele

elemente ale tabloului

9i furnizeaze tabloul modificat tot

parametrul x.

Exemplu: dace inainte


x= (2,3
L) .
"4 '

(4p)

de apel n=4 gi x=(1,2,3,4), dupd apel

a)
(Pascaf|

lCiC+"1)

vector=arlay [ 1. .1001 of

integer;

shif,t (n! intege4


var x:vector) i
au-:. !

integert

shift(int n, int :r[ I)


(
int i, auxt

voial

aux=x [ 0l ;

for ( i=0; i <=n-2; i++

prin

b) Scrieti un program pascallc,/c+f care citegte de la tastaturd o valoare


naturale nenula n (n<1oo), apoi cele n elemente ale unui tablou
unidimensional x. Programul va inversa ordinea elementelor tabloului x
lolosind apeluri utile ale subprogramului shift gi va afiga pe ecran, separate
prin cate un spatiu, elementele tabloului rezultat in urma acestFi prelucreri.
Exemplu: dacd se citesc pentru n valoarea 5, iar tabloul x esle (t,2,3,4,5)
(6p.)
programul va determina ca x se devine (5,4,3,2, r\ .

I,

(funclia returneaze suma parametrilor de apel).

rli

,(I1l.xt1+I.I

Dag'.n

tu* r rr. .l ,

for lr-1 !o n-1 do


x Ill t rx I I+1] ,

xtn-1l.rux,

A 024

Gonerand girurilo de maximum 3 caractere distincte din mullimea


(A, B, c, D, E), ordonate lexicografic, oblinem succesiv: A, AB, A3c, A3D,....
(4pJ
va fi generat dupe BAr?
Co

[n] : -au:r

end,

b)

Observem cd

citgte

shtfr(1,r.)

"duce" elementul

xlil

in pozilia

Sir

i,

i1,n xecute citegte xlil


pentru in,2 executi shift (i. x)
pentru i1,n executi scrie xlil ,'

este ultimul gir care incepe cu BA, urmdtorul 9ir nu poate sd


cu BB, deci incepe cu Bc qi nu este format decat din doua litere.
(3pJ
Funclia f are definilia urmatoare. a) Ce valoarea arc f(L7l?
(3p.)
Ce valoare are f, Q2l?
(Pasca,
{C/C++J
n)
int
f(int
(n:
integert
:
integer)
lon f

Figierul text BAc . TxT conline pe prima linie un numdr natural


(1<l<1000), iar pe fiecare dintre urmetoarele n linii, cate doud numer
a gi b (1<a<b<32000), fiecare pereche reprezentand un interval ?nchll
forma [a, b] . Scrieli un program paEcal- | c/c++ care determind
care au proprietatea ce interseclia cu oiicare dintre celelalte n-1 intervall
vid6 9i afigeaza pe cate o linie a ecranului, separate printr-un spaliu, nu
care reprezinte capetele intervalelor determinate. DacA nu existd niciun
de interval, se afigeaz5 pe ecran mesajul NU ExrsTA.
Exemplu: dace figierul BAc.TxT are conlinutul aldturat, la
20
pe ecran se va afiga:

lv

26

L7 20

sau

L7 20

26

Rezolvate:

lz

I 10

la

ln

lf n<=9 then f !=0


al.. if n mod 4=0 then f3=0

if (n<=9) return 0i
if (n%4==0) retura 0;
return 1+f (n-3) t

a)3 b)2
f1?).1+f(14)=2+f(LL)=3+f(8)=3 iar f (221=L+f (L9) =2+f (L6)
a) Scrieli defini,tia comple a subprogramului p care primegte prin
ns:

=2

intermediul

pirametiului n un numdr natural nenul (ns1oo), iar prin intermediul parametrului


x un tablou unidimensional cu n componente intregi, de maximum patru cifre
fiecare. Subprogramul furnizeaze prin intermediul parametrului tnini valoarea

x.5

16

minimd din t;blo1l *, prin intermediul parametrului naxi valoarea maxime din x,
(6p)
iar prin intermediul parametrului Bum suma elementelor din tabloul x.

b) Scrieti'un program Pascal I clc++ care citeQte de la tastature o valoare


niturale'nenuia tt, 1r<n<roo;, apoi cele n elemente, distincte, ale unui tablou
unidlmensional x, Fiecare dintre aceste elemente este un numdr natural avand
cel mult patru ci{re. Folosind apeluri utile ale subprogramului p, programul
calculeazi 9i afigeazd pe ecran media aritmetica a elementelor care ar rdmane
in tabloul x-dacd s-ar elimina valoarea minimd gi valoarea maxime din tablou.
Valoarea afigata va avea cel mult 3 cifre dupe virgule.

Exemplu: dacd se citesc pentru n valoarea 5, iar penlru tabloul x valorile


(r, g,'t, 8,s), programul va aflga una dintre valorile 5. 667 sau 5. 566. (4p.)

llri
lrr

I ra""a disjunct=l atunci


ecrie ar, bi
I I
I I
ctct+l

fdaci ct=o atunci


I scrie NU EXISTA
l.|

eLse f r=1+f (n-3)

cre 0
citegte n din figier
pentru i=1,n executS citeFte ar, bi din figier
rl)errlru i=1,n executE
I aLsjunct=r
| ;Pentru j=1,n execu!5
I I paci i+j Si (ai Ia5, bi1 sau bie [a3, bll sau
a: [ar,br] sau bj
) atunci
| | |
lat,brl
aisjunct=o
I I I

il!
l.|

d.

CA.B

c. Blt

Dentru
4.

b,

(Pasca,
. 100]

of Wordt
D(n3integeri xsvecti

vect=array[1.

var mini , rnaxi , sr.un : word ) ;


r i ! inlegeri
nini: =x [1.] tnaxi r =:r [1] t

{C/C++l

voidl p(int n, int x[ l,


int &:[ini, inh &nat<i, int
t

int i;

mini=maxi=eurn=x [ 0l ;
for ( i=1; i<n; i++ )

tutn!=x[1] t

lor i:=2 !o n d.o begin


rum:=gum+x[i];
lf xtil <nini thn mini:=xlilt
lf xlil>naxi then maxi: =x I il

.nil

&sum)

il ;
if (x[il <nini) nini=xlil ;
if (xlil >naxi) maxi=xlil;
gum=surn+x I

r,,

crEatE! n
p.ntru lL.n cxecutit clbcqt. xlil
D

4-

A 025

(n, x,mi.nl, maxl-, aun)

scrie (sum-mini-naxi) / (n-2 )


Figierul text bac.tx! contine pe prima linie numerul

nalural n, 1333000
urmeloarele n linii, un gir de n numere intregi, ordonate crescdtor, iar pe
linie doud numere intregi a gi b (a<b) separate de un spaliu. Fiecare
cele n numere, precum gi valorile a gi b, au cel mult patru cifre.
a) Scrieti un program pascatlc/c++, eficient din punct de vedere al I

de executare, care afi$eaze pe ecran cel mai mic numer intreg dinrin
inchis [a,b] care se gdsegte in girul dat. Daca nu existe un aitfel d6
programul afigeaze textul Nu.
Exemplu: dacd figierul bac. lxr are conlinutul aleturat, programul
va afiga valoarea L1

b) Descrieli in limbaj natural metoda utitizat5 9i explicali in ce conste


eficienla
(4pJ

ei.

-2
7

11
35

811
Rezolvare: Un algoritm corect, dar cij un numir mare de pagi gi deci catl
primegte maximul de puncte, citegte n, apoi cele n valori pe care le
intr-un vector x, apoi dupe ce citegte a gi b, parcurge secvential vectorul x
determina primul element mai mare sau egal cu a. pentru punctaj maxim,
utilizata ceutarea binare a lui a in veclorul x. Se folosegte proprietatea ce
ceutare binare a unei valori care nu apare intr-un vector, variabila in care se
pozilia din stanga a intervalului in care mai poate fi gdsita valoarea ceutata',iesr"
algoritm cu o valoare care reprezint5 pozilia celui mai mic element mai mare
valoarea cdutate. Complexitatea algoritmului este o (n) pentru ciljrea datelol
o(log2n) pentru ceutarea valorii a in vectorul x.

citeFte n din figier


pentfir i1,n execut: cite$te xlil
cite$te a,b din f,i9ier
Daci a>x[n] atunci scrie "NU"
pltfeL
Etel-r alrnr g0
repete

din fiSier

njet(Et+atr)/21
dacd xlrnjl=a
atuaci g1
altfeL
dacE x[ttrj] < a atunci stmj+1
attf,eL dretnj -t
I
lp6ni cAnd st>dr sau g=1
//a apare in vector
fdaci g=1 atulci Ecrie a
//a nu apare in vector
laltf,el
I dacd x[stl<=b atunci scrie xlst] al"tfel scrie "NU"
\l

Un program citegte o valoare naturala nenulA impare pentru n $i apoi


genereaze gi afigeazi in ordine crescetoare lexicografic toate combinaliile
lormate din n cifre care indeplinesc urrnetoarele proprietali:
incep $i se termina cu o;
modulul diferenlei intre oricare doua cifre aldturate dintr-o combinalie este 1.

Astfel, pentru n=5, combinaliile afigate sunt, in ordine, urm5toarele: 01010,


01210. Dacd se ruleaze acest program gi se citeqte pentru n valoarea 7,
(4p.)
imediat dupe combinalia 01!1210 va fi afigate combinalia:
0121010
oL2t2LO
b. 0123210
c. 011r.210 d.
d.
Funclia

are definilia urmdtoare:

lC/C++)

tPascal)

ion f

(n ! integer) : integert

lf n<=0 then f: =-1


.Is if n mod 2=0 then f!=0
.16e if n nod 3=0 then f:=0
else f: =1+f (n-10 )

int f(int n)
t

if, (n<=0) rlurn -1t


if (n%2==0) return 0t
if (n%3==0) relurn 0i
return 1+f (n-10 ) t

)
Cs valoare are

(3p.)

16 ) ?

Scrieti cea mai mare valoare de doua cifre pe care o poate avea
f lnl sa fie egal cu 2.
ihpuns: a) o b) es

n astfel incat
(3pJ

primegte prin intermediul parameirului n un numdr natural


Subprogramul
nenul (15n<9), iar prin intermediul parametrului a, un tablou unidimensional
care con,tine n valori nalurale, fiecare dintre acestea reprezentand cate o cifre
a unui numdr. Astfel, a6 reprezinte cifra unita$lor numerului, a1 cilra zecilor etc.
o valoare naturale egale cq
Subprogramul funizeaza prin parametrul
in
a sau valoarea -r daci in
ielinute
tabloul
numdrul oblinut?in diFEl6 fare
tablou nu existd nicio cifre pard. Scrieli definilia complete a subprogramului
Exemple: dacd subprogramul se apeleaza pentru n=6 9i pentru tabloul a
avand valorile (2,3,5,6,4,r1 , parametrul k va furniza valoarea 452. Dace
relinand valorile
subprogramul se apeleaza pentru n=4 gi pentru
(0,0,1,1), k va furniza valoarea o. Dacd subprogramul se apeleazd pentru
(1opJ
n=3 9i pentru a relinand valorile (3,?,1), kvalurnizavaloarea

-1.

idspuns: Antetul (9i declaralia de tip necesara in Pascal):


(Pascaf)

ttpe numar=array[0.. 8] of byte,


(n3btte, a |nunrari
var k: longint ) t

Drocedure f

(C/C+-r)

void f(int n, int a[ ],

Long& k)

Corpul functi6l:

nr0, cto
p.ntru l0,n-1 .x.cutl
dacl

a1 mod

A 028

2-0 atuncl

ctct+1i nrnr*10+ai

dacd ct=o atunci

4.

nr

Pentru gensrarea numerelor cu n cifre formate cu elementele multimii ( 0, 2, 9 )


Be utilizeaz5 un algoritm backtracking care, pentru n'2, genereazd, in ordine,
numorele 20,22,29,90,92,99. Dace n.4 9i se utilizeaza acelagi algoritm,
(4p.)
care este nriinerul generat imediat dupe numerul 2009
2
2090
010
d.
2002
b. 2020

c1

Figierul text NWAR. Tr(T contine pe prima linie un numdr real pozitiv x caro
mult doue cifre la partea intreag5 gi cel mult gapte cifre dupa punctul

lil

a) Scrieli un program paseaLlc/c++ care, utilizand un algoritm eflclcni


punct de vedere al timpului de executare 9i al memoriei utilizate, afigeafl

:b:

minimd,

Exemplu: dacd figierul contine valoarea 0.375, se vor aliga

numerele 3 8.
b) Descrieli in'limbaj natural metoda utilizate 9i explicaliin ce conste

'

afiB
afis(8)?

Subprogramul

ecran, separate printr-un spa,tiu, dou6 numerg naturale al ceror raport 6gla
cu x qi a caror diferen{i absoluti este

apelului

este delinit in continuare. Ce se afigeaze


(C/C++)

afis (n: integer) ;


I ! lntgeri
wrile (n) t
lor i: =n dliv 2 downto 1 do
i.f n moat i=0 then afis(i)

Rezolvare:

(4pJ

(Pascal)

pe

ca urmare

void af,is (int n)


(cout<<nr I Drintf ( "%dl",n) t
fof (int L=d/2i L>=Lt L--)
if(n%i==o)afis(i) t
)

O metoda corecte, dar cu un numdr mare de pagi, este cea bazate pe


algoritm:

842rL2L1"
ligura aEturate este reprezentat5 schema
recursive in care sunt marcate valorile

citeSte x din fitier x


pentru ie1,107 executi
daca xii este intleg atunci
scrie i, n n,xii

asociate sege$lor indicd ordinea de

break

O metoda eficienta se bazeaze pe urmetorul rationament: Fie x numerul real cltll


fi9ier. lnmullind pe x cu Lo? oblinem un numer natural (x are cel mult gapto O
dupd virguld)! Evident fractia avend numaratorul acest numdr natural gi numitorul
are valoarea egal6 cu x. Pentru a obline diferenla absoluta minime,

fraclia, calculand cel mai mare divizor comun cu algoritmul lui Euclid.
conste din metoda de calcul directS, care evit5 incerceri succesive de valori al
raport este egal cu x gi in utilizarea unui algoritm eficient pentru calculul celul
rnare divizor comun (se reamintegte ce algoritmul lui Euclid calculeaze c.m.m.d.O,
o complexitate logaritmice).

citegte x din figier


numard.torx*

nunito!

1000 00

10 000 00 0

00,

(numarator, nunitor )
acrie nrnarator/d,, " tr, numitor/d

dcmnd.c

apelurilor recursive

$i,

implicit,

de aligare a valorilor.

Scrieti programul pascal"lc/cr+ care citeqte de la tastature doud numere


naturale nenule nSi k (n<100, kSIOO) 9i afigeaze pe ecran, separate prin cate
un spa-tiu, in ordine descrescdtoare, cei mai mici k multipli nalurali nenuli ai
numdrului n.

Exemplu: pentru n=5 gi k=5 se afigeaza 30 24 rA 12 6.


llrpuns: Se afigeaze girul n*k, n* (k-1), ... , n*1
(C/C++)
(Pasca,
# include <ioatrean.lr>
Vlr n, k, i:word;
unsigmed n, k, i;
brgln
voitl nain( )
reaitLn (ir, k) t
for i:=k dolmto 1 do
{ cin>>n>>ki
for ( l=k; l> =1; i- )
write (n*i, ' ' )
and.

l.

cou!<<n*i<< '

(6p.)

a) Scrieli (declaririle necesare gi) definilia completa a subprogramului sterse,


care primegte prin cei 4 parametri v,n, i, j:
- v, un tablou unidimensional cu maximum 100 de elemente intregi din intervalul

t-1000;10001

un numer natural reprezentand numdrul de elemente din tabloul v


$i doue valori naturale cu x<i<j<n
gi elimine din tabloul elementele vl,vi+l,-.,vJ actualizand valoarea
(6pJ
parametrului n. Tabloul modilicat esle furnizat tot prin paramevul v.
-

n,

b) Figierul NlrttfRr, rN contino pe prima llnle un numdr natural


(x(n5100) $i pe urmAtoarea linie n numero intregi din
[-1000r 10001 , separate prin cate un spaliu. Scrie{i un prr
Pascal I c,rc++ care citegte din figierul NI,!{ERE. rN numdrul natur
construiegte in memorie un tablou unidimensional v cu cele n numere i
aflate pe linia a doua in figier gi utilizeaze apeluri utile ale subprogr

slerg pentru a elimina din tablou un numer minim de elemente astfel


sa nu existe doue elemente aleturate cu aceeagi valoare. Elenientele
oblinut se afigeaze pe ecran, separate prin cate un spaliu.
Exemplu: Dace figierul NulrERE. rN are continutul:
L2

roLo221,99 9 9 915
atunci se afigeazd

15 1s
10 2 19 9 15.

Rezolvare: Subprogramul sterse realizeazd deplasarea celor n-j elemente


in vector, dupa secvenla care se gterge, la inceputul acesteia (incepand cu
i). Numirul de elemente se micQoreaze cu o valoare egale cu numdrul de
ale secvenlei eliminate (j-i+1). La cerinla b) se identifice, pentru fiecare
vi, secventa care urmeaze gi este formati din elemente cu aceeagi valoare gte
intreaga secven!5 (fere ebmentul curent). ln tablou nu vor exista astfel doud
aleturate cu aceeagi valoare.

(Pascatl

{C/C+ +)

. 1001 of
integert
ta)
procedure aterge (var vlvectori
var a:b1te; i, j :byte) ,
var htbllt,et

t]4)e wct=arrayt1.

begin

for k:=j+l to n do
vlk- (j-i+1) I :=vlkl;
ns=n- ( i -i+1)

endt

tb)
var
f : txt, i, j, n: b,r't; v lvectori
begin
asEign ( f, 'numer.in') i
reset ( f) t

# include <fatrean.h>
//a
void sterge(int v l L00l ,
int &n, int i, int j)
{int k,
for ( k=j +1; k<=n; k++ )
v Ik- ( j - i+1) I =v tkl t
n=n- (j - i+1) ;

l
llb

voitl' nain

f>>ni
for ( i=0; i<=n- 1; i++) f>>vlil

f.close()t
i=0,

,n),
for i:=1 to n do reaat(f,,vlil),
clos (f) t
readl-n ( f
.! .

while ( i<n-1) {
j =i+1;
while(j<n && vtil ==vIj I )
'
j ++;

-r .

whiLe i<n do begin

if(j-i>1)
s!rge(v,n;i+1,j-1);

2=i+L2

whiJ.e (j<=1;416(vIi]=y151 I 6o

j:=j+1;
if j-i>1 thn
sterge (w,n,
i : =i+1

i+1.,

for i:=1 !o n
write(vlil,'

end.

do

i ++;

j-1)
l

endi

,)

()

{ifstleam f, ( "nunere. in" ) ,


int n, i, j, int v[100];

l
for ( i=0; i<n; i++ )
cou!<<v Ii] <<' ,t

O27

Psntru generarea in ordine crescStoare a numerelor cu n cifre formate cu


olementele multimii t0,2,8) se utilizeazd un algoritm backtracking care, pentru
n.2, genereazd, in ordine, numerele 20,22,2a, ao, a2, a8 .
Dacd n=4 gi se utilizeazA acelagi algoritm, preciza{i cate numere generate sunt
(4pJ
divizibile cu
10
Rlspuns corect: c. (numerele d'vizibile cu 100 sunt de forma abo0, unde a
poate fi 2 sau 8 (2 posibilitdli), iar bpoatefi 0,2,8 (3 posibiliteli), in total 6
posibiliteti)

1oo.
b.90

Subprogramul

scrie

c.6

este definit aleturat.

Ce se afigeazd ca urmare a apelului

tPasca,

Drocedure

scrie (x,y: inleger) i


bgin write(x,y) t
lf x<y then
begin scrie(x+1,y-1).;
write ( (x+y) div2 )
end

d.

scri(2,5);

(6p)

li
i'

(CiC++)

void scrie (int x,int y)


( cout<<x<<y; I printf ( ""d2d' ,x,y)
if (x<y)

acrie(x+1,y-1);
/2, lprintf (*"d',

coqt<< (*+y)

endt

)l

(2<+y) /21

Respuns corect: 26354444


Rezolvare.

ln figura aldturatd este reprezentatd


schema apelurilor recursive gi marcate
valorile afiqate. Sdgelile punctate indice
ordinea de afigare a valorilor.

Scrieli definitia complete a subprogramului nreal cu doi parametri x 9i y,


numere naturale din intervalul t1,10001 ce returneazd un numAr real cu
proprietatea ce partea sa intreagd este egale cu
iar numdrul format din

x,

zecimalele sale, in aceeagi ordine, este egal cu y.


Exemplu: pentru x=12 gi y=sas, subprogramul returneazd valoarea 12.543.

(1op)
Rezolvare. Se imparte numdrul y la 10 pand cand acesta devine subunitar.
Functia returneaze suma dintre:< gi valoarea variabilei y dupe transformarea
men!ionata anterior.
(Pascalj

function
nreal (x, y:word.) : reaL t
var z:reali
begin zr=y;
lrhile z>=1 do z?=z/LO t
endi

nreaL: =z+rr

{CiCt't)
float nreal (unsigrred x,
unsigmed y)

I fLoaE z=y i
w}rile (z>=7-, z=z / 1,O t
return z+xi

il

,f

)
i

4-

prlmd lini6 un numer natural


Fisierul text MtltERD ' rN conlino p
reale pozitive in ordlnc
(2in<1oo) 9i pe urmbtoarea linie n numero
spaliu
un
ieparate prin cate
crescaroare
"';;;"
Jiescatoaie scpdrd,r'
"-''
p"":?11....
care, utilizand un algoritm ollclant
a) Scrieli un program"',,
no ecran
ecran dtl
'lizate'
^i afigeaza
^ti-6aa^ pe
determina 9i
punct
de vedere al memorlel utl
;l,"'.?'fJ'#J#'"lri##''ii";g"P'1.'1::lil:i::1"3,"."""#L'.',1
in orice interval 9-"::!1.?:3*
mare numer natural x., p'opn"iut* "a
pe tinia a doua in fisierul
aftate
,i*i,n"i"
^ntu!
se gasesc cel pulin x numere intregi'
Dace iigierul wuunRE ' rN are conlinutul:

$ffi"ffi ;;;;"'irl

ilful;t
I ., u .:. s .2 L6 20 .33 100 atunci se afigeaza
1-?"11i"1*"1:t::
(5'1"
tt'5'15)-' (i's'20'33)' (3's'miL
i;",;ltiit.i'r.,,,
rl"r varEre
ffi.,l,";
(5.1;20.33), (5'1t100i'e'z'rc.,'lg'z;20'33)'(9'2;100)'
I

(5.1;15),

^,,h6r6 ihr'
exiite ce, purin doua numer"'il'"?..
in ce constd
qi
limbai natural metoda utilizata explicali

lil;:i;;;i;;;;;;; i;;:;;;i;;;

b) Descrieti in
Rezolvare.

ili-r-arui ol nut"te intregi dintr'un interval


Variabila

nr

(8'v)

este egalcu

Iv-1l - lx+11

va reprezenta valoarea cerute'

crescetoarl
;;;;"1";[" oin iigier sunt in ordine
aflate. pe pozilii cons(
peiecne oe numere ":!:^-t1T':::,-:,e
lJiltJilliloilt"o"ii;;;;;;;;
unor intervaro

il;ffi ;;;;;o;

oin r,eier,
determinat de numerele din

figier' ...
"ftlt,""-'*f:'l':,^"?3:^t:*
;ii.iunt oin nungi o" "99:'.":r .T:l:lf
;il;ii"i;i-;;iJ"iii"tervat
sippre
;; iumai constant de variabire '-Yl:11?"1

.liiiii'.i.j,i"

3i;ii#;;i"";i;;
fiqier'
neJLpinzana de numdrul de numere din
;,i#ili';;;"i";;

'

{ClC ++}

(Pasca\

* lnclude <fEltearn'h>
<msth'h>
inctude
I#
n, nr, nrl, i:word;
I.toidt
.- nain (.')
---begin
I'.--;
;
t
)
ire6et{l}
,'numere.ln'
asaigm(f
f, ("numere'in") t
I if"t"."t
read(f,n,x,Y) I
a,nr,iLi
unsigrned ''r'-'
lurlsrslrss
lf y=trunc (y) then
floaE x,Y'
(y)
-1
nr ! =trtlc
I
f>>nt>x>>yt
el,B nrr=trunc(y) i
nr=ceil(v-1)-floor(x+1)+1'
nr =nr-lrunc (x) ii:=3;x:=y;
I
nniir" ti.t")"ta(nr>o) dlo begin l*=v;
I for(i=3;i<=n && n i++ )
read ( f, y) ,
i (f>>Y' (v-1) -,ti-T-t^t:l-t].*,1
li v=trunctvl(y)then
-n
ie tceil
-t
11: =trunc
I
nr=ceil(y-1) -f1oor (x+1) +
elE nr1: =trunc (Y) ;
nr13 =nrl-trunc (x) t
i ) *=Y;
ii ,r"r.tt" ltren nr:=nr1t
i
f'c1ose(lt
13=y;i:=i+1
I
lcout<<nri
endi

var f:t:<t ix, Y: teal;

.ro""tfl rwrlt6(nr) end.

Gonerarea tuturor cuvintelor de trei litere mici, nu neaperat distincte, ale


Allabstului englez, se poate realiza cu ajutorul unui algoritm echivalent cu cel de
(4p.)
!6nerare a:
a. produsuluicartezian
combinerilor
b.

c.

aranjamentelor

permuterilor

d.

Rlspuns corect a. ({a,..,z}x{a,..,z}x{a,..,2})

Subprogramul
este definit aleturat.
Ce valoarea are f (8 ,4)?
(Pascat)

(4pJ
{CiC++J

int f, (int x,int

llrnctlon f (x,y: integer) ! intege4

brg{n
It x<y then f, r =1+f (x+l,y)
a1re if y<x then f!=L+f(y+1,x)
18 f :=1

trdr

y)

if, (x<y) relurn L+f (x+1,y) ,


if (y<x) return 1-+f (y+L , zt) ,
return 1;

Rdepuns corect: 5 (f (8,1) =r+t(s,

e)

=z+f(s,

8) =3+f (7,8) =4+t (8,8) =5)

Scrieli un program pascat lc/c++ care citegte de la tastature un numer natural


n din intervalul I2,501 gi apoi n numere reale gi afigeaze pe ecran cate dintre
cole n numere reale sunt egale cu media aritmetice a celorlalte n-1 numere

roale.

(6p.)

x,

Rezolvare. Numerdm elementele x til

din girul de numere


ce au
proprietatea
unde a este suma celor n elemente. Este
posibil ca aceastd sumd se depdgeascd domeniul aferent tipului de date ales gi

s-xtil=xlil*(n-1),

de aceea verifii5m dacd etementul x

[i I

are proprietatea

(Pascalt

var x:arrayfl..50] of realt


s: realrn, nr, i:word;
begin

r.adln (n) ,

lor i:=1 to n do begin


rat[n(x [i] ) t
sr=s + x[i]

.ndlt

lor i:=1 to n do
lf (s-xlil)/(n-1)=xlil

Uhen nr3=n!+lt
write (nr)
and.

= xir

(C/C++)

# include <ifgtream.h>
fLoat x[50],Et
unaignect n,nr,li
vold rnain ( )
( cin>>n;
for(i=0;i<n; i++)
{cin>>x Ii] ,
E=a+x [i] ,
)

for(i=0tl<nri++)
if ( (s-xtil ) / (n-1)
ff++i

==11i1

cotlt<<nr; l

a) Scrieti definitia completa a unui subprogram

i n$ - -'ctt

primegte prin singurul sdu parametru,

12,10000I

primul,

care

a, o valoare naturale

din intervalul

- returneaze o valoare naturale reprezentand cel mai mic divizor al numirului a


mai mare strict decat

1.

(6p)

b) Figlerul NInif,nE. rN conllne po prlma linie un numer


n(15n5100) gi pe urmatoarea linie n numsro naturale
I2,100001 separate prin cete un spaliu.

natural

Un numar natural n se numegte ,,aproape prim" dace este egal cu prod


doud numere prime distincte. De exemplu, numdrul 1"4 este,,aproape
pentru cd este egal cu produsul numerelor prime

gi 7.

*ascallctc++ care determind, lolosind apeluri utllt


primul, cel mai mare numer,,aproape prim" de pe linia a

Scrieli un program

suprogramului
a figierului NITMERE. TN. in cazul in care existd un astfel de numdr se
pe ecran mesajul DA urmal de numdrul determinat, iar in caz contrar
Exemplu: DacA figierul NIIIGRE. rN are continutul:
5

100 14 21 a 77 35

atunci se afigeazd pe ecran DA 77 pentru ce


7? este cel mai mare dintre numerele ,,aproape prime" din figier
(L4=7*2, 2L=7*3 77=7*Ll, 35=7*5).

"

Rezolvare. Pentru a verifica dace numarul x este ,,aproape prim",


primul seu divizor y mai mare decat 1 gi determinem z=x/.y. Numdrul z
se fie prim gi diferit de r/. Se observe ce un numer z este prim dace prin(rl
Citim qirul de valori gi actualizam la fiecare pas valoarea variabilei ce
maximul,,aproape prim".
tPascal)

(a]

function primul (a rword) :word;


var d:wordi
begin d: =2;
white a mod d.<>0 do d:=d+L,

lCiC+'t)

{b}

var f: texti
i, n, x, y, z,max:word;
begin

(f, 'nufiere. in ' ) t


reset(f)t
readln(f,,n) t
for ir=1 to ! do begin

x,y, z i

f>>ni

for(i=L; i<=u

if
l

close (f,);

if

i++

f > >x;y=>rirmrl (x)

if (y!4)

(nax)
cout<<"DA "<<naxt
elEe cgut<<"Nu" i

max>o then

llpar pe pozilii consecutive?

c. !2

..24b.6

Rtrspuns

'r'

corect c.

Ce se afigeazi ca urmare a apelului

'N'

'o' ]

vocalele

(4pJ

d.4

x23 ) ; dacd subprogramul p are definilia

(6pJ

rldturata?
(li'asc?/)

procealure p (x: integer) i


b.gln lrrile (x) i
lf, x<>0 then begin p(x div10)t

write(x notl 10)

end

and
lC/C++)

p (int x)
(cout<<x; I printf
(x!

ll

'li
r-==it1
\ 1 t:

-/

scti.e 12 scrie

liIr

volal

If

/---:-l- " \
r--!__! ='j
scrie 123 scrie

=0 )

("%dI",x) t

tD(x/10),

r-::]--\

I n-i
J
scrie 1 sasis
II
lr

r I Drintf ( *%tl', x%10 ) , ) )

in

12 3121012 3

figura alaturatd este

reprezentatd
schema apelurilor recursive Si indicate valorile afigate.

'll

/'------------:-

.t_r:!__J

scrie

tnultiDli, cu trei parametri a, b, c


numere naturale din intervalul t1,100001 ce returneazS numarul
multiplilor lui c din intervalul Ia, b] .
Exemplu: pentru a=10,b=27,c=5 subprogramul returneaze valoarea 4. (10p.)
Rezolvare. Valoarea returnata de subprogram'poate fi obtinuta prin parcurgerea
intervalului [arbl numerarea elementelor x din acest interval cu proprietatea cd
x%c=o sau utilizand o formuld direda de calcul [b/cJ - [a./cl +1.
Scrieti definitia complete a subprogramului

(asb),

\Pascal)

function multiDli ( a, b, c : word) :wordi


begin if a mod. c=0 thelt multiDli: =trunc (b./c ) -trunc ( a./c
else nultipli: =trurrc (b/c ) -trqnc (a/c
.

) +1"

ond,i

{z=x/V,

(z! =y && I)ri.trIrl(z)==z

f,.close( ) i

writ('DA',ma$)
eLse lEite ( 'Nu ' )

end.

()

rmsigineat n, i,Illjs=o,

end
endt

if

main

ifEtrean f ( namere. in" ),

aa8igm

read(f ,x) ;y3cprirmrl (x) ;


if y<>x then begin
z : =x d.iv y;
if (z<>y) andl (primul ( z ) =z )
and (x>nax) then trrax: =:.

d.,

/lb

void
t

ln cate dintrc permuterile elerilentelor multimii i

Bezolvare,

unsigneal prilrnl (unsigneil a)


t unsignett dl=2 t
f.or (d=2, d<=a/2 t d*+)

if (a"ad==o ) return
retuln ai

l.

cout<<x%1o
Rdspuns corect :

# irrclude <fgtream.h>

Prirmrl : =d
endt

A 029

dln

&&

rEx=xi

lClC++\

unsigned multipli (ursigmed a,unsigned b,unsigrred


{ return f loor ( 1.o*b,/c) -cil ( L.o*a,/c ) +1, )

c)

Se considere dou6 tablouri unidimensionale A 9i B cu elemente numere naturale


din intervalul IX,100001. Spunem ce tabloul A"se poate reduce" la tabloul B
dace existe o impd4ire a tabloului A in secvente disjuncte de elemente allate pe
pozilii consecutive in tabloul .I, astfel incat prin inlocuirea secvenlelor cu suma
elementelor acestora se se oblina, in ordine, elementele labloului B.

De ex6mplu tabloul

se poate reduce la tabloul

(C/C t r)

(Pasat0
\

l\-

f r to<Et
n.n, i., J rbrtruelohrboolan,
r rarrat'H.. . 10Ol of rdgrdt

-.1

Fr'T'+n

Fisierul MIMERE. TN conline pe prima linie douA numere naturale nenuli


rn(13rnin310O), pe linia a doua n numere naturale din intervalul [1,10
gi pe linia a treia alte tn numere naturale din intervalul I1,100001
P6

linie numerele sunt separate prin cate un spa[iu.


a) Scrieti un program peEcallc/c++ care verifica, utilizand un algoritm'
din punct de vedere al timpului de executare, dace tabloul construit cu
numere aflate pe linia a doua in figier, se poate reduce la tabloul

cele tn numere aflate pe linia a treia in figier. Programul afigeaze p0


mesajul DA in caz alirmativ 9i mesajul Nu in caz negativ.
b) Descrieliln limbaj natural metoda utilizatii 9i explicaliin ce consta eficienla ei.
Fzolvare. Se memoreazi tot girul A gi apoi, citind cete un element din g
memora tot girul B), se avanseazd in A insumand elementele pene co
devine mai mare sau egale cu elementul curent din B. Pentru a afiga DA
ca fiecare sume obtinutd se fie egale cu termenul curent din B gi, in plu6,
doue giruri sa se termine simultan. Algoritmul este liniar pentru ce face csl
hecere simultane prin cei doi vectori, trecere absolut necesara atuncl
proprietatea cerute este indeplinita.

figierul f=NI!MERE . IN
citegte n,m
genlru i1,n executl citeite alil atin f
ok1r i1
deschide

pentru j 1,m executl


citeFte x din f
g0

cat tinp i<=n ii s<x exacutl


ss+a [i] ; il+1
sfargit cat tirE)
dace s+:< atunci okO
sfar$it pentru
DacE ok 9i j-=n+l atunci scrie "DA" altfe]. scrie
Inchr.cle !:.9rerul t

"NU"

O altd metodd de rezolvare presupune scederea elementului curent din

elementul curent din B (alunci cand este posibil). Citirea eleinentelor din B
intrerupte atunci cand acest lucru nu este posibil. Deplasarea in primul
face la fiecare pas in timp ce deplasarea in cel Ue-al doilea $ir (citirea unul
element) se face doar atunci cand elementul curent ajunge nul.

( f,,
'numr . Ln' ) t
(!) r rrdln(f,n,n),
lr.1 to n ab read(f,atil ) t
llJ r rlloh: =true, read(f, !r) t
h (J<.n) and(i<=n) ard olc alo
rlll <.x thsr
xr -x-a lLl ; i: =i+1;

lf

x=0

sd

3!l
.l,r

tlpn

begln
ok3

J : =J +1;

=falE,

read(f,x)

{l.n+1)and(j=m+1)and ok thn
vrrlt,e('DA')
a. write ( 'Ng' )
( f ) endl.

lf lncIud.

<f Bcr6m.h>
i.f,rEram f ("nunor.ln"),
unslgmed n,m,l, j,x,ok=1,a [].0X1 t
voial nain ( )

t
f,>>lD>mi

for (i=1;i<=,n; i++) f>>a Iil ;


i=j =1; f>>x;
whil(j<dr && i<=n && ok)

if, (a til <=x)


{x=x-a Ii] , i++,
if, (x==0 ) {J ++, f>>x, }
)

ela ok=o,
if(i==n+1 && J=<1+1 g4 on,
cout<

elE cout<<rrMtrri
f. cloee O ; )

<rrDl'rr

VARIANTA

1.

(Pnscal)

O3O

Pentru generarea numerelor cu n cifre formate cu elementele


t0,4,8) se utilizeaze un algoritm backtracking care, pentru n=2,
in ordine, numerele 40 ,44,4A , BO ,8L, gg .
Daci n={ gi se utilizeaze acelagi algoritm, care este numdrul generat
dupe numerul 40 08 ?

a.

4040
b.
Rispuns corect: a.

2.

ltD.
vrotor.array[1..1001 of, Intcqo
functlon
lutna (vrvctoun, 1, J :bf't) ! longLnti
Vrr r t longintrkiblrtet

004

c.

d.

080

var i: integert
begin

for i:=x to y do
begin rorire(i) ;f (i+1,y)
!dt

voial f, (int x,int


(int i;
for ( i=1; i1=y.;ai

Ir-0i
lor kr=1 to i-l ito a:=s+v[k];
1o" 1;=j+1 to n do s:=s+v[kl;

004

luna: *g
tnd,

,,

y)
1

end

c6u!<<ir I printf
f {i+L,yl i

(..%d., I

afi

f,or (k=j +1, k<=n;k++) s=s+y [k1 .

retura ai

yr

Figierul NrruEnr. rN contine pe prima linie un numar natural nenul


n(1<nS100) gi pe urmetoarea linie n numere reale pozitive ordonate
crescitor, separate prin cate un spatiu.
a) Scrieli un program Pascall c/cr+ care citegte din figierul Nrrr[ERE. rN
numarul natural n, gi determind, utilizand un algoritm eficient din punct de
vedere al timpului de executare gi al memoriei utilizate, num;rul minim de
intervale inchise de lorma.[x;x+1], cu x numer natural, a cdror reuniune
include loate numerele reale din figier.

Exemplu: Dace figierul NUMERE. rN are conlinutul:

Rispuns corect : 1233233


Fezolvare. in ligura urmdtoare este reprezentata schema apelurilor
incercuite valorile

for(k=1tk<=i-1'k++)
s=a+v [kl ;

brg!.n

Subprogramul f este definit aleturat. Ce se afigeazd ca urmare a


f(1,3) r?
(Pascall
lCtC++J

procedure f (x,ylinteger) t

(C/Cn)
long rum! (Int v[1011,
unaignred n, rrngigmed L,
unsigmdl j)
{ long e=g;unsigmd k;

2.3 2.4 5.1 5.7 5.9 5.3


atunci se afigeaza 3 (intervalele 12;3J, t5t6l , t6t7l

gate.

sunt cele 3 intervale


de forma cerute care conlin numere din gir).
(6pJ
b) Descrieliin limbaj natural metoda utilizatd gi explicati in ce constd eficienta ei.
(4p.)

f(!,t)

irzolvare. Se pornegte de la partea intreagd p a

primului numdr gi se citesc


luccesiv valori din figier cat timp acestea fac parte din intervalul tD,D+11 . Apoi se
lloge un nou p, partea intreage a numerului care nu mai face parte din interval,
numerandu-se un nou interval etc..
tPascal)

t (3,3)

vrr f ! trrqj

Ji
(t

i, nr,

p: wordi x:

real;

b.sin
r.8ign(f ,'numer. in, ) ireset ( f ) ;

t (4,X|
3.

n,

trad(f,n,x);

Scrieli definilia completd a subprogramului surna, care primeqte prin

Pr.lrunc(x) t n.r: =1i

parametri

b.sin
r6ad(f,,x) i
If (trurc (x) <>p) ard (x<>fr+l) then
begin nr: =nr+lip ! =trunc (x) , end

v,n, i,

j:

- v, un tablou unidimensional cu maximum 1OO de


intervalul t-1000,10001 numerotate de la 1 la n

elemente ?ntregl

- n, un numdr natural reprezentand numerul de elemente din tabloul v


- i gi j, doue valori naturale cu 1Si<j<1OO gi returneazd suma.
vt,v2, . ..1 vi-1. v3+rr...,v.dintabloul v.

Rezolvare, Subprogramul va calcula suma primelor

(n-j)

i-1

elemente

elemente din tabloul unidimensional transmis ca parametru.

lor i:=2 to n

do

jrd;

oLose(f

md.

t \'Eite (nr)

{CiC++\

# include <fstream.h>
# ,incLude <nath.h>
ifstream f ( "nr.llllere.

in" ) ,
r:rsigned n,i,nr,ptfloat. xi
void tnain ( )
{ f>>n>>xt
ll=f l-oor (x) ;nr=lt
for (i=2, i<=n, i++)
{ f,>>x;

if (floor(x)
t

Si

!=p&&x!=I)+1)

{nr++tD=f1oor (x) ' }

f .clogeO tcou!<<n!;
)

(C/C+ +)

VARIANTA 031
1.

a.

2.

Avand la dispozilie cifrele 0, 1gi 2 putem genera, in ordine


numere care au suma cifrelor egala cu 2 astfel incat primele 6
generate sunt, in aceasta ordine: 2, 11, 20, 101, 110, 200. FOlOSind
algoritm se genereazd numere cu cifrele 0, 1, 2 gi 3 care au suma
egalA cu 4. Care va li al 7-lea numdrdin aceasta generare ?
103
d. 130
c. 22O
b. 301
Risouns: d.

axa

f1(int x)
{ if (x<=9 )
{ cout<<x+lr printf
tt (a.+2) t

voial

cout<<x+3;

printf

"lidl",

tr%d'r,

Exemplu.: dace figierul


va afiqa pe ecran

Rezolvare: Sortdm vectorul crescetor, apoi facem suma primelor m


Deoarece nu se cere un algoritm eficient, folosim o metodd cat mai
pentru sortare.
(Pascal)

Daca notem

cu lai,bil

segmentelor este intervalul

f,lace
3

=au:r ndt

eficienla

are continutul alaturat, se

(4p.)
5

-7

LO

-5

cele

oL2
-8 30

intervale, i=L,2,...,n, atunci


unde maxa este maximul

Inaxa, minbl,

valorile a1,ar,...,a", iar ninb este minimul dintre valorile b1,br, ...,bn.
oste necesare memorarea valorilor intr-un tablou - determinarea celor doud
se poate face pe mesure ce se citesc datele din figierul de intrare.

.daci

lhn

(6pJ

acestuia.

320

t.tte n din fisier


t.qte mina, maxb din figier
tru i2 , n executi
cltegte a,b din figier

ttDe tablou=array[1..1001of real,


functlon surla (x:vectorin,m:byle) ! reaL i
war i, j ibyle, eux,5rraL,
begin s: =0;
for i:=1 !o n-1 do
for J:.1+1 to n do
begin auxi=xlil; xlil !-xtJI r *[J]
for L:=1 to m do g:=s+xlLl;
guma: =s endi

nunere.txt

35

Scrieti definilia completa a subprogramului Euma care primegte ca


tablou unidimensional
cu cel mult 100 de elemente, numere reale, un
'r
natural n ce reprezinte numerul efectiv de elemente ale tabloului x (n<1
un numer natural m (!>m). Subprogramul returneaze suma obtinute din
mici n elemente ale tabloului x.

o.

comun se va aflga pe ecran valoarea


b) Descrieli in limbaj natural algoritmul. utilizat, justificand

Rispuns: earorzroe

>rrIj

oxistente, determind segmenlul rezultat in urma intersecliei tuturor celor n


Bsgmente date Si afigeazd pe ecran doud numere despe4ite printr-un spaliu ce
reprezinte capetele segmentului cerut. Daca segmentele nu au nici un punct

end
end;

if, xlil

[x,yl

ox

de coordonate.
a) Scrieli in limbajul pascal lc/c** un program eficient din punct de vedere al
tlmpului de executare gi al spatiului de memorare, care citegte din figier datele

(C/C++)

procedure f1(x: integer) i


begin
if x<=9 then
begin
write (x+1) t
f1(x+2 ) ; write (x+3 )

txt

se afle memorate, pe prima linie un numer natural n


(1<n<100), iar pe fiecare dintre urmdtoarele n linii cdte doui numere intregi x,v
desenat pe
(-loo<x<Fxoo) reprezentand capetele cate unui segment

ln figierul rrunere.

f1(5)r?
(PascaI

x[jl=aux; ]

Se considerd subprogramul recursiv f,1 definit aldturat. Ce se va afiga ln

apelului

3.

lloa! luna ( f,l.o6g r<[],lnt n,lne n)


( float s-0, au'r, tnt j.,Jl
lor ( l-1/ l<n, i++ )
for (J.1+1,i<=n,i++)
(aux-xtll; xtil=xljl;
tf, (xtil>xljl)
for (i=1i i<=rn, i++) a+=xlil i
raturn E;

a>maxa

atunci maxaa

b<tninb

alunci minbb

minb<naxa aEuncl Eclle

aLtf,el scrie

maxa,

' ',minb

sunr rnornorato po r)rai mutte linii, numero intregi (cet


l:l .l'J,::{,'y,..".,txt
rlc pc, a,cecaEi linir: riind despdrtite prin care ,n Jpjr.
i]]lj]l-l09]:*'ll'lll1e'lo
rr!(:arc numar avilnd ccl mult 9 ctfre Sd sc determine cele mai micr
doua valbri
rllstincte, fiecare. avand exact doud cifre tiecare, memoiaie in figier
9l sJ se
rrliSr..ze pe ecran aceste valori, despdrtite prin c6ie un
,p"1iu. Orcb
in
iigi"r. n,
-rx) aflS doue astfel de valori, pe ecran sb va afiga vatoarei
o.n) Descrieli in limbaj natural o metoda eficientd de rezolvare din punct de

VABIANTA 032
1.

ln vederea participdrii la un concurs, elevii do la liceul sportiv au dat o


de seleclie, in urma cereia primii 5 au obtinut punctaje egale. in cAte
poate fi formata echipa seleclionatd gtiind ce poate avea doar I membrl,
dintre cei 5, Si cd ordinea acestora in cadrul echipei nu conteazd?

24

b.

d.4

15

30

v()dere al gestiondrii memoriei


$i al timpuluj de execulare.

b) Scrieli programul pascalic/c+*

RAspuns corect: c.
2.

Subprogramul

afis(17)r?

afis

este definit aleturat. Ce se va afiga

(Pascat)

(C./Ct

in

l)unctul a.

urma

Exemplu: dacd figierul rrumere.


lrlilturat, se va afiga pe ecran

t)

Drocedure af,ig (x: integer) t \roid afis (ints x)


begin
t if (rD3)
( cout<<x-1t I printf ( "%d",
if x>3 thn
begin w"rit (x-1) ,
afis (x/3) ;
afia(x aliv 3) t
cout<<x+lt I printf, ( "%du,x

-77

tx!

'

(6p.)

are continutull5 10

LO

: Cele doud numere cerule se determind pe


pe
,

(4p.)

corespunzetor metodei descrise la

r;u ajutorul a trei varjabile simple, nestructurate.

lr -77

30
luo
mdsura citirii numerelor din

write(x+1) end
)
end;
l
Rispuns corect: 154618
in tigura urmdtoare este reprezentatd schema apelurilor recursive in can
marcate valorile

afi

gate.
't6

6ri${17}

...............*

afiq5}_-

ut"tt}_]

186
3.

nrjrim

Scrieli definilia complete a subprogramului


care are ca
numar natural
x<10000, gi returneaz5 cel mai mic num5r prim,

x,

mare decat x.
Exemplu: pentru x=25 subprogramul returneazd numdrul 29, iar pentru
valoarea returnatd va fi 19.
0

Rezolvare:
(Pasca,

{C/C++)

furrc!ioa
lrjrim(x: Longint) : intege4
war prim:boolean; d.! longint;
begin
reDeat
:r: =x+1t

d=2;

endi

long

=x

l-ong x)

alt

tlo{

prim: =truei

while (tl<=x tliv 2) andl prin


if x moat at=o then
prim. =falsei
until pri"ru

nrlrrirn:

int. nrjrim(
( int Drim;
x++

prim=1t
d.o

for

'

(d=2 t d<-x/ 2&&prfun; d++ )

if (r<*"dt==o )pritn=o,
if (pri:n) returrr xi

)while ( rpri.n) t

20

5 012 18

primul=100 sau a1_d.oilea=100 atunci scrie ,0,

altfet scrie prirnul,, ,,aI doilea

VARIANTA 033

1.
a.

Folosind un algoritm de generare putem obline numere naturale da h


pentru valorlll
care au suma cifrelor egalS cu un numer natural e Astfel'
car6
42'
51,60.
24,33'
L5'
gi E=6 se genereazi, in ordine, numerele:
treilea numer generat pentru k=a 9i s=5?

b.

13 01

c.

ro22

Rispuns corect: b.
2.

Subprogramul re este definit aldturat. Ce valoarea


(Pasda4

re(i intege!) integer;


3

begin

if i<9 then re: =3+re ( i+2

10 31

are re ( t ) ? Dar re

lat )

tCiC++\

int r6(int i)
{
if (i<9) return 3+re(i+2)l

f,unctiorr
3

d.

220r

else
1i==9) return -2;

ig

e15e

eLEe

if i=9 then re: =-2


"1"",s3=1+ae(i-1)
endt

3..

1+

1+1+1+1-

x un tablou unidimensionall
cel mult { cifr fiecar6, ll
cu
muli.1oo de el6mnte, numre intregi
parametrul n un numer natural ce reprezint5 numerul efectiv de
Subprogramul

6usf

ln8tlonirii memoriei care citegte din figier datele existente gi determine gi


tllgoaze pe ecran, separate printr-un spaliu, doue numere din figier, x 9i y, undi
r osts cel mai mare numer de trei cifre, iar y este acel numdr pentru
care
ln-yl are valoare minime. Daca sunt mai multe valori pentru y care respecte
rxrrdilia rmpusa
ool{rlra
impuse se va artga
afiga numat
numai una dtntre
dintre ete.
ele.
(10p)
b) Explicali in limbaj natural metoda utilizati justificand eficjenla acesteia.'(4f.j
5
txt LL2
333 1 ,g',q$ 1!|,oo
tro conlinutul aleturat, se va afiga 195797L2
vtloarea: 800 1100.
4sE0{07
89

lxamplu: dace figierul ntrmr.

1 5
4s 85

return 1+re(i-1),

Rispuns corect: 16(1)=10 9i re(14)=3


re ii).g*re tf ) =3+3+re (5i =3+3+3+re (? ) E3+3+3+3+re (9)'12-2
(
16 i1a I .f+ra tf3) E1+l+r ( 12 ) =1*1*1*re ( 11) =1+1+1+1+1+r'

t*t*t*t.t"(r).

prlma llnla a flgierulul nun.r.. rxr 8c alld un numdr natural n (njl00), lar
lln urmetoarole n linll, cAte n numsre naturalo despdqit prin cAte un spallu,
llor;lre avAnd cel mult g cifre. Prlntre aceste numere se'afld cel pulin unui cu 3
llltu qi cel pulin unul cu 4 cifre.
r) Scrieli in limbajul nascar lclc++, un algorjtm eficient din punct de vedere al

primegte prin parametrul

subprograrhului
(n<1oo). Scrieli definilia completd
iabloului
rturneaza suma alementelor tabloului care sunt divizibilg cu S Daca
conllne nlcio valoare divizibile cu 3, subprogramul va returna 0'

pgat

olt.tt. n (din figier)


.n!ru l1, n .x.cu!l
clt.?t. z (dln figier)
rdacl<.999 rluncl
| $rcl>!. tluacl
| | z3x1 xr

I lrltrrr

tGotioa lun3 (x!n cEorrnllDt.) l longlnt,


vrr I rbtt.r a t longinl,

I I

II
|tr
lrl

b.gln
I tr0,

lor ltrl !o n do
l! *lllt3.0 thon

faturn a,

rdrol r>!3 atuaoi

lr3*r

lrrtr.l

I rdrof r<r{ rtunol


llrra

,Int
( lonq .r0,
lor(in! lr0l l<n I l++ )
i! (x lil t3rr0)
.rr+* lil ,

ii 1100 sau 5oo penhu ce 11100-8oo l<. lsoo-5ool.

x(01231--1"1241OOO0

(Pffscn4

tun3 t ra,
Grd'
A$++\
long run3 ( int n l100l

lh
tr
n)

ln flgier se afla un singur numer cu 3 citre, atunci y va fi automat egal cu cal


rlc numer
rmar cu 4 cifre
lilc
cifre din figir, existenta acestuia fiind asigurat; de condiliile
conditiile
Algoritmul asta glicient din punct de vedere al gestiontrii memoriei peritru
utlllzeaze doar variabile simple, nestructurate,

itnr vrclor.arrrytl..1001 o! lnt.gal

rra+xlil

LO2

Retinem cele mai mari doui numerele cu cel mult trei cifre $i cel mai mic
cu { cifre. Numdrul x va li egal.cu cel mai mare numar cu 3 cifre,lar numdrul y
Unul dintre celelalte doud numere calculate, cel pentru care diferenla ceruti esto
Pentru exemplul dat, numerele determinate sunt 5oO, 800 gi 1iOo, xr1800,

Rozolvaret

t7 L97
0 7

;drol lx-r{l<lx-r3l tru rlr-1 rtunol

I yCr{
lrltlrl

Ilt

vrr
aclla rlr, ,, y

1.

Completarea unui bilet de LOTO presupune colorarea a 5 numer dln


49 inscrise pe bilet. O situalie statisticd pe o anumite perioada de tlmp
ci cele mai frecvente numere care au fost extrase la LOTO sunt: 2,
18, 38, 36, 42, 46, 4A cate bilete de 6 numere se pot
folosind doar aceste valori gtiind cd numerul 42 va fi colorat pe fiecaro

2L

b. 5!

c.

d.

42

55

Rispuns corect: a.
2.

i, lirrrl)aj natrrrar rlr{rtorla


jrstiti.alnd eticienlir accsteia, (4p.)
'tili/..111
Rdspuns. Algoritrnul este elicient diD
punct do vedere al timpului de executare
pontru cd rezultatul se obline direct, fdrd parcurgerea vectorului.
Valoarea
frrrnizalS este egale cu primul element al tablouluj dlca girul este descrescator
b) Explicoti

VARIANTA 034

Se considere definit subprogramul f. Scrieli doud valori naturale, x1 9i :l2,


(*L*x2, zL<L2 9i x2<12) pentru care f, (*1 )=f(x2).
(Pasca|J

{C/C+*1

fuDction f ( i: integer) : integert


begin
if i>12 then f !=1

elae f : =!.+f ( i+2 )

int f,(int i)
t

$i cu ultimul element atunci cand girul este crescdtor.

c) Pe prima'linie a figierului numere. rxr, se afle memorat pe prima linie un


numdr natural n (n<=1991, iar pe fiecare dintre urmdtoareie n linij, cAte n
|umere intregi cu cel mult 4 cifre fiecare. Scrieli programul pascill^
lclc.+ care
oitegte din fisier datele existente, determind liniile din figier pe care s_au
rnemorat in ordine termenii unei progresii aritmetice gi aiigeaza pe ecran,

lolosind apeluri ale subprogramului max cel mai mare numdr (diferit de cel
situat
pe prima linie) din figier, care in plus este termenul unei progresii aritmetice.

(10p.)

Exemplu: dace figierul


continutul alSturat,

i,f (i>12) return L,


else return l+f ( l+

Rispuns corect: oricare dintre perechile


(L,2), (3,4) , (5,5), (7, S), (9,10).

punct de vedere al timpului de executare.

Rezolvare:
Rezolvarea descrisa
incepand cu pozilia

in

rn

1.

(Pasca,

tyDe

continuare presupune elementele memorate

vector=array[1..1001 of, intege4


function
max (x 3vectorin :byte) : integert
begin
if x[1] <x12l then tnax:=xlnl
else max:=x[1];

int
t

Lf

tCiC++)

nax

int

xI1001,

(x [ 0l <x t1] )

return x [n-1] i
else return x[0]

are
deoarece

(-9 -7 -5 -3 -1),
(50 40 30 20 10) 9i
(18 17 15 15 14)
: Pentru a putea apela

a) Subprogramul nax primeste ca parametru un tablou unidimensional rl I


mult 100 de elemente numere intregi, care sunt, in ordine' termenll
progresii antmetice 9i un numdr natural n, care reprezinte dimensiunea tab
b"ri"1i O"Rni1i" complete a subprogramului max care returneazd cel mal
termen al progresiei arilmetice. Alegeti un algoritm de rezolvare

lxr

progresiile aritmetice sunt:

endl;

3.

numere.

se va afiga 50,

57 3! 9
-9 -7 -5 -3 -!
258
14 1l-

s0 40
18 17

30
16

20
15

10
14

subprogramul mar< este necesare memorarea


valorilor aflate pe cate o linie a figierului intr-un tablou unidimensional. Dace
vectorului sunt, in ordine, termenii unei progresii aritmetice, atunci se
cel mai mare termen al progresiei memorate $i se actualizeaze valoarea
care retine maximul cerut.

-10000

(sau orice valoare strict mai mlce decat

t.ele n (din fiqier)


tru il,n executi
lpentru j1,n execute
Ilt citegte xj (din fi;ier)
ratiexr-xr; i3
tcat timp i(n Si xi-xi_r=ratie
lIlii+1
ldac5 i>n atunci
I maxl rnax (x, n)
I pdaci rnaxl>rnaxp atunci
ll ma:<pmaxl

-sees)

lrl
l1

eBdi
trra maxp>-10000 atunci

lcrie m rf)
tfel
rcTie Nf,I EXISTA

PRoGRxsII ARITMETICE IN

ISIER

.)

Scrlell definllla complet6 a unul subprogram recurslv run care prlmogta prln
x un numdr natural de cel mult 4 cifre gi returneaze suma divizorllor
numdrului x, diferifi de 1 gi de el insugl. Exemplu: dacd x.l0 se va returna

VAFIANTA 035
de la

rla

ai
permutarilor

a.

cifro, avand la dispozi[le


g
9, se poate utiliza un algodtm echivalont cu algoritmul do

Pentru generarea tuturor multimilor de cAte

1.

de 5

(z.z+s).

valoaroa 7
b) Scrieli programul pa8cai.

c.
d.

Subprogramul f

elemente

este definit alaturat

spafiu.

Ce se va afisa in

Exemplu: dacd

write

(CIC+ t)
&a,lnt
f(int,
voidt
integer)
i
integrtb:
t

a=a-5tb=a-2i
cout<<a<<bi

Printf

endi

( r'7"41%alf .,

r,

(Pascall

arm(xrword) lwordt
d, s:wordt
r0t
al3

then

n (o <n<
Figierul texl nurnere. in conline pe prima linie un numdr natural
fiecare,
cifre
iai pe a doua linie n numere naturale cu cel mult 9
cete un spaliu.

S"ii"!i un program pascal- lc,/c++ care c$eqte toate nuTerele

qf

lrE

LOL

92

208

27 92

se vor afiga sunt:

if,

daci

prima cifrd este egald cu ultima.

(din figier)
executd
iL,n
rD6ntru
(din
figier)
a
citegte
I
a*auxa
I
I plt tfunp a>9 executi

citelte

II
lrl

a: =s+d,t

tru il,n

alteste x
Vr

suItl

executa

(x)

lrr
lt

tru i1,n-1 executE


.ntru ji+1/n execute
f.daci v!>vl atuncl
auxv1
I

I
Il-|

vrvr
vrauxr

a ta/101

t 10=a atunci
I rdaci a-aux a-au!r,'
scrie
'
I I

suma
O.

(x%dl==0)

a=s+di

553roL72742

Rezolvare: Solu{ia descrisd in continuare citegte numerele din figier $i verifice,


flecare dintre ele,

2 este 0,

(C/C*)
unsigned sun (unaigrred x)
( unsigned d, s=0,
for ( d.=2 i d<=x/2 td++)

rturn si
)

gi apoi afigarea elementelor tabloului pe ecran.

(l

55 10? 3

valorile afi$ate pe

tolulia descrisi in conlinuare presupune memorarea intr-un tablou unidimensional


divizorilor numerelor citite, ordonarea crescitoare a elementelor acestuj

pe a doua
afigeazi pe ecian, separate prin cAte un spiliu,-numerele de
figierului, care incep 9i se termind cu aceeagi cifrd'

Exemplu: daci figierul numere. in


are continutul aleturat, numerele ce

=2 to x d.iv

ll x noal al=o

Respuns corect: 42-1-3

3.

10 2 33 E LL

dlvizorilor lui 33 este 14, suma divizorilor lui 6 este 5, suma divizorilor lui 11 este

(a, b)

gi numerele citite sunt

deoarece suma divizorilor lui 10 este 7, suma divizorilor lui

(Pasca4

Drocedula f(var
bgin
a: =a-5 ib: =a-2 i

n=5

ecranvorfi:005?14

urma

r""uan1-"i de mai ios, in care variabilele a 9i b sunt de tip intreg?

g=!; !=9; f (b, a) , f (b,b)

(4p)

lc/c++ care citegte de la tastature un numer natural


n (0<n<100), apoi n numere naturale (cu cel mult 4 cifre tiecare). Programul
dotermina, folosind apeluri utile ale subprogramului stlllr, pentru fiecare numdr
natural citit suma divizorilor sai proprii gi afigeaze pe ecran sumele determinate, in
ordinea crescetoare a valorilor lor, separate prin cate un
(6pJ

submullimilor mullimii tx, 2, 3,4,s, 6'7, 8, 9,


combinerilor de 9 elemente luate cate 5
aranjamentelor de 9 elemente luate cate 5
Rdspuns corect: c.

b.

2.

parametrul

lru iel,n executi


tsri vr,, '

ru

VARIANTA 036
1.

scif

returneaze suma cifrelor unui numar natural


parameiru. Care este valoarea expresiei scif (scif ( 518) +gcif ( 518 ) ) ?
d,
c. 28
b, 10
a.
Subprogramul

"X4

Rispuns corect 3 b.

2.

Utilizem metoda backtracking pentru generarea tuturor modalitetilor de


numarul 9 ca sume a oel pulin doud numere naturale nenule
Termenii fiecdrei sume sunt in ordine strict crescetoare Solutiile se

CO

l1, n executi
citegte x (din fi9ier)
c cif,ra (x)
fdacd c>-1 atunci
F"," ? F./2+L
I

SOI

Iqt

met;de penku scrierea lui 12. Scrieli, in ordinea generdrll


"*u"i"""u"Si
soluliile de fotma 2+. . .
Rispuns corect: 2+3+7
2+4+6

a) Sa se scrie defini,tia completa a subprogramului

cif ra-

L4 ,0 , -r execute

eiista. Rteqeti o metoda de rezolvare eficiente ca timp de executare'

impare' pro(
fisierului au numai cifre impare'
toate nume-reie de pe
oe a doua linie a figierului
ExrsrA.
NU
va afiga mesajul
.

in

are

369 LX3 2 0 33 135{

conlinutul aleturat pe ecran se va afiga:


(6pJ
64220

c) Descrieti succint in limbaj hatural, metoda de rezolvare folositd.


ce conste eficienla ei (3 - 4 rinduri).

Rezolvare:

a)

l,Pasca,

function cif ra ( a 3\dord) : integert

begiD
if, a=0 then cifra

els
begin

=0

while a notl 2<>0 do


a: =a div 10;
if a<>0 theq cifra3=a Inod 10
e16e cif,la: =-1i
endt

endt

{CiC++J

int cif,ra (unsignecl


t

a)

if (a==0 ) return 0t
white (a>0 )
t

if

(a%2==0 )

ret'urn

a=a/ lO;
)

leturn -1i

I scrie 2*i
ILf Fr Fr-1
t

l1

a%!Q

Nu ExrsTA

80 utilizeaza un vector F cu 5 elemente, corespunzdtoare celor 5 cifre pare.


element Flcl memoreazd numerul apariliilor cifrei 2*c ca ultima cifre in
numerelor. Afigarea numdrului se face prin parcurgerea vectorului incepAnd cu

despargte piin cdte un spa[iu, fiecaie numdr fiind format din cel mult
Scrieli un program pascaL lc./c++ .care citeste num-erele 9T JiqpFl
utile la subprogramului cirra, cel mai,maro
F e;;;;; iotoiind apeturiultimele
cifre paie ale fiecdrui element, dacd
lire se 6oate formi cu

Exemplu: dace fisierul bac

rcat_timp Fi>o execute

torle

b) Pe Drima linie a fisierului bac. in se aflS un numdr natural


(ns15000),larpeaoouallI1leallvlelulul5cdlldull
tir<rsriool, iar pe a d5ua linie a flgierului se afld un gir de n numere
{

ok1

ok=l- atunci

2+LO

Subprogramul cif,ra primeSte prin intermediul parametrului a un


natural iu cel mult 4 cifre 9i returneaze ultima cifre pare a sa Dace
nu con,tine cifre pare subprogramul intoarce valoarea -1 De exemplu'
a=8345, Subprogramul va returna 4

{ oxcutl

trrE. n (din figie!)

in ordinea: i+2+6, 1+3+5, L+g, 2+3+4, 2+7, 3+6 9i 4+5'

3.

L0,

rro

4, corespunzdtoare cifrei 8 $i terminand cu pozilia o, corespunzetoare cifrei o.

este elicient din punct de vedere al timpului de executare intrucat lace o


parcurgere a girului de numere, parcurgere absolut necesard gi, prin
vectorului de frecvente, evitd operalia de ordonare.

r)

Scrloll doar antetul subprogramulul nrdlv, care prlmegts prln lntermodlul


paramotrulul x un numdr natural nenul cu cel mult a clfrs,
returneaze

VARIANTA 037

numdrul do dlvlzorl prlml al lul

S utllizeazA un algorltm pontru a gonera ln ordlne lexlcograflcd lnverei


parmutdrlle mulllmil {1,2,3,{,5}. Prlmale patru permuterl genoratc

1,

511231, 511213. A CinCea permutare

5t311, 5{312,

c. 54132

b,5{321

a.53{21

estar

d. 5{12!

R{3pun3 corectt c,

2.

Considerdm subprogramul

definit .al6turat. Ce valoara are

IO,LL'I

| (Lr,,7 | 1
(C/Ct

(Pascatl

+l

luncllon ! (,l, y! lntog.r) tlntag.r, lnt f i,nt x, lnt


{i.f (*<ry) r.tufn
b.gln
rrl-y
lf. !t<ry th.n ! t
rfurn f (y-x,x-1) +t
alrc f r -f (y-x, rl-1) +3
(

an6,
Rlspuns coroct

3.
.,

y)

(4pJ
prlma
b) Pe
lldls a figlerulul bac. ln s6 afle un numar natural nenul n
(n11000), lar pe a doua linie a figierului Ee afld un gir format din n numero
naturale nenuls, despd(lte prin cate un spatiu, fiecare num6r fiind format din
cgl mult I cltro. Scrlell un program pesc&l lc/c.|.r care ciiegte numerele din
flglor 9l care afigeaze pe ecran, folosind apeluri utile ale subprogramului
nrttr.v, prima gi ultlma valoare dln qirul celor a numere citite, carg au un
numdr par ds divizori primi. Numerele afigatg vor fi separate printr-un spaliu.

Exomplu: Dace fitierul bac . ln ars continutul


aldturat pe ecran seva afigar 2o

ll
10 (6p.) 130 105 20 1{0 710 5

Rezolvare:

Scrieti un program pa66aL

c/c++

care citegte numerele naturale nenula

unidimensional cu n elemente numere


Programul modifica tabloul, permutand
mult
4
cifre.
cel
fiecare avand
acestuia 9i afigeazd pe ecran'
pozilii
elementele
spre stenga,
cu k
oblinut
tabloului
prin cAte un spaiiu, elementele

Exemplu: daci

n'4, k=3

ordine elementele:

L2

9i vectorul w=(r,2,3,1)' atunci se vor

3.

functlon dlvl zor ( n ttrordl) !lntegr,


t+) Lnt dlvlzor (un6lg:16d1 n)

al eascat)
(C/C

t f(?,111--4 't(LL,7\-'LL

tr'(kin<loo) gi un tablou

b)

citeete n (din fifie!)


prln0

i1,n executl
citegte
x (din figier)
I
I rdact nrdiv{x)%2=O auunci
I .l
;dacl prim=o atunci
Erentnr

I I
ll

Ilr

Prtrnx

elemente din vector la


acestuia gi apoi face o translalie cetre stanga a celor n elemente allate pe

| | ultimx
lLl
l.|

k+1, k+2,..., k+n.


citeEte n, k

Tdaca prim=o atunci


I scrie NU EXISTA

Rezolvale: Solulia propuse copiaze primele

fpnlru i1,n execute

I
I

citegte

v1

rDntru i1. k executi


v"*revi
I

\l

rpnt!'u

I|l

execute

evk*l

il,n executa
scrie V1,' '

fDentru

I
\t

i1,n

vr

9l

x.

laLtfel
Iqt scrie prim, ultim

VARIANTA 038
Utilizem metoda backtracking pentru generarea tuturor modalitSlilor de a
numerul 9 ca sum6 a cel pu.tin doue numere nbturale nenule dlstincte. Tel

1.

a.3

fiecdrei sume sunt in ordine strict cresc5toare. Soluliile se


ordinea: 1+2+6, 1+3+5, 1+8, 2+3+4, 2+'7, 3+6 si 4+5. se
exact aceeagi metode pentru scrierea lui 8. Cete solulii vorfi generate?

c.6

b.4

d.s

Respuns corect 3 d.

2.

Pentru definilia alaturata a subprogramului sc, stabilili ce valoare are eo(


Dar

(9

01324 ) ?

function

tt)iC't-4

lPascal)

sc (x:

in! sc(long x)
{ if (x<10 ) relurn x,

Longin!) : integert

begin
return
if x<10 then sc=x
else sc.:;sc(r< div 10)+r< mod 10 ]

nenul de o cifrer Subprogramul determin5 eliminarea tuturor cifrelor lui x mal


strict decat y gi furfiizeaza numerul ob'linut tot prin intermediul
Dace toate cifrele lui x sunt mai mari strict decat y, atunci x va primi valoarA
Exemplu: dacd x=37559 9iv=6, dupd apel :r=365,iar y=6.

Rezolvare:

tPasca,

rrnou:=0;p:=X;
whiLe x<>0 do begin

if ( x

l*C+",i

void de1(tong &x,int y)


{ long xnou=O,P=1;
if (x<>0 )
{ while (x ! =0 )
t
'if (x2"10<=Y)
{xnou=xlrou+p* (x""L0
p=p*10;
)
x=x/LQ;

modl Xo<=y)then

begin

:rnou: =xnou+p* (x mod. 10 ) t


p! =p*10
end;
x: =x div 10
end;
if xnou<>o !h6n x ! =xnou

else x:=-1;

end.

end.t

)r

if
)

doud variabile transmise prin intermediul parametrilor

!)

Scrieli in limbajul

xnou ! =0 ):<*xnout

else x=-1;

rascal, lclc++ definilia complete

Si

y.

a subprogramului

inrer.
(4p.)

b) Pe prima linie'a figierului bac.itl se afla un numer natural nenul n<1000, iar
po a doua linie a figierului se aflS un gir de n numere naturale nenule, despdrtite
prin cate un spaliu, fiecare numdr fiind format din cel mult 4 cifre. Scrieti un

program pa6cal lc/c++ care afigeaze pe ecran, in ordine crescetoare, numerele


aflate pe a doua linie a fisierului. Numerele vor fi afigate pe o Eingura linie, iar intre
doud numere se va lasa un spaliu. Se vor folosi apeluri utile ale subprogramului

lnter.

(6pJ

Rezolvare: a)

c (x/10 ) +x%10,

end;
Rispuns corect! sc(10)=1' sc(.901324)=19 (se calculeaza suma cifrlof
3. Scrie.ti in limbajul pescal lcy'ce{ definilia completd a subprogramului Dl
are doi parametri: x un numAr intreg de cel mult 9 cifre, 9i v un numar

procedure dlel (var x:1ongint,


y3 integer) t
var xnou, I): Iong,int i
begin
if x<>0 then begin

So considerd subprogramul lnlor cu doi parametrii: x gi y (numere intregi


lormate din cel mult patru cifre fiecare)i subprogramul interschimbl valorile a

\U U+1'l

{Pascalt

inter(var x,y: integer),


t t integert
z: =xi r<:=yi y:=z end;

void. inter(int
{in! z;

z=xi x=yi

y=z

&x,int

&y)

Solulia descrisd in continuare in pseudocod memoreazd valorile din figier intr-un


unidimensional Si le ordoneazd crescdtor.

te n (din f,j.Fier)
i1, n executi
cilegte Ar (din fi$ier)
i1,n-1 executd

r.

t-.t

executA
(pe ecran)

acrie Ai,' '

VARIANTA 039

Utilizem metoda backtracking pentru generarea tuturor modalitdlllor


s"ii" nrmarrf 5 ca sume a cel pulin doue numere naturale nenule Te
fiecerei sume sunt in ordine crescetoare. Soluliile se genereaze in ordl

1.

L+L+L+1"+2, 1+1+1+3, 'J'+L+2+2, 1+L+{' 1+l


2+2+2, 2+4 Si 3+3. Se aplicd exact aceea9i metode

tii+t+f+f+f,
L+5,

scrierea lui 9. Care este penultima solutie?


c,4+5
b. 3+5
a.3+3+3

d.

2+7

Pentru definitja alaturate a subprogramului f,, ce valoare are


(PascaD

function f (x; integr) : integer;

int f, (int

begln

x<=4 ltten f: q:<*x-3


else f:=f (x-3 ) +4

if

if

(3 )

3 Dar

f (I )?

Exomplu: pentru n=1.93124 se obline girul de valori 19312,1931, 193, 19.


dln care se vor afiga pe ecran doar valorile x93x 193 19 (nu neapdrat in

(C/C+ +\

x)

) return
return f,(x-3)+4;l
(r.<=4

acoaste ordine).

tl

Respuns corect: f,(3)=5,f (8)=9 (f (8)=f (5) +4=f (21+414=2*2-3+4+{)

(
Pe prima linie a fisierului bac.in se afle un numar natural nenul
iar pe a doua linie a figierului se afla un 9ir format din n numere
despa4ite prin cate un ipaliu, fiecare numer fiind format din..cel..mult
'un program Pascal
din figier^91s"iL1i
lc/c'ri care citegte. valortle.
pare
din
9ir sunt in
afigea.d pe'"cian mesajul DA daci toate elementele

crescetoare gi mesajul Nu in caz contrar'


Exemplu: daci figierul bac. in are conlinutul
(10pJ
aleturat pe ecran se va afiga:

DA

142L

citeEte n (din figier)


xo
ok

i1
pat linp i<=n gi ok=1 executa
lciteste y (tlin figier)
i
4aca 142=0 atunci
I
I r daca Y<:t atunci

l'

I I

I I
I
lll*v
llrl
Itl
lii+x
[t

oko

a1'tf e1

rdacd ok=1 atunci Bcrie


aLtfel scrLe
I
LE

DA

Nu

(Pascal)

tunction pr(at longint) :byte,

b)

oltegte

TrePeta

I n tnl10l
| 4aea Pr (n) =1 atunci
scrie n
I I
lrl
ll
pana cand n<=99

I'

lro tr3 L2 33 !2

(6pJ

Rozolvare:

endi

3.

b) Considerdm un numdr natural nenul n>99 cu cel mult 9 cifre. Din n se ob[ine
un Sir de valori prin eliminarea succesivd a ultimei cifre, apoi a ultimelor doue
clfre, apoi a ultimelor trei cifre etc., pane ce se obtine un numer de doud cifre,
cn in exerpplu. Se se realizeze un program pascallc/c++ care citegte de la

t0stature numerul n gi care, folosind apeluri utile ale subprogramului pr,


nflgeazd pe ecran, separate prin cate un spa,tiu, doar valorile prime din $irul
numerelor oblinute din n, prin procedeul descris mai sus.

RAspuns corect: b.

2.

So consldrd subprogramul pr care prlmegto prln lntormsdlul parametrulul a un


IrJrndr natural nenul cu cel mult 9 clfre gl returneaze dacd numdrul est6 prlm gl
0 in caz contlar.
l) Scrieli numai Eintetul subprogramului pr.
(4p)

42

(C/C+*)

int pr ( l-ong a)

VARIANTA

:rt tirqr 1<-n tl ol(.1 altacuEl


citcttc z (din fi9i6r)

O4O

pdactr 2ts2-0 aluncL

I PacA z<x atunci oko


I I altfeL xz
lrl
lattfel

1. Utilizem metoda backtracking pentru generarea tuturor modalitalilor de a

numarul 6 ca sumd a cel pulin doud numere naturale nenule. Termenll


ordine crescdtoare. Solutiile se genereazd in
sume sunt

in

1+1+1+1+1+1, L+L+L+L+2, 1+1+1+3, 1+!+2+2, 7+L+4,


L+5, 2+2+2, 2+4 qi 3+3. Se aplice exact aceeagi metodd pentru
lui 9. Cate solu-tii de forma 2+. . . vor fi generate?

a,2b,3c.4

d.

,
2. in secven1a aldturate variabilele i, j
Respuns corect:

(2+2+2+3

2+2+5
9i

2+3+4,

aux

tablou unidimensional ale c5rui elemente

2+71

sunt intregi, iar

au

urmatoarele valori: v

vl2l=x3, vt3l=1, vt4l=5, vt5l=-4. Care este numdrul de


care se efectueaze in urma executerii secvenlei aldturate? Dati un
alte 5 valori pentru elementele tabloului astfel incal, in urma execulerii
alaturate, se nu se efectueze nicio interschimbare.

(Pasca,

for ir.1 to 4 do
for j:=5 downto i+1
.
if vlil <vljl then

{C.'C

+ +)

aux:=vlil;
vlil:=vtjl,
vljl:=aux

aux=vlil;

numere nu se efectueazd nicio schimbare (ex: 10, 8, 7, 3 , 1).


3. a) Pe prima linie a figierului bac.in se afla un numar natural nenul (
iar pe a doua linie a figierului se afle un $ir format din n numere naturale,

prin cate un spatiu, fiecare numar fiind format din cel mult 4 cifre.
program pa6ca1 lc/c++ care citeste numerele din figier 9i care afigeaza
mesajul DA dace elementele pare in 9ir sunt in ordino cresceloare, iar cel6
sunt in ordine descrescetoare qi mesajul Nu in caz contrar. Alegeli un
eficient ca timp de executare gi spaliu de memorie utilizat.

metoda utilizate, justificand

acesteia.

Exemplu: dacd figierul bac

in

are

Rezolvare:
a)

citeste n (din f,i;ie!)

xo;ye9999r ok1

i1

NIt

lCiC'r'rj

function
Bdiv (y: longint ) !longin!t
var s, d: longin!;
begin
s.=yi

!.ong Ediv(long Y)

{long

s=Y,

d,

f,or ( d.=1; d<=y/2 t d++ )


if (t&,tl==0 ) s=s+alt'
return st l

for d: =1 to y dliv 2 do
if y rBotl d= 0 a5"r, s =s+dl;
3

sdiv
endi

! =E

b) Scrieli un program Fa$c&lic/c++ care citeqte de la tastaturd un numer


natural ,l' (n<10000) 9i care, folosind apeluri ale subprogramului sdiv verificd
daca suma divizorilor lui n esle un numer prim. in caz afirmativ' programul va
afiga pe ecran mesajul DA 9i in caz contrar va aliga mesajul Nu

Eiemplu: dace n=206, atunci programul va afiga: Nu (1+2+103+2

110

3f1' 12 42
+3.
-12
22,L L3 L1

conlinutul aleturat pe ecran se va afiga: ] 19 -

DA

o.a'

tPascal)

in limbaj natural,

scrie
laltfeL
scrie
I

Bezolvare:

Rispuns corect: 3 interschimbdri; pentru orice $ir descrescelor

Descrieti succint,

fdac5 ok=1 atunci

prin
a) Scrieli definilia complet6 a subprogramului saliv care primeste
suma
returneazd
5
cifre
cel
mult
cu
9i
lntermediul parametruluiy un numAr natural
tuturor divizorilor numerului v.

vtil=vljl,
vlil=aux;l

end;

ultimul numer impar citit.

Algoritmul este elicient din punct de


vedere al spatiului de memorie intrucat
uttlizeaze un numar minim de variabile
simple, nestructurate, 9i din punct de
vedere al timpului de execulare pentru
ce face o singur5 parcurgere a girului
de numere.

lri+r
ll

l.I

for(i=1ri<5ri++)
f,or(j=5tj>itj--)
if(vtil<vtjl)

do

begin

b)

I pace z>y atunci okO


I I aLtf1 Yez
llr
tt

Flccaro numar a cltll (]lll ll9l9l puqr9


irrh0la executarea algorltmulul, dacd
osto par gi mai mic decet ullimul numer
par citit sau impar gi mai mare decel

312 nu este un numar Prim).

Rezolvare:
n

citegte
b) Pentru a verifica dacd qirul
num.erele pare este gir crescetor,
numerelor impare este
suficient sA retinem valoarea ullim
par citil, x, 9i valoarea ultimulul
impar citlt, y.

nEd.iv (n)
1 daci sdiv(n)=1+n

Ecrie
I altfel
Il

Nu

alunci scrie

DA

5=3 L2, iar

Flglerul toxt nun

VARIANTA 041

.
a.
b.
c.
d.

2.

Cea mai maro dlntre valorile stricl nogaflve memorate intr-un

unidimensional NU exista dacA:


in tablou sunt memorate numai valori strict negative
in tablou existd cel pulin o valoare strict negattve
in tablou sunt memorale valorj nenule pozitive gi negative
in tablou sunt memorate numai valori slrict pozitive
Rispuns corect: d,

Exmplu: dacd figierul nurnere.

$tiind cd p este un vector cu 3 componente intregi (vector declaral


stabilili cu ce lrebuie inlocuite d gi p in definilia subprogramului

astfel incat in urma apelului c(x) l(0) se sF afigeze toate numerele

3521531
atunci pe ecran se va afiga:
conste eficienla ei (3

var i: inteqer;

end
end.

(p

[1],

t2i, D t3t ) lprinrf


)

"%d%d%arrr", p io

i,p f rl,D

t2

l,

rC C",1
I orsr(int
of linr
atj, int

function DIST(a3vector,.
nsinteger): inreser;
var i,i,bun:integert
lrgin bpl:=1;
for i:=1 !o n-1 do
begin
if abs(atil-ati+11)=1
lhen bunl=0t

for j:=i+1 to n do
if a til =atjl theh

endl;

DIST s =burl

endt

bun!=0

a8sigr(f, 'nunere.txt') t
reeet(f); readln(f,n),

rnax:

=-1;

Eo n do begin
r6ad(f,!r) r
if x<rux then inc(ft)
elEe if x>nan< tlrcn

for i:=1

l(inr i, j,

2.

(6P)

(4p)

4 randuri).

begin

Sd se scrie.un subprogram DrsT, cu 2 patamelri, care prime$te prjn intermc


parametrului a un vector cu cel mult 1oo de elemente, num6re;aturale
dE
mult 4 cifre fiecare gi prin intermediul parametrului n un numdr natural
n:100, c9 repre-zintd numerul de elemente din-tablou. Subprogramul retu
valoarea 1 daci toate elementele vectorului L suni orstiricte"si oaca Oit
absolutd a oricaror doud elemente vecine din vector eiie -Oite'iita Oe
r,
returnand valoarea O.

integer;

\Pascah

Respuns corect: (Pascal) d se inlocuiegte cu 9 gi cu k<=2 .


B
(C/C++) a se inlocuiegte cu 9 qi p cu k<2.

Rezolvare: { Pascal
ttrDe vecror=arrayl1..100]

var f:textt
n,i,mat<,f,r.xrIongintt

cout<<p [0] <<p [1] <<p [2 ] <<endlr

are urmetorul conlinut:

Rezolvare: a)

{int i;
begin
for (i=Xr i<=d. i++)
for i:=L to d do begin { p lkl =i;
P tkl : =i'
if(B)c(k+x) t
if B rhen. c (k+1)
else
writeln

txt

b)Descrietisuccint,inlimbajnatural,metodaderezolvarefolositd,explicandince

(C/C+ +)

else

numdr natural n

(Pascall

r.. Er<l conllno po prlma llnle un

(o<n<10o0oo), lar pe doua llnle un 9lr format dln n clfre, soparato prln cato un
spaliu.
lcare
determind in mod eficient, din punct
a) Scrloli un program Pascal" lc,/c++
pe a
d'e vedere al timpului de executare, cea mai mare cifre dintre cele situate
doua linie a figierului, precum 9i numerul de aparitii ale acesteia Cele doud
numere voBfi a'figate pe o singura linie a ecranului, separate printr-un spatiu'

n)

I for (i=1ri<nri++)(
I ir(aus(atij-"liirl l==rl
return 0;
I
I fo"(j=i*frj<=n;j++)
irt"ti:==atjjj return
iI
)
| return !.;

begin

max3=xi

end;

nal

fr!=1

cloBe(f),
t{rite(nax,' ', fr)

rctC#t
|#include<fEErean.
sErealn

r
h>
'
l*lnclucre<E
fr,xt
i,max,
n,
ilong
litetream f ( "numere ' txt"
I

'

ivoitt nain
lt
; f >>n;max=-1,'
lfor(i=1;i<=n;i++)
| {f>>x;
it (*==rnax) fr++;
i
if (x>tnax)
else
I
t*1=5; f r=1; )
I
i )
I cout<<max<<" "<<f,rt
i f,.cloEeo t
()

endl.

b) Se citegte numerul n din figier, iar apoi se citesc pe rand celelalte numere
(iifre) in variabila x. Se compara x cu valoarea relinutd in tnax Dace x este
egal cu max, atunci se incrementeaze fr' iar dace x este mai mare decat nax'

fr

se seteaze pe 1.
atunci se modificd max 9i
Algoritmul este eficient din punct de vedere al timpului de executare pentru ce
se parcurge o singure date fi9ierul.
Ol

1,
a.

2.

Utiliz6nd metoda backtracking se genereaze toate permutarile


[L,2,3,41. Daca primele trei pbrmuteri generate sunt, in acestA
1234, L243, 1324 precizali care este permutarea generatd imedlal

34L2.

32L4
b. 3413
c. 4L23
d. 3421
Rispuns corect: d.
Subprogramul f are definilia aleturatA. Ce valoare arc f (7)?

Darf(10o)?

f,unction

HaSCAt)

f, (x I

begin

inleger) : inreger;

Scrieti definitia completd a unui subprogram p, cu trei parametri, care


prin intermediul primului parametru, a, un tablou unidjmensional de cel
de numere intregi, cu cel mult 4 cifre fiecare, prin intermediul.celu j de-al
parametru, n, numdrul efectiv de elemente ale tabloului, iar prin
un numdr natural (k<n) Qi returneazd cea mai mare sumd cu k termeni
poate obline adunand k elemente ale tabloului.
este format din elementele

1, 3) atunci pe ecran se va afiga 17.


Rezolvare:
(P6s6al

type

2,

\C,/C++l

long P(int a[], int n, int


vect=array[1. .100lof intege4 t
fuaction P(a:veett n,k:integer) : int i, j, aux;
longintt
long s=0;
var i,j,aux:int.egert
for ( i=1r i<n. i++ )
s ! longint t
f,or ( j =i+1. j <-n- j++)
begin
if(alil<atjl )
sr=0;
{ aux=a I il ;
for i:=1 to n-1 do
alil=atjl'
for jr=i+l to n do
a Ii ] =aux,.
if a til <aljl rhen begin
)
aux:=alil r alil !=aljl t
for (i=1; i<=h; i++) s+=a Ii] ;
aljl ! =auxr endt
return si
for i:=1 to k do s!=s+a[il
P: =s

etrd.

4,

23.

(6p.)
dlunci pe ecran se va afiga: 2 3
in ce
folositS,
explicand
rezolvare
de
b) Descrieli succint, in limba.i natural, metoda
(4pJ
rl(nrstd eficienla ei (3 - 4 rAnduri).
Razolvare: a)
( Pascat
{CiC++)

#include<fstrearn. h>

int *,frlX00l,
longint, x:inEeger;
!rrarray[0..99] of i.ntegert long n, it
,
ifstream f { "nu*"t".
"*a",
tgtt ( t, 'numere. txt') i

Rispuns corect: f(7)=6 gi f(1oo)=96

gi k=4 iar girul

t52L523t

n, I

endi

Exemplu: dacd n=5

I r text t

if x mod 5=O then f3=x


elae f ! =f (x-1)

3.

Scrleli un program psBcal lc/c++ coro'dotrmlnd ln mod eflclent' dln punct


rhr vodere al timpului de executaro, nurn{rfolo ce apar o singurA dati in a doua
lhrlo a figierului. Aceste numere vor fl afigate pe ecran in ordine crescatoare,
d0l)urate prin.cale un spaliu,
!xemplu: dacd figierul numere. txt are urmetorul conlinut:

r)

VARIANTA 042

Figierul text nunrere. rxt ,conline pe prima linie un n umar


(0<n<100000), iar pe a doua linie, separate prin cete un spatiu,
n
naturale formate din cel mult 2 cifre fiecare.

void. nain

(f); readLn(f,,n);
lr=1 tondo

r.rd ( f,

!<)

ll fr [x] <2 then

lnal,

lr=0

uo

l! trtil=1
(f)

inc f,r
(

99 tlo
then write(i,'

t
[r<] )

()

f>>n i

for ( i=1; i< =n; i++ )


{f,>>xr if, (fr[xI<2) frlx]++t]
for ( i=0; i <=9 9, i++ )

if (tr til

') t

==1)

cou!<<i<<" "i

f.close(),

lt)zolvdm problema utilizand vectorul fr. Dupe parcurgerea figierului


t nu se afle in figier, l dace el apare o singure datd 9i 2 in rest.

frtil=0

este eliclent din punct de vedere al timpului de executare pentru ca se

rrqe o singure datd figierul.

Excmplu: dacd llglerul nun

VARIANTA 043
1,

Utilizand metoda backtracking se genereazi numerele formate dln c6te 3


dlstincte din mullimea lL,3, s,71. Dacd primale trei numere genorate 6untl
aceste ordine: 135, 137, 153, care este cel de.al patrulea numdr generet?

a, 315
2.

,,57
b. 173
c,
RlgpunE corect: c,
Subprogramul r arg definltia aldturate. Ce valoare ara f
functlon
lntcger) rLnugr,
b.gln
lf xro thn f r.0
.1s frrf(x-1)+2
f, (x!

cnd,
Rispuns corect3

d,

357

Dar

10 )

lnt f, (lnt x)
{lf (xrro) roturn 0,
olse r6turn f (x-1) +2f
)

elemenlele

(3,12,7,L,4,
(1

Rezolvare:
(Pasca,

{CiC't-+}

type vect=arraytl..X00l of integert long p(int all, inr nl


frlrrctidr p(ainctr nr intgr) lddrrtt (
var i iFtegeri E: longinLi
long s=0;
begin
for ( i=2 ; i <=n; i+=2 )
s:=0i
if,(atil%2!=0)
for i:-1 to n do
s=s+aIi],
if (atil rpd 2=1) anal (i tttotl 2=0) reUurn si
lhen E =s+a Ii] t
)
s

4.

endi
Figierul text nurnere. txt con,tine pe prima linie un numdr natural,
(O<n<loooo0), iar pe a doua linie n cifre, separate prin cate un spaliu.
a) Scrieli un program pasc&:" lc/c*"r. care determind in mod eficient, din
de vedere al timpului de executare, cel mai mare numdr ce se poate forma
toate cifrele conlinute de a doua linie a figierului nurere.txt. N
determinat se va afiga pe ecran.

b) Descdetl succlnt, ln limbaj natural, metoda de rezolvare folosltd, expllcend ln ce


(4pJ
conste eficlenla el (3 - 4 rAnduri).
Razolvaroi a)

n,l,J r longlntr

!rrarrly[0..9] of longlnt,
b.gln
r..lcra ( !, 'nun.r.. txt' ) ,
r.r.t (!) , r.adu,n(!,n) ,
lor lr.1 to n do
brsln
read(f ,x), lnc (fr Ixl ),
.nd,

din tablou.

a este lormat din

(6pJ

atuncl pe ecr;n se va aflga: 9s55321.

:(r Lntaga

f(3)r5 9j f(10)=20

Exemplu: daci n=5, iar girul


atunci la apel se va returna 4.

1331589

vrr lrt.*!,

Scrieli definilia complete a unui subprogram D cu doi parametri, care


prin intermediul primului parametru, n, un numar natural nenul (1<n<100)
prin intermediul celui de'al doilea parametru, !, un tablou unidimensional
elementele numerotate de la 1la n, numere lntregi de cel mult 4 cifre tl(
Subprogramul returneazd suma tuluror numerelor impare aflate ire pozi[il

9.,=A

arc urmltorul contlnut:

lQ/C *+\

(Pasc.r/)

(3)

(6/C++l

(Pa$ca0

3.

r..!xt.

,|

for l:.9
for J:r1 to fr[ll

olos ( f

.nd.

dootnto 0

alo
dlo

*lnc1udl.<

lrtr.l.rrl.

h>

lnt xl
long !r[10],d,L,tt
lfrtr.an f ( "nun.r.. txt'
voldl naln( )
('

f> >n,

for ( lrl l l<rnr l++ )


(f,>>x, frlxl ++, l

for(lr9rl>.0rt--)
for( Jo1, J <.fr It],

wrlt(l),

cou! <<i,

J++)

f.clo8eO,

b) Se citesc pe rand cilrele din figier 9i se contorizeaze in vectorul !r


(frecven+5 ) numerul de aparilii ale flecerei cifre. Se parcurg apoi cifrele de la

frlkl

ori.
9 la o gi fiecare cifrd k se afigeaza pe ecran de
Algoritmul este e{icient din punct de vedere al timpului de executare pentru ce
se parcurge o singura datd figierul.

\(;/(; t t)

(Pa.sr;rrt)

VARIANTA 044

Droc.dura

var

1.

Care dintre urmetoarele variante reprezinte antetul corect al unui


care primegte prin parametrii x $i y doue numere intregi gi furnizgazl

(Pesca4

(6,s)?Dar f (5,

{CiC++.\

irrt f (hl x, int y) ]


{if (rc=y) return x,.
else if (r<t') leturn f (*+1,
else nelurn f (x-L,yl t

3.

naturale cu cel mult 4 cifre fiecare, care afigeazA pe ecran, separate prin

spatiu, numerele aflate in intervalul inchis determinat de valorile a $i b,


sunt petratele unor numere prime.

Exemplu: pentru a=40 gi b=1 se vor afiga valorile:

4 9 25 (nu

aceastd ordine).

i.nc

alo

(nrdiv) t

if nrdiv=1. then
$rite(i, ' ,t t

Figierul text numere. txt conline pe prima linie un numar natural n


(o<n<roo0oo), iar pe a doua linie n numere naturale, formate din cel mult 4
cifre, separate prin cate un spaliu.
punct
a) Scrieli un program ?asca! lclc*+ care determin6 in mod eficient' din
situate
numerelor
in
scrierea
ce
apar
oe veoeie al iimpului de execulare, cilrele
pe a doua linie a figierului. Programul va afiga pe ecran aceste cifre in ordine
crescetoare, separate prin cate un spaliu

Exemplu: daca figierul nurnere

'

!x!

are urm5torul conlinul:

7,
243 32 545 74 12 1344 90
atunci pe ecran seva afiga: o 1

23457g

(6p)

b) Descrieti succint, in limbaj natural, metoda de rezolvare folositd, explicand in ce


(4p')
constd eficienla ei (3 - 4
(CiC

tPasca,

Scrieti definitia completd a unui subprogram p, cu doi parametn, a gi b,

Rezolvare: Observem ca

int nrd iv=o,


for(int j=2 t j <=! / 2 i i++ I
if ( i""j ==0 ) nrd.iv++i
if (nraliv==1)
cout(<i<<",,;

Rezolvare: a)

f(5,5)=5 $i f(5,10)

este pitratul perfect al unui numar pnm

numai dace el are un singur divizor propriu.

f,ot jt=2 to i dliv 2


if i noal j=0 then

for ir=a to b do begin


nrd,ivl=0;

randuri).

end;

Respuns corect:

lf, (a>b) (lnt 61P3=616c!l brauxl


for ( i=a; i<=b; l++ )

au:l ! =ai a: =bib! =aux i end;

4.

are definilia aleturate. Cevaloarearef

fwlctictrr f (:r,y3integeE ) iirrtegert


begir
if x=y t}lsr f :{<
eLse if x3' tltgr f:=f(x+1,y-1)
else f:=f(x-l,y)

nrdl-v t Lntogr t

elrd
6nd.

(C/C+;1
a. irrt mthin(ht x, irrt y, irr! m)
b. voidl nirrirn(:irrt x,irrt y, jrrt fdn)
C. ht ndrrfui(furt x, irrt y)
d, void trtirdln(ht& x,irrt& y, jrrt m)
Rispuns corect: b.

J.

d P(tnt a, lnt b)

lntogsr)

tf a>b th6n besin

\Pascaf)
a. function minim (r<, y 3 integer) . integert
b, procedure minim (x, y : intege!, var m : inleger) t
C. procedure minim(x, y,m: inleger) t
d. procedure minim (var r<, y : integer, m : integer ) ;

Subprogramul

(a, bt

bcgln

parametrulm cea mai mice dintre cele doua valori x gi y?

2,

aux, j.,

begin
assigrr

ifslrean f ( "nrrmere. txt" ) t


void main ( )

f, 'numere.tx!') t

f>>ni
for ( i=1i i<=nr i++
{f>>x;

reset (f) r readLn(f,n);


for i:=1 to n do begin
read(f,x) t
repeat

clx mod L0l:=1;x:=x div


untit x=0;
endi

for i:=0 to 9 do
if nrlil>0 then \dribe(i)
cl.ose ( f )

nd.

t-+\

#incluale<f 9trea.n. h>


int. x,c[1Ol; long n, i;

var f: text;
x ! integer;
n, i: lonEintt
c:arraylo..91 of int,

do{

c Irte"L07 =L,,a/ =L0

10

)whiIe(x);

for ( i=0 r i<=9 r i++ )


if (clil )cout<<i<<" "t
f. close ( ) t
I

p, Do

crreBc pe rano numgrorg otn ngter tn vaflaD a x gt 8e


vectorul o (caract,arltt,lc ) numdrul de aparllll ale clfrelor
Dupd parcurgerea figierului cttl.1, dace i apa4ine flgierului 9i 0ln
contrar, Se parcurg apoi clfrele de la O la 9 gi t se afigeazd po ecrtn

Iil

=1.

Algoritmul este eficie.nt din punct de vedere al timpului de executare


se parcurge o singurA date figierul.

se genereazd toate cuvintele de cate 3,litere din


patru cuvinte generate sunt' in acede ordinel
primele
Dacd
mullimea {a,b,c}.
cel
de'al optulea cuvant generat? (4p.)
care
esie
taa, aab, aac, aba,
UtlllzAnd motoda bacKracking

acb
b,
Rlspuns corect : a
Subprogramul

c. aca

acc,

are definilia alaturat6. Ce valoare are

inr f(int

r inLeger) 3integeri

lunclLon f
brgin
lf, x<1 therr f,: =1
lse f ! =f (:r-3 ) +1

andi

Respuns

f (4) ? Darf(11)?

(6p.)

(C/C++)

(Pascal)

(x

d. bca

x)

(if(x<1)rturn 1,
else return f (x-3) +1,

corect: f(4)=3 9i f(11)=5

Scrieli programul easea! lc,/c++ care citegte de la tastature numerul natural n


(0<n<100) Si un qir format din n numere reale. Aceste numere au atat Partea

intreagd cat gi partea fraclionare formate din c;l mult trei cifre. Programul
determin5 gi afigeaze pe ecran toate numerele din gir care apar o singura data
in acesta,

Exemolu: Dacdn=7, iarsirul este format din elementele

3-4, 4.Og,

S.l, i.zg1l

atunci pe ecran se va afiga

Rezolvare:
(Pasca,

(3.4, -15L,

0.29L,

-151 4.Ob

(C/C++)

var i.,t, j ' Et;


a: array [].. '991 of real;

#include<iostram. h>

int i,n, j, f,r,


float a [100] t
voitt nain ( )

begin

(cin>>ni

read (n) ;

for i:=1 to n atro read(alil);


for ir=1 to n do
begin frt=0i
for j:=1 !o n do
if (atil=alil) then
inc (fr) ,
if fr=1 thn r,Eite(alil,' ''

for(i=1;i<=n;i++)
for ( i=1r
(fr-0 t

L<=n, i++

cin>>a

Ii)

for(j=1ri<-nti++)
if (a til -=a tj I )
f,r++,

if(fr==l) cout<<alil <<u "i

end
end.

txt

conline pe prima linie un num5r natural n


(ocn<10oooo), iar pe a doua linie n numere naturale, formate din cel mult 2

4, Figierul text

numre.

cilre, separate prin cate un spaliu.


a) Scrieli un program pascal'lc,/c++, eficient din punct de vedere al timpului
de executare, care afiseaze pe ecran toate numerele situate pe a.doua linie a
figierului, in oidinea cr6scdtoare a valorilor lor, separate prin cate un spaliu'

Exemplu: dacA fi$lorul numorc,


7

x,2

21 22 11

912

txt

are urmtibrul continUt:

tCtC+ t\

var f: text t
#include<fstrean.h>
n, i, i ,x;
int n, i,x, j;
fr:arlay[0..991 of, longinti long fr []-001 ,

write(i,,

close f )
(

end.

,)t

if,stream f (,,nunere. tnt', ) t

void main( )
t

f>>ni
for (i=L; i<=n; i++)
{ f>>x;

fr[x]

++i

for ( i=0 r i<=99 r i++ )


for ( j=1r j<=fr Ii], j++)
cout<<i<<',,,;
f.close O,

]r

' b) Re4olvdm problema utilizand vectorul frecventd fr. Dup6


figierului, frtil =frecvenla de aparitie a numdrului i in fisier. parcurgem
numerele de la 0la 99 gi afigam fiecare numdr i de un numdr de ori egal
f,r til
.

Algoritmul este eficient ca gi timp de executare pentru ce se parcurge o sing


dati figierul.

0lire

Rezolvare: a)

begin
assign ( f, 'numere.txt, ) i
rest ( f) r readln(f,n),
for i!=1 to n do begin
read ( f,, x) i
inc ( fr [x] );
endi
for ir=O to 99 do
for j ! =1 to fr [il d.o

ilt

t,

lrn program genereaze, in ordine crescdtoare, numerele naturale, de exact 5


di; mullimea \L,2,3, L, 5). Fiecare dintre numerele generate are cifrele
distincte doue cate doud. Primele 3 numere astlel generate sunt: 12345'
(4p)
L23s4, t2435. Care este numarul generat imediat dupd 12 543?
1"3L52
X3245
d.
t2534
15
c,
342
b.
a.
Rispuns corect: c
l'unclia f are definitia aldturati. Dacd f, (x) are valoarea 10100, care este
(6p.)
vBloarea lui x?
(Pasca,
tCtC++t
n)
(n
long
f(int
lunction r integer) 3lonEintt
t
begin
if(n<=0) return 0i
lf n<=0 then f r=0
*n,
(n-1)
return f, (n-1) +2*nt
else
+2
else f: =f
]
.ndl i
Rispuns corece 100
Figierul tic.txt conline pe prima linie un numer natural n (n<100)' iar pe a
doua linie, separate prin cate un spaliu, n numere naturale nenule, cu cel mult
{ cifre fiecare. Scrieli programul eascal lc/c++ care cite9te de Ia tastaturd un
numar natural k (k<25), conslruieqte in memorie Si afigeaz5 pe ecran un
tablou unidimensional ce conline numerele citite din figierul bac.txt care au
(10p.)
cel putin k divizori.
Exemplu: pentru k=5 gi figierul bac . tx! cu 6
con.tinutul aleturat, tabloul care se afigeazi 100 9 400 55 7 10

atunci pe ecran se va afiga: I S LL t2 L2 21 22


b) Descrieli succint, in limbaj natural, metoda de rezolvare folositd, explicAnd
conste eficienla ei (3 - 4 randuri).
(Pascak

046

este:

t
h

l'
I

Lii

100 400 56
iclolvare: Este util sd definim

(1opJ
9i sd apelem o funclie cu un parametru

x care se

tnlurneze numdrul de divizori pe care ii are x. Antetul funcllei ar putea fi:


{

/ I r.sLi?, nDction nrdiv

({

l.(,'++}

rHr

(x

int nrdiv(int x)

integer

integert

corpul funcliei (in pseudocod):

dto
lpentru i1, x executE

I daca i este divizor a lui x atunci


ctect+1
I
lI

ii'

i,l
ll
tr

raturneaz5

ct

l,rcgramul pricipal ar putea fi urmdtorul:

l'ttegte k
oiteste n (din fiFier)

ir

Je1

lpentru i1, n executE


I citegte x (din fiFier)
I pdaei nrdiv (x) >=k atunci
ll vtjlx; jj+1
I

r.r

rl
Dentru

i 1,j-1 executi scrie vlil

ili

flr

4.

a) Scrlell fn llmbaJul pae car lc/c++ doar antotul *bprogramulul cl


prin lntermediul parametrului nr primegte un numdr natural de col mult
gi furnizeazd prin intermediul parametrilor nc gi Bc numdrul de cifre gl

nr.
b) Scrieli programul pascai"lc/c++ care citegte de la tastature un
natural n (10<n<10') qi veiificd, folosind apeluri utile ale
cif,re, dac5 in scrierea in baza 10 a lui n se gdse$te cel pulin o cifr6
suma

clf

relor din scrierea lui

fie media aritmetice a celorlalte cifre din componenia lui n. programul


pe ecran mesajul DA in caz afirmativ gi mesajul NU in caz contrar.

Exemplu: pentru n=27989 programul va afiga mesajul DA, deoaraol


scrierea lui n apare cifra z care este media aritmetice a celorlalte olfra
scrierea lui n: 7=(2+9+9+9) /4
Pentru n=7351se va afiga mesaiul Mr.
Rezolvare: a)
(Pasca/)

(C/C++)

froceaure cifre (nr: lqrginlt var nc,6c3inletter) i


voiA cifre(l.oog nr, int &nc, int &sc)

b) Programul implementeazd urmdtorul algoritm: se calculeazd cu funclla


suma cifrelor gi numerul de cifre pentru x, apoi se iau pe rdnd cilrele de la t h
penhu fiecare se verificd dacd apare ln x gi dacd indeplinegte cerinta din enunl,

citegto
rez0

clfra
rp.ntru i1,9 exocutl
(x, nc, rc) I

I
I
|
I

- v.rlfic! dlcl cifra !, aperr th


;ct! tinD turl * O .x.cutl
I drcl !.rt(rux,10)rt sgonot El.trl

elrteO

auxx

I I aun [aux/ 101


lLl
Itt drct gl.ft.l ft [(.c'1)/(nc-l]lrl rlunol r.r1
drol ratrl alurlcl rcria rDl,
.1t!.1 .arlr rNt/

A 047

lkr oonsidere opt bancnote: trei cu valoara de 1 leu, doue cu valoarea de 10 lei
se pot obline insumand
ll lroi cu valoarea de 100 lei. Cete rezultate distincteincat
suma sd {ie cel Pulin
vrrkrrlls a exact cinci dintre cele opt bancnote, astfel
1,,(10

loi?

c.

b..12

d.

15

(4p.)
3

nlrpuns corect: a

ll0 consider; subprogramul


!(100)?

definit alSturat.

Ce

valoare are

f(5)?

Dar

(6pJ
(C/C++\

(Pasca,

integer) rlongint; long f(int n)


t
if(n<0) rturn 0,
Lf n<0 lhn f r=0
else
.IE f: =f (n-2 ) +n
return f (n-2 ) +ni
andt

lunctlon

f,

(n:

b.g{n

Rtr8punscorecti

f (5)=5+3+1=9,

f,

(100)=100+98+95'!...11 = 2550

bac. t:rts conline pe prima linie un numAr natural n (n<100), iar pe a


doua linie, separate prin cate un spaliu, n numere naturale de cel mull I cifre
Flglerul text

llocars.
Scrleli un program

Pescel lc/c+'t care cite9te de la tastature un num6r natural

(k<so) pre;um 9i numerele din figierul bac.txt 9i afigeaze pe ecran, cu cate


puteri
un spatiu tntr ele, toate numerele de pe a doua linie- a figie-rului care sunt
natural
numar
un
putere
existd
v
lui
k
dace
a
ale ti.,i i.. Un numir natural x ste
a8tlsl lncat x=k". DacA nu exista un asemenea num6r ps a doua linie a figierului'

c afigaazA pe 6cran mgsajul NIt

Exlmplu: dac6 so citegte de la tastatufA


h.3, iar fl$i8rul are continutul aleturat,

32

55

317 80e a!.!, 3. I

50

atunci pe ecrqn Ee afigeazg numerElei

!2

2s5 2

1'

(10p')

Este utll sA dafinlm 9l se apelAm o funclie cu dol parametrl $ 9l tr car 86


valoarea l daoa clfra k apare tn Eorlerca numarulul * ql 0 ln oaz contrar'
fntctul funetlel ar putea flt
( Irr k t longint ) I byt.,
{Pnsurtt) lunolloa

(c/Crr)

vrrl!
IB! x, lnu k)
v.ri!(long
lnt

hr corpul funcllol (ln pceudoeod)l

It

rlnE)
x Ix/lrl

rcr! (*,I) .0

lrol rr1 ltunci ragurnal.I

rIllal r.lritn.rtl

r rvurqIrur

P, rvrPqy rur

rrr!q nllrrlI

A 048

ci!6tt k
citegte n (din figier)
ct 1
fpentru i1,n executi
I citegte x (din figier)
I pdac5 verif (x, k) =1 atunci

Rispuns corect: b

cif,

doar antetul unui subprogram


primegte prin intermedjul primului parametru, nr, un numer natural cu cel
cifre gi furnizeaze prin intermediul celui de-al doilea Parametru, s, suma

din scrierea lui

Exemplu: daci pentru n=8 se citegle girul de numere 274 s6ofg 354
293 297 932 634 atunci, pe ecran, se afiqeazd numerele sGO!b 8219.
Rezolvare: a)
(Pasca| rrocedure cifre (nr: lqrginti var s:integer);
{C1C'r+\ void, cifre(lqrg nr, inr &6)
b) Pe mdsure ce se citesc cele n numere, acestea se retin intr-un vector $i in
timp se reline suma maximd a cifrelor intilnitd la numerele citite. Apoi se
vectorul gi se afigeaze numerele care au aceasti sumd maxime.

citegte

b.2

c.3

[L,2,4), lL,5L t2,5), t3,4), tz).

ce ordine sunt
Nr3

I citegte x
I atilx
lcifre(x,s)
It1tdacd s>rnx atunci

=12

,7

Rdspuns

generate urmatoarele mullimj: M1=t2,3,4); rq2={3,6};.

I;
corect M1, M3, M2,

(6p.)
M4

Se considere subprogramul cmdiv care primegte prin parametrii x gi y doud


valori intregi pozitive (O<x<100 gi 0<y<L00) Si returneaz6 cel mai mare divizor
comun al lor.

cnd.iv.
(4p)
b) Scrieli un program Fa$caf,a/c+' care cilegte de la tastaturd un num5r
natural n (1<n<100) gi determind, utilizand apeluri ale subprogramului crndiv,
a) Scrieli definilia completd a subprogramului

Exemplu: pentru

ecran.

fpentru ie1, n executd


lcifre(atil,s)
I dacA s=nx atunci scrie a[i]
l-I

cu

numdr natural (l<x<n). Numerul

St

olvare: a) Antetul functiei:


''

n=5 se afigeaze 2, deoarece,

doar doue sunt ireductibile

rnxs

Folosind aceea$i metodd pentru a

Ma={4, s }.

oblinut va fi afigat pe

fpentru i1, n exeeuti

d,4

genera multimile distincte ale ceror elemente sunt numere naturale nenule gi care
au proprietatea ce suma elementelor fiecerei mulltmi este egale cu 9, stabilili in

numerul fracliilor ireductibile de torma

nx0

(4p.)

Se genereazd prin metoda backtracking mullimile distincte ale caror elemente


sunt numere naturale nenule gi care au proprietatea cd suma elementeror fiecdrei
mullimi este egala cu 7. Astfel, sunt generale, in aceastd ordine, multimile:

nr.

b) Scrieli programul pascat !clc++ care citegte de la tastature un numar


n (0<n<25), apoi un gir de n numere naturale nenule cu cel mult 9 cifre
care determine gi afigeazd pe ecran, separate prin cate un spa,tiu, numerele
gir care au suma cifrelor maxime, folosind apeluri utile ale subprogramului

Qsor?

int f(int x)
t
if (x9"3==0) return Oi
eure return 1+f (x/3 ) ;

and.t
5

(C/C++)

f,unction
! (x: integer) ! integer;
begin
lfx mod 3=0 then f:=0
else f:=1+f (x d.iv 3);

NU

\I
4. a) Scrieli in limbajul pascal;c/c*+

definit aleturat. Ce valoare are

(Pascaf)

ll scrie x
ll ctct+r
llr
tt

rdace ct=o atunci sclie

Se considerd subprogramul

dintre fracliile

,l,jj nlrct 'ql crriiv (x,y: inteEer) : intege!,

i://) int crldiv (int x, int y)


r:orpul functiei (in pseudocod):

tinp

r<rEy

execute

deci x>y alunci xx-y

altfel yy-x

turneazi x

L23456
(6p.)

a 049

b)

citegte
ct0

n
Se genereazd in ordine strict crescdtoare numerele de cate gase cifre care

fpenCru xel,n-1 executa


I rdace qndiv(x,n)=1 atunci

ll
lrl
\l

conlin: cifra 1 o singura data, cifra 2 de dou5 ori gi cifra 3 de

tr;i

ori. Se oblin,

in aceaste ordine, numerele: L2z3g3, 123293, L23323,..,, 333221. Cate


numere generate prin aceastd metode au prima cifre 1 9i ultima cilrtt 2? (4p.1

ctct+1

xb.3c.4d.g

scrie ct

Respuns corect: c

4.

Ponlru o valoare naturald mai mare decat 1 memoratd in variabila globali n,


subprogramul recursiv aleturat afigeaze cel mai mare divizor al lui n, mai mic
decit n, laapelul ativi(n), Cu ce trebuie inlocuite d gi p ?
(6p.)

Figierul text bac. in conline pe prima linie un numer natural n(0<n<5000),


a doua linie, separate prin cate un spaliu, n numere naturale, lormate din 0l
{ cilre fiecare.

Scrieli un program pascallc/c++ care determind 9i scrie in figierul bro


toate numeiele conlinute de a doua linie a figierului care apar o singurd
aceastd linie. Numerele delerminate. se vor afiga in ordinea
valorilor lor, separate prin cate un spatiu.
Exemplu: daci pe prima linie a figierului bac . in se afle 10, iar pe linia I
se gesesc numerele 2 4548 S 4548 57 89 5974 2 89 g,
valorile cdutate sunt 32 57 558 5974.
Rezolvare: Putem rezolva problema utilizand un vector de contorizare
loooo elemente (cate un element pentru fiecare valoare care teoretic pl
apare in figier), in care ct til va retine numerul de aparitii al valorii i pe a
linie a figierului, Elementele vectoruiui ct se calculeaze pe mdsJrd ce se
valorile din figier, apoi se parcurge vectorul c! 9i se afigeaze indicii
egale cu 1.

io,1oooo executi ct [i] o


rpentru
lI
citegt n din f,i$ier
rpentru i1, n executi

I citegte x din fi$ier


I|l ct [x] ect lxl +1

rPentru i0,10000 executd


I 1dace ctlil=l aLunci sclie

Itr
\I

(Pascat)

procedure dlivi (i ! tongint) t


begin

lf,

lhn write
1se divl (i.-1) t
d,=0

6nd,

Respuns corcct

q:

(B)

(C/C++)

void clivl (long i)

t if

(c==0 )

cou!<< p; lprintf

else divi ( i-

p),

(n mod i=O) and (l<n)

0, i

(,,%1a1,,,

1) ;

,/ nti==o && i<n

Scrieli un program pascat" Ic/c*+ care citegte de la tastature un numir


natural n ( 1<ns50) gi apoi un gir de n numere naturale cu cel mult 4 cilre
fiecare gi care verifici dacd elementele girului pot fi rearanjate astfel incat sd
respecte regula: al doilea element este cu 1 mai mare decat primul, al treilea
cu 2 mai mare decat al doilea, ... , ultimul este cu n-1 mai mare decat
penultimul. Programul afigeaza pe ecran mesajul DA in caz afirmativ
9i
mesajul Nu in caz contrar.
Exemplu: pentru n={ gi Sirul 8,5,11,5 se afigeazd DA (elementele pot fi
rearajate astfel incat sd respecte regula date: 5, G, B, 11)
(1opJ

: Relinem numerele intr-un tablou unidimensional a; sortam acest


apoi
verificem cbndilia din enunt. Deoarece nu se solicitd un algoritm
,
putem utiliza o metodd cat mai simple pentru sortare. Folosim o variabile
denumit-o alif) in care construim diferen{a care trebuie sd existe intre doi
consecutivi.

cu aljl

okel
dtf 1

TDentru i2,n executl

I daci atil-ali-11*Ctif atunci oko


ldirdir+1
qt
T daci ok=1 atrErci scrie 'DA'
altfel scrie 'Nu'
I
lt

4.

I trr dcclararea:
I yDo vector-array[1..G]

lllteger;

a) Scrieti, folosind limbaiul pascat lcy'c++, doar

antetul

b) Figierui bac.txt contine cel mult looo numere nalurale nenule, mal
decat 30000 fiecare, separate prin cate un spaliu. Scrieli
pascallclc+4 care citegte din figierul bac.txt toate numerele gl
determind cea mai mare cifre din scrierea lor gi cel mai mic dintre
care conlin aceaste cifre, folosind apeluri utile ale subprogramului
Cifra gi numdrul determinate se vor afiQa pe ecran, separate printr-un

(C/Ct-+)

b)

rnaxi

23 L2 64 L2

Functiqr snax (a: irrteger; var


LIrt cmax(int s, int &b)

b:

integer)

7Z

miniMAxrNT //numerele din fisier mai mici decat 30


rcat timp nu se atinge sfArgitul figielului executa
I c!-tegte a din figj-er

I crna* (a, U)
| ;aaci b>maxi atunci

I I
I I
Irl
l.|

nxb

dacE a<mi.ni atunci minj.<a

sdrie maxi, , ,,mini

v.ctor sunt, in aceaste ordinei 973,


t1,75,350,350, 15. Se considerd
nrrbprogramul
I

Valorile memorate de
v, cu indicii de la 0 la 5,
in aceasb ordine: 973.51, ?5,
350, 15. Se consider5 subprograt
cu definitia aldturate. Care I
tabloului

urmetoarele expresii are

cu definilia al6turatd.

)rrc dintre urmatoarele expresii are

vrloarea 2?

cnax.

Rezolvare: a) (Pasca,

of

V|lorile memorate de'variabila v de tip

Se considera subprogramul cmax care prin parametrul a primegte un


natural nenul mai mic decat 30000, iar prin parametrul b furnizeazl
maximd din numirul a.

Exemplu: dacd figierul bac.tx! conline valorile:


67 23 7r 634
atunci pe ecran se afigeazd 7 67.

(O;Ct t)

\pitsc,t[)

(4 p.)

lunction
| ( i : integertvsvector)
rbyte;

int t (inr i, int vn)


(

lxrgin
if i=0 then !!=0

.lse if vIij <>vli-1] then


t: =t ( i-1, v)
else t!=1

cnd;

t.(1,v)
l.(2,v)
ti(5,v)
l-(4,v)

+
+
+
+

t(4,v)
t(5,v)
t(5,v)
t(5,v)

if (i==0) return O;
if(vtil !=vIi-11)
return t ( i-1, v) ;
return 1i

t(0,v)
t (1,v)
t(4,v)
t(3,v)

+ t(3,v)
+ t (4,v)
+ b(5,v)
+ t(4,v)

RCspuns corect: c

lie genereaz5 in ordine strict cresc5toare toate numerele de cate gase cifre care

r;ontin: cifra 1 o singurd datd, cifra 2 de doud ori gi cifra 3 de trei ori. Se obtin, in

Iceaste ordine, numerele: L22333,723233, L23323, ...,33g22L. Ce num5r se


rrfld imediat inaintea qi ce numdr se afla imediat dupe numdrul 332312 in qirul
numerelor

generate?

(6p.)

Rdspuns corect: inainte: 332231; dupd:332321

lie considerd subprogramul divxy care primegte prin parametrii x

gi

doud

valori intregi pozjtive (0<x<1000 $i 0<y<1000)


$i returneazd valoarea 1 dacd
r)ste divizor al lui x gi o in caz conlrar.

deinilia completa a subprogramului div:<y.


(4p.)
b) Scrieli un program ?asca1 lclc}+ care cilegte de la tastaturd trei numere
aturale nenule a, b gi n, cu cel mult 3 cifre fiecare gi care afigeaze pe ecran toti
divizorii lui n din intervalul inchis determinat de a gi b folosind apeluri utile aie
subprogramului alivr<r'. lntervalul inchis determinal de a gi b este ta,bl dacd
a<b sau Ib,al dacd bSa. Numerele afigate sunt separate prin cete un spaliu.
l)acd nu exjstd niciun astfel de numdrseafigeazd mesajul Nu ExrsrA.
Exemplu: pentru a=85, b=10 gi n=40 se afigeaza: LO 20 40 (nu neapdrat in
n) Scrieli

flceaste ordine).

n!-f'lv+rr!; a, AnIErul Iuncl['t;


(Pirsca/) Funct !.on dj.vxy (x,

yt tng6g6r) tIntcg6r,
I t divrcy(tnt x, lnt y)
iar corpul tuncliei ( rest (x,y) reprezintd restul impd4irii lui x la y):
fdac; rest(x,y)=0 sau rest(y,x-o) atunci returneaz&
altf,el returneazi O
I

t0,10000 .x.cutl cttll

(C/C++)

L|
b)

citegte a,b/ n
1dac5. a>b atunci interschinb6 a cu
ql

ct0
fpentlu ia,b executi
I dacd aliv)ar (n, i ) =1 alunci

ll scrie i,'
ll ctct+r
It!
ql

'

\l

4.

scire

'NU EXISTA'

Figierul bac.in contine pe prima linie un numdr natural n (0<n<5000),


doua linje, separate prin cate un spaliu, n numere naturale, lormate din
4 cilre fiecare.
Scrieti un program ?ascat lc/c** care determine gi scrie in figierul
toate numerele, citite de pe a doua linie a figierului bac.in. care apar
puiin doue ori. Numerele determinate se vor scrie in ordine
aceeagi linie, separate prin cate un spaliu.
Exemplu: dace figierul bac.in contine pe prima linie numdrul 11, iar pe
doua valorile 23 L2 s4 L2 7g 34s 67 29 7a 934 23
atunci figierul bac . our va conline: L2 23
0

7A

Rezolvare: Putem rezolva problema utilizand un vector de contorizaro


10000 elemente (cate un element pentru fiecare valoare care leoretic
apard in figier), in care cb Iil va retine numdrul de aparilii al valorii i pe
linie a figierului. Elementele vectorului ct se calculeaze pe mesure ce sg
valorile din fi$ier, apoi se parcurge vectorul cr gi se afigeaze indicii
mai mari sau egale cu 2.

bac

bac

in
.

in

tru i0,10000 execut;


ctlil>=2 atunci sclie i in figierul bac.out
f,lrcl
fiFiere

rdac5 ct=o atunci

t.fto n dln fiqierul


lru i1, n ekeculd
llt.tte x din figierul
Itlxl ct [xl +1

GO

t)

1.

lll{;/i) Int dlEr2(inr xa,inr ya,in! ,(b,int yb)

Care este antetul corect al subprogramului cifre


primului parametru x un numar natural 9i 'furnizeazd prin intermediul celul
care primeste prin

doilea parametru,

,.

y,

suma cifrelor numdrului natural x?

lPasca\

function cifre (var x: integer;

void cifre(int
int cifre(int
void cifre(int
int cifr(int

x, int
x)
t<'
&r<,

int yl

y: integer) t

Se considerd un numer natural nenul x, avAnd exact 8 cifre, distincte


cate doue; printre cifrele sale se gesegte gi cifra 0. Permutand cilrele lui $,
oblin alte numere naturale. Care dintre numerele oblinute, inclusiv x, au
8 cifre?

ttist2,

care prime$te prin intermediul

mesajul Da

(6p.)

gi unul pentru cele gase distante.

iel ,4 execute cite$te xtil ,ytil


lP.ntru
l5
t1
p.ntru i1,3 executi
rpentlu j i+l,4 executi
I dtkt disr2 (x til,ytit, xtjt,vtjt)
kk+1

I
I

l1t

intregi reprezentand coordonatele carteziene pentru patru puncte din


afigeaz5 mesajul Da dace cele patru puncte pot fi virfurile unui pdtrat;
caz contrar afigeaze mesajul Nu,folosind apeluri utile ale

.00
30
33
03

p.ntru ie1,5 executi


TPEN tru j i+1, 5 execule
d[i]>d[j] atunci interschinbA dlil eu dt jl
flacn
l-l

pdtratul distanlei dintrd cele doud puncte.

atiBt2.
Exemplu: dacd coordonatele punctelor
sunt cele aldturate, atunci se va afiga

0oordonatele

*a, ya gi respectiv xb, yb, coordonatele carteziene intregi (abscisi'


pentru doue puncte din plan, A 9i respectiv B. Subprograryul

a) Scrieli in limbajul Pascal lc/c** definilia completa a


d.ist2.
b) Scrieli un program pascallclc+t care cite9te de la tastature

llllmele doue distanfe sunt egale (atestea reprezinte diagonalele)r pentru a'nu
lr:rlo prea mult, folosim 3 vectori: unul pentru coordoiatdle x, unul pentru

Il.l

Respuns corect 35280 (8! -71)


Se considere subprogramul

r.turneaza (xa-xb1 * 1*"-*5) + (ya-yb) * (ya_yb)


b) Se.calculeaza distanlele dintre cele gase perechi de puncte care se pot forma
$i
crescator..Cele gase puncte reprezinte vArfurile unui pdtrat dacd primell
!o:odql
palru distanle din girul sortat sunt egale (acestea reprezinle cele patru laturi)
9i

int

Rispuns corect: a
2.

(Observatie: deoarece nu se precizeaze nimic despre domeniile de valori ale


Itnrnmetrilor, putem sd ii alegem de tip inreserjint,)
lnr corpul funcliei (in pseudocod):

(C/C++\

a. procedure cifre (x: integeri var


y: integer) t
b. furrction
cif r (x3 integr) : integeri
c. Drocedure cifre (x,y: integer) t

d.

Antotul functlei:

(/'itrx;a/) trunctlon dj.ct2 (na, ya, xb, yb I intogr ) : !-nteqor;

VARIANTA 051

d[1]=d[4] Fi dt5l=dt5l aLunci sclie


altfel sclie NU

dacn

DA

Figierul text d,ate. in contine pe prima linie un numer natural nenul n


(n<f.oO) , iar pe a doua linie n numere nalurale nenule, separate prin
cate un
spaliu, flecare numar avand maximum 4 cifre. Sc;ieti un program
lascallc/c++ care citegte toate numerele din figierul 'text date.in,
construiegte in memorie un tablou unidimensional a, cu cele n elemente din
fisier qi afige_azd pe ecran perechile (ar, a:) , 1Si<jSn, cu proprietatea ce
elementele fiecdreia dintre aceste perechi au ac6eagi parilate. Fiecare
pereche se va afiga pe cAte^ o linie a ecranului, elementele perechii
fiind
separate prin cate un spaliu. ln
ln cazul in care nu existe nicio pereche se va
afiga valoarea

O.

Exemplu: dacd figierul dare.


aliturat, se vor afiga:

in

are

ift#*'
15

226

31

(10p.)

L62236L

(ar,rllt<J) 9l psntru flecaro


paritato.
dacd
au
aceeagi
se
verifice
acestea
Observatie: singura posi.bilitate sA nu existe o astlel de poreche esto pentru
cele doua numere din figier sa fie de paritdli diferite
Hezolvaro: Se generaazd toate perechfle

ok0

citegte n din figier


rpentru iel,n execute
Itl citegte alil din figier
n-1 execut5
;ientru i1'ji+l,n
execute
| ;pentru
I I fdace rest(atil ,2)= rest(aljl,2) atunci
ecrie atil,atjl
I I I

lllokr
lltl
llr
Lf

tdac6 ok=o atunci sclie


l.t

A 052

n-l

UtilizAnd metoda backtracking, se genereazd in ordine lexicografice toate


Rnagramele cuvantului cait ( cuvinle formate din aceleagi litere, eventual in
oltd ordine). Cate cuvinte care incep cu litera r vor li generate?
(4p.)

b.

c. L2

ar. 24

R{spuns corect: d

Se considere subprogramul

t,

definit aleturat. Ce valoare are f

(4)?

Dar

(6p)

19)?
(Pascal)

func!ion
f, (nr integer) : integeri
begin
/ if n=0 then f !=0
else if, n mod 2=1 then
=n-f (n-1)
eLse f 3 =f (n-1) -n
f,:

ndt

Rdspuns corect:

(CiC++)

int f(int n)
{ if (n==0) return

0;

return n-f, (n-1) t


return f(n-1) -n
if,

(n%2==1)

f(4)=or f(9)=9.

Subprogramul nuLr, cu doi paramqtri, primegte prin intermediul primului


parametru, n, un num6r natural nenul cu maximum trei cifre gi prin jntermediul
celui de-al doilea parametru, a, un tablou unidimensional avand n iomponente
numere naturale cu cel mult I cifre fiecare. Subprogramul returneazd valoarea
Lrue l1 dacd cele n componente ale lui a pot forma o mul,time gi returneaze
fal$e l0 in caz contrar.

Exemplu: daca n=4 gt a=(1


returna

false

,2,3,7,12),

atunci subprogramul muLr va

I O.

a) Scrieli /declardrile de dale necesare qii definilia complete a subprogramului

mult.

(6pJ

b) Figierul text dlate.

in

confine cel mult 400 de numere naturale avand

maximum I cifre fiecare. Scrieli un program pagcal lc,i c++ folosind apeluri
utile ale subprogramului mul!, afiseaza pe ecran valoarea maxime k, astfel
incat primele k numere succesive din figier sd poate forma o multime.

Exemplu: dacd figierul dare . in conline

15 !7 I31

5210

alunci se va afiqa 4 (deoarece primele palru numere din figier pot forma o
mullime qi acesta este cardinalul maxim posibil in condiliile impuse de enuntul
problemei).

Fezolvare: a) Antetul func{iei:

vector = affay[]-..10001 of longint,


function mult (a !vectori n : integer) :boole.gni
({)C++ nt muLt. (longf atl,int n)
{/'dscai tt4)e

pcntru a constitui o mullime, elementele din vector trebuie sa fie distincte; corpul
irnctiei verifice acest Iapt:

ok+1

rp.ntiu lx,n-l / /prEupunom


I spentru ki+L,n atunci
I I rdace xlil=xlkl

numarotara

Dozlllilor d' 1l

llloko

llrr
Itr
l.l

l1l

b) Citim valorile din flgier intr-un vector; apoi dem succesiv lui k valorile 2 '3 ' ' ' '.
qiafigim ultima valoaie pentru care primele k elemente din vector pot constitul c
mullime (ne oprim la prima valoare a lui k unde condilia nu mai e indeplinite)' \

i1

rcat timP nu se atinge sfargitul figierului


lcitegte a[i] din fig!-er

lii+1
l-|

ni-1
[n+1] a

k2

n,k

llr

leltf,er
I acrie

rdac: ok=1 atunci


I returneaza 1
I altfel
I returneaza 0

oltaft.

x e n/k - (k+L, /2
;deci x . lxl tl x>0 atunci
I pcntru ix+1, x+k executl
I I acrie i

[n]

/,/santineli

rcat timp mrlt (a,k)

I
\t

kk+x

4.

Scrieli un program pascallflc*+ care citegte de la tastaturd doue n


naturale nenuie n 9i k (k<ns10ooo) 9i afigeazd pe ecran un gir format

scrie k-1
numere naturale consecutive care au suma n. Numerele se vor-afi9a pe
in ordine crescetoare, despe4ite intre ele prin cate un spatiu in cazul in
nu exista un astfel de gir, se va afiga mesajul Nu existA'

Rezolvare: Dac; notam cu x+1 primul dintre cele


acestor k numere este:

(x,i1)+(x+2)+...+(t<+k) = kx+k(k+1)/2.
Trebuie sdl determin5m pe x din ecualia

kr+k(k+1)/2=n

deci

x=(n-k(k+1)/2)/k

sau

x = n/k - (k+Ll /2

Existe solulie dace expresia oblinutd este naturale.

numere, atunci

Nu exiata

/ 11 = paEbea intreagl

GonorAm toato porochllo de valori (r,b), cu 1<a<b<n gl, dacd valorllo dlntr-o
au cel mai mare divizor comun egal cu 1, atunci incrementdm o variabild

VARIANTA 053

1.

Subprogramul t rcalizeaze interschimbarea valorilor a 2 variabile


transmise prin intermediul parametrilor x gi y. Care este antetul
subprogramului

0rn

I D^^^44

(C/C++)

!, drbar/

f(int &x, lnt


int f(int x, int y)

a. procdure f(var x,ysinteger) t


b. f,uflction f (x,y ! intagr) : in!ger,
C. Drocedure f (x3 integeri
var yi integer) t
d, Drocdur f(var x: intgert
y ! intger) i

void

void f ( int

tx, tnt

ctct+1
ey)

voitl f(int &x, Int yl

Respuns corects a

2.

(C/C++)

(Pasca0

f (n:woral) :integery

begitr
if n=0 then f :=0

int
tif

f (unsigmeil int n)
(n==0) regurn 0i

l,Ee

if

els if n mod 2=0


then

f:=n mod 10+f(n ativ 10)


eIEe f !=f (n dtiv x0);

(n%2==0 )

return n%10+f (n/10) ,

else return f(n/10),


I

Rdspuns corect pentru valorile 10,

parametri, a gi b, doud numere naturale nenule, cu maximum I cifre


returneaze cel mai mare divizor comun al valorilor parametrilor a gi b.
a) Scrieli numai antetul subprogramului cffiialc.

b) Scrieli un program Pascal-lc/c++ care citegte de la tastature un


natural n (n<3OO), qi, cu ajutorul subprogramului cnmalc, determine
perechilor de valori naturale (a,b) , l<a<b<n, cu proprietatea ce a 9i b nu
niciun divizor comun in afare de t. Numdrul obtinut se va afiga pe ecran.
Exemplu: daca se citeqte n=5, atunci se va afiga 5 (deoarece
(2,3) ,(2,51,(3,4), (3,5), (4, s), (s,5) satisfac conditiile din enunl).
Rezolvare: a) Antetul funcliei:

{Pascal Function cmndc (a, b : longint) : longint ;


(C/C++) Long crimtlc ( long a , long b )
corpul funcliei:
rcat tturll) a*b executi
I paca a>b atunci aa-b

iar

I I altfel bb-a

lr-l
L|

returneazE

conlinutul reprezentat

1L,r3,Ls,L7 ,L9

Se considere subprogramul cnndc, care primegte prin intermediul

fiecdrei permutari vor fi separate prin cAte un spaliu.


Exemplu: dacd fiqierul tac . txr contine liniile:

10 20 30 49
atunci, dupe rularea programului, figierul va

endi
3.

Figierul text bac.txt are doud linii: pe prima linie conline un numer natural
nenul n (n<=loo), iar pe linia a doua un gir format din n numere naturale
distincte de cel mult 4 cifre fiecare, despe4ite prin spalii. Scrieli un program
pascal lc,/c++ care adaug5 in ftgier toate permuterile circulare distincte ale
girului de pe linia a doua a fi$ierului. Astfel, se vor adauga la sfargitul figierului
inca S-x linii, fiecare linie con{indnd permutarea circulard cu o pozilie cdtre
stanga, a elementelor girului aflat pe linia precedente din figjer. Elementele

f,

deflnit alaturat. Pentru ce valori ale


20]
se
obline
la apel f (n) = 0?
intervalului
apa4inand
[10,

Se considera subprogramul

fulcLion

lk)r.

aldturat.

Fezolvare:

avea

(10p)

drschide figierul pentru citire


olte;te n dj-n f!-gier
iel.n execut5 citegle ,([i] din fi$ier
fpentru
tf
Lnchitte fiSierul

drschide figierul

pentr$ ad5ugare

4
10

20
30
49

20 30
30 49
49 10
10 20

49
10

20
30

(j(Ipur uuuptugrurnurur,
l,'

VARIANTA 054
1.

Utilizand metoda backtracking se genereaze in ordine lexicograficd


anagramele cuvdntului caiet (cuvinte formate din acelea$i litere, eventul
alte ordine). Care esle a gasea solutie?

catei

Raspuns
2.

b, actie

corectr

Se considerd subprogramul

definit aldturat. Ce se afigeazd la apelul

(Pescaf

procedure f (1. integer),


begin
if i<=5 t'hen
begin write(i,, ,)t
f ( i+1) t
\urite(i dLr 2,, ,\

voial f(int

3.

Se considera subprogramul

inv,

i)

tif ( i<=5 )
{ cout<<i<<. . t
I r,ti'j:tt (""."d. " , il t
f ( i+1) t
cout-<<i/2<< D i

end

f 234522f

f ( 1l

tClC++)

endi
R;spuns corect:

d. catie

actei

C.

b.

))

I printf (-%d ",i/21! ;

L 0

care primegte prin intermediul

parameiru a un numdr nalural, cu minimum douA cifre gi maximum 8 cifro,


lurnizeaze prin intermediul celui de-al doilea parametru. b. valoarea
natural format cu aceleagi cifre ca gi a, considerate in ordine inverstr.

exemplu, pentru a=3805, dup; apel b va avea valoarea 5083, iar


a=3800, dupa apel b va avea valoarea"83.
a) Scrieli definilia completd a subprogramului

inv.

b) Scrieli un program pasc&l"lclc44 care citegte de la tastatu16 un


natural n de minimum doue gi maximum I cifre gi afigeazd pe ecran un n
palindrom cu valoarea cea mai apropiata de vatoarea lui n citita. in cazul
care exisle dod6 astfel de numere, se va afiga cel mai mic dintre ele, So
folosi apeluri utile ale subprogramului

inv.

Spunem ci un numdr natural x este palindrom daca numdrul format din


lui x considerate de la stanga cetre dreapta este acela$i cu numarul format
cifrele lui x considerate de la dreapta cetre stanga.

Exemplu: dacd n=15, alunci se afigeaze valoarea 11, dacd n=126, atunci
afigeaze 121, iar dace a=33, atunci se afigeaze 33.

procedture inv (a : longintr var


lC/C++) voi.d, inv(1ong a,long &b)

I r [!/ 1o ]
Irt uu*ro+uc

bl Deoarece nu se cere un algoritm eflcient, parcurgem crescetor girul numerelor


lnsl mari decAt n 9i ne oprim la primul care esle palindrom; apoi parcurgem
doscrescetor Sirul numerelor mai mici decat n 9i ne oprim la primul care este
pcllndrom. La final, determin5m cel mai apropiat de n dintre cele doug
polhrdroame.

cltoqte n
Itn
to1

tolt titrttr) go=1 executa


I inv (a1 , b1)
I idace b1=al goo
I I altfel a1a1+1

lrl
la

r2n
got

loit tinp go=1 executa


I inv (a2 ,b2 )
I rdaci b2=a2 atunci go0
I I altfel a2(a2-L

lr
lI

adrae rez

4,

Figierul terd date.in conline pe prima linie un numei natural nenul n


(nS100), iar pe a doua linie un Sir de n numere naturale nenule distincte,
separate prin cate un spaliu, fiecare numer avand maximum I cifre.
a) Scrieli un program Pa6ca1 lclc++ care citeqte numerele din jigier 9i
determina cete dintre componentele girului citit pot fi scrise ca sume a ator
doud numere din acelagi gii. Rezultatul obtinut se va afiga pe ecran. in cazul in
care nu existd niciun astfel de element, se va afiga valoarea 0.
Exemplu: dace figierul date. in conline
6

Rezolvare: a) Antetul functiei:


(Pasca4

luAt tirnp !t0 Gxccutl


I ucreet (a,10)

b ! longint )

110252,J"53

3=1+2).

(8p.)

rezolvare.

(2p,)

atunci se va afiga valoarea 2 (deoarece 25=10+15,

b)

Descrieli pe scurt, in limbaj natural, metoda de

Eezolvare : a)

clt.tt.

n dln fltl.r

flrcntru J-1,n rxecu!tr


l.l

ct0
rPentru

cLtatt. xIi] din iiqiar

A 055

Utilizand metoda backtracking se genereaza toale matricele petratice de


ordinul 4 ale caror elemente apa4in mullimii {0,1} cu proprietatea ce pe
llocare linie $i pe fiecare coloana existe o singure valoare 1. Primele 4 solulii

kl,n executi

se0

Tpentru i1,n-1 executi

generate sunl, in aceastS ordine:

atunci gel

1000
0100
0010
0001

| $acd' g=1 atunci' ctct+l

10
01
00
00

(4p.)

Care este a opta solulie?

lr.l
lf

scrie ct
O solulie {nai elegante, dar inadecvatd avand ?n vedere plaja de valori pet
datele de intrare este se citim cele n valori intr-un vector x, apoi si utilizim

vector de contorizare ct cu 1Oe elemente (cate un element pentru {iecare


care teoretic poate se apard in vector), in care
va reline valoarea

ctlil

existe doud elemente a ceror sume este i gi o in caz contrar. Dupd ce


aclualizat vectorul c!, parcurgem vectorul x in care am retinut cele n vlotl
verificem dacd crtxtill este 1, ceea ce inseamni cii existd. cel pulin'dc
elemente a cdror sumd este xtil. Daca notdm cu dt domeniul valorile
din gir, complexitatea va fi o (nr+d ) .
b) problema se poate rezolva in diverse moduri. Cum nu se cere algoritm
posibilitate ar fi sd citim cele n valori intr-un vector, apoi se alegem cate un
gi sd c6utem o pereche de alte doud elemente a ciror sumd este egala
elemeniul fixat. Complexitatea este in acest caz o (n3 ) .

0100
1.000
0001
00

100
000
010
001

b.0
1
0
0

1^ o

1000
0010
0001
0100

1000
0010
0100
0001

00
00
01
10

1 00
00 10
10 00
00 01

c.0

d.

00

1 0,

100
010
000

o
1

Raspuns corect 3 a.
Se considera subprogramul
a) Ce valoare are

1)

b) Dar expresia

f,

definit aldturat.

25 ) ?

+f

(6p.)

(5 ) +f (1s) ?

(Pascal

function
begin
1!

(C/C-r.+)

f (n3word)

n>20 then f,:

integer;

=0

else f: =5+f (n+5 )

endt
Rispuns corect a)

b)

int f(int n)
t if (n>20) return 0;
else return 5+f (n+5 ) t
)

50

Se considerd subprogramul cifre care primegte prin intermediul primului


parametru a un numer natural cu maximum I cifre nenule 9i returneaze, prin

intermediul celui de-al doilea parametrul b, cel mai mic numdr care se poate
lorma cu toate cifrele distincte ale lui a.
(4p.)
a) Scrie_ti definilia completi a subprogramului cif,re.
b) Se considere figierul text date.in ce contine pe prima linie un numer
natural nenul n (n5100), iar pe a doua linie n numere naturale, separate prin
spaliu, fiecare numdr avAnd maximum 8 cifre nenule. Scrieli un program
nasca)- lclci+ care citegte toate numerele din fiqierul text tlate.
9i
afigeaza pe ecran, despe4ite printr-un spaliu, numerele situate pe a doua
linie a fiqierului, formate numai din cifre distincte ordonate strict cresc5tor,
folosind apeluri utile ale subprogramului cifre. in cazul in care nu exista
niciun astfel de numdr se va afiga valoarea 0.

in

Exemplu: dacd figierul d.ate. in are


conlinutul aieturat, atunci se vor afiga
(6p.)
numerele: 16 259

15 175 333 242477 32L 269

Rezolvarc: a) Antetul functll:


(Paisca4 procdur cif,rG ( a s longj.nt, var b r tonglnb ),
(C/C++l wo!.A cifle (l-ong a,tons &b)
Pentru implementarea corpului 'se poate folosi un vector de contorizare in
numeram apariliile cifrelor din a. Construim numerul b luind cifrele care au
o singurd datd in a, deci penlru care elementul corespunzdtor djri vectorul
contorizare este egal cu l.
pentru il,9 executi ct lil O

rcat timp a*0 executi

I uca%10
I ct lucl eqt lucI +1

IL|

"=

beo'

t"l

eSIO Ufll Sa Scnem O runqlc caru aa rolurneze rezulla(ul conoatnanl


numere a gi b (ambele numeto cu col mult trel cifre) primite ca parametri.

ilq)a4 function conc ( a, b : inEeger ) 3 integer ;


It,?l/ f) int conc ( int a,b)
l/

corpul funcliei (ordinea de concatenare este a concatenat cu b)

b<L0 atunci reza*10+b


r1t fe I
rdacd b<100 atunci leza*100+b
I aLtfet reza*1000+b
l-t

ro I

aceastd funclie definitd, programul care rezolva problema este urmdtorul:

i1,9 execute
ra""a ctlil=l atunci
I bb*10 + i

Tpntru

gltegte

lr
l1l

f.ntlu

I
I

b) Parcurgem figierul gi pentru fiecare numdr citit, apeldm subprogramul


cerinta a). Dace valoarea furnizatd prjn al doilea parametru este egald cu
pentru care s-a fecut apelul, atunci acel numdr are cifrele distincte

gi

crescdlor.

citeqte n dir fi9ier


Tpentru i1,n executS.
'| citegte a di.n fiSier
I cifre (a, b)
I ra""a a=b atunci sclie

lr.r
l.|

4.

concatenat cu blil
corrcalenat cu a[il,

Exemplu: dacd se citesc n= 3, a= 112, 123,


se afigeaze elementele tabloului c astfel:

LI2 L23234

15345

ie1,n execute citeste blil


Brntru
rtru i1,n execute
TdacE a Ii] <blil atunci clilconc(alil,btil)
I

lf

altfel

til econc(btil,alil

tru i1,n execu!5 scrie c[i]

Scrieli un program pa6ca1 lc/c+* care citegte de la tastature un


natural nenul n (r--<100) gi 2*n numere naturale de maximum 3
primele n reprezinte elementele tabloului unidimensional a, iar
elementele tabloului unidimensional b; tiecare tablou are
numerotate incepAnd de la 1. Programul construiegte in memorie gi afi
pe ecran cele n elemente ale unui tablou unidimensjonal c, in care
element ci (lsi<n) se obline conform definitiei urmetoare:

alil
cfit ={L blr.l

il,n execu!5 citeste alil

dace

altfel

345)

ali}<blil

9i b= ( 1,

234, 15 ),

n0

VABIANTA 056

1,
a.

Pentru a genera toate numerele nalurale cu exact 4 cifre gi care au


ordine strict descrescetoare, se poate utiliza un algoritm echivalent
pentru generarea:
aranjamentelor de 4 obiecte iuate

b.

cate 10

c.

rclc ulryr (nu a6 ating sfergitul dc figier) .x.cutl


I citegte x (din figier)
| 4acl xt2=O atunci vlnl xi n n+1

d.

permut5rilor a 10 obiecte

ll.l

dacd n=0 atunci scrie ,,nu exiata"

combindrilor de 10 obiecte
cate 4
permutdrilor a 4 obiecte

vlil cu vI j]

RAspuns corect: b
2.

Se considere subprogramul f,, definit alaturat. ce valoare are f (L2,3','l


f (2tLL4 , 1,1?
(Pasca,

(C/C++)

func!ion
f (n, c ! integer) : integert

int
t

begin

if n=0 then f r=0

elEe

if n mod 10=c then


f!=n mod 100+f (n div

10,c)

f,

(int n,int c)

Se considerd subprogramele

(n==0 ) return 0t
if, (n%10==c )
return neo100+f

return f, (n/10,

(n/10,

c) t

3.

=43

txt

txt

nu exisLa.

Exemplu: dace figierul nr.unere.

Scrieli numai antetul subprogramului

subprogramului

Figierul