240 likes | 568 Views
Subprograme PASCAL/C++. Aplicaţii de laborator. (Bac 2009, SIII, Var. 4, p4)
E N D
SubprogramePASCAL/C++ Aplicaţii de laborator
(Bac 2009, SIII, Var. 4, p4) • Subprogramulcif, cu doiparametri, primeşteprinintermediulparametruluia un număr natural cu celmult8 cifreşiprinintermediulparametruluib o cifră; subprogramulreturneazănumărul de apariţii ale cifreib înscriereanumăruluia. • Exemplu: pentrua=125854 şib=5, subprogramulvareturnavaloarea2. • a) Scrieţidefiniţiacompletă a subprogramuluicif. (4p.) • b) Scrieţideclarările de date şiprogramul principal Pascal/C++ care citeşte de la tastatură un număr natural n cu exact 8 cifre, fiecarecifrăfiindnenulă, şi care determinăşiafişeazăpeecran, folosindapeluri utile ale subprogramuluicif, celmaimicnumărpalindromcepoate fi obţinutprinrearanjareatuturorcifrelornumăruluin. Dacă nu se poateobţine un palindrom din toatecifrelenumăruluin, programulvaafişapeecrannumărul0. Un număr natural estepalindromdacăesteegal cu numărulobţinutprinscriereacifrelor sale înordineinversă. • Exemplu: dacăn=21523531 atunci se vaafişapeecrannumărul12355321, iardacăn=12272351 atunci se vaafişapeecrannumărul0. (6p.) Problema 1
(Bac 2009, SIII, Var. 5, p4) • Subprogramulf, cu un parametru: • - primeşteprinintermediulparametruluia un număr natural cu celmult8 cifre (a>1) • - returneazăcelmaimicdivizor prim al valoriiparametruluia. • Exemplu: pentruvaloarea45 a parametruluia, subprogramulvareturnavaloarea3 • deoarecea=32*5, iarcelmaimicdivizor prim al săueste3. • a) Scrieţidefiniţiacompletă a subprogramuluif. • b) Scrieţideclarările de date şiprogramul principal Pascal care săcitească de la tastatură un număr natural nenuln (n≤100) şiapoi un şir de n numerenaturale de celmult8 cifrefiecare, toatenumerele din şirfiind strict maimaridecât1. Folosindapeluri utile ale subprogramuluif, programulvadeterminaşivaafişapeecrantoatenumerele prime din şirulcitit. Numerele determinate se vorafişapeecran, separate princâte un spaţiu, înordinecrescătoare a valoriilor. Dacă nu existăastfel de numere se vaafişapeecranmesajulNU EXISTA. • Exemplu: pentrun=7, şirul: 1125, 2, 314, 101, 37, 225, 12 peecran se vaafişa: • 2 37 101 Problema 2
(Bac 2009, SIII, Var. 9, p3) • Scrieţidefiniţiacompletă a subprogramuluisub cu doiparametri: n (număr natural,0<n≤50) şik (număr natural, 0<k≤20). Subprogramuldeterminăafişareape o linienouă a ecranului, înordinedescrescătoare, a primelorn numerenaturalenenuledivizibile cu k. Numerelevor fi separate princâtespaţiu. • Exemplu: dacăn=3 şik=5 la apelulsubprogramuluise vaafişapeecran: • 15 10 5 Problema 3
(Bac 2009, SIII, Var. 10, p3) • Scrieţidefiniţiacompletă a subprogramuluisub cu treiparametri: n (număr natural,5<n≤30000), a şib; subprogramulfurnizeazăprinintermediulparametrilora şib celemaimaridouănumereprime distinctemaimicidecâtn. • Exemplu: dacăn= 28 la apelulsubprogramuluise vafurnizaprinparametrula valoarea23 şiprinparametrulb valoarea19. Problema 4
(Bac 2009, SIII, Var. 13, p4) • Se consideră subprogramul P care are doi parametri: • – n, prin intermediul căruia primeşte un număr natural de cel mult 9 cifre • – c, prin intermediul căruia primeşte o cifră. • Subprogramul va furniza tot prin intermediul parametrului n numărul obţinut din n prin eliminarea tuturor apriţiilor cifrei c. Dacă, după eliminare, numărul nu mai conţine nicio cifră sau conţine doar cifre 0, rezultatul returnat va fi 0. • a) Scrieţi doar antetul subprogramului P. • b) Scrieţi un program cu definiţia completă a subprogramului P. Problema 5
(Bac 2009, SIII, Var. 16, p3) • Scrieţidefiniţiacompletă a subprogramuluimultiplucare are 3 parametri: a, prin care primeşte un tablouunidimensional cu maximum 100 de numerenaturalemaimicidecât1000, n, numărulefectiv de elemente ale tablouluişik, un număr natural (k<9). Subprogramulreturneazănumărul de elemente din tablou care suntmultipliainumăruluik şi au ultimacifrăegală cu k. • Exemplu: dacăn=6, a=(9,273,63,83,93,123), iark=3, subprogramulvareturnavaloarea4. Problema 6
(Bac 2009, SIII, Var. 17, p3) • Scrieţidefiniţiacompletă a subprogramuluiinterval care are 2 parametria şin, prin care primeşte un tablouunidimensional cu maximum 100 de numerenaturalemaimicidecât1000 şirespectivnumărulefectiv de elemente din tabloulunidimensional. Subprogramulreturneazănumărul de elemente din tabloulunidimensional care aparţinintervaluluiînchisdeterminat de primulşirespectivultimul element al tabloului. • Exemplu: dacătabloul are 6 elementeşieste de forma (12,27,6,8,9,2), subprogramulvareturnavaloarea5. Problema 7
(Bac 2009, SIII, Var. 18, p3) • Scrieţidefiniţiacompletă a subprogramuluicount care are 2 parametriprin care primeşte un tablouunidimensional cu maximum 100 de numererealeşinumărul de elemente din tablou. Subprogramulreturneazănumărul de elemente din tabloulunidimensional care suntmaimarisaucelpuţinegale cu media aritmetică a tuturorelementelor din tablou. • Exemplu: dacătabloul are 6 elementeşieste de forma (12, 7.5, 6.5, 3, 8.5, 7.5), subprogramulvareturnavaloarea4. (10p.) Problema 8
(Bac 2009, SIII, Var. 1, p4) • Subprogramulsub, cu treiparametri, primeşteprinintermediulparametrului: • – v un tablouunidimensional cu celmult100 de componentecememoreazănumereîntregi cu celmult4 cifre; • – n un număr natural nenulmaimicsauegal cu 100 cereprezintănumărulefectivde componenteale tablouluiprimitprinintermediulparametruluiv; • – a un numărîntreg cu celmult4 cifre. • Subprogramulsub returneazănumărulcomponentelortablouluiprimitprinintermediulparametruluiv ale cărorvalorisunt strict maimicidecâtvaloareaparametruluia. • Exemplu: pentruvalorilen=5, v=(1,21,9,21,403), a=20 ale parametrilor, înurmaapelului, subprogramuluisub vareturnavaloarea2. Problema 9
a) Scrieţidefiniţiacompletă a subprogramuluisub. (4p.) • b) Să se scrie un program C/C++ care săcitească de la tastatură un număr natural nenuln (n≤100) şin numereîntregi, fiecareavândcelmult4 cifre, şi care, folosindapeluri utile ale subprogramuluisub, săafişezepeecranmesajulDA dacăoricaredouădintrecelen numereîntregicititesuntdistinctedouăcâtedouă, saumesajulNU încazcontrar. Exemplu: pentrun=6 şicelen numerecitite de la tastatură: 47 183 69 8 134 -56 se vaafişapeecranmesajulDA (6p.) Problema 9 (continuare)
(Bac 2009, SIII, Var. 11, p4) • a) Scrieţidoarantetulfuncţieisum care primeştecaparametru un număr natural x cu maximum 9 cifreşireturneazăsumadivizorilornumăruluix. • Exemplu: sum(6) are valoarea12 (=1+2+3+6). (3p.) • b) Să se scrie un program C/C++ care citeşte de la tastatură un număr natural nenuln şiapoin numerenaturale cu maximum 9 cifrefiecare. Programulcalculează, folosindapeluri ale funcţieisum, şiafişeazăpeecrancâtenumere prime conţineşirulcitit. • Exemplu: pentrun=5 şivalorile12 3 9 7 1 se vaafişapeecranvaloarea2 (înşiruldatexistădouănumere prime şianume3 şi7). (7p.) Problema 10
(Bac 2009, SIII, Var. 19, p3) • Subprogramularanjareare 2 parametri: a prin care primeşte un tablouunidimensional cu maximum 100 de numererealeşin, numărul de elemente din tablou. Subprogramulrearanjeazăelementeletablouluiunidimensionalastfelîncâttoatevalorile negative să se aflepeprimelepoziţii, iarvalorilepozitiveîncontinuareacelor negative. Ordineaîncadrulsecvenţei de elementepozitive, respectivîncadrulsecvenţei de elemente negative, poate fi oricare. Tabloulmodificatva fi furnizat tot prinintermediulparametruluia. • Exemplu: dacătabloul are 6 elementeşieste de forma (12, -7.5, 6.5, -3, -8, 7.5), dupăapel, acestaarputea fi: (-7.5, -3, -8, 12, 6.5, 7.5). • Scrieţidefiniţiacompletă a subprogramuluiaranjare. (10p.) Problema 11
(Bac 2009, SIII, Var. 20, p3) • Subprogramulnuleare 2 parametri: a, prin care primeşte un tablouunidimensional cu maximum 100 de numereîntregi, cu celmult4 cifrefiecareşin, numărul de elemente din tablou. Subprogramulrearanjeazăelementeletablouluiunidimensionalastfelîncâttoatevalorilenulesă se afle la sfârşitultabloului. Ordineaîncadrulsecvenţei de elementenenulepoate fi oricare. Tabloulmodificatestefurnizat tot prinparametrula. • Exemplu: dacăn=6, a=(12,0,0,-3,-8,0), dupăapel, acestaarputea fi: a=(12,-3,-8,0,0,0). • Scrieţidefiniţiacompletă a subprogramuluinule. (10p.) Problema 12
(Bac 2009, SIII, Var. 21, p3) • Scrieţidefiniţiacompletă a unui subprogram i_primcare primeşteprinsingurulsăuparametru, n, un număr natural din intervalul[2,30000] şireturneazădiferenţaminimăp2-p1 în care p1 şip2 suntnumere prime şip1n p2. • Exemplu: dacăn=20 atuncii_prim(n)=4, valoareobţinutăpentrup1=19 şip2=23. (10p.) Problema 13
(Bac 2009, SIII, Var. 25, p3) • Subprogramulf primeşteprinintermediulparametruluin un număr natural nenul (1≤n≤9), iarprinintermediulparametruluia, un tablouunidimensional care conţinen valorinaturale, fiecaredintreacesteareprezentândcâte o cifră a unuinumăr. Astfel, a0 reprezintăcifraunităţilornumărului, a1 cifrazecilor etc. • Subprogramulfurnizeazăprinparametrulk o valoarenaturalăegală cu numărulobţinutdin cifrelepare reţinuteîntabloula sauvaloarea-1 dacăîntablou nu existăniciocifrăpară. Scrieţidefiniţiacompletă a subprogramuluif. • Exemple: dacăsubprogramul se apeleazăpentrun=6 şipentrutaboula avândvalorile(2,3,5,6,4,1), parametrulk vafurnizavaloarea462. Dacăsubprogramul se apeleazăpentrun=4 şipentrua reţinândvalorile(0,0,1,1), k vafurnizavaloarea0. Dacăsubprogramul se apeleazăpentrun=3 şipentrua reţinândvalorile(3,7,1), k vafurnizavaloarea-1. Problema 14
(Bac 2009, SIII, Var. 35, p4) • a) Scrieţidefiniţiacompletă a unui subprogram sum care primeşteprinparametrulx un număr natural de celmult4 cifreşireturneazăsumadivizorilornumăruluix, diferiţi de 1 şi de el însuşi. • Exemplu: dacăx=10 se vareturnavaloarea7 (7=2+5). • b) ScrieţiprogramulC/C++ care citeşte de la tastatură un număr natural n (0<n<100), apoin numerenaturale (cu celmult4 cifrefiecare). Programuldetermină, folosindapeluri utile ale subprogramuluisum, pentrufiecarenumăr natural citit, sumadivizorilorsăipropriişiafişeazăpeecransumele determinate, înordineacrescătoare a valorilorlor, separate princâte un spaţiu. (6p.) Problema 15
Exemplu: dacăn=5 şinumerelecititesunt10 2 33 6 11 • valorileafişatepeecranvor fi: 0 0 5 7 14 • deoarecesumadivizorilorlui10 este7, sumadivizorilorlui2 este0, sumadivizorilorlui33 este14, sumadivizorilorlui6 este5, sumadivizorilorlui11 este0. Problema 15 (exemplu)