Sunteți pe pagina 1din 2

Prof.

Oana Cristina Butnarasu


Fisa subprograme (3)
1. Scriei definiia complet a subprogramului intervalcare are doi parametri ai n, prin care primete un tablou
unidimensional cu maximum 100de numere naturale mai mici dect 1000i respectiv numrul efectiv de elemente
din tabloul unidimensional. Subprogramul returneaz numrul de elemente din tabloul unidimensional care aparin
intervalului nchis determinat de primul i respectiv ultimul element al tabloului.
Ex: dac tabloul are 6elemente i este de forma (12,27,6,8,9,2), subprogramul va returna valoarea 5.
2. Scriei definiia complet a subprogramului sterge, care primete prin cei 4parametri v,n,i,j:
- v, un tablou unidimensional cu maximum 100de elemente ntregi din intervalul [1000,1000]
- n, un numr natural reprezentnd numrul de elemente din tabloul v
- ii jdou valori naturale cu 1ijni elimin din tabloul velementele vi,vi+1,,vjactualiznd valoarea
parametrului n. Tabloul modificat este furnizat tot prin parametrul v.
3. a) Scriei definiia complet a unui subprogram primul, care - primete prin singurul su parametru, a, o valoare
natural din intervalul [2,10000]si returneaz o valoare natural reprezentnd cel mai mic divizor al numrului a
mai mare strict dect 1.
b) Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n(1n100) i pe urmtoarea linie n
numere naturale din intervalul [2,10000]separate prin cte un spaiu. Un numr natural nse numete aproape
prim dac este egal cu produsul a dou numere prime distincte. De exemplu, numrul 14este aproape prim pentru
c este egal cu produsul numerelor prime 2i 7.
Scriei un program C/C++ care determin, folosind apeluri utile ale suprogramului primul, cel mai mare numr
aproape prim de pe linia a doua a fiierului NUMERE.IN.n cazul n care exist un astfel de numr se afieaz pe
ecran mesajul DA, urmat de numrul determinat, iar n caz contrar mesajul NU.
Exemplu: dac fiierul NUMERE.INare coninutul:
6
100142187735 atunci se afieaz pe ecran DA77 pentru c numrul 77 este cel cel mai mare dintre
numerele aproape prime din fiier (14=7*2,21=7*3,77=7*11,35=7*5).
4. Scriei definiia complet a subprogramului multipli, cu trei parametri a,b,c (ab), numere naturale din
intervalul [1,10000]ce returneaz numrul numrul multiplilor lui cdin intervalul [a;b].
Exemplu: pentru a=10, b=27,c=5subprogramul returneaz valoarea 4.
5. Scriei definiia complet a subprogramului suma, care primete prin cei 4parametri, v,n,i,j:
- v, un tablou unidimensional cu maximum 100de elemente ntregi din intervalul [1000,1000], numerotate de la 1
la n;
- n, un numr natural reprezentnd numrul de elemente din tabloul v;
- ii j, dou val. naturale cu 1ij100i returneaz suma elementelor v1,vi1,vj+1,,,vndin tabloul
v.
6. Subprogramul sum3primete prin parametrul xun tablou unidimensional, cu cel mult 100de elemente, numere
ntregi cu cel mult 4cifre fiecare, iar prin parametrul nun numr natural ce reprezint numrul efectiv de elemente ale
tabloului x (n100). Scriei definiia complet a subprogramului sum3 care returneaz suma elementelor tabloului
care sunt divizibile cu 3. Dac tabloul nu conine nicio valoare divizibil cu 3, subprogramul va returna 0.
7. a) Scriei definiia complet a unui subprogram sumcare primete prin parametrul xun numr natural de cel mult 4
cifre i returneaz suma divizorilor numrului x, diferii de 1i de el nsui.
Exemplu: dac x=10se va returna valoarea 7(7=2+5).
b) Scriei programul C/C++care citete de la tastatur un numr natural n(0<n<100), apoi nnumere naturale (cu
cel mult 4 cifre fiecare). Programul determin, folosind apeluri utile ale subprogramului sum, pentru fiecare numr
natural citit, suma divizorilor si proprii i afieaz pe ecran sumele determinate, n ordinea cresctoare a valorilor lor,
separate prin cte un spaiu.
Exemplu: dac n=5i numerele citite sunt 10233611valorile afiate pe ecran vor fi: 005714
deoarece suma divizorilor lui 10este 7, suma divizorilor lui 2este 0, suma divizorilor lui 33este 14, suma divizorilor
lui 6este 5, suma divizorilor lui 11este 0.
8. a) Scriei doar antetul subprogramului nrdiv, care primete prin intermediul parametrului xun numr natural nenul
cu cel mult 4cifre, i returneaz numrul de divizori primi ai lui x.

Prof. Oana Cristina Butnarasu


b) Pe prima linie a fiierului bac.inse afl un numr natural nenul n(n1000), iar pe a doua linie a fiierului se
afl un ir format din nnumere naturale nenule, desprite prin cte un spaiu, fiecare numr fiind format din cel mult 4
cifre. Scriei un program C/C++care citete numerele din fiier i care afieaz pe ecran, folosind apeluri utile ale
subprogramului nrdiv, prima i ultima valoare din irul celor nnumere citite, care au un numr par de divizori primi.
Numerele afiate vor fi separate printr-un spaiu.
Exemplu: dac fiierul bac.inare coninutul alturat, pe ecran se va afia: 2010
7
30105201407105
9. Scriei n limbajul C/C++definiia complet a subprogramul Delcare are doi parametri: x, un numr ntreg de cel
mult 9cifre, i y, un numr natural nenul de o cifr. Subprogramul determin eliminarea tuturor cifrelor lui xmai mari
strict dect yi furnizeaz numrul obinut tot prin intermediul parametrului x. Dac toate cifrele lui xsunt mai mari
strict dect y, atunci xva primi valoarea 1.
Exemplu: dac x=37659i y=6, dup apel x=365, iar y=6.
10. Se consider subprogramul inter, cu doi parametri: x i y (numere ntregi formate din cel mult patru cifre
fiecare); subprogramul interschimb valorile a dou variabile transmise prin intermediul parametrilor xi y.
a) Scriei n limbajul C/C++definiia complet a subprogramului inter.
b) Pe prima linie a fiierului bac.inse afl un numr natural nenul n1000, iar pe a doua linie a fiierului se afl un
ir de nnumere naturale nenule, desprite prin cte un spaiu, fiecare numr fiind format din cel mult 4cifre. Scriei
un program C/C++ care afieaz pe ecran, n ordine cresctoare, numerele aflate pe a doua linie a fiierului.
Numerele vor fi afiate pe o singur linie, iar ntre dou numere se va lsa un spaiu. Se vor folosi apeluri utile ale
subprogramului inter.
11. a) Scriei definiia complet a subprogramului sdiv care primete prin intermediul parametrului y un numr
natural cu cel mult 6cifre i returneaz suma tuturor divizorilor numrului y.
b) Scriei un program C/C++care citete de la tastatur un numr natural n(n<10000)i care, folosind apeluri ale
subprogramului sdivverific dac suma divizorilor lui neste un numr prim. n caz afirmativ, programul va afia pe
ecran mesajul Dai n caz contrar va afia mesajul NU.
Exemplu: dac n=206, atunci programul va afia: NU(1+2+103+206=312, iar 312nu este un numr prim).
12. Scriei un subprogram DIST, cu doi parametri, care primete prin intermediul parametrului a un tablou
unidimensional cu cel mult 100 de elemente, numere naturale de cel mult 4 cifre fiecare, i prin intermediul
parametrului n un numr natural nenul, n<100, ce reprezint numrul de elemente din tablou. Subprogramul
returneaz valoarea 1 dac toate elementele tabloului a sunt distincte i dac diferena absolut a oricror dou
elemente vecine din tablou este diferit de 1, altfel returnnd valoarea 0.
13. Scriei definiia complet a unui subprogram P, cu trei parametri, care primete prin intermediul primului parametru,
a, un tablou unidimensional de cel mult 100de numere ntregi, cu cel mult 4cifre fiecare, prin intermediul celui de-al
doilea parametru, n, numrul efectiv de elemente ale tabloului, iar prin parametrul k, un numr natural (k<101) i
returneaz cea mai mare sum cu ktermeni care se poate obine adunnd kelemente ale tabloului.
Ex: dac n=6i k=4, iar irul este format din elementele (5,2,5,4,1,3), atunci la apel se va returna 17.
14. Scriei definiia complet a unui subprogram Pcu doi parametri, care primete prin intermediul primului parametru,
n, un numr natural nenul (1n100) i prin intermediul celui de-al doilea parametru, a, un tablou unidimensional cu
elementele numerotate de la 1la n, numere ntregi de cel mult 4cifre fiecare. Subprogramul returneaz suma tuturor
numerelor impare aflate pe poziii pare din tablou. Exemplu: dac n=6, iar irul a este format din elementele
(3,12,7,1,4,3), atunci la apel se va returna 4.

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