Sunteți pe pagina 1din 10

S6.

Exerciții și probleme cu vectori


Cuprins

1. Temă de control (TC)


- Rezolvarea problemelor propuse
- Consultarea culegerii de probleme
- Discutarea eventualelor neclarități la TC1

2. Alte exemple (probleme)


1. Temă de control TC1 - 1
1. Să se verifice dacă elementele unui vector formează o progresie
aritmetică.

Explicații:
Fie X=(x1, x2, … , xn).
Elementele vectorului pot forma o progresie aritmetică dacă n≥3 şi x i+1 –
xi = r, cu i=2,n-1, unde r=x(2)-x(1) este rația progresiei.
Vectorul se parcurge până la penultimul element (caz în care vectorul
formează o progresie aritmetică) sau până se întâlnesc două elemente
consecutive care nu respectă condiția (caz în care vectorul nu formează
o progresie aritmetică).

Exersarea structurii while do

A se vedea problema rezolvată anterior -> prima apariție a unei valori


date într-un vector precum și problema 19 (varianta 2), exerciții cu
vectori din culegerea Algoritmi şi scheme logice cu exemplificare în C
1. Temă de control TC1 - 2
2. Să se verifice dacă elementele unui vector formează o progresie
geometrică.

Explicații:
Fie X=(x1, x2, … , xn).
Elementele vectorului sunt în progresie geometrică dacă n≥3 şi fiecare element
al vectorului este obținut prin înmulțirea precedentului cu o rație constantă,
egală cu raportul primelor două elemente:
x
xi  xi 1  q, unde q  2 , cu x1  0
x1
i=3,n.
Vectorul se parcurge până la sfârșit (caz în care vectorul formează o progresie
geometrică) sau până se întâlnește un element care nu respectă condiția (caz
contrar).

Exersarea structurii while do

A se vedea problema 20, exerciții cu vectori din culegerea Algoritmi şi scheme


logice cu exemplificare în C
1. Temă de control TC1 - 3

3. Să se realizeze reuniunea a două mulțimi oarecare.

Explicații:
Într-o mulțime, elementele sunt unice (apar o singură dată).

A  B  x | x  A sau x  B 
Algoritmul propus se realizează în două etape:
• prima etapă presupune copierea unei mulțimi în mulțimea reuniune
• etapa a doua presupune copierea elementelor din a doua mulțime, dar
care nu se regăsesc în prima

Exersarea structurii do for si a structurii while do

A se vedea problema 26, exerciții cu vectori din culegerea Algoritmi şi


scheme logice cu exemplificare în C
2. Probleme propuse - 1

1. Să se realizeze căutarea unei valori date într-un șir de numere ordonate


crescător.

Explicații:
• Pornind de la ipoteza că șirul (memorat într-un vector) este ordonat, căutarea valorii
se realizează pe subșiruri, în funcție de elementul central al subșirului curent.
• Rangul elementelor unui subșir poate lua valori în intervalul [ls , ld ]  [1, n]
• unde ls este limita din stânga şi ld este limita din dreapta.
• Dacă valoarea căutată nu coincide cu elementul central al subșirului, procesul de
căutare continuă pe subșirul din stânga (dreapta) elementului central, după cum
valoarea este mai mică (mai mare) decât acesta, modificându-se corespunzător ld (ls)
pentru noul subșir. l  l 
i s d
• Rangul elementului central al subșirului curent se determină astfel:  2 
• Procesul se oprește când valoarea căutată coincide cu elementul central al subșirului
curent (variabila booleană = 1) sau când l s > ld, caz în care valoarea dată nu se
regăsește în şir (variabila booleană = 0).
2. Probleme propuse - 2

2. Să se compacteze un vector prin eliminarea elementelor nule.

Explicații:
Fără a se utiliza vectori auxiliari, pentru eliminarea elementelor nule se parcurge
vectorul de la primul la ultimul element și se compară elementul curent cu
valoarea zero, caz în care se deplasează valorile de după el cu o poziție spre
stânga (se suprascriu), iar dimensiunea vectorului scade cu o unitate (în cazul
extrem, vectorul obținut poate fi vid).
2. Probleme propuse - 3

3. Să se insereze între fiecare două valori consecutive ale unui vector dat media
aritmetică a acestora.

Explicații:
Se parcurge vectorul inițial (n≥2) de la primul până la penultimul element și la fiecare
pas se deplasează toate valorile spre dreapta elementului curent cu o poziție şi se
inserează media aritmetică.
După fiecare inserare se incrementează indicele cu 2 (pentru a nu insera şi media dintre
medie şi element), iar dimensiunea vectorului crește cu o unitate.
În final, dimensiunea vectorului va fi 2n-1.
2. Alte exemple (probleme)
Recapitulare
1. Fie un vector care conține notele studenților dintr-o serie la o disciplină, ordonat
descrescător după notă. Să se elaboreze algoritmul structurat (schemă logică sau
pseudocod) și programul C care determină primul student din listă care nu a
promovat la disciplina respectivă.

2. Fie un vector care conține notele studenților dintr-o serie la o disciplină. Să se


elaboreze algoritmul structurat (schemă logică sau pseudocod) și programul C
pentru determinarea studenților care au obținut o notă dată la disciplina respectivă.

3. Să se determine numărul de cifre ale unui număr. -> aplicatie pe vectori

4. Să se realizeze intersecția dintre două mulțimi oarecare.

5. Fie doi vectori care conțin cantitățile vândute din n produse într-o zi, respectiv
prețurile unitare ale acestora. Să se elaboreze algoritmul structurat (schemă logică
sau pseudocod) și programul C pentru determinarea valorii maxime a vânzărilor si
crearea unui vector care să conțină produsele care au înregistrat acea valoare
maximă.
6. Fie un vector care conține notele studenților la disciplina BPC. Să se determine
studenții care au note într-un interval dat.

7. Fie un vector care conține valoarea vânzărilor realizată de un magazin într-o perioadă de
n zile. Să determine zilele în care magazinul nu a înregistrat vânzări.

8. Fie un vector care conține valoarea vânzărilor realizată de un magazin într-o perioadă de
n zile. Să se șteargă din vector zilele în care magazinul nu a înregistrat vânzări.

9. Să se determine elementele palindrom dintr-un vector.

10. Să se determine numerele perfecte dintr-un șir de numere.

11. Să se calculeze suma divizorilor unui număr -> aplicatie pe vectori

12. Să se determine toate numerele prime dintr-un șir de numere naturale.


– a se vedea problema 32 din culegerea Algoritmi şi scheme logice cu exemplificare în C

13. Să se determine elementele distincte dintr-un vector și frecvențele lor de apariție.

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