Sunteți pe pagina 1din 15

Burlacu Natalia, conf. univ. dr.

STRUCTURI DE
DATE ȘI
ALGORITMI
LUCRAREA DE LABORATOR 3&4

Chişinău, UTM, 2020


3. Programarea procedurală a algoritmilor de sortare a
datelor din array (-uri) 1-D & 2-D

3.2. Rezolvarea problemelor de sortare cu array (-uri) 2-D

Nivel mediu & m. sus de mediu

Sarcină:

A rezolva în C problemele ce urmează, utilizând funcții elaborate de dvs. Algoritmul


funcțiilor va fi programat, reieșind din conținutul problemei. A prezenta soluția
problemei prin abordare funcțională în două versiuni:
A. cu utilizarea metodei de transmitere a parametricelor funcțiilor prin
referință1;
B. cu utilizarea metodei de transmitere a parametricelor funcțiilor prin adresă /
pointeri (parametrul formal va fi un pointer către valoarea obiectului
corespunzător)2.
C. A desena schema-bloc corespunzătoare funcțiilor problemei rezolvate.

N.B: La notare se va lua în considerație complexitatea și calitatea


modificărilor propuse și soluționate.

Nr.dr. Problema
1. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să verifice dacă oarecare 2 rânduri ale array-ului conțin elemente
comune. Indecșii rândurilor de comparat r1 și r2 vor fi citiți de la
tastieră;
II. Dacă cele 2 rânduri ale array-ului conțin elemente comune să se
efectueze sortarea crescătoare a elementelor array-ului dat din r1,
aplicând metoda Counting Sort. Sortarea de output a elementelor din
r1 va fi efectuată și afișată într-un array 1-D;
III. Dacă cele 2 rânduri ale array-ului nu conțin elemente comune să se
efectueze sortarea descrescătoare a elementelor array-ului dat din r2,
aplicând metoda Heap Sort. Sortarea de output a elementelor din r2
va fi efectuată și afișată într-un array 1-D;

1
http://infoscience.3x.ro/c++/transmparam.htm
2
Ibidem 6.
1
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
2. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să verifice dacă oarecare 2 coloane ale array-ului conțin elemente
comune. Indecșii coloanelor de comparat c1 și c2 vor fi citiți de la
tastieră;
II. Dacă cele 2 coloane ale array-ului conțin elemente comune să se
efectueze sortarea descrescătoare a elementelor array-ului dat din c1,
aplicând metoda Counting Sort. Sortarea de output a elementelor din
c1 va fi efectuată și afișată într-un array 1-D;
III. Dacă cele 2 coloane ale array-ului nu conțin elemente comune să se
efectueze sortarea crescătoare a elementelor array-ului dat din r2,
aplicând metoda Heap Sort. Sortarea de output a elementelor din r2
va fi efectuată și afișată într-un array 1-D;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
3. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să verifice dacă în array se conțin elemente egale cu valoarea unei
variabile V, care este citită de la tastieră. A număra și afișa câte
elemente egale cu valoarea variabilei V au fost găsite pentru fiecare
rând.
II. Dacă în array-ului a fost găsit un număr par de elemente egale cu
valoarea variabilei V, aplicând metoda Counting Sort să se sorteze
crescător elementele din rândul array-ului cu cele mai multe valori
egale cu V. Să se afișeze array-ul până și după sortare;
III. Dacă în array-ului a fost găsit un număr impar de elemente egale cu
valoarea variabilei V, aplicând metoda Heap Sort să se sorteze
descrescător elementele din rândul array-ului cu cele mai puține
valori egale cu V. Să se afișeze array-ul până și după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
4. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:

2
I. Să verifice dacă în array se conțin elemente egale cu valoarea unei
variabile V, care este citită de la tastieră. A număra și afișa câte
elemente egale cu valoarea variabilei V au fost găsite pentru fiecare
coloană.
II. Dacă în array-ului a fost găsit un număr par de elemente egale cu
valoarea variabilei V, aplicând metoda Counting Sort să se sorteze
descrescător elementele din coloana array-ului unde au fost găsite
cele mai multe valori egale cu V. Să se afișeze array-ul până și după
sortare;
III. Dacă în array-ului a fost găsit un număr impar de elemente egale cu
valoarea variabilei V, aplicând metoda Heap Sort să se sorteze
crescător elementele din coloana array-ului unde au fost găsite cele
mai putine valori egale cu V. Să se afișeze array-ul până și după
sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
5. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să verifice dacă în array se conțin elemente mai mari de valoarea unei
variabile V, care este citită de la tastieră. A număra și afișa câte
elemente mai mari de valoarea variabilei V au fost găsite pentru
fiecare rând.
II. Dacă în rândurile array-ului a fost găsit un număr par de elemente mai
mari de valoarea variabilei V, aplicând metoda Counting Sort să se
sorteze crescător elementele din rândul array-ului cu cele mai puține
valori egale cu V. Să se afișeze array-ul până și după sortare;
III. Dacă în rândurile array-ului a fost găsit un număr impar de elemente
mai mari de valoarea variabilei V, aplicând metoda Heap Sort să se
sorteze descrescător elementele din rândul array-ului cu cele mai
multe valori egale cu V. Să se afișeze array-ul până și după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
6. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să verifice dacă în array se conțin elemente mai mici de valoarea unei
variabile V, care este citită de la tastieră. A număra și afișa câte
elemente mai mici de valoarea variabilei V au fost găsite pentru
fiecare coloană.

3
II. Dacă în coloanele array-ului a fost găsit un număr par de elemente
mai mici de valoarea variabilei V, aplicând metoda Counting Sort să
se sorteze descrescător elementele din coloana array-ului cu cele mai
multe valori egale cu V. Să se afișeze array-ul până și după sortare;
III. Dacă în coloanele array-ului a fost găsit un număr impar de elemente
mai mici de valoarea variabilei V, aplicând metoda Heap Sort să se
sorteze crescător elementele din coloana array-ului cu cele mai multe
valori egale cu V. Să se afișeze array-ul până și după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
7. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să se inter schimbe cu locurile 2 coloane c1 și c2. Indecșii coloanelor
de inter schimbat c1 și c2 vor fi citiți de la tastieră;
II. Să se calculeze suma elementelor pentru fiecare rând a elementelor.
III. Dacă suma totală a elementelor din c1 și c2 este egală cu un număr
impar, aplicând metoda Counting Sort să se sorteze crescător
elementele din rândul array-ului cu cea mai mare sumă. Să se afișeze
array-ul până și după sortare;
IV. Dacă suma totală a elementelor din c1 și c2 este egală cu un număr
par, aplicând metoda Heap Sort se sorteze descrescător elementele
din rândul array-ului cu cea mai mică sumă. Să se afișeze array-ul
până și după sortare;
V. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
8. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să se inter schimbe cu locurile 2 rânduri r1 și r2. Indecșii rândurilor
de inter schimbat r1 și r2 vor fi citiți de la tastieră;
II. Să se calculeze suma totală a elementelor din r1 și r2.
III. Dacă suma totală a elementelor din r1 și r2 este egală cu un număr
par, aplicând metoda Counting Sort să se sorteze crescător elementele
array-ului din rândul cu cea mai mare sumă. Să se afișeze array-ul
până și după sortare;
IV. Dacă suma totală a elementelor din r1 și r2 este egală cu un număr
par, aplicând metoda Heap Sort să se sorteze descrescător elementele
array-ului din rândul cu cea mai mică sumă. Să se afișeze array-ul
până și după sortare;

4
V. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
9. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să se inter schimbe cu locurile 2 coloane c1 și c2. Indecșii coloanelor
de inter schimbat c1 și c2 vor fi citiți de la tastieră;
II. Să se calculeze produsul tuturor elementelor din c1 și c2.
III. Dacă produsul tuturor elementelor din c1 și c2 este egal cu un număr
par, aplicând metoda Counting Sort să se sorteze descrescător
elementele din c1 a array-ului. Să se afișeze array-ul până și după
sortare;
IV. Dacă produsul tuturor elementelor din c1 și c2 este egal cu un număr
impar, aplicând metoda Heap Sort să se sorteze crescător elementele
din c2 a array-ului. Să se afișeze array-ul până și după sortare;
V. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
10. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să se inter schimbe cu locurile 2 rânduri r1 și r2. Indecșii rândurilor
de inter schimbat r1 și r2 vor fi citiți de la tastieră;
II. Să se calculeze produsul tuturor elementelor din r1 și r2.
III. Dacă produsul tuturor elementelor din r1 și r2 este egal cu un număr
par, aplicând metoda Counting Sort să se sorteze descrescător
elementele din r1 al array-ului. Să se afișeze array-ul până și după
sortare;
IV. Dacă produsul tuturor elementelor din r1 și r2 este egal cu un număr
impar, aplicând metoda Heap Sort să se sorteze crescător elementele
din r2 al array-ului. Să se afișeze array-ul până și după sortare;
V. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
11. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să se decupeze din array-ul original un alt subarray care să fie afișat
ca un array 1-D. Indecșii elementelor care determină intervalul pentru
decupare vor fi citiți de la tastieră. Să se afișeze array-ul de output.

5
De ex: Pentru diapazonul determinat de indecșii a[1] [3] a[3] [4] pe
array-ul de input:
1 2 3 7 18 -9
0 3 5 15 7 10
8 4 5 6 0 2
9 8 4 5 0 -2

Array-ul de output este (până la sortare):


15 7 10 8 4 5 6 0 2 9 8 4 5

II. Să se sorteze descrescător array-ul de output, aplicând metoda


Counting Sort. Să se afișeze array-ul după sortare;
III. Să se sorteze crescător array-ul de output, aplicând metoda Counting
Sort. Să se afișeze array-ul după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
12. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să fie înlocuite cu zerouri toate elementele unui subarray a unui array-
ul original. Subarray-ul va fi determinat de intervalul de indecși citiți
de la tastieră. Să se afișeze array-ul de output.
De ex: Pentru diapazonul determinat de indecșii a[2] [5] a[3] [3] pe
array-ul de input:
1 2 3 7 18 -9
0 3 5 15 7 10
8 4 5 6 0 2
9 8 4 5 0 -2

Array-ul de output este (până la sortare):


1 2 3 7 18 -9
0 3 5 15 7 10
8 4 5 6 0 0
0 0 0 0 0 -2

II. Să se sorteze descrescător prima coloană a array-ului original,


aplicând metoda Counting Sort. Să se afișeze array-ul după sortare;
III. Să se sorteze crescător ultima coloană a array-ul de output (după
rezolvarea pt. I), aplicând metoda Heap Sort. Să se afișeze array-ul
după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
6
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
13. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Într-un subarray a unui array-ul original să fie înlocuit fiecare element
a[i] cu valoarea a[i] 2. Subarray-ul va fi determinat de intervalul de
indecși citiți de la tastieră. Să se afișeze array-ul de output.
De ex: Pentru diapazonul determinat de indecșii a[0] [4] a[2] [4] pe
array-ul de input:
1 2 3 7 7 -9
1 9 5 15 -6 10
2 4 5 6 1 2
9 8 4 5 1 -2

Array-ul de output este (până la sortare):


1 2 3 7 49 81
1 81 25 225 36 100
4 16 25 36 1 2
9 8 4 5 1 -2

II. Să se sorteze crescător primul rând al array-ului original, aplicând


metoda Counting Sort. Să se afișeze array-ul după sortare;
III. Să se sorteze descrescător ultimul rând al array-ului de output (după
rezolvarea pt. I), aplicând metoda Heap Sort. Să se afișeze array-ul
după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
14. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să se verifice dacă toate elementele array-ului sunt multiplii primului
element dintr-o oarecare coloană c1 al array-ului dat. Valoarea c1 să
fie citită de la tastieră. Să se afișeze array-ul de input. Informația
privitoare la numărul, indexul și valoarea elementelor care sunt
multiplii ultimului element al coloanei c1 să fie afișată de program.
II. Dacă numărul total al elementelor multipli al primului element din c1
este un număr impar să se sorteze crescător prima coloană a array-
ului original, aplicând metoda Counting Sort. Să se afișeze array-ul
după sortare;
III. Dacă numărul total al elementelor multipli al primului element din c1
este un număr par să se sorteze descrescător ultima coloană a array-
7
ul original, aplicând metoda Counting Sort. Să se afișeze array-ul
după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
15. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Într-un subarray al unui array original să fie înlocuit fiecare element
a[i] cu valoarea a[i] 2- a[i]. Subarray-ul va fi determinat de intervalul
de indecși citiți de la tastieră. Să se afișeze array-ul de output.
De ex: Pentru diapazonul determinat de indecșii a[1] [2] a[3] [5] pe
array-ul de input:
1 2 3 7 7 -9
1 9 5 15 -6 10
2 4 5 6 1 2
9 8 4 5 1 -2

Array-ul de output este (până la sortare):


1 2 3 7 7 -9
1 9 20 210 42 90
2 12 20 30 0 2
72 76 12 20 0 6

II. Să se sorteze descrescător ultima coloană a array-ului original,


aplicând metoda Counting Sort. Să se afișeze array-ul după sortare;
III. Să se sorteze crescător ultimul rând al array-ului de output (după
rezolvarea pt. I), aplicând metoda Heap Sort. Să se afișeze array-ul
după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
16. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să se verifice dacă toate elementele array-ului sunt multiplii ultimului
element dintr-o oarecare coloană c1 al array-ului dat. Valoarea c1 să
fie citită de la tastieră. Să se afișeze array-ul de input. Informația
privitoare la numărul, indexul și valoarea elementelor care sunt
multiplii ultimului element al coloanei c1 să fie afișată de program.
II. Dacă numărul total al elementelor multipli al ultimului element din
c1 este un număr impar să se sorteze crescător ultima coloană a array-
8
ul original, aplicând metoda Counting Sort. Să se afișeze array-ul
după sortare;
III. Dacă numărul total al elementelor multipli al ultimului element din
c1 este un număr par să se sorteze descrescător prima coloană a array-
ul original, aplicând metoda Counting Sort. Să se afișeze array-ul
după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
17. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să găsească în array-ul original toate elementele impare, care apoi să
fie separate într-un array 1-D. Să se afișeze array-ul de output.
De ex: Pentru array-ul de input:
1 2 3 7 7 -9
1 9 5 15 -6 10
2 4 5 6 1 2
9 8 4 5 1 -2

Array-ul de output este (până la sortare):


1 3 7 7 -9 1 9 5 15 5 1 9 5 1

II. Să se sorteze crescător ultimul rând al array-ului original, aplicând


metoda Counting Sort. Să se afișeze array-ul după sortare;
III. Să se sorteze descrescător array-ul 1-D de output (după rezolvarea pt.
I), aplicând metoda Heap Sort. Să se afișeze array-ul după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
18. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să calculeze în array-ul original frecvența tuturor elementelor dintr-
un subarray. Subarray-ul va fi determinat de intervalul de indecși citiți
de la tastieră. Informația privitoare la numărul aparițiilor elementelor
să se afișeze statistic (valoarea, numărul de apariții, indexul
elementului / indecșii elementelor). Să se afișeze array-ul de input.
De ex: Pentru array-ul de input:
1 2 3 7 7 -9
1 9 5 15 -6 10
2 4 5 6 1 2
9
9 8 4 5 1 -2

Statistica privitoare la numărul aparițiilor elementelor:


-9 -6 -2 0 1 2 3 4 5 6 7 8 9 10 15
1 1 1 0 4 3 1 2 2 1 2 1 1 1 1

II. Dacă diversitatea elementelor prezente în array este un număr par să


se sorteze crescător primul rând al array-ul original, aplicând metoda
Counting Sort. Să se afișeze array-ul după sortare;
III. Dacă diversitatea elementelor prezente în array este un număr impar
să se sorteze descrescător ultimul rând al array-ului original, aplicând
metoda Heap Sort. Să se afișeze array-ul după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
19. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să se verifice dacă toate elementele array-ului sunt multiplii primului
element dintr-un oarecare rând r1 al array-ului dat. Valoarea r1 să fie
citită de la tastieră. Să se afișeze array-ul de input. Informația
privitoare la numărul, indexul și valoarea elementelor care sunt
multiplii primului element al rândului r1 să fie afișată de program.
II. Dacă numărul total al elementelor multipli al primului element din r1
este un număr impar să se sorteze crescător prima coloană a array-ul
original, aplicând metoda Counting Sort. Să se afișeze array-ul după
sortare;
III. Dacă numărul total al elementelor multipli al primului element din r1
este un număr par să se sorteze descrescător ultima coloană a array-
ul original, aplicând metoda Counting Sort. Să se afișeze array-ul
după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
20. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Pentru un oarecare rând r1 al array-ului să se găsească cel mai mare
număr pozitiv ratat (care nu este prezent în rând). Valoarea r1 să fie
citită de la tastieră. Să se afișeze array-ul de input. Informația
privitoare la numărul lipsă să fie afișată de program.
De ex: Valorea r1=2 pentru array-ul de input:
10
1 2 3 7 7 -9
1 9 5 15 -6 10
2 4 5 6 1 8
9 8 4 5 1 -2

Cel mai mare număr pozitiv ratat pentru r1=2 este: 7

II. Dacă cel mai mic număr pozitiv ratat este un număr par să se sorteze
crescător primul rând al array-ului original, aplicând metoda
Counting Sort. Să se afișeze array-ul după sortare;
III. Dacă cel mai mic număr pozitiv ratat este un număr impar să se
sorteze descrescător ultima coloană a array-ul original, aplicând
metoda Heap Sort. Să se afișeze array-ul după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
21. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Pentru un oarecare rând r1 al array-ului să se găsească cel mai mic
număr pozitiv ratat (care nu este prezent în rând). Valoarea r1 să fie
citită de la tastieră. Să se afișeze array-ul de input. Informația
privitoare la numărul lipsă să fie afișată de program.
De ex: Valorea r1=2 pentru array-ul de input:
1 2 3 7 7 -9
1 9 5 15 -6 10
2 4 5 6 1 2
9 8 4 5 1 -2

Cel mai mic număr pozitiv ratat pentru r1=2 este: 3

II. Dacă cel mai mic număr pozitiv ratat este un număr par să se sorteze
crescător ultima coloană a array-ului original, aplicând metoda
Counting Sort. Să se afișeze array-ul după sortare;
III. Dacă cel mai mic număr pozitiv ratat este un număr impar să se
sorteze descrescător prima coloană a array-ului original, aplicând
metoda Heap Sort. Să se afișeze array-ul după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.

11
22. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să se verifice dacă toate elementele array-ului sunt multiplii ultimului
element dintr-un oarecare rând r1 al array-ului dat. Valoarea r1 să fie
citită de la tastieră. Să se afișeze array-ul de input. Informația
privitoare la numărul, indexul și valoarea elementelor care sunt
multiplii ultimului element al rândului r1 să fie afișată de program.
II. Dacă numărul total al elementelor multipli al ultimului element din
r1 este un număr par să se sorteze crescător primul rând al array-ul
original, aplicând metoda Counting Sort. Să se afișeze array-ul după
sortare;
III. Dacă numărul total al elementelor multipli al ultimului element din
r1 este un număr impar să se sorteze descrescător ultimul rând al
array-ul original, aplicând metoda Counting Sort. Să se afișeze array-
ul după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
23. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să găsească în array-ul original toate elementele pare, care apoi să fie
separate într-un subarray 1-D. Să se afișeze subarray-ul de output.
De ex: Pentru array-ul de input:
1 2 3 7 7 -9
1 9 5 15 -6 10
2 4 5 6 1 2
9 8 4 5 1 -2

Array-ul de output este (până la sortare):


2 -6 2 4 6 2 8 4 -2

II. Să se sorteze descrescător prima coloană a array-ul original, aplicând


metoda Counting Sort. Să se afișeze array-ul după sortare;
III. Să se sorteze crescător array-ul 1-D de output (după rezolvarea pt. I),
aplicând metoda Heap Sort. Să se afișeze array-ul după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
24. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
12
I. Pentru o oarecare coloană c1 al array-ului să se găsească cel mai mare
număr pozitiv ratat (care nu este prezent în coloană). Valoarea c1 să
fie citită de la tastieră. Să se afișeze array-ul de input. Informația
privitoare la numărul lipsă să fie afișată de program.
De ex: Valorea c1=4 pentru array-ul de input:
1 2 3 7 7 -9
1 9 5 15 -6 10
2 4 5 6 1 8
9 8 4 5 1 -2

Cel mai mare număr pozitiv ratat pentru c1=2 este: 6

II. Dacă cel mai mic număr pozitiv ratat este un număr par să se sorteze
descrescător primul rând al array-ului original, aplicând metoda
Counting Sort. Să se afișeze array-ul după sortare;
III. Dacă cel mai mic număr pozitiv ratat este un număr impar să se
sorteze crescător ultimul rând al array-ului original, aplicând metoda
Heap Sort. Să se afișeze array-ul după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
25. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Pentru o oarecare coloană c1 al array-ului să se găsească cel mai mic
număr pozitiv ratat (care nu este prezent în coloană). Valoarea c1 să
fie citită de la tastieră. Să se afișeze array-ul de input. Informația
privitoare la numărul lipsă să fie afișată de program.
De ex: Valorea c1=5 pentru array-ul de input:
1 2 3 7 7 -9
1 9 5 15 -6 10
2 4 5 6 1 2
9 8 4 5 1 -2

Cel mai mic număr pozitiv ratat pentru c1=2 este: -8

II. Dacă cel mai mic număr pozitiv ratat este un număr impar să se
sorteze crescător primul rând al array-ului original, aplicând metoda
Counting Sort. Să se afișeze array-ul după sortare;
III. Dacă cel mai mic număr pozitiv ratat este un număr par să se sorteze
descrescător ultimul rând al array-ului original, aplicând metoda
Heap Sort. Să se afișeze array-ul după sortare;

13
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.
26. Este dat un un array 2-D cu elemente de tip integer, citite de la tastieră. A
scrie următoarele funcții C (cu apelare ulterioară ale acestora în main) care:
I. Să calculeze în array-ul original frecvența tuturor elementelor dintr-
un subarray. Subarray-ul va fi determinat de intervalul de indecși citiți
de la tastieră. Informația privitoare la numărul aparițiilor elementelor
să se afișeze statistic (valoarea, numărul de apariții, indexul
elementului / indecșii elementelor). Să se afișeze array-ul de input.
De ex: Pentru array-ul de input:
1 2 3 7 7 -9
1 9 5 15 -6 10
2 4 5 6 1 2
9 8 4 5 1 -2

Statistica privitoare la numărul aparițiilor elementelor:


-9 -6 -2 0 1 2 3 4 5 6 7 8 9 10 15
1 1 1 0 4 3 1 2 2 1 2 1 1 1 1

II. Dacă diversitatea elementelor prezente în array este un număr impar


să se sorteze crescător prima coloană a array-ului original, aplicând
metoda Counting Sort. Să se afișeze array-ul după sortare;
III. Dacă diversitatea elementelor prezente în array este un număr par să
se sorteze descrescător ultima coloană a array-ului original, aplicând
metoda Heap Sort. Să se afișeze array-ul după sortare;
IV. După fiecare manipulare să fie prevăzută afișarea rezultatelor ca și
concluzie (De ex: Dacă sunt astfel de elemente, programul le afișează
(elementul și indexul acesteia, alte date stipulate în condiția
problemei); nu sunt astfel de elemente –programul informează despre
absența lor), etc.

14

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