Page 88 - MATINF Nr. 7
P. 88
˘
88 PROBLEME DE INFORMATICA PENTRU EXAMENE
s , ir ˆıntre oricare dou˘a vocale de pe pozit , ii consecutive a caracterului ”*”, iar ˆıntre oricare
dou˘a consoane de pe pozit , ii consecutive a caracterului ”#”. Dac˘a ˆın s , ir nu exist˘a vocale s , i
consoane pe pozit , ii consecutive se va afis , a un mesajul ”nu exista”.
Exemplu: pentru s , irul calculatoare se va afi¸sa: cal#culato*are, iar pentru s , irul
monitor se va afis , a nu exista (10p.)
2. Scriet¸i definit¸ia complet˘a a subprogramului bac cu trei parametri, care prime¸ste prin
intermediul primului parametru x un tablou unidimensional cu maxim 100 de numere
ˆıntregi de maxim 5 cifre fiecare s , i prin intermediul parametrilor p1 s , i p2, p1 < p2, dou˘a
pozit , ii din tabloul x. Subprogramul returneaz˘a prin intermediul parametrului x tabloul
obt , inut ˆın urma interschimb˘arii primei valori pozitive cu ultima valoare negativ˘a din
secvent , a de elemente dintre pozit , iile p1 s , i p2, iar prin parametrii p1 s , i p2 returneaz˘a
pozit , iile celor dou˘a elemente, dac˘a secvent , a nu cont , ine valori pozitive sau negative aceasta
r˘amˆane nemodificat˘a, iar p1 s , i p2 returneaz˘a valoarea −1.
Exemplu: dac˘a n = 6 s , i x = (−7, −10, 13, 6, −8, 2), p1 = 2 s , i p2 = 5 ˆın urma execut , iei
subprogramului se va obt , ine vectorul (−7, −10, −8, 6, 13, 2), iar p1 = 3 s , i p2 =5. (10p.)
3. a) Folosind un algoritm eficient din punct de vedere al timpului de executare, scriet¸i un
program C/C++ care cite¸ste dou˘a numere naturale a s , i b de maxim 9 cifre fiecare
s , i un num˘ar natural c, (c < 10) s , i determin˘a toate numerele din intervalul ˆınchis
determinat de a s , i b a c˘aror cifr˘a caracteristic˘a este egal˘a cu c (cifra caracteristic˘a a
unui num˘ar natural este egal˘a cu suma cifrelor num˘arului, iar dac˘a suma cifrelor are
mai mult de 1 cifr˘a se calculeaz˘a suma cifrelor sumei s , i as , a mai departe pˆan˘a cˆand
se obt , ine un num˘ar de o cifr˘a; exemplu: cifra caracteristic˘a a num˘arului 919 este 1
deoarece 9 + 1 + 9 = 19, 1 + 9 = 10, 1 + 0 = 1).
Numerele se vor afi¸sa ˆın fi¸sierul text bac.out separate printr-un spat , iu, dac˘a nu
exist˘a nici un num˘ar ˆın interval cu proprietatea cerut˘a se va afis , a mesajul Nu exista.
(6p.)
b) Descriet¸i ˆın limbaj natural metoda utilizat˘a justificˆand eficient¸a acesteia. (4p.)
Exemplu: dac˘a se citesc valorile 83, 107, 5, se vor afis , a ˆın fis , ier numerele 86 95
104.