Sunteți pe pagina 1din 1

Setul 5 Funcii definite de ctre utilizator. Parametri transmii prin valoare / prin referin.

n rezolvri NU se va folosi tipul tablou pentru parametrii funciei (in rest, se poate utiliza). Relaia PointeriFuncii-Tablouri face obiectul Setului 6 de probleme.
Problemele 1-3 pot fi rezolvate folosind parametri transmii prin valoare.
Problemele 4-6 necesit i folosirea unor parametri transmii prin referin. Un exemplu similar a fost
prezentat la curs slide Cap6_3_C_15_4.png

1. Citii de la tastatur un numr natural n. Scriei o funcie care verific dac numrul este palindrom.
Funcia va returna valoarea 1 dac numrul este palindrom, respectiv 0 n caz contrar. Un numr natural
este palindrom dac este egal cu numrul obinut prin scrierea cifrelor sale n ordine invers. De
exemplu, 15651 i 23532 sunt numere palindrom, n timp ce 15652 i 23534 nu sunt numere palindrom.
2. Scriei o funcie care determin dac un numr este perfect. Numrul perfect este un numr ntreg egal
cu suma divizorilor si, din care se exclude numrul nsui. Ex. 6=1+2+3; 28=1+2+4+7+14
3. Sa se scrie i s se testeze o funcie C care, analiznd 3 valori numerice ntregi, s verifice dac
acestea sunt ordonate cresctor, descresctor, sunt identice sau sunt neordonate (innd cont de
ordinea n care au fost precizate). Rezultatul va fi furnizat ca valoare de tip caracter: C, D, I sau N.
Se recomand testarea funciei n cadrul unui program C care s permit execuia n bucl, pentru mai
multe seturi de cte 3 valori introduse de la tastatur (a se consula exemplul de la curs slide
Cap6_3_C_15_2.png). Alt variant de enun: rezultatul va fi furnizat ca valoare de tip ntreg, cu
semnificaie prestabilit.
4. Scriei i testai o funcie C care s transforme 3 caractere (precizate ca parametri) n literele mari
corespunztoare, dac acest lucru este posibil. Funcia va transmite programului apelant i informaia c
s-a putut sau nu realiza conversia. n caz de succes, programul apelant va afia apoi pe ecran literele
mari obinute de la funcie. n caz de eec, va afia un mesaj lmuritor. Sugestie de rezolvare: putei
consulta exemplul prezentat la curs pt. operaii de mascare cu operatori la nivel de bit slide
Cap4_2_C_14_15.png; putei elabora i alt rezolvare, bazat pe observaii legate de ordinea
caracterelor liter n setul ASCII. Variant de enun: transformare n literele mici corespunztoare.
5. S se scrie o funcie C care s primeasc drept informaie de prelucrat un numr ntreg format din cel
mult 3 cifre (respectarea condiiei se verific n main(), la introducerea valorii ce va fi folosit de ctre
funcie). Se cere s se determine i s se transmit ca rezultate ce pot fi folosite dup ncheierea
execuiei funciei:
- numrul de cifre din care este format numrul;
- cifrele propriu-zise (evident, cel mult 3);
S se utilizeze funcia ntr-un program C n care, dup ncheierea execuiei funciei, s fie afiate din
main() rezultatele furnizate de ctre aceasta.
6. S se scrie o funcie C care s analizeze un numr ntreg strict pozitiv i, dac este posibil, s
construiasc un alt numr, format doar din cifrele pare ale celui iniial. Funcia va avea 2 parametri, care
s reprezinte cele 2 numere, i va returna ca rezultat o valoare care s arate c noul numr a putut sau
nu s fie construit. S se testeze funcia ntr-un program C n care:
- s se citeasc de la tastatur numrul ce trebuie analizat de ctre funcie;
- s se apeleze funcia;
- s se testeze rezultatul returnat de ctre funcie (noul numr a putut sau nu s fie construit) i, n
caz de succes, s se afieze o informaie de forma (de exemplu): numrul obinut din 2567 este
26
Laborator - Programarea calculatoarelor I AA, I AB, I AC
Daniela Saru, tefan Mocanu, Iulia Iacob

Facultatea Automatic i calculatoare UPB

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