Sunteți pe pagina 1din 3

Probleme

FUNCTII DEFINITE DE UTILIZATOR


Problema 1:
Scrieti o funcie care returneaz ultima cifr a unui numr natural. De exemplu, dac parametrul
efectiv este 127, funcia va returna 7.
Antetul functiei : int cifra_ultima(int n)
Problema 2:
Un numar natural este palindrom dac citit de la stnga la dreapta i de la dreapta la stnga
rmne nemodificat. De exemplu, numarul 12321 este palindrom. Un numar natural este
superpalindrom dac este palindrom att el ct i ptratul su. Scriei un program care listeaz
toate numerele cu aceast proprietate aflate ntre doi ntregi a i b (a<b<32000).
Antet functie : int palindrom(int n)

int superpalindrom(int n)
int invers(int n)
Problema 3:
Se consider programul:
#include <iostream.h>
int a,b; float x;
int f(int c)
{ int a,b; //linia 5
a=10;
b=5;
return (a+b+c);
}

Cerinta :
3.1) Ce se va afisa daca:
a) lipseste linia 5 din program
b) nu lipseste linia 5 din program
Justificai rspunsul.
3.2)a) Ci parametri actuali sunt in program ?
R:__________
b) Incercuiti-i.

void main()
{a=3; b=1;
x=f(a-b)%10;
cout<<a<< <<b<< <<x<<endl;
}
4. Scriei un subprogram care afiseaza :
a) divizorii proprii unui nr. natural de cel mult 4 cifre, transmis ca si parametru.
b) suma divizorilor unui numar natural n dat ca parametru
c) daca este sau nu numar prim.
d) daca este sau nu patrat perfect.
e) numarul divizorilor unui numar natural n, dat ca parametru.

Antet functii :
a) void div_proprii(int n)
b) void suma_divizori(int n)
c) int este_prim(int n)
d) int este_patrat_perfect(int n)
e) int nr_divizori(int n)
5. Se consider programul:
#include <iostream.h>
int a,b; float x;
int f(int y)
{ int a,b; //linia 5
a=9; b=5;
return (a+b+y);
}

Cerinta :
3.1) Ce se va afisa daca:
a) lipseste linia 5 din program
b) nu lipseste linia 5 din program
Justificai rspunsul.
3.2) a) Cte variabile globale sunt sunt in
program ? R: __________
b) Incercuiti-le.

void main()
{a=3; b=1;
x=f(a-b)+5;
cout<<a<< <<b<< <<x<<endl;
}
6. Se consider programul:
#include <iostream.h>
int a,b; float x;
int f(int d)
{ int a,b; //linia 5
a=13; b=15;
return (b-a+d);
}

Cerinte :
3.1) Ce se va afisa daca:
a) lipseste linia 5 din program
b) nu lipseste linia 5 din program
Justificai rspunsul.
3.2) a)Cate variabile locale au fost declarate
in program ? R : _______
b) Incercuiti-le.

void main()
{a=2; b=5;
x=f(a+b)/2;
cout<<a<< <<b<< <<x<<endl;
}
Problema 7:
Competente necesare

1. Fie x numar natural. Scriei programul in limbajul C/C++ care determin


oglinditul numrului x, prin intermediul unei functii invers care primeste ca
parametru numarul x si intoarce oglinditul / inversul acestuia.
2. Folosind apelul subprogramului anterior, scrieti o functie care intoarce valoare
1 / 0 dac si numai daca numarul natural x este palindrom/ nu este palindrom.

3. Folosind cele 2 functii definite anterior, determinati toate valorile palindrom dintrun vector v cu n elemente numere intregi.

Functia are urmatorul antet : int numarare(int v[100], int n)


Cuplati toate functiile de mai sus intr-un program C/C++ functional.
Problema 8:
Subprogramul cifmax(i) returneaz cea mai mare cifr a numrului i. Stabilii valoarea
expresiei: cifmax(cifmax(173)+cifmax(18)):
a.

b.

c.

15

d.

Scrieti definitia completa a functiei cifmax .


Problema 9:

a.

Subprogramul nrcif(i) returneaz numrul de cifre pe care le are numrul natural i. Stabilii
valoarea expresiei
nrcif( nrcif(173) + nrcif(18) )
5
d. 1
b. 10
c. 2

Scrieti definitia completa a functiei nrcif.


Problema 10:
1.Se consider programul pseudocod alturat:
Se consider funcia max(x,y) care calculeaz
maximul dintre numere ntregi x i y.

citete n
(numr natural nenul)
pentru i=1,n execut

citete Vi

m V1; i 3
ct timp i<= n execut
m max(m, Vi)
i i+2

scrie m

1)

Ce se va afia pentru n=5 i V1=4, V2=-8,


V3=5, V4=10, V5=2.

2)

Rescriei algoritmul modificnd un numr


minim de linii din algoritmul iniial astfel nct
acesta s afieze valoarea maxim din vectorul
V.

3)

Scriei n limbajul Pascal/C/C++ definiia complet a funciei max(x,y).

4)

Scriei programul Pascal/C/C++ corespunztor cu algoritmul dat.

Timp de lucru : Luni, 10 oct. 2016.