0% au considerat acest document util (0 voturi)
27 vizualizări6 pagini

Matrice Constructie

Documentul prezintă o serie de probleme de programare care implică construcția și manipularea de matrici bidimensionale (tablouri) în memoria calculatorului, citirea de date de la tastatură și afișarea rezultatelor. Problemele variază în funcție de modul de completare a elementelor matricii, de eliminarea unor linii/coloane, de parcurgerea elementelor într-o anumită ordine etc.

Încărcat de

Antoneta Lazarescu
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
27 vizualizări6 pagini

Matrice Constructie

Documentul prezintă o serie de probleme de programare care implică construcția și manipularea de matrici bidimensionale (tablouri) în memoria calculatorului, citirea de date de la tastatură și afișarea rezultatelor. Problemele variază în funcție de modul de completare a elementelor matricii, de eliminarea unor linii/coloane, de parcurgerea elementelor într-o anumită ordine etc.

Încărcat de

Antoneta Lazarescu
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Tablouri bidimensionale – Construcție

1. Scrieți un program care citeşte de la tastatură un număr natural, n (2≤n≤20), şi construieşte


în memorie tabloul bidimensional cu n linii şi n coloane, având proprietățile:
• toate elementele situate pe diagonala principală sunt nule;
• fiecare linie conține, începând cu diagonala principală, de la dreapta la stânga, un şir strict
crescător de numere consecutive, iar începând cu diagonala principală, de la stânga la dreapta, tot
un şir strict crescător de numere consecutive. Programul afişează pe ecran tabloul construit, fiecare
linie a tabloului pe câte o linie a ecranului, cu elementele aflate pe aceeaşi linie separate prin câte un
spațiu. Exemplu: dacă n=5 se afişează pe ecran tabloul alăturat.

0 1 2 3 4
1 0 1 2 3
2 1 0 1 2
3 2 1 0 1
4 3 2 1 0

2. În secvența de instrucțiuni de mai jos, variabilele i şi j sunt de tip întreg şi se consideră că


variabila A memorează elementele, inițial nule, ale unui tablou bidimensional, cu 5 linii şi 5
coloane, numerotate de la 0 la 4. Fără a utiliza şi alte variabile decât cele menționate mai
sus, scrieți o instrucțiune care poate înlocui punctele de suspensie astfel încât, în urma
executării secvenței, tabloul memorat în variabila A să aibă elementele din figura de mai jos.

for(i=0;i<5;i++)
for(j=0;j<5;j++)
.......
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25

3. Se citește un număr natural n (n<=20). Construiți si afișați o matrice pătratică cu n linii și n


coloane după modelul de mai jos, obținut pentru n=9.

0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1 2
0 0 0 0 0 0 1 2 4
0 0 0 0 0 1 2 4 8
0 0 0 0 1 2 4 8 16
0 0 0 1 2 4 8 16 32
0 0 1 2 4 8 16 32 64
0 1 2 4 8 16 32 64 128
1 2 4 8 16 32 64 128 256
4. Se citește un număr natural n (n<=100). Construiți si afișați o matrice pătratică cu n linii și n
coloane după modelul de mai jos, obținut pentru n=8.

0 2 3 4 5 6 7 8
2 0 6 8 10 12 14 16
3 6 0 12 15 18 21 24
4 8 12 0 20 24 28 32
5 10 15 20 0 30 35 40
6 12 18 24 30 0 42 48
7 14 21 28 35 42 0 56
8 16 24 32 40 48 56 0

5. Scrieți un program care citeşte de la tastatură două numere naturale n şi m (2<n≤ ≤≤ ≤24,
2<m≤ ≤≤ ≤24) şi construieşte în memorie un tablou bidimensional cu n linii şi m coloane, în
care orice element aflat pe ultima linie sau pe ultima coloană are valoarea 1 şi oricare alt
element este egal cu ultima cifră a sumei celor două elemente alăturate lui, aflate pe aceeaşi
linie şi pe coloana din dreapta, respectiv pe aceeaşi coloană şi pe linia următoare, ca în
exemplu. Programul afişează pe ecran tabloul obținut, câte o linie a tabloului 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 afişează tabloul de mai jos.

5 0 0 4 1
5 0 6 3 1
5 4 3 2 1
1 1 1 1 1

6. În secvența de instrucțiuni de mai jos variabilele i şi j sunt de tip întreg şi variabila A este de
tip tablou bidimensional cu 5 linii şi 5 coloane, numerotate de la 0 la 4, cu elemente numere
întregi. Fără a utiliza alte variabile, scrieți o instrucțiune care poate înlocui punctele de
suspensie astfel încât, în urma executării secvenței obținute, tabloul memorat în variabila A
să aibă elementele din figura de mai jos. Înainte de executarea secvenței toate elementele
tabloului sunt nule.

for(i=0;i<5;i++)
for(j=0;j<5;j++)
..............
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
7. În secvența de instrucțiuni de mai jos variabilele i şi j sunt de tip întreg şi variabila A este de
tip tablou bidimensional cu 5 linii şi 5 coloane, numerotate de la 0 la 4, cu elemente numere
întregi. Fără a utiliza alte variabile, scrieți o instrucțiune care poate înlocui punctele de
suspensie astfel încât, în urma executării secvenței obținute, tabloul memorat în variabila A
să aibă elementele din figura de mai jos. Înainte de executarea secvenței toate elementele
tabloului sunt nule.

0 -1 -2 -3 -4
for(i=0;i<5;i++) 1 0 -1 -2 -3
for(j=0;j<5;j++) 2 1 0 -1 -2
.............. 3 2 1 0 -1
4 3 2 1 0

8. În secvenţa de instrucţiuni de mai jos variabilele i şi j sunt de tip întreg, iar variabila A
memorează un tablou bidimensional cu 5 linii şi 5 coloane, numerotate de la 1 la 5, cu
elemente numere întregi. Fără a utiliza alte variabile, scrieţi una sau mai multe instrucţiuni
care pot înlocui punctele de suspensie astfel încât, în urma executării secvenţei obţinute,
tabloul memorat în variabila A să aibă elementele din figura de mai jos.

for(i=1;i<=5;i++) 3 4 5 6 7
for(j=1;j<=5;j++) 5 6 7 8 9
...............
7 8 9 10 11
9 10 11 12 13
11 12 13 14 15

9. Se consideră şirul lui Fibonacci, definit astfel: f0 = 0, f1 = 1, fn = fn-1 + fn-2, dacă n>1. Scrieţi
un program care citeşte de la tastatură o valoare naturală n (2≤n≤24), construieşte în
memorie şi afişează pe ecran o matrice a cu n linii şi n coloane ale cărei elemente sunt
numere naturale, fiecare reprezentând ultima cifră a câte unui termen al şirului lui Fibonacci,
începând de la termenul de indice 1 şi până la termenul de indice n2, în ordine, linie cu linie
de sus în jos, şi în cadrul fiecărei linii de la stânga la dreapta, ca în exemplu. Matricea se va
afişa pe ecran, câte o linie a matricei pe câte o linie a ecranului, elementele de pe aceeaşi
linie fiind separate între ele prin câte un spaţiu. Exemplu: pentru n = 4 se va obţine matricea
alăturată.

1 1 2 3
5 8 3 1
4 5 9 4
3 7 0 7
10. Scrieţi un program care citeşte de la tastatură două numere naturale, m și n (2≤m≤20,
2≤n≤20), şi construiește în memorie un tablou bidimensional A, cu m linii şi n coloane, astfel
încât parcurgându-l linie cu linie, de sus în jos, și fiecare linie de la stânga la dreapta, să se
obțină șirul primelor n·m numere naturale, pare, care NU sunt divizibile cu 5, ordonat strict
crescător. Programul afișează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie
a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu. Exemplu:
pentru m=4 şi n=3 se obține tabloul alăturat.
2 4 6 8
12 14 16 18
22 24 26 28

11. Scrieţi un program care citeşte de la tastatură două numere naturale, m și n (3≤m≤50,
3≤n≤50), şi elementele unui tablou bidimensional cu m linii şi n coloane, numere naturale cu
cel mult patru cifre, apoi modifică tabloul în memorie, eliminând penultima linie și penultima
coloană a acestuia, ca în exemplu. Programul afişează pe ecran tabloul obținut, fiecare linie a
tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte
un spațiu.

12. Variabilele i şi j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5
linii şi 5 coloane, numerotate de la 1 la 5, având iniţial toate elementele nule. Fără a utiliza
alte variabile decât cele menționate, scrieţi secvenţa de instrucţiuni de mai jos, înlocuind
punctele de suspensie astfel încât, în urma executării secvenţei obţinute, variabila a să
memoreze tabloul alăturat.
for(i=1;i<=5;i++) 1 2 3 4 5
for(j=1;j<=5;j++) 6 7 8 9 10
.................. 11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

13. Scrieţi un program care citeşte de la tastatură un număr natural, n (n∈[2,20]), apoi n numere
naturale din intervalul [0,104], reprezentând, de la stânga la dreapta, în această ordine,
valorile elementelor aflate pe prima linie a unui tablou bidimensional cu n linii şi n coloane.
Programul construieşte în memorie tabloul, iniţializând celelalte elemente, astfel încât
fiecare linie să se obțină prin permutarea circulară a elementelor liniei anterioare, de la
stânga spre dreapta, cu o poziţie, ca în exemplu. Programul afişează pe ecran tabloul
obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie
fiind separate prin câte un spațiu. Exemplu: dacă se citesc numerele n=4, apoi 1, 1, 3, 2, se
obţine tabloul alăturat.
1 1 3 2
2 1 1 3
3 2 1 1
1 3 2 1
14. Scrieţi un program care citeşte de la tastatură două numere naturale, m și n (2≤m≤20,
2≤n≤20), şi construiește în memorie un tablou bidimensional A, cu m linii şi n coloane, astfel
încât parcurgându-l linie cu linie, de jos în sus, și fiecare linie de la dreapta la stânga, să se
obțină șirul primelor n·m numere naturale, impare, care NU sunt divizibile cu 3, ordonat
strict crescător. Programul afișează pe ecran tabloul obținut, fiecare linie a tabloului pe câte
o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu.
Exemplu: pentru m=4 şi n=3 se obține tabloul alăturat.
35 31 29
25 23 19
17 13 11
7 5 1

15. Variabilele i şi j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5
linii şi 5 coloane, numerotate de la 1 la 5, având iniţial toate elementele nule. Fără a utiliza
alte variabile decât cele menționate, scrieţi secvenţa de instrucţiuni de mai jos, înlocuind
punctele de suspensie astfel încât, în urma executării secvenţei obţinute, variabila a să
memoreze tabloul alăturat.

for(i=1;i<=5;i++) 1 0 1 0 1
0 1 0 1 0
for(j=1;j<=5;j++) 1 0 1 0 1
0 1 0 1 0
..................
1 0 1 0 1

16. Variabilele i şi j din secvenţa de instrucţiuni de mai jos sunt de tip întreg, iar variabila a
memorează un tablou bidimensional cu 5 linii şi 5 coloane, numerotate de la 0 la 4, cu
elemente de tip char. Fără a utiliza alte variabile, scrieţi una sau mai multe instrucţiuni care
pot înlocui punctele de suspensie astfel încât, în urma executării secvenţei obţinute, tabloul
memorat în variabila a să aibă elementele din figura de mai jos.
for(i=0;i<5;i++)
for(j=0;j<5;j++) ! ? ! ? !
............... ? ! ? ! ?
! ? ! ? !
? ! ? ! ?
! ? ! ? !

17. Variabilele i şi j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5
linii şi 5 coloane, numerotate de la 1 la 5, având iniţial toate elementele nule. Fără a utiliza
alte variabile decât cele menționate, scrieţi secvenţa de instrucţiuni de mai jos, înlocuind
punctele de suspensie astfel încât, în urma executării secvenţei obţinute, variabila a să
memoreze tabloul alăturat.
for(i=1;i<=5;i++) 0 3 0 5 0
for(j=1;j<=5;j++) 3 0 5 0 7
.................. 0 5 0 7 0
5 0 7 0 9
0 7 0 9 0
18. Scrieţi un program care citeşte de la tastatură un număr natural n (n∈[2,20]) şi construieşte
în memorie un tablou bidimensional cu n linii şi n coloane în care:
- ultima coloană conţine numerele naturale din intervalul [1,n], în ordine strict
descrescătoare;
- toate elementele primei linii au valoarea n;
- oricare alt element este obţinut prin însumarea celor două elemente vecine cu el, unul aflat
pe coloana din dreapta, pe aceeaşi linie cu el, iar celălalt pe aceeaşi coloană cu el, dar pe
linia anterioară, ca în exemplu.
Programul afişează pe ecran tabloul obţinut, fiecare linie a tabloului pe câte o linie a
ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu. Exemplu: pentru n=4 pe
ecran se afişează:
4 4 4 4
15 11 7 3
35 20 9 2
65 30 10 1

19. Variabilele i şi j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 9
linii şi 9 coloane, numerotate de la 0 la 8, având iniţial toate elementele egale cu caracterul
*. Fără a utiliza alte variabile, scrieţi secvenţa de instrucţiuni de mai jos, înlocuind punctele
de suspensie astfel încât, în urma executării secvenţei obţinute, variabila a să memoreze
tabloul alăturat.
for(i=0;i<9;i++) b a a a a a a a b
for(j=0;j<9;j++) b b a a a a a b b
b b b a a a b b b
..................
b b b b a b b b b
b b b b b b b b b
b b b b b b b b b
b b b b b b b b b
b b b b b b b b b
b b b b b b b b b

20. Scrieți un program care citește de la tastatură un număr natural par n (n∈[2,50]) și
elementele unui tablou bidimensional cu n linii și n coloane, numere reale, apoi transformă
tabloul în memorie, inserând o linie nouă, la mijlocul său, valoarea fiecărui element al
acesteia fiind egală cu media aritmetică a elementelor aflate pe coloana corespunzătoare lui
în tabloul citit. Tabloul obținut se afişează pe ecran, câte o linie a tabloului pe câte o linie a
ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu. Exemplu: pentru n=4 și
tabloul
1.5 0.75 3 1.2
1.5 0.75 3 1.2 se obține tabloul:
2.75 1.25 2.25 1.5
2.75 1.25 2.25 1.5 2.25 1 2.5 2.55
4.5 1.15 3 4.5 4.5 1.15 3 4.5
0.25 0.85 1.75 3 0.25 0.85 1.75 3

S-ar putea să vă placă și