📈

Vreau sa gasesc maximul si minimul!

Dupa aceasta lectie, vei sti sa gasesti cea mai mare si cea mai mica valoare dintr-un tablou.

INCEARCA

Gandeste-te la asta!

Provocarea ta:
Ai notele: 7, 9, 5, 10, 8, 6

Care este nota maxima? Dar minima?

Acum gandeste: Daca ai avea 100 de note, cum ai proceda pentru a le gasi?

Ce pasi ai urma?
Click pentru indiciu

O metoda: tii minte prima nota ca "cea mai mare"

Apoi compari cu fiecare nota urmatoare

Daca gasesti una mai mare, o retii pe aceea

INVATA

Gasirea maximului si minimului

Ideea algoritmului
Pentru a gasi maximul:
  1. Presupunem ca primul element este cel mai mare
  2. Parcurgem restul tabloului
  3. Daca gasim un element mai mare, il retinem ca noul maxim
  4. La final, avem maximul real

Pentru minim - la fel, dar cautam cel mai mic!

Demo interactiv: Gaseste Max si Min

7 [0]
9 [1]
5 [2]
10 [3]
8 [4]
6 [5]
Codul pentru MAXIM
int note[6] = {7, 9, 5, 10, 8, 6}; int n = 6; // Presupunem ca primul element este maximul int maxim = note[0]; // Parcurgem de la al doilea element for(int i = 1; i < n; i++) { if(note[i] > maxim) { maxim = note[i]; // Am gasit unul mai mare! } } cout << "Nota maxima: " << maxim; // Output: 10
Codul pentru MINIM
int note[6] = {7, 9, 5, 10, 8, 6}; int n = 6; // Presupunem ca primul element este minimul int minim = note[0]; // Parcurgem de la al doilea element for(int i = 1; i < n; i++) { if(note[i] < minim) { minim = note[i]; // Am gasit unul mai mic! } } cout << "Nota minima: " << minim; // Output: 5
Ambele in acelasi timp
int maxim = note[0]; int minim = note[0]; for(int i = 1; i < n; i++) { if(note[i] > maxim) { maxim = note[i]; } if(note[i] < minim) { minim = note[i]; } } cout << "Max: " << maxim << ", Min: " << minim;
Bonus: Retinem si pozitia
int maxim = note[0]; int pozMax = 0; // pozitia maximului for(int i = 1; i < n; i++) { if(note[i] > maxim) { maxim = note[i]; pozMax = i; // retinem si pozitia } } cout << "Nota maxima " << maxim; cout << " la pozitia " << pozMax;
Exemplu complet
#include <iostream> using namespace std; int main() { int note[100]; int n; cout << "Cate note? "; cin >> n; for(int i = 0; i < n; i++) { cout << "Nota " << i + 1 << ": "; cin >> note[i]; } // Gasire maxim si minim int maxim = note[0], minim = note[0]; int pozMax = 0, pozMin = 0; for(int i = 1; i < n; i++) { if(note[i] > maxim) { maxim = note[i]; pozMax = i; } if(note[i] < minim) { minim = note[i]; pozMin = i; } } cout << "Nota maxima: " << maxim << " (pozitia " << pozMax << ")" << endl; cout << "Nota minima: " << minim << " (pozitia " << pozMin << ")" << endl; return 0; }
VERIFICA

Hai sa vedem ce ai retinut!

1. Cu ce valoare initializam variabila "maxim"?
0
Primul element din tablou (note[0])
Ultimul element din tablou
2. In tabloul {3, 8, 2, 9, 1}, care este valoarea minima?
2
1
3
3. Ce conditie folosim pentru a gasi MINIMUL?
if(note[i] > minim)
if(note[i] < minim)
if(note[i] == minim)
4. De la ce index incepem parcurgerea cand cautam maxim/minim?
0 (primul element)
1 (al doilea element, pentru ca primul e deja in maxim)
n-1 (ultimul element)
🎉

Felicitari!

Ai terminat Lectia 4: Maxim si Minim

+50 XP

Acum stii sa gasesti valorile extreme dintr-un tablou!