joi, 26 aprilie 2012

Probleme propuse...


1) Sa se calculeze suma elementelor de pe diagonala principala a unei matrice patrate si suma elementelor de pe diagonala secunara, de dimensiune n.Elementele matricei sunt numere intregi.


2) Se considera o matrice patrata cu elemente numere intregi de dimeniunea n*n.Numarul n si elementele matrici se citesc de la tastatura.Sa se afiseze:
a)suma elementelor situate deasupra diagonalei principale
 b)suma elementelor situate sub diagonala secundara
 
 3.Se da o matrice cu m linii si  n coloane.Sa se memoreze intr-un vector b sumele elementelor de pe fiecare linie a matricii ( b[i] va reprezenta suma elementelor de pe linia i in matrice).

4.O matrice patratica cu n linii *  n coloane se numeste triunghiulara superior daca toate elementele aflate sub diagonala principala sunt nule. Realizati un program care verifica daca matricea este triunghiulara superior.


4.Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (1≤n≤100)şi apoi elementele unui tablou bidimensional cu n linii şi n coloane, care memorează numere naturale cu cel mult 9 cifre fiecare; programul afişează pe ecran acele valori din tablou care sunt strict mai mici decât toate elementele cu care se învecinează direct (aflate pe aceeaşi linie dar pe o coloană alăturată sau pe aceeaşi coloană dar pe o linie alăturată).Numerele afişate vor fi separate prin câte un spaţiu.

5. Ştiind ca datele de intrare sunt: x = 1, k = 2 şi matricea a =  
var n,k,x,i,j,nr:integer;
a:array[1..20,1..20]of integer;
begin
write('n = '); readln(n); write('x = '); readln(x); write('k = '); readln(k);
for i:=1 to n do
for j:=1 to n do begin
write ('a[',i,',',j,'] = ');
readln (a[i,j]); end;
nr:=0;
for i:=1 to n do
for j:=1 to n do
if a[i,j] = x then  begin    nr:= nr+1;
                 if nr = k then write( i );
                  end;
end.
a) Ce se afişează? 0,5 p
b) Pentru ce valoare a datelor de intrare ale programului anterior se afişează 3?.   0,5 p
c) Să se modifice programul anterior, astfel încât să afişeze numărul elementelor pare de pe linii impare. 1 p
d) Să se scrie o secvenţă care să calculeze pătratul sumei elementelor de pe diagonala principală a unei matrici pătratice   .2 p
  • . Să se scrie un program care afişează transpusa unei matrici a cu n linii şi m coloane, cu elemente numere naturale. 2 p
  •  Se citeşte de la tastatură o matrice a cu m linii şi n coloane şi elemente numere întregi. Să se memoreze într-un vector b sumele elementelor de pe fiecare coloană a matricei (b[i] va reprezenta suma elementelor de pe coloana j în matrice). 3 p



   6. Ştiind ca datele de intrare sunt: x = 1, k = 2 şi matricea a =  
var n,k,x,i,j,nr:integer;
a:array[1..20,1..20]of integer;
begin
write('n = '); readln(n); write('x = '); readln(x); write('k = '); readln(k);
for i:=1 to n do
for j:=1 to n do begin
write ('a[',i,',',j,'] = ');
readln (a[i,j]); end;
nr:=0;
for i:=1 to n do
for j:=1 to n do
if a[i,j] = x then  begin    nr:= nr+1;
                 if nr = k then write( j );
                  end;
end.
a) Ce se afişează? 0,5 p
b) Pentru ce valoare a datelor de intrare ale programului anterior se afişează 1?   0,5 p
c) Să se modifice programul anterior, astfel încât să afişeze numărul elementelor impare de pe coloane impare. 1p
d) Să se scrie o secvenţă care să calculeze cubul produsului elementelor de pe diagonala principală a unei matrici pătratice.  2p
  •  Să se scrie un program care afişează transpusa transpusei unei matrici a cu m linii şi n coloane, cu elemente numere reale.    2 p
  •  Se citeşte de la tastatură o matrice a cu m linii şi n coloane şi elemente numere întregi. Să se memoreze într-un vector b sumele elementelor de pe fiecare linie a matricei (b[i] va reprezenta suma elementelor de pe linia i în matrice). 3 p
    VARIANTA 2

1. Se consideră un tablou bidimensional cu n linii și m coloane. Realizați un program care afișează coloanele care au elementele ordonate crescător.

2. Se consideră un tablou bidimensional cu n linii și m coloane. Realizați un program care identifică și afișează coloana care are cele mai multe elemente divizibile cu primul element situat pe ea. Dacă sunt mai multe coloane care îndeplinesc această condiție, se va afișa coloana cu numărul de ordine cel mai mare.
3. Se consideră un tablou bidimensional cu n linii și m coloane. Realizați un program care ordonează descrescător fiecare coloană a tabloului.
4. Se consideră un tablou bidimensional cu n linii și m coloane. Realizați un program care calculează suma elementelor de pe fiecare coloană care are primul element număr prim.
5. Se consideră un tablou bidimensional cu n linii și m coloane. Realizați un program care afișează numărul de numere prime de pe fiecare linie a matricii.
6. Se consideră un tablou bidimensional cu n linii și m coloane. Realizați un program care afișează cel mai mare divizor comun al elementelor situate pe fiecare coloană a matricii.
7. Se consideră un tablou bidimensional cu n linii și m coloane. Realizați un program care ordonează crescător elementele impare de pe fiecare linie a matricii, elementele pare nu își vor schimba pozițiile.
8. Se consideră un tablou bidimensional cu n linii și m coloane. Realizați un program care afișează numărul de linii care conțin cele mai multe valori palindrom.
9. Se consideră un tablou bidimensional cu n linii și m coloane. Realizați un program care liniarizează matricea, adică formează un vector cu elementele matricii, parcurse pe coloane.
10. Se consideră un tablou bidimensional cu n linii și m coloane. Realizați un program care interschimbă coloana x cu coloana y, unde x și y sunt citite.
11. Se citește n și m. Se cere să se formeze o matrice cu nxm elemente ale șirului lui Fibonacci, matricea  fiind parcursă pe linii.
12. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale nenule n şi m
(2≤m≤10, 2≤n≤10) şi care construieşte în memorie şi apoi afişează o matrice A cu n linii (numerotate de la 1la n) şi m coloane (numerotate de la 1 la m) cu proprietatea că fiecare element Aij memorează cea mai mică dintre valorile indicilor i şi j (1≤i≤n, 1≤j≤m). Matricea se va afişa pe ecran, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu. Exemplu: pentru n=4 şim=5 se va afişa matricea alăturată.

1 1 1 1 1

1 2 2 2 2

1 2 3 3 3

1 2 3 4 4

13. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale n şi m (2≤m≤10,2≤n≤10) şi care construieşte în memorie şi apoi afişează o matrice A cu n linii (numerotate de la 1la n) şi m coloane (numerotate de la 1 la m) cu proprietatea că fiecare element Aij memorează cea mai mare dintre valorile indicilor i şi j (1≤i≤n, 1≤j≤m). Matricea se va afişa pe ecran, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu. Exemplu: pentru n=4 şi m=5 se va afişa matricea alăturată.

1 2 3 4 5

2 2 3 4 5

3 3 3 4 5

4 4 4 4 5

14. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale n şi p (2≤n≤20,1≤p≤20) şi construieşte în memorie un tablou bidimensional cu n linii şi p coloane. Tabloul va fi construit astfel încât, parcurgând tabloul linie cu linie de sus în jos şi fiecare linie de la stânga la dreapta, să se obţină şirul primelor n*p pătrate perfecte impare, ordonat strict crescător, ca în exemplu. Tabloul astfel construit va fi afişat pe ecran, fiecare linie a tabloului pe câte o linie a ecranului, cu câte un spaţiu între elementele fiecărei linii. Exemplu: pentru n=2, p=3 se va afişa tabloul alăturat:

1 9 25

49 81 121

15. Se consideră tabloul bidimensional cu n linii şi n coloane ce conţine numere naturale cu cel mult patru cifre fiecare. Scrieţi programul C/C++ care citeşte de la tastatură numărul natural n(2≤n≤23) şi cele n*n elemente ale tabloului şi apoi afişează pe ecran elementele primului pătrat concentric, separate prin câte un spaţiu. Pătratul este parcurs în sensul acelor de ceasornic începând din colţul său stânga-sus, ca în exemplu. Primul pătrat concentric este format din prima şi ultima linie, prima şi ultima coloană a tabloului. Exemplu: pentru n=5 şi tabloul alăturat, se va afişa: 1 2 3 4 5 1 6 2 7 6 5 4 3 7 2 6

1 2 3 4 5

6 7 8 9 1

2 3 4 5 6

7 8 9 1 2

3 4 5 6 7

16. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale n şi p (2≤n≤20, 1≤p≤20) şi construieşte în memorie un tablou bidimensional cu n linii şi p coloane. Tabloul va fi construit astfel încât, parcurgând matricea linie cu linie de sus în jos şi fiecare linie de la stânga la dreapta, să se obţină şirul primelor n*p pătrate perfecte pare, ordonat strict crescător, ca în exemplu. Tabloul astfel construit va fi afişat pe ecran, fiecare linie a tabloului pe câte o linie a ecranului, cu câte un spaţiu între elementele fiecărei linii. Exemplu: pentru n=2, p=3 programul va afişa tabloul alăturat:
0 4 16

36 64 100

17. Scrieţi un program C/C++ care citeşte de la tastatură două valori naturale nenule m şin (m≤10, n≤10) şi apoi m*n numere naturale nenule cu cel mult 4 cifre fiecare, reprezentând elementele unei matrice cu m linii şi n coloane. Programul determină apoi valorile minime de pe fiecare linie a matricei şi afişează pe ecran cea mai mare valoare dintre aceste minime. Exemplu: pentru m=3, n=5 şi matricea
5 13 7 2 3

9 6 12 9 10

3 6 5 4 7

se afişează pe ecran valoarea 6 (cea mai mică valoare de pe prima linie a matricei este 3, cea mai mică valoare de pe linia a doua este 6, cea mai mică valoare de pe linia a treia este 2. Cea mai mare dintre aceste trei valori este 6).

18. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (2<n<25) şi apoi construieşte în memorie o matrice cu n linii şi n coloane, numerotate de la 1 la n, ale cărei elemente primesc valori după cum urmează: elementul din linia i şi coloana j primeşte ca valoare ultima cifră a produsului i*j (1≤i≤n şi 1≤j≤n). Programul va afişa matricea astfel construită pe ecran, câte o linie a matricei pe o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu. Exemplu: pentru n=4 se va afişa matricea alăturată.

1 2 3 4

2 4 6 8

3 6 9 2

4 8 2 6

19. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural nenul, cu maximum 18cifre, construieşte în memorie şi afişează apoi pe ecran o matrice pătratică, având numărul de linii şi de coloane egal cu numărul de cifre ale numărului dat, completată cu cifrele numărului citit. Astfel, elementele de pe prima coloană a matricei vor fi toate egale cu cifra unităţilor numărului dat, elementele de pe a doua coloană a matricei vor fi toate egale cu cifra zecilor numărului dat, şi aşa mai departe, ca în exemplu. Exemplu: dacă se citeşte numărul 1259, matricea construită va fi cea alăturată.

9  5  2  1

9  5  2  1

9  5  2  1

9  5  2  1

 

20.  Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (2<n<20) şi

construieşte în memorie o matrice cu n linii şi n coloane, numerotate de la 1 la n, în care

fiecare element aflat pe chenarul exterior al matricei este egal cu suma dintre indicele liniei

şi indicele coloanei pe care se află, iar fiecare dintre celelalte elemente este egal cu suma

celor trei “vecini” situaţi în matrice pe linia anterioară. Două elemente din matrice se numesc

vecine dacă se găsesc alături pe linie, coloană sau diagonală. Chenarul exterior al unei

matrice este format din prima linie, ultima linie, prima coloană şi ultima coloană.

Elementele matricei vor fi afişate pe ecran, câte o linie a matricei

pe câte o linie a ecranului cu câte un spaţiu între elementele

fiecărei linii.

Exemplu: pentru n=5 se va obţine matricea alăturată.

2 3 4 5 6

3 9 12 15 7

4 24 36 34 8

5 64 94 78 9

6 7 8 9 10







Niciun comentariu:

Trimiteți un comentariu