Sunteți pe pagina 1din 2

FUNCTII-Probleme

1) Scrieti o functie care calculeaza diferenta dintre cel mai mare si cel mai mic intre doua
numere intregi a si b in urmatoarele variante
a) functia nu are parametri si variabilele a si b sunt globale, rezultatul este dat prin
instructiunea return
b) functia are doi parametri si rezultatul este dat prin instructiunea return
c) functia are trei parametri si rezultatul este returnat prin al treilea parametru
d) functia are un parametru si variabilele a si b sunt globale, rezultatul este returnat prin
parametrul functiei

2) Fie doua functii suma si prod care calculeaza suma, respectiv produsul numerelor intregi x,
y ce le sunt transmise ca parametri. Antetul celor doua functii este indicat mai jos:
int suma(int x, int y) si int prod(int x, int y)
-fie variabilele a, b, c de tip intreg. Care dintre expresiile de mai jos calculeaza valoarea
expresiei (a+b)*(a+c)*(b+c)
a) prod(suma(a,b),suma(a,c),suma(b,c))
b)prod(suma(a,b),prod(suma(a,c),suma(b,c)))
c) prod(prod(suma(a,b),suma(a,c),prod(suma(b,c),suma(a,b)))

3) Ce valori vor fi afisate in urma executarii urmatorului program


#include<iostream>
using namespace std;
int n=21987;
int cif (int &x)
{ int c; c=x % 10; x=x/10; return (c+x%10)%10;}
int main ()
{ cout<<cif(n)+cif(n);
return 0;}
a)12b)10c) 32d) 30

4) Scrieţi un program prin care să calculaţi aria unui triunghi. Valorile pentru laturile
triunghiului se introduc de la tastatură în funcţia rădăcină, iar aria se calculează într-un
subprogram. Veţi construi subprogramul în două variante:
a) valoarea ariei se afişează în funcţia rădăcină;
b) valoarea ariei se afişează în subprogram.

5) Se citeste un numar natural n in baza 10 si b un numr natural 2<=b<=9 reprezentand o


baza de numeratie. Sa se transforme numarul n in baza b.
Indicatie:
Vom scrie o functie conv, de tip void, cu doi parametrii transmisi prin valoare, respectiv n si b.
Rezultatul conversiei il vom memora intr-un tablou unidimensional t. In finalul functiei afisam
continutul tabloului in ordinea inversa construirii lui.

1
6)Subprogramul sub, cu trei parametri, primeşte prin intermediul parametrului:
– v un tablou unidimensional cu cel mult 100 de componente ce memorează numere
întregi cu cel mult 4 cifre;
– n un număr natural nenul mai mic sau egal cu 100 ce reprezintă numărul efectiv de
componente ale tabloului primit prin intermediul parametrului v;
– a un număr întreg cu cel mult 4 cifre.
Subprogramul sub returnează numărul componentelor tabloului primit prin intermediul
parametrului v ale căror valori sunt egale cu valoarea parametrului a.
Exemplu: pentru valorile n=5, v=(1,21,9,21,403), a=21 ale parametrilor, în urma apelului,
subprogramului sub va returna valoarea 2.
a) Scrieţi definiţia completă a subprogramului sub. (4p.)
b) Scrieţi un program C/C++ care să citească de la tastatură un număr natural nenul n
(n≤100) şi n numere întregi, fiecare având cel mult 4 cifre, şi care, folosind apeluri utile ale
subprogramului sub, să afişeze pe ecran mesajul DA dacă oricare două dintre cele n numere
citite sunt distincte două câte două, sau mesajul NU în caz contrar.
Exemplu: pentru n=6 şi cele n numere citite de la tastatură: 47 183 69 8 134 -56 se va afişa pe
ecran mesajul DA

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


double Maxim_2 (double x, double y)

8) Se citeşte un număr natural n. Să se numere câte cifre pare şi câte cifre impare are numărul.
Indicaţie:
Definim funcţia cifre pentru numărarea cifrelor pare şi impare, căreia îi transmitem trei parammetrii:
• n- numărul citit, parametru transmis prin valoare;
• c_pare –numărul cifrelor pare, parametru transmis prin referinţă, care va transmite
numarul cifrelor pare ale numărului, din funcţie înspre programul apelant.
• c_impare –numărul cifrelor impare, parametru transmis prin referinţă, care va
transmite numărul cifrelor impare ale numărului, din funcţie înspre programul apelant.
Funcţia cifre va returna programului principal numărul cifrelor pare şi numărul cifrelor impare, prin
intermediul parametrilor transmişi prin referinţă.

9) Folosiţi subprogramul care testează dacă un număr natural este număr prim, pentru a
rezolva următoarea problemă: se introduc de la tastatură n numere naturale; să se afişeze câte
numere sunt prime.

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

11) Se consideră un şir de n numere reale. Să se afişeze şirul format prin inversarea
elementelor de pe poziţiile consecutive în şirul iniţial. Se va folosi o functie pentru
interschimbare
Ex: şir iniţial 3 2 5 8 9 10 şir final 2 3 8 5 10 9

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