QReferate - referate pentru educatia ta.
Referatele noastre - sursa ta de inspiratie! Referate oferite gratuit, lucrari si proiecte cu imagini si grafice. Fiecare referat, proiect sau comentariu il poti downloada rapid si il poti folosi pentru temele tale de acasa.



AdministratieAlimentatieArta culturaAsistenta socialaAstronomie
BiologieChimieComunicareConstructiiCosmetica
DesenDiverseDreptEconomieEngleza
FilozofieFizicaFrancezaGeografieGermana
InformaticaIstorieLatinaManagementMarketing
MatematicaMecanicaMedicinaPedagogiePsihologie
RomanaStiinte politiceTransporturiTurism
Esti aici: Qreferat » Referate informatica

Culegere de probleme de informatica



Culegere de probleme de informatica


I.   Instructiuni de introducere, afisare si calcul


Sa se afiseze triunghiul * ** *** Sa se introduca un caracter de la tastatura si sa se afiseze un triunghi asemanator folosind caracterul introdus.



Se da un numar natural n. Afisati 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 judeteana, Petrosani, 2005)

Intr-o tabara numarul de baieti este cu 10 mai mare decat cel al fetelor. Daca se citeste de la tastatura numarul de fete, sa se spuna cati elevi sunt in tabara. Exemplu: date de intrare: 50 date de iesire: 110.

Intr-un autobuz care pleaca in excursie sunt 7 copii. De la inca doua scoli urca alti copii, numarul acestora citindu-se de la tastatura. Cati copii au plecat in excursie? Exemplu: Date de intrare: 15 20 Date de iesire: 42 copii.

Un bradut este impodobit cu globulete albe, rosii si albastre. Numarul globuletelor albe se citeste de la tastatura. Cate globulete are bradutul, stiind ca numarul de globulete rosii este cu 3 mai mare decat numarul de globulete albe, iar globuletele albastre sunt cu 2 mai putine decat totalul celor albe si rosii. Exemplu: Date de intrare: 12 Date de iesire: 52.

Ion si Vasile joaca urmatorul joc: Ion spune un numar iar Vasile trebuie sa gaseasca cinci numere consecutive, crescatoare, numarul din mijloc fiind cel ales de Ion. Exemplu : Ion spune 10, Vasile spune 8 9 10 11 12. Ajutati-l pe Vasile sa gaseasca raspunsul mai repede.

Doi copii au primit acelasi numar de mere Introducand de la tastatura numarul de mere primte, afisati cate mere are fiecare copil dupa ce primul copil mananca un mar si da unul celuilalt copil. Exemplu : Date de intrare : 10 Date de iesire : primul copil 8 mere al doilea copil 11 mere.

Maria vrea sa verifice daca greutatea si inaltimea ei corespund varstei pe care o are. Ea a gasit intr-o carte urmatoarele formule de calcul ale greutatii si inaltimii unui copil, v fiind varsta : greutate=2*v+8 (in kg), inaltime=5*v+80 (in cm). Realizati un program care sa citeasca varsta unui copil si sa afiseze greutatea si inaltimea ideala, folosind aceste formule.

Se introduc de la tastatura trei cifre. Afisati pe aceeasi linie 5 numere formate cu aceste cifre luate o singura data. Exemplu : date de intrare : 3 4 2 Date de iesire : 324 342 243 234 432.

Date trei numere, sa se calculeze toate sumele posibile de cate doua numere. Afisarea sa cuprinda si termenii sumei, nu numai valoarea ei. Exemplu: Date de intrare : 2 13 4 Date de iesire: 2+13 =15 2+4=6 13+4=17.

Afisati tabla inmultirii cu numarul n. Exemplu: pentru n=5, se va afisa pe verticala 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 6x5=30 7x5=35 8x5=40 9x5=45 10x5=50.

Se introduc lungimea si latimea unui dreptunghi. Sa se afiseze cuvantul PERIMETRU urmat de valoarea perimetrului acelui dreptunghi.

Dan are de facut mai multe exercitii de transformare in centimetri a unei marimi date in metri. Realizati un program care sa citesca valoarea in metri si sa o afiseze in centimetri. Exemplu: date de intrare: 72 date de iesire: 7200 cm.

Sa se scrie un program care citeste un numar de ani si calculeaza numarul de luni, zile si ore corespunzatoare. Se considera ca un an are 365 zile. Exemplu: date de intrare: 2 date de iesire: 24 luni 730 zile 17520 ore.

Mariuca tine evidenta iepurilor din crescatorie. Ea isi noteaza cati iepuri sunt la inceputul fiecarei luni, cati au murit si cati s-au nascut in cursul fiecaei luni. Puteti sa realizati un program care, primind aceste date, sa afiseze la sfarsitul fiecarei luni cati iepuri sunt  in crescatorie? Exemplu : Date de intrare : nr. Iepuri la inceput de luna 10 nr. iepuri morti 2 nr. iepuri nascuti 6 Date de iesire : 14 iepuri.

Intr-o gospodarie sunt 4 gaini. Introduceti in calculator prin variabilele a, b, c, d numarul de oua pe care-l da fiecare gaina intr-o zi. Afisati cate oua se obtin intr-o saptamana.

Se introduc in calculator doua date in variabilele a si b. Sa se faca un program care sa schimbe intre ele valorile acestor variabile si sa afiseze noile valori ale lui a si b.

O nava parcurge distanta d ( in km ) dintre doua statii orbitale in a saptamani si b zile. Sa se determine viteza navei exprimata in km/ora.

II.   Instructiunea de decizie ; algoritmi cu ramificatii

Comparari intre valorile a doua variabile


Date doua numere, afisati-l pe cel mai mic. Exemplu : Date de intrare : 44 32 Date de iesire : 32.

Se introduc varstele a doi copii. Afisati care copil este mai mare si diferenta de varsta dintre cei doi. Exemplu : Date de intrare : 6 13 date de iesire : al doilea copil este mai mare cu 7 ani.

Se introduc punctajele a doi sportivi. Afisati-le in ordine descrescatoare. Exemplu: Date de intrare 100 134 Date de iesire: 134 puncte 100 puncte

Dintr-o cutie cu trei numere se extrag doua numere. Cunoscand suma celor doua numere extrase, sa se afiseze numarul ramas in cutie. Exemplu : date de intrare : numere existente in cutie 5 12 8 suma numerelor extrase 13 date de iesire : 12.

Se dau doua numere. Sa se inmulteasca cel mai mare cu doi si cel mai mic cu trei si sa se afiseze rezultatele. Exemplu : date de intrare : 3 7 date de iesire : 9 14

Se introduc doua numere intregi. Sa se testeze daca primul numar este predecesorul (succesorul) celui de-al doilea si sa se afiseze un mesaj corespunzator. Exemple : date de intrare : 2 4 date de iesire : Nu ; date de intrare : 5 6 date de iesire : Da.


Compararea valorii unei variabile cu o constanta


Se introduc doua numere nenule si un semn de operatie (+,-,*,/). Sa se efectueze cu cele doua numere operatia introdusa si sa se afiseze expresia care s-a calculat urmata de semnul = si de valoarea ei. Exemplu : Date de intrare  10 6 * Date de iesire 10*6=60.

Se introduc trei date de forma numar ordine pacient, valoare glicemie. Afisati numarul de ordine al pacientilor cu glicemia mai mare decat 100. Exemplu : Date de intrare nr 6 glicemie 90 nr 10 glicemie 107 nr 21 glicemie 110 Date de iesire 10 21

Ionel spune parintilor doar notele mai mari sau egale cu 7. Intr-o zi el a luat trei note. Introduceti-le in calculator si afisati acele note pe care le va comunica si parintilor. Exemplu : Date de intrare 8 7 5 Date de iesire 8 7.

Se introduc doua numere. Daca al doilea numar este diferit de 0, sa se afiseze catul dintre primul si al doilea, iar daca este nul, sa se afiseze mesajul "Impartire imposibila". Exemple : Date de intrare 10 3 Date de iesire 3.33 Date de intrare 45 0 date de iesire Impartire imposibila.

Un lift pentru copii accepta o greutate de maxim 100 kg. Introducand in calculator greutatile a doi copii, specificati prin afisarea unui mesaj corespunzator, daca POT INTRA AMBII COPII sau INTRA PE RAND. Exemple : Date de intrare : greutati copii 87 50 Date de iesire : Intra pe rand Date de intrare 45 52 Date de iesire Pot intra ambii copii.

Ionel are voie sa se uite la TV 20 de ore pe saptamana. Se introduc numarul de ore cat se uita la TV in fiecare zi din saptamana. Sa se verifice daca va fi pedepsit sau nu. Exemplu: Date de intrare: 3 4 2 2 5 6 1 Date de iesire: Va fi pedepsit.

Sa se scrie un program care determina greutatea ideala a unei persoane cunoscand inaltimea, varsta si sexul persoanei. Formulele de calcul sunt: Gmasculin = 50 + 0.75 * (inaltime - 150) + (varsta - 20) / 4, Gfeminin = Gmasculin - 10, unde inaltimea este exprimata in cm si varsta in ani. Sexul se citeste sub forma unui caracter, f sau m. Exemplu: Date de intrare: inaltime= 160 varsta=21 sex=f Date de iesire: greutate= 47.75 kg.

Scrieti un program care sa permita alegerea unei optiuni dintr-un anumit meniu afisat pe ecran: se afiseaza meniul

1. suma

2. produs

se introduc doua numere si se alege o operatie din meniu prin introducerea numarului de ordine. Pe ecran sa apara expresia si valoarea calculata.


Testarea catului sau a restului impartirii intregi


Se dau trei numere. Sa se afiseze aceste numere unul sub altul, afisand in dreptul fiecaruia unul dintre cuvintele PAR sau IMPAR. Exemplu : Date de intrare : 45 3 24 Date de iesire : 45 impar 3 impar 24 par.

Se dau doua numere nenule. Sa se verifice daca primul se imparte exact la al doilea. Exemplu : Date de intrare : 45 7 Date de iesire : Nu.

Se dau doua numere. Sa se afiseze acele numere care se impart exact la 7. Exemplu : Date de intrare : 34 28 Date de iesire : 28.

"Ma iubeste un pic, mult, cu pasiune, la nebunie, de loc, un pic, . ". Rupand petalele unei margarete cu x petale, el (ea) ma iubeste . . Exemplu: Date de intrare: x=10 Date de iesire: . de loc.

La un concurs se dau ca premii primilor 100 de concurenti, tricouri de culoare alba, rosie, albastra si neagra, in aceasta secventa. Ionel este pe locul x. Ce culoare va avea tricoul pe care-l va primi? Exemplu : date de intrare : x=38 date de iesire : rosie.

Intr-o tabara, baietii sunt cazati cate 4 intr-o casuta, in ordinea sosirii. Ionel a sosit al n-lea. In a cata casuta se va afla? Exemplu : date de intrare : n=69 date de iesire : casuta 17.

Elevii clasei a V-a se repartizeaza in clase cate 25 in ordinea mediilor clasei a IV-a. Radu este pe locul x in ordinea mediilor. In ce clasa va fi repartizat (A, B, C, D sau E)?. Exemplu : date de intrare : x=73 date de iesire : C.

In Galaxia Reckya toate ceasurile au doar 4 ore. Stiind ca Gygely s-a nascut la ora 1 si ca va trai m ore, sa se spuna la ce ora va muri Gygely. (m<=50). Se da numarul m. Se cere ora la care va muri Gygely.

Ceasul arata astfel 1

4 2


Exemplu: Date de intrare: m=10 Date de iesire: 3. (www.contaminare.ro)

Operatori logici


Se dau trei numere diferite. Sa se afiseze cel mai mare si cel mai mic. Exemplu : Date de intrare 45 34 78 Date de iesire max=78 min=34.

Se dau trei numere diferite. Afisati-le in ordine crescatoare. Exemplu : Date de intrare 4 2 6 Date de ietire 2 4 6.

Se dau trei numere diferite. Afisati numarul a carei valoare este cuprinsa intre valorile celorlalte doua. Exemplu : Date de intrare 12 14 10 Date de iesire 12.

Se introduc trei date de forma numar curent elev, punctaj. Afisati numarul 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 iesire punctaj maxim are elevul cu nr crt 7.

Se introduc trei numere. Sa se verifice daca formeaza o secventa de numere consecutive. Exemple: Date de intrare 3 4 5 Date de iesire Da Date de intrare 4 5 7 Date de iesire Nu.

La ora de matematica Gigel este scos la tabla. Profesoara ii dicteaza trei numere si ii cere sa verifice daca cele trei numere pot fi laturile unui triunghi. Ajutati-l pe Gigel sa afle rezultatul. Scrieti un program care primeste numerele lui Gigel, care sunt mai mici ca 32000, si returneaza DA sau NU. Observatie: Trei numere pot fi laturile unui triunghi numai daca fiecare este mai mic ca suma celorlalte doua. Exemple: Date de intrare 3 5 7 Date de iesire Da Date de intrare 2 5 9 Date de iesire Nu.

Sa se verifice daca o litera introdusa este vocala sau consoana. Exemplu : Date de intrare a Date de iesire vocala.

Se introduc varstele a 3 persoane. Afisati varstele cuprinse intre 18 si 60 de ani. Exemplu : Date de intrare 56 34 12 Date de iesire 56 34.

Date doua numere, afisati acele numere care se impart exact la 7 si la 11. Exemplu : Date de intrare 154 213 Date de iesire 154.

Se dau doua numere. Sa se verifice daca numarul mai mare se imparte exact la cel mai mic. Exemplu : Date de intrare 10 250 Date de iesre 250 se imparte exact la 10.

Cunoscand data curenta exprimata prin trei numere intregi reprezentand anul, luna, ziua precum si data nasterii unei persoane, exprimata la fel, sa se faca un program care sa calculeze varsta persoanei respective in numar de ani impliniti. Exemplu : Date de intrare data curenta 2005 10 25 data nasterii 1960 11 2 Date de iesre 44 ani.


Probleme diverse


Andrei primeste intr-o zi trei note, nu toate bune. Se hotaraste ca, daca ultima nota este cel putin 8, sa le spuna parintilor toate notele primite iar daca este mai mica decat 8, sa le comunice doar cea mai mare nota dintre primele doua. Introduceti notele luate si afisati notele pe care le va comunica parintilor. Exemple : Date de intrare 6 9 9 Date de iesire 6 9 9 ; Date de intrare 8 5 7 Date de iesire 8.

Se considera trei numere intregi. Daca toate sunt pozitive, sa se afiseze numarul mai mare dintre al doilea si al treilea numar, in caz contrar sa se calculeze suma primelor doua numere. Exemple: Date de intrare 45 23 100 date de iesire 100 ; Date de intrare 34 -25 10 Date de iesire 9.

Sa se afiseze cel mai mare numar par dintre doua numere introduse in calculator. Exemple : Date de intrare 23 45  Date de iesire nu exista numar par ; Date de intrare 28 14 Date de iesire 28 ; Date de intrare 77 4 Date de iesire 4.

Pe o masa de biliard sunt bile albe, rosii si verzi. Din fiecare culoare sunt bile de doua dimensiuni: mari si mici. Sa se afiseze cate bile sunt in total pe masa de biliard. Un jucator vrea sa-i spuneti care bile sunt mai multe , cele mici sau cele mari, afisand numarul lor. De ce culoare sunt bilele cele mai numeroase? Precizati numarul 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 iesire Totalul bilelor: 17 Mari: 11 bile Verzi: 7 bile

(www.contaminare.ro).

La ferma de gaini Copanul este democratie. Fiecare pasare primeste exact acelasi numar de boabe de porumb. Cele care nu pot fi impartite vor fi primite de curcanul Clapon. Sa se spuna cine a primit mai multe boabe si cu cat. In caz de egalitate, se va afisa numarul de boabe primite si cuvantul 'egalitate'. Datele se vor citi in urmatoarea ordine: numarul de gaini, iar dupa aceea numarul de boabe de porumb. Exemplu: Date de intrare 100 4050 Date de iesire: Curcanul mai mult cu 10 boabe. (www.contaminare.ro).

III.   Instructiuni de ciclare , algoritmi ciclici

Utilizarea instructiunilor de ciclare pentru generare de numere


Sa se afiseze toate numerele de forma a23a care se impart exact la 6.

Un lift coboara de la etajul a la etajul b. Afisati toate etajele pe care le parcurge. Exemplu : Date de intrare 8 3 Date de iesire 8 7 6 5 4 3.

Sa se afiseze tabla inmultirii cu n. Exemplu : Date de intrare n=5 date de iesire 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 6x5=30 7x5=35 8x5=40 9x5=45 10x5=50.

Sa se afiseze perechile de numere a si b care satisfac relatiile a+b=1000; 17 divide pe a si 19 divide pe b.

Sa se genereze primii n termeni ai sirului 1,1,2,2,2,3,3,3,3,4,4,4,4,4, . .

Sa se afiseze primii n termeni ai sirului lui Fibonacci : 0,1,1,2,3,5,8,13,21 . .

Se da un numar. Sa se scrie, daca se poate, ca suma de doua numere impare. Exemple : date de intrare 24 Date de iesire 24=1+23 24=3+21 24=5+19 24=7+17 24=9+15 24=11+13 ; Date de intrare 33 Date de iesire Nu se poate.

Se da un numar. Sa se scrie, daca este posibil, ca suma de doua numere consecutive. Exemple : Date de intrare 5 Date de iesire 5=2+3 ; Date de intrare 6 Date de iesire Nu se poate.

Dandu-se un numar natural n, sa se gaseasca toate posibilitatile de scriere a acestui numar ca suma de numere consecutive. Exemplu : Date de intrare 15 Date de iesire 15=1+2+3+4+5 15=4+5+6 15=7+8.

Sa se afiseze toti divizorii unui numar natural dat. Exemplu : Date de intrare 12 Date de iesire 1 2 3 4 6 12.

Se introduce un numar. Sa se verifice daca este numar prim. Exemple: Date de intrare 23 date de iesire Prim ; Date de intrare 45 Date de iesire Nu este prim.

Sa se afiseze primele n numere prime. Exemplu: Date de intrare n=6 Date de iesire 2 3 5 7 11 13.

Stabilirea limitelor buclei for utilizand regula celor trei pahare


Un lift parcurge distanta dintre doua etaje a si b. Sa se afiseze toate etajele parcurse, in ordinea atingerii lor. Exemple : Date de intrare a=4 b=7 Date de iesire 4 5 6 7 ; Date de intrare a=10 b= 8 Date de iesire 10 9 8.

Se dau numerele a, b si c. Sa se scrie un program care sa afiseze in ordine crescatoare toate numerele care se divid cu a sau b si sunt mai mici decat c.

Indicatie: Se stabileste cu regula celor trei pahare ca in b sa fie numarul mai mare si in a cel mai mic si bucla se ia de la b la c.

Sa se calculeze suma numerelor naturale cuprinse intre doua numere date ( dintr-un interval). Exemplu: Date de intrare: capetele intervalului 3 6 Date de iesire suma=9.


Mai multe bucle for incluse una in alta (imbricate)


Sa se determine toate tripletele de numere a, b, c cu proprietatile: 1<a<b<c<100; a+b+c se divide cu 10.

Sa se afiseze toate numerele de doua cifre care adunate cu rasturnatul lor dau 55.

Se cere listarea numerelor cuprinse intre 100 si 599, avand cifrele in ordine crescatoare si suma cifrelor egala cu 18.

Sa se inlocuiasca literele cu cifre in scaderea urmatoare:    a b c b e-

e d a b


e b c e


Calcule de sume si produse


Sa se calculeze 7+14+21+28+ . +98, 3*6*9*12* . *33

Sa se calculeze sumele s1=1+2+3+ . +n

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 pana la introducerea numarului 0. Sa se afiseze suma tuturor numerelor introduse. Exemplu: Date de intrare 3 5 4 2 0 Date de iesire 14.

Se citesc numere de la tastatura pana la introducerea unui numar impar divizibil cu 3. Sa se afiseze suma tuturor numerelor pare introduse. Exemplu: Date de intrare 7 4 6 2 1 9 Date de iesire 12.


Utilizarea instructiunilor de ciclare pentru repetarea unor actiuni


Se dau numerele a si n. Sa se afiseze numarul a urmat de n zerouri. Exemplu : Date de intrare a=34 n=5 Date de iesire 3400000.

Se dau un numar n si un numar prim k. Sa se specifice la ce putere apare k in descompunerea in factori primi a numarului n. Exemplu : Date de intrare n=12 k=2 Date de iesire 2.

Sa se afiseze descompunerea unui numar dat in factori primi. Exemplu : Date de intrare 12 Date de iesire 12 = 2^2 3^1.

Un copac creste zilnic cu 0.75 cm. La plantare avea 1 m. Sa se afiseze dupa cate zile ajunge la inaltimea de 12 m. La ce inaltime ajunge dupa o luna (30 zile)?

Pentru a o elibera pe Ileana Cosanzeana, Fat-Frumos trebuie sa parcurga x km. El merge zilnic a km, dar Zana-cea-Rea il duce in fiecare noapte cu b km inapoi, b<a. Dupa cate zile o elibereaza? Exemplu: Date de intrare x=10 a=4 b=1 Date de iesire 3 zile.

A fost odata un balaur cu 6 capete. Intr-o zi Fat Frumos s-a suparat si i-a taiat un cap. Peste noapte i-au crescut alte 6 capete la loc. A doua zi Fat Frumos iar i-a taiat un cap dar peste noapte balaurului i-au crescut alte 6 capete . si tot asa timp de n zile. In cea de a (n+1)-a zi, Fat Frumos s-a plictisit si a plecat acasa! Scrieti un program care citeste de la tastatura n, numarul de zile, si care afiseaza pe ecran cate capete avea balaurul dupa n zile. Exemplu: pentru n=3 se va afisa 15 capete.    (ONI 2002 cl.a V-a)

A fost odata ca niciodata, a fost un cangur care crestea intr-un an precum altii in zece. Intr-o zi a inceput sa faca sarituri. Si a sarit pentru inceput 7 metri. A doua zi a sarit, in plus fata de ziua precedenta, de zece ori mai mult. In a treia zi a reusit sa sara, in plus fata de prima zi, de zece ori mai mult decat in ziua a doua. In a patra zi a sarit, in plus fata de prima zi, de zece ori mai mult decat in ziua a treia. Si tot asa mai departe. Scrieti un program care calculeaza cati metri a sarit cangurul, in total, in n zile. Exemplu: pentru n=3 se va afisa 861 m. (ONI Focsani 2003 cl.a V-a)

Se citesc de la tastatura numere naturale pana cand suma numerelor pare este mai mare decat k. Cate numere au fost introduse si care este suma numerelor pare? Exemplu: Date de intrare: K=12 5 8 1 2 2 3 6 Date de iesire: 7 (numere) 18 (suma celor pare) ( P.N.C. Bucuresti, Cupa Martisor 2005)


Algoritmi de insumare, contorizare, determinare a min si max

Se citesc pe rand 4 numere intregi. Sa se numere cate dintre ele au restul 7 la impartirea cu 13. Sa se afiseze aceste numere si produsul celorlalte numere. Exemplu: Date de intrare 20 15 30 46 Date de iesire Numere: 20 46 Total: 2 Produs: 450.

Se citesc pe rand temperaturile medii ale fiecarei luni a unui an, ca numere intregi. Sa se afiseze cu doua zecimale media anuala a temperaturilor pozitive si a celor negative. Exemplu: Date de intrare -5 -3 1 8 12 17 20 21 18 10 6 -2 Date de iesire medie_poz=13.66 medie_neg=-3.33.

Se citesc numere naturale strict pozitive pana la intalnirea numarului 0. Sa se numere cate dintre ele sunt pare, presupunand ca cel putin primul element este nenul. Exemplu: Date de intrare 4 3 6 5 7 7 0 Date de iesire 2 numere pare.

Se introduc datele de nastere a n copii, sub forma an, numar luna, zi. Sa se afiseze cati copii sunt nascuti pe 1 iunie si cati copii sunt nascuti in 1994, 1995 si 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 iesire 2 copii nascuti la 1 iunie 2 copii nascuti in 1994 1995 1996.

Se citesc de la tastatura numere intregi pozitive atata timp cat suma lor nu depaseste 1000. Sa se scrie un program care sa afiseze cea mai mica si cea mai mare valoare a acestor numere. Exemplu: 550 345 100 45 Date de iesire max=550 min=100.

Se citesc mediile a n elevi, ca numere reale. Sa se afiseze cea mai mare si cea mai mica medie. Sa se verifice daca sunt corigenti. Exemplu : Date de intrare n=4 9.50 4.25 9.66 6.33 Date de iesire max=9.66 min=4.25 1 corigent.


Algoritmul de impartire in cifre a unui numar


Se dau trei numere a,b,c, de cate doua cifre, nenule, fiecare. Folosind cifrele unitatilor celor trei numere se va genera un numar x de trei cifre, iar cu cifrele zecilor se va genera un numar y de trei cifre. Sa se afiseze x si y. Exemplu : date de intrare a=24 b=13 c=64 date de iesire x=434 y=216.

Se introduce un numar natural cu maxim 9 cifre. Sa se determine si sa se afiseze numarul de cifre, cea mai mare cifra si suma tuturor cifrelor acestui numar. Exemplu: Date de intrare 24356103 Date de iesire 8 cifre max=6 min=0 suma=24.

Cate cifre pare sunt intr-un numar dat? Exemplu : Date de intrare 34425346 Date de iesire 4 cifre.

Sa se verifice daca la scrierea unui numar, introdus de la tastatura, cifrele pare si impare alterneaza. Exemplu : date de intrare 347092 date de iesire da.

In cate zerouri se termina un numar de maxim 9 cifre, introdus de la tastatura? Exemplu : Date de intrare 20034000 Date de iesire 3 zerouri.

Se introduce un numar. Sa se verifice daca este palindrom. Exemple : Date de intrare 12321 Date de iesire Da ; Date de intrare 23034 Date de iesire Nu.

Sa se afiseze toate numerele palindroame mai mari decat 10 si mai mici decat un numar dat, n. Exemplu : Date de intrare n=110 date de iesire 11 22 33 44 55 66 77 88 99 101.

Se introduce un numar natural n cu maxim 8 cifre, nenule si distincte, mai mici ca 9. Sa se afiseze cifrele numarului in ordine descrescatoare. Indicatie: fiecare cifra c se inmulteste cu 10c, se aduna aceste numere si se afiseaza fara zerouri. Exemplu: pentru n=354, s-ar face urmatoarele calcule: 4*104+5*105+3*103=54300 si se va afisa 543 .

Dat un numar intreg de maxim 9 cifre, sa se afiseze numarul de aparitii al fiecarei cifre. Exemplu : Date de intrare 364901211 Date de iesire 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.

Afisati cate cifre distincte contine un numar nenul. Exemplu : date de intrare 234323 Date de iesire 3 cifre.

Se dau doua numere naturale a,b cu maxim 9 cifre. a) Sa se determine cifrele distincte comune numerelor a si b. b) Sa se afiseze numarul cel mai mare format din toate cifrele lui a si b

Exemplu : pentru a=2115 b=29025 se va afisa a) 2 5 b) 955222110 (OJI, clasa a V-a, 2004)

Se introduc doua numere, a si b, a<b<5000000. Sa se afiseze ultima cifra a sumei tuturor numerelor aflate intre a si b. Exemple: Date de intrare a=12 b=14 date de iesire 9 ; date de intrare a=1000000 b=3000000 date de iesire 0.

Se dau doua numere avand acelasi numar de cifre. Cate cifre trebuie modificate pentru a transforma un numar in celalalt ? Exemplu : pentru n1= 2135 si n2= 7139 este necesara modificarea a doua cifre.

Algoritmul lui Euclid


Se dau doua numere nenule. Sa se afiseze cmmdc si cmmmc al lor. Exemplu : Date de intrare 12 32 Date de iesire cmmdc=4 cmmmc 96.

Se dau numitorul si numaratorul unei fractii. Sa se simplifice, daca se poate, si sa se afiseze fractia simplificata. Exemplu : Date de intrare 12 32 Date de iesire 3/8.

Se dau trei numere. Determinati si afisati cmmmdc al lor. Exemplu : Date de intrare 12 32 38 Date de iesire 2.

Se da numarul n, sa se afiseze toate numerele mai mici ca el prime cu el. Exemplu : date de intrare n=10 date de iesire 1 3 7 9.

Intr-o tabara participa b baieti si f fete. Se organizeaza un joc la care trebuie sa participe un numar cat mai mare de echipe, formate din acelasi numar nrb de baieti si nrf de fete. Trebuie sa scrieti un program care determina numarul maxim de echipe care se pot forma si numarul nrb de baieti si, respectiv numarul nrf de fete, care intra in componente fiecarei echipe. Daca nu se pot forma cel putin doua echipe identice, afisati Nu ne putem juca. Exemple: pentru b=10 f=15 se va afisa: 5 echipe cu 2 baieti 3 fete, pentru b=12 f=25 se va afisa Nu ne putem juca.

Se citesc de la tastatura patru numere intregi diferite de zero. Numerele reprezinta in ordinea citirii: numaratorul si numitorul primei fractii, respectiv numaratorul si numitorul celei de a doua fractii. Sa se adune cele doua fractii si sa se afiseze numaratorul si numitorul sumei. Exemplu: Date de intrare: 6 18 12 24 Date de iesire: 5 6.

Probleme diverse


Sa se afiseze toate numerele pana la 100 care au patru divizori.

Dintre numerele mai mici ca 1000, care au cei mai multi divizori ?

Se dau n numere. In cate zerouri se va termina produsul lor? Exemplu : date de intrare n=4 5 4 10 25 date de iesire 3 zerouri.

Se da un numar natural n, n<=100 si o cifra k din multimea . Se cere sa se afiseze exponentul lui k in descompunerea in factori primi a produsului 1*2*3* . *n. Exemplu: date de intrare n=8 k=2 date de iesire 7. (ONI 2003 clasa a V-a)

Se introduc temperaturile medii masurate in fiecare luna a unui an. Sa se afiseze valoarea celei mai mari temperaturi negative si 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 iesire max negative=-1 min pozitive=5.

Se citeste un numar natural n cu cel mult 9 cifre si se cere sa se afiseze o piramida formata 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 sa fie scris numarul dat. Exemplu: n=237855 se va afisa 7 8 3 7 8 5 2 3 7 8 5 5

Data valoarea unui numar natural, se cere sa se tipareasca in scriere romana.

Se citesc pe rand caracter cu caracter elementele unei expresii matematice, caracterele citite pot fi doar cifre si +, -, * ,/ si =, pana la intalnirea semnului =. Operatiile se fac in ordinea introducerii lor, fara a se tine seama de prioritate. Calculatorul sa afiseze rezultatul expresiei.

O broscuta se deplaseaza efectuand cate o saritura de lungime p cm la fiecare secunda. Dupa fiecare n secunde broscuta devine mai obosita, iar lungimea sariturii pe care o face se injumatateste. Scrieti un program care sa citeasca de la tastatura lungimea initiala a sariturii, p, numarul de secunde dupa care broscuta isi injumatateste saltul, n, precum si durata totala a deplasarii broscutei T (exprimata in secunde) si care sa determine distanta totala pe care a parcurs-o broscuta. Distanta totala determinata va fi afisata pe ecran cu doua zecimale. Restrictii: p, n, T sunt numere naturale; p, n, T<30000;T/n<16 Exemplu Pentru n=10, p=20 si T=33, distanta totala pe care se deplaseaza broscuta este 357.50 cm.   (ONI, Galaciuc 2001, clasa a V-a)

La un concurs de matematica participa elevi din mai multe scoli din diferite orase. Pentru a se putea deosebi intre ele lucrarile lor, fiecare lucrare este codificata printr-un numar natural cu 3 cifre, sa zicem abc, unde a este codul orasului, b este codul scolii din orasul a iar c este codul unui elev din scoala b din orasul a. Ex.: lucrarea cu codul 328 este lucrarea elevului cu codul 8 de la scoala cu codul 2 din orasul cu codul 3. Se cunosc: un cod (al lucrarii unui elev H, prietenul nostru), numarul n de lucrari si codurile acestora. Cerinta: Se cere sa se rezolve cerintele:

a) Verificati daca H este premiant sau nu.

b) Determinati numarul de premii luate de elevii din orasul lui H

c) Determinati numarul de premii luate de elevii din scoala lui H

Exemplu: date de intrare codH 123 n=4 133 221 123 125 Date de iesire a) da b) 3 c) 2

(OJI, clasa a V-a, februarie 2004)

O carte are N pagini. Pe paginile care au numarul asociat divizibil cu K si nedivizibil cu H se afla poze. Cerinta: pentru N, K, H citite de la tastatura se cere sa se afiseze ultima cifra a sumei numerelor asociate paginilor care au poze, daca problema nu are solutie se va afisa mesajul: Imposibil!

Restrictii 0<N<1000000001 0<K,H N. Exemplu Pentru N=20, K=3, H=2 se va afisa 7

(CNI Satu-Mare 2003 clasa a V-a)

Intr-o parcare sunt n masini care au numere de inmatriculare provizorii (numere intregi, din cel mult 5 cifre). Masinile sunt asezate in ordinea de citire a numerelor de inmatriculare. Sa se afiseze pozitiile pe care se afla masinile pentru care suma cifrelor numarului de inmatriculare este impara ( n<= 20).

Exemplu: pt. n=5 si numerele de inmatriculare: 634 90281 63721 30361 70915 se vor afisa pozitiile: 1 3 4 (CNI Satu-Mare 2002 clasa a V-a)

In vacanta la mare dupa ce se plictiseste de plaja si apa, Ionica este mai tot timpul in Parcul de distractii. Dintre toate locurile de distractie el a ales tirul. Astfel, intr-o seara Ionica obtine S puncte, dupa un anumit numar de trageri (cel putin doua trageri). Stiind ca la toate tragerile efectuate a obtinut puncte si ca dupa fiecare tragere el progreseaza constant, adica obtine cu un punct mai mult decat la tragerea anterioara, se cere sa se determine toate modalitatile de obtinere a punctajelor (cu suma lor egala cu S). Date de intrare: de la tastatura se va citi valoarea lui S (numar natural nenul ≤ 998877). Date de iesire: Pentru fiecare solutie se va afisa pe cate un rand numarul de trageri si punctajul primei trageri cu un spatiu intre ele, iar la sfarsit pe ultima linie se va afisa mesajul Numar solutii, urmat de numarul de solutii. Exemplu: Pentru S=15 pe ecran se va afisa: 5 1 2 7 3 4 Numar solutii 3 (ONI Galaciuc 2002 clasa a V-a)

Pentru a descoperi numarul cheii ce trebuie sa o foloseasca pentru a putea sa o elibereze pe Ileana Cosanzeana, Fat-Frumos are de rezolvat urmatoarea problema: Pentru numarul citit pe usa, trebuie sa calculeze suma divizorilor si, daca aceasta suma este un numar prim, atunci codul este egal cu suma cifrelor numarului citit. In caz contrar, codul este egal cu suma cifrelor impare ale numarului citit. Ajutati-l pe erou sa descopere numarul cheii. Exemple: date de intrare 472 date de iesire cheia 7 ; Date de intrare 4 date de iesire cheia 4. (CNI-etapa judeteana, 2005)

Se dau doua numere avand acelasi numar de cifre. Cate cifre trebuie modificate pentru a transforma un numar in celalalt? Exemplu: date de intrare n1=2135 n2=7139 date de iesire 2 cifre.

(CNI-etapa judeteana, 2005)

IV.   Variabile booleene


1) Catalina are o maimuta care a invatat sa scrie la tastatura. Pentru aceasta saptamana trebuie sa invete sa scrie trei cuvinte de maximum 10 caractere. Din pacate, maimuta se grabeste si apasa gresit pe taste. Ajutati-o pe Catalina sa verifice cand maimuta a scris corect cele trei cuvinte. Date de intrare: cele trei cuvinte si cuvintele introduse de maimuta. Programul se va opri atunci cand maimuta a reusit sa scrie corect toate cele trei cuvinte indiferent de ordinea introducerii sau de numarul de cuvinte gresite introduse. Separarea intre cuvinte se face apasand tasta Enter. Exemplu: Pentru cuvintele: Palat calculator jungla, maimuta poate tasta: palat Calutin jungla Pialat Cucalator calculator Palat se va afisa AI REUSIT! (www.contaminare.ro)

Cine se uita la televizor ?

Ana, Barbu, Calin, Dumitru si Elena petrec impreuna o zi de iarna.

Daca Ana priveste la TV, la fel face si Barbu

Fie Dumitru, fie Elena, fie amandoi privesc la TV

Fie Barbu, fie Calin priveste la TV, dar nu amandoi

Dumitru si Calin fie privesc, fie nu privesc la TV, dar asta numai impreuna

Daca Elena priveste la TV atunci Ana si Dumitru se uita si ei

Indicatie : se vor folosi variabilele booleene a,b,c,d,e care vor avea valoarea true sau false dupa cum propozitiile « Ana se uita la TV », « Barbu se uita la TV », etc. sunt adevarate sau false.

Cine minte ?

Intr-o imprejurare in care sunt implicati a, b si c se fac urmatoarele afirmatii : a sustine ca b minte, b sustine ca c minte, c sustine ca a si b mint. Cine minte si cine spune adevarul ?

V.      Generarea aleatoare a numerelor


Functia random si procedura randomize


Sa se simuleze aruncarea unui zar de n ori afisandu-se valoarea fetei si sa se afiseze de cate ori a aparut valoarea 6.

Se arunca 2 zaruri pana la obtinerea unei duble. Sa se afiseze suma punctelor.

Se extrag n bile dintr-o urna, notate de la 1 la 20. Valoarea bilei va fi generata de calculator. Sa se afiseze cea mai mare valoare extrasa.

Dintr-o urna cu bile albe si negre se extrage pe rand cate o bila, de n ori. Afisati cate bile albe si cate negre au fost extrase.

Sa se faca un test de inmultire cu doua numere cuprinse intre 0 si 10, generate de calculator, care sa cuprinda cel mult 5 incercari.

VI.   Tablouri cu o dimensiune (vectori)


Introducere, parcurgere, afisare

Parcurgere cu instructiunea for


Se citesc 4 numere de maxim 9 cifre. Sa se afiseze pe verticala, specificandu-se si pozitia pe care o ocupa in sir. Exemplu: Date de intrare 5 3 7 6 Date de iesire 5 pozitia 1

3 pozitia 2

7 pozitia 3

6 pozitia 4

Se da un sir de 10 numere naturale. Sa se afiseze pe doua randuri, pe primul rand cele pare si pe al doilea cele impare. Exemplu: Date de intrare 4 3 2 5 6 8 9 0 1 5 Date de iesire 4 2 6 8 0 3 5 9 1 5

Se introduc 10 litere, sa se afiseze in ordinea inversa introducerii. Exemplu: Date de intrare a b r a c a d a b r Date de iesire r b a d a c a r b a.

Un acrostih este o poezie la care, citind inceputul fiecarui vers, se obtine un mesaj. Sa se introduca un acrostih, vers cu vers, si sa se afiseze mesajul dat de primele litere. Exemplu: pentru Vreau sa dorm Rad in somn Este ca un drog Acest drag somn Uitat in pat

Se va afisa VREAU

Introduceti n numere intr-un vector si un numar d. Afisati acele numere din sirul dat care sunt divizibile cu d. Exemplu: date de intrare n=5 numere: 5 7 10 23 15 d=5 Date de iesire 5 10 15.

Robin Hood se afla la un concurs de tras cu arcul. Acolo el trebuie sa obtina punctajul x doar din trei sageti(sageata 1+sageata2+sageata3=punctajul x). Tinta este formata din n cercuri concentrice (unul in altul). Fiecare cerc are un anumit punctaj. Sa se spuna valorile cercurilor in care trebuie sa traga Robin Hood pentru a obtine punctajul x. Daca exista mai multe solutii, sa se printeze toate. Daca nu exista solutii, sa se printeze "imposibil". Date de intrare: pe prima linie n si x, pe a doua linie valoarea fiecarui cerc. Date de iesire: solutiile sau "imposibil". Exemplu: Intrare:n=3 x=4 valori cercuri 1 2 3 4 Iesire: 1 1 2 (explicatie: 1+1+2=4)

(www.contaminare.ro)


Utilizarea altor instructiuni de ciclare pentru parcurgerea vectorilor


Sa se afiseze elementele unui vector pana la prima valoare nula. Daca nu exista nici un 0, se vor afisa toate numerele si mesajul "Nici un element nul". Exemplu: Date de intrare: numar elemente=5, numere 3 6 8 0 2 3 Date de iesire 3 6 8.

Se introduc n numere reprezentand punctajele obtinute la un concurs. Sa se afiseze primele k punctaje mai mari decat o valoare b, necesara calificarii la o etapa superioara. Daca nu sunt suficienti concurenti care sa fi obtinut punctaj peste b, sa se afiseze si mesajul "Candidati insuficienti". Exemplu: Date de intrare n=3 punctaje: 45 23 78 k=2 b=50 Date de iesire 78.

Se introduc un numar par de numere. Sa se adune cate doua numere consecutive si sa se afiseze sumele obtinute. Exemplu: Date de intrare: numar elemente: 6, numere 5 4 3 6 5 5 Date de iesire 9 9 10.

Se introduc pe rand n caractere. Sa se afiseze pe ce pozitie apare prima data caracterul spatiu. Exemplu: Date de intrare n=10 caractere i n f o c l u b 7 Date de iesire 5.

Capitanul Jack O'Neel se afla pe o nava spatiala. Nava are lungimea de n camere si latimea de o camera. El se afla in camera numarul 1. In fiecare camera se afla un dispozitiv de teleportare. Acest dispozitiv te poate teleporta intr-o alta camera din cele n. Sa se spuna daca O'Neel poate ajunge in camera h. Date de intrare: Pe prima linie numarul n si numarul h. Pe a doua linie sunt n numere, fiecare numar indica in ce camera il transmite pe Jack O'Neel teleportorul din acea camera. Date de iesire: Daca O'Neel poate ajunge in camera h se va printa 'DA' si camerele prin care a trecut. Daca nu poate ajunge in camera h sa se printeze 'NU'. Obs: Daca O'Neel trece de doua ori prin aceeasi camera, acesta nu mai incearca sa ajunga in camera h si se va printa 'NU'. Exemple: Date de intrare: n=5 h=4 teleportari: 2 3 4 1 3 Date de iesire:
DA 1 2 3 4 Date de intrare: n=4 h=4 teleportari:1 2 3 4 date de iesire: NU (www.contaminare.ro)

Sume, produse, contorizari, min, max

Sa se afiseze suma valorilor pozitive si suma valorilor negative din n numere date. Exemplu: Date de intrare n=6 numere 6 9 -8 7 -5 -3 Date de iesire: S poz= 22 S neg=-16.

Se introduc temperaturile masurate in n zile. Sa se afiseze media temperaturilor negative si media celor pozitive. Exemplu: Date de intrare n=5 temperaturi 23 24 23 25 22 Date de iesire 23.40

Din n numere intregi introduse in calculator doar unul este nul si nu este primul sau ultimul. Afisati suma numerelor din fata acestui 0 si suma celor de dupa el. Exemplu: Date de intrare n=5 numere 4 5 1 0 7 Date de iesire s1=10 s2=7.

Intr-un sir de numere intregi, sa se afiseze suma elementelor de pe pozitiile pare si suma celor de pe pozitii impare. Exemplu: Date de intrare n=6 numere 3 1 5 4 6 7 Date de iesire simp=14 spar=12.

Se introduc in calculator si se memoreaza varstele a n barbati. Afisati cati au varsta mai mare decat 50 si mai mica decat 70 de ani. Exemplu: Date de intrare n=4 varste 56 45 76 65 Date de iesire 2 barbati.

La o cura de slabire de k zile se inscriu n persoane, fiecare cu greutatea g(i). Stiind ca greutatea ideala este mai mare sau egala cu a si mai mica sau egala cu b, iar persoanele urmeaza tratamente diferite astfel: cei sub greutate ideala se ingrasa 1 kg pe zi, cei peste greutatea ideala slabesc 1 kg pe zi, cei cu greutatea ideala isi pastreaza greutatea, aflati a) numarul de persoane cu greutate ideala la inceputul tratamentului ; b) numarul persoanelor cu greutate ideala dupa cele k zile de tratament. Exemplu: n=10 k=7 a=40 b=50 si 38 41 48 50 54 58 60 42 32 se va afisa a) 4 persoane b) 7 persoane. (InfoStar Aiud 1998 clasa a VI-a)

Date n numere naturale, cate sunt prime cu 7? Dar cu 10? Exemplu: Date de intrare n=6 numere 5 7 14 20 12 15 Date de iesire: prime cu 7: 4 nr, prime cu 10: 1 nr.

Se introduc n numere egale cu 0, 1 sau 2. Sa se scrie un program care sa determine pe ce pozitie apare primul 0, de cate ori apare fiecare cifra si care este cifra folosita cel mai putin. Exemplu: Date de intrare n=7 numere: 1 1 0 2 1 0 1 Date de iesire: 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 .

Afisati cate numere au forma aaa , din n numere date. Exemplu: Date de intrare n=3 numere 123 222 434 Date de iesire 1 nr.

Se introduc inaltimile, exprimate in cm, a n copii. Afisati inaltimea celui mai inalt si inaltimea celui mai scund copil. Care este diferenta de inaltime intre ei? Exemplu: Date de intrare: n=5 inaltimi 120 118 120 115 100 117 Date de iesire imax=120 cm imin=100 cm diferenta=20 cm.

Se dau n numere. Sa se determine cea mai mica valoare si sa se afiseze de cate ori apare ea in sir. Exemplu: Date de intrare n=8 numere 6 4 7 5 8 5 9 5 Date de iesire min=5 apare de 3 ori.

Se introduc n numere intregi. Dintre numerele mai mici ca 100, afisati numarul cu valoarea cea mai mare. Exemplu: Date de intrare: n=4 numere 120 98 34 105 Date de iesire: 98.

Sa se calculeze suma componentelor pozitive, produsul celor negative si numarul 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 iesire: s=6 p=-12 c=2.

Un lot de pamant este impartit in n parcele dreptunghiulare, numerotate de la 1 la n. Se citesc perechile de numere care reprezinta lungimea si latimea fiecarei parcele. Sa se afiseze suma ariilor parcelelor si valoarea celei mai mari suprafete. Exemplu: Date de intrare: n=3, lungime=10 latime=5 lungime=15 latime=10 lungime=12 latime=5 Date de iesire: suma=260 max=150.

Sa se inlocuiasca fiecare element dintr-un sir numeric cu media aritmetica a celorlalte n-1 elemente ale sale. Exemplu: Date de intrare: n=3 numere 1 2 3 Date de iesire: 2.5 2 1.5

Mos Craciun soseste in mijlocul copiilor oferind fiecarui copil un cadou cu o anumita valoare (numarul copiilor se citeste de la tastatura, precum si valorile cadourilor, in lei). Sa se spuna:

-cat a cheltuit Mosul pentru cumpararea cadourilor (in mosi, 1 leu=6 mosi)

-daca Mosul are sau nu un copil preferat, adica daca exista un copil al carui cadou sa aiba valoarea mai mare decat suma valorilor cadourilor tuturor celorlalti copii. Daca exista, afisati DA, urmat de indicele copilului, in caz contrar afisati NU. Exemplu: daca n=5 valori cadouri: 10 50 6 5 20, se va afisa: Mosul a cheltuit 546 mosi DA 2 (InfoStar, Aiud 1995 clasa a VI-a)

Un pitic vrea sa urce o scara care are n trepte de inaltimi date, ordonate crescator. Inaltimile treptelor sunt in cm si sunt valori intregi. Acolo unde diferenta intre doua trepte consecutive este de 1 cm piticul urca fara dificultati, unde diferenta este mai mare decat 1 cm piticul trebuie sa ia o pastila care ii da putere sa sara pe treapta urmatoare. Cunoscand inaltimile treptelor, prima fiind obligatoriu 0, piticul vrea sa afle care este numarul minim de pastile de care are nevoie pentru a urca scara si de asemenea care este cea mai mare diferenta dintre doua trepte consecutive. Exemplu: pentru n=9 si inaltimile treptelor 0 3 4 6 7 10 19 20 21, se va afisa: numar minim de pastile =4 diferenta maxima=9 (InfoStar, Aiud 1996 clasa a VI-a)

Copiii dintr-o clasa merg la cules de portocale. Se citeste de la tastatura numarul de copii din clasa si cate portocale a cules fiecare copil. Stiind ca cel care spune ca a cules cele mai multe portocale si cel care spune ca a cules cele mai putine portocale mint, sa se spuna cate portocale au cules impreuna toti copiii din clasa care spun adevarul. Exemplu: date de intrare : 5 (nr. de copii din clasa) 69 25 14 329 54 date de iesire: 148.

Se citesc de la tastatura n numere naturale. Sa se spuna cate din ele sunt cu 3 cifre.

Intr-o clasa sunt x copii. Acestia merg intr-o piata in care sunt n vanzatori de mere. Se citeste de la tastatura numarul de mere ale fiecarui vanzator. Copiii vor cumpara mere doar de la vanzatorii care au cel putin 3 mere pentru fiecare copil. Cati vanzatori indeplinesc aceasta conditie? Exemplu: Date de intrare: x=25 (numarul de copii) n=5 (numarul de vanzatori) 280 456 78 50 75 Date de iesire: 4 (vanzatori) (P.N.C. Bucuresti, Cupa Martisor 2005.)

Se considera n multimi. Fiecare multime contine numai numere consecutive. Pentru a da aceste multimi este suficient sa dam primul si ultimul element. Scrieti un program care sa determine elementele intersectiei celor n multimi. Date de intrare: De la tastatura se citeste numarul n. Apoi perechi de numere, cate una pe un rand, separate prin cate un spatiu, care reprezinta cel mai mic, respectiv cel mai mare element din fiecare multime. Date de iesire: Pe ecran se va afisa pe prima linie elementele intersectiei cu cate un spatiu intre ele. Restrictii si precizari: 0 < n < 31 Elementele multimilor sunt numere naturale < 41.

Exemplu: date de intrare: n=3 perechi: 5 10 2 9 4 11 Date de iesire: 5 6 7 8 9.

Ordonarea elementelor unui vector


Se dau n numere reale. Sa se afiseze in ordine crescatoare. Exemplu:Date de intrare: n=4 numere:7 -3 9.8 0 Date de iesire -3 0 7 9.8

Se da un vector cu n componente intregi. Se cere sa se afiseze primele k componente in ordine crescatoare iar celelalte in ordine descrescatoare. Exemplu: n=7 k=3 sirul 23 12 18 4 0 23 5 se va afisa 12 18 23 23 5 4 0

N numere naturale introduse de la tastatura sa se afiseze astfel: numerele pare in ordine crescatoare si cele impare in ordine descrescatoare. Exemplu: pentru n=7 si sirul 2 5 3 1 8 5 4 se va afisa 2 1 3 5 4 5 8.

Prin ordonarea elementelor unui vector format din n caractere, sa se afiseze de cate ori apare fiecare caracter. Exemplu: Date de intrare: n=4 elemente: a 4 g a Date de iesire: a apare de 2 ori g apare de 1 ori 4 apare de 1 ori.

Cunoscand numele si inaltimea a n elevi, n<=100, sa se afiseze numele acestora in ordinea descrescatoare a inaltimii. Exemplu: Date de intrare: n=3 nume: Ion inaltime: 120 nume:Ana inaltime:114 nume: Dan inaltime 130 Date de iesire: Dan Ion Ana

La un concurs participa n sportivi. Se cunosc rezultatele fiecarui sportiv. Sa se afiseze cele mai bune trei rezultate, in ordine descrescatoare a performantei. Exemplu: pentru n=5 si rezultatele 156 187 23 97 86 se va afisa 187 156 97.

Se cunosc punctajele obtinute de cei n elevi participanti la un concurs de informatica. Stiind ca doi elevi primesc acelasi premiu numai daca au punctaje egale, sa se determine cati elevi primesc Premiul I, cati Premiul II si cati Premiul III. Cerinta: Scrieti un program care citeste de la tastatura numarul concurentilor precum si punctajele acestora, luate din borderoul de corectare, si determina si afiseaza pe ecran pe cate o linie numarul de elevi pentru fiecare din cele trei premii. Restrictii: numarul n al elevilor nu depaseste 300 iar punctajul fiecaruia este un numar natural cel mult egal cu 100. Exemplu: Pentru n=10 si punctajele: 58 79 34 12 58 40 79 58 30 58 se vor afisa numerele: 2 4 1 ceea ce inseamna ca 2 elevi primesc Premiul I (cei care au obtinut 79 puncte), 4 elevi obtin Premiul II (cei cu 58 puncte) si un elev (cel cu 40 puncte) primeste Premiul III.

Se introduc n numere de cate una sau doua cifre. Sa se afiseze aceste numere in ordinea crescatoare a primei lor cifre. Exemplu: pentru n=5 si numerele 34 2 5 62 25 se va afisa 2 25 34 5 62 sau 25 2 34 5 62.

Deplasarea elementelor unui vector


Sa se insereze cifra 0 pe prima pozitie a unui vector dat, fara a utiliza un alt vector. Exemplu: Date de intrare: n=4 numere: 5 3 7 8 Date de iesire: 0 5 3 7 8.

Se introduc n numere in calculator. Sa se rearanjeze elementele din sir astfel incat primul element al sirului dat sa apara pe ultima pozitie. Exemplu: Date de intrare: n=3 numere: 1 2 3 Date de iesire: 2 3 1.

Se introduc n numere in ordine crescatoare si un numar k. Sa se insereze acest numar in sirul dat astfel incat sa ramana sortat crescator. Exemplu: Date de intrare: n=4 k=100 numere: 90 95 110 120 Date de iesire: 90 95 100 110 120.

Definim operatia de compactare a unui tablou ca fiind eliminarea zerourilor. Daca intalnim un element nul toate elementele situate la dreapta sa vor veni cu o pozitie mai in fata, in locul sau. Se da un tablou cu n elemente intregi. Compactati-l. Exemplu: Date de intrare: n=4 numere: 9 0 0 5 Date de iesire: 9 5.

Sa se aseze toate elementele egale cu o valoare v dintr-un sir de n numere date, la sfarsitul sirului. Exemplu: Date de intrare: n=4 v=5 numere: 5 6 5 3 Date de iesire: 6 3 5 5.

Se introduc in calculator doua tablouri de dimensiunem, respectiv n, si un numar k, k<=m. Sa se intercaleze in primul tablou, dupa pozitia k, tabloul al doilea.

Verificarea unor proprietati


Se introduc doua siruri de numere cu acelasi numar de elemente. Sa se verifice daca valorile lor, in ordinea data, sunt proportionale. Exemplu: Date de intrare: n=3 sir1: 1 2 3 sir2: 3 6 9 Date de iesire: Da.

Sa se verifice daca un vector dat este monoton crescator.

Sa se caute un numar x printre n numere intregi generate de calculator avand valori intre 0 si 100. Daca se gaseste valoarea respectiva sa se afiseze ultima pozitie in care apare, daca nu se gaseste, sa se afiseze mesajul "numar inexistent"

Un tren este format din n vagoane de clasa I-a si a II-a. Seful de tren nu vrea sa fie mai mult de k vagoane de aceeasi clasa unul dupa altul. Introducandu-se o aranjare a vagoanelor, sa se testeze daca exista mai mult de k vagoane de acelasi fel consecutive. Se va afisa un mesaj corespunzator. In caz afirmativ, sa se afiseze si pozitia de inceput a subsirurilor cu mai mult de k elemente de acelasi fel. Exemplu: Date de intrare: n=6 k=3 tip vagoane: 1 1 2 2 2 2 Date de iesire: Da, pozitia de inceput 3.

Date doua siruri de numere, a cu n elemente si b cu m elemente, m< n, sa se verifice daca b este subsir al lui a. Exemplu: Date de intrare: n=4 elemente a: 1 2 3 4 m=2 elemente b: 2 4 date de iesire: da.

Se da un sir de numere reale. Sa se verifice daca sirul este o progresie aritmetica (diferenta dintre oricare doua numere alaturate este aceeasi, de exemplu: 1,4,7,10,13)

Sa se verifice daca n numere date formeaza o multime (elementele sunt distincte), ordonind elementele. Exemple: Date de intrare: n=4 numere: 4 6 2 6 Date de iesire: Nu ; Date de intrare: n=3 numere: 3 5 2 Date de iesire: Da.

Sa se verifice daca doi vectori cu aceeasi lungime au aceleasi elemente, ordonind ambii vectori in prealabil. Exemple: Date de intrare: n=3 primul vector: 4 2 6 al doilea vector: 6 2 4 Date de iesire: Da; Date de intrare: n=2 primul vector: 4 2 al doilea vector: 3 4 Date de iesire: Nu.


Construirea unor vectori


Ciurul lui Eratostene: Sa se formeze un vector care sa contina elementele prime mai mici decat un numar dat n, n<1000, utilizand procedeul de excludere prezentat in manualul de matematica (excluderea se va face prin inlocuirea elementului cu 0 si nu se vor afisa elementele nule).

Intr-o inchisoare cu n celule se afla, la un moment dat, n detinuti. Se ia hotararea sa fie eliberati anumiti detinuti, alegerea lor facandu-se intr-un mod special. In inchisoarea aceea erau tot n gardieni. Procedeul de determinare a detinutilor ce vor fi eliberati este urmatorul: gardianul k pleaca de la celula k si mergand din k in k celule, schimba starea usilor pe la care trece,1<=k<=n. In final anumite celule vor ramane deschise, detinutii respectivi fiind eliberati. Puteti afla care? Initial toate usile sunt inchise. Exemplu: n=50 vor fi eliberati cei din celulele 1 4 9 16 25 36 49.

Sa se formeze vectorul primelor n elemente ale sirului 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]).

Se introduc n numere intregi. Elementele diferite sa se memoreze intr-un alt vector. Sa se afiseze acest nou vector. Exemplu: Date de intrare: n=4 numere: 1 2 2 1 Date de iesire: 1 2.

Sa se formeze si sa se afiseze vectorul care sa contina elementele nenule dintr-un vector dat.

Sa se extraga dintr-un vector elementele care au ultima cifra egala cu k si sa se formeze cu ele un alt vector. Sa se afiseze cei doi vectori. Exemplu: Date de intrare: n=3 k=7 numere: 17 23 47 Date de iesire: 17 47.

Se dau n numere intregi. Folosind un alt vector, sa se aseze numerele pare la inceput. Exemplu: Date de intrare: n=4 numere: 3 4 6 5 Date de iesire: 4 6 3 5.

Prin contorizare si utilizarea unui vector ajutator, intr-un sir de numere date sa se grupeze la inceput numerele deficiente, apoi cele perfecte si la sfarsit cele abundente. (Numim numar deficient cel care este mai mare decat suma divizorilor mai mici ca el, numar perfect cel care este egal cu acesta suma si abundent numarul mai mic decat aceasta suma). Exemplu: Date de intrare: n=5 numere: 6 12 3 4 10 Date de iesire: 3 4 10 6 12.

Dat un numar n, sa se memoreze intr-un vector toate numerele mai mici ca n prime cu n. Sa se afiseze in ordine descrescatoare. Exemplu: Date de intrare: n=10 Date de iesire: 9 7 3.

Se citeste un numar natural cu cifre nenule. Sa se determine cel mai mic si cel mai mare numar format din cifrele acestui numar. Exemplu: Date de intrare: n=26341 Date de iesire: min=12346 max=64321.

Sa se insereze intre oricare doua elemente alaturate ale unui sir numeric dat media lor aritmetica. Exemplu: date de intrare: n=3 numere: 2 4 5 Date de iesire: 2 3 4 4.5 5.

Se da sirul 1,2,2,3,3,3,4,4,4,4,5, . Dat un numar k, sa se afiseze elementul de pe pozitia k.

VII. Tablouri cu doua dimensiuni (matrici)


Introducere, parcurgere integrala, afisare


Se da un tablou bidimensional cu m linii si n coloane, 1 m,n 50, cu componente intregi si un numar intreg k. Se cere sa se afiseze tabloul cu componentele marite cu k. Exemplu: Date de intrare: m=2 n=3 k= 5 elemente: 1 2 3 Date de iesire: 6 7 8 4 5 6 9 10 11

Se introduc doua matrici cu m linii si n coloane. Sa se afiseze matricea suma a celor doua matrici date.

Se introduce o matrice cu m linii si n coloane. Sa se afiseze elementele astfel incat liniile sa devina coloane. Exemplu: m=2, n=3 matricea 1 2 3 se va afisa 1 4

4 5 6 2 5 3 6

Sa se afiseze suma si produsul tuturor elementelor unei matrici cu m linii si n coloane cu componente reale. Cate elemente sunt intregi? Exemplu: Date de intrare: m=2 n=2 matrice: 4 5 3

Date de iesire: s=15 p=120 6 numere intregi 1 1 2

Dat un tablou bidimensional cu n linii si n coloane, afisati cea mai mare componenta si pozitiile pe care le ocupa. Exemplu: Date de intrare: n=2 matrice: 4 7 Date de iesire: max=7 pozitii 1 2 2 2.


Se considera un tablou care imagineaza tabla de sah. Se citesc un numar de linie si un numar de coloana care vor reprezenta pozitia unui cal pe tabla. Sa se afiseze coordonatele elementelor tablei pe care poate sari calul. Exemplu: Date de intrare: 2 2 Date de iesire: 1 4 4 1 4 3 3 4.

Parcurgere partiala a unui tablou bidimensional


Sa se afiseze suma elementelor de pe coloana k a unei matrici cu m linii si n coloane, k n. Exemplu: Date de intrare: m=2 n=4 k=1 matrice 4 3 6 8 Date de iesire: s=11. 7 4 9 0

Se introduc punctajele realizate de m concurenti la n probe sub forma unei matrici cu m linii si n coloane. Afisati 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 da o matrice patratica cu dimensiunea n,n. Afisati suma elementelor de pe diagonala principala si de pe diagonala secundara.

Ducand cele doua diagonale intr-o matrice patratica, se obtin patru zone triunghiulare. Afisati suma componentelor din interiorul fiecarei zone.

Se da un tablou cu m linii si n coloane. Se cere sa se afiseze suma componentelor de pe marginea tabloului. Exemplu: Date de intrare: m=3 n=4 matrice 6 4 1 0 Date de iesire : s=32. 1 5 3 3 0 8 2 7

Se da o matrice cu n linii si n coloane. Sa se afiseze suma componentelor ce se afla pe patrate concentrice ale matricii date. Ex: pentru n=4 si tabloul 1 1 1 1 se va afisa suma patrat 1=30 2 2 2 2 suma patrat 2=10 3 3 3 3


Afisati valoarea maxima de pe fiecare coloana a unei matrici cu m linii si n coloane.

Se da un tablou cu m linii si n coloane avand componente cifre zecimale. Fiecare linie a tabloului reprezinta cifrele a m numere naturale. Se cere sa se afiseze pe acelasi rand cifrele sumei celor m numere date. Exemplu: pentru numerele 914, 9211, 3547, 23 se introduce matricea cu m=4, n=4 0 9 1 4 9 2 1 1


0 0 2 3 si se va afisa suma 1 3 6 9 5.

O persoana are de cumparat p produse din m magazine. Sa se faca un program care sa indice, pentru fiecare produs, magazinul in care acesta are pretul minim. Cunoscand cantitatile ce trebuie cumparate pentru fiecare produs, sa se determine suma ce urmeaza a fi cheltuita. Exemplu: p=2 m=3 si preturile asezate intr-o matrice cu p linii si m coloane: 50000 48000 49500 11000 11500 11500 se va afisa: produs 1 pret minim in magazin 2 produs 2 pret minim in magazin 1 , cunoscand cantitatile 5 7, suma necesara va fi de 317000 lei.


Eliminarea, adaugarea si schimbarea pozitiei liniilor si coloanelor


Se introduce o matrice cu m linii si n coloane. Se cere ca prin operatii de interschimbare de linii sa se obtina o matrice cu elementele de pe prima coloana ordonate crescator. Exemplu: Date de intrare: m=2 n=3 matrice: 7 4 9 Date de iesire: 1 8 4 1 8 4 5 4 0 5 4 0 7 4 9

Se dau o matrice de dimensiune m,n si un numar k, k m. Sa se elimine linia k din matrice.

Se dau o matrice de dimensiune m,n si un vector cu n elemente. Sa se adauge aceste elemente ca linie k in matricea data.

Se da o matrice cu m linii si n coloane cu elemente 0 sau 1.Determinati o matrice cu m+1 linii si n+1 coloane care are un numar par de 1 pe fiecare linie si fiecare coloana.

Sa se afiseze suma vecinilor fiecarui element al unei matrice de m linii si n coloane. Exemplu: m=3, n=2 pentru matricea 1 2 se va afisa 9 8 18 17 13 12. 3 4 5 6

Verificarea unor proprietati


Sa se verifice daca o matrice patratica de dimensiune n,n este simetrica (elementele simetrice fata de diagonala principala sunt egale). Exemplu: Date de intrare: n=3 matrice: 3 4 5 Date de iesire: Da 4 1 7 5 7 0

Se da un tablou cu m linii si n coloane. Sa se determine numarul de linii care au toate elementele egale.

Sa se verifice daca doua matrici cu aceeasi dimensiune sunt egale (au componentele de pe aceeasi pozitie egale).

Se introduc mediile a m elevi dintr-o clasa, la n materii. Sa se verifice daca in acea clasa sunt elevi repetenti (cel putin trei corigente). In caz afirmativ, sa se specifice si cati sunt.

Sa se verifice daca o matrice are toate elementele distincte.

Se da o matrice patratica cu n linii si n coloane. Stabiliti daca este un patrat magic. (Suma pe linie egala cu suma pe coloana si cu suma pe fiecare diagonala)


Construirea unui tablou


Sa se construiasca un tablou patratic de dimensiune n,n cu primele n*n numere pare. Exemplu: n=3 se va afisa 2 4 6 8 10 12 14 16 18

Se da un numar natural n. Vrem sa construim un tablou patratic cu n linii si n coloane avand elementele in multimea astfel incat produsul elementelor de pe fiecare linie, respectiv coloana sa fie -1. Cerinta: Afisati unul din tablourile cu proprietatile de mai sus. Restrictii: 0<n<26. Exemplu: pentru n=4 o solutie posibila 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)


VIII.  Siruri de caractere ( tipul string)


Parcurgere, testarea elementelor


Sa se afiseze cu litere mari un text dat, de maxim 255 caractere. Exemplu: Date de intrare text: Cerc dE InfO Date de iesire CERC DE INFO.

Sa se afiseze numarul de vocale dintr-un text scris cu litere mici, memorat intr-o variabila string.

Sa se scrie toate prefixele unui cuvant dat; prin prefix se intelege sirul format din primele caractere ale cuvantului, minim un caracter, maxim toate. Exemplu: prefixele pentru tablou sunt: t ta tab tabl tablo tablou.

Sa se afiseze toate sufixele unui cuvant. Exemplu: cuvantul tablou, sufixele: u ou lou blou ablou tablou.

Sa se stabileasca proprietatea de palindrom a unui cuvant. Exemplu: cuvantul cojoc este palindrom.

Sa se afiseze literele folosite si frecventa fiecareia intr-un text de maxim 255 de caractere.

Se da un text cu cel mult 255 caractere si o secventa continua de litere. Cuvintele din text sunt separate prin unul sau mai multe spatii. Se cere sa se determine numarul de aparitii a grupului de litere dat, in text. Exemplu: text: Alina merge sa cumpere mere, grup de litere: me, se va afisa 2.

Sa se codifice un text dat afisand in locul fiecarei litere codul ei ASCII. Sa se afiseze textul codificat, cu un spatiu intre coduri si trei spatii pentru un spatiu in text. Exemplu: textul: 'Am un mar' se va afisa 65 109 117 110 109 97 114.

Intr-un text dat, sa se inlocuiasca o litera data cu o alta litera data de la tastatura. Exemplu: Date de intrare: text abracadabra litera inlocuita b litera cu care se inlocuieste g Date de iesire abragadabra.

Sa se verifice daca doua cuvinte date au aceleasi litere. Exemplu: Date de intrare: mar ram Date de iesire: Da

Sa se introduca in calculator un numar cu mai mult de 10 cifre, sub forma string, si sa se afiseze cu cifrele grupate cate trei, de la dreapta la stanga, grupele fiind separate de punct. Exemplu: numarul 12345678900 va fi afisat ca 12.345.678.900.

Se da un sir de caractere. Eliminati din acest sir toate caracterele numerice pe care le contine. Exemplu: Date de intrare: sir: Ana are 3 mere date de Iesire: Ana are mere

Se citesc de la tastatura n litere mici, cu n < 15. Sa se formeze doua cuvinte astfel incat primul sa contina numai vocale iar celalalt numai consoane. Primul va fi afisat cuvantul care are mai multe litere, iar in caz de egalitate cel care contine numai vocale. Exemplu: Date de intrare: 12  a v p o i n e r g e a s date de iesire: aoieea vpnrgs.

Intr-o urna se gasesc bile albe si rosii. In fiecare bila exista cate un numar de la 1 la 50. Ionel si Petrica doresc sa se joace si inventeaza urmatorul joc: Fiecare din cei doi copii extrage cate 5 bile si numerele din bilele extrase sunt apoi alaturate formand un numar. Castiga cel care a obtinut cel mai mare numar. Exemplu: Ionel extrage bilele cu numerele 10, 23, 1, 15, 48. Numarul este 102311548. Petrica extrage bilele cu numerele 1, 15, 24, 25, 26. Numarul este 115242526. A castigat Petrica. Realizati programul Pascals ce stimuleaza jocul celor doi prieteni.  (CJI, Petrosani, 2005)

Scoaterea cuvintelor dintr-un text


Se considera un text memorat intr-o variabila string. Sa se scrie un program care numara cuvintele din text, separatorii folositi fiind spatiul, punctul, virgula.

O linie citita de la tastatura cuprinde cuvinte separate prin spatii. Se cere sa se afiseze lungimea minima si maxima a cuvintelor din linie.

Se citeste de la tastatura un text cu maxim 255 caractere, cuvintele fiind separate de spatiu, punct, virgula si caracterele ?,!. Se cere sa se afiseze unul sub altul cuvintele din text. Exemplu: pentru textul: Pleaca Ion la mare? Se va afisa: Pleaca Ion la mare

Sa se afiseze in ordine alfabetica cuvintele formate din doua litere dintr-un text dat. Exemplu: Date de intrare: tu ai fost la mare Date de iesire ai la tu.

Se da un text cu cel mult 255 caractere, litere mici si mari ale alfabetului englez si spatii. Se cere sa se afiseze cuvintele din text de lungime maxima. Exemplu: Ionica vrea sa mearga cu Mircea al mare, se va afisa: Ionica mearga Mircea.

Se introduc de la tastatura doua texte prin doua variabile de tip string. Se cere sa se afiseze cuvintele comune celor doua texte, stiind ca doua cuvinte pot fi separate prin unul sau mai multe spatii. Exemplu: pentru textele: Ion merge la peste si Dan merge la Ion, se va afisa : Ion merge la.

Se da un text t format din mai multe cuvinte (maxim 100 de cuvinte sau 1000 de caractere) separate prin spatiu citit de la tastatura. Sa se introduca intr-un dictionar toate cuvintele distincte din acel text. Acest dictionar va fi ordonat alfabetic in sens crescator de la A la Z. Exemplu: 'acesta este un text de proba cu doi de este', afisare: acesta cu de doi este proba text un. Observatii: textul se introduce de la tastatura fara ghilimele si se da Enter pentru a termina introducerea lui in memorie; nu se introduc caractere speciale, sau chiar daca textul are semne de punctuatie, se va considera ca separator intre cuvinte spatiul;
cuvintele in dictionar vor fi scrise cu litera mica

IX.   Alte tipuri de date structurate

Tipul multime


Se dau n (1<=n<=30) siruri de caractere (litere mici si mari ale alfabetului englez si cifrele sistemului zecimal). Sa se determine caracterele folosite in toate sirurile de caractere. Exemplu: Date de intrare n=3 siruri Abcdammbc123ads

Sgssa89822221iuAsd

Hgds921kjdkAsda

Se va afisa A d s 1 2.

Se dau doua multimi a si b cu componente numere naturale mai mici sau egale cu 255. Se cere sa se determine multimile: a b, a b, a-b. Exemplu: Date de intrare: multimea a 1 2 3 4 7 5 multimea b 4 5 8 Date de iesire: reuniune 1 2 3 4 5 7 8 intersectie 4 5 diferenta 1 2 3 7.

Se dau n, 1<=n<=30, multimi cu elemente numere naturale mai mici sau egale cu 255. Se cere a se afle elementele intersectiei multimilor. Exemplu: Date de intrare: m=3 multime1 1 2 3 4 5 multime2 2 4 7 1 multime3 4 5 2 9 Date de iesire: intersectie 2 4.

Se citesc, din linii diferite, n cuvinte cuprinzand litere mici ale alfabetului latin. Se cere sa se afiseze literele distincte din fiecare cuvant citit si literele distincte intalnite in toate cele n cuvinte. Exemplu:Date de intrare: numar cuvinte=2 cuvant1: backspace cuvant2: program Date de iesire: 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.

Se dau doua numere in baza 16 cu cel mult 255 cifre. Se cere sa se afiseze cifrele comune celor doua numere. Exemplu: Date de intrare: 1A67Fb 56DB345AA Date de iesire: 6 A B.

Se introduc numele medicamentelor indicate si contraindicate in 10 boli. Se cere sa se afiseze numele medicamentelor care se pot administra unui pacient care sufera de mai multe boli din cele 10.

Se considera maxim 10 multimi de numere de tip byte. Sa se verifice daca sunt disjuncte.




Tipul inregistrare


Elevii dintr-o scoala vor sa faca un top al celor mai bune 10 melodii pentru fiecare saptamana. Ajutati-i sa realizeze un program prin care se introduc n date de forma titlu melodie, interpret, numar puncte acumulate, numar puncte primite si care afiseaza primele 10 titluri, in ordinea descrescatoare a punctelor.

Dintr-un lot de n persoane care s-au inregistrat cu nume si data nasterii, trebuie selectate acele persoane care au implinit 18 ani la 1 ianuarie 2006. Datele de intrare cuprind valoarea lui n si cele n perechi de date de forma nume yy mm dd si sunt continute de fisierul date.int, iar datele de iesire contin numele cerute afisate pe verticala pe ecran.

La o statie meteo se trec datele in fisierul temp.int sub forma data temperatura. Sa se prelucreze aceste date afisandu-se zilele in care temperatura a fost maxima.

Intr-o clasa de maxim 25 de elevi, fiecare a primit cate unul din calificativele suficient, bine si foarte bine la fiecare din cele 10 materii. Datele se introduc in calculator sub forma: nume elev numar de calificative suficient numar de calificative bine numar de calificative foarte bine. Sa se afiseze in ordine descrescatoare statistica notarii (numarul de suficient, de bine si foarte bine) si numele elevului cu cele mai multe calificative fb.


Stive, liste, cozi alocate static


Se considera o stiva initial vida, care poate contine litere. Ilustrati printr-un program efectul urmatoarelor operatii: insereaza R, insereaza A, insereaza M, insereaza A, extrage un element, extrage un element, insereaza V.

Se considera coada P A S C A L ,,, (P reprezinta inceputul iar L sfarsitul cozii). Ilustrati efectul urmatoarelor operatii: extrage un element, extrage un element, insereaza C, extrage un element, insereaza U, insereaza L.

Linie de iesire

 

Linie de intrare

 

Depou

 
Se considera urmatorul sistem de manevrare a vagoanelor intr-un depou. Din dreapta, intra in depou n vagoane numerotate de la 1 la n, in ordinea crescatoare a numerelor. Construiti un tren cu vagoanele numerotate in ordine descrescatoare, de la n la 1.


In conditiile problemei precedente, dorim sa construim un tren special: vagoanele cu numar pa rvor merge la un moment dat in alta directie decat cele impare, din acest motiv toate vagoanele cu numar par trebuie sa fie plasate la inceputul trenului in ordinea crescatoare a numerelor lor, iar cele cu numar impar la sfarsitul trenului, in ordinea descrescatoare a numerelor lor. Cum procedati?

Se citeste de pe o linie de la tastatura o succesiune de paranteze rotunde deschise si inchise pana la intalnirea caracterului punct. Intalnirea unei paranteze deschise determina introducerea acesteia intr-o coada. Intalnirea uneia inchise determina extragerea unui element din coada- Verificati daca parantezele din sir se inchid corect si determinati dimensiunea maxima a cozii (numarul maxim de paranteze deschise in coada la un moment dat). Exemple: Date de intrare: (()). Date de iesire: corect dim max=2; date de intrare (((). Date de iesire: incorect dim max=3; date de intrare: ()). Date de iesire: incorect dim max=1.

Se considera un caroiaj dreptunghiular cu n linii si m coloane, in care pe anumite pozitii sunt plasate obstacole. In pozitia initiala (x0,y0) se afla plasat un mobil. Sa se determine, pentru toate pozitiile in care ajunge mobilul, distanta minima de la pozitia initiala a mobilului masurata in deplasari elementare (o deplasare elementara este o deplasare cu o pozitie la stanga, la dreapta, sus sau jos). Exemplu: Date de intrare: m=5 n=5 x0=3 y0=3 pozitie obstacole 1 2 Date de iesire: -2 -1 -1 5 4 unde -1=obstacol, -2=inaccesibil 1 3 -1 2 1 -1 3 2 4 2 1 0 1 2 4 3 3 2 -1 -1 3 4 4 4 3 4 5 4 2 1



X.      Alti algoritmi de lucru cu date structurate


Interclasarea


Se cere sa se interclaseze doua siruri de numere reale, ordonate crescator. Prin interclasare se intelege crearea unui nou sir ordonat , format din elementele sirurilor 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.

Pe doua rafturi din biblioteca aveti mai multe carti. Se cunoaste inaltimea in cm a fiecarei carti si faptul ca, pe fiecare raft, cartile sunt aranjate de la stanga la dreapta in ordine descrescatoare a inaltimii. Mutati toate cartile pe un al treilea raft pe care sa fie ordonate tot descrescator. Afisati inaltimile cartilor 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 iesire: 18 18 17 15 15 15 14 12.


Parcurgere circulara a unui sir


Numerele de la 1 la n sunt asezate in ordine crescatoare pe circumferinta unui cerc astfel ca n ajunge situat langa 1. Incepand cu numarul s se marcheaza numerele din k in k, in ordinea crescatoare a lor, pana cand un numar este marcat de 2 ori. Cate numere au ramas nemarcate?

Oaza Lacotrop din desertul Etpas este inconjurata de n portocali care contin fructe, dispusi sub forma de cerc si numerotati de la 1 la n, in sensul acelor de ceas. Maimuta Gino porneste de la un portocal m si numara, in sensul acelor de ceas, k portocali care contin fructe. Culege toate fructele din portocaul de pe pozitia k. Continua numaratoarea incepand cu portocalul urmator celui din care a cules, dar care contine fructe. In final ramane un singur portocal p necules, in care Gino isi face adapost. Cerinta: Cu ce portocal m trebuie sa inceapa numaratoarea pentru ca sa-si faca adapost exact in portocalul p?. Date de intrare: fisierul portocal.in contine pe o singura linie, numerele n, k si p, separate printr-un spatiu. Date de iesire: fisierul portocal.out contine pe prima linie numarul natural m cerut. Restrictii: 2<=n<=1000, 1<=k<=10000, 1<=p<=1000. Exemplu: portocal.in 6 8 5 portocal.out 3. (ONI, Focsani, clasa a VII-a, 2003)

Jocul "Nu te supara, frate!" se joaca de catre doi jucatori. Pe o pista circulara cu n casute numerotate de la 1 la n, in ordinea data de sensul acelor de ceasornic, se afla inscrise valorile 0, 1 si 10. Cei doi jucatori vor avea fiecare cate un pion si vor porni pe rand, din casuta 1. Incepe jucatorul 1. Fiecare jucator va muta pionul sau conform cu valoarea obtinuta prin aruncarea zarului, cumuland sau pierzand puncte in functie de casuta in care ajunge. Fiecare jucator citeste valoarea zarului cand ii vine radul.

Jocul are urmatoarele reguli:

Castigatorul poate fi:

jucatorul care ajunge primul din nou in casuta cu numarul 1, indiferent de punctaj (exceptand cazul in care are punctaj 0)

in cazul in care se termina sirul aruncarilor cu zarul, inseamna ca jucatorii s-au plictisit si castiga cel care a cumulat mai multe puncte, iar daca au punctaje egale castiga cel care se afla in casuta cu numar de ordine mai mare.

Dupa aruncarea zarului, jucatorul muta pionul cu atatea casute cat indica valoarea zarului, in ordinea acelor de ceasornic, incepand numaratoarea cu casuta urmatoare pozitiei pe care se afla. Prima casuta nu contine valoarea 0 (zero).

Dupa mutare pot apare urmatoarele situatii:

ajunge intr-o casuta cu valoarea 0 (zero) - jucatorul este penalizat, pierde toate punctele acumulate si reia jocul din pozitia 1

ajunge intr-o casuta cu valoarea 10 - primeste un bonus de 10 puncte

ajunge intr-o casuta cu valoarea 1 - primeste 1 punct

ajunge intr-o casuta in care se afla celalalt pion (cu exceptia casutei 1, cand castiga) - jucatorul care ajunge ultimul este penalizat, pierde toate punctele si reia jocul de la casuta 1.

Cerinta Determinati jucatorul castigator, pozitiile fiecarui jucator pe cerc si punctajul fiecarui jucator.

Date de intrare In fisierul JOC.IN se dau:

Pe prima linie numarul n al casutelor din cerc.

Linia a doua contine o succesiune de n valori (0, 1 sau 10), separate printr-un spatiu, reprezentand valoarea fiecarei casute.

Linia a treia contine numarul de aruncari cu zarul

Linia a patra contine o succesiune de valori intregi cuprinse intre 1 si 6, separate printr-un spatiu, reprezentand aruncarea cu zarul.

Date de iesire Fisierul JOC.OUT va contine 3 linii cu urmatoarele informatii:

- pe prima linie: jucatorul castigator

- pe a doua linie: pozitia si punctajul jucatorului numarul 1

- pe a treia linie: pozitia si punctajul jucatorului numarul 2.

Restrictii 7<=n<=100

Exemple

JOC.IN

JOC.OUT








JOC.IN

JOC.OUT








JOC.IN

JOC.OUT








(OJI, clasa a VII-a, 2004)


Operatii cu numere mari


Sa se afiseze toate valorile 2n , pentru n cuprins intre 31 si 50.

Sa se faca un program care sa afiseze pe ecran suma a doua numere intregi, de maxim 100 de cifre, citite din fisierul termeni.int.

Se citesc doua numere naturale ca siruri de caractere, avand lungimea maxima de 25. Sa se afiseze produsul numerelor sau un mesaj de eroare daca datele de intrare sunt eronate. Datele de intrare pot fi citite de la tastatura sau din fisierul de tip text INT.INP care contine doua linii, cate un numar pe linie. Datele de iesire pot fi afisate pe ecran sau scrise in fisierul de tip text IES.OUT, precizandu-se produsul obtinut.
Exemplu: daca numerele citite sunt: 13478654 54390123 se va afisa produsul 733105648934442.

Se citeste un numar natural foarte mare, de maxim 50 cifre. Verificati daca este palindrom afisand un mesaj corespunzator.


Modelarea unor relatii


Numim celebritate o persoana care este cunoscuta de toata lumea, dar nu cunoaste pe nimeni. Se pune problema de a identifica o celebritate, daca exista, intr-un grup de n persoane pentru care se cunosc relatiile dintre persoane.

Pe o matrice de m linii si n coloane, fie o populatie de virusi care evolueaza astfel: un virus moare izolat cand are mai putin de 2 vecini si sufocat cand are mai mult de 3 vecini; un virus apare pe un loc liber daca are 2 sau 3 vecini; un virus traieste 3 generatii daca are conditii prielnice de mediu. Virusul de generatie i se codifica prin i, cu 1<=i<=3. Inexistenta virusului se codifica prin 0. Sa se afiseze configuratia populatiei de virusi dupa g generatii. Observatie: un virus poate avea cel mult 4 vecini: N, S, E, V. Datele de intrare se citesc din fisierul virus. inp cu urmatoarea structura:

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 iesire se trec in fisierul virus.out. Exemplu:

Virus.inp

Virus.out

3 2

2 1 0

2 2 3

0 1 3

0 3 0

0 1 0

2 0 0



(CNI, Piatra Neamt, clasa a VIII-a, 2001)

La un simpozion participa n persoane. Unele persoane cunosc alte persoane din sala, altele nu. Calculatorul care monitorizeaza reuniunea trebuie sa comunice care este cea mai cunoscuta persoana. Pentru aceasta persoanele se numeroteaza de la 1 la n si se introduc in calculator perechi de forma i, j care semnifica faptul ca persoana i cunoaste persoana j, pana la marcajul de sfarsit de fisier.


Determinarea unor secvente maximale


Intr-un text de maxim 255 caractere, sa se afiseze cea mai lunga secventa de caractere identice. Daca sunt mai multe secvente, se va afisa prima. Exemplu: text: aabsssdadaaab se va afisa sss.

Se considera un sir de maxim 255 litere c1, c2, . , cn nu neaparat distincte, din alfabetul englez. Cerinte: a) sa se determine pozitia p si lungimea l a secventei maxime formata din litere consecutive egale din sirul dat (1<=p, 1<=n); b) sa se determine literele distincte si frecventa lor de aparitie in sirul initial; c) din sirul literelor distincte de la punctul b), sa se afiseze cate posibilitati de aranjare a 3 litere diferite sunt. Date de intrare se citesc din fisierul olimp71.inp ce are urmatoarea structura: n c1 c2 . cn. Datele de iesire sw vor afisa pe ecran. Exemplu: olimp71.inp 6 abbacx, se va afisa a) p=2 l=2 b) a b c x 2 2 1 1 c) 24 (CNI, Piatra-Neamt, clasa a VII-a, 2001)


Probleme de geometrie


Din fisierul dreptunghi.int se citesc coordonatele capetelor diagonalei unui dreptunghi cu laturile paralele cu axele de coordonate.. Scrieti in fisierul puncte.out cate puncte de coordonate intregi sunt in interiorul sau pe laturile dreptunghiului. Exemplu:

fisierul dreptunghi.int: -2.5 3 fisierul puncte.out

4 -1.75 35

2) Cate puncte cu coordonate intregi sunt continute intr-o sfera de raza R cu centrul in originea sistemului de cooronate? Se considera ca R este un numar natural, R<=30. Amintim ca distanta dintre un punct cu coordonatele (x,y,z) si originea sistemului de coordonate se determina dupa formula d=sqrt(x*x+y*y+z*z). Exemplu: pentru R=4, programul va afisa 257. (ORI, Moldova, clasele VI-IX, 2001)

Se citesc de la tastatura trei numere reale pozitive, care reprezinta lungimile laturilor unui triunghi. Scrieti un program care sa determine aria si lungimile inaltimilor triunghiului. Specificati si natura acestui triunghi: echilateral, isoscel, dreptunghic, dreptunghic isoscel sau oarecare.

Se dau n puncte in plan p1, p2, . , pn prin coordonatele lor carteziene si un dreptunghi cu laturile paralele cu axele prin coordonatele coltului din stanga sus si coltului din dreapta jos. Cerinta: determinati numarul de puncte dintre p1, p2, . , pn care sunt in interiorul dreptunghiului, respectiv numarul de puncte de pe cele doua diagonale. Date de intrare: in fisierul puncte.in pe prima linie se afla n, pe urmatoarele n linii coordonatele punctelor p1, p2, . pn separate printr-un spatiu, iar pe urmatoarele doua linii se afla coordonatele colturilor dreptunghiului. Date de iesire: in fisierul text puncte.out se vor scrie numerele cerute cu un spatiu intre ele. Restrictii: 0<n<100, coordonatele sunt numere naturale < 3000. Exemplu:

Puncte.in   puncte.out

5 4




(CNI, Satu-Mare, clasa a VIII-a, 2003)

In curtea din spatele casei unui gospodar traiau nestingherite mai multe familii de furnicute, organizate in mai multe musuroaie. Una dintre furnicute il aude intr-o zi pe gospodar spunandu-i sotiei sale ca vrea sa amplaseze un obiect chiar in zona in care se aflau musuroaiele. Furnicuta le anunta si pe celelalte, insa nestiind sa aprecieze exact unde va fi amplasat acel obiect, furnicutele au nevoie de ajutorul vostru. Daca afla care din musuroaie se afla in pericol, ele se pot adaposti fara grija in cele care sunt in siguranta. Cunoscandu-se numarul de puncte (musuroaie) M, coordonatele x si y ale celor M puncte prin numarul varfurilor poligonului (obiectului) si coordonatele varfurilor, determinati musuroaiele care sunt in pericol sa fie distruse de obiectul care va fi amplasat de gospodar. Date de intrare: Fisierul de intrare furnici.in contine pe prima linie un numar intreg pozitiv M, care reprezinta numarul de musuroaie. Pe urmatoarele M linii se gasesc cate doua numere intregi pozitive, separate printr-un singur spatiu, care reprezinta coordonatele punctelor (musuroaielor). Urmatoarea linie contine un singur numar intreg pozitiv N care reprezinta numarul de varfuri ale poligonului. Cele N linii care urmeaza contin cate doua numere intregi pozitive, separate prin cate un spatiu, care reprezinta coordonatele pentru varfurile poligonului. Poligonul poate fi convex sau concav. Date de iesire: Fisierul de iesire furnici.out va contine M linii. Pe fiecare dintre acestea se va scrie unul dintre mesajele 'in siguranta!' sau 'in pericol' daca musuroaiele de furnici din fisierul de intrare se gasesc in exteriorul, respectiv in interiorul poligonului. Punctele corespunzatoare musuroaielor vor fi tratate in ordinea in care apar in fisierul de intrare. Restrictii si precizari: se considera ca un musuroi este in pericol atunci cand coordonatele sale sunt continute in interiorul poligonului sau cand musuroiul se gaseste pe una dintre laturile acestuia; 3 < N < 1 < M < Exemplu

furnici.out

in siguranta!

in pericol!

in siguranta!

in siguranta!

in pericol


 
furnici.in






(ginfo ian. 2004)

Introduceti in calculator coordonatele, abscisa si ordonata, a n puncte astfel incat sa nu existe patru puncte coliniare. Determinati numarul de paralelograme care se pot forma unind cate patru din aceste puncte. Datele de intrare se citesc din fisierul puncte.int care va avea pe prima linie numarul n si pe urmatoarele n linii coordonatele punctelor separate prin spatiu. Afisarea rezultatului se va face pe ecran. Exemplu:

puncte.int

pe ecran














Se dau n puncte in plan prin coordonatele lor (numere naturale mai mici sau egale cu 50). Sa se determine centrul si raza unui cerc care sa contina toate punctele date in interior sau pe circumferinta, avand centrul in unul din punctele introduse.

Sa se calculeze aria unui poligon convex A , A , . , An (3<=n<=100) dat prin coordonatele varfurilor sale, numere naturale mai mici decat 50. Indicatie: se va descompune poligonul in triunghiuri de forma A AiAi+1

Se dau n, n>=3, puncte in plan prin coordonatele lor numere intregi din intervalul [0,500]. Sa se afiseze numarul de triunghiuri isoscele care se pot forma unind cate trei din cele n puncte.

Se dau n, n>=3, puncte ]n plan prin coordonatele lor, numere intregi mai mici decat 50. Sa se afiseze tripletele de coordonate ale punctelor care determina triunghiuri de arie maxima.

Se dau n, n >=4, puncte in plan prin coordonatele si culoarea lor (numere naturale mai mici sau egale cu 50). Sa se afiseze coordonatele varfurilor dreptunghiurilor cu laturile paralele cu axele ale caror varfuri au aceeasi culoare.

Se da un dreptunghi prin coordonatele varfurilor sus-stanga si jos-dreapta, si n puncte in plan prin coordonatele lor numere naturale mai mici decat 500. Se cere sa se determine numarul de puncte care se afla in interiorul dreptunghiului, pe dreptunghi si in exteriorul lui.

XI.   Utilizarea subprogramelor


Proceduri


Pentru citirea a n date de forma nume elev, nota1, nota2, nota3 si pentru calculul mediei fiecarui elev, sa se scrie procedura Citire. Sa se realizeze urmatorul cap de tabel intr-o procedura Tabel: ** ** ************* * Nume elev * Medie * ** ** ************* si sa se afiseze rezultate printr-o procedura Scriere. Sa se modifice procedura Tabel astfel incat sa permita realizarea capului de tabel utilizand in locul * un alt caracter, citit de la tastatura in programul principal.

Sa se ordoneze crescator sirul format din n nume de elevi folosind o procedura cu doi parametrii, de interschimbare a valorilor.

Sa se listeze primele n numere prime, verificand calitatea de prim a unui numar intr-o procedura cu un parametru.

Se introduc numaratorul si numitorul a doua fractii. Sa se afiseze cele doua fractii si suma lor sub forma ireductibila. Se va folosi o procedura cu doi parametrii, de simplificare a unei fractii.

Se introduc n date de forma nume elev, punctaj. Uilizand procedura Meniu sa se afiseze 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. Afisarea datelor si sortarea lor se va face prin procedurile Afisare si Sortare.

Se introduc doua numere intregi. Sa se afiseze in cate zerouri se termina produsul lor, fara a calcula produsul. Se va tine seama ca un zero la sfarsit se obtine inmultind un 2 cu un 5 in descompunere celor doua numere in factori primi. Se va crea o procedura cu doi parametrii, de determinare a exponentului la care apare un numar prim in descompunerea in factori primi a unui numar.

Se introduc doua numere n si k. Utilizand o procedura de calculul puterii unui numar, sa se afiseze n la puterea k.


Functii


Sa se verifice daca numele a k elevi se afla intr-un sir de n nume, utilizind o functie Cautare.

2) Cititi un sir de n numere intregi si afisati cea mai mare cifra a numerelor de pe pozitii pare si cea mai mica cifra a celor de pe pozitii impare. Se va realiza cate o functie pentru determinarea cifrei maximale si a celei minimale.

XII.    Fisiere tip text


Sa se determine si sa se afiseze numarul de linii dintr-un fisier tip text si numarul de caractere de pe fiecare linie.

Sa se verifice daca intr-un fisier tip text sunt linii "albe", care contin numai caracterele spatiu si TAB

Sa se afiseze pe ecran un fisier text, linie cu linie.

4) Sa se transfere continutul unui fisier tip text intr-un alt fisier tip text, sub aceeasi forma.

Sa se faca un top al melodiilor (vezi problema 1 din Capitolul IX, Tipul inregistrare) utilizand un fisier pentru citirea titlului, a interpretului si a punctajului acumulat. Punctajul saptamanal obtinut se va citi de la tastatura. Afisarea topului se va face pe ecran. Se va actualiza campul puntaj acumulat din fisierul de intrare.

XIII.  Pregatire pentru faza nationala a ONI si CNI


Clasa a V-a


In Orintia, exista o floare care face strict x seminte . Fiecare samanta este fertila si in decurs de un an, din ea se dezvolta cate o floare care va face alte x seminte fertile. Dupa k ani, florile orintiene dispar, dar raman urmasele lor. Gradinarul Perolino, pe care il intereseaza cate flori vor fi in gradina lui dupa z ani, stiind ca in primul an au fost f flori de tipul amintit, va roaga sa il ajutati la numararea florilor. Date de intrare f: numarul initial de flori x : numarul de seminte produse de fiecare floare k : durata de viata a unei flori z : anul in care gradinarul face recensamantul Date de iesire : t : numarul de flori aflate in gradina la sfarsitul anului z. Restrictii:1<=f<=10, 1<=x<=6, 1<=k<=5, 1<z<5. Exemplu: Intrari f=1 x=2 k=3 z=3 Iesire 8 flori.

Explicatie: anul 1 1 floare 2 seminte anul 2 3 flori 6 seminte anul 3 8 flori (3 + 6 - 1) (CNI, clasa a V-a, Satu-Mare, 2004)

Nicu are N dischete cu aceeasi capacitate 1400 Ko. Dischetele sunt numerotate cu 1, 2, . , N si pe fiecare discheta are o portiune din ea ocupata cu diverse fisiere. Dischetele 1, 2, . , N au ocupate o1, o2, . , oN Ko fiecare. Nicu afla ca prietenul sau George are un joc frumos de dimensiune x Ko. Dupa multe negocieri cu George, Nicu are acceptul de a copia jocul.

Cerinta: Din cele N dischete alegeti cat mai putine pentru a copia jocul (daca este posibil). Cand nu este posibil afisati mesajul Nu se poate copia jocul!    (CNI Satu-Mare 2003 clasa a V-a)

Afisati primele doua numere prime alaturate dintre cele n numere intregi date.

Cand acestea nu exista, afisati mesajul: fara solutie ( n<= 20). Exemplu:

Pentru n=7 si numerele 1 18 41 13 9 7 5 se va afisa perechea 41 13

pentru n=6 si numerele 2 8 7 2 5 4 se va afisa perechea 7 2

pentru n=5 si numerele 4 12 8 5 4 se va afisa mesajul fara solutie

(CNI Satu-Mare 2002 clasa a V-a)

Pentru un n natural dat, sa se determine toate numerele prime mai mici sau egale cu n pentru care oglinditul corespunzator este tot un numar prim (n<100). Exemplu: n=20, printre numerele gasite sunt si 13, cu oglinditul 31, si 17, cu oglinditul 71. (CNI Piatra-Neamt 2001, clasa a V-a)

Un schior isi doreste un traseu care sa contina cel putin un pisc (varf) si cel putin o vale. Daca traseul este caracterizat (ca altitudini relative) de cifrele componente ale unui numar dat, ajutati-l sa stabileasca daca il parcurge sau nu. Exemplu: traseul 5745 poate fi parcurs, traseele 123 si 68556 nu pot fi parcurse. (CNI Piatra-Neamt 2001, clasa a V-a)

Se considera un sir cu n numere naturale mai mici decat 32000, n < 30. Se cere: a) sa se afiseze un numar din sir care are in scrierea sa cat mai multe cifre distincte. Daca exista mai multe numere cu aceasta proprietate se va afisa primul element dintre ele. b) sa se determine o succesiune cu numar maxim de componente din sir care are proprietatea ca fiecare componenta a succesiunii are acelasi numar de cifre distincte in scrierea sa. Exemplu: pentru n=9 si sirul 865, 15, 144, 231, 1591, 1998, 6235, 14, 4201se va afisa a) 6235 b) 231 1591 1998 (CNI 1998 clasa a V-a)

Se citesc n, numar natural mai mic decat 100, si n numere naturale nenule mai mici decat 30000. Se cer: a) ultima cifra a numarului x[1]+x[2]+x[n] b) ultima cifra a numarului x[1] x[2]+x[3]+x[n] Exemplu: pentru n=3 si numerele 11 4 3 se va afisa a) 8 b) 1 (CNI 1998 clasa a V-a)

Se dau patru numere naturale a, b, c, d. Sa se afiseze sub forma de fractie ireductibila cea mai mica fractie subunitara si cea mai mica fractie supraunitara folosind cele patru numere. Exemplu: pentru a=2 b=5 c=6 d=16 se vor afisa fractiile 1/8 si 6/5 (CNI Sinaia 1997 clasa a V-a)

Se considera n stalpi de inaltimi h[1], h[2], h[3] h[n] metri. La baza fiecarui stalp se afla cate un melc codificat prin numarul stalpului. Fiecare melc i urca ziua p[i] metri si coboara noaptea q[i] metri (p[i]>=q[i]). Sa se afiseze melcii in ordinea in care ating varfurile stalpilor. Exemplu: pentru n=3 si 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 afisa 2 1 3. (CNI Sinaia 1997 clasa a V-a)

Fie A un sir de n numere naturale, 8<=n<=256, si p un numar natural dat. a) sa se precizeze daca p este numar prim b) sa se afiseze de cate ori apare p in A si pe ce pozitii c) daca numarul p nu apare in A, sa se insereze numarul p pe o pozitie k, 1<=k<=n, unde k este dat de la tastatura, deplasand spre dreapta elementele aflate pe pozitiile k+j, 0<=j<=n-k+1. (CNI Busteni 1994 clasa a V-a)

De la tastatura se citesc n elemente ale unui sir de numere. Sa se scrie un program care interschimba doua secvente de lungimi l1 si l2 care incep din pozitiile p1, reapectiv p2. Elementele care nu sunt cuprinse in cele doua secvente pot fi mutate astfel incat interschimbarea sa se poata face. Exemplu: pentru n=9, sirul 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 Navodari 1993 clasa a V-a)

Dandu-se doua numere n, k sa se determine 2*k numere prime situate in centrul listei numerelor prime din intervalul [1,n], in cazul in care in interval este un numar par de numere prime, si 2*k-1 numere din centrul listei de numere prime, in cazul in care numarul de numere prime este impar. Daca numarul 2*k ( resp. 2*k-1) este mai mare decat numarul de numere prime din intervalul considerat, atunci se vor afisa toate numerele prime din interval. Restrictii: 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, Focsani, 2003)

In fiecare zi nelucratoare din saptamana Pinochio spune cate o minciuna datorita careia nasul acestuia creste cu cate p cm pe zi. Sambata si duminica, cand vine bunicul Gepeto acasa, pentru a nu-l supara prea tare, Pinochio reuseste sa nu spuna nici o minciuna, ba chiar uitandu-se in oglinda observa ca in fiecare din aceste zile lungimea nasului sau scade cu cate 1 cm pe zi. Cand incepe o noua saptamana, ramanand singur acasa Pinochio continua sirul minciunilor. Care este dimensiunea nasului lui Pinochio dupa k zile (zilele incep cu luni ) stiind ca initial nasul sau masura n cm? Exemplu: pentru n=2 p=1 k=8 se va afisa 6 cm. (ONI 2003 clasa a V-a)

Gigel este un tip ciudat. Lui ii place sa isi impresioneze colegii exprimand duratele numai in secunde. De exemplu, daca il vei intreba cat e ceasul el iti va raspunde cate secunde s-au scurs de la ora 0.00 din ziua respectiva. Daca ai sa-l intrebi ce varsta are, el iti va raspunde cate secunde au trecut de cand s-a nascut.

Colegii lui Gigel au hotarat ca nu e cazul sa se lase impresionati; ca urmare au nevoie de un program care sa citeasca de la tastatura un numar natural N (N 2000000000) care reprezinta varsta lui Gigel exprimata in secunde si care va afisa pe ecran cati ani, cate luni si cate zile are Gigel (orele si minutele ramase sunt considerate nesemnificative). Scrieti acest program pentru colegii lui Gigel!

Nu uitati ca anii bisecti sunt cei divizibili cu 4, dar nedivizibili cu 100 sau divizibili cu 400. De exemplu 1992 si 2000 au fost ani bisecti. Dar anul 1900 nu a fost bisect. Anii bisecti au 366 de zile, spre deosebire de ceilalti care au doar 365. Consideram ca ne aflam in ultima zi de scoala (15 iunie 2002).

Exemplu :Pentru N=69206400 programul va afisa :Gigel are 2 ani, 2 luni si 10 zile.

(ONI Galaciuc 2002 clasa a V-a)

Fie un numar p (1 p 4) dat de la tastatura. Sa se scrie pe ecran toate numerele n de p cifre cu proprietitile urmatoare: 1) n-1 si n+1 sunt numere prime 2) suma cifrelor lui n este tot un numar prim. De exemplu, pentru p=2, numarul n=12 face parte din solutie deoarece n-1=11, n+1=13 sunt prime iar suma cifrelor lui n este 1+2=3, tot un numar prim. Daca nu exista nici un numar n cu p cifre care sa verifice aceste proprietati, se va da un mesaj.    (Marele Premiu PACO, 2001)

16) Copa bate la poarta Orintiei, dar poarta e programata sa nu se deschida decat dupa ce se introduc, intr-o caseta cu s spatii (3<=s<=10), s cifre strigate de portar. Portarul a strigat "1", Copa a butonat 1, in primul spatiu de la stanga la dreapta. Portarul a strigat "0", si in timp ce Copa butona 0 in spatiul al doilea, 1 a devenit 2 in spatiul anterior. Portarul a strigat "7". Copa scria 7 in spatiul al treilea, iar in primul spatiu 2 devine 3, iar in al doilea spatiu 0 devine 1. Si tot asa, pana la al s-lea spatiu, cand Copa reuseste sa scrie toate cifrele si apare tot codul. Si poarta se deschide, dar . surpriza, mai era o poarta, iar codul acesteia, N, era cel mai mic numar format din cat mai multe dintre cifrele codului anterior, astfel incat nici o cifra sa nu se repete. Obs.: Dupa 9 urmeaza 0. Disperat de atata informatizare, Copa va cere sprijinul sa calculati 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 iesire 102456789 (ONI Focsani 2003 clasa a V-a )


Clasa a VI-a


Doi copii vopsesc un gard din scanduri pe care le vom numerota de la 1 la n astfel: primul ia o cutie de vopsea rosie cu care vopseste scandurile cu numarul p, 2p, 3p, etc. Al doilea procedeaza la fel, incepe de la acelasi capat al gardului dar ia o cutie de vopsea albastra si vopseste din q in q scanduri. Astfel, cand vor termina de vopsit, gardul va avea multe scanduri nevopsite, unele scanduri vopsite in rosu, altele in albastru, iar altele in violet. Cunoscand numerele n, p si q afisati: a) cate scanduri raman nevopsite b) cate scanduri sunt vopsite in rosu c) cate scanduri sunt vopsite in albastru d) cate scanduri sunt vopsite in violet

(ONI 2002 clasa a VI-a)

Se da un vector cu n (1 n 30) elemente numere naturale, cu maxim 8 cifre. Se cere: a) Sa se afiseze cate elemente din vector sunt valori-panta (numere care privite de la stanga sau de la dreapta au cifrele in ordine crescatoare, de exemplu 136, 931).

b) Sa se afiseze cea mai mare si cea mai mica valoare-panta si pozitiile pe care se afla acestea in vector. Exemplu: Daca se citeste n=6 si elementele 126 9621 1212 3678 9231 9621 , programul va afisa: 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 Mos Craciun un joc de cuburi colorate. Gigel l-ar fi insotit pe cel mic la joc, mai ales cand acesta insira cele n cuburi unul dupa altul, iar lui ii treceau prin cap tot felul de cerinte pe care profesorul lui de informatica le-ar fi putut scorni: a. sa vedem cate culori sunt in total; b. care culoare este folosita pentru cele mai multe cuburi; c. ce cub ar trebui scos din sir astfel incat sa se formeze din cuburile ramase un sir cat mai lung de cuburi alaturate de aceeasi culoare.

Se citesc de la tastatura n, numarul de cuburi, n<50, si o succesiune de n numere de culori, de la 1 la 10. Daca la cerintele a, b, c sunt mai multe solutii, 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 afisa a. 3 b. 2 3 c. Pozitia 10. (ONI Focsani 2003 clasa a VI-a)

4) Profesorul de sport al clasei a VI-a B de la o scoala din Focsani vrea la inceputul orei sa aseze elevii pe terenul de sport, la raport, intr-o anumita ordine. Pentru acest lucru, elevii sunt bine instruiti, astfel incat, asezand pe ultimul rand n elevi, celelalte randuri de elevi se creeaza singure dupa regula: - pe pozitia i a unui rand se va aseza un elev, dupa cum urmeaza: daca pe randul din spate, pe pozitiile i si i+1 stau fie numai baieti, fie numai fete, atunci se va aseza o fata, iar daca pe aceste pozitii stau elevi de sex opus, se va aseza un baiat.

Conform acestei reguli, pe randul cu numarul de ordine i (iI) se vor aseza i elevi. Numarul de elevi din clasa este n(n+1)/2.

Cerinta: Pentru n dat si un sir de n numere 0 si 1 (0 reprezinta codificarea pentru o fata, iar 1 pentru un baiat), care reprezinta sirul de elevi de pe ultimul rand, se cere sa se determine numarul de baieti din clasa.

Date de intrare: De la tastatura se citesc datele de pe doua linii: pe prima linie n, pe linia a doua un sir de n numere 0 si 1, separate printr-un spatiu ce reprezinta sirul de elevi de pe ultimul rand. Date de iesire: Pe ecran se va afisa numarul de baieti din clasa. Restrictii: 1 n 20.

Exemplu: Pentru datele de intrare: 5 1 0 0 1 1 se va afisa: 8 (ONI Focsani 2003 clasa a VI-a)

Gigel a primit spre pastrare un set de n cutii de greutati nu neaparat distincte. El a cantarit cutiile si pentru fiecare greutate distincta a notat pe o foaie, in ordine crescatoare a greutatilor, numarul de cutii cu greutatea respectiva.

Deoarece fratele sau mai mic avea prostul obicei sa se joace cu numerele scrise de el pe foaie, Gigel s-a gandit sa calculeze un "numar de control" dupa urmatorul algoritm: incepand de la primul numar a grupat numerele de aparitii ale greutatilor cate trei (daca ii raman numere negrupate la sfarsit, le ignora). Daca intr-un grup sunt numai numere pare sau numai impare noteaza grupul cu cifra 1, altfel il noteaza cu cifra 0. Din sirul astfel obtinut, se formeaza un numar care are ca valoare cifra zecilor egala cu numarul de valori 1 si cifra unitatilor egala cu numarul de valori 0, obtinandu-se astfel "numarul de control".

Cerinta: Citind greutatile cutiilor, sa se determine "numarul de control" si sa se verifice daca este numar prim. Date de intrare: Se citeste de la tastatura numarul n urmat de greutatile cutiilor. Date de iesire:Se va scrie pe ecran "numarul de control", urmat de valoarea 0 sau 1 pe linia urmatoare. Pe urmatoarea linie se va afisa 1 daca numarul este prim, respectiv 0 in caz contrar.

Restrictii:1 n 100. Fiecare greutate este un numar 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 iesire 31 1. Explicatie: Dupa ordonare se obtine sirul: 1 2 2 2 3 6 6 8 8 8 8 9 9 10 11 11 12 14 15 1 18   . Se obtine 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 obtine numarul de control 31, care este numar prim. (OJI 2004 clasa a VI-a)

6) Vanatorul sef al regelui Arthur a primit insarcinare sa vaneze primele rate ce se intorc din tarile calde. Regele fiind un tip cu idei fixe, i-a cerut vanatorului sa vaneze ratele albe cu sageti albe, iar ratele negre cu sageti negre. Ratele vin in randuri (stoluri) din ce in ce mai mari: mai intai una, apoi doua, trei, cinci, opt, treisprezece, s.a.m.d. Se observa ca numarul de rate dintr-un rand este egal cu numarul de rate de pe cele doua randuri anterioare. Ratele fiind niste creaturi ordonate zboara in randuri, in care nu vei putea gasi doua rate de aceeasi culoare alaturate, fiecare rand incepand cu o rata alba.

Vanatorul stie ca daca a inceput sa doboare o rata, trebuie sa le doboare pe toate de pe randul acesteia, deoarece supravietuitoarele vor alerta celelalte rate si ele nu se vor mai intoarce niciodata, iar vanatorul nostru isi va pierde slujba.Cerinta: Stiind ca vanatorul a primit ka sageti albe si kb sageti negre, trebuie sa determinati cate randuri de rate a doborat si cate sageti de fiecare tip i-au ramas, stiind ca el vrea sa-si pastreze slujba. Date de intrare: Se citesc de la tastatura numerele ka si kb (in aceasta ordine). Date de iesire: Se va afisa pe ecran:

- numarul de randuri doborate

- numarul de sageti albe ramase

- numarul de sageti negre ramase.

Restrictii: 0≤ka, kb≤2.000.000.000 Exemplu: Pentru ka=9 si kb=10 Se va afisa: 4 2 6. Explicatie: Pentru exemplu avem randurile (A- rata alba, N- rata neagra) de rate:

A

A N

A N A

A N A N A (CJI 2004 clasa a VI-a)

7) Sa se genereze doua siruri A si B de numere naturale, elementele lui A sa fie cuprinse intre 0 si 99, iar ale lui B intre 1 si 999. Cele doua siruri au acelasi numar de elemente, specificat de la tastatura. Sa se genereze un sir C dupa urmatoarea regula: C[i]=A[i]-B[i], daca A[i] este par si B[i] impar, C[i]=A[i]+B[i], daca A[i] este impar si B[i] par, C[i]=A[i]*B[i], daca A[i] si B[i] sunt ambele fie pare, fie impare. Sa se afiseze cate patru elemente pe un rand, elementele sirului A, ale sirului B si apoi ale lui C. (CNI 1987 clasa a VI-a)

8) O scoala are maxim 7 serii de clase a VI-a, notate A, B, C, D, E, F. Sa se scrie un program care sa genereze o planificare a intalnirilor sportive intre aceste clase, astfel incat fiecare sa se intalneasca o singura data cu alta clasa. Intalnirile au loc zilnic, cate una in fiecare zi, cu exceptia duminicilor. Programarea intalnirilor incepe cu ziua de miercuri, 1 iunie 1988 si arata astfel:

miercuri 1 iunie VI A - VI B

joi    2 iunie VI A - VI C

(CNI 1988 clasa a VI-a)

Se da un vector de numere naturale mai mici decat 101 si un numar natural a. Sa se insereze intre doua componente vecine, a caror diferenta in valoare absoluta este mai mare sau egala cu a, media lor aritmetica, pentru ca in final sa rezulte un vector in care diferenta absoluta dintre doua elemente este mai mica decat a. (CNI Navodari 1989 clasa a VII-a)

Fie un sir de n fractii (1 n 5) de forma a[i]/b[i], 1 i n) cu 0 a[i] b[i]

a) Sa se simplifice fractia de pe pozitia k, k dat de la tastatura.

b) Sa se calculeze suma fractiilor avand ca rezultat fractia ireductibila p/q.

c) Sa se calculeze cat la suta reprezinta numarul q din suma p+q    (CNI Busteni 1994 clasa a VI-a)

11) Pe o tija se afla n discuri avand diametre diferite, 1<= n<=100. Se cere aranjarea lor in ordinea descrescatoare a diametrelor de jos in sus. In scopul aranjarii in ordinea ceruta se poate efectua un singur tip de operatie: cu ajutorul unei cleme se prind un numar oarecare k de discuri,2<k, incepand cu cel mai de sus se scot de pe tija si se intorc, introducandu-le din nou pe tija. Date de intrare: n= numar discuri, a1,a2..,an=diametrele discurilor,1<=ai<=999. Date de iesire: fiecare schimbare consta din doua linii de forma k=numarul discurilor prinse si x1,x2, . ,xn=noua configuratie a tijei. Exemplu: n=5 diametrele 5 3 2 1 4 se va afisa k=4 5 4 1 2 3 k=3 5 4 3 2 1. (CNI Sinaia 1996 clasa a VI-a)

12) Se considera un numar n de copii care poarta tricouri de baschet ce au pe spate imprimate un numar de la 1 la n. Ei joaca urmatorul joc: se aseaza pe un cerc intr-o ordine oarecare toti cei n copii; profesorul, pornind de la un elev incepe sa numere k elevi, cel de-al k-lea fiind eliminat din cerc; de la urmatorul dupa cel eliminat continua numaratoarea pana la k, eliminandu-l pe cel la care s-a oprit numaratoarea, s.a.m.d.

Cunoscandu-se numerele n si k (n,k<=50), sa se determineordinea in care se aflau initial dispusi copiii pe cerc, astfel incat acestia sa fie eliminati in ordinea 1,2, . ,n. Se va afisa pe o linie numarul de ordine al jucatorilor situati initial pe cerc incepand cu numarul 1. Exemplu: date de intrare: n=5 k=2 Date de iesire: 1 5 2 4 3. (CNI Sinaia 1997 clasa a VI-a)

In vacanta Gigel a uitat tehnica de inmultire a doua numere. Ca sa-l ajute, bunica l-a invatat o metoda veche: Daca a si b sunt cele doua numere care trebuie inmultite, le vom scrie unul langa altul si vom forma sub fiecare cate o coloana conform urmatoarelor reguli: 1) sub a se acrie partea intreaga a lui a/2, iar sub b se scrie 2*b 2) se aplica pasul 1) pana cand numarul de pe coloana lui a este 1 3) produsul se obtine adunand 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-Neamt 2001 clasa a VI-a)

Nicu merge la Metro sa-si cumpere rechizite scolare. Pe fiecare obiect cumparat se afla un cod de produs alcatuit din cel mult 10 liniute verticale. Pentru fiecare cod Nicu asociaza un numar de cod astfel: pentru fiecare liniuta asociaza o cifra, lungimea liniutei. In acest mod fiecare obiect are asociat un numar natural. Cerinta: Pentru cele n obiecte cumparate si date prin numarul de cod se cere sa se afiseze cate numere palindroame exista cu proprietatile: sunt mai mici strict decat cel mai mare numar de cod, nu sunt printre numerele de cod date. Restrictii: 0<n<26, cel mai mare numar de cod este mai mic decat 3001. Exemplu: pentru n=7 si numerele de cod 8 20 22 44 108 55 88 se va afisa 15 (deoarece avem urmatoarele 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)

La concursul Mititelu' Gates, pentru buna desfasurare a competitiei este necesara o suma data S; in acest scop s-a creat o lista de n (n<1000) persoane care pot si vor sa sponsorizere acest eveniment. Fiecare din cele n persoane a confirmat participarea si suma oferita. Determinati valorile selectate pentru sponsorizarea concursului, stiind ca numarul persoanelor trebuie sa fie minim si suma totala sa acopere cheltuielile.(unitatea de masura este milionul)

Exemplul 1 : N=8 S=30 2.5 3 2 5 15 7 4 1 Se va afisa: 15 7 5 3

Exemplul 2 : N=7 S=37 5.5 4.5 2 17 2 5.5 10 Se va afisa: 17 10 5.5 4.5

Un grup de elevi formeaza o coloana care are m randuri, m 15, cu n elevi pe rand, n 6. De pe fiecare rand este ales cel mai scund elev, iar dintre alesi, cel mai inalt primeste un steag. Al doilea steag este repartizat in mod similar, se alege de pe fiecare rand cel mai inalt elev, iar dintre alesi, cel mai scund. In cazul in care exista mai multi elevi cu aceeasi inaltime, se alege primul dintre ei. Sa se scrie un program care sa afiseze inaltimile purtatorilor de steag; valorile m, n si inaltimile elevilor se citesc de la tastatura. Exemplu: m=3 n=4 randul 1: 120 130 140 150 randul 2: 110 120 130 130 randul 3: 140 140 150 150 ; primul steag este dat elevului din pozitia (3,1), cu inaltimea 140, iar al doilea steag elevului din pozitia (2,3), cu inaltimea 130. (CNI 1989 clasa a V-a)

Intr-un parc cu castani un copil gaseste o zona cu 12 dale, aranjate sub forma unui dreptunghi cu 4 linii si 3 coloane. Copilul isi noteaza numarul de castane de pe fiecare dala, incepand cu dala de pe prima linie si prima coloana, continuand linie cu linie (notitele copilului se introduc de la tastatura). El porneste de pe prima dala (unde nu sunt castane), se poate muta de pe o dala pe alta doar pe linie sau pe coloana. Copilul aduna castanele de pe fiecare dala pe care ajunge si face un numar de k mutari (k citit de la tastatura). Comanda unei mutari de pe o dala pe alta se va face apasand pe una dintre tastele A, B, C sau D, unde mutarile posibile sunt definite astfel:

A - pe linia anterioara;

B - pe coloana urmatoare;

C - pe linia urmatoare;

D - pe coloana anterioara.

a. Se cere sa se afiseze cate castane a adunat copilul dupa fiecare mutare.

b. Copilul se joaca cu cifrele numarului total de castane, obtinut la punctul a., conform urmatoarelor exemple:

173 -> 11 -> 2, 8 -> 8, 14 -> 5, 97 -> 16 -> 7, 1989 -> 27 -> 9

Ce cifra obtine copilul la punctul (b.) pentru numarul obtinut la punctul (a.), dupa mutarea k? Obs.: Copilul nu va primi comenzi prin care sa iasa de pe dale.

Exemplu: Pentru urmatoarea repartitie de castane pe dale













si pentru k = 4:

a.

Comenzi de la tastatura:

Rezultat afisat pe ecran


B



C



B



C


b.

12 -> 3


(CNI Satu-Mare 2002 clasa a VI-a)

Marius are o orga de lumini de forma dreptunghiulara cu n linii si m coloane de beculete. Functionarea orgii este automata, automodificandu-se o data la 1 secunda simultan toate becurile, dupa urmatoarea regula: daca un bec are un numar par de becuri vecine aprinse (in stanga, dreapta, sus si jos) atunci isi schimba starea (daca este aprins se stinge, iar daca este stins se aprinde), insa daca are un numar impar de becuri vecine aprinse isi pastreaza starea. Stiind configuratia initiala a orgii determinati cum va arata orga dupa k secunde? Restrictii:1<=n,m<=100, 1<=k<=500 Date de intrare: n m - dimensiunile orgii, k - timpul de rulare a orgii, n linii, fiecare avand m elemente separate printr-un spatiu, reprezentand starile becurilor. Starea unui bec este data prin 1, daca becul este aprins si 0, daca este stins. Date de iesire: n linii cu m elemente de 0 si 1 reprezentand configuratia orgii dupa k secunde, elementele fiind separate printr-un spatiu.

Exemplu: Date de intrare: 4 4 3



Raspuns: 0 1 0 0


Explicatie:

1 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0

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

0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1

Nota: Daca un element are 0 becuri vecine aprinse, se considera ca are un numar par de becuri vecine aprinse

(CNI Satu-Mare 2004 clasa a VI-a)

Se considera un text cu lungimea maxima de 255 caractere. Textul este format din cuvinte separate de cel putin un spatiu. Se cere sa se gaseasca cuvintele de lungime maxima si toate literele care se regasesc simultan in toate aceste cuvinte.   (CNI Navodari 1992 clasa a V-a)

Se citesc doua multimi M1 si M2 de cuvinte precum si un numar natural k. Sa se aseze cuvintele multimii M1 unele sub altele astfel incat literele lor de pe pozitia k sa formeze pe verticala un cuvint din multimea M2. Sa se afiseze unele sub altele cuvintele din multimea M1 dupa ce au fost ordonate corespunzator. Exemplu: M1=[carte, acesta, arid, rac], M2=[ cutie, abac, acar, cort], k=2, rezultatul carte acesta rac arid . (CNI Navodari 1992 clasa a VII-a)

Se introduce un text format din cuvinte despartite prin oricate spatii si avand maxim 255 de caractere, toate majuscule. a) Sa se afiseze toate cuvintele din text, unul dupa altul b) Sa se gaseasca lungimea celui mai mic cuvint c) Se citeste un cuvant de la tastatura; sa se afiseze toate cuvintele din text care au aceeasi lungime si sunt formate din exact aceleasi litere cu ale cuvintului dat. (CNI Busteni 1994 clasa a VII-a)

Se considera un sir de cel mult 100 caractere, format din literele mici ale alfabetului englez. Se numeste o balba o secventa de caractere care apare in sir de cel putin doua ori si una dupa alta. Exempu: abbcabab are balbele b si ab. a) Sa se determine cea mai lunga balba din sirul considerat (ca numar de caractere) b) Sa se codifice sirul dat inlocuind fiecare caracter cu ultima cifra a lui 2 la puterea x, unde x este codul ASCII asociat literei respective. Exemplu: Date de intrare abbcabab date de iesire a) ab b) 24482424. (CNI 1997 clasa a VI-a)

Se citeste de la tastatura un numar 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 foloseste cel mai mic numar cu aceasta proprietate, pentru b cel mai mic numar diferit de cel folosit pentru a, etc. a) Sa se afiseze cele n numere folosite la codificare b) pentru un text dat de la tastatura cu maxim 20 de litere, se cere sa se afiseze codificarea textului. Exemplu: pentru n=2 si textul aabbaa, se va afisa a) 4 9 b) 449944. (CNI Sinaia 1998 clasa a VI-a)

Se dau doua numere a,b cu maxim 8 cifre. Dupa fixarea a doua cifre, cate una din fiecare numar, aceste cifre se interschimba intre ele, obtinandu-se alte doua numere a', b'. De exemplu, din numerele a=23, b=416, fixand prima cifra din a si a doua cifra din b, dupa interschimbarea lor se obtin numerele a'=13, b'=426. Sa se determine a' si b', astfel incat suma a'+b 'sa fie maxima. Exemplu: a=23, b=416, suma maxima se obtine pentru 63 si 412. (CNI Sinaia 1998 clasa a VI-a)

Membrii cercului de electronica de la Clubul Copiilor din Aiud au realizat un robot care stie sa se deplaseze la comanda. Astfel comanda Nx deplaseaza robotul x metri spre nord, comanda Ey, Vz, St, deplaseaza 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 rataci. La comanda STAI robotul se opreste. Cunoscind comenzile date, ajutati membrii clubului ca prin maxim 2 comenzi sa readuca robotul in 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)

Se citeste de la tastatura un text de maxim 255 de caractere. Singurul separator intre cuvinte este considerat caracterul spatiu (SPACE).

a. Se va afisa pentru fiecare cuvant: pozitia cuvantului in text, adica al catelea cuvant este; numarul de litere; suma codurilor ASCII ale literelor

b. Se va afisa frecventa de aparitie a fiecarui cuvant in text. (CNI Satu-Mare 2002 clasa a VI-a)

Sinbad Marinarul viseaza ca se afla intr-o pestera cu comori. Peste tot se aflau cufere pline cu bijuterii si monezi de aur. Si in timp ce Sinbad se minuna, se auzi o voce care spuse: " Exista o cale de a ajunge aici si daca reusesti toate aceste comori vor fi ale tale. Aceasta pestera se afla in varful muntelui Ararat , dar duhurile rele vor incerca sa te opreasca. Tu trebuie sa le invingi in lupta dreapta. Pentru a deschide pestera trebuie sa-ti amintesti cate duhuri ai invins si sa rostesti cu voce tare formula magica, care este cel mai mic numar care are atat prima cifra cat si numarul de cifre egal cu numarul duhurilor invinse de tine. In plus, acest numar trebuie sa aiba proprietatea ca orice secventa de doua cifre consecutive trebuie sa fie numere prime diferite. In acest moment, Sinbad s-a trezit si vrea sa plece in cautarea comorii. Nu se teme de duhurile rele, dar stie cate calcule necesita cautarea formulei magice (si mai stie ca la matematica nu se descurca foarte bine). De aceea, va roaga sa-l ajutati.

Sinbad va va spune numarul n egal cu numarul duhurilor invinse de el, iar voi trebuie sa-i spuneti formula magica. In cazul in care nu exista un astfel de numar, transmiteti-i ca Nu exista. Exemplu: n=3 se va afisa 311. (ONI 2002 clasa a VI-a)

Gigel are de rezolvat urmatoarea problema: se considera numarul natural N format din maxim 9 cifre, distincte doua cate doua si in care nu exista cifra 0. Gigel va trebui sa faca biletele pentru fiecare cifra din numar, biletele pe care le va pune intr-o caciula, conform urmatorului algoritm: initial porneste de la ultima cifra a numarului (cifra unitatilor) si pune in caciula biletelul pe care este scrisa aceasta cifra. Daca aceasta este o valoare para, incepe parcurgerea numarului spre dreapta, in caz contrar spre stanga, parcurgerea facandu-se cu un numar de pasi egal cu cifra respectiva. In parcurgerea unui numar spre dreapta se considera ca dupa ultima cifra urmeaza prima (cea mai semnificativa cifra a numarului), dupa aceasta urmeaza a doua, etc., iar in deplasarea spre stanga dupa prima cifra (cea mai semnificativa cifra a numarului) urmeaza ultima cifra (cifra unitatilor), apoi penultima, etc., iar parcurgerea incepe cu cifra din numar imediat de langa cifra scrisa pe ultimul biletel introdus in caciula, respectand sensul parcurgerii. De exemplu, daca numarul nostru este 1346, Gigel porneste de la cifra 6, iar biletul pe care s-a scris aceasta cifra il pune in caciula. Parcurge numarul spre dreapta, facand 6 pasi; trece prin cifrele: 1,3,4,6,1 si se opreste la cifra 3. Deci, in caciula va pune biletelul pe care este scrisa cifra 3.

Algoritmul continua pana cand se termina toate biletelele sau cand ajunge la o cifra pentru care biletelul cu valoarea respectiva a fost introdus deja in caciula.

Cerinta: In cazul in care algoritmul se incheie intrucat Gigel a pus toate biletelele in caciula, se va afisa cifra de pe ultimul biletel introdus in caciula, iar in cazul in care Gigel ajunge in timpul parcurgerii la o cifra pentru care biletelul corespunzator a fost introdus deja in caciula, se va afisa valoarea acestei cifre

Date de intrare: Se va citi de la tastatura numarul natural N format din cel mult 9 cifre distincte doua cate doua, in care nu exista cifra 0.

Datele de iesire: Se va afisa pe ecran cifra la care Gigel a ajuns in momentul opririi algoritmului.

Exemple :

1) N=412

Gigel incepe cu cifra 2 (biletelul cu cifra 2 este pus de Gigel in caciula);  fiind valoare para, parcurge spre dreapta  si se opreste la cifra 1, biletelul cu aceasta cifra fiind pus in caciula. Cifra 1 fiind impara, continua parcurgerea spre stanga si se opreste la cifra 4 si pune astfel si ultimul biletel in caciula. Din acest moment nu mai exista biletele nepuse in caciula si se va afisa deci cifra 4 .

2) N=1243

Gigel incepe cu cifra 3 (biletelul cu cifra 3 este pus de Gigel in caciula);  fiind valoare impara, parcurge spre stanga si se opreste la cifra 1, biletelul cu aceasta cifra fiind pus in caciula. Cifra 1 fiind impara, continua parcurgerea spre stanga si se opreste tot la cifra 3, dar nu mai exista biletelul cu cifra 3 pentru a putea fi pus in caciula. Se va afisa deci, cifra 3.    (ONI Focsani 2003 clasa a VI-a)

Simpatie mare intre Ionel si Marioara, doi elevi veniti in tabara la Galaciuc . ! Pentru a scapa de indiscretia colegilor, cei doi hotarasc sa-si trimita mesaje, unul altuia, folosind o metoda simpla de criptare: textul de criptat se scrie pe o foaie, aranjand literele cuvintelor intr-un tablou avand cate 5 caractere pe fiecare linie. Spatiul dintre cuvinte este si el caracter. Textul astfel aranjat pe un numar suficient de linii pentru a incape, se citeste pe coloane, de sus in jos si de la stanga la dreapta. In locul spatiilor dintre cuvinte se pun puncte. Tot puncte se pun si la sfarsitul textului, atatea cate spatii libere sunt ramase la sfarsitul textului "pus" in tablou. Exemplu: Pentru textul: Te astept dupa cina la ora 8 se va aranja:







T

e


a

s

t

e

P

t


d

u

P

a


c

i

N

a


l

a


o

R

a





se va codifica: Ttdclaeeuia..ppn.8ataao.sr.

Decodificarea mesajului se va face invers codificarii.

Ajutati-i, realizand un program care sa codifice si sa decodifice mesajele celor doi copii. Pentru diferentierea 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    Iesire: A.mm.aurn.

ntrare: dTaGia.aubllcaaa.r.c. Iesire: Tabara la Galaciuc

(ONI Galaciuc 2002 clasa a VI-a)

Sa se calculeze anul, ziua, luna si ora revenirii unei rachete pe Pamant cunoscand anul, ziua, luna si ora plecarii si durata zborului in minute. Zborul dureaza cel mult un an. (CNI Navodari 1989 clasa a VI-a)

Ministerul numerelor are de cateva zile un nou sef. Acesta a dorit sa faca o serie de schimbari in ministerul pe care il conduce si a inceput "reorganizarea" cu multimea numerelor naturale in 2 etape: mai intai toate numerele naturale au fost asezate fara spatiu (sau alt separator) intre ele. Dupa aceasta prima etapa, multimea numerelor naturale arata astfel: 123456789101112131415161718192021222324 A doua etapa a "reorganizarii" a constat in formarea unor noi "grupe": o grupa de o cifra, o grupa de 2 cifre, o grupa de 3 cifre si asa mai departe. Astfel, "grupele reorganizate" sunt: 1, 23, 456, 7891, 01112, 131415, 1617181, 92021222, 324252627 . . Cerinta: Pentru un numar natural N dat, sa se afiseze prima si ultima cifra din cea de-a N-a grupa de cifre obtinuta dupa "reorganizare", valori separate printr-un spatiu. Restrictii: 1<=N<=250. Exemplu: Pentru N=8 se va afisa: 9 2 (deoarece 9 si 2 sunt prima, respectiv ultima cifra din grupa a 8 a care este  92021222 ) (ONI Focsani 2003 clasa a VI-a)


Clasa a VII-a


Se da o expresie aritmetica care contine operatorii +, - si operanzii a, b, c. Cunoscand valorile operanzilor a, b, c se cere sa se determine valoarea expresiei. Date de intrare: in fisierul expresie.in se da pe prima linie valorile operanzilor a, b, c (separati prin cate un spatiu), iar pe linia a doua expresia. Date de iesire: in fisierul expresie.out se va scrie valoarea expresiei. Restrictii: a,b,c<32000 si sunt numere naturale nenule
Expresia este corecta din punct de vedere matematic si are cel mult 1000 de caractere
Exemplu: expresie.in 7 8 3 a+c-b+c expresie.out 5 (www.contaminare.ro)

Se da o secventa de maxim 1000 de caractere (numai litere mari si mici ale alfabetului englez si cifre). Cerinta:
se cere sa se determine cel mai mare numar din secventa. Date de intrare: in fisierul nrmax.in se da pe o singura linie, secventa. Date de iesire: in fisierul nrmax.out se va scrie numarul cerut. Restrictii: secventa de caractere din fisier are maxim 1000 de caractere si cel putin un caracter. Exemplu: nrmax.in A78bx899f7g9
nrmax.out 899 . Observatie: daca nu exista solutie in fisierul nrmax.out se va scrie numarul -1.

Pe o insula, dupa multiple experimente chimice se produce un fenomen extrem de periculos. Viespile se inmultesc foarte repede producand pagube mari. Guvernatorul ia hotararea ca dupa n zile sa se evacueze insula. Se cere sa se determine numarul de viespi existente in ziua de plecare, stiind ca in prima zi dupa fenomen sunt p viespi, in a doua zi q viespi, iar in zilele cu numarul de ordine k (3 k n) numarul de viespi este egal cu de patru ori numarul de viespi din ziua k-1, minus numarul de viespi din ziua a k-2. Date de intrare: |n fisierul text VIESPI.IN se afla pe prima linie n, iar pe a doua linie p si q cu un spatiu intre ele. Date de iesire: |n fisierul text VIESPI.OUT se va scrie pe prima linie numarul de viespi dupa cele n zile. Restrictie

n,p,q 100. Exemplu: VIESPI.IN 4 2 3 VIESPI.OUT 37 (ONI. Clasele 7-8, 2001)

Gigel are o panglica alcatuita din benzi de 1 cm latime, colorate in 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 sa aiba aceeasi culoare, dar cum nu poate schimba culorile benzilor, singura posibilitate ramane taierea unor bucati de la capete. Cerinta: Scrieti un program care sa determine modul de taiere a panglicii astfel incat la cele doua capete sa fie benzi de aceeasi culoare, iar lungimea panglicii obtinute sa fie maxima. Date de intrare: Fisierul de intrare PANGLICA.IN contine:

pe prima linie numerele naturale N si C separate printr-un spatiu;

pe urmatoarele N linii descrierea panglicii: pe fiecare linie un numar natural de la 1 la C, reprezentand in ordine culorile fasiilor ce alcatuiesc panglica.

Date de iesire: Fisierul de iesire PANGLICA.OUT va contine urmatoarele 4 numere:

pe prima linie numarul de fasii ramase;

pe linia a doua numarul culorii care se afla la capete;

pe linia a treia cate fasii trebuie taiate de la inceputul panglicii initiale;

pe linia a patra cate fasii trebuie taiate de la sfarsitul panglicii initiale.

Restrictii si precizari 2 N 10000 1 C 200 Daca exista mai multe solutii alegeti pe cea in care se taie cat mai putin din partea de inceput a panglicii.

Exemplul 1 Exemplul 2

PANGLICA.IN PANGLICA.OUT PANGLICA.IN PANGLICA.OUT

4 5 2 4

2 1 2

1 2 1

1 1 0

2

2


(ONI, clasa a 7-a,2002)

5) Gigel s-a intalnit din nou cu Maria la Concursul National de Informatica de la Satu Mare. Pentru a comunica astfel incat ceilalti colegi sa nu inteleaga mesajele lor ei folosesc o metoda de criptare a informatiilor conform urmatoarelor reguli:

1. Ei formeaza dictionarul cuvintelor utilizate in mesaj, spatiul ce separa cuvintele fiind considerat si el un cuvant.

2. Apoi determina k, ce reprezinta cea mai mica putere a lui 2 astfel incat numarul cuvintelor din dictionar sa fie mai mic decat 2k.

3. In urmatoarea etapa ei sorteaza cuvintele din dictionar in ordine alfabetica crescatoare.

4. Fiecare cuvant din dictionar se codifica prin corespondentul in baza 2 a pozitiei cuvantului, exprimata pe k biti.

5. Se grupeaza bitii astfel obtinuti in grupe de 8 completand daca este cazul cu 0 ultima grupa.

6. Fiecare grupa se transforma intr-o valoare zecimala, rezultand astfel codul ASCII a unui caracter ce reprezinta codul criptat.

NOTA: Cuvintele din mesaj includ doar caractere mici din alfabetul englez,sunt separate prin spatiu, iar lungimea unui cuvant nu depaseste 10 caractere.

Datele de intrare se citesc din fisierul COD.IN ce are o singura linie. Primul caracter din linie reprezinta tipul operatiei, criptare (c). Imediat dupa caracterul "c" urmeaza mesajul de criptat. In dictionar nu pot exista mai mult de 15 cuvinte (inclusiv spatiul). Datele de iesire se scriu in fisierul COD.OUT ce contine mesajul criptat urmat imediat de cuvintele din dictionar separate prin spatiu. EXEMPLU:

COD.IN   COD.OUT

cmama are mere e are mama mere (ATENTIE! Intre are exista doua spatii)

(CNI, clasa a 7-a, Satu Mare, 2002)

Intr-un fisier de intrare NUMERE.IN exista una sau mai multe linii. Pe fiecare linie exista cel putin doua numere urmate apoi de unul din caracterele "p", "m", "n" sau "i" separate prin spatiu. Caracterele de sfarsit de linie au urmatoarele intelesuri. p - cate numere sunt prime din numerele date pe linia respectiva, m - determinarea mediei aritmetice a numerelor din linia respectiva exprimata cu doua zecimale, n - numarul de numere prime din intervalul inchis a celor doua numere din linia respectiva

i - inversul fiecarui numar din linia respectiva cu doua zecimale. Datele de iesire se scriu in fisierul NUMERE.OUT avand pe fiecare linie rezultatele cerintelor fiecarei linii din fisierul de intrare.

Nota: Toate datele de intrare se considera corecte. Numarul 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 si nu depasesc 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)

Se da o expresie aritmetica care contine operatorii +, - si operanzii a, b, c. Cunoscand valorile operanzilor a, b, c se cere sa se determine valoarea expresiei. Date de intrare: in fisierul expresie.in se da pe prima linie valorile operanzilor a, b, c (separati prin cate un spatiu), iar pe linia a doua expresia. Date de iesire: in fisierul expresie.out se va scrie valoarea expresiei. Restrictii: a,b,c<32000 si sunt numere naturale nenule. Expresia este corecta din punct de vedere matematic si are cel mult 1000 de caractere. Exemplu: expresie.in 7 8 3 a+c-b+c expresie.out 5 (www.contaminare.ro)

Se considera un vector unidimensional x cu n componente numere naturale distincte, cel mult egale cu 32000.

Cerinta: Scrieti un program care sa construiasca vectorul y cu elemente din multimea astfel incat oricare ar fi numerele naturale i,j cu proprietatea ca 1<=i<=n, 1<=j<=n si x[i] < x[j] sa avem y[i]<y[j]. Date de intrare; fisierul siruri.in va contine: pe prima linie numarul n iar pe linia a doua componentele vectorului x separate printr-un spatiu. Date de iesire: fisierul siruri.out va contine pe prima linie componentele vectorului y separate printr-un spatiu. Restrictii: 1<=n<=100, componentele vectorului x sunt numere naturale cel mult egale cu 32000. Exemplu:

siruri.in

Siruri.out


3 7 16 10 1

5 2 3 6 4 1

(OJI, clasa a VII-a, 2004)

George pleaca in excursie la munte. Pentru aceasta excursie el doreste sa-si ia un rucsac cu haine. Rucsacul are un volum de depozitare egal cu V cm3. George stabileste n haine utile pentru excursie (numerotate cu 1, 2, . , n). Hainele au fiecare cate un volum egal cu v1, v2, . , vn cm3. Din pacate, exista posibilitatea ca acestea sa nu intre toate in rucsac. George ajunge la concluzia ca hainele sunt impachetate si presate isi micsoreaza volumul fiecare cu p1, p2, . , pn la suta. Cerinta: Determinati numarul maxim de haine ce pot fi introduse in rucsac. Date de intrare: in fisierul text excursie.in pe prima linie se va afla v si n separate printr-un spatiu, pe a doua linie se afla v1, v2, . , vn separate prin cate un spatiu, iar pe linia a treia p1, p2, . , pn separate de cate un spatiu. Date de iesire: in fisierul excursie.out se va scrie numarul cerut. Restrictii: 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)

Un turist aflat in Valea Rometului, aude din vazduh n cuvinte. Aici exista o piatra fermecata care atunci cand un cuvant se izbeste de ea, emana un ecou similar cu cuvantul dar spus de la sfarsit . Ajutati turistul sa gaseasca grupele formate din cuvant si ecoul sau. Exemplu: date de intrare: n=7 si cuvintele: cam des sed oamenii la al doilea mac Date de iesire: cam mac des sed la al .

(Info-Star, clasa a VII-a, 1996)


Clasa a VIII-a


1) Se considera o lista de litere mici ale alfabetului, fiecare avand o anumita pondere. Se cere completarea unui careu patratic, astfel incat sa se obtina ponderea maxima pe coloane. Pentru aceasta se dau urmatoarele definitii:

Se numeste cuvant un sir de litere mici, cu proprietatea ca nu exista x consoane sau y vocale consecutive si nu pot exista 2 caractere identice consecutive.

Se numeste cuvant de gen masculin, un cuvant care incepe si se termina cu consoana.

Se numeste cuvant de gen feminin, un cuvant care incepe si se termina cu vocala.

Se numeste cuvant de gen neutru, un cuvant care incepe cu consoana si se termina cu vocala, sau incepe cu vocala si se termina cu consoana.

Datele se citesc dintr-un fisier cu urmatoarea structura:

pe prima linie se citeste dimensiunea careului (n), x si y cu spatiu intre ele

pe linia a doua sunt date coordonatele punctelor negre (linie si coloana) separate prin spatiu

pe linia a treia se dau numarul de cuvinte masculine, feminine si neutre utilizate la completarea careului

incepand cu linia a patra se da perechea pondere caracter separate prin spatiu

Numele fisierului se introduce de la tastatura.

Datele de iesire se scriu in fisierul cu numele CNI.OUT care are urmatoarea structura:

pe primele n linii, careul ( punctele negre vor fi marcate prin caracterul " * " )

pe linia n+1 se va scrie ponderea maxima obtinuta

Exemplu:

FISIERUL DE INTRARE: CNI.OUT

cadc

ab*a

cdab

100 c *abc

80 b   1160

90 a

70 d

(CNI, clasa a 8-a, Satu Mare, 2002)

Se dau urmatoarele corespondente 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

Sa se determine codificarea numerelor citite din fisierul cu numele CNI.IN (fiecare numar fiind citit de pe o linie). Datele de iesire se vor scrie in fisierul CNI.OUT

Exemplu:

CNI.IN CNI.OUT

1747

0

1273

(CNI, clasa a 8-a, Satu Mare, 2002)

Se considera urmatorul sir, construit astfel incat fiecare element al lui, cu exceptia primului, se obtine din cel precedent: 1, 11, 21, 1211, 111221, Termenii din sir sunt numerotati incepand cu 1. Cerinta: Dat n, un numar natural, sa se determine cel de-al n-lea termen din sirul dat. Date de intrare: Din fisierul text SIR.IN se citeste numarul natural n. Date de iesire: Pe prima linie a fisierului text SIR.OUT se va scrie al n-lea termen al sirului. Restrictii 4 ≤ n ≤ 35, numarul de cifre ale unui termen nu depaseste 17000.

Eemple

SIR.IN

SIR.OUT



SIR.IN

SIR.OUT



(OJI, 2002, clasa a 8-a)

4) Se da un cuvant format numai din litere mici. Numim anagrama un cuvant format din literele cuvantului dat, schimband eventual ordinea literelor. De exemplu o anagrama a cuvantului tamara este cuvantul armata. Evident, un cuvant poate fi considerat o anagrama a lui insusi.

Cerinta: Scrieti un program care sa genereze toate anagramele unui cuvant dat, in ordine lexicografica. Date de intrare: Fisierul de intrare ANAG.IN contine pe prima linie cuvantul dat.

Date de iesire: Fisierul de iesire ANAG.OUT va contine in ordine anagramele cuvantului dat, cate una pe linie.

Restrictii si precizari: Cuvantul dat are cel mult 10 de litere mici, cuvantul x=x1x2xn precede cuvantul y=y1y2yn daca exista un indice kI astfel incat xi=yi, iI, iar litera xk precede in alfabet litera yk.

Exemplu

ANAG.IN

ANAG.OUT

ana

aan

ana

naa

(OJI, 2002, clasa a VIII-a)

Sa ne imaginam o retea formata din noduri situate in punctele de coordonate intregi, fiecare nod fiind unit prin bare paralele cu axele de coordonate de cele 4 noduri vecine. Un paianjen este plasat initial in originea sistemului de coordonate. La fiecare secunda, paianjenul se poate deplasa din nodul in care se afla in unul dintre cele 4 noduri vecine.

Cerinta: Scrieti un program care sa determine in cate moduri se poate deplasa paianjenul din pozitia initiala, intr-o pozitie finala data, in timpul cel mai scurt. Date de intrare: Fisierul de intrare SPIDER.IN contine pe o singura linie abscisa si ordonata punctului final, separate prin spatiu: x y

Date de iesire:In fisierul de iesire SPIDER.OUT se va afisa pe prima linie numarul de moduri determinat Nr

Restrictii 0<x,y Exemplul 1 Exemplul 2

SPIDER.IN

SPIDER.OUT



SPIDER.IN

SPIDER.OUT




(ONI. Clasele VII-VIII, 2001)

Lidorienii si senopictii sunt in conflict pentru ronul fermecat, fiind arbitrati de orintieni, alesi de partile beligerante drept judecatori. Orintia a propus: "Ronul fermecat va fi ascuns printre alti k roni cu acelasi aspect, dar toti realizati dintr-un material mai greu decat originalul, avand masa, standard, diferita de cea a ronului femecat. Pentru a-l descoperi, va ganditi ca aveti la dispozitie o balanta si toti cei k+1 roni. Lidorienii, apoi senopictii vor spune un singur numar, reprezentand numarul maxim de cantariri admis (numarul acesta nu se obtine cantarind un ron de mai multe ori si nici cantarind de cat mai multe ori ronii; cantarirea presupune sa existe, pe fiecare brat al balantei, un numar egal de roni (1-1, 2-2, etc.) pentru descoperirea ronului fermecat. Daca nici una dintre parti nu spune numarul corect, atunci ronul fermecat va ramane in Orintia. Daca ambele parti spun numarul corect, ronul va ramane tot la orintieni.". Cerinta Sarcina voastra este sa indicati tara care castiga ronul fermecat: Lidoria -L, Senopictia -S, Orintia -O. Date de intrare Fisierul ron.in are pe prima linie numarul k, iar pe linia a doua doua numere RL, respectiv RS separate printr-un spatiu. RL reprezinta raspunsul lidorienilor, iar RS raspunsul senopictilor.Date de iesire Fisierul ron.out contine una din literele L, S si O.Restrictii 1 < k < 10000 RL, RL sunt numere naturale cel mult egale cu k


ron.in



ron.out

O

Explicatie: maximul admis este 2, deci ronul fermecat ramane in Orintia

ron.in



ron.out

O

Explicatie: maximul admis este 2, dar fiind egalitate, ronul ramane in Orintia

Exemple


(OJI, clasa VIII-a, 2004)

Se considera n dreptunghiuri avand laturile paralele cu axele de coordonate. Fiecare dreptunghi este specificat prin coordonatele extremitatilor unei diagonale. Toate coordonatele sunt numere naturale. Sa se calculeze aria suprafetei comune tuturor celor n dreptunghiuri (intersectia) si perimetrul suprafetei acoperite de dreptunghiurile considerate. Date de intrare: numarul n si 2*n perechi de numere naturale mai mici decat 100 Date de iesire: aria intersectiei, coordonatele varfurilor figurii rezultate prin intersectie, peerimetrul figurii rezultate prin reuniune.

(CNI, Navodari, clasa a VIII-a, 1992)


Bibliografie:

Doru Popescu Anastasiu Culegere de probleme de informatica, All Educational, 2000

Marinel Serban Qbasic, Petrion

Mihai Mocanu 333 probleme de programare, Teora

Dan Negreanu Probleme de matematica rezolvate cu calculatorul, Teora

www.contaminare.ro

Nu se poate descarca referatul
Acest referat nu se poate descarca

E posibil sa te intereseze alte referate despre:


Copyright © 2024 - Toate drepturile rezervate QReferat.com Folositi referatele, proiectele sau lucrarile afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul referat pe baza referatelor de pe site.
{ Home } { Contact } { Termeni si conditii }