Page 122 - MATINF Nr. 1
P. 122
˘
122 PROBLEME DE INFORMATICA PENTRU EXAMENE
se va afis , a
4
Ana are de rezolvat zece probleme la informatica la matematica la chimie zece
la fizica (10p.)
SUBIECTUL al III-lea (30 de puncte)
Pentru itemul 1, scriet , i pe foaia de examen litera corespunz˘atoare r˘aspunsului
corect.
1. Se consider˘a un num˘ar natural nenul n avˆand exact k cifre, cifrele lui fiind distincte dou˘a
cˆate dou˘a, iar printre cele k cifre se g˘ases , te s , i cifra 0. Permutˆand cifrele lui n se obt , in
alte numere naturale. Cˆate dintre numerele obt , inute, inclusiv n, au exact k cifre? (4p.)
a) k!-(k-1)! b) k! c) (k-1)! d) (k+1)!
Scriet , i pe foaia de examen r˘aspunsul pentru fiecare dintre cerint , ele urm˘atoare.
2. Se consider˘a subprogramul f definit void f(int a)
al˘aturat, ˆın care a este num˘arˆıntreg nenul. {
Ce se afis , eaz˘a pe ecran la apelul lui f(3), if (a >0){
dar la apelul lui f(123)? (6p.) cout <<a%10;
f(a/10);
cout <<a%10;
}
}
3. Se consider˘a subprogramul divizori, cu trei parametri. Primeste prin intermediul parame-
trului n un num˘ar natural nenul 2≤n≤10000 s , i returneaz˘a prin intermediul parametrilor
d1 s , i d2 cel mai mic, respectiv cel mai mare divizor prim al s˘au (1<d1≤d2≤n).
Pentru n=6, se obt , in d1=2 s , i d2=3, iar pentru n=7 se obt , in d1=7 s , i d2=7.
a) Scriet , i definit , ia complet˘a a subprogramului divizori. (6p.)
b) Scriet , i un program care cites , te dou˘a numere naturale a s , i b, de cel mult 4 cifre
fiecare, s , i determin˘a folosind apeluri utile ale subprogramului divizori toate numerele
naturale cuprinse ˆın intervalul [a,b] cu proprietatea c˘a sunt numere prime. Numerele
determinate se afis , eaz˘a pe ecran cu spat , ii ˆıntre ele.
Exemplu: Pentru a=12, b=20 se vor afis , a numerele: 13 17 19 (4p.)
4. Fis , ierul text numere.in memoreaz˘a cel mult 1000000000 de numere naturale s , i cel
put , in 2, fiecare cu cel mult nou˘a cifre. Numerele sunt separate prin cˆate un spat , iu.
Se consider˘a c˘a un s , ir format din cel put , in trei termeni formeaz˘a un ,,platou” dac˘a
diferent , a dintre oricare termen al acestuia, ˆıncepˆand cu cel de-al doilea, s , i cel aflat pe
pozit , ia anterioar˘a ˆın s , ir este constant˘a s , i mai mare ca zero.
Se cere s˘a se citeasc˘a numerele din fis , ierul numere.in s , i s˘a se afis , eze pe ecran num˘arul
maxim de termeni ai unei secvent , e din s , ir, secvent , ˘a care formeaz˘a un ,,platou”. Dac˘a nu
exist˘a astfel de secvent , ˘a se afis , eaz˘a pe ecran mesajul Nu exista.
Se utilizeaz˘a un algoritm eficient din punctul de vedere al memoriei s , i al timpului de
executare.
Exemplu: dac˘a fis , ierul numere.in cont , ine numerele