SETUL 1 de probleme 1. Scriei o funcie care s calculeze suma cifrelor unui numr natural. 2. Scriei o funcie care verific dac un an este bisect. 3. Scriei o funcie care s testeze dac un numr este palindrom. Un numr este palindrom dac citit de la dreapta la stnga este egal cu numrul citit de la stnga la dreapta. Exemple: 36463 este palindrom, dar 2646 nu este palindrom. 4. Scriei un program, care, pentru o lun i un an date, calculeaz numrul de zile din luna respectiv (folosii o funcie separat care verific dac un an este bisect). Exemplu: pentru luna februarie din anul 2004, numrul de zile este 29. 5. Scriei o funcie care calculeaz cifra de control a unui numr natural. Cifra de control se obine calculnd suma cifrelor numrului, apoi suma cifrelor numrului obinut etc., pn se ajunge la o singur cifr. Exemplu: 4879 28 10 1. 6. Spunem c un numr natural este perfect dac este egal cu suma divizorilor si strict mai mici dect el. Scriei o funcie care verific dac un numr este perfect. S se determine toate numerele perfecte mai mici ca un numr natural n dat. Exemplu: 28 este un numr perfec deoarece 28 = 1 + 2 + 4 + 7 + 14. Pentru n = 1000, se vor determina numerele 6, 28, 496. 7. S se testeze dac un numr este prim. Exemple: 1000003 este prim, dar 1000002 este compus, deoarece este divizibil i prin 3. 8. Dou numere naturale impare consecutive i prime se numesc numere prime gemene. Folosind testul de primalitate implementat anterior, determinai primele n perechi de numere prime gemene. Exemplu: Primele n = 3 perechi de numere prime gemene sunt (3, 5), (5, 7) i (11, 13). 9. Se citete un tablou de numere ntregi. Scriei o funcie care determin diferena maxim (n modul) dintre oricare dou elemente ale vectorului. Exemplu: pentru tabloul (1, 3, 2, 7, 11, 3, 2), diferena maxim (n modul) este 12. 10. Se citete un tablou de numere ntregi. S se determine, printr-o singur parcurgere a sa, poziia de nceput i lungimea celei mai lungi secvene de elemente egale. Dac exist mai multe secvene de lungimi egale, se va determina secvena cu poziia de nceput minim. Exemplu: pentru tabloul (1, 2, 3, 3, 3, 2, 1, 5, 5, 5), se vor determina poziia 2 i lungimea 3. 11. Se d un vector de numere ntregi. S se determine subsecvena pentru care suma elementelor componente este maxim. Dac exist mai multe subsecvene cu aceast proprietate, se va determina ultima subsecvent gsit. Exemplu: pentru tabloul (2, 3, 4, 2, 9, 2, 1, 7, 3), subsecvena este (9, 2, 1, 7). 12. Se citete un tablou de numere ntregi. S se rearanjeze elementele astfel nct cele pare sa apar naintea celor impare, n cadrul subsecvenei de numere pare, respectiv impare, elementele trebuie sa apar n ordinea n care erau n tabloul iniial. Exemplu: tabloul (2, 3, 4, 2, 9, 2, 1, 7, 3) va fi rearanjat n (2, 4, 2, 2, 3, 9, 1, 7, 3). 13. Se consider un tablou cu n elemente. S se decid dac exist un element majoritar (cu numrul de apariii mai mare dect n/2). 14. Scriei un program care citete elementele unei matrici ptratice i interschimb liniile i coloanele acesteia astfel nc n matricea final, elementele de pe diagonala principal s fie n ordine descresctoare. S se afieze matricea iniial i matricea dup fiecare operaie. Exemplu: pentru matricea ( 1 4 3 2 ) se vor afia, pe rnd, matricile ( 1 4 3 2 ), ( 1 1 2 3 ), ( 2 3 4 1 ). 2
15. Scriei un program care citete elementele unei matrici ptratice de dimensiune n i afieaz irul format prin parcurgerea acesteia n spiral, pornind din colul stnga sus ctre dreapta pn n centrul matricei. Exemplu: pentru matricea ( 1 2 3 4 5 6 7 8 9 ) se va afia irul 1 2 3 6 9 8 7 4 5. 16. S se defineasc un tip pentru reprezentarea datelor calendaristice. S se scrie o funcie care primete la intrare o dat calendaristic i returneaz succesorul acesteia. Exemplu: succesorul datei 31.10.2014 este 1.11.2014. 17. S se determine ecuaia unei drepte care trece prin dou puncte n plan. Exemplu: pentru punctele (2, 1) i (5, 7), ecuaia dreptei este 2x y 3 = 0.