Libro Esercitazioni informatica – 1

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:

UsoNome TipoDescrizione
Inputninteronumero degli elementi del vettore
InputvetInterovettore contenente numeri interi positivi e negativi
LavoroiInteroindice del vettore
Outputvmin
vnax
InteroValore 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;
}