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