Page 84 - MATINF Nr. 8
P. 84
˘
84 PROBLEME DE INFORMATICA PENTRU EXAMENE
strcpy(s, "ROMANIA ");
i= strlen(s);
for(j=3; j >=0; j--)
{aux=s[i]; s[i]=s[i-j];
s[i-j]=aux; i=i-j;
}
3. Variabilele i ¸si j sunt de tip ˆıntreg, iar variabila a memoreaz˘a un tablou bidimensional
cu 5 linii ¸si 7 coloane, numerotate ˆıncepˆand de la 0, cu elemente numere ˆıntregi, init , ial
a
a
toate egale cu 1. F˘ar˘ a utiliza alte variabile decˆat cele ment , ionate, scriet¸i o secvent¸˘ de
a
instruct¸iuni prin care se transform˘ ˆın memorie tabloul, astfel ˆıncˆat orice element aflat pe
a
prima linie sau pe prima coloan˘ s˘ aib˘ valoarea 1 ¸si oricare alt element din tablou s˘ fie
a
a
a
a
a
egal cu ultima cifr˘ a sumei celor dou˘ elemente al˘aturate lui, ˆın stˆanga, respectiv ˆın sus.
(6p.)
SUBIECTUL al III-lea (30 de puncte)
Scriet¸i pe foaia de examen r˘aspunsul pentru fiecare din cerint¸ele urm˘atoare.
3
1. Subprogramul identice are un singur parametru, n, un num˘ar natural (n ∈ [10, 10 ]).
Subprogramul returneaz˘a valoarea 1, dac˘a num˘arul n are cifrele egale, sau valoarea 0 ˆın
a
caz contrar. Scriet¸i definit¸ia complet˘ a subprogramului.
Exemplu: Dac˘a n = 2222, subprogramul returneaz˘a valoarea 1, iar dac˘a n = 212,
subprogramul returneaz˘ valoarea 0. (10p.)
a
2. Scriet , i un program C/C++ care cites , te de la tastatur˘a numere naturale: n (n ∈ [2, 20]), k
9
(k ∈ [1, n]) s , i n · n numere din intervalul [0, 10 ], elemente ale unui tablou bidimensional
a
cu n linii s , i n coloane. Programul transform˘ tabloul ˆın memorie, deplasˆand circular spre
dreapta, cu cˆate o pozit , ie, toate elementele situate pe linia a k-a, ˆın stˆanga diagonalei
secundare, ca ˆın exemplu. Elementele tabloului obt , inut sunt afis , ate pe ecran, fiecare linie
pe cˆate o linie a ecranului, cu elementele fiec˘arei linii separate prin cˆate un spat , iu.
Exemplu: pentru n = 5, k = 2 s , i
2 3 4 5 6 2 3 4 5 6
2 4 6 8 0 6 2 4 8 0
tabloul 7 8 9 0 1 se obt¸ine tabloul 7 8 9 0 1 . (10p.)
3 5 7 9 1 3 5 7 9 1
7 3 8 5 6 7 3 8 5 6
3. S , irul de mai jos este definit astfel: f 1 = 1, f 2 = 2, f n = 3 · f n−1 − 2 · f n−2 (unde n este un
num˘ar natural n ≥ 3). 1, 2, 4, 8, 16, 32, . . .. Se cites , te de la tastatur˘a un num˘ar natural
9
x (x ≤ 10 ), valoare a unui termen al s , irului dat, ¸si se cere s˘a se scrie ˆın fi¸sierul text
bac.txt, ˆın ordine descresc˘atoare, separat , i prin cˆate un spat , iu, tot¸i termenii ¸sirului care
sunt p˘atrate perfecte mai mici sau egale cu x. Proiectat , i un algoritm eficient din punctul
de vedere al memoriei utilizate ¸si al timpului de executare.
a
Exemplu: dac˘ se cites , te num˘arul 16 fi¸sierul bac.txt cont¸ine numerele 16 4 1
a) Descriet , i ˆın limbaj natural algoritmul proiectat, justificˆand eficient , a acestuia. (2p.)
b) Scriet , i programul C/C++ corespunz˘ator algoritmului proiectat. (8p.)