Sunteți pe pagina 1din 4

APLICAŢII SUBPROGRAME

SETUL 1. APELUL SUBPROGRAMELOR ŞI REVENIREA DIN FUNCŢIE

SĂ SE SCRIE CÂTE UN PROGRAM C++ PENTRU REZOLVAREA URMĂTOARELOR CERINŢE:


1. Calculează inversul unui număr natural N.
long int invers (long int x)

2. Decide dacă un număr natural N este palindrom. Se va utiliza funcţia invers.


int palindrom (long int x)

3. Afişează toţi divizorii unui număr natural N.


void Afisare_div (long int x)

4. Numără toţi divizorii unui număr natural N.


int Nr_div (long int x)

5. Calculează suma cifrelor unui număr natural N.


int Suma_cif (long x)

6. Calculează prima cifră a unui număr natural N.


int Prima_cif (long N)

7. Calculează cel mai mare divizor comun dintre două numere naturale a şi b.
long Cmmdc (long x, long y)

8. Calculează cel mai mic multiplu comun dintre două numere naturale a şi b. Se va utiliza Cmmdc.
long Cmmmc (long x, long y)

9. Calculaţi maximul dintre două numere reale a şi b.


double Maxim_2 (double x, double y)

10. Calculaţi maximul dintre trei numere reale a, b, c.


double Maxim_3 (double x, double y, double z)

11. Să se verifice dacă un număr natural N este număr prim.


int Prim (unsigned long N)

12. Să se scrie un program pentru rezolvarea ecuaţiei de gradul II cu coeficienţi reali.


void Ecuatie (float a, float b, float c)

13. Să se afişeze toate numerele prime din [a, b]; (a, b ∈ N, 0 <= a <= b). Se va utiliza funcţia Prim.
void Prime_interval(long int a, long int b)

14. Să se numere câte numere palindrom sunt în [a, b]; (a, b ∈ N, 0 <= a <= b). Se va utiliza funcţia Palindrom.
int Palindrom_interval (long int a, long int b)

15. Să se afişeze toate numerele din [a, b] care au prima cifră egală cu ultima; (a, b ∈ N, 0 <= a <= b). Se va utiliza
funcţia Prima_cifră.
void Prima_ultima(long int a, long int b)

16. Să se numere câte numere din [a, b] au exact doi divizori proprii; (a, b ∈ N, 0 <= a <= b). Se va utiliza o funcţie
care numără divizorii proprii ai unui număr natural.
int Doi_divizori_proprii(long int a, long int b)

17. Să se calculeze media aritmetică a elementelor din [a, b] care au exact două cifre pare. (a, b ∈ N, 0 <= a <= b). Se
va utiliza o funcţie care numără cifrele pare ale unui număr.
float Media(long int a, long int b)
18. Se consideră fişierul text „numere.in” care conţine pe prima linie un umăr natural N şi pe a doua linie N numere
naturale. Să se construiască fişierul text „numere.out” care va conţine pentru fiecare număr x din „numere.in”,
câte o linie de forma : x urmat de numărul divizorii lui x şi urmat de inversul lui x. Se vor utiliza funcţiile Ex.1 şi
Ex.4.
Numere.in Numere.out
4 12 6 21
12 5 8 20 5 2 5
8 4 8
20 6 2

19. Se consideră fişierul text „perechi.txt” care memorează pe prima linie un număr natural N şi pe următoarele N
linii câte o pereche de numere naturale. Să se creeze prin program fişierul text „divizor.txt” care va conţine cele N
perechi de numere din fişierul „perechi.txt” şi pentru fiecare pereche de numere, cel mai mare divizor comun şi
cel mai mic multiplu comun. Se va utiliza funcţia cmmdc.
Perechi.txt Divizor.txt
2 20 30 10 60
20 30 3 8 1 24
38

20. Se consideră fişierul text „numere.txt” care conţine pe prima linie un şir de numere naturale. Construiţi prin
program fişierul text „rezultat.txt” care va conţine pe prima linie acele numere din „numere.txt” care au prima
cifră egală cu ultima. Se va utiliza funcţia Prima_cifră.

Numere.txt Rezultat.txt
123 121 5 67 88 987 121 5 88

21. Un număr N este perfect dacă N este egal cu suma divizorilor lui N cuprinşi între 1 şi N/2. Să se afişeze toate
numerele perfecte cuprinse între 1 si 1000.
long Suma_div (long N)
void main ()

22. Se citeşte de la tastatură un şir de numere naturale până la întâlnirea unui număr prim. Să se afişeze suma
palindroamelor citite.
int Prim (long x)
int Palindrom (long x)
long Suma Citeste ()
void main ()

23. Se citeşte de la tastatură un număr natural N. Să se găsească care dintre numerele naturale de la 1 la N are cei mai
mulţi divizori. Se va afişa pe ecran numărul găsit, numărul de divizori ai acestui număr şi divizorii acestui număr.
int Nr_div (long N)
void Divizori (long N)
long max (long N)
void main ()
SETUL 1. TRANSMITEREA TABLOURILOR UNEI FUNCTII
24. Se citeşte de la tastatură un vector V cu N elemente naturale. Să se înlocuiască fiecare element prim din vectorul
V cu inversul său.
void Citire (long V[], int &N)
int Prim (long X)
long Invers (long X)
void Inlocuire (long V[], int N)
void Afisare (long V[], int N)

25. Se citeşte de la tastatură un vector V cu N elemente reale. Să se permute circular la dreapta vectorul V cu k
poziţii.
void Citire (float V[], int &N)
void Permuta (float V[], int N, int k)
void Afisare (float V[], int N)

26. Se citeşte din fişierul vector.in un vector V cu N elemente întregi. (pe prima linie N şi pe a doua linie elementele
separate prin spaţiu). Să se elimine elementele palindrom din vector.
void Citire (long V[], int &N, char *s)
int Palindrom (long X)
void Elimina (long V[], int &N)
void Afisare (long V[], int N)

27. Se citeşte din fişierul numere.in un vector cu N elemente naturale. (toate elementele sunt memorate pe prima
linie). Să se adauge după fiecare element par al vectorului câte un număr egal cu inversul numărului respectiv.
void Citire (long V[], int &N, char *s)
long Invers (long X)
void Inserare (long V[], int &N)
void Afisare (long V[], int N)

28. Se citeşte de la tastatură un număr N. Să se genereze un vector cu elemente naturale cuprinse între 10 şi 100. Să
se calculeze elementul maxim şi elementul minim din vector.
void Generare (long V[], int &N)
void Afisare_Max_Min (long V[], int N, long &max, long &min)

29. Se citeşte de la tastatură un vector V cu N elemente naturale. Să se calculeze cel mai mare divizor comun dintre
elementele vectorului.
void Citire (long V[], int &N)
long Cmmdc (long V[], int N)

30. Se citeşte de la tastatură un vector V. cu N elemente reale. Se citeşte de la tastatură un număr X. Să se numere de
câte ori apare X in V. Să se afişeze indicii elementelor din V care sunt egale cu X.
void Citire (long V[], int &N, long &X)
int Aparitii (long V[], int N, long X)

31. Se consideră două fişiere text „vector1.txt” şi „vector2.txt” care memorează elementele a doi vectori A şi B. (pe
prima linie numărul de elemente, pe a doua linie elementele). Să se construiască un vector C care conţine
elementele comune celor doi vectori. Să se construiască un vector D care conţine elementele din A care nu sunt în
B.

void Citire (long V[], int &Nr, char *s)


void Intersectie (long A[], int N, long B[], int M, long C[], int &P)
void Diferenta (long A[], int N, long B[], int M, long C[], int &P)
void Afisare (long V[], int N)
32. Să se citească de la tastatură o matrice de dimensiuni NxM. Să se afişeze elementele de pe conturul matricei.
void Citire (long A[][20], int &N, int &M)
void Afisare_Matrice (long A[][20], int N, int M)
void Afisare_Contur (long A[][20], int N, int M)

33. Să se citească din fişierul „matrice.in” o matrice pătratică de dimensiune N.


a. Afişaţi elementele de pe diagonala principală.
b. Număraţi elementele prime de pe diagonala secundară.
c. Înlocuiţi fiecare element prim de sub diagonala secundară cu inversul său.
d. Să se calculeze media aritmetică a elementelor din zona de Nord a matricei.

void Citire (long A[][20], int &N, char * s)


void Afisare_Matrice (long A[][20], int N)
void Afisare_Diag_Princ (long A[][20], int N)
int Nr_Prime (long A[][20], int N)
void Inlocuire (long A[][20], int N)
float Medie (long A[][20], int N)

34. Să se genereze o matrice pătratică binară, simetrică faţă de diagonala principală, de dimensiune N, cu diagonala
principală 0. Care este linia (liniile) care au cele mai multe zerouri. Se vor afişa indicii acestora.
Void Generare (int A[][20], int &N)
void Afisare_Matrice (long A[][20], int N)
Void Linii (long A[][20], int N)

35. Să se genereze o matrice MxN cu elemente naturale de trei cifre. Se citesc de la tastatură două numere X şi Y. Sa
se interschimbe linia X cu linia Y.
void Citire (long A[][20], int &N, int &M)
void Afisare_Matrice (long A[][20], int N, int M)
void Schimba (long A[][20], int M, int x, int y)

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