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.