Page 75 - MATINF Nr. 6
P. 75
˘
PROBLEME DE INFORMATICA PENTRU EXAMENE 75
S˘a se scrie o secvent , ˘a de program C/C++ care determin˘a ˆın variabila u suma unghiurilor
u1 s , i u2. (6p.)
SUBIECTUL al III-lea (30 de puncte)
Scriet¸i pe foaia de examen r˘aspunsul pentru fiecare din cerint¸ele urm˘atoare.
1. Scriet¸i un program ˆın C/C++ care cite¸ste elementele ˆıntregi ale unui tablou bidimensional
x cu n linii numerotate de la 1 la n s , i m coloane numerotate de la 1 la m (n, m numere
naturale nenule, n, m<15) s , i determin˘a s , i afis , eaz˘a media aritmetic˘a a elementelor x[i][j]
∗
din tablou care ˆındeplinesc proprietatea c˘a i+j=k, unde k∈ N , k≤n+m, citit de la tastatur˘a.
Rezultatul se va afis , a cu dou˘a zecimale. (10p.)
7 3 2 9
6 5 4 1
Exemplu: pentru n=4, m=4 ¸si k=5 s , i tabloul , se va afis , a 2.50
4 −6 2 −9
3 −8 7 2
((9+4-6+3)/4).
2. Un num˘ar se numes , te super multiplu de k dac˘a atˆat num˘arul, cˆat s , i toate prefixele sale
sunt multipli de k.
Exemplu: n=846 este supermultiplu de k=2, deoarece 846, 84, 8 sunt multipli ai
num˘arului 2.
a) Scriet¸i definit¸ia complet˘a a subprogramului bac cu doi parametri: n s , i k numere
natural nenule, care prime¸ste prin intermediul acestora dou˘a numere naturale de
maxim 9 cifre fiecare. Subprogramul returneaz˘a valoarea 1 dac˘a num˘arul n este
supermultiplu de k ¸si 0 ˆın caz contrar. (6p.)
b) Scriet¸i un program C/C++ care cite¸ste de la tastatur˘a 3 numere naturale nenule
a, b s , i c, de maxim 9 cifre fiecare, apoi folosind apeluri utile ale subprogramului
de la punctul a) determin˘a ¸si afi¸seaz˘a pe ecran toate numerele din intervalul ˆınchis
ˆ
determinat de a s , i b care sunt supermultipli de c. In cazul ˆın care nu exist˘a ˆın interval
numere supermultipli de c, se va afi¸sa un mesaj corespunz˘ator. (4p.)
Exemplu: pentru a=50, b=1000 ¸si c=7, se vor afi¸sa numerele 70, 77, 700, 707, 770,
777.
3. Fi¸sierul text bac.in cont¸ine pe primul rˆand dou˘a numere natural nenule, n s , i k, n≤10000,
k≤n, iar pe al doilea rˆand n numere reale.
a) Folosind un algoritm eficient din punct de vedere al timpului de executare, scriet¸i un
program C/C++ care cite¸ste numerele din fi¸sier ¸si determin˘a num˘arul de secvent , e de
lungime k de numere de pe al doilea rˆand din fis , ier care ˆıncep s , i se termin˘a cu aceeas , i
valoare. Rezultatul se va afi¸sa pe ecran, iar dac˘a ˆın fis , ier nu exist˘a nicio secvent , ˘a cu
aceast˘a proprietate, se va afis , a un mesaj corespunz˘ator. (6p.)
Exemplu: dac˘a fi¸sierul bac.in are urm˘atorul cont¸inut:
12 3
3 2 9 6 9 15 -3 15 -3 16 24 31
se va afi¸sa 3 (9 6 9; 15 -3 15; -3 15 -3).
b) Descriet¸i ˆın limbaj natural metoda utilizat˘a justificˆand eficient¸a acesteia. (4p.)