Sunteți pe pagina 1din 36

Culegere de probleme de informatic

I.

Instruciuni de introducere, afiare i calcul

1) S se afieze triunghiul * ** *** S se introduc un caracter de la tastatur i s se afieze un triunghi asemntor folosind caracterul introdus. 2) Se d un numr natural n. Afiai un triunghi de forma n n+2 n+2 n+4 n+4 n+4 n+6 n+6 n+6 n+6 (CNI-etapa judeean, Petroani, 2005) 3) ntr-o tabr numrul de biei este cu 10 mai mare dect cel al fetelor. Dac se citete de la tastatur numrul de fete, s se spun ci elevi sunt n tabr. Exemplu: date de intrare: 50 date de ieire: 110. 4) ntr-un autobuz care pleac n excursie sunt 7 copii. De la nc dou coli urc ali copii, numrul acestora citindu-se de la tastatura. Ci copii au plecat n excursie? Exemplu: Date de intrare: 15 20 Date de ieire: 42 copii. 5) Un brdu este mpodobit cu globulee albe, roii i albastre. Numrul globuleelor albe se citete de la tastatur. Cte globulee are brduul, tiind c numrul de globulee roii este cu 3 mai mare dect numrul de globulee albe, iar globuleele albastre sunt cu 2 mai puine dect totalul celor albe i roii. Exemplu: Date de intrare: 12 Date de ieire: 52. 6) Ion i Vasile joac urmtorul joc: Ion spune un numr iar Vasile trebuie s gseasc cinci numere consecutive, cresctoare, numrul din mijloc fiind cel ales de Ion. Exemplu : Ion spune 10, Vasile spune 8 9 10 11 12. Ajutai-l pe Vasile s gseasc rspunsul mai repede. 7) Doi copii au primit acelai numr de mere Introducnd de la tastatur numrul de mere primte, afiai cte mere are fiecare copil dup ce primul copil mnnc un mr i d unul celuilalt copil. Exemplu : Date de intrare : 10 Date de ieire : primul copil 8 mere al doilea copil 11 mere. 8) Maria vrea s verifice dac greutatea i nlimea ei corespund vrstei pe care o are. Ea a gsit ntr-o carte urmtoarele formule de calcul ale greutii i nlimii unui copil, v fiind vrsta : greutate=2*v+8 (n kg), nlime=5*v+80 (n cm). Realizai un program care s citeasc vrsta unui copil i s afieze greutatea i nlimea ideal, folosind aceste formule. 9) Se introduc de la tastatur trei cifre. Afiai pe aceeai linie 5 numere formate cu aceste cifre luate o singur dat. Exemplu : date de intrare : 3 4 2 Date de ieire : 324 342 243 234 432. 10)Date trei numere, s se calculeze toate sumele posibile de cte dou numere. Afiarea s cuprind i termenii sumei, nu numai valoarea ei. Exemplu: Date de intrare : 2 13 4 Date de ieire: 2+13 =15 2+4=6 13+4=17. 11)Afiai tabla nmulirii cu numrul n. Exemplu: pentru n=5, se va afia pe vertical 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 6x5=30 7x5=35 8x5=40 9x5=45 10x5=50. 12)Se introduc lungimea i limea unui dreptunghi. S se afieze cuvntul PERIMETRU urmat de valoarea perimetrului acelui dreptunghi. 13)Dan are de fcut mai multe exerciii de transformare n centimetri a unei mrimi date n metri. Realizai un program care s citesc valoarea n metri i s o afieze n centimetri. Exemplu: date de intrare: 72 date de ieire: 7200 cm. 14)S se scrie un program care citete un numr de ani i calculeaz numrul de luni, zile i ore corespunztoare. Se consider c un an are 365 zile. Exemplu: date de intrare: 2 date de ieire: 24 luni 730 zile 17520 ore. 15)Mriuca ine evidena iepurilor din cresctorie. Ea i noteaz ci iepuri sunt la nceputul fiecrei luni, ci au murit i ci s-au nscut n cursul fiecei luni. Putei s realizai un program care, primind aceste date, s afieze la sfritul fiecrei luni ci iepuri sunt n cresctorie? Exemplu : Date de intrare : nr. Iepuri la nceput de luna 10 nr. iepuri morti 2 nr. iepuri nascuti 6 Date de ieire : 14 iepuri. 16)ntr-o gospodrie sunt 4 gini. Introducei n calculator prin variabilele a, b, c, d numrul de ou pe care-l d fiecare gin ntr-o zi. Afiai cte ou se obin ntr-o sptmn.

17)Se introduc n calculator dou date n variabilele a i b. S se fac un program care s schimbe ntre ele valorile acestor variabile i s afieze noile valori ale lui a i b. 18)O nav parcurge distana d ( n km ) dintre dou staii orbitale n a sptmni i b zile. S se determine viteza navei exprimat n km/or.

II.

Instruciunea de decizie ; algoritmi cu ramificaii


Comparri ntre valorile a dou variabile

1) Date dou numere, afiai-l pe cel mai mic. Exemplu : Date de intrare : 44 32 Date de ieire : 32. 2) Se introduc vrstele a doi copii. Afiai care copil este mai mare i diferena de vrst dintre cei doi. Exemplu :
Date de intrare : 6 13 date de ieire : al doilea copil este mai mare cu 7 ani.

3) Se introduc punctajele a doi sportivi. Afiai-le n ordine descresctoare. Exemplu: Date de intrare 100 4) 5) 6)

134 Date de ieire: 134 puncte 100 puncte Dintr-o cutie cu trei numere se extrag dou numere. Cunoscnd suma celor dou numere extrase, s se afieze numrul rmas n cutie. Exemplu : date de intrare : numere existente in cutie 5 12 8 suma numerelor extrase 13 date de ieire : 12. Se dau dou numere. S se nmuleasc cel mai mare cu doi i cel mai mic cu trei i s se afieze rezultatele. Exemplu : date de intrare : 3 7 date de ieire : 9 14 Se introduc dou numere ntregi. S se testeze dac primul numr este predecesorul (succesorul) celui de-al doilea i s se afieze un mesaj corespunztor. Exemple : date de intrare : 2 4 date de ieire : Nu ; date de intrare : 5 6 date de ieire : Da. Compararea valorii unei variabile cu o constant

1) Se introduc dou numere nenule i un semn de operaie (+,-,*,/). S se efectueze cu cele dou numere 2) 3) 4) 5)
operaia introdus i s se afieze expresia care s-a calculat urmat de semnul = i de valoarea ei. Exemplu : Date de intrare 10 6 * Date de ieire 10*6=60. Se introduc trei date de forma numr ordine pacient, valoare glicemie. Afiai numrul de ordine al pacienilor cu glicemia mai mare dect 100. Exemplu : Date de intrare nr 6 glicemie 90 nr 10 glicemie 107 nr 21 glicemie 110 Date de ieire 10 21 Ionel spune prinilor doar notele mai mari sau egale cu 7. ntr-o zi el a luat trei note. Introducei-le n calculator i afiai acele note pe care le va comunica i prinilor. Exemplu : Date de intrare 8 7 5 Date de ieire 8 7. Se introduc dou numere. Dac al doilea numr este diferit de 0, s se afieze ctul dintre primul i al doilea, iar dac este nul, s se afieze mesajul mprire imposibil. Exemple : Date de intrare 10 3 Date de ieire 3.33 Date de intrare 45 0 date de ieire Impartire imposibila. Un lift pentru copii accept o greutate de maxim 100 kg. Introducnd n calculator greutile a doi copii, specificai prin afiarea unui mesaj corespunztor, dac POT INTRA AMBII COPII sau INTRA PE RAND. Exemple : Date de intrare : greutati copii 87 50 Date de ieire : Intra pe rand Date de intrare 45 52 Date de ieire Pot intra ambii copii. Ionel are voie s se uite la TV 20 de ore pe sptmn. Se introduc numrul de ore ct se uit la TV n fiecare zi din sptmn. S se verifice dac va fi pedepsit sau nu. Exemplu: Date de intrare: 3 4 2 2 5 6 1 Date de ieire: Va fi pedepsit. S se scrie un program care determin greutatea ideal a unei persoane cunoscnd nlimea, vrsta i sexul persoanei. Formulele de calcul sunt: Gmasculin = 50 + 0.75 * (inaltime - 150) + (varsta - 20) / 4, Gfeminin = Gmasculin - 10, unde nlimea este exprimat n cm i vrsta n ani. Sexul se citete sub forma unui caracter, f sau m. Exemplu: Date de intrare: inaltime= 160 varsta=21 sex=f Date de ieire: greutate= 47.75 kg. Scriei un program care s permit alegerea unei opiuni dintr-un anumit meniu afiat pe ecran: se afieaz meniul 1. suma 2. produs

6) 7)

8)

se introduc dou numere i se alege o operaie din meniu prin introducerea numrului de ordine. Pe ecran s apar expresia i valoarea calculat. Testarea ctului sau a restului mpririi ntregi

1) Se dau trei numere. S se afieze aceste numere unul sub altul, afind n dreptul fiecruia unul dintre
cuvintele PAR sau IMPAR. Exemplu : Date de intrare : 45 intrare : 45 7 Date de ieire : Nu. 3 24 Date de ieire : 45 impar 3 impar 24 par.

2) Se dau dou numere nenule. S se verifice dac primul se mparte exact la al doilea. Exemplu : Date de 3) Se dau dou numere. S se afieze acele numere care se mpart exact la 7. Exemplu : Date de intrare : 34 4) M iubete un pic, mult, cu pasiune, la nebunie, de loc, un pic,. Rupnd petalele unei margarete cu x 5) 6) 7) 8)
petale, el (ea) m iubete . Exemplu: Date de intrare: x=10 Date de ieire: de loc. La un concurs se dau ca premii primilor 100 de concureni, tricouri de culoare alb, roie, albastr i neagr, n aceast secven. Ionel este pe locul x. Ce culoare va avea tricoul pe care-l va primi? Exemplu : date de intrare : x=38 date de ieire : rosie. ntr-o tabr, bieii sunt cazai cte 4 ntr-o csu, n ordinea sosirii. Ionel a sosit al n-lea. n a cta csu se va afla? Exemplu : date de intrare : n=69 date de ieire : casuta 17. Elevii clasei a V-a se repartizeaz n clase cte 25 n ordinea mediilor clasei a IV-a. Radu este pe locul x n ordinea mediilor. n ce clasa va fi repartizat (A, B, C, D sau E)?. Exemplu : date de intrare : x=73 date de ieire : C. n Galaxia Reckya toate ceasurile au doar 4 ore. tiind c Gygely s-a nscut la ora 1 i c va tri m ore, s se spun la ce or va muri Gygely. (m<=50). Se d numrul m. Se cere ora la care va muri Gygely. Ceasul arat astfel 1 4 2 3 Exemplu: Date de intrare: m=10 Date de ieire: 3. (www.contaminare.ro) Operatori logici 28 Date de ieire : 28.

1) Se dau trei numere diferite. S se afieze cel mai mare i cel mai mic. Exemplu : Date de intrare 45 34 78
Date de ieire max=78 min=34.

2) Se dau trei numere diferite. Afisai-le n ordine cresctoare. Exemplu : Date de intrare

4 2 6 Date de ieire 2 4 6. 3) Se dau trei numere diferite. Afiai numrul a crei valoare este cuprins ntre valorile celorlalte dou. Exemplu : Date de intrare 12 14 10 Date de ieire 12. 4) Se introduc trei date de forma numr curent elev, punctaj. Afiai numrul elevului cu cel mai mare punctaj. Exemplu : Date de intrare nr crt 7 punctaj 120 nr crt 3 punctaj 100 nr crt 4 punctaj 119 Date de ieire punctaj maxim are elevul cu nr crt 7. 5) Se introduc trei numere. S se verifice dac formeaz o secven de numere consecutive. Exemple: Date de intrare 3 4 5 Date de ieire Da Date de intrare 4 5 7 Date de ieire Nu. 6) La ora de matematic Gigel este scos la tabl. Profesoara i dicteaz trei numere i i cere s verifice dac cele trei numere pot fi laturile unui triunghi. Ajutai-l pe Gigel s afle rezultatul. Scriei un program care primete numerele lui Gigel, care sunt mai mici ca 32000, i returneaz DA sau NU. Observaie: Trei numere pot fi laturile unui triunghi numai dac fiecare este mai mic ca suma celorlalte dou. Exemple: Date de intrare 3 5 7 Date de ieire Da Date de intrare 2 5 9 Date de ieire Nu. 7) S se verifice dac o liter introdus este vocal sau consoan. Exemplu : Date de intrare a Date de ieire vocala. 8) Se introduc vrstele a 3 persoane. Afiai vrstele cuprinse ntre 18 i 60 de ani. Exemplu : Date de intrare 56 34 12 Date de ieire 56 34. 9) Date dou numere, afiai acele numere care se mpart exact la 7 i la 11. Exemplu : Date de intrare 154 213 Date de ieire 154. 10) Se dau dou numere. S se verifice dac numrul mai mare se mparte exact la cel mai mic. Exemplu : Date de intrare 10 250 Date de iere 250 se imparte exact la 10.

11) Cunoscnd data curent exprimat prin trei numere ntregi reprezentnd anul, luna, ziua precum i data
naterii unei persoane, exprimat la fel, s se fac un program care s calculeze vrsta persoanei respective n numr de ani mplinii. Exemplu : Date de intrare data curenta 2005 10 25 data nasterii 1960 11 2 Date de iere 44 ani. Probleme diverse

1) Andrei primete ntr-o zi trei note, nu toate bune. Se hotrte ca, dac ultima not este cel puin 8, s le
spun prinilor toate notele primite iar dac este mai mic dect 8, s le comunice doar cea mai mare not dintre primele dou. Introducei notele luate i afiai notele pe care le va comunica prinilor. Exemple : Date de intrare 6 9 9 Date de ieire 6 9 9 ; Date de intrare 8 5 7 Date de ieire 8. Se consider trei numere ntregi. Dac toate sunt pozitive, s se afieze numrul mai mare dintre al doilea i al treilea numr, n caz contrar s se calculeze suma primelor dou numere. Exemple: Date de intrare 45 23 100 date de ieire 100 ; Date de intrare 34 -25 10 Date de ieire 9. S se afieze cel mai mare numr par dintre doua numere introduse n calculator. Exemple : Date de intrare 23 45 Date de ieire nu exista numar par ; Date de intrare 28 14 Date de ieire 28 ; Date de intrare 77 4 Date de ieire 4. Pe o mas de biliard sunt bile albe, roii i verzi. Din fiecare culoare sunt bile de dou dimensiuni: mari i mici. S se afieze cte bile sunt n total pe masa de biliard. Un juctor vrea s-i spunei care bile sunt mai multe , cele mici sau cele mari, afind numrul lor. De ce culoare sunt bilele cele mai numeroase? Precizai numrul lor. Exemplu: Date de intrare Nr. bile albe mici: 2 Nr. bile albe mari: 3 Nr. bile rosii mici: 1 Nr. bile rosii mari: 4 Nr. bile verzi mici: 3 Nr. bile verzi mari: 4 Date de ieire Totalul bilelor: 17 Mari: 11 bile Verzi: 7 bile (www.contaminare.ro). La ferma de gini Copanul este democraie. Fiecare gin primete exact acelai numr de boabe de porumb. Cele care nu pot fi mprite vor fi primite de curcanul Clapon. S se spun cine a primit mai multe boabe i cu ct. n caz de egalitate, se va afia numrul de boabe primite i cuvntul "egalitate". Datele se vor citi n urmtoarea ordine: numrul de gini, iar dupa aceea numrul de boabe de porumb. Exemplu: Date de intrare 100 4050 Date de ieire: Curcanul mai mult cu 10 boabe. (www.contaminare.ro). Instruciuni de ciclare , algoritmi ciclici Utilizarea instruciunilor de ciclare pentru generare de numere

2) 3) 4)

5)

III.

1) S se afieze toate numerele de forma a23a care se mpart exact la 6. 2) Un lift coboar de la etajul a la etajul b. Afiai toate etajele pe care le parcurge. Exemplu : Date de intrare 8
3 Date de ieire 8 7 6 5 4 3.

3) S se afieze tabla nmulirii cu n. Exemplu : Date de intrare n=5 date de ieire

1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 6x5=30 7x5=35 8x5=40 9x5=45 10x5=50. 4) S se afieze perechile de numere a i b care satisfac relaiile a+b=1000; 17 divide pe a i 19 divide pe b. 5) S se genereze primii n termeni ai irului 1,1,2,2,2,3,3,3,3,4,4,4,4,4,. 6) S se afieze primii n termeni ai irului lui Fibonacci : 0,1,1,2,3,5,8,13,21. 7) Se d un numr. S se scrie, dac se poate, ca sum de dou numere impare. Exemple : date de intrare 24 Date de ieire 24=1+23 24=3+21 24=5+19 24=7+17 24=9+15 24=11+13 ; Date de intrare 33 Date de ieire Nu se poate. 8) Se d un numr. S se scrie, dac este posibil, ca sum de dou numere consecutive. Exemple : Date de intrare 5 Date de ieire 5=2+3 ; Date de intrare 6 Date de ieire Nu se poate. 9) Dndu-se un numr natural n, s se gseasc toate posibilitile de scriere a acestui numr ca sum de numere consecutive. Exemplu : Date de intrare 15 Date de ieire 15=1+2+3+4+5 15=4+5+6 15=7+8. 10) S se afieze toi divizorii unui numr natural dat. Exemplu : Date de intrare 12 Date de ieire 1 2 3 4 6 12. 11) Se introduce un numr. S se verifice dac este numr prim. Exemple: Date de intrare 23 date de ieire Prim ; Date de intrare 45 Date de ieire Nu este prim. 12) S se afieze primele n numere prime. Exemplu: Date de intrare n=6 Date de ieire 2 3 5 7 11 13.

Stabilirea limitelor buclei for utiliznd regula celor trei pahare

1) Un lift parcurge distana dintre dou etaje a i b. S se afieze toate etajele parcurse, n ordinea atingerii lor. 2)
Exemple : Date de intrare a=4 b=7 Date de ieire 4 5 6 7 ; Date de intrare a=10 b= 8 Date de ieire 10 9 8. Se dau numerele a, b i c. S se scrie un program care s afieze n ordine cresctoare toate numerele care se divid cu a sau b i sunt mai mici dect c. Indicaie: Se stabilete cu regula celor trei pahare ca n b s fie numrul mai mare i n a cel mai mic i bucla se ia de la b la c. S se calculeze suma numerelor naturale cuprinse ntre dou numere date ( dintr-un interval). Exemplu: Date de intrare: capetele intervalului 3 6 Date de ieire suma=9. Mai multe bucle for incluse una n alta (imbricate)

3)

1) S se determine toate tripletele de numere a, b, c cu proprietile: 1<a<b<c<100; a+b+c se divide cu 10. 2) S se afieze toate numerele de dou cifre care adunate cu rsturnatul lor dau 55. 3) Se cere listarea numerelor cuprinse ntre 100 i 599, avnd cifrele n ordine cresctoare i suma cifrelor egal 4)
cu 18. S se nlocuiasc literele cu cifre n scderea urmtoare: a b c b eedab ----------ebce Calcule de sume i produse

1) S se calculeze 7+14+21+28++98, 3*6*9*12**33 2) S se calculeze sumele s1=1+2+3++n

3) 4)

s2=1*2+2*3+3*4++(n-1)*n s3=1+1*2+1*2*3++1*2*3**n s4=12+22+32++n2 s5=1/2+2/3+3/4++n/(n+1) s6=2-3+4-5+-99+100 s7=1+2+22+23+24++2n Se introduc succesiv numere nenule pn la introducerea numrului 0. S se afieze suma tuturor numerelor introduse. Exemplu: Date de intrare 3 5 4 2 0 Date de ieire 14. Se citesc numere de la tastatur pn la introducerea unui numr impar divizibil cu 3. S se afieze suma tuturor numerelor pare introduse. Exemplu: Date de intrare 7 4 6 2 1 9 Date de ieire 12. Utilizarea instruciunilor de ciclare pentru repetarea unor aciuni

1) Se dau numerele a i n. S se afieze numrul a urmat de n zerouri. Exemplu : Date de intrare a=34 n=5
Date de ieire 3400000.

2) Se dau un numr n i un numr prim k. S se specifice la ce putere apare k n descompunerea n factori primi 3) 4) 5)
a numrului n. Exemplu : Date de intrare n=12 k=2 Date de ieire 2. S se afieze descompunerea unui numr dat n factori primi. Exemplu : Date de intrare 12 Date de ieire 12 = 2^2 3^1. Un copac crete zilnic cu 0.75 cm. La plantare avea 1 m. S se afieze dup cte zile ajunge la nlimea de 12 m. La ce nlime ajunge dup o lun (30 zile)? Pentru a o elibera pe Ileana Cosnzeana, Ft-Frumos trebuie s parcurg x km. El merge zilnic a km, dar Zna-cea-Rea l duce n fiecare noapte cu b km napoi, b<a. Dup cte zile o elibereaz? Exemplu: Date de intrare x=10 a=4 b=1 Date de ieire 3 zile.

6) A fost odat un balaur cu 6 capete. ntr-o zi Ft Frumos s-a suprat i i-a tiat un cap. Peste noapte i-au
crescut alte 6 capete la loc. A doua zi Ft Frumos iar i-a tiat un cap dar peste noapte balaurului i-au crescut alte 6 capete i tot aa timp de n zile. n cea de a (n+1)-a zi, Ft Frumos s-a plictisit i a plecat acas! Scriei un program care citete de la tastatur n, numrul de zile, i care afieaz pe ecran cte capete avea balaurul dup n zile. Exemplu: pentru n=3 se va afia 15 capete. (ONI 2002 cl.a V-a) A fost odat ca niciodat, a fost un cangur care cretea ntr-un an precum alii n zece. ntr-o zi a nceput s fac srituri. i a srit pentru nceput 7 metri. A doua zi a srit, n plus fa de ziua precedent, de zece ori mai mult. n a treia zi a reuit s sar, n plus fa de prima zi, de zece ori mai mult dect n ziua a doua. n a patra zi a srit, n plus fa de prima zi, de zece ori mai mult dect n ziua a treia. i tot aa mai departe. Scriei un program care calculeaz ci metri a srit cangurul, n total, n n zile. Exemplu: pentru n=3 se va afia 861 m. (ONI Focani 2003 cl.a V-a) Se citesc de la tastatur numere naturale pn cnd suma numerelor pare este mai mare dect k. Cte numere au fost introduse i care este suma numerelor pare? Exemplu: Date de intrare: K=12 5 8 1 2 2 3 6 Date de ieire: 7 (numere) 18 (suma celor pare) ( P.N.C. Bucureti, Cupa Mrior 2005) Algoritmi de nsumare, contorizare, determinare a min i max

7)

8)

1) Se citesc pe rnd 4 numere ntregi. S se numere cte dintre ele au restul 7 la mprirea cu 13. S se afieze 2) 3) 4)
aceste numere i produsul celorlalte numere. Exemplu: Date de intrare 20 15 30 46 Date de ieire Numere: 20 46 Total: 2 Produs: 450. Se citesc pe rnd temperaturile medii ale fiecrei luni a unui an, ca numere ntregi. S se afieze cu dou zecimale media anual a temperaturilor pozitive i a celor negative. Exemplu: Date de intrare -5 -3 1 8 12 17 20 21 18 10 6 -2 Date de ieire medie_poz=13.66 medie_neg=-3.33. Se citesc numere naturale strict pozitive pn la ntlnirea numrului 0. S se numere cte dintre ele sunt pare, presupunnd c cel puin primul element este nenul. Exemplu: Date de intrare 4 3 6 5 7 7 0 Date de ieire 2 numere pare. Se introduc datele de natere a n copii, sub forma an, numr lun, zi. S se afieze ci copii sunt nscui pe 1 iunie i ci copii sunt nscui n 1994, 1995 i 1996. Exemplu: Date de intrare n=3 an=1994 luna=12 zi=3 an=1990 luna=6 zi=1 an=1995 luna=6 zi=1 Date de ieire 2 copii nscui la 1 iunie 2 copii nscui n 1994 1995 1996. Se citesc de la tastatur numere ntregi pozitive atta timp ct suma lor nu depete 1000. S se scrie un program care s afieze cea mai mic i cea mai mare valoare a acestor numere. Exemplu: 550 345 100 45 Date de ieire max=550 min=100. Se citesc mediile a n elevi, ca numere reale. S se afieze cea mai mare i cea mai mic medie. S se verifice dac sunt corigeni. Exemplu : Date de intrare n=4 9.50 4.25 9.66 6.33 Date de ieire max=9.66 min=4.25 1 corigent. Algoritmul de mprire n cifre a unui numr

5) 6)

1) Se dau trei numere a,b,c, de cte dou cifre, nenule, fiecare. Folosind cifrele unitilor celor trei numere se va 2) 3) 4) 5) 6)
genera un numr x de trei cifre, iar cu cifrele zecilor se va genera un numr y de trei cifre. S se afieze x i y. Exemplu : date de intrare a=24 b=13 c=64 date de ieire x=434 y=216. Se introduce un numr natural cu maxim 9 cifre. S se determine i s se afieze numrul de cifre, cea mai mare cifr i suma tuturor cifrelor acestui numr. Exemplu: Date de intrare 24356103 Date de ieire 8 cifre max=6 min=0 suma=24. Cte cifre pare sunt ntr-un numr dat? Exemplu : Date de intrare 34425346 Date de ieire 4 cifre. S se verifice dac la scrierea unui numr, introdus de la tastatur, cifrele pare i impare alterneaz. Exemplu : date de intrare 347092 date de ieire da. n cte zerouri se termin un numr de maxim 9 cifre, introdus de la tastatur? Exemplu : Date de intrare 20034000 Date de ieire 3 zerouri. Se introduce un numr. S se verifice dac este palindrom. Exemple : Date de intrare 12321 Date de ieire Da ; Date de intrare 23034 Date de ieire Nu.

7) S se afieze toate numerele palindroame mai mari dect 10 i mai mici dect un numr dat, n. Exemplu :
Date de intrare n=110 date de ieire 11 22 33 44 55 66 77 88 99 101.

8) Se introduce un numr natural n cu maxim 8 cifre, nenule i distincte, mai mici ca 9. S se afieze cifrele

numrului n ordine descresctoare. Indicaie: fiecare cifr c se nmulete cu 10c, se adun aceste numere i se afieaz fr zerouri. Exemplu: pentru n=354, s-ar face urmtoarele calcule: 4*104+5*105+3*103=54300 i se va afia 543 . 9) Dat un numr ntreg de maxim 9 cifre, s se afieze numrul de apariii al fiecrei cifre. Exemplu : Date de intrare 364901211 Date de ieire 0 apare de 1 ori 1 apare de 3 ori 2 apare de 1 ori 3 apare de 1 ori 4 apare de 1 ori 5 apare de 0 ori 6 apare de 1 ori 7 apare de 0 ori 8 apare de 0 ori 9 apare de 1 ori. 10) Afiai cte cifre distincte conine un numr nenul. Exemplu : date de intrare 234323 Date de ieire 3 cifre. 11) Se dau dou numere naturale a,b cu maxim 9 cifre. a) S se determine cifrele distincte comune numerelor a i b. b) S se afieze numrul cel mai mare format din toate cifrele lui a i b Exemplu : pentru a=2115 b=29025 se va afia a) 2 5 b) 955222110 (OJI, clasa a V-a, 2004) 12) Se introduc dou numere, a i b, a<b<5000000. S se afieze ultima cifr a sumei tuturor numerelor aflate ntre a i b. Exemple: Date de intrare a=12 b=14 date de ieire 9 ; date de intrare a=1000000 b=3000000 date de ieire 0. 13) Se dau dou numere avnd acelai numr de cifre. Cte cifre trebuie modificate pentru a transforma un numr n cellalt ? Exemplu : pentru n1= 2135 i n2= 7139 este necesar modificarea a dou cifre. Algoritmul lui Euclid

1) Se dau dou numere nenule. S se afieze cmmdc i cmmmc al lor. Exemplu : Date de intrare 12 2) 3) 4) 5)

6)

32 Date de ieire cmmdc=4 cmmmc 96. Se dau numitorul i numrtorul unei fracii. S se simplifice, dac se poate, i s se afieze fracia simplificat. Exemplu : Date de intrare 12 32 Date de ieire 3/8. Se dau trei numere. Determinai i afiai cmmmdc al lor. Exemplu : Date de intrare 12 32 38 Date de ieire 2. Se d numrul n, s se afieze toate numerele mai mici ca el prime cu el. Exemplu : date de intrare n=10 date de ieire 1 3 7 9. ntr-o tabr particip b biei i f fete. Se organizeaz un joc la care trebuie s participe un numr ct mai mare de echipe, formate din acelai numr nrb de biei i nrf de fete. Trebuie s scriei un program care determin numrul maxim de echipe care se pot forma i numrul nrb de biei i, respectiv numrul nrf de fete, care intr n componene fiecrei echipe. Dac nu se pot forma cel puin dou echipe identice, afiai Nu ne putem juca. Exemple: pentru b=10 f=15 se va afia: 5 echipe cu 2 baieti 3 fete, pentru b=12 f=25 se va afia Nu ne putem juca. Se citesc de la tastatur patru numere ntregi diferite de zero. Numerele reprezint n ordinea citirii: numrtorul i numitorul primei fracii, respectiv numrtorul i numitorul celei de a doua fracii. S se adune cele doua fracii i s se afieze numrtorul i numitorul sumei. Exemplu: Date de intrare: 6 18 12 24 Date de ieire: 5 6. Probleme diverse

1) S se afieze toate numerele pn la 100 care au patru divizori. 2) Dintre numerele mai mici ca 1000, care au cei mai muli divizori ? 3) Se dau n numere. n cte zerouri se va termina produsul lor? Exemplu : date de intrare n=4 4) 5) 6)

5 4 10 25 date de ieire 3 zerouri. Se d un numr natural n, n<=100 i o cifr k din mulimea {2,3,5,7}. Se cere s se afieze exponentul lui k n descompunerea n factori primi a produsului 1*2*3**n. Exemplu: date de intrare n=8 k=2 date de ieire 7. (ONI 2003 clasa a V-a) Se introduc temperaturile medii msurate n fiecare lun a unui an. S se afieze valoarea celei mai mari temperaturi negative i a celei mai mici temperaturi pozitive a acelui an. Exemplu: date de intrare -4 -6 0 5 10 20 24 25 17 8 -1 -7 date de ieire max negative=-1 min pozitive=5. Se citete un numr natural n cu cel mult 9 cifre i se cere s se afieze o piramid format din cifrele lui astfel: pe prima linie cifra (sau cifrele) din mijloc, pe a doua cele 3 (sau 4 ) cifre din mijloc, etc. pe ultima s

se va afia 7 8 378 5 2 3 7 8 5 5 7) Dat valoarea unui numr natural, se cere s se tipreasc n scriere roman. 8) Se citesc pe rnd caracter cu caracter elementele unei expresii matematice, caracterele citite pot fi doar cifre i +, -, * ,/ i =, pn la ntlnirea semnului =. Operaiile se fac n ordinea introducerii lor, fr a se ine seama de prioritate. Calculatorul s afieze rezultatul expresiei. 9) O broscu se deplaseaz efectund cte o sritur de lungime p cm la fiecare secund. Dup fiecare n secunde broscua devine mai obosit, iar lungimea sriturii pe care o face se njumtete. Scriei un program care s citeasc de la tastatur lungimea iniial a sriturii, p, numrul de secunde dup care broscua i injumtete saltul, n, precum i durata total a deplasrii broscuei T (exprimat n secunde) i care s determine distana total pe care a parcurs-o broscua. Distana total determinat va fi afiat pe ecran cu dou zecimale. Restricii: p, n, T sunt numere naturale; p, n, T<30000;T/n<16 Exemplu Pentru n=10, p=20 i T=33, distana total pe care se deplaseaz broscua este 357.50 cm. (ONI, Galaciuc 2001, clasa a V-a) 10) La un concurs de matematic particip elevi din mai multe coli din diferite orae. Pentru a se putea deosebi ntre ele lucrrile lor, fiecare lucrare este codificat printr-un numr natural cu 3 cifre, s zicem abc, unde a este codul oraului, b este codul colii din oraul a iar c este codul unui elev din coala b din oraul a. Ex.: lucrarea cu codul 328 este lucrarea elevului cu codul 8 de la coala cu codul 2 din oraul cu codul 3. Se cunosc: un cod (al lucrrii unui elev H, prietenul nostru), numrul n de lucrri i codurile acestora. Cerin: Se cere s se rezolve cerinele: a) Verificai dac H este premiant sau nu. b) Determinai numrul de premii luate de elevii din oraul lui H c) Determinai numrul de premii luate de elevii din coala lui H Exemplu: date de intrare codH 123 n=4 133 221 123 125 Date de ieire a) da b) 3 c) 2 (OJI, clasa a V-a, februarie 2004) 11) O carte are N pagini. Pe paginile care au numrul asociat divizibil cu K i nedivizibil cu H se afl poze. Cerin: pentru N, K, H citite de la tastatur se cere s se afieze ultima cifr a sumei numerelor asociate paginilor care au poze, dac problema nu are soluie se va afia mesajul: Imposibil! Restricii 0<N<1000000001 0<K,HN. Exemplu Pentru N=20, K=3, H=2 se va afia 7 (CNI Satu-Mare 2003 clasa a V-a) 12)ntr-o parcare sunt n maini care au numere de nmatriculare provizorii (numere ntregi, din cel mult 5 cifre). Mainile sunt aezate n ordinea de citire a numerelor de nmatriculare. S se afieze poziiile pe care se afl mainile pentru care suma cifrelor numrului de nmatriculare este impar ( n<= 20). Exemplu: pt. n=5 i numerele de nmatriculare: 634 90281 63721 30361 70915 se vor afia poziiile: 134 (CNI Satu-Mare 2002 clasa a V-a) 13) n vacan la mare dup ce se plictisete de plaj i ap, Ionic este mai tot timpul n Parcul de distracii. Dintre toate locurile de distracie el a ales tirul. Astfel, ntr-o sear Ionic obine S puncte, dup un anumit numr de trageri (cel puin dou trageri). tiind c la toate tragerile efectuate a obinut puncte i c dup fiecare tragere el progreseaz constant, adic obine cu un punct mai mult dect la tragerea anterioar, se cere s se determine toate modalitile de obinere a punctajelor (cu suma lor egal cu S). Date de intrare: de la tastatur se va citi valoarea lui S (numr natural nenul 998877). Date de ieire: Pentru fiecare soluie se va afia pe cte un rnd numrul de trageri i punctajul primei trageri cu un spaiu ntre ele, iar la sfrit pe ultima linie se va afia mesajul Numar solutii, urmat de numrul de soluii. Exemplu: Pentru S=15 pe ecran se va afia: 5 1 2 7 3 4 Numr soluii 3 (ONI Glciuc 2002 clasa a V-a)

fie scris numrul dat.

Exemplu: n=237855

14)Pentru

a descoperi numrul cheii ce trebuie s o foloseasc pentru a putea s o elibereze pe Ileana Cosnzeana, Ft-Frumos are de rezolvat urmtoarea problem: Pentru numrul citit pe u, trebuie s calculeze suma divizorilor i, dac aceast sum este un numr prim, atunci codul este egal cu suma cifrelor numrului citit. n caz contrar, codul este egal cu suma cifrelor impare ale numrului citit. Ajutai-l pe erou s descopere numrul cheii. Exemple: date de intrare 472 date de ieire cheia 7 ; Date de intrare 4 date de ieire cheia 4. (CNI-etapa judeean, 2005) 15)Se dau dou numere avnd acelai numr de cifre. Cte cifre trebuie modificate pentru a transforma un numr n cellalt? Exemplu: date de intrare n1=2135 n2=7139 date de ieire 2 cifre. (CNI-etapa judeean, 2005)

IV.

Variabile booleene

1) Ctlina are o maimu care a nvat s scrie la tastatur. Pentru aceast sptmn trebuie s nvee s scrie trei cuvinte de maximum 10 caractere. Din pcate, maimua se grbete i apas greit pe taste. Ajutaio pe Ctlina s verifice cnd maimua a scris corect cele trei cuvinte. Date de intrare: cele trei cuvinte i cuvintele introduse de maimu. Programul se va opri atunci cnd maimua a reuit s scrie corect toate cele trei cuvinte indiferent de ordinea introducerii sau de numrul de cuvinte greite introduse. Separarea intre cuvinte se face apsnd tasta Enter. Exemplu: Pentru cuvintele: Palat calculator jungla, maimuta poate tasta: palat Calutin jungla Pialat Cucalator calculator Palat se va afia AI REUSIT! (www.contaminare.ro) 2) Cine se uit la televizor ? Ana, Barbu, Clin, Dumitru i Elena petrec mpreun o zi de iarn. Dac Ana privete la TV, la fel face i Barbu Fie Dumitru, fie Elena, fie amndoi privesc la TV Fie Barbu, fie Clin privete la TV, dar nu amndoi Dumitru i Clin fie privesc, fie nu privesc la TV, dar asta numai mpreun Dac Elena privete la TV atunci Ana i Dumitru se uit i ei Indicaie : se vor folosi variabilele booleene a,b,c,d,e care vor avea valoarea true sau false dup cum propoziiile Ana se uit la TV , Barbu se uit la TV , etc. sunt adevrate sau false. 3) Cine minte ? ntr-o mprejurare n care sunt implicai a, b i c se fac urmtoarele afirmaii : a susine c b minte, b susine c c minte, c susine c a i b mint. Cine minte i cine spune adevrul ? V. Generarea aleatoare a numerelor Funcia random i procedura randomize

1)
2) 3) 4) 5)
VI.

S se simuleze aruncarea unui zar de n ori afindu-se valoarea feei i s se afieze de cte ori a aprut valoarea 6. Se arunc 2 zaruri pn la obinerea unei duble. S se afieze suma punctelor. Se extrag n bile dintr-o urn, notate de la 1 la 20. Valoarea bilei va fi generat de calculator. S se afieze cea mai mare valoare extras. Dintr-o urn cu bile albe i negre se extrage pe rnd cte o bil, de n ori. Afiai cte bile albe i cte negre au fost extrase. S se fac un test de nmulire cu dou numere cuprinse ntre 0 i 10, generate de calculator, care s cuprind cel mult 5 ncercri. Tablouri cu o dimensiune (vectori) Introducere, parcurgere, afiare Parcurgere cu instruciunea for

1) Se citesc 4 numere de maxim 9 cifre. S se afieze pe vertical, specificndu-se i poziia pe care o ocup n
ir. Exemplu: Date de intrare 5 3 7 6 Date de ieire 5 pozitia 1 3 pozitia 2 7 pozitia 3 6 pozitia 4 Se d un ir de 10 numere naturale. S se afieze pe dou rnduri, pe primul rnd cele pare i pe al doilea cele impare. Exemplu: Date de intrare 4 3 2 5 6 8 9 0 1 5 Date de ieire 4 2 6 8 0 3 5 9 1 5 Se introduc 10 litere, s se afieze n ordinea invers introducerii. Exemplu: Date de intrare a b r a c a d a b r Date de ieire r b a d a c a r b a. Un acrostih este o poezie la care, citind nceputul fiecrui vers, se obine un mesaj. S se introduc un acrostih, vers cu vers, i s se afieze mesajul dat de primele litere. Exemplu: pentru Vreau s dorm Rd n somn

2) 3) 4)

5) 6)

Se va afia VREAU Introducei n numere ntr-un vector i un numr d. Afiai acele numere din irul dat care sunt divizibile cu d. Exemplu: date de intrare n=5 numere: 5 7 10 23 15 d=5 Date de ieire 5 10 15. Robin Hood se afl la un concurs de tras cu arcul. Acolo el trebuie s obin punctajul x doar din trei sgei(sageata 1+sageata2+sageata3=punctajul x). inta este format din n cercuri concentrice (unul n altul). Fiecare cerc are un anumit punctaj. S se spun valorile cercurilor n care trebuie s trag Robin Hood pentru a obine punctajul x. Dac exist mai multe soluii, s se printeze toate. Dac nu exist soluii, s se printeze imposibil. Date de intrare: pe prima linie n i x, pe a doua linie valoarea fiecrui cerc. Date de ieire: soluiile sau imposibil. Exemplu: Intrare:n=3 x=4 valori cercuri 1 2 3 4 Ieire: 1 1 2 (explicaie: 1+1+2=4) (www.contaminare.ro) Utilizarea altor instruciuni de ciclare pentru parcurgerea vectorilor

Este ca un drog Acest drag somn Uitat n pat

1) S se afieze elementele unui vector pn la prima valoare nul. Dac nu exist nici un 0, se vor afia toate 2)
numerele i mesajul Nici un element nul. Exemplu: Date de intrare: numar elemente=5, numere 3 6 8 0 2 3 Date de ieire 3 6 8. Se introduc n numere reprezentnd punctajele obinute la un concurs. S se afieze primele k punctaje mai mari dect o valoare b, necesar calificrii la o etap superioar. Dac nu sunt suficieni concureni care s fi obinut punctaj peste b, s se afieze i mesajul Candidati insuficienti. Exemplu: Date de intrare n=3 punctaje: 45 23 78 k=2 b=50 Date de ieire 78. Se introduc un numr par de numere. S se adune cte dou numere consecutive i s se afieze sumele obinute. Exemplu: Date de intrare: numar elemente: 6, numere 5 4 3 6 5 5 Date de ieire 9 9 10. Se introduc pe rnd n caractere. S se afieze pe ce poziie apare prima dat caracterul spaiu. Exemplu: Date de intrare n=10 caractere i n f o c l u b 7 Date de ieire 5. Cpitanul Jack O'Neel se afl pe o nav spaial. Nava are lungimea de n camere i limea de o camer. El se afl n camera numrul 1. n fiecare camer se afl un dispozitiv de teleportare. Acest dispozitiv te poate teleporta ntr-o alt camer din cele n. S se spun dac O'Neel poate ajunge n camera h. Date de intrare: Pe prima linie numrul n i numrul h. Pe a doua linie sunt n numere, fiecare numr indic n ce camer l transmite pe Jack O'Neel teleportorul din acea camer. Date de ieire: Dac O'Neel poate ajunge n camera h se va printa "DA" i camerele prin care a trecut. Dac nu poate ajunge n camera h s se printeze "NU". Obs: Dac O'Neel trece de dou ori prin aceeai camer, acesta nu mai ncearc s ajung n camera h i se va printa "NU". Exemple: Date de intrare: n=5 h=4 teleportari: 2 3 4 1 3 Date de ieire: DA 1 2 3 4 Date de intrare: n=4 h=4 teleportari:1 2 3 4 date de ieire: NU (www.contaminare.ro) Sume, produse, contorizri, min, max

3) 4) 5)

1) S se afieze suma valorilor pozitive i suma valorilor negative din n numere date. Exemplu: Date de intrare 2) 3) 4) 5) 6)

n=6 numere 6 9 -8 7 -5 -3 Date de ieire: S poz= 22 S neg=-16. Se introduc temperaturile msurate n n zile. S se afieze media temperaturilor negative i media celor pozitive. Exemplu: Date de intrare n=5 temperaturi 23 24 23 25 22 Date de ieire 23.40 Din n numere ntregi introduse n calculator doar unul este nul i nu este primul sau ultimul. Afiai suma numerelor din faa acestui 0 i suma celor de dup el. Exemplu: Date de intrare n=5 numere 4 5 1 0 7 Date de ieire s1=10 s2=7. ntr-un ir de numere ntregi, s se afieze suma elementelor de pe poziiile pare i suma celor de pe poziii impare. Exemplu: Date de intrare n=6 numere 3 1 5 4 6 7 Date de ieire simp=14 spar=12. Se introduc n calculator i se memoreaz vrstele a n brbai. Afiai ci au vrsta mai mare dect 50 i mai mic dect 70 de ani. Exemplu: Date de intrare n=4 varste 56 45 76 65 Date de ieire 2 barbati. La o cur de slbire de k zile se nscriu n persoane, fiecare cu greutatea g(i). tiind c greutatea ideal este mai mare sau egal cu a i mai mic sau egal cu b, iar persoanele urmeaz tratamente diferite astfel: cei sub greutate ideal se ngra 1 kg pe zi, cei peste greutatea ideal slbesc 1 kg pe zi, cei cu greutatea ideal i pstreaz greutatea, aflai a) numrul de persoane cu greutate ideal la nceputul tratamentului ; b) numrul

10

persoanelor cu greutate ideal dup cele k zile de tratament. Exemplu: n=10 k=7 a=40 b=50 i 38 41 48 50 54 58 60 42 32 se va afia a) 4 persoane b) 7 persoane. (InfoStar Aiud 1998 clasa a VI-a) 7) Date n numere naturale, cte sunt prime cu 7? Dar cu 10? Exemplu: Date de intrare n=6 numere 5 7 14 20 12 15 Date de ieire: prime cu 7: 4 nr, prime cu 10: 1 nr. 8) Se introduc n numere egale cu 0, 1 sau 2. S se scrie un program care s determine pe ce poziie apare primul 0, de cte ori apare fiecare cifr i care este cifra folosit cel mai puin. Exemplu: Date de intrare n=7 numere: 1 1 0 2 1 0 1 Date de ieire: pozitie primul zero 3, cifra 0 apare de 2 ori cifra 1 apare de 4 ori cifra 2 apare de 1 ori, cel mai putin: 2 . 9) Afiai cte numere au forma aaa , din n numere date. Exemplu: Date de intrare n=3 numere 123 222 434 Date de ieire 1 nr. 10) Se introduc nlimile, exprimate n cm, a n copii. Afiai nlimea celui mai nalt i nlimea celui mai scund copil. Care este diferena de nlime ntre ei? Exemplu: Date de intrare: n=5 inaltimi 120 118 120 115 100 117 Date de ieire imax=120 cm imin=100 cm diferenta=20 cm. 11) Se dau n numere. S se determine cea mai mic valoare i s se afieze de cte ori apare ea n ir. Exemplu: Date de intrare n=8 numere 6 4 7 5 8 5 9 5 Date de ieire min=5 apare de 3 ori. 12) Se introduc n numere ntregi. Dintre numerele mai mici ca 100, afiai numrul cu valoarea cea mai mare. Exemplu: Date de intrare: n=4 numere 120 98 34 105 Date de ieire: 98. 13) S se calculeze suma componentelor pozitive, produsul celor negative i numrul componentelor nule ale unui vector cu n numere reale. Exemplu: Date de intare: n=7 numere 1 0 -4 -3 0 5 -1 Date de ieire: s=6 p=12 c=2. 14) Un lot de pmnt este mprit n n parcele dreptunghiulare, numerotate de la 1 la n. Se citesc perechile de numere care reprezint lungimea i limea fiecrei parcele. S se afieze suma ariilor parcelelor i valoarea celei mai mari suprafee. Exemplu: Date de intrare: n=3, lungime=10 latime=5 lungime=15 latime=10 lungime=12 latime=5 Date de ieire: suma=260 max=150. 15) S se nlocuiasc fiecare element dintr-un ir numeric cu media aritmetic a celorlalte n-1 elemente ale sale. Exemplu: Date de intrare: n=3 numere 1 2 3 Date de ieire: 2.5 2 1.5 16) Mo Crciun sosete n mijlocul copiilor oferind fiecrui copil un cadou cu o anumit valoare (numrul copiilor se citete de la tastatur, precum i valorile cadourilor, n lei). S se spun: -ct a cheltuit Moul pentru cumprarea cadourilor (n moi, 1 leu=6 moi) -dac Moul are sau nu un copil preferat, adic dac exist un copil al crui cadou s aib valoarea mai mare dect suma valorilor cadourilor tuturor celorlali copii. Dac exist, afiai DA, urmat de indicele copilului, n caz contrar afiai NU. Exemplu: dac n=5 valori cadouri: 10 50 6 5 20, se va afia: Mosul a cheltuit 546 mosi DA 2 (InfoStar, Aiud 1995 clasa a VI-a) 17) Un pitic vrea s urce o scar care are n trepte de nlimi date, ordonate cresctor. nlimile treptelor sunt n cm i sunt valori ntregi. Acolo unde diferena ntre dou trepte consecutive este de 1 cm piticul urc fr dificulti, unde diferena este mai mare dect 1 cm piticul trebuie s ia o pastil care i d putere s sar pe treapta urmtoare. Cunoscnd nlimile treptelor, prima fiind obligatoriu 0, piticul vrea s afle care este numrul minim de pastile de care are nevoie pentru a urca scara i de asemenea care este cea mai mare diferen dintre dou trepte consecutive. Exemplu: pentru n=9 i nlimile treptelor 0 3 4 6 7 10 19 20 21, se va afia: numar minim de pastile =4 diferenta maxima=9 (InfoStar, Aiud 1996 clasa a VI-a) 18) Copiii dintr-o clas merg la cules de portocale. Se citete de la tastatur numrul de copii din clas i cte portocale a cules fiecare copil. tiind c cel care spune c a cules cele mai multe portocale i cel care spune c a cules cele mai puine portocale mint, s se spun cte portocale au cules mpreun toi copiii din clas care spun adevrul. Exemplu: date de intrare : 5 (nr. de copii din clas) 69 25 14 329 54 date de ieire: 148. 19)Se citesc de la tastatur n numere naturale. S se spun cte din ele sunt cu 3 cifre. 20)ntr-o clas sunt x copii. Acetia merg ntr-o pia n care sunt n vnztori de mere. Se citete de la tastatur numrul de mere ale fiecrui vnztor. Copiii vor cumpra mere doar de la vnztorii care au cel puin 3 mere pentru fiecare copil. Ci vnztori ndeplinesc aceast condiie? Exemplu: Date de intrare: x=25 (numrul de copii) n=5 (numrul de vnztori) 280 456 78 50 75 Date de ieire: 4 (vnztori) (P.N.C. Bucureti, Cupa Mrior 2005.) 21)Se consider n mulimi. Fiecare mulime conine numai numere consecutive. Pentru a da aceste mulimi este suficient s dm primul i ultimul element. Scriei un program care s determine elementele interseciei celor n mulimi. Date de intrare: De la tastatur se citete numrul n. Apoi perechi de numere, cte una pe un rnd, separate prin cte un spaiu, care reprezint cel mai mic, respectiv cel mai mare element din fiecare mulime.

11

Date de ieire: Pe ecran se va afia pe prima linie elementele interseciei cu cte un spaiu ntre ele. Restricii i precizri: 0 < n < 31 Elementele mulimilor sunt numere naturale < 41. Exemplu: date de intrare: n=3 perechi: 5 10 2 9 4 11 Date de ieire: 5 6 7 8 9. Ordonarea elementelor unui vector

1) Se dau n numere reale. S se afieze n ordine cresctoare. Exemplu:Date de intrare: n=4 numere:7

-3 9.8 0 Date de ieire -3 0 7 9.8 2) Se d un vector cu n componente ntregi. Se cere s se afieze primele k componente n ordine cresctoare iar celelalte n ordine descresctoare. Exemplu: n=7 k=3 irul 23 12 18 4 0 23 5 se va afia 12 18 23 23 5 4 0 3) N numere naturale introduse de la tastatur s se afieze astfel: numerele pare n ordine cresctoare i cele impare n ordine descresctoare. Exemplu: pentru n=7 i irul 2 5 3 1 8 5 4 se va afia 2 1 3 5 4 5 8. 4) Prin ordonarea elementelor unui vector format din n caractere, s se afieze de cte ori apare fiecare caracter. Exemplu: Date de intrare: n=4 elemente: a 4 g a Date de ieire: a apare de 2 ori g apare de 1 ori 4 apare de 1 ori. 5) Cunoscnd numele i nlimea a n elevi, n<=100, s se afieze numele acestora n ordinea descresctoare a nlimii. Exemplu: Date de intrare: n=3 nume: Ion inaltime: 120 nume:Ana inaltime:114 nume: Dan inaltime 130 Date de ieire: Dan Ion Ana 6) La un concurs particip n sportivi. Se cunosc rezultatele fiecrui sportiv. S se afieze cele mai bune trei rezultate, n ordine descresctoare a performanei. Exemplu: pentru n=5 i rezultatele 156 187 23 97 86 se va afia 187 156 97. 7) Se cunosc punctajele obinute de cei n elevi participani la un concurs de informatic. tiind c doi elevi primesc acelai premiu numai dac au punctaje egale, s se determine ci elevi primesc Premiul I, ci Premiul II i ci Premiul III. Cerin: Scriei un program care citete de la tastatur numrul concurenilor precum i punctajele acestora, luate din borderoul de corectare, i determin i afieaz pe ecran pe cte o linie numrul de elevi pentru fiecare din cele trei premii. Restricii: numrul n al elevilor nu depete 300 iar punctajul fiecruia este un numr natural cel mult egal cu 100. Exemplu: Pentru n=10 si punctajele: 58 79 34 12 58 40 79 58 30 58 se vor afia numerele: 2 4 1 ceea ce nseamn c 2 elevi primesc Premiul I (cei care au obinut 79 puncte), 4 elevi obin Premiul II (cei cu 58 puncte) i un elev (cel cu 40 puncte) primete Premiul III. 8) Se introduc n numere de cte una sau dou cifre. S se afieze aceste numere n ordinea cresctoare a primei lor cifre. Exemplu: pentru n=5 i numerele 34 2 5 62 25 se va afia 2 25 34 5 62 sau 25 2 34 5 62. Deplasarea elementelor unui vector

1) S se insereze cifra 0 pe prima poziie a unui vector dat, fr a utiliza un alt vector. Exemplu: Date de intrare: 2) Se introduc n numere n calculator. S se rearanjeze elementele din ir astfel nct primul element al irului
dat s apar pe ultima poziie. Exemplu: Date de intrare: n=3 numere: 1 2 3 Date de ieire: 2 3 1. n=4 numere: 5 3 7 8 Date de ieire: 0 5 3 7 8.

3) Se introduc n numere n ordine cresctoare i un numr k. S se insereze acest numr n irul dat astfel nct 4) 5) 6)
s rmn sortat cresctor. Exemplu: Date de intrare: n=4 k=100 numere: 90 95 110 120 Date de ieire: 90 95 100 110 120. Definim operaia de compactare a unui tablou ca fiind eliminarea zerourilor. Dac ntlnim un element nul toate elementele situate la dreapta sa vor veni cu o poziie mai in fa, n locul su. Se d un tablou cu n elemente intregi. Compactai-l. Exemplu: Date de intrare: n=4 numere: 9 0 0 5 Date de ieire: 9 5. S se aeze toate elementele egale cu o valoare v dintr-un ir de n numere date, la sfritul irului. Exemplu: Date de intrare: n=4 v=5 numere: 5 6 5 3 Date de ieire: 6 3 5 5. Se introduc n calculator dou tablouri de dimensiunem, respectiv n, i un numr k, k<=m. S se intercaleze n primul tablou, dup poziia k, tabloul al doilea. Verificarea unor proprieti

1) Se introduc dou iruri de numere cu acelai numr de elemente. S se verifice dac valorile lor, n ordinea
dat, sunt proporionale. Exemplu: Date de intrare: n=3 sir1: 1 2 3 sir2: 3 6 9 Date de ieire: Da.

12

2) S se verifice dac un vector dat este monoton cresctor. 3) S se caute un numr x printre n numere ntregi generate de calculator avnd valori ntre 0 i 100. Dac se 4)
gsete valoarea respectiv s se afieze ultima poziie n care apare, dac nu se gsete, s se afieze mesajul numar inexistent Un tren este format din n vagoane de clasa I-a i a II-a. eful de tren nu vrea s fie mai mult de k vagoane de aceeai clas unul dup altul. Introducndu-se o aranjare a vagoanelor, s se testeze dac exist mai mult de k vagoane de acelai fel consecutive. Se va afia un mesaj corespunztor. n caz afirmativ, s se afieze i poziia de nceput a subirurilor cu mai mult de k elemente de acelai fel. Exemplu: Date de intrare: n=6 k=3 tip vagoane: 1 1 2 2 2 2 Date de ieire: Da, pozitia de inceput 3. Date dou iruri de numere, a cu n elemente i b cu m elemente, m< n, s se verifice dac b este subir al lui a. Exemplu: Date de intrare: n=4 elemente a: 1 2 3 4 m=2 elemente b: 2 4 date de ieire: da. Se d un ir de numere reale. S se verifice dac irul este o progresie aritmetic (diferena dintre oricare dou numere alturate este aceeai, de exemplu: 1,4,7,10,13) S se verifice dac n numere date formeaz o mulime (elementele sunt distincte), ordonnd elementele. Exemple: Date de intrare: n=4 numere: 4 6 2 6 Date de ieire: Nu ; Date de intrare: n=3 numere: 3 5 2 Date de ieire: Da. S se verifice dac doi vectori cu aceeai lungime au aceleai elemente, ordonnd ambii vectori n prealabil. Exemple: Date de intrare: n=3 primul vector: 4 2 6 al doilea vector: 6 2 4 Date de ieire: Da; Date de intrare: n=2 primul vector: 4 2 al doilea vector: 3 4 Date de ieire: Nu. Construirea unor vectori

5) 6) 7) 8)

1) Ciurul lui Eratostene: S se formeze un vector care s conin elementele prime mai mici dect un numr dat
n, n<1000, utiliznd procedeul de excludere prezentat n manualul de matematic (excluderea se va face prin inlocuirea elementului cu 0 i nu se vor afia elementele nule). 2) ntr-o nchisoare cu n celule se afl, la un moment dat, n deinui. Se ia hotrrea s fie eliberai anumii deinui, alegerea lor fcndu-se ntr-un mod special. n nchisoarea aceea erau tot n gardieni. Procedeul de determinare a deinuilor ce vor fi eliberai este urmtorul: gardianul k pleac de la celula k i mergnd din k n k celule, schimb starea uilor pe la care trece,1<=k<=n. n final anumite celule vor rmne deschise, deinuii respectivi fiind eliberai. Putei afla care? Iniial toate uile sunt nchise. Exemplu: n=50 vor fi eliberati cei din celulele 1 4 9 16 25 36 49. 3) S se formeze vectorul primelor n elemente ale irului lui Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13,21, ....... (f[1]=0, f[2]=1, f[i]=f[i-1]+f[i-2]). 4) Se introduc n numere ntregi. Elementele diferite s se memoreze ntr-un alt vector. S se afieze acest nou vector. Exemplu: Date de intrare: n=4 numere: 1 2 2 1 Date de ieire: 1 2. 5) S se formeze i s se afieze vectorul care s conin elementele nenule dintr-un vector dat. 6) S se extrag dintr-un vector elementele care au ultima cifr egal cu k i s se formeze cu ele un alt vector. S se afieze cei doi vectori. Exemplu: Date de intrare: n=3 k=7 numere: 17 23 47 Date de ieire: 17 47. 7) Se dau n numere ntregi. Folosind un alt vector, s se aeze numerele pare la nceput. Exemplu: Date de intrare: n=4 numere: 3 4 6 5 Date de ieire: 4 6 3 5. 8) Prin contorizare i utilizarea unui vector ajuttor, ntr-un ir de numere date s se grupeze la nceput numerele deficiente, apoi cele perfecte i la sfrit cele abundente. (Numim numr deficient cel care este mai mare dect suma divizorilor mai mici ca el, numr perfect cel care este egal cu acest sum i abundent numrul mai mic dect aceast sum). Exemplu: Date de intrare: n=5 numere: 6 12 3 4 10 Date de ieire: 3 4 10 6 12. 9) Dat un numr n, s se memoreze ntr-un vector toate numerele mai mici ca n prime cu n. S se afieze n ordine descresctoare. Exemplu: Date de intrare: n=10 Date de ieire: 9 7 3. 10) Se citete un numr natural cu cifre nenule. S se determine cel mai mic i cel mai mare numr format din cifrele acestui numr. Exemplu: Date de intrare: n=26341 Date de ieire: min=12346 max=64321. 11) S se insereze ntre oricare dou elemente alturate ale unui ir numeric dat media lor aritmetic. Exemplu: date de intrare: n=3 numere: 2 4 5 Date de ieire: 2 3 4 4.5 5. 12) Se d irul 1,2,2,3,3,3,4,4,4,4,5, ..... Dat un numr k, s se afieze elementul de pe poziia k.

13

VII.

Tablouri cu dou dimensiuni (matrici) Introducere, parcurgere integral, afiare

1)

2) 3)

4) 5) 6)

Se d un tablou bidimensional cu m linii i n coloane, 1m,n50, cu componente ntregi i un numr ntreg k. Se cere s se afieze tabloul cu componentele mrite cu k. Exemplu: Date de intrare: m=2 n=3 k= 5 elemente: 1 2 3 Date de ieire: 6 7 8 456 9 10 11 Se introduc dou matrici cu m linii i n coloane. S se afieze matricea sum a celor dou matrici date. Se introduce o matrice cu m linii i n coloane. S se afieze elementele astfel nct liniile s devin coloane. Exemplu: m=2, n=3 matricea 1 2 3 se va afia 1 4 4 5 6 2 5 3 6 S se afieze suma i produsul tuturor elementelor unei matrici cu m linii i n coloane cu componente reale. Cte elemente sunt ntregi? Exemplu: Date de intrare: m=2 n=2 matrice: 453 Date de ieire: s=15 p=120 6 numere intregi 112 Dat un tablou bidimensional cu n linii i n coloane, afiai cea mai mare component i poziiile pe care le ocup. Exemplu: Date de intrare: n=2 matrice: 47 Date de ieire: max=7 pozitii 1 2 2 2. 57 Se consider un tablou care imagineaz tabla de ah. Se citesc un numr de linie i un numr de coloan care vor reprezenta poziia unui cal pe tabl. S se afieze coordonatele elementelor tablei pe care poate sri calul. Exemplu: Date de intrare: 2 2 Date de ieire: 1 4 4 1 4 3 3 4. Parcurgere parial a unui tablou bidimensional

1) S se afieze suma elementelor de pe coloana k a unei matrici cu m linii i n coloane, kn. Exemplu: Date de
intrare: m=2 n=4 k=1

2)

3) 4) 5)

6)

7) 8)

4 3 6 8 Date de ieire: s=11. 7490 Se introduc punctajele realizate de m concureni la n probe sub forma unei matrici cu m linii i n coloane. Afiai punctajul total realizat de fiecare concurent. Exemplu: Date de intrare: m=3 n=2 punctaj concurent 1: 7 9 punctaj concurent 2: 10 8 punctaj concurent 3: 9 9 Date de intrare: concurent1 16 concurent2 18 concurent3 18. Se d o matrice ptratic cu dimensiunea n,n. Afiai suma elementelor de pe diagonala principal i de pe diagonala secundar. Ducnd cele dou diagonale ntr-o matrice ptratic, se obin patru zone triunghiulare. Afiai suma componentelor din interiorul fiecrei zone. Se d un tablou cu m linii i n coloane. Se cere s se afieze suma componentelor de pe marginea tabloului. Exemplu: Date de intrare: m=3 n=4 matrice 6 4 1 0 Date de ieire : s=32. 1533 0827 Se d o matrice cu n linii i n coloane. S se afieze suma componentelor ce se afl pe ptrate concentrice ale matricii date. Ex: pentru n=4 i tabloul 1 1 1 1 se va afia suma patrat 1=30 2222 suma patrat 2=10 3333 4444 Afiai valoarea maxim de pe fiecare coloan a unei matrici cu m linii i n coloane. Se d un tablou cu m linii i n coloane avnd componente cifre zecimale. Fiecare linie a tabloului reprezint cifrele a m numere naturale. Se cere s se afieze pe acelai rnd cifrele sumei celor m numere date. Exemplu: pentru numerele 914, 9211, 3547, 23 se introduce matricea cu m=4, n=4 0914 9211 3547 0023 i se va afia suma 1 3 6 9 5.

matrice

14

9) O persoan are de cumprat p produse din m magazine. S se fac un program care s indice, pentru fiecare
produs, magazinul n care acesta are preul minim. Cunoscnd cantitile ce trebuie cumprate pentru fiecare produs, s se determine suma ce urmeaz a fi cheltuit. Exemplu: p=2 m=3 i preurile aezate ntr-o matrice cu p linii i m coloane: 50000 48000 49500 11000 11500 11500 se va afia: produs 1 pret minim in magazin 2 produs 2 pret minim in magazin 1 , cunoscnd cantitile 5 7, suma necesar va fi de 317000 lei. Eliminarea, adugarea i schimbarea poziiei liniilor i coloanelor

1) Se introduce o matrice cu m linii i n coloane. Se cere ca prin operaii de interschimbare de linii s se obin o
matrice cu elementele de pe prima coloan ordonate cresctor. Exemplu: Date de intrare: m=2 n=3 matrice: 7 4 9 Date de ieire: 1 8 4 184 540 540 749 Se dau o matrice de dimensiune m,n i un numr k, km. S se elimine linia k din matrice. Se dau o matrice de dimensiune m,n i un vector cu n elemente. S se adauge aceste elemente ca linie k n matricea dat. Se d o matrice cu m linii i n coloane cu elemente 0 sau 1.Determinai o matrice cu m+1 linii i n+1 coloane care are un numr par de 1 pe fiecare linie i fiecare coloan. S se afieze suma vecinilor fiecrui element al unei matrice de m linii i n coloane. Exemplu: m=3, n=2 pentru matricea 1 2 se va afia 9 8 18 17 13 12. 3 4 5 6 Verificarea unor proprieti

2) 3) 4) 5)

1) S se verifice dac o matrice ptratic de dimensiune n,n este simetric (elementele simetrice fa de
diagonala principal sunt egale). Exemplu: Date de intrare: n=3 matrice: 3 4 5 Date de ieire: Da 417 570 Se d un tablou cu m linii i n coloane. S se determine numrul de linii care au toate elementele egale. S se verifice dac dou matrici cu aceeai dimensiune sunt egale (au componentele de pe aceeai poziie egale). Se introduc mediile a m elevi dintr-o clas, la n materii. S se verifice dac n acea clas sunt elevi repeteni (cel puin trei corigene). n caz afirmativ, s se specifice i ci sunt. S se verifice dac o matrice are toate elementele distincte. Se da o matrice ptratic cu n linii i n coloane. Stabilii dac este un ptrat magic. (Suma pe linie egal cu suma pe coloan i cu suma pe fiecare diagonal) Construirea unui tablou

2) 3) 4) 5) 6)

1)

S se construiasc un tablou ptratic de dimensiune n,n cu primele n*n numere pare. Exemplu: n=3 se va afia 2 4 6 8 10 12 14 16 18 2) Se d un numr natural n. Vrem s construim un tablou ptratic cu n linii i n coloane avnd elementele n mulimea {-1, 1} astfel nct produsul elementelor de pe fiecare linie, respectiv coloan s fie -1. Cerin: Afiai unul din tablourile cu proprietile de mai sus. Restricii: 0<n<26. Exemplu: pentru n=4 o soluie posibil este 1 -1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 -1 1 (CNI Satu-Mare 2002 clasa a VI-a)

15

VIII. iruri de caractere ( tipul string) Parcurgere, testarea elementelor

1) S se afieze cu litere mari un text dat, de maxim 255 caractere. Exemplu: Date de intrare text: Cerc dE InfO
Date de ieire CERC DE INFO.

2) S se afieze numrul de vocale dintr-un text scris cu litere mici, memorat ntr-o variabil string. 3) S se scrie toate prefixele unui cuvnt dat; prin prefix se nelege irul format din primele caractere ale

cuvntului, minim un caracter, maxim toate. Exemplu: prefixele pentru tablou sunt: t ta tab tabl tablo tablou. 4) S se afieze toate sufixele unui cuvnt. Exemplu: cuvntul tablou, sufixele: u ou lou blou ablou tablou. 5) S se stabileasc proprietatea de palindrom a unui cuvnt. Exemplu: cuvntul cojoc este palindrom. 6) S se afieze literele folosite i frecvena fiecreia ntr-un text de maxim 255 de caractere. 7) Se d un text cu cel mult 255 caractere i o secven continu de litere. Cuvintele din text sunt separate prin unul sau mai multe spaii. Se cere s se determine numrul de apariii a grupului de litere dat, n text. Exemplu: text: Alina merge sa cumpere mere, grup de litere: me, se va afia 2. 8) S se codifice un text dat afind n locul fiecrei litere codul ei ASCII. S se afieze textul codificat, cu un spaiu ntre coduri i trei spaii pentru un spaiu n text. Exemplu: textul: Am un mar se va afia 65 109 117 110 109 97 114. 9) ntr-un text dat, s se nlocuiasc o liter dat cu o alt liter dat de la tastatur. Exemplu: Date de intrare: text abracadabra litera inlocuita b litera cu care se inlocuieste g Date de ieire abragadabra. 10) S se verifice dac dou cuvinte date au aceleai litere. Exemplu: Date de intrare: mar ram Date de ieire: Da 11) S se introduc n calculator un numr cu mai mult de 10 cifre, sub form string, i s se afieze cu cifrele grupate cte trei, de la dreapta la stnga, grupele fiind separate de punct. Exemplu: numrul 12345678900 va fi afiat ca 12.345.678.900. 12) Se d un ir de caractere. Eliminai din acest ir toate caracterele numerice pe care le conine. Exemplu: Date de intrare: sir: Ana are 3 mere date de Ieire: Ana are mere 13) Se citesc de la tastatur n litere mici, cu n < 15. S se formeze dou cuvinte astfel nct primul s conin numai vocale iar cellalt numai consoane. Primul va fi afiat cuvntul care are mai multe litere, iar in caz de egalitate cel care conine numai vocale. Exemplu: Date de intrare: 12 avpoinergeas date de ieire: aoieea vpnrgs. 14) ntr-o urn se gsesc bile albe i roii. n fiecare bil exist cte un numr de la 1 la 50. Ionel i Petric doresc s se joace i inventeaz urmtorul joc: Fiecare din cei doi copii extrage cte 5 bile i numerele din bilele extrase sunt apoi alturate formnd un numr. Ctig cel care a obinut cel mai mare numr. Exemplu: Ionel extrage bilele cu numerele 10, 23, 1, 15, 48. Numrul este 102311548. Petric extrage bilele cu numerele 1, 15, 24, 25, 26. Numrul este 115242526. A ctigat Petric. Realizai programul Pascal ce stimuleaz jocul celor doi prieteni. (CJI, Petroani, 2005) Scoaterea cuvintelor dintr-un text

1) Se consider un text memorat ntr-o variabil string. S se scrie un program care numr cuvintele din text,
separatorii folosii fiind spaiul, punctul, virgula.

2) O linie citit de la tastatur cuprinde cuvinte separate prin spaii. Se cere s se afieze lungimea minim i 3)

4)

maxim a cuvintelor din linie. Se citete de la tastatur un text cu maxim 255 caractere, cuvintele fiind separate de spaiu, punct, virgul i caracterele ?,!. Se cere s se afieze unul sub altul cuvintele din text. Exemplu: pentru textul: Pleaca Ion la mare? Se va afia: Pleaca Ion la mare S se afieze n ordine alfabetic cuvintele formate din dou litere dintr-un text dat. Exemplu: Date de intrare: tu ai fost la mare Date de ieire ai la tu.

16

5) Se d un text cu cel mult 255 caractere, litere mici i mari ale alfabetului englez i spaii. Se cere s se afieze 6) 7)
cuvintele din text de lungime maxim. Exemplu: Ionica vrea sa mearga cu Mircea al mare, se va afia: Ionica mearga Mircea. Se introduc de la tastatur dou texte prin dou variabile de tip string. Se cere s se afieze cuvintele comune celor dou texte, tiind c dou cuvinte pot fi separate prin unul sau mai multe spaii. Exemplu: pentru textele: Ion merge la peste i Dan merge la Ion, se va afia : Ion merge la. Se d un text t format din mai multe cuvinte (maxim 100 de cuvinte sau 1000 de caractere) separate prin spaiu citit de la tastatur. S se introduc ntr-un dicionar toate cuvintele distincte din acel text. Acest dictionar va fi ordonat alfabetic n sens cresctor de la A la Z. Exemplu: "acesta este un text de proba cu doi de este", afiare: acesta cu de doi este proba text un. Observaii: textul se introduce de la tastatur fr ghilimele i se d Enter pentru a termina introducerea lui in memorie; nu se introduc caractere speciale, sau chiar daca textul are semne de punctuaie, se va considera ca separator intre cuvinte spaiul; cuvintele n dicionar vor fi scrise cu liter mic Alte tipuri de date structurate Tipul mulime

IX.

1) Se dau n (1<=n<=30) iruri de caractere (litere mici i mari ale alfabetului englez i cifrele sistemului
zecimal). S se determine caracterele folosite n toate irurile de caractere. Exemplu: Date de intrare n=3 siruri Abcdammbc123ads Sgssa89822221iuAsd Hgds921kjdkAsda Se va afia A d s 1 2. 2) Se dau dou mulimi a i b cu componente numere naturale mai mici sau egale cu 255. Se cere s se determine mulimile: ab, a a-b. Exemplu: Date de intrare: multimea a 1 2 3 4 7 5 multimea b 4 5 8 b, Date de ieire: reuniune 1 2 3 4 5 7 8 intersectie 4 5 diferenta 1 2 3 7. 3) Se dau n, 1<=n<=30, mulimi cu elemente numere naturale mai mici sau egale cu 255. Se cere se afle elementele interseciei mulimilor. Exemplu: Date de intrare: m=3 multime1 1 2 3 4 5 multime2 2 4 7 1 multime3 4 5 2 9 Date de ieire: intersectie 2 4. 4) Se citesc, din linii diferite, n cuvinte cuprinznd litere mici ale alfabetului latin. Se cere s se afieze literele distincte din fiecare cuvnt citit i literele distincte ntlnite n toate cele n cuvinte. Exemplu:Date de intrare: numar cuvinte=2 cuvant1: backspace cuvant2: program Date de ieire: litere cuvant1: a b c e k p s litere cuvant2: a g m o p r litere total: a b c e g k m o p r s. 5) Se dau dou numere n baza 16 cu cel mult 255 cifre. Se cere s se afieze cifrele comune celor dou numere. Exemplu: Date de intrare: 1A67Fb 56DB345AA Date de ieire: 6 A B. 6) Se introduc numele medicamentelor indicate i contraindicate n 10 boli. Se cere s se afieze numele medicamentelor care se pot administra unui pacient care sufer de mai multe boli din cele 10. 7) Se consider maxim 10 mulimi de numere de tip byte. S se verifice dac sunt disjuncte.

Tipul nregistrare 1) Elevii dintr-o coal vor s fac un top al celor mai bune 10 melodii pentru fiecare sptmn. Ajutai-i s realizeze un program prin care se introduc n date de forma titlu melodie, interpret, numr puncte acumulate, numr puncte primite i care afieaz primele 10 titluri, n ordinea descresctoare a punctelor. 2) Dintr-un lot de n persoane care s-au nregistrat cu nume i data naterii, trebuie selectate acele persoane care au mplinit 18 ani la 1 ianuarie 2006. Datele de intrare cuprind valoarea lui n i cele n perechi de date de forma nume yy mm dd i sunt coninute de fiierul date.int, iar datele de ieire conin numele cerute afiate pe vertical pe ecran. 3) La o staie meteo se trec datele n fiierul temp.int sub forma data temperatura. S se prelucreze aceste date afindu-se zilele n care temperatura a fost maxim.

17

4)

ntr-o clas de maxim 25 de elevi, fiecare a primit cte unul din calificativele suficient, bine i foarte bine la fiecare din cele 10 materii. Datele se introduc n calculator sub forma: nume elev numr de calificative suficient numr de calificative bine numr de calificative foarte bine. S se afieze n ordine descresctoare statistica notrii (numrul de suficient, de bine i foarte bine) i numele elevului cu cele mai multe calificative fb. Stive, liste, cozi alocate static

1) Se consider o stiv iniial vid, care poate conine litere. Ilustrai printr-un program efectul urmtoarelor 2)

operaii: insereaz R, insereaz A, insereaz M, insereaz A, extrage un element, extrage un element, insereaz V. Se consider coada ... P A S C A L ,,, (P reprezint nceputul iar L sfritul cozii). Ilustrai efectul urmtoarelor operaii: extrage un element, extrage un element, insereaz C, extrage un element, insereaz U, insereaz L. consider urmtorul sistem de manevrare a vagoanelor ntr-un depou. Din dreapta, intr n depou n vagoane numerotate de la 1 la n, n ordinea cresctoare a numerelor. Construii un tren cu vagoanele numerotate n ordine descresctoare, de la n la 1.

3) Se
Linie de ieire Linie de intrare Depou

4) n condiiile problemei precedente, dorim s construim un tren special: vagoanele cu numr pa rvor merge la
un moment dat n alt direcie dect cele impare, din acest motiv toate vagoanele cu numr par trebuie s fie plasate la nceputul trenului n ordinea cresctoare a numerelor lor, iar cele cu numr impar la sfritul trenului, n ordinea descresctoare a numerelor lor. Cum procedai? Se citete de pe o linie de la tastatur o succesiune de paranteze rotunde deschise i nchise pn la ntlnirea caracterului punct. ntlnirea unei paranteze deschise determin introducerea acesteia ntr-o coad. ntlnirea uneia nchise determin extragerea unui element din coad- Verificai dac parantezele din ir se nchid corect i determinai dimensiunea maxim a cozii (numrul maxim de paranteze deschise n coad la un moment dat). Exemple: Date de intrare: (()). Date de ieire: corect dim max=2; date de intrare (((). Date de ieire: incorect dim max=3; date de intrare: ()). Date de ieire: incorect dim max=1. Se consider un caroiaj dreptunghiular cu n linii i m coloane, n care pe anumite poziii sunt plasate obstacole. n poziia iniial (x0,y0) se afl plasat un mobil. S se determine, pentru toate poziiile n care ajunge mobilul, distana minim de la poziia iniial a mobilului msurat n deplasri elementare (o deplasare elementar este o deplasare cu o poziie la stnga, la dreapta, sus sau jos). Exemplu: Date de intrare: m=5 n=5 x0=3 y0=3 pozitie obstacole 12 Date de ieire: -2 -1 -1 5 4 unde -1=obstacol, -2=inaccesibil 13 -1 2 1 -1 3 24 2 1 0 1 2 43 3 2 -1 -1 3 44 4 3 4 5 4 21

5)

6)

X.

Ali algoritmi de lucru cu date structurate Interclasarea

1) Se cere s se interclaseze dou iruri de numere reale, ordonate cresctor. Prin interclasare se nelege

crearea unui nou ir ordonat , format din elementele irurilor date. Exemplu: Date de intrare: nr. elemente din primul sir=3, primul sir=3 6 9, nr. elemente din al doilea sir=4, al doilea sir=1 2 5 9. Date de iesire: 1 2 3 5 6 9.

18

2) Pe dou rafturi din bibliotec avei mai multe cri. Se cunoate inltimea n cm a fiecrei cri i faptul c, pe
fiecare raft, crile sunt aranjate de la stnga la dreapta n ordine descresctoare a nlimii. Mutai toate crile pe un al treilea raft pe care s fie ordonate tot descresctor. Afiati nlimile crilor de pe acest al treilea raft. Exemplu: Date de intrare: numar carti pe primul raft: 5 inaltimi: 18 18 17 15 15 numar carti pe al doilea raft: 3 inaltimi: 15 14 12 Date de ieire: 18 18 17 15 15 15 14 12. Parcurgere circular a unui ir

1) Numerele de la 1 la n sunt aezate n ordine cresctoare pe circumferina unui cerc astfel c n ajunge situat

lng 1. ncepnd cu numrul s se marcheaz numerele din k n k, n ordinea cresctoare a lor, pn cnd un numr este marcat de 2 ori. Cte numere au rmas nemarcate? 2) Oaza Lacotrop din deertul Etpas este nconjurat de n portocali care conin fructe, dispui sub form de cerc i numerotai de la 1 la n, n sensul acelor de ceas. Maimua Gino pornete de la un portocal m i numr, n sensul acelor de ceas, k portocali care conin fructe. Culege toate fructele din portocaul de pe poziia k. Continu numrtoarea ncepnd cu portocalul urmtor celui din care a cules, dar care conine fructe. n final rmne un singur portocal p necules, n care Gino i face adpost. Cerin: Cu ce portocal m trebuie s nceap numrtoarea pentru ca s-i fac adpost exact n portocalul p?. Date de intrare: fiierul portocal.in conine pe o singur linie, numerele n, k i p, separate printr-un spaiu. Date de ieire: fiierul portocal.out conine pe prima linie numrul natural m cerut. Restricii: 2<=n<=1000, 1<=k<=10000, 1<=p<=1000. Exemplu: portocal.in 6 8 5 portocal.out 3. (ONI, Focani, clasa a VII-a, 2003) 3) Jocul Nu te supra, frate! se joac de ctre doi jucatori. Pe o pist circular cu n csue numerotate de la 1 la n, n ordinea dat de sensul acelor de ceasornic, se afl nscrise valorile 0, 1 i 10. Cei doi juctori vor avea fiecare cte un pion i vor porni pe rnd, din csua 1. ncepe juctorul 1. Fiecare juctor va muta pionul su conform cu valoarea obinut prin aruncarea zarului, cumulnd sau pierznd puncte n funcie de csua n care ajunge. Fiecare juctor citete valoarea zarului cnd i vine rdul. Jocul are urmatoarele reguli: 1. Ctigtorul poate fi:

2.

3. - ajunge ntr-o csu cu valoarea 0 (zero) - juctorul este penalizat, pierde toate punctele acumulate i
reia jocul din pozitia 1 - ajunge ntr-o csu cu valoarea 10 - primete un bonus de 10 puncte - ajunge ntr-o csu cu valoarea 1 - primete 1 punct - ajunge ntr-o csu n care se afl cellalt pion (cu excepia csuei 1, cnd ctig) - juctorul care ajunge ultimul este penalizat, pierde toate punctele i reia jocul de la csua 1. Cerin Determinai juctorul ctigtor, poziiile fiecrui juctor pe cerc i punctajul fiecrui juctor. Date de intrare n fiierul JOC.IN se dau: - Pe prima linie numrul n al csuelor din cerc. - Linia a doua conine o succesiune de n valori (0, 1 sau 10), separate printr-un spaiu, reprezentnd valoarea fiecrei csue. - Linia a treia conine numrul de aruncri cu zarul - Linia a patra conine o succesiune de valori ntregi cuprinse ntre 1 i 6, separate printr-un spaiu, reprezentnd aruncarea cu zarul. Date de ieire Fiierul JOC.OUT va conine 3 linii cu urmtoarele informaii: - pe prima linie: juctorul ctigtor - pe a doua linie: poziia i punctajul juctorului numrul 1 - pe a treia linie: poziia i punctajul juctorului numrul 2.

juctorul care ajunge primul din nou n csua cu numrul 1, indiferent de punctaj (exceptnd cazul n care are punctaj 0) n cazul n care se termin irul aruncrilor cu zarul, nseamn c juctorii s-au plictisit i ctig cel care a cumulat mai multe puncte, iar dac au punctaje egale ctig cel care se afl n csua cu numr de ordine mai mare. Dup aruncarea zarului, juctorul mut pionul cu attea csue ct indic valoarea zarului, n ordinea acelor de ceasornic, ncepnd numrtoarea cu csua urmtoare poziiei pe care se afl. Prima csu nu conine valoarea 0 (zero). Dup mutare pot apare urmtoarele situaii:

19

Restricii 7<=n<=100 Exemple JOC.IN 10 1 1 1 1 1 10 0 1 1 0 8 36241353 JOC.IN 7 1 1 0 10 1 10 1 16 6424621356332145 JOC.IN 12 1 10 1 1 0 10 1 1 1 10 0 1 4 5633

JOC.OUT 2 6 10 13 JOC.OUT 1 13 10 JOC.OUT 2 9 11 10 11 (OJI, clasa a VII-a, 2004) Operaii cu numere mari

7) S se afieze toate valorile 2n , pentru n cuprins ntre 31 i 50.


7) S se fac un program care s afieze pe ecran suma a dou numere ntregi, de maxim 100 de cifre, citite din fiierul termeni.int. 7) Se citesc dou numere naturale ca iruri de caractere, avnd lungimea maxim de 25. S se afieze produsul numerelor sau un mesaj de eroare dac datele de intrare sunt eronate. Datele de intrare pot fi citite de la tastatur sau din fiierul de tip text INT.INP care conine dou linii, cte un numr pe linie. Datele de ieire pot fi afiate pe ecran sau scrise n fiierul de tip text IES.OUT, precizndu-se produsul obinut. Exemplu: dac numerele citite sunt: 13478654 54390123 se va afia produsul 733105648934442. 7) Se citete un numr natural foarte mare, de maxim 50 cifre. Verificai dac este palindrom afind un mesaj corespunztor. Modelarea unor relaii

1) Numim celebritate o persoan care este cunoscut de toat lumea, dar nu cunoate pe nimeni. Se pune
problema de a identifica o celebritate, dac exist, ntr-un grup de n persoane pentru care se cunosc relaiile dintre persoane. 2) Pe o matrice de m linii i n coloane, fie o populaie de virui care evolueaz astfel: un virus moare izolat cnd are mai puin de 2 vecini i sufocat cnd are mai mult de 3 vecini; un virus apare pe un loc liber dac are 2 sau 3 vecini; un virus triete 3 generaii dac are condiii prielnice de mediu. Virusul de generaie i se codific prin i, cu 1<=i<=3. Inexistena virusului se codific prin 0. S se afieze configuraia populaiei de virui dup g generaii. Observaie: un virus poate avea cel mult 4 vecini: N, S, E, V. Datele de intrare se citesc din fiierul virus. inp cu urmtoarea structur: m n g a[1,1] a[1,2] a[1,n] a[2,1] a[2,2] a[2,n] a[m,1] a[m,2] a[m,n] Datele de ieire se trec n fiierul virus.out. Exemplu: Virus.inp 3 3 2 1 0 2 2 3 0 1 3 2 Virus.out 0 3 0 0 1 0 2 0 0

20

(CNI, Piatra Neam, clasa a VIII-a, 2001) 3) La un simpozion particip n persoane. Unele persoane cunosc alte persoane din sal, altele nu. Calculatorul care monitorizeaz reuniunea trebuie s comunice care este cea mai cunoscut persoan. Pentru aceasta persoanele se numeroteaz de la 1 la n i se introduc n calculator perechi de forma i, j care semnific faptul c persoana i cunoate persoana j, pn la marcajul de sfrit de fiier. Determinarea unor secvene maximale

1) ntr-un text de maxim 255 caractere, s se afieze cea mai lung secven de caractere identice. Dac sunt
mai multe secvene, se va afia prima. Exemplu: text: aabsssdadaaab se va afia sss.

2) Se consider un ir de maxim 255 litere c1, c2, , cn nu neaprat distincte, din alfabetul englez. Cerine: a)
s se determine poziia p i lungimea l a secvenei maxime format din litere consecutive egale din irul dat (1<=p, 1<=n); b) s se determine literele distincte i frecvena lor de apariie n irul iniial; c) din irul literelor distincte de la punctul b), s se afieze cte posibiliti de aranjare a 3 litere diferite sunt. Date de intrare se citesc din fiierul olimp71.inp ce are urmtoarea structur: n c1 c2 cn. Datele de ieire sw vor afia pe ecran. Exemplu: olimp71.inp 6 abbacx, se va afia a) p=2 l=2 b) a b c x 2 2 1 1 c) 24 (CNI, Piatra-Neam, clasa a VII-a, 2001) Probleme de geometrie

1) Din fiierul dreptunghi.int se citesc coordonatele capetelor diagonalei unui dreptunghi cu laturile paralele cu

axele de coordonate.. Scriei n fiierul puncte.out cte puncte de coordonate ntregi sunt n interiorul sau pe laturile dreptunghiului. Exemplu: fiierul dreptunghi.int: -2.5 3 fiierul puncte.out 4 -1.75 35 2) Cte puncte cu coordonate ntregi sunt continute ntr-o sfer de raz R cu centrul n originea sistemului de cooronate? Se consider c R este un numr natural, R<=30. Amintim c distana dintre un punct cu coordonatele (x,y,z) i originea sistemului de coordonate se determin dup formula d=sqrt(x*x+y*y+z*z). Exemplu: pentru R=4, programul va afia 257. (ORI, Moldova, clasele VI-IX, 2001) 3) Se citesc de la tastatur trei numere reale pozitive, care reprezint lungimile laturilor unui triunghi. Scriei un program care s determine aria i lungimile nlimilor triunghiului. Specificai i natura acestui triunghi: echilateral, isoscel, dreptunghic, dreptunghic isoscel sau oarecare. 4) Se dau n puncte n plan p1, p2, , pn prin coordonatele lor carteziene i un dreptunghi cu laturile paralele cu axele prin coordonatele colului din stnga sus i colului din dreapta jos. Cerin: determinai numrul de puncte dintre p1, p2, , pn care sunt n interiorul dreptunghiului, respectiv numrul de puncte de pe cele dou diagonale. Date de intrare: n fiierul puncte.in pe prima linie se afl n, pe urmtoarele n linii coordonatele punctelor p1, p2, pn separate printr-un spaiu, iar pe urmtoarele dou linii se afl coordonatele colurilor dreptunghiului. Date de ieire: n fiierul text puncte.out se vor scrie numerele cerute cu un spaiu ntre ele. Restricii: 0<n<100, coordonatele sunt numere naturale < 3000. Exemplu: Puncte.in puncte.out 8 5 4 34 24 56 51 42 06 22 32 15 51 (CNI, Satu-Mare, clasa a VIII-a, 2003) 5) n curtea din spatele casei unui gospodar triau nestingherite mai multe familii de furnicue, organizate n mai multe muuroaie. Una dintre furnicue l aude ntr-o zi pe gospodar spunndu-i soiei sale c vrea s amplaseze un obiect chiar n zona n care se aflau muuroaiele. Furnicua le anun i pe celelalte, ns netiind s aprecieze exact unde va fi amplasat acel obiect, furnicuele au nevoie de ajutorul vostru. Dac afl care din muuroaie se afl n pericol, ele se pot adposti fr grij n cele care sunt n siguran. Cunoscndu-

21

se numrul de puncte (muuroaie) M, coordonatele x i y ale celor M puncte prin numrul vrfurilor poligonului (obiectului) i coordonatele vrfurilor, determinai muuroaiele care sunt n pericol s fie distruse de obiectul care va fi amplasat de gospodar. Date de intrare: Fiierul de intrare furnici.in conine pe prima linie un numr ntreg pozitiv M, care reprezint numrul de muuroaie. Pe urmtoarele M linii se gsesc cte dou numere ntregi pozitive, separate printr-un singur spaiu, care reprezint coordonatele punctelor (muuroaielor). Urmtoarea linie conine un singur numr ntreg pozitiv N care reprezint numrul de vrfuri ale poligonului. Cele N linii care urmeaz conin cte dou numere ntregi pozitive, separate prin cte un spaiu, care reprezint coordonatele pentru vrfurile poligonului. Poligonul poate fi convex sau concav. Date de ieire: Fiierul de ieire furnici.out va conine M linii. Pe fiecare dintre acestea se va scrie unul dintre mesajele "in siguranta!" sau "in pericol" dac muuroaiele de furnici din fiierul de intrare se gsesc n exteriorul, respectiv n interiorul poligonului. Punctele corespunztoare muuroaielor vor fi tratate n ordinea n care apar n fiierul de intrare. Restricii i precizri: se consider c un muuroi este n pericol atunci cnd coordonatele sale sunt coninute n interiorul poligonului sau cnd muuroiul se gsete pe una dintre laturile acestuia;3 <N <50; 1 <M <100. Exemplu furnici.in furnici.out 5 in siguranta! 80 100 in pericol! 400 170 in siguranta! 230 160 in siguranta! 340 347 in pericol 230 350 6 100 165 380 200 400 140 520 350 395 310 220 360 (ginfo ian. 2004) 6) Introducei n calculator coordonatele, abscisa i ordonata, a n puncte astfel nct s nu existe patru puncte coliniare. Determinai numrul de paralelograme care se pot forma unind cte patru din aceste puncte. Datele de intrare se citesc din fiierul puncte.int care va avea pe prima linie numrul n i pe urmtoarele n linii coordonatele punctelor separate prin spaiu. Afiarea rezultatului se va face pe ecran. Exemplu: puncte.int 7 22 33 54 16 82 71 65 pe ecran 6

7) Se dau n puncte n plan prin coordonatele lor (numere naturale mai mici sau egale cu 50). S se determine

centrul i raza unui cerc care s conin toate punctele date n interior sau pe circumferin, avnd centrul n unul din punctele introduse. 8) S se calculeze aria unui poligon convex A1, A2,, An (3<=n<=100) dat prin coordonatele vrfurilor sale, numere naturale mai mici dect 50. Indicaie: se va descompune poligonul in triunghiuri de forma A1AiAi+1. 9) Se dau n, n>=3, puncte n plan prin coordonatele lor numere ntregi din intervalul [0,500]. S se afieze numrul de triunghiuri isoscele care se pot forma unind cte trei din cele n puncte. 10) Se dau n, n>=3, puncte ]n plan prin coordonatele lor, numere ntregi mai mici dect 50. S se afieze tripletele de coordonate ale punctelor care determin triunghiuri de arie maxim. 11) Se dau n, n >=4, puncte n plan prin coordonatele i culoarea lor (numere naturale mai mici sau egale cu 50). S se afieze coordonatele vrfurilor dreptunghiurilor cu laturile paralele cu axele ale cror vrfuri au aceeai culoare.

22

12) Se d un dreptunghi prin coordonatele vrfurilor sus-stnga i jos-dreapta, i n puncte n plan prin
coordonatele lor numere naturale mai mici dect 500. Se cere s se determine numrul de puncte care se afl n interiorul dreptunghiului, pe dreptunghi i n exteriorul lui. XI. Utilizarea subprogramelor Proceduri 1) Pentru citirea a n date de forma nume elev, nota1, nota2, nota3 i pentru calculul mediei fiecrui elev, s se scrie procedura Citire. S se realizeze urmtorul cap de tabel ntr-o procedur Tabel: *************************** * Nume elev * Medie * *************************** i s se afieze rezultate printr-o procedur Scriere. S se modifice procedura Tabel astfel nct s permit realizarea capului de tabel utiliznd n locul * un alt caracter, citit de la tastatur n programul principal. 2) S se ordoneze cresctor irul format din n nume de elevi folosind o procedur cu doi parametrii, de interschimbare a valorilor. 3) S se listeze primele n numere prime, verificnd calitatea de prim a unui numr ntr-o procedur cu un parametru. 4) Se introduc numrtorul i numitorul a dou fracii. S se afieze cele dou fracii i suma lor sub forma ireductibil. Se va folosi o procedur cu doi parametrii, de simplificare a unei fracii. 5) Se introduc n date de forma nume elev, punctaj. Uiliznd procedura Meniu s se afieze un meniu de forma 1. Afisare in ordine alfabetica 2. Afisare in ordinea descrescatoare a punctajelor prin care utilizatorul poate alege modul de vizualizare al datelor introduse. Afiarea datelor i sortarea lor se va face prin procedurile Afisare i Sortare. 6) Se introduc dou numere ntregi. S se afieze n cte zerouri se termin produsul lor, fr a calcula produsul. Se va ine seama c un zero la sfrit se obine nmulind un 2 cu un 5 n descompunere celor dou numere n factori primi. Se va crea o procedur cu doi parametrii, de determinare a exponentului la care apare un numr prim n descompunerea n factori primi a unui numr. 7) Se introduc dou numere n i k. Utiliznd o procedur de calculul puterii unui numr, s se afieze n la puterea k. Funcii 1) S se verifice dac numele a k elevi se afl ntr-un ir de n nume, utiliznd o funcie Cautare. 2) Citii un ir de n numere ntregi i afiai cea mai mare cifr a numerelor de pe poziii pare i cea mai mic cifr a celor de pe poziii impare. Se va realiza cte o funcie pentru determinarea cifrei maximale i a celei minimale. XII. Fiiere tip text

1) S se determine i s se afieze numrul de linii dintr-un fiier tip text i numrul de caractere de pe fiecare linie. 2) S se verifice dac ntr-un fiier tip text sunt linii albe, care conin numai caracterele spaiu i TAB 3) S se afieze pe ecran un fiier text, linie cu linie. 4) S se transfere coninutul unui fiier tip text ntr-un alt fiier tip text, sub aceeai form. 7) S se fac un top al melodiilor (vezi problema 1 din Capitolul IX, Tipul nregistrare) utiliznd un fiier pentru citirea titlului, a interpretului i a punctajului acumulat. Punctajul sptmnal obinut se va citi de la tastatur. Afiarea topului se va face pe ecran. Se va actualiza cmpul puntaj acumulat din fiierul de intrare. XIII. Pregtire pentru faza naional a ONI i CNI Clasa a V-a

23

1) n Orintia, exist o floare care face strict x semine . Fiecare smn este fertil i n decurs de un an, din ea

se dezvolt cte o floare care va face alte x semine fertile. Dup k ani, florile orintiene dispar, dar rmn urmaele lor. Grdinarul Perolino, pe care l intereseaz cte flori vor fi n grdina lui dup z ani, tiind c n primul an au fost f flori de tipul amintit, v roag s l ajutai la numrarea florilor. Date de intrare f: numrul iniial de flori x : numrul de semine produse de fiecare floare k : durata de via a unei flori z : anul n care grdinarul face recensmntul Date de ieire : t : numrul de flori aflate n grdin la sfritul anului z. Restricii:1<=f<=10, 1<=x<=6, 1<=k<=5, 1<z<5. Exemplu: Intrri f=1 x=2 k=3 z=3 Ieire 8 flori. Explicaie: anul 1 1 floare 2 semine anul 2 3 flori 6 semine anul 3 8 flori (3 + 6 - 1) (CNI, clasa a V-a, Satu-Mare, 2004) 2) Nicu are N dischete cu aceeai capacitate 1400 Ko. Dischetele sunt numerotate cu 1, 2, , N i pe fiecare dischet are o poriune din ea ocupat cu diverse fiiere. Dischetele 1, 2, , N au ocupate o1, o2, , oN Ko fiecare. Nicu afl c prietenul su George are un joc frumos de dimensiune x Ko. Dup multe negocieri cu George, Nicu are acceptul de a copia jocul. Cerin: Din cele N dischete alegei ct mai puine pentru a copia jocul (dac este posibil). Cnd nu este posibil afiai mesajul Nu se poate copia jocul! (CNI Satu-Mare 2003 clasa a V-a) 3) Afiai primele dou numere prime alturate dintre cele n numere ntregi date. Cnd acestea nu exist, afiai mesajul: fr soluie ( n<= 20). Exemplu: Pentru n=7 i numerele 1 18 41 13 9 7 5 se va afia perechea 41 13 pentru n=6 i numerele 2 8 7 2 5 4 se va afia perechea 7 2 pentru n=5 i numerele 4 12 8 5 4 se va afia mesajul fr soluie (CNI Satu-Mare 2002 clasa a V-a) 4) Pentru un n natural dat, sa se determine toate numerele prime mai mici sau egale cu n pentru care oglinditul corespunztor este tot un numr prim (n<100). Exemplu: n=20, printre numerele gsite sunt i 13, cu oglinditul 31, i 17, cu oglinditul 71. (CNI Piatra-Neam 2001, clasa a V-a) 5) Un schior i dorete un traseu care s conin cel puin un pisc (vrf) i cel puin o vale. Dac traseul este caracterizat (ca altitudini relative) de cifrele componente ale unui numr dat, ajutai-l s stabileasc dac l parcurge sau nu. Exemplu: traseul 5745 poate fi parcurs, traseele 123 i 68556 nu pot fi parcurse. (CNI Piatra-Neam 2001, clasa a V-a) 6) Se consider un ir cu n numere naturale mai mici dect 32000, n < 30. Se cere: a) s se afieze un numr din ir care are n scrierea sa ct mai multe cifre distincte. Dac exist mai multe numere cu aceast proprietate se va afia primul element dintre ele. b) s se determine o succesiune cu numr maxim de componente din ir care are proprietatea c fiecare component a succesiunii are acelai numr de cifre distincte n scrierea sa. Exemplu: pentru n=9 i irul 865, 15, 144, 231, 1591, 1998, 6235, 14, 4201se va afia a) 6235 b) 231 1591 1998 (CNI 1998 clasa a Va) 7) Se citesc n, numr natural mai mic dect 100, i n numere naturale nenule mai mici dect 30000. Se cer: a) ultima cifr a numrului x[1]+x[2]+...x[n] b) ultima cifr a numrului x[1] x[2]+x[3]+...x[n] Exemplu: pentru n=3 i numerele 11 4 3 se va afia a) 8 b) 1 (CNI 1998 clasa a V-a) 8) Se dau patru numere naturale a, b, c, d. S se afieze sub form de fracie ireductibil cea mai mic fracie subunitar i cea mai mic fracie supraunitar folosind cele patru numere. Exemplu: pentru a=2 b=5 c=6 d=16 se vor afia fraciile 1/8 i 6/5 (CNI Sinaia 1997 clasa a V-a) 9) Se consider n stlpi de nlimi h[1], h[2], h[3]... h[n] metri. La baza fiecrui stlp se afl cte un melc codificat prin numrul stlpului. Fiecare melc i urc ziua p[i] metri i coboar noaptea q[i] metri (p[i]>=q[i]). S se afieze melcii n ordinea n care ating vrfurile stlpilor. Exemplu: pentru n=3 i h[1]=2 p[1]=1 q[1]=0, h[2]=4 p[2]=4 q[2]=4, h[3]=5 p[3]=1 q[3]=0 se va afia 2 1 3. (CNI Sinaia 1997 clasa a Va) 10) Fie A un ir de n numere naturale, 8<=n<=256, i p un numr natural dat. a) s se precizeze dac p este numr prim b) s se afieze de cte ori apare p n A i pe ce poziii c) dac numrul p nu apare

24

n A, s se nsereze numrul p pe o poziie k, 1<=k<=n, unde k este dat de la tastatur, deplasnd spre dreapta elementele aflate pe poziiile k+j, 0<=j<=n-k+1. (CNI Buteni 1994 clasa a V-a) 11) De la tastatur se citesc n elemente ale unui ir de numere. S se scrie un program care interschimb dou secvene de lungimi l1 i l2 care ncep din poziiile p1, reapectiv p2. Elementele care nu sunt cuprinse n cele dou secvene pot fi mutate astfel nct interschimbarea s se poat face. Exemplu: pentru n=9, irul 1,2,3,4,5,6,7,8,9, p1=2 l1=2 p2=6 l2=3, rezultatul este 1 6 7 8 4 5 2 3 9. (CNI Nvodari 1993 clasa a V-a) 12) Dndu-se dou numere n, k s se determine 2*k numere prime situate n centrul listei numerelor prime din intervalul [1,n], n cazul n care n interval este un numr par de numere prime, i 2*k-1 numere din centrul listei de numere prime, n cazul n care numrul de numere prime este impar. Dac numrul 2*k ( resp. 2*k-1) este mai mare dect numrul de numere prime din intervalul considerat, atunci se vor afia toate numerele prime din interval. Restricii: 1<=n<=10000, 1<=k<=30, k<n. Exemplu: n=21 k=2 se va afisa 5 7 11 13 ( ONI, clasa a V-a, Focani, 2003) 13) n fiecare zi nelucrtoare din sptmn Pinochio spune cte o minciun datorit creia nasul acestuia crete cu cte p cm pe zi. Smbta i duminica, cnd vine bunicul Gepeto acas, pentru a nu-l supra prea tare, Pinochio reuete s nu spun nici o minciun, ba chiar uitndu-se n oglind observ c n fiecare din aceste zile lungimea nasului su scade cu cte 1 cm pe zi. Cnd ncepe o nou sptmn, rmnnd singur acas Pinochio continu irul minciunilor. Care este dimensiunea nasului lui Pinochio dup k zile (zilele ncep cu luni ) tiind c iniial nasul su msura n cm? Exemplu: pentru n=2 p=1 k=8 se va afia 6 cm. (ONI 2003 clasa a V-a) 14) Gigel este un tip ciudat. Lui i place s i impresioneze colegii exprimnd duratele numai n secunde. De exemplu, dac l vei ntreba ct e ceasul el i va rspunde cte secunde s-au scurs de la ora 0.00 din ziua respectiv. Dac ai s-l ntrebi ce vrst are, el i va rspunde cte secunde au trecut de cnd s-a nscut. Colegii lui Gigel au hotrt c nu e cazul s se lase impresionai; ca urmare au nevoie de un program care s citeasc de la tastatur un numr natural N (N2000000000) care reprezint vrsta lui Gigel exprimat n secunde i care va afia pe ecran ci ani, cte luni i cte zile are Gigel (orele i minutele rmase sunt considerate nesemnificative). Scriei acest program pentru colegii lui Gigel! Nu uitai c anii biseci sunt cei divizibili cu 4, dar nedivizibili cu 100 sau divizibili cu 400. De exemplu 1992 i 2000 au fost ani biseci. Dar anul 1900 nu a fost bisect. Anii biseci au 366 de zile, spre deosebire de ceilali care au doar 365. Considerm c ne aflm n ultima zi de coal (15 iunie 2002). Exemplu :Pentru N=69206400 programul va afia :Gigel are 2 ani, 2 luni si 10 zile. (ONI Glciuc 2002 clasa a V-a) 15) Fie un numr p (1p4) dat de la tastatur. S se scrie pe ecran toate numerele n de p cifre cu proprietile urmtoare: 1) n-1 i n+1 sunt numere prime 2) suma cifrelor lui n este tot un numr prim. De exemplu, pentru p=2, numrul n=12 face parte din soluie deoarece n-1=11, n+1=13 sunt prime iar suma cifrelor lui n este 1+2=3, tot un numar prim. Dac nu exist nici un numr n cu p cifre care s verifice aceste proprieti, se va da un mesaj. (Marele Premiu PACO, 2001) 16) Copa bate la poarta Orintiei, dar poarta e programat s nu se deschid dect dup ce se introduc, ntr-o caset cu s spaii (3<=s<=10), s cifre strigate de portar. Portarul a strigat 1, Copa a butonat 1, n primul spaiu de la stnga la dreapta. Portarul a strigat 0, i n timp ce Copa butona 0 n spaiul al doilea, 1 a devenit 2 n spaiul anterior. Portarul a strigat 7. Copa scria 7 n spaiul al treilea, iar n primul spaiu 2 devine 3, iar n al doilea spaiu 0 devine 1. i tot aa, pn la al s-lea spaiu, cnd Copa reuete s scrie toate cifrele i apare tot codul. i poarta se deschide, dar surpriz, mai era o poart, iar codul acesteia, N, era cel mai mic numr format din ct mai multe dintre cifrele codului anterior, astfel nct nici o cifr s nu se repete. Obs.: Dup 9 urmeaz 0. Disperat de atta informatizare, Copa v cere sprijinul s calculai cel de-al doilea cod N. Exemplu: Date de intrare s=10 cifre strigate de portar: 1 0 7 9 7 3 6 9 4 6 Date de ieire 102456789 (ONI Focani 2003 clasa a V-a ) Clasa a VI-a 1) Doi copii vopsesc un gard din scnduri pe care le vom numerota de la 1 la n astfel: primul ia o cutie de vopsea roie cu care vopsete scndurile cu numrul p, 2p, 3p, etc. Al doilea procedeaz la fel, ncepe de la acelai capt al gardului dar ia o cutie de vopsea albastr i vopsete din q n q scnduri. Astfel, cnd vor termina de vopsit, gardul va avea multe scnduri nevopsite, unele scnduri vopsite n rou, altele n albastru,

25

2)

3)

4)

5)

6)

iar altele n violet. Cunoscnd numerele n, p i q afiai: a) cte scnduri rmn nevopsite b) cte scnduri sunt vopsite n rou c) cte scnduri sunt vopsite n albastru d) cte scnduri sunt vopsite n violet (ONI 2002 clasa a VI-a) Se d un vector cu n (1n30) elemente numere naturale, cu maxim 8 cifre. Se cere: a) S se afieze cte elemente din vector sunt valori-pant (numere care privite de la stnga sau de la dreapta au cifrele n ordine cresctoare, de exemplu 136, 931). b) S se afieze cea mai mare i cea mai mic valoare-pant i poziiile pe care se afl acestea n vector. Exemplu: Dac se citete n=6 i elementele 126 9621 1212 3678 9231 9621 , programul va afia: numar valori-panta= 4 cea mai mare valoare-panta=9621 pe pozitiile 2 6 cea mai mica valoare-panta=126 pe pozitiile 1. (ONI 2003 clasa VI-a) Fratele cel mic al lui Gigel primise de la Mo Crciun un joc de cuburi colorate. Gigel l-ar fi nsoit pe cel mic la joc, mai ales cnd acesta nira cele n cuburi unul dup altul, iar lui i treceau prin cap tot felul de cerine pe care profesorul lui de informatic le-ar fi putut scorni: a. s vedem cte culori sunt n total; b. care culoare este folosit pentru cele mai multe cuburi; c. ce cub ar trebui scos din ir astfel nct s se formeze din cuburile rmase un ir ct mai lung de cuburi alturate de aceeai culoare. Se citesc de la tastatur n, numrul de cuburi, n<50, i o succesiune de n numere de culori, de la 1 la 10. Dac la cerinele a, b, c sunt mai multe soluii, se vor preciza toate. Exemplu: n=15 culorile 5 2 5 2 2 3 3 2 3 5 3 3 3 2 2 se va afia a. 3 b. 2 3 c. Pozitia 10. (ONI Focani 2003 clasa a VI-a) Profesorul de sport al clasei a VI-a B de la o coal din Focani vrea la nceputul orei s aeze elevii pe terenul de sport, la raport, ntr-o anumit ordine. Pentru acest lucru, elevii sunt bine instruii, astfel nct, aeznd pe ultimul rnd n elevi, celelalte rnduri de elevi se creeaz singure dup regula: - pe poziia i a unui rnd se va aeza un elev, dup cum urmeaz: dac pe rndul din spate, pe poziiile i i i+1 stau fie numai biei, fie numai fete, atunci se va aeza o fat, iar dac pe aceste poziii stau elevi de sex opus, se va aeza un biat. Conform acestei reguli, pe rndul cu numrul de ordine i (i{1, 2, , n}) se vor aeza i elevi. Numrul de elevi din clas este n(n+1)/2. Cerin: Pentru n dat i un ir de n numere 0 i 1 (0 reprezint codificarea pentru o fat, iar 1 pentru un biat), care reprezint irul de elevi de pe ultimul rnd, se cere s se determine numrul de biei din clas. Date de intrare: De la tastatur se citesc datele de pe dou linii: pe prima linie n, pe linia a doua un ir de n numere 0 i 1, separate printr-un spaiu ce reprezint irul de elevi de pe ultimul rnd. Date de ieire: Pe ecran se va afia numrul de biei din clas. Restricii: 1 n 20. Exemplu: Pentru datele de intrare: 5 1 0 0 1 1 se va afia: 8 (ONI Focani 2003 clasa a VI-a) Gigel a primit spre pstrare un set de n cutii de greuti nu neaprat distincte. El a cntrit cutiile i pentru fiecare greutate distinct a notat pe o foaie, n ordine cresctoare a greutilor, numrul de cutii cu greutatea respectiv. Deoarece fratele su mai mic avea prostul obicei s se joace cu numerele scrise de el pe foaie, Gigel s-a gndit s calculeze un numr de control dup urmtorul algoritm: ncepnd de la primul numr a grupat numerele de apariii ale greutilor cte trei (dac i rmn numere negrupate la sfrit, le ignor). Dac ntrun grup sunt numai numere pare sau numai impare noteaz grupul cu cifra 1, altfel l noteaz cu cifra 0. Din irul astfel obinut, se formeaz un numr care are ca valoare cifra zecilor egal cu numrul de valori 1 i cifra unitilor egal cu numrul de valori 0, obinndu-se astfel numrul de control. Cerin: Citind greutile cutiilor, s se determine numrul de control i s se verifice dac este numr prim. Date de intrare: Se citete de la tastatur numrul n urmat de greutile cutiilor. Date de ieire:Se va scrie pe ecran numrul de control, urmat de valoarea 0 sau 1 pe linia urmtoare. Pe urmtoarea linie se va afia 1 dac numrul este prim, respectiv 0 n caz contrar. Restricii:1 n 100. Fiecare greutate este un numr natural, mai mic sau egal cu 200 Exemplu: Date de intrare n=21 1 3 2 6 2 6 2 8 9 8 8 9 10 8 11 18 11 12 14 15 17 Date de ieire 31 1. Explicaie: Dup ordonare se obine irul: 1 2 2 2 3 6 6 8 8 8 8 9 9 10 11 11 12 14 15 1 18. Se obine apoi: 1 3 1 2 4 2 1 2 1 1 1 1 1 care grupate cate trei dau valorile 1 1 0 1, din care se obine numrul de control 31, care este numr prim. (OJI 2004 clasa a VI-a) Vntorul ef al regelui Arthur a primit nsrcinare s vneze primele rae ce se ntorc din rile calde. Regele fiind un tip cu idei fixe, i-a cerut vntorului s vneze raele albe cu sgei albe, iar raele negre cu sgei negre. Raele vin n rnduri (stoluri) din ce n ce mai mari: mai nti una, apoi dou, trei, cinci, opt, treisprezece, .a.m.d. Se observ c numrul de rae dintr-un rnd este egal cu numrul de rae de pe cele dou rnduri anterioare. Raele fiind nite creaturi ordonate zboar n rnduri, n care nu vei putea gsi dou rae de aceeai culoare alturate, fiecare rnd ncepnd cu o ra alb.

26

Vntorul tie c dac a nceput s doboare o ra, trebuie s le doboare pe toate de pe rndul acesteia, deoarece supravieuitoarele vor alerta celelalte rae i ele nu se vor mai ntoarce niciodat, iar vntorul nostru i va pierde slujba.Cerin: tiind c vntorul a primit ka sgei albe i kb sgei negre, trebuie s determinai cte rnduri de rae a dobort i cte sgei de fiecare tip i-au rmas, tiind c el vrea s-i pstreze slujba. Date de intrare: Se citesc de la tastatur numerele ka i kb (n aceast ordine). Date de ieire: Se va afia pe ecran: - numrul de rnduri doborte - numrul de sgei albe rmase - numrul de sgei negre rmase. Restricii: 0ka, kb2.000.000.000 Exemplu: Pentru ka=9 i kb=10 Se va afia: 4 2 6. Explicaie: Pentru exemplu avem rndurile (A- ra alb, N- ra neagr) de rae: A AN ANA ANANA (CJI 2004 clasa a VI-a) 7) S se genereze dou iruri A i B de numere naturale, elementele lui A s fie cuprinse ntre 0 i 99, iar ale lui B ntre 1 i 999. Cele dou iruri au acelai numr de elemente, specificat de la tastatur. S se genereze un ir C dup urmtoarea regul: C[i]=A[i]-B[i], dac A[i] este par i B[i] impar, C[i]=A[i]+B[i], dac A[i] este impar i B[i] par, C[i]=A[i]*B[i], dac A[i] i B[i] sunt ambele fie pare, fie impare. S se afieze cte patru elemente pe un rnd, elementele irului A, ale irului B i apoi ale lui C. (CNI 1987 clasa a VI-a) 8) O coal are maxim 7 serii de clase a VI-a, notate A, B, C, D, E, F. S se scrie un program care s genereze o planificare a ntlnirilor sportive ntre aceste clase, astfel nct fiecare s se ntlneasc o singur dat cu alt clas. ntlnirile au loc zilnic, cte una n fiecare zi, cu excepia duminicilor. Programarea ntlnirilor ncepe cu ziua de miercuri, 1 iunie 1988 i arat astfel: miercuri1 iunie VI A - VI B joi 2 iunie VI A - VI C (CNI 1988 clasa a VI-a) 9) Se d un vector de numere naturale mai mici dect 101 i un numr natural a. S se nsereze ntre dou componente vecine, a cror diferen n valoare absolut este mai mare sau egal cu a, media lor aritmetic, pentru ca n final s rezulte un vector n care diferena absolut dintre dou elemente este mai mic dect a. (CNI Nvodari 1989 clasa a VII-a) 10) Fie un ir de n fracii (1n5) de forma a[i]/b[i], 1in) cu 0a[i]255, 1b[i]8. a) S se simplifice fracia de pe poziia k, k dat de la tastatur. b) S se calculeze suma fraciilor avnd ca rezultat fracia ireductibil p/q. c) S se calculeze ct la sut reprezint numrul q din suma p+q (CNI Buteni 1994 clasa a VI-a) 11) Pe o tij se afl n discuri avnd diametre diferite, 1<= n<=100. Se cere aranjarea lor n ordinea descresctoare a diametrelor de jos n sus. n scopul aranjrii n ordinea cerut se poate efectua un singur tip de operaie: cu ajutorul unei cleme se prind un numr oarecare k de discuri,2<k, ncepnd cu cel mai de sus se scot de pe tij i se ntorc, introducndu-le din nou pe tij. Date de intrare: n= numar discuri, a1,a2..,an=diametrele discurilor,1<=ai<=999. Date de ieire: fiecare schimbare const din dou linii de forma k=numrul discurilor prinse i x1,x2,,xn=noua configuraie a tijei. Exemplu: n=5 diametrele 5 3 2 1 4 se va afia k=4 5 4 1 2 3 k=3 5 4 3 2 1. (CNI Sinaia 1996 clasa a VIa) 12)Se consider un numr n de copii care poart tricouri de baschet ce au pe spate imprimate un numr de la 1 la n. Ei joac urmtorul joc: se aeaz pe un cerc ntr-o ordine oarecare toi cei n copii; profesorul, pornind de la un elev ncepe s numere k elevi, cel de-al k-lea fiind eliminat din cerc; de la urmtorul dup cel eliminat continu numrtoarea pn la k, eliminndu-l pe cel la care s-a oprit numrtoarea, .a.m.d. Cunoscndu-se numerele n i k (n,k<=50), s se determineordinea n care se aflau iniial dispui copiii pe cerc, astfel nct acetia s fie eliminai n ordinea 1,2,,n. Se va afia pe o linie numrul de ordine al juctorilor situai iniial pe cerc ncepnd cu numrul 1. Exemplu: date de intrare: n=5 k=2 Date de ieire: 1 5 2 4 3. (CNI Sinaia 1997 clasa a VIa)

27

13) n vacan Gigel a uitat tehnica de nmulire a dou numere. Ca s-l ajute, bunica l-a nvat o metod veche: Dac a i b sunt cele dou numere care trebuie nmulite, le vom scrie unul lng altul i vom forma sub fiecare cte o coloan conform urmtoarelor reguli: 1) sub a se acrie partea ntreag a lui a/2, iar sub b se scrie 2*b 2) se aplic pasul 1) pn cnd numrul de pe coloana lui a este 1 3) produsul se obine adunnd numerele din coloana lui b care corespund, pe linie, unor numere impare din coloana lui a. Exemplu: a=45, b=19, a b produs 45 19 19+ 22 38 11 76 76 5 152 152 2 304 1 608 608 === 855 (CNI Piatra-Neam 2001 clasa a VI-a) 14) Nicu merge la Metro s-i cumpere rechizite colare. Pe fiecare obiect cumprat se afl un cod de produs alctuit din cel mult 10 liniue verticale. Pentru fiecare cod Nicu asociaz un numr de cod astfel: pentru fiecare liniu asociaz o cifr, lungimea liniuei. n acest mod fiecare obiect are asociat un numr natural. Cerin: Pentru cele n obiecte cumprate i date prin numrul de cod se cere s se afieze cte numere palindroame exist cu proprietile: sunt mai mici strict dect cel mai mare numr de cod, nu sunt printre numerele de cod date. Restricii: 0<n<26, cel mai mare numr de cod este mai mic dect 3001. Exemplu: pentru n=7 i numerele de cod 8 20 22 44 108 55 88 se va afia 15 (deoarece avem urmtoarele numere palindroame: 0 1 2 3 4 5 6 7 9 11 33 66 77 99 101). (CNI Satu-Mare 2003 clasa a VI-a) 15) La concursul Mititelu Gates, pentru buna desfurare a competiiei este necesar o suma dat S; n acest scop s-a creat o list de n (n<1000) persoane care pot i vor s sponsorizere acest eveniment. Fiecare din cele n persoane a confirmat participarea i suma oferit. Determinai valorile selectate pentru sponsorizarea concursului, tiind c numrul persoanelor trebuie s fie minim i suma total s acopere cheltuielile.(unitatea de msur este milionul) Exemplul 1 : N=8 S=30 2.5 3 2 5 15 7 4 1 Se va afia: 15 7 5 3 Exemplul 2 : N=7 S=37 5.5 4.5 2 17 2 5.5 10 Se va afia: 17 10 5.5 4.5 16) Un grup de elevi formeaz o coloan care are m rnduri, m15, cu n elevi pe rnd, n6. De pe fiecare rnd este ales cel mai scund elev, iar dintre alei, cel mai nalt primete un steag. Al doilea steag este repartizat n mod similar, se alege de pe fiecare rnd cel mai nalt elev, iar dintre alei, cel mai scund. n cazul n care exist mai muli elevi cu aceeai nlime, se alege primul dintre ei. S se scrie un program care s afieze nlimile purttorilor de steag; valorile m, n i nlimile elevilor se citesc de la tastatur. Exemplu: m=3 n=4 rndul 1: 120 130 140 150 rndul 2: 110 120 130 130 rndul 3: 140 140 150 150 ; primul steag este dat elevului din poziia (3,1), cu nlimea 140, iar al doilea steag elevului din poziia (2,3), cu nlimea 130. (CNI 1989 clasa a Va) 17) ntr-un parc cu castani un copil gsete o zon cu 12 dale, aranjate sub forma unui dreptunghi cu 4 linii i 3 coloane. Copilul i noteaz numrul de castane de pe fiecare dal, ncepnd cu dala de pe prima linie i prima coloan, continund linie cu linie (notiele copilului se introduc de la tastatur). El pornete de pe prima dal (unde nu sunt castane), se poate muta de pe o dal pe alta doar pe linie sau pe coloan. Copilul adun castanele de pe fiecare dal pe care ajunge i face un numr de k mutri (k citit de la tastatur). Comanda unei mutri de pe o dal pe alta se va face apsnd pe una dintre tastele A, B, C sau D, unde mutrile posibile sunt definite astfel: A - pe linia anterioar; B - pe coloana urmtoare; C - pe linia urmtoare; D - pe coloana anterioar. a. Se cere s se afieze cte castane a adunat copilul dup fiecare mutare. b. Copilul se joac cu cifrele numrului total de castane, obinut la punctul a., conform urmtoarelor exemple: 173 > 11 > 2, 8 > 8, 14 > 5, 97 > 16 > 7, 1989 > 27 > 9

28

Ce cifr obine copilul la punctul (b.) pentru numrul obinut la punctul (a.), dup mutarea k? Obs.: Copilul nu va primi comenzi prin care s ias de pe dale. Exemplu: Pentru urmtoarea repartiie de castane pe dale 0 5 7 3 1 2 10 8 4 6 1 1 i pentru k = 4: a. Comenzi de la tastatur: Rezultat afiat pe ecran B 5 C 6 B 8 C 12 b. 12 > 3 (CNI Satu-Mare 2002 clasa a VI-a)

18)Marius are o org de lumini de form dreptunghiular cu n linii i m coloane de beculee. Funcionarea orgii

este automat, automodificndu-se o dat la 1 secund simultan toate becurile, dup urmtoarea regul: dac un bec are un numr par de becuri vecine aprinse (n stnga, dreapta, sus i jos) atunci i schimb starea (dac este aprins se stinge, iar dac este stins se aprinde), ns dac are un numr impar de becuri vecine aprinse i pstreaz starea. tiind configuraia iniial a orgii determinai cum va arta orga dup k secunde? Restricii:1<=n,m<=100, 1<=k<=500 Date de intrare: n m - dimensiunile orgii, k - timpul de rulare a orgii, n linii, fiecare avnd m elemente separate printr-un spaiu, reprezentnd strile becurilor. Starea unui bec este data prin 1, daca becul este aprins i 0, daca este stins. Date de ieire: n linii cu m elemente de 0 i 1 reprezentnd configuraia orgii dup k secunde, elementele fiind separate printr-un spaiu. Exemplu: Date de intrare: 4 4 3 1001 1100 0111 0000 Rspuns: 0100 1111 0011 1111 Explicaie: 1001 1100 1110 0100 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0000 1000 1010 1111 Not: Dac un element are 0 becuri vecine aprinse, se consider c are un numr par de becuri vecine aprinse (CNI Satu-Mare 2004 clasa a VI-a) 19) Se consider un text cu lungimea maxim de 255 caractere. Textul este format din cuvinte separate de cel puin un spaiu. Se cere s se gseasc cuvintele de lungime maxim i toate literele care se regsesc simultan n toate aceste cuvinte. (CNI Nvodari 1992 clasa a V-a) 20) Se citesc dou mulimi M1 i M2 de cuvinte precum i un numr natural k. S se aeze cuvintele mulimii M1 unele sub altele astfel nct literele lor de pe poziia k s formeze pe vertical un cuvnt din mulimea M2. S se afieze unele sub altele cuvintele din mulimea M1 dup ce au fost ordonate corespunztor. Exemplu: M1=[carte, acesta, arid, rac], M2=[ cutie, abac, acar, cort], k=2, rezultatul carte acesta rac arid (CNI Nvodari 1992 clasa a VII-a) 21) Se introduce un text format din cuvinte desprite prin oricte spaii i avnd maxim 255 de caractere, toate majuscule. a) S se afieze toate cuvintele din text, unul dup altul b) S se gseasc lungimea celui mai mic cuvnt c) Se citete un cuvnt de la tastatur; s se afieze toate cuvintele din text care au aceeai

29

lungime i sunt formate din exact aceleai litere cu ale cuvntului dat. (CNI Buteni 1994 clasa a VII-a) 22) Se consider un ir de cel mult 100 caractere, format din literele mici ale alfabetului englez. Se numete o blb o secven de caractere care apare n ir de cel puin dou ori i una dup alta. Exempu: abbcabab are blbele b i ab. a) S se determine cea mai lung blb din irul considerat (ca numr de caractere) b) S se codifice irul dat nlocuind fiecare caracter cu ultima cifr a lui 2 la puterea x, unde x este codul ASCII asociat literei respective. Exemplu: Date de intrare abbcabab date de ieire a) ab b) 24482424. (CNI 1997 clasa a VI-a) 23) Se citete de la tastatur un numr natural n, n<=15). Pentru a codifica un text scris cu cel mult primele n litere mici din alfabetul englez, se folosesc cele mai mici n numere naturale care au exact 3 divizori. Pentru litera a se folosete cel mai mic numr cu aceast proprietate, pentru b cel mai mic numr diferit de cel folosit pentru a, etc. a) S se afieze cele n numere folosite la codificare b) pentru un text dat de la tastatur cu maxim 20 de litere, se cere s se afieze codificarea textului. Exemplu: pentru n=2 i textul aabbaa, se va afia a) 4 9 b) 449944. (CNI Sinaia 1998 clasa a VI-a) 24) Se dau dou numere a,b cu maxim 8 cifre. Dup fixarea a dou cifre, cte una din fiecare numr, aceste cifre se interschimb ntre ele, obinndu-se alte dou numere a, b. De exemplu, din numerele a=23, b=416, fixnd prima cifr din a i a doua cifr din b, dup interschimbarea lor se obin numerele a=13, b=426. S se determine a i b, astfel nct suma a+b s fie maxim. Exemplu: a=23, b=416, suma maxim se obine pentru 63 i 412. (CNI Sinaia 1998 clasa a VI-a) 25) Membrii cercului de electronic de la Clubul Copiilor din Aiud au realizat un robot care tie s se deplaseze la comand. Astfel comanda Nx deplaseaz robotul x metri spre nord, comanda Ey, Vz, St, deplaseaz robotul respectiv y metri spre est, z metri spre vest, t metri spre sud (x,y,z,t numere naturale). Un grup de copii dau o serie de comenzi robotului pentru a-l rtci. La comanda STAI robotul se oprete. Cunoscnd comenzile date, ajutai membrii clubului ca prin maxim 2 comenzi s readuc robotul n punctul de plecare. Exemplu: N 3 V 5 S 3 E 4 E 5 N 2 STAI robotul revine la comenzile V 4 S 2. (InfoStar, Aiud 1997 clasa a VI-a) 26) Se citete de la tastatur un text de maxim 255 de caractere. Singurul separator ntre cuvinte este considerat caracterul spaiu (SPACE). a. Se va afia pentru fiecare cuvnt: poziia cuvntului n text, adic al ctelea cuvnt este; numrul de litere; suma codurilor ASCII ale literelor b. Se va afia frecvena de apariie a fiecrui cuvnt n text. (CNI Satu-Mare 2002 clasa a VI-a)

27)Sinbad Marinarul

viseaz c se afl ntr-o peter cu comori. Peste tot se aflau cufere pline cu bijuterii i monezi de aur. i n timp ce Sinbad se minuna, se auzi o voce care spuse: Exist o cale de a ajunge aici i dac reueti toate aceste comori vor fi ale tale. Aceast peter se afl n vrful muntelui Ararat , dar duhurile rele vor ncerca s te opreasc. Tu trebuie s le nvingi n lupt dreapt. Pentru a deschide petera trebuie s-i aminteti cte duhuri ai nvins i s rosteti cu voce tare formula magic, care este cel mai mic numr care are att prima cifr ct i numrul de cifre egal cu numrul duhurilor nvinse de tine. n plus, acest numr trebuie s aib proprietatea c orice secven de dou cifre consecutive trebuie s fie numere prime diferite. n acest moment, Sinbad s-a trezit i vrea s plece n cutarea comorii. Nu se teme de duhurile rele, dar tie cte calcule necesit cutarea formulei magice (i mai tie c la matematic nu se descurc foarte bine). De aceea, v roag s-l ajutai. Sinbad v va spune numrul n egal cu numrul duhurilor nvinse de el, iar voi trebuie s-i spunei formula magic. n cazul n care nu exist un astfel de numr, transmitei-i c Nu exist. Exemplu: n=3 se va afia 311. (ONI 2002 clasa a VI-a) 28) Gigel are de rezolvat urmtoarea problem: se consider numrul natural N format din maxim 9 cifre, distincte dou cte dou i n care nu exist cifra 0. Gigel va trebui s fac bileele pentru fiecare cifr din numr, bileele pe care le va pune ntr-o cciul, conform urmtorului algoritm: iniial pornete de la ultima cifr a numrului (cifra unitilor) i pune n cciul bileelul pe care este scris aceast cifr. Dac aceasta este o valoare par, ncepe parcurgerea numrului spre dreapta, n caz contrar spre stnga, parcurgerea fcndu-se cu un numr de pai egal cu cifra respectiv. n parcurgerea unui numr spre dreapta se consider c dup ultima cifr urmeaz prima (cea mai semnificativ cifr a numrului), dup aceasta urmeaz a doua, etc., iar n deplasarea spre stnga dup prima cifr (cea mai semnificativ cifr a numrului) urmeaz ultima cifr (cifra unitilor), apoi penultima, etc., iar parcurgerea ncepe cu cifra din numr imediat de lng cifra scris pe ultimul bileel introdus n cciul, respectnd sensul parcurgerii. De exemplu, dac numrul nostru este 1346, Gigel pornete de la cifra 6, iar biletul pe care s-a scris aceast cifr l pune n cciul. Parcurge numrul

30

spre dreapta, fcnd 6 pai; trece prin cifrele: 1,3,4,6,1 i se oprete la cifra 3. Deci, n cciul va pune bileelul pe care este scris cifra 3. Algoritmul continu pn cnd se termin toate bileelele sau cnd ajunge la o cifr pentru care bileelul cu valoarea respectiv a fost introdus deja n cciul. Cerin: n cazul n care algoritmul se ncheie ntruct Gigel a pus toate bileelele n cciul, se va afia cifra de pe ultimul bileel introdus n cciul, iar n cazul n care Gigel ajunge n timpul parcurgerii la o cifr pentru care bileelul corespunztor a fost introdus deja n cciul, se va afia valoarea acestei cifre Date de intrare: Se va citi de la tastatur numrul natural N format din cel mult 9 cifre distincte dou cte dou, n care nu exist cifra 0. Datele de ieire: Se va afia pe ecran cifra la care Gigel a ajuns n momentul opririi algoritmului. Exemple : 1) N=412 Gigel ncepe cu cifra 2 (bileelul cu cifra 2 este pus de Gigel n cciul); fiind valoare par, parcurge spre dreapta i se oprete la cifra 1, bileelul cu aceast cifr fiind pus n cciul. Cifra 1 fiind impar, continu parcurgerea spre stnga i se oprete la cifra 4 i pune astfel i ultimul bileel n cciul. Din acest moment nu mai exist bileele nepuse n cciul i se va afia deci cifra 4 . 2) N=1243 Gigel ncepe cu cifra 3 (bileelul cu cifra 3 este pus de Gigel n cciul); fiind valoare impar, parcurge spre stnga i se oprete la cifra 1, bileelul cu aceast cifr fiind pus n cciul. Cifra 1 fiind impar, continu parcurgerea spre stnga i se oprete tot la cifra 3, dar nu mai exist bileelul cu cifra 3 pentru a putea fi pus n cciul. Se va afia deci, cifra 3. (ONI Focani 2003 clasa a VI-a) 29) Simpatie mare ntre Ionel i Mrioara, doi elevi venii n tabr la Glciuc! Pentru a scpa de indiscreia colegilor, cei doi hotrsc s-i trimit mesaje, unul altuia, folosind o metod simpl de criptare: textul de criptat se scrie pe o foaie, aranjnd literele cuvintelor ntr-un tablou avnd cte 5 caractere pe fiecare linie. Spaiul dintre cuvinte este i el caracter. Textul astfel aranjat pe un numr suficient de linii pentru a ncape, se citete pe coloane, de sus n jos i de la stnga la dreapta. n locul spaiilor dintre cuvinte se pun puncte. Tot puncte se pun i la sfritul textului, attea cte spaii libere sunt rmase la sfritul textului pus n tablou. Exemplu: Pentru textul: Te astept dupa cina la ora 8 se va aranja: 1 2 3 4 5 T e a s t e P t d u P a c i N a l a o R a 8 se va codifica: Ttdclaeeuia..ppn.8ataao.s...r. Decodificarea mesajului se va face nvers codificrii. Ajutai-i, realiznd un program care s codifice i s decodifice mesajele celor doi copii. Pentru diferenierea mesajelor ce trebuie codificate, de cele care trebuie decodificate, primul caracter al mesajului va fi C sau c pentru codificare, respectiv D sau d pentru decodificare. Aceste caractere, vor fi lipite de prima litera din textul mesajului. Intrare: CAm un mar Ieire: A.mm.aurn. ntrare: dTaGia.aubllcaaa.r.c. Ieire: Tabara la Galaciuc (ONI Glciuc 2002 clasa a VI-a) 30) S se calculeze anul, ziua, luna i ora revenirii unei rachete pe Pmnt cunoscnd anul, ziua, luna i ora plecrii i durata zborului n minute. Zborul dureaz cel mult un an. (CNI Nvodari 1989 clasa a VI-a) 31) Ministerul numerelor are de cteva zile un nou ef. Acesta a dorit s fac o serie de schimbri n ministerul pe care l conduce i a nceput reorganizarea cu mulimea numerelor naturale n 2 etape: mai nti toate numerele naturale au fost aezate fr spaiu (sau alt separator) ntre ele. Dup aceast prim etap, mulimea numerelor naturale arta astfel: 123456789101112131415161718192021222324... A doua etap a reorganizrii a constat n formarea unor noi grupe: o grup de o cifr, o grup de 2 cifre, o grup de 3 cifre i aa mai departe. Astfel, grupele reorganizate sunt: 1, 23, 456, 7891, 01112, 131415, 1617181, 92021222, 324252627 . Cerin: Pentru un numr natural N dat, s se afieze prima i ultima cifr din cea de-a N-a grup de cifre obinut dup reorganizare, valori separate printr-un spaiu. Restricii:

31

1<=N<=250. Exemplu: Pentru N=8 se va afia: 9 2 grupa a 8 a care este 92021222 )

(deoarece 9 i 2 sunt prima, respectiv ultima cifr din (ONI Focani 2003 clasa a VI-a)

Clasa a VII-a

1)

2) Se d o secven de maxim 1000 de caractere (numai litere mari i mici ale alfabetului englez i cifre).

Se d o expresie aritmetic care conine operatorii +, - i operanzii a, b, c. Cunoscnd valorile operanzilor a, b, c se cere s se determine valoarea expresiei. Date de intrare: n fiierul expresie.in se d pe prima linie valorile operanzilor a, b, c (separai prin cte un spaiu), iar pe linia a doua expresia. Date de ieire: n fiierul expresie.out se va scrie valoarea expresiei. Restricii: a,b,c<32000 i sunt numere naturale nenule Expresia este corect din punct de vedere matematic i are cel mult 1000 de caractere Exemplu: expresie.in 7 8 3 a+c-b+c expresie.out 5 (www.contaminare.ro) Cerin: se cere s se determine cel mai mare numr din secven. Date de intrare: n fiierul nrmax.in se d pe o singur linie, secvena. Date de ieire: n fiierul nrmax.out se va scrie numrul cerut. Restricii: secvena de caractere din fiier are maxim 1000 de caractere i cel puin un caracter. Exemplu: nrmax.in A78bx899f7g9 nrmax.out 899 . Observaie: dac nu exist soluie n fiierul nrmax.out se va scrie numrul -1.

3)

Pe o insul, dup multiple experimente chimice se produce un fenomen extrem de periculos. Viespile se nmulesc foarte repede producnd pagube mari. Guvernatorul ia hotrrea ca dup n zile s se evacueze insula. Se cere s se determine numrul de viespi existente n ziua de plecare, tiind c n prima zi dup fenomen sunt p viespi, n a doua zi q viespi, iar n zilele cu numrul de ordine k (3kn) numrul de viespi este egal cu de patru ori numrul de viespi din ziua k-1, minus numrul de viespi din ziua a k-2. Date de intrare: |n fiierul text VIESPI.IN se afl pe prima linie n, iar pe a doua linie p i q cu un spaiu ntre ele. Date de ieire: |n fiierul text VIESPI.OUT se va scrie pe prima linie numrul de viespi dup cele n zile. Restricie 1n,p,q100. Exemplu: VIESPI.IN 4 2 3 VIESPI.OUT 37 (ONI. Clasele 7-8, 2001) 4) Gigel are o panglic alctuit din benzi de 1 cm lime, colorate n diverse culori. Panglica are N benzi colorate cu C culori, culori pe care le vom numerota de la 1 la C. Gigel vrea ca la ambele capete ale panglicii s aib aceeai culoare, dar cum nu poate schimba culorile benzilor, singura posibilitate rmne tierea unor buci de la capete. Cerin: Scriei un program care s determine modul de tiere a panglicii astfel nct la cele dou capete s fie benzi de aceeai culoare, iar lungimea panglicii obinute s fie maxim. Date de intrare: Fiierul de intrare PANGLICA.IN conine: - pe prima linie numerele naturale N i C separate printr-un spaiu; pe urmtoarele N linii descrierea panglicii: pe fiecare linie un numr natural de la 1 la C, reprezentnd n ordine culorile fiilor ce alctuiesc panglica. Date de ieire: Fiierul de ieire PANGLICA.OUT va conine urmtoarele 4 numere: - pe prima linie numrul de fii rmase; pe linia a doua numrul culorii care se afl la capete; pe linia a treia cte fii trebuie tiate de la nceputul panglicii iniiale; pe linia a patra cte fii trebuie tiate de la sfritul panglicii iniiale. Restricii i precizri 2N10000 1C200 Dac exist mai multe soluii alegei pe cea n care se taie ct mai puin din partea de nceput a panglicii. Exemplul 1 Exemplul 2 PANGLICA.IN PANGLICA.OUT PANGLICA.IN PANGLICA.OUT 63 4 52 4 1 2 1 2 2 1 2 1 1 1 1 0 3 2 2 2 3 (ONI, clasa a 7-a,2002) 5) Gigel s-a ntlnit din nou cu Maria la Concursul Naional de Informatic de la Satu Mare. Pentru a comunica astfel nct ceilali colegi s nu neleag mesajele lor ei folosesc o metod de criptare a informatiilor conform urmtoarelor reguli:

32

1. Ei formeaz dicionarul cuvintelor utilizate n mesaj, spaiul ce separ cuvintele fiind considerat i el un cuvnt. 2. Apoi determin k, ce reprezint cea mai mic putere a lui 2 astfel nct numrul cuvintelor din dicionar s fie mai mic dect 2k. 3. n urmtoarea etap ei sorteaz cuvintele din dicionar n ordine alfabetic cresctoare. 4. Fiecare cuvnt din dicionar se codific prin corespondentul n baza 2 a poziiei cuvntului, exprimat pe k bii. 5. Se grupeaz biii astfel obinui n grupe de 8 completnd dac este cazul cu 0 ultima grup. 6. Fiecare grup se transform ntr-o valoare zecimal, rezultnd astfel codul ASCII a unui caracter ce reprezint codul criptat. NOT: Cuvintele din mesaj includ doar caractere mici din alfabetul englez,sunt separate prin spaiu, iar lungimea unui cuvnt nu depete 10 caractere. Datele de intrare se citesc din fiierul COD.IN ce are o singur linie. Primul caracter din linie reprezint tipul operaiei, criptare (c). Imediat dup caracterul c urmeaz mesajul de criptat. n dicionar nu pot exista mai mult de 15 cuvinte (inclusiv spaiul). Datele de ieire se scriu n fiierul COD.OUT ce conine mesajul criptat urmat imediat de cuvintele din dicionar separate prin spaiu. EXEMPLU: COD.IN COD.OUT cmama are mere e are mama mere (ATENIE! ntre are exist dou spaii) (CNI, clasa a 7-a, Satu Mare, 2002) 6) ntr-un fiier de intrare NUMERE.IN exist una sau mai multe linii. Pe fiecare linie exista cel puin dou numere urmate apoi de unul din caracterele p, m, n sau i separate prin spaiu. Caracterele de sfrit de linie au urmtoarele nelesuri. p - cte numere sunt prime din numerele date pe linia respectiv, m - determinarea mediei aritmetice a numerelor din linia respectiv exprimat cu dou zecimale, n - numrul de numere prime din intervalul nchis a celor dou numere din linia respectiv i - inversul fiecrui numr din linia respectiv cu dou zecimale. Datele de ieire se scriu n fiierul NUMERE.OUT avnd pe fiecare linie rezultatele cerinelor fiecrei linii din fiierul de intrare. Not: Toate datele de intrare se consider corecte. Numrul maxim de linii este 10. Pe o linie nu poate exista mai mult de 10 numere (acolo unde acest lucru este permis) Numerele utilizate sunt naturale i nu depesc 64000. Exemplu: NUMERE.IN NUMERE.OUT 13 21 27 29 p 2 12 5 i 0,08 0,20 (CNI, clasa a 7-a, Satu Mare, 2002) 7) Se d o expresie aritmetic care conine operatorii +, - i operanzii a, b, c. Cunoscnd valorile operanzilor a, b, c se cere s se determine valoarea expresiei. Date de intrare: n fiierul expresie.in se d pe prima linie valorile operanzilor a, b, c (separai prin cte un spaiu), iar pe linia a doua expresia. Date de ieire: n fiierul expresie.out se va scrie valoarea expresiei. Restricii: a,b,c<32000 i sunt numere naturale nenule. Expresia este corect din punct de vedere matematic i are cel mult 1000 de caractere. Exemplu: expresie.in 7 8 3 a+c-b+c expresie.out 5 (www.contaminare.ro) 8) Se consider un vector unidimensional x cu n componente numere naturale distincte, cel mult egale cu 32000. Cerin: Scriei un program care s construiasc vectorul y cu elemente din mulimea {1,2,,n} astfel nct oricare ar fi numerele naturale i,j cu proprietatea c 1<=i<=n, 1<=j<=n i x[i] < x[j] s avem y[i]<y[j]. Date de intrare; fiierul siruri.in va conine: pe prima linie numrul n iar pe linia a doua componentele vectorului x separate printr-un spaiu. Date de ieire: fiierul siruri.out va conine pe prima linie componentele vectorului y separate printr-un spaiu. Restricii: 1<=n<=100, componentele vectorului x sunt numere naturale cel mult egale cu 32000. Exemplu: siruri.in Siruri.out 6 5 2 3 6 4 1 12 3 7 16 10 1 (OJI, clasa a VII-a, 2004) 9) George pleac n excursie la munte. Pentru aceast excursie el dorete s-i ia un rucsac cu haine. Rucsacul are un volum de depozitare egal cu V cm3. George stabilete n haine utile pentru excursie (numerotate cu 1, 2, , n). Hainele au fiecare cte un volum egal cu v1, v2, , vn cm3. Din pcate, exist posibilitatea ca acestea s nu intre toate n rucsac. George ajunge la concluzia c hainele sunt mpachetate i presate i micoreaz volumul fiecare cu p1, p2, , pn la sut. Cerin: Determinai numrul maxim de haine ce pot fi

33

introduse n rucsac. Date de intrare: n fiierul text excursie.in pe prima linie se va afla v i n separate printrun spaiu, pe a doua linie se afl v1, v2, , vn separate prin cte un spaiu, iar pe linia a treia p1, p2, , pn separate de cte un spaiu. Date de ieire: n fiierul excursie.out se va scrie numrul cerut. Restricii: 0<n<100, 0<v<30000, v1, v2, , vn sunt numere naturale <30000, p1, p2, , pn sunt numere naturale <100. Exemplu: excursie.in excursie.out 980 4 2 1600 200 10000 800 50 20 10 10 (CNI, Satu-Mare, clasa a VII-a, 2003) 10) Un turist aflat n Valea Romeului, aude din vzduh n cuvinte. Aici exist o piatr fermecat care atunci cnd un cuvnt se izbete de ea, eman un ecou similar cu cuvntul dar spus de la sfrit . Ajutai turistul s gseasc grupele formate din cuvnt i ecoul su. Exemplu: date de intrare: n=7 i cuvintele: cam des sed oamenii la al doilea mac Date de ieire: cam mac des sed la al . (Info-Star, clasa a VII-a, 1996) Clasa a VIII-a 1) Se consider o list de litere mici ale alfabetului, fiecare avnd o anumit pondere. Se cere completarea unui careu ptratic, astfel nct s se obin ponderea maxim pe coloane. Pentru aceasta se dau urmtoarele definiii: 1. Se numete cuvnt un ir de litere mici, cu proprietatea c nu exist x consoane sau y vocale consecutive i nu pot exista 2 caractere identice consecutive. 2. Se numete cuvnt de gen masculin, un cuvnt care ncepe i se termin cu consoana. 3. Se numete cuvnt de gen feminin, un cuvnt care ncepe i se termin cu vocal. 4. Se numete cuvnt de gen neutru, un cuvnt care ncepe cu consoan i se termin cu vocal, sau ncepe cu vocal i se termin cu consoan. Datele se citesc dintr-un fiier cu urmtoarea structur: pe prima linie se citete dimensiunea careului (n), x i y cu spaiu ntre ele pe linia a doua sunt date coordonatele punctelor negre (linie i coloan) separate prin spaiu pe linia a treia se dau numrul de cuvinte masculine, feminine i neutre utilizate la completarea careului ncepnd cu linia a patra se d perechea pondere caracter separate prin spaiu Numele fiierului se introduce de la tastatur. Datele de ieire se scriu n fiierul cu numele CNI.OUT care are urmtoarea structur: pe primele n linii, careul ( punctele negre vor fi marcate prin caracterul * ) pe linia n+1 se va scrie ponderea maxim obinut Exemplu: FIIERUL DE INTRARE: CNI.OUT 433 cadc 2341 ab*a 413 cdab 100 c *abc 80 b 1160 90 a 70 d (CNI, clasa a 8-a, Satu Mare, 2002) 2) Se dau urmtoarele corespondene pentru numerele naturale. 0 corespunde 0 1 corespunde 143 2 corespunde 307 3 corespunde 453 7 corespunde 1273 10 corespunde 1747 11 corespunde 2113 576 corespunde 160377 S se determine codificarea numerelor citite din fiierul cu numele CNI.IN (fiecare numr fiind citit de pe o linie). Datele de ieire se vor scrie n fiierul CNI.OUT

34

(CNI, clasa a 8-a, Satu Mare, 2002) 3) Se consider urmtorul ir, construit astfel nct fiecare element al lui, cu excepia primului, se obine din cel precedent: 1, 11, 21, 1211, 111221, ...Termenii din ir sunt numerotai ncepnd cu 1. Cerin: Dat n, un numr natural, s se determine cel de-al n-lea termen din irul dat. Date de intrare: Din fiierul text SIR.IN se citete numrul natural n. Date de ieire: Pe prima linie a fiierului text SIR.OUT se va scrie al n-lea termen al sirului. Restricii 4 n 35, numrul de cifre ale unui termen nu depete 17000. Eemple SIR.IN SIR.OUT 4 1211 SIR.IN 5 SIR.OUT 111221

Exemplu: CNI.IN 10 0 7

CNI.OUT 1747 0 1273

(OJI, 2002, clasa a 8-a) 4) Se d un cuvnt format numai din litere mici. Numim anagram un cuvnt format din literele cuvntului dat, schimbnd eventual ordinea literelor. De exemplu o anagram a cuvntului tamara este cuvntul armata. Evident, un cuvnt poate fi considerat o anagram a lui nsui. Cerin: Scriei un program care s genereze toate anagramele unui cuvnt dat, n ordine lexicografic. Date de intrare: Fiierul de intrare ANAG.IN conine pe prima linie cuvntul dat. Date de ieire: Fiierul de ieire ANAG.OUT va conine n ordine anagramele cuvntului dat, cte una pe linie. Restricii i precizri: Cuvntul dat are cel mult 10 de litere mici, cuvntul x=x1x2...xn precede cuvntul y=y1y2...yn dac exist un indice k{1,2,...,n} astfel nct xi=yi, i{1,2,...,k-1}, iar litera xk precede n alfabet litera yk. Exemplu ANAG.IN ANAG.OUT ana aan ana naa (OJI, 2002, clasa a VIII-a) 5) S ne imaginm o reea format din noduri situate n punctele de coordonate ntregi, fiecare nod fiind unit prin bare paralele cu axele de coordonate de cele 4 noduri vecine. Un pianjen este plasat iniial n originea sistemului de coordonate. La fiecare secund, pianjenul se poate deplasa din nodul n care se afl n unul dintre cele 4 noduri vecine. Cerin: Scriei un program care s determine n cte moduri se poate deplasa pianjenul din poziia iniial, ntr-o poziie final dat, n timpul cel mai scurt. Date de intrare: Fiierul de intrare SPIDER.IN conine pe o singur linie abscisa i ordonata punctului final, separate prin spaiu: x y Date de ieire:n fiierul de ieire SPIDER.OUT se va afia pe prima linie numrul de moduri determinat Nr Restricii 0<x,y80. Exemplul 1 Exemplul 2 SPIDER.IN SPIDER.OUT 12 3 SPIDER.IN 23 SPIDER.OUT 10

(ONI. Clasele VII-VIII, 2001) 6) Lidorienii i senopictii sunt n conflict pentru ronul fermecat, fiind arbitrai de orintieni, alei de prile beligerante drept judectori. Orintia a propus: Ronul fermecat va fi ascuns printre ali k roni cu acelai aspect, dar toi realizai dintr-un material mai greu dect originalul, avnd masa, standard, diferit de cea a ronului femecat. Pentru a-l descoperi, v gandii c avei la dispoziie o balan i toi cei k+1 roni. Lidorienii, apoi senopictii vor spune un singur numr, reprezentnd numrul maxim de cntriri admis (numrul acesta nu se obine cntrind un ron de mai multe ori i nici cntrind de ct mai multe ori ronii; cntrirea presupune s existe, pe fiecare bra al balanei, un numr egal de roni (1-1, 2-2, etc.) pentru descoperirea ronului fermecat. Dac nici una dintre pri nu spune numrul corect, atunci ronul fermecat va rmne n Orintia.

35

Dac ambele pri spun numrul corect, ronul va rmne tot la orintieni.. Cerin Sarcina voastr este s indicai ara care ctig ronul fermecat: Lidoria -L, Senopictia -S, Orintia -O. Date de intrare Fisierul ron.in are pe prima linie numrul k, iar pe linia a doua dou numere RL, respectiv RS separate printr-un spaiu. RL reprezint rspunsul lidorienilor, iar RS rspunsul senopictilor.Date de ieire Fisierul ron.out contine una din literele L, S i O.Restricii 1 < k < 10000 RL, RL sunt numere naturale cel mult egale cu k ron.in 7 13 ron.in 4 22 Exemple ron.out O ron.out O Explicaie: maximul admis este 2, deci ronul fermecat rmne n Orintia Explicaie: maximul admis este 2, dar fiind egalitate, ronul rmne n Orintia

7)

(OJI, clasa VIII-a, 2004) Se consider n dreptunghiuri avnd laturile paralele cu axele de coordonate. Fiecare dreptunghi este specificat prin coordonatele extremitilor unei diagonale. Toate coordonatele sunt numere naturale. S se calculeze aria suprafeei comune tuturor celor n dreptunghiuri (intersecia) i perimetrul suprafeei acoperite de dreptunghiurile considerate. Date de intrare: numrul n i 2*n perechi de numere naturale mai mici dect 100 Date de ieire: aria interseciei, coordonatele vrfurilor figurii rezultate prin intersecie, peerimetrul figurii rezultate prin reuniune. (CNI, Nvodari, clasa a VIII-a, 1992)

36

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