This shows you the differences between two versions of the page.
programare:laboratoare:lab04 [2021/10/20 20:47] andrei.traistaru99 [Exerciţii de Laborator] |
programare:laboratoare:lab04 [2021/10/24 14:12] (current) andrei.traistaru99 [Referinţe] |
||
---|---|---|---|
Line 284: | Line 284: | ||
===== Exerciţii de Laborator ===== | ===== Exerciţii de Laborator ===== | ||
- | - [2 pct]: Implementați o funcție int factorial_iterativ(int n) care returnează n! = 1 * 2 * 3 * … * (n – 1) * n calculat iterativ. Implementați funcția int factorial_recursiv(int n) care are același scop, dar implementarea este recursivă. | + | - [2 pct]: Implementați o funcție **int factorial_iterativ(int n)** care returnează n! = 1 * 2 * 3 * … * (n – 1) * n calculat iterativ. Implementați funcția **int factorial_recursiv(int n)** care are același scop, dar implementarea este recursivă. |
- | - [2 pct]: Scrieți o funcție recursivă și una iterativă care returnează suma cifrelor unui număr natural int suma_cifre_recursiv(int n); respectiv int suma_cifre_iterativ(int n);. | + | - [2 pct]: Scrieți o funcție recursivă și una iterativă care returnează suma cifrelor unui număr natural **int suma_cifre_recursiv(int n);** respectiv **int suma_cifre_iterativ(int n);**. |
- | - [1 pct]: Scrieți o funcție care determină dacă un număr este prim sau nu (întoarce 1 dacă numărul este prim sau 0 în caz contrar): int este_prim(int n); | + | - [1 pct]: Scrieți o funcție care determină dacă un număr este prim sau nu (întoarce 1 dacă numărul este prim sau 0 în caz contrar): **int este_prim(int n);**. |
- | - [1.5 pct]: Scrieți o funcție care determină dacă un număr natural este palindrom sau nu (returnează 1 în cazul în care este palindrom sau 0 în caz contrar): int este_palindrom(int n); | + | - [1.5 pct]: Scrieți o funcție care determină dacă un număr natural este palindrom sau nu (returnează 1 în cazul în care este palindrom sau 0 în caz contrar): **int este_palindrom(int n);** |
- [1.5 pct]: Scrieți o funcție care citește de la tastatură un număr natural și calculează câți divizori sunt numere palindrom. Se va afișa la consolă divizorii care sunt palindrom, precum și numărul acestora. Alegeți un nume funcției implementate și apelați această funcție din main pentru a o testa. | - [1.5 pct]: Scrieți o funcție care citește de la tastatură un număr natural și calculează câți divizori sunt numere palindrom. Se va afișa la consolă divizorii care sunt palindrom, precum și numărul acestora. Alegeți un nume funcției implementate și apelați această funcție din main pentru a o testa. | ||
- [2 pct]: Scrieți o funcție recursivă care citește de la tastatură câte un număr natural (citirea unui număr negativ duce la ignorarea sa) și incrementează un contor de fiecare data când este tastat un număr prim. Citirea se încheie când se întâlnește numărul 0. Afișați contorul după finalizarea citirii de numere de la tastatură. | - [2 pct]: Scrieți o funcție recursivă care citește de la tastatură câte un număr natural (citirea unui număr negativ duce la ignorarea sa) și incrementează un contor de fiecare data când este tastat un număr prim. Citirea se încheie când se întâlnește numărul 0. Afișați contorul după finalizarea citirii de numere de la tastatură. | ||
===Bonus=== | ===Bonus=== | ||
- | - Bonus [2 pct]: | + | - [2 pct]: Folosind declarații si definiri de variabile și funcții, creați două fișiere main.c și autentificare.c, și apleați din funcția main din fișierul main.c o funcție void login(int username, int password) definită în autentificare.c. Funcția login va afișa mesajul “Autentificare cu success!”, respectiv “Autentificare esuata!” în urma verificării celor două argumente primite care trebuie să fie numere prime între ele, pentru ca autentificarea să aibă loc cu succes. De asemenea, sursa autentificare.c va cuprinde o variabilă numită status care va fi setată de funcția login cu 1 în cazul autentificării cu success, respective 0 în caz contrar. Afișați în main, valoarea acestei variabile. Compilați fișierele împreună și executați programul rezultat. Scriți fișierul autentificare.h cu antetul funcției implementată în autentificare.c și NU uitați să îl includeți în main.c. |
- | + | ||
- | Folosind declarații si definiri de variabile și funcții, creați două fișiere main.c și autentificare.c, și apleați din funcția main din fișierul main.c o funcție void login(int username, int password) definită în autentificare.c. Funcția login va afișa mesajul “Autentificare cu success!”, respectiv “Autentificare esuata!” în urma verificării celor două argumente primite care trebuie să fie numere prime între ele, pentru ca autentificarea să aibă loc cu succes. De asemenea, sursa autentificare.c va cuprinde o variabilă numită status care va fi setată de funcția login cu 1 în cazul autentificării cu success, respective 0 în caz contrar. Afișați în main, valoarea acestei variabile. Compilați fișierele împreună și executați programul rezultat. Scriți fișierul autentificare.h cu antetul funcției implementată în autentificare.c și NU uitați să îl includeți în main.c. | + | |
<code bash> | <code bash> | ||
gcc main.c autentificare.c; ./a.out | gcc main.c autentificare.c; ./a.out | ||
</code> | </code> | ||
- | |||
- | [[https://drive.google.com/file/d/10O8he377znoQlojR2p6UWKQCIIHv8FSz/view?usp=sharing|Probleme laborator cu checker]] | ||
===== Referinţe ===== | ===== Referinţe ===== | ||