Sunteți pe pagina 1din 19

Subprograme PASCAL/C++

Aplicaii de laborator

(Bac 2009, SIII, Var. 4, p4) Subprogramul cif, cu doi parametri, primete prin intermediul parametrului a un numr natural cu cel mult 8 cifre i prin intermediul parametrului b o cifr; subprogramul returneaz numrul de apariii ale cifrei b n scrierea numrului a. Exemplu: pentru a=125854 i b=5, subprogramul va returna valoarea 2. a) Scriei definiia complet a subprogramului cif. (4p.) b) Scriei declarrile de date i programul principal Pascal/C++ care citete de la tastatur un numr natural n cu exact 8 cifre, fiecare cifr fiind nenul, i care determin i afieaz pe ecran, folosind apeluri utile ale subprogramului cif, cel mai mic numr palindrom ce poate fi obinut prin rearanjarea tuturor cifrelor numrului n. Dac nu se poate obine un palindrom din toate cifrele numrului n, programul va afia pe ecran numrul 0. Un numr natural este palindrom dac este egal cu numrul obinut prin scrierea cifrelor sale n ordine invers. Exemplu: dac n=21523531 atunci se va afia pe ecran numrul 12355321, iar dac n=12272351 atunci se va afia pe ecran numrul 0. (6p.)

Problema 1

(Bac 2009, SIII, Var. 5, p4) Subprogramul f, cu un parametru: - primete prin intermediul parametrului a un numr natural cu cel mult 8 cifre (a>1) - returneaz cel mai mic divizor prim al valorii parametrului a. Exemplu: pentru valoarea 45 a parametrului a, subprogramul va returna valoarea 3 deoarece a=32*5, iar cel mai mic divizor prim al su este 3. a) Scriei definiia complet a subprogramului f. b) Scriei declarrile de date i programul principal Pascal care s citeasc de la tastatur un numr natural nenul n (n100) i apoi un ir de n numere naturale de cel mult 8 cifre fiecare, toate numerele din ir fiind strict mai mari dect 1. Folosind apeluri utile ale subprogramului f, programul va determina i va afia pe ecran toate numerele prime din irul citit. Numerele determinate se vor afia pe ecran, separate prin cte un spaiu, n ordine cresctoare a valorii lor. Dac nu exist astfel de numere se va afia pe ecran mesajul NU EXISTA. Exemplu: pentru n=7, irul: 1125, 2, 314, 101, 37, 225, 12 pe ecran se va afia: 2 37 101

Problema 2

(Bac 2009, SIII, Var. 9, p3) Scriei definiia complet a subprogramului sub cu doi parametri: n (numr natural,0<n50) i k (numr natural, 0<k20). Subprogramul determin afiarea pe o linie nou a ecranului, n ordine descresctoare, a primelor n numere naturale nenule divizibile cu k. Numerele vor fi separate prin cte spaiu. Exemplu: dac n=3 i k=5 la apelul subprogramului se va afia pe ecran: 15 10 5

Problema 3

(Bac 2009, SIII, Var. 10, p3) Scriei definiia complet a subprogramului sub cu trei parametri: n (numr natural, 5<n30000), a i b; subprogramul furnizeaz prin intermediul parametrilor a i b cele mai mari dou numere prime distincte mai mici dect n. Exemplu: dac n= 28 la apelul subprogramului se va furniza prin parametrul a valoarea 23 i prin parametrul b valoarea 19.

Problema 4

(Bac 2009, SIII, Var. 13, p4) Se consider subprogramul P care are doi parametri: n, prin intermediul cruia primete un numr natural de cel mult 9 cifre c, prin intermediul cruia primete o cifr. Subprogramul va furniza tot prin intermediul parametrului n numrul obinut din n prin eliminarea tuturor apriiilor cifrei c. Dac, dup eliminare, numrul nu mai conine nicio cifr sau conine doar cifre 0, rezultatul returnat va fi 0. a) Scriei doar antetul subprogramului P. b) Scriei un program cu definiia complet a subprogramului P.

Problema 5

(Bac 2009, SIII, Var. 16, p3) Scriei definiia complet a subprogramului multiplu care are 3 parametri: a, prin care primete un tablou unidimensional cu maximum 100 de numere naturale mai mici dect 1000, n, numrul efectiv de elemente ale tabloului i k, un numr natural (k<9). Subprogramul returneaz numrul de elemente din tablou care sunt multipli ai numrului k i au ultima cifr egal cu k. Exemplu: dac n=6, a=(9,273,63,83,93,123), iar k=3, subprogramul va returna valoarea 4.

Problema 6

(Bac 2009, SIII, Var. 17, p3) Scriei definiia complet a subprogramului interval care are 2 parametri a i n, prin care primete un tablou unidimensional cu maximum 100 de numere naturale mai mici dect 1000 i respectiv numrul efectiv de elemente din tabloul unidimensional. Subprogramul returneaz numrul de elemente din tabloul unidimensional care aparin intervalului nchis determinat de primul i respectiv ultimul element al tabloului. Exemplu: dac tabloul are 6 elemente i este de forma (12,27,6,8,9,2), subprogramul va returna valoarea 5.

Problema 7

(Bac 2009, SIII, Var. 18, p3) Scriei definiia complet a subprogramului count care are 2 parametri prin care primete un tablou unidimensional cu maximum 100 de numere reale i numrul de elemente din tablou. Subprogramul returneaz numrul de elemente din tabloul unidimensional care sunt mai mari sau cel puin egale cu media aritmetic a tuturor elementelor din tablou. Exemplu: dac tabloul are 6 elemente i este de forma (12, 7.5, 6.5, 3, 8.5, 7.5), subprogramul va returna valoarea 4. (10p.)

Problema 8

(Bac 2009, SIII, Var. 1, p4) Subprogramul sub, cu trei parametri, primete prin intermediul parametrului: v un tablou unidimensional cu cel mult 100 de componente ce memoreaz numere ntregi cu cel mult 4 cifre; n un numr natural nenul mai mic sau egal cu 100 ce reprezint numrul efectiv de componente ale tabloului primit prin intermediul parametrului v; a un numr ntreg cu cel mult 4 cifre. Subprogramul sub returneaz numrul componentelor tabloului primit prin intermediul parametrului v ale cror valori sunt strict mai mici dect valoarea parametrului a. Exemplu: pentru valorile n=5, v=(1,21,9,21,403), a=20 ale parametrilor, n urma apelului, subprogramului sub va returna valoarea 2.

Problema 9

a) Scriei definiia complet a subprogramului sub. (4p.) b) S se scrie un program C/C++ care s citeasc de la tastatur un numr natural nenul n (n100) i n numere ntregi, fiecare avnd cel mult 4 cifre, i care, folosind apeluri utile ale subprogramului sub, s afieze pe ecran mesajul DA dac oricare dou dintre cele n numere ntregi citite sunt distincte dou cte dou, sau mesajul NU n caz contrar. Exemplu: pentru n=6 i cele n numere citite de la tastatur: 47 183 69 8 134 -56 se va afia pe ecran mesajul DA (6p.)

Problema 9 (continuare)

(Bac 2009, SIII, Var. 11, p4) a) Scriei doar antetul funciei sum care primete ca parametru un numr natural x cu maximum 9 cifre i returneaz suma divizorilor numrului x. Exemplu: sum(6) are valoarea 12 (=1+2+3+6). (3p.) b) S se scrie un program C/C++ care citete de la tastatur un numr natural nenul n i apoi n numere naturale cu maximum 9 cifre fiecare. Programul calculeaz, folosind apeluri ale funciei sum, i afieaz pe ecran cte numere prime conine irul citit. Exemplu: pentru n=5 i valorile 12 3 9 7 1 se va afia pe ecran valoarea 2 (n irul dat exist dou numere prime i anume 3 i 7). (7p.)

Problema 10

(Bac 2009, SIII, Var. 19, p3) Subprogramul aranjare are 2 parametri: a prin care primete un tablou unidimensional cu maximum 100 de numere reale i n, numrul de elemente din tablou. Subprogramul rearanjeaz elementele tabloului unidimensional astfel nct toate valorile negative s se afle pe primele poziii, iar valorile pozitive n continuarea celor negative. Ordinea n cadrul secvenei de elemente pozitive, respectiv n cadrul secvenei de elemente negative, poate fi oricare. Tabloul modificat va fi furnizat tot prin intermediul parametrului a. Exemplu: dac tabloul are 6 elemente i este de forma (12, -7.5, 6.5, -3, -8, 7.5), dup apel, acesta ar putea fi: (-7.5, -3, -8, 12, 6.5, 7.5). Scriei definiia complet a subprogramului aranjare. (10p.)

Problema 11

(Bac 2009, SIII, Var. 20, p3) Subprogramul nule are 2 parametri: a, prin care primete un tablou unidimensional cu maximum 100 de numere ntregi, cu cel mult 4 cifre fiecare i n, numrul de elemente din tablou. Subprogramul rearanjeaz elementele tabloului unidimensional astfel nct toate valorile nule s se afle la sfritul tabloului. Ordinea n cadrul secvenei de elemente nenule poate fi oricare. Tabloul modificat este furnizat tot prin parametrul a. Exemplu: dac n=6, a=(12,0,0,-3,-8,0), dup apel, acesta ar putea fi: a=(12,-3,-8,0,0,0). Scriei definiia complet a subprogramului nule. (10p.)

Problema 12

(Bac 2009, SIII, Var. 21, p3) Scriei definiia complet a unui subprogram i_prim care primete prin singurul su parametru, n, un numr natural din intervalul [2,30000] i returneaz diferena minim p2-p1 n care p1 i p2 sunt numere prime i p1n p2. Exemplu: dac n=20 atunci i_prim(n)=4, valoare obinut pentru p1=19 i p2=23. (10p.)

Problema 13

(Bac 2009, SIII, Var. 25, p3) Subprogramul f primete prin intermediul parametrului n un numr natural nenul (1n9), iar prin intermediul parametrului a, un tablou unidimensional care conine n valori naturale, fiecare dintre acestea reprezentnd cte o cifr a unui numr. Astfel, a0 reprezint cifra unitilor numrului, a1 cifra zecilor etc. Subprogramul furnizeaz prin parametrul k o valoare natural egal cu numrul obinut din cifrele pare reinute n tabloul a sau valoarea -1 dac n tablou nu exist nicio cifr par. Scriei definiia complet a subprogramului f. Exemple: dac subprogramul se apeleaz pentru n=6 i pentru taboul a avnd valorile (2,3,5,6,4,1), parametrul k va furniza valoarea 462. Dac subprogramul se apeleaz pentru n=4 i pentru a reinnd valorile (0,0,1,1), k va furniza valoarea 0. Dac subprogramul se apeleaz pentru n=3 i pentru a reinnd valorile (3,7,1), k va furniza valoarea -1.

Problema 14

(Bac 2009, SIII, Var. 35, p4) a) Scriei definiia complet a unui subprogram sum care primete prin parametrul x un numr natural de cel mult 4 cifre i returneaz suma divizorilor numrului x, diferii de 1 i de el nsui. Exemplu: dac x=10 se va returna valoarea 7 (7=2+5). b) Scriei programul C/C++ care citete de la tastatur un numr natural n (0<n<100), apoi n numere naturale (cu cel mult 4 cifre fiecare). Programul determin, folosind apeluri utile ale subprogramului sum, pentru fiecare numr natural citit, suma divizorilor si proprii i afieaz pe ecran sumele determinate, n ordinea cresctoare a valorilor lor, separate prin cte un spaiu. (6p.)

Problema 15

Exemplu: dac n=5 i numerele citite sunt 10 2 33 6 11 valorile afiate pe ecran vor fi: 0 0 5 7 14 deoarece suma divizorilor lui 10 este 7, suma divizorilor lui 2 este 0, suma divizorilor lui 33 este 14, suma divizorilor lui 6 este 5, suma divizorilor lui 11 este 0.

Problema 15 (exemplu)

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