Sunteți pe pagina 1din 4

Subprograme – Cifrele unui număr natural

1. Subprogramul numar are trei parametri:


• • n și c, prin care primește câte un număr natural (n [0,109], c [0,9]);
• • m, prin care furnizează numărul obținut din n, prin eliminarea din acesta a tuturor cifrelor egale
cu c, sau -1 dacă toate cifrele lui n sunt egale cu c. Cifrele nule nesemnificative sunt ignorate, ca în exemplu.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=50752 sau n=72 și c=5, după apel m=72, dacă n=500 și c=5, după apel m=0, iar dacă
n=55 și c=5, după apel m=-1.
2. Două numere se numesc oglindite dacă fiecare se obține din celălalt, prin parcurgerea cifrelor acestuia
de la dreapta la stânga. Două numere se numesc impar-oglindite dacă numerele obținute din acestea, prin
îndepărtarea tuturor cifrelor lor pare, sunt oglindite.
Subprogramul imog are trei parametri:
• • x și y, prin care primește câte un număr natural din intervalul [0,109];
• • rez, prin care furnizează valoarea 1 dacă x și y sunt impar-oglindite sau valoarea 0 în caz contrar.
Scrieți definiția completă a subprogramului.
Exemplu: dacă x=523 și y=84356, după apel rez=1,
iar dacă x=523 și y=84536 sau x=523 și y=84576 sau x=40 și y=86, după apel rez=0.
3. Un număr y este numit frate mai mare al unui număr x dacă x și y au același număr de cifre și fiecare
cifră a lui y se poate obține din cifra aflată pe aceeași poziție în x adunând la aceasta valoarea 1.
Subprogramul frate are doi parametri:
• • x, prin care primește un număr natural (x [0,109]);
• • y, prin care furnizează fratele mai mare al lui x, sau -1, dacă nu se poate obține un astfel de număr.
Scrieți definiția completă a subprogramului.
Exemplu: dacă x=1027, după apel y=2138, iar dacă x=9027, după apel y=-1.
4. Un număr este scris în baza de numerație b (b≤10) dacă cifrele sale aparțin intervalului [0,b-1].
Subprogramul baza are un singur parametru, n, prin care primește un număr natural (n [0,109]).
Subprogramul returnează cea mai mică bază din intervalul [2,10] căreia i-ar putea corespunde scrierea lui
n. Scrieți definiția completă a subprogramului.
Exemplu: dacă n=50731, subprogramul returnează numărul 8.
5. Subprogramul transformareBaza10 are doi parametri, b și n, prin care primește câte un număr natural
(b [2,10], n [0,109]). Subprogramul returnează suma tuturor produselor de forma c∙bk, unde c este cifra
de pe poziția k în scrierea numărului n; pozițiile sunt numerotate de la dreapta la stânga, iar cifra unităților
este pe poziția 0.
Scrieți definiția completă a subprogramului.
Exemplu: dacă b=2 și n=10010, subprogramul returnează 18 (18=1∙24+0∙23+0∙22+1∙21+0∙20).
6. Subprogramul duplicare are doi parametri:
· n, prin care primește un număr natural (nÎ[1,104]);
· d, prin care furnizează numărul obținut prin duplicarea fiecărei cifre impare a lui n sau -1 dacă acesta
nu are nicio cifră impară.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=2019, după apel d=201199.
7. Numim sub-număr plat al unui număr natural orice secvență formată din două cifre identice nenule,
aflate pe poziții consecutive în scrierea acestuia.
Subprogramul Suma are un singur parametru, n, prin care primeşte un număr natural (nÎ[10,109]).
Subprogramul returnează suma tuturor sub-numerelor plate ale lui n, sau valoarea 0 dacă nu există niciun
astfel de sub-număr. Scrieţi definiţia completă a subprogramului.
Exemplu: dacă n=722722555, atunci subprogramul returnează 154 (22+22+55+55=154), iar dacă n=140,
atunci subprogramul returnează 0.
8. Subprogramul Impare are un singur parametru, n, prin care primește un număr natural (nÎ[1,109]), cu
cel puțin o cifră impară. Subprogramul înlocuiește fiecare cifră impară a lui n cu cea mai mare cifră pară
strict mai mică decât ea (astfel cifra 1 se înlocuieşte cu cifra 0, cifra 3 cu cifra 2 etc.) și furnizează numărul
obținut tot prin parametrul n. Scrieți definiția completă a subprogramului.
Exemplu: dacă n=235690, atunci, după apel, n=224680, iar dacă n=15690, atunci, după apel,
n=4680.
9. Subprogramul identice are doi parametri, a și b, prin care primește câte un număr natural (10≤a≤b≤106).
Subprogramul afișează pe ecran toate numerele naturale din intervalul [a,b] care au toate cifrele identice.
Numerele afișate sunt separate prin câte un spațiu, iar dacă nu există astfel de numere, se afişează pe ecran
mesajul nu exista. Scrieţi definiţia completă a subprogramului.
Exemplu: pentru a=700 și b=1500 se afișează pe ecran
777 888 999 1111.
10. Subprogramul ranguri are un singur parametru, n, prin care primeşte un număr natural (nÎ[0,109]).
Subprogramul returnează numărul de cifre ale lui n care sunt egale cu pozițiile pe care le ocupă în scrierea
acestuia. Pozițiile sunt numerotate de la dreapta la stânga, iar cifra unităților ocupă poziția 0.
Scrieţi definiţia completă a subprogramului.
Exemplu: dacă n=6594270, subprogramul returnează numărul 4.
11. Scrieţi în limbajul C/C++ definiţia completă a subprogramul Del care are doi parametri: x, un număr
întreg de cel mult 9 cifre, şi y, un număr natural nenul de o cifră. Subprogramul determină eliminarea tuturor
cifrelor lui x mai mari strict decât y şi furnizează numărul obţinut tot prin intermediul parametrului x. Dacă
toate cifrele lui x sunt mai mari strict decât y, atunci x va primi valoarea -1.
Exemplu: dacă x=37659 şi y=6, după apel x=365, iar y=6.
12. Se consideră subprogramul cifre, care primeşte prin intermediul primului parametru, a, un număr
natural cu maximum 8 cifre nenule şi returnează, prin intermediul celui de-al doilea parametrul b, cel mai
mic număr care se poate forma cu toate cifrele distincte ale lui a.

13. Subprogramul verif primeşte prin singurul său parametru, x, un număr natural nenul cu cel mult 9 cifre
şi returnează valoarea 1 dacă numărul conţine cel puţin o secvenţă de 3 cifre impare alăturate şi 0 în caz
contrar.
Exemplu: dacă x=7325972 se va returna valoarea 1.

14. Să se scrie definiţia completă a subprogramului calcul, care primeşte prin intermediul celor doi
parametri ai săi două numere întregi, n şi k (1≤n≤100000000 şi 1≤k≤9), şi returnează cifra de rang k a
numărului n. Rangul unei cifre este numărul său de ordine, numerotând cifrele de la dreapta la stânga; cifra
unităţilor având rangul 1. Dacă numărul k este mai mare decât numărul de cifre ale lui n, atunci funcţia
returnează valoarea -1.
Exemplu: dacă n=9243 şi k=3, în urma apelului se va returna 2.

15. Scrieţi definiţia completă a subprogramului numar, cu patru parametri, care primeşte prin intermediul
parametrului n un număr natural format din cel mult 9 cifre, iar prin intermediul parametrilor c1 şi c2 câte
o cifră cu proprietatea c1<c2; subprogramul furnizează prin intermediul celui de al patrulea parametru, x,
o valoare obţinută prin eliminarea din numărul primit prin parametrul n a fiecărei cifre cuprinse în intervalul
închis [c1, c2]. Dacă toate cifrele lui n aparţin acestui interval, valoarea furnizată prin x va fi 0.
Exemplu: pentru n=162448, c1=4 şi c2=7, valoarea furnizată prin x va fi 128.
16. Subprogramul Nr are un singur parametru, k, prin intermediul căruia primeşte un număr natural de cel
puţin 3 cifre şi cel mult 9 cifre, cu toate cifrele nenule. Subprogramul furnizează tot prin intermediul
parametrului k, valoarea obţinută prin eliminarea primei şi ultimei cifre a numărului transmis la apel.
Exemplu: dacă subprogramul primeşte prin intermediul parametrului k valoarea 12438, în urma apelului
subprogramului Nr, k va primi valoarea 243. Scrieţi, în limbajul C/C++, definiţia completă a
subprogramului Nr.

17. Scrieţi definiţia completă a subprogramului numar, cu trei parametri, care primeşte prin intermediul
parametrului n un număr natural format din cel mult 9 cifre, iar prin intermediul parametrilor c1 şi c2 câte
o cifră nenulă. Subprogramul caută prima apariţie (de la stânga spre dreapta) a cifrei c1 în n, şi dacă aceasta
apare, o înlocuieşte cu c2, iar următoarele cifre, dacă există, sunt înlocuite cu câte o cifră 0. Subprogramul
furnizează tot prin n numărul astfel obţinut. Dacă cifra c1 nu apare în n, atunci valoarea lui n rămâne
nemodificată.
Exemplu: pentru n=162448, c1=4 şi c2=7 valoarea furnizată prin n va fi 162700.
18. Subprogramul suma are doi parametri:
• • n, prin care primește un număr natural din intervalul [0,109];
• • s, prin care furnizează suma cifrelor impare distincte din scrierea acestuia.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=4713835, după apel s=16 (16=7+1+3+5), iar dacă n=48, după apel s=0.
19. Subprogramul produs are doi parametri:
• • n, prin care primește un număr natural (n [0,109]);
• • p, prin care furnizează produsul cifrelor pare distincte din scrierea acestuia, sau -1 dacă nu există
astfel de cifre.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=1622325, după apel p=12 (12=6∙2), iar dacă n=122325, după apel p=2.
20. Subprogramul Cifre are un singur parametru, n, prin care primește un număr natural (nÎ[0,109]).
Subprogramul afișează pe ecran toate cifrele distincte care apar în scrierea lui n, separate prin câte un spațiu.
Scrieţi definiţia completă a subprogramului.
Exemplu: dacă n=24207, se afișează cifrele 0 2 4 7, nu neapărat în această ordine.

21. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale nenule n şi k (0<n<100,
0<k<4) şi apoi n numere reale pozitive care au cel mult 3 cifre la partea întreagă şi cel mult 5 cifre zecimale
şi afişează pe ecran numărul de valori reale citite care au mai mult de k cifre zecimale.
Exemplu: dacă pentru n se citeşte valoarea 5 şi pentru k valoarea 2 şi apoi şirul de numere reale
6.2 4.234 2 8.13 10.001 pe ecran se va afişa valoarea 2.

22. Scrieţi definiţia completă a subprogram max, cu trei parametri, a, b, c, care primeşte prin intermediul
parametrilor a şi b două numere reale cu exact două cifre la partea întreagă şi exact două zecimale fiecare.
Subprogramul determină cel mai mare număr real dintre următoarele patru valori: a, b şi numerele reale
obţinute din a şi b prin interschimbarea părţii întregi cu partea fracţionară în cadrul aceluiaşi număr. Această
valoare este furnizată prin intermediul parametrului real c.
Exemplu: dacă a=33.17 şi b=15.40, c va avea valoarea 40.15 (cea mai mare valoare
dintre 33.17, 15.40, 17.33 şi 40.15)
23. Scrieţi definiţa completă a subprogramului nreal cu doi parametri x şi y, numere naturale din intervalul
[1;1000] ce returnează un număr real cu proprietatea că partea sa întreagă este egală cu x, iar numărul
format din zecimalele sale, în aceeaşi ordine, este egal cu y.
Exemplu: pentru x=12 şi y=543, subprogramul returnează valoarea 12.543.
24. Scrieţi în limbajul C/C++ definiţia completă a subprogramului numar, cu exact doi parametri, care
primeşte prin intermediul parametrului x un număr natural nenul de cel mult 2 cifre, şi prin intermediul
parametrului y un număr natural nenul de cel mult 9 cifre. Subprogramul returnează cel mai mare număr
natural z pentru care există un număr natural k astfel încât z=xk şi z≤y.
Exemplu: pentru y=18 şi x=2 subprogramul va returna valoarea 16(=24<18).
25. Subprogramul afisare are trei parametri:
• • x și y, prin care primește câte un număr natural din intervalul [0,106] (x y);
• • k, prin care primește un număr natural (k [2,102]).
Subprogramul afișează pe ecran, în ordine strict crescătoare, numerele din intervalul [x,y], în secvențe de
câte k, cu excepția ultimei secvențe care poate conține mai puțin de k numere. Fiecare secvență se încheie
cu câte un simbol *, iar numerele și simbolurile sunt separate prin câte un spațiu, ca în exemplu.
Scrieți definiția completă a subprogramului.
Exemplu: dacă x=11, y=21 și k=4 se afișează pe ecran numerele de mai jos, în acest format.
11 12 13 14 * 15 16 17 18 * 19 20 21 *
26. Subprogramul produs are doi parametri:
· a, prin care primește un număr natural (aÎ[1,106]);
· k, prin care furnizează cea mai mare valoare naturală impară cu proprietatea că produsul tuturor numerelor
impare din intervalul [1,k] este mai mic sau egal cu a.
Scrieți definiția completă a subprogramului.
Exemplu: dacă a=200, atunci k=7 (1×3×5×7≤200<1×3×5×7×9).
27. Scrieţi definiţia completă a unui subprogram, nz, cu un parametru întreg n (0<n≤32000), care returnează
numărul zerourilor de la sfârşitul numărului n!.

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