Sunteți pe pagina 1din 4

ATESTAT 2008 ALGORITMI

1. Scriei un program Pascal/C/C++ care citete de la tastatur un vector a cu n (n<100) elemente numere reale pozitive i afieaz pe ecran pentru fiecare element al vectorului cel mai mic numr natural mai mare sau egal cu el i cel mai mare numr natural mai mic sau egal cu el. Valorile vor fi afiate pe ecran desprite printr-un spaiu. Exemplu: Dac vectorul a conine elementele: 12.3 1.98 14.67 1 3.11 2.08 3.9 12.89 7.99912 8 6.7 1.001 13 8.9909 4.7 pe ecran se vor afia numerele: 13 12 2 1 15 14 1 1 4 3 3 2 4 3 13 12 8 7 8 8 7 6 2 1 13 13 9 8 5 4 Se citesc de la tastatur dou valori naturale m i n (m,n<=100), iar apoi m+n numere ntregi de cel mult 9 cifre fiecare. Dintre cele m+n numere citite primele m sunt ordonate strict cresctor, iar urmtoarele n sunt deasemenea ordonate strict cresctor. Se cere s se afieze pe ecran care din cele m+n numere au fost citite de dou ori. De exemplu pentru m=7 i n=10 i valorile 1,2,3,4,5,6,20,3,5,7,8, 9,10,12,20, 24,35 se vor afia valorile 3 5 20. Scriei un program Pascal/C/C++ care citete de la tastatur un numr natural nenul n (n1000), construiete n memorie i apoi afieaz pe ecran un tablou unidimensional a, avnd n elemente. Tabloul a se completeaz cu numerele naturale de la 1 la n, astfel: se memoreaz valoarea 1 pe poziia 1, valoarea 2 pe poziia n, 3 pe poziia 2, 4 pe poziia n-1, 5 pe poziia 3, etc. Elementele tabloului se afieaz pe ecran cu cte un spaiu ntre ele. Exemplu: pentru n=9 tabloul afiat este: 1 3 5 7 9 8 6 4 2 Se citete de la tastatur un numr natural n (0<n<100). Scriei programul Pascal/C/C++ ce afiseaza pe ecran primele n numere prime, n ordine cresctoare, separate prin cte un spaiu. Exemplu: Pentru n=8, se va afisa pe ecran: 2 3 5 7 11 13 17 19 Se citete de la tastatur un numr natural nenul n care are cel mult 9 cifre. S se afieze pe ecran numrul k, natural, astfel nct produsul 1*2*3*...*(k-1)*k s aib o valoare ct mai apropiat de numrul n. Exemple: dac se citete numarul n=25 pe ecran se va afia 4 dac se citete numrul n=119 pe ecran se va afia 5 De la tastatur se citesc n numere naturale cu cel mult dou cifre fiecare. Se cere determinarea i afiarea pe ecran, n ordine cresctoare, a valorilor distincte citite. Numerele sunt afiate cte 5 pe fiecare linie (cu excepia ultimei linii care poate s conin mai puine valori) i sunt separate prin spaiu. De exemplu, dac se citete de la tastatur n=20 3 3 7 22 82 7 56 15 3 56 7 22 82 15 7 23 82 82 82 atunci se va afia: 3 7 15 22 23 56 82

2.

3.

4.

5.

6.

7. Scriei programul Pascal/C/C++ care citete de la tastatur un numr natural n (2<n<30) i construiete n memorie o matrice ptratic cu n linii i n coloane format numai din valori ce aparin mulimii {1,2,3,...,n} astfel nct elementele din matrice situate pe diagonala secundar s fie egale cu n, elementele situate pe celelalte dou semidiagonale paralele cu diagonala secundar i alturate diagonalei secundare s fie egale cu n-1, elementele situate pe urmtoarele dou semidiagonale paralele cu diagonala secundar, de o parte i de alta a acesteia, s fie egale cu n2 etc. Matricea se va afia pe ecran, cte o linie a matricei pe cte o linie a ecranului, cu spaii ntre elementele fiecrei linii (ca n exemplu). De exemplu, pentru n=5 se construiete n memorie i se afieaz matricea:

1/4

8.

Se citesc de la tastatur dou valori naturale m i n (m,n<=100) i apoi m*n numere ntregi mai mici de 32000 reprezentnd elementele unei matrice cu m linii i n coloane. Se cere s se determine valorile maxime de pe fiecare linie a matricei i s se scrie pe ecran suma lor. 1 9 3 4 7 9 6 12 5 10 5 2 7 1 3 , se afieaz pe ecran 28 De exemplu, pentru m=3, n=5 i matricea (deoarece valorile maxime pe linii sunt 9,12,7, iar suma lor este 28) 9. Se citesc 2 numere naturale nenule m,n (2<m,n<10). S se scrie programul PASCAL/C/C++ care construiete n memorie o matrice A cu m linii i n coloane cu proprietatea c A[i][j] este cel mai mic numr care se poate obine prin concatenarea lui i cu j.Matricea se va afia pe ecran, cte o linie a matricei pe cte o linie a ecranului, elementele fiecrei linii fiind separate prin spaii. De exemplu pentru m=3 i n=4 se va afia matricea urmtoare: 11 12 13 14 12 22 23 24 13 23 13 34

10.

Scriei programul Pascal/C/C++ care citete de la tastatur un cuvnt de cel mult 15 litere mici ale alfabetului englez i care afieaz pe ecran, pe linii distincte, cuvintele obinute prin tergerea succesiv a vocalelor din cuvntul citit, de la stnga la dreapta, ca n exemplu de mai jos: Exemplu: Dac se citete cuvntul examen se afieaz: xamen xmen Xmn 1 S se scrie programul PASCAL/C/C++ care citete de la tastatur un cuvnt de maximum 20 de 1. litere i minimum o liter i terge litera din mijloc n cazul n care cuvntul are un numr impar de litere, respectiv cele dou litere din mijlocul cuvntului dac acesta are un numr par de litere. Programul va afia cuvntul rezultat n urma tergerii sau mesajul CUVANT VID dac dup tergere acesta rmne far nici o liter. Exemplu : dac se citete cuvntul carte, se va afia cate. O matrice ptrat este mprit de cele dou diagonale n patru zone notate A, B, C, D, conform figurii alturate. Elementele de pe cele 2 diagonale nu aparin nici uneia dintre cele 4 zone. Scriei un program Pascal/C/C++ care citete de la tastatur un numr natural n (n<=20)i formeaz n memorie o matrice ptrat cu n linii i n coloane, n care elementele de pe cele dou diagonale sunt egale cu 1, elementele care aparin zonelor A i B sunt egale cu 2, iar elementele care aparin zonelor C i D sunt egale cu 3. Elementele matricei vor fi afiate pe ecran, cte o linie a matricei pe cte o linie a fiierului cu spaii ntre elementele fiecrei linii. De exemplu pentru n=5 pe ecran se va afia: 1 3 3 3 1 2 1 3 1 2 2 2 1 2 2 2 1 3 1 2 1 3 3 3 1

12.

1 Scriei programul Pascal/C/C++ care citete de la tastatur un ir de cel mult 30 de litere ale 3 alfabetului englez i afieaz pe ecran irul de caractere dat i toate prefixele i sufixele acestuia de . lungime cel puin 1, fiecare pe cte o linie, n ordinea descresctoare a lungimii lor. De exemplu, dac se citete irul: proba, atunci se va afia proba prob pro pr p proba roba oba ba a

2/4

1 Scriei programul Pascal/C/C++ care citete de la tastatur dou iruri de cel mult 30 de litere ale 4 alfabetului englez i afieaz pe ecran mesajul DA dac cele dou iruri de caractere sunt anagrama . celuilalt, sau NU, n caz contrar. De exemplu, dac se citesc irurile secetos i cetoses, se va afia DA. 1 Se citete de la tastatur un numr natural n de cel mult 8 cifre distincte. S se afieze pe ecran, 5 cte unul pe linie, n orice ordine, toate numerele naturale care se pot obine din valoarea lui n prin . eliminarea uneia sau mai multor cifre de la unul din capetele sale. De exemplu, pentru n=38604, pe ecran se vor afia, cte unul pe linie i nu neaprat n aceast ordine numerele: 8604 604 4 3860 386 38 3 1 Scriei un program Pascal/C/C++ care citete de la tastatur n iruri de caractere formate din litere 6 mici. S se afiseze toate perechile de iruri dintre cele citite, perechi de forma x,y n care irul x este . subsecven a irului y sau irul y este subsecven a irului x. Fiecare pereche determinat se va scrie pe cte un rnd, irurile fiind separate printr-o virgul. Dac nu exist nici o astfel de pereche se va scrie textul FR SOLUIE. Exemplu. Pentru n=4, dac se citesc: ari calculator mari lat se afieaz: ari,mari calculator,lat 17. Se citesc de la tastatur dou valori naturale m i n (m,n<=100) i apoi m*n numere ntregi mai mici de 32000 reprezentnd elementele unei matrice cu m linii i n coloane i . S se calculeze suma elementelor matricei aflate pe rama dreptunghiular avnd elementul din colul stnga-sus determinat de indicii i,j iar elementul din colul dreapta-jos este determinat de indicii k,l, unde i,j,k i l sunt 4 numere naturale (1 i k n i 1 j l m). Rama cuprinde toate elementele de pe liniile i i k, cuprinse ntre coloanele j i l inclusiv, precum i elementele de pe coloanele j i l cuprinse ntre liniile i i k inclusiv. Scriei un program PASCAL/C/C++ care citete din fiier dimensiunile matricei i elementele sale, apoi de la tastatur patru valori pentru i,j,k,l, calculeaz suma cerut i o afieaz pe ecran. Exemplu: dac se citete matricea din figura alturat i se citesc de la tastatur valorile i=3, j=2, k=6 i l=6, colurile ramei vor avea indicii (3,2) i (6,6). Se va afia suma: 68.

1 Scriei programul Pascal/C/C++ care citete de la tastatur un numr n de maxim 9 cifre i afieaz 8 pe ecran toate numerele obinute prin permutri circulare spre stnga ale cifrelor numarului n, . separate prin spaiu. De exemplu, pentru n=56789123, se vor afia n aceast ordine 67891235 78912356 89123567 91235678 12356789 23567891 35678912 1 Scriei un program Pascal/C/C++ care citete de la tastatur dou iruri de caractere formate fiecare 9 din cel mult 100 de litere ale alfabetului englez i afieaz literele care nu apar n niciunul din cele . dou iruri . De exemplu, dac se citesc irurile alfabetazoid i abcdefghijklmqrsuv se va afia npwxy 20. Scriei programul Pascal/C/C++ care citete de la tastatur un numr n i apoi n numere ntregi cuprinse intre -30000 i 30000. S se determine i s se afieze cel mai mare numr citit i numrul de apariii ale acestuia. Exemplu: dac se citete n=8 i numerele: 2 7 12 3 8 12 9 5 atunci maximul este 12 i acesta apare de dou ori.

3/4

2 Scriei programul Pascal/C/C++ care citete de la tastatur un numr n i apoi n numere numere 1 reale pozitive i afieaz pe ecran numerele care au partea ntreag numr prim. Dac nici unul din . numere nu are partea ntreag numr prim atunci se va afia mesajul NU EXISTA De exemplu, dac se citesc numerele: n=6 12.095 31.567 5.789 789.834 1234.923 2.345 atunci se vor afia numerele: 31.567 5.789 2.345 2 Scriei programul Pascal/C/C++ care citete de la tastatur un numr n i apoi n numere numere 2 naturale de cel mult 2 cifre fiecare i afieaz pe ecran, desprite prin cte un spaiu numrul sau . numerele care apar de cele mai multe ori. De exemplu, dac se citete: n=10 21 3 4 21 4 5 21 3 6 4 atunci programul va afia numerele 21 i 4, deoarece fiecare apare de cte 3 ori, iar celelalte numere apar de mai puin de 3 ori. 2 Scriei un program Pascal/C/C++ care citete un numr natural nenul n (n<11) i apoi construiete 3 n memorie o matrice cu n linii i n coloane astfel: . - pe diagonala principal toate elementele au valoarea 0; - sub diagonala principal, respectiv deasupra diagonalei principale elementele vor conine valorile 1, 2, 3, ,

2 4 .

2 5 .

cresctoare de la stnga la dreapta, ca n exemplu. Programul va afia matricea pe ecran, cte o linie a matricei pe o linie a ecranului, cu un spaiu ntre elementele fiecrei linii. Exemplu: pentru n=5, programul va afia matricea urmtoare: 0 1 2 3 4 1 0 5 6 7 2 3 0 8 9 4 5 6 0 10 7 8 9 10 0 Se citesc de la tastatur n (n<100) numere naturale mai mici dect 10000. Scriei programul Pascal/C/C++ ce afieaz pe ecran n ordine cresctoare toate numerele ce ncep i se termin cu aceeai cifr. Numerele se afieaz separate prin cte un spaiu. Exemplu: Dac n=6, iar numerele citite sunt: 21 3123 7 454 45 10 atunci programul va afia: 7 454 3123. Scriei un program care citete de la tastatur un numr natural n (n 20) i construiete n memorie o matrice ptratic avnd n linii i n coloane, cu elemente 0 i 1, dispuse n ptrate concentrice, fiecare ptrat fiind format doar din valori 1 sau doar din valori 0, ca n exemplul alturat, astfel nct elementul aflat pe prima linie i prima coloan s fie egal cu 1. Afiai matricea pe ecran cte o linie a matricei pe o linie a ecranului, cu un spaiu ntre elementele fiecrei linii (ca n exemplul alturat). Exemplu. Pentru n=6 o soluie posibil este:
1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1

n (n 1) , dispuse n ordine cresctoare pe linii, iar n cadrul unei linii, n ordine 2

4/4