Sunteți pe pagina 1din 2

Se consider subprogramul cmaxcare prin parametrul aprimete un numr natural nenul mai mic dect 30000,

iar prin parametrul bfurnizeaz cifra maxim din numrul a.


a) Scriei, folosind limbajul C/C++, subprogramul cmax.
b) Fiierul bac.txtconine cel mult 1000numere naturale nenule, mai mici dect 30000fiecare, separate prin
cte un spaiu. Scriei programul C/C++care citete din fiierul bac.txttoate numerele i care determin cea
mai mare cifr din scrierea lor i cel mai mic dintre numerele care conin aceast cifr, folosind apeluri utile ale
subprogramului cmax. Cifra i numrul determinate se vor afia pe ecran, separate printr-un spaiu.
Exemplu: dac fiierul bac.txtconine valorile: 2312641272345672371634atunci pe ecran se
afieaz 767.
Se consider subprogramul cmdivcare primete prin parametrii xi ydou valori ntregi pozitive (0<x<100i
0<y<100) i returneaz cel mai mare divizor comun al lor.
a) Scriei definiia complet a subprogramului cmdiv.
b) Scriei un program C/C++ care citete de la tastatur un numr natural n (1n100) i determin, utiliznd
apeluri ale subprogramului cmdiv, numrul fraciilor ireductibile de forma x/n cu xnumr natural (1xn). Numrul
obinut va fi afiat pe ecran.
Exemplu: pentru n=6se afieaz 2, deoarece, dintre fraciile 1/6, 2/6, 3/6, 4/6, 5/6, 6/6 doar dou sunt ireductibile
1/6 i 5/6.
a) Scriei n limbajul C/C++un subprogram cif,care primete prin intermediul primului parametru, nr, un numr
natural cu cel mult 9cifre i furnizeaz prin intermediul celui de-al doilea parametru, s, suma cifrelor din scrierea lui
nr.
b) Scriei programul C/C++care citete de la tastatur un numr natural n(0<n<25), apoi un ir de nnumere
naturale nenule cu cel mult 9cifre fiecare i care afieaz pe ecran, separate prin cte un spaiu, numerele din ir
care au suma cifrelor maxim, folosind apeluri utile ale subprogramului cif.
Exemplu: dac pentru n=8se citete irul de numere 274560183548219293287932634atunci, pe
ecran, se afieaz numerele 560188219.
a) Scriei n limbajul C/C++doar antetul subprogramului cifre, care prin intermediul parametrului nrprimete un
numr natural de cel mult 9cifre i furnizeaz prin intermediul parametrilor nci scnumrul de cifre i respectiv
suma cifrelor din scrierea lui nr.
b) Scriei programul C/C++care citete de la tastatur un numr natural n(10n109) i verific, folosind apeluri
utile ale subprogramului cifre, dac n scrierea n baza 10a lui nse gsete cel puin o cifr care s fie media
aritmetic a celorlalte cifre din componena lui n.Programul afieaz pe ecran mesajul DA n caz afirmativ i
mesajul NUn caz contrar.
Exemplu: pentru n=27989 programul va afia mesajul DA, deoarece n scrierea lui n apare cifra 7 care este
media aritmetic a celorlalte cifre din scrierea lui n: 7=(2+9+8+9)/4. Pentru n=7351se va afia mesajul NU.
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).
Se consider subprogramul pr, care primete prin intermediul parametrului aun numr natural nenul cu cel mult 9
cifre i returneaz 1dac numrul este prim i 0n caz contrar.
a) Scriei subprogramul pr.
b) Considerm un numr natural nenul n99cu cel mult 9cifre. Din nse obine un ir de valori prin eliminarea
succesiv a ultimei cifre, apoi a ultimelor dou cifre, apoi a ultimelor trei cifre etc., pn ce se obine un numr de
dou cifre, ca n exemplu. S se realizeze un program C/C++ care citete de la tastatur numrul n i care,
folosind apeluri utile ale subprogramului pr, afieaz pe ecran, separate prin cte un spaiu, doar valorile prime din
irul numerelor obinute din n, prin procedeul descris mai sus.
Exemplu: pentru n=193124se obine irul de valori 19312,1931, 193, 19. din care se vor afia pe ecran doar
valorile 193119319(nu neaprat n aceast ordine).

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.
a) Scriei subprogramul nrdiv, care primete prin intermediul parametrului xun numr natural nenul cu cel mult 4
cifre, i returneaz numrul de divizori primi ai lui x.
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 4cifre. 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
Subprogramul cifraprimete prin intermediul parametrului aun numr natural cu cel mult 4cifre i returneaz
ultima cifr par a sa. Dac numrul nu conine cifre pare, subprogramul returneaz valoarea 1. De exemplu,
dac a=8345, subprogramul va returna 4.
a) S se scrie definiia complet a subprogramului cifra.
b) Pe prima linie a fiierului bac.inse afl un numr natural nenul n(n15000), iar pe a doua linie a fiierului
se afl un ir de nnumere naturale, desprite prin cte un spaiu, fiecare numr fiind format din cel mult 4cifre.
Scriei un program C/C++ care citete numerele din fiier i afieaz pe ecran, folosind apeluri utile ale
subprogramului cifra, cel mai mare numr care se poate forma cu ultimele cifre pare ale fiecrui element, dac
acestea exist. Alegei o metod de rezolvare eficient ca timp de executare. Dac toate numerele de pe a doua
linie a fiierului au numai cifre impare, programul va afia mesajul NUEXISTA.
Exemplu: dac fiierul bac.inare coninutul alturat, pe ecran se va afia: 64220
7
3691132033135442
a) Scriei definiia complet a unui subprogram sumcare primete prin parametrul xun numr natural de cel mult
4cifre 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 10 este 7, suma divizorilor lui 2 este 0, suma divizorilor lui 33 este 14, suma
divizorilor lui 6este 5, suma divizorilor lui 11este 0.
a) Scriei definiia complet a unui subprogram primul, care
- primete prin singurul su parametru, a, o valoare natural din intervalul [2,10000]
- returneaz o valoare natural reprezentnd cel mai mic divizor al numrului amai mare strict dect 1.
b) Fiierul text NUMERE.INconine 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 DA77pentru c numrul 77este cel cel mai mare dintre numerele aproape prime
din fiier (14=7*2,21=7*3,77=7*11,35=7*5).

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