Il problema di trovare il massimo di un vettore è il seguente:
“Dato un vettore di n elementi interi, trovare l’elemento massimo in esso contenuto”.
Per risolvere questo problema partiamo da un esempio. Supponiamo di avere questo vettore:
Chiaramente la soluzione di questo problema è max=3 perchè il valore più grande contenuto nel vettore è 3.
Per risolvere il problema possiamo pensare di creare una variabile chiamata max che contiene il massimo attualmente trovato nel vettore. L’obiettivo sarà di visitare ogni casella e se il valore contenuto in essa è maggiore del massimo allora il nuovo massimo dovrà essere il valore della casella stessa. Vediamo come potrebbe funzionare l’algoritmo:
Algoritmo
Il diagramma è stato implementato utilizzando il software Flowgorithm
Implementazione
#include <iostream>
#include <sstream>
#include <string>
#include <cstdlib>
#include <cmath>
using namespace std;
// Headers
string toString (double);
int toInt (string);
double toDouble (string);
int massimo(int[] vet, int lunghezza);
int main() {
int vet[3];
int max;
max = 0;
vet[0] = 5;
vet[1] = 3;
vet[2] = -2;
max = massimo(vet, 3);
cout << "Il massimo è";
cout << max << endl;
return 0;
}
int massimo(int[] vet, int lunghezza) {
int max, i;
// All'inizio il max è uguale al primo elemento del vettore
max = vet[0];
for (i = 0; i <= lunghezza - 1; i++) {
// Se il valore della casella è maggiore del massimo
if (vet[i] > max) {
// Il massimo diventa il valore della casella
max = vet[i];
}
}
return max;
}
Prova a implementare il codice su ideone.com!
Torna a vettori