S24 – Sortarea (ordonarea) șirurilor
Fișă de lucru – Clasa a VIII-a – Informatică și TIC
Unitatea de învățare: Algoritmi și programare
Lecția: Sortarea (ordonarea) șirurilor
Durata: 1 oră
Obiectivele lecției:
- Înțelegerea conceptului de sortare a elementelor dintr-un șir.
- Familiarizarea cu algoritmi de sortare precum Bubble Sort și utilizarea funcțiilor din biblioteci pentru sortare.
- Implementarea și exersarea sortării crescătoare și descrescătoare.
Activități propuse:
1. Recapitulare teoretică (10 minute)
- Ce este sortarea șirurilor?
- Sortarea presupune aranjarea elementelor unui șir într-o anumită ordine: crescătoare sau descrescătoare.
- Algoritmi de sortare:
- Bubble Sort (Sortarea prin interschimbare): Compara și interschimbă elementele adiacente până când șirul devine ordonat.
- Cod Bubble Sort în C++:
for (int i = 0; i < n – 1; i++) {
for (int j = 0; j < n – i – 1; j++) {
if (vector[j] > vector[j + 1]) { // Comparație pentru ordine crescătoare
int temp = vector[j];
vector[j] = vector[j + 1];
vector[j + 1] = temp;
}
}
}
Funcții din biblioteci:
- În C++, sortarea se poate face rapid folosind funcția std::sort din biblioteca <algorithm>:
#include <algorithm>
std::sort(vector, vector + n);
2. Exerciții practice (40 minute)
- Exercițiul 1 – Sortare crescătoare (Bubble Sort)
Scrieți un program care:- Citește un șir de n numere.
- Sortează șirul în ordine crescătoare folosind algoritmul Bubble Sort.
- Exercițiul 2 – Sortare descrescătoare
Scrieți un program care:- Sortează un șir în ordine descrescătoare.
- Puteți modifica algoritmul Bubble Sort pentru această sarcină.
- Exercițiul 3 – Utilizarea funcției std::sort
Scrieți un program care:- Utilizează funcția std::sort pentru a ordona un șir în ordine crescătoare.
- Exercițiul 4 – Găsirea celui mai mare și celui mai mic element (fără sortare)(opțional)
Scrieți un program care:- Găsește cel mai mic și cel mai mare element dintr-un șir fără a aplica sortare.
3. Întrebări de reflecție (10 minute)
- Care sunt avantajele utilizării funcției std::sort comparativ cu implementarea manuală a algoritmului Bubble Sort?
- În ce situații este utilă sortarea descrescătoare?
Criterii de evaluare:
- Corectitudinea implementării algoritmilor de sortare: 50%
- Optimizarea și claritatea codului: 30%
- Respectarea cerințelor fiecărui exercițiu: 20%
Resurse necesare:
- Calculator/laptop cu un mediu de programare instalat (ex.: Code::Blocks, Dev-C++, Visual Studio).