Esercizio Array n.1 – Calcolo del massimo e del minimo valore presente in un vettore di dimensione arbitraria disordinato. Il programma deve provvedere anche al caricamento dei dati.
L’algoritmo risolutivo prevede l’uso delle seguenti variabili:
Uso | Nome | Tipo | Descrizione |
Input | n | intero | numero degli elementi del vettore |
Input | vet | Intero | vettore contenente numeri interi positivi e negativi |
Lavoro | i | Intero | indice del vettore |
Output | vmin vnax | Intero | Valore minimo e Valore massimo individuati all’interno del vettore |
L’algoritmo viene risolto con il software “Algobuild” che permette di testare la nostra soluzione. Nell’algoritmo sono state utilizzate le costanti di sistema INFINITY e -INFINITY per indicare il numero più grande e e più piccolo rappresentabile. Inizialmente tali valori sono i valori assegnati alle variabili vmin e vmax. E’ un metodo di soluzione per ipotizzare che nel valore massimo via sia il valore più piccolo e nel valore minimo il più grande. In questo modo nelle condizioni al prima ripetizione di ciclo finiranno dei valori dell’array. Infatti i valori delle costanti INFINITY (negativo e positivo) non possono essere inserite da tastiera ma sono utilizzabili solo internamente.
Il flow chart è:
Il relativo programma in C++ è:
#include <iostream>
#include <climits>
using namespace std;
int main ()
{
int n;
int vmax=INT_MIN;
int vmin=INT_MAX;
cout << "\n Numero elementi:";
cin >> n;
int vet[n];
for (int i=0;i<n;i++)
{
cout << "\n Inserisci dati:";
cin >> vet[i];
if (vet[i]>vmax)
vmax=vet[i];
if (vet[i]<vmin)
vmin=vet[i];
}
cout << "Il massimo e minimo sono:";
cout << vmax << " , " << vmin<<endl;
return 0;
}