Esercitazione sugli array in C++ e le funzioni

Introduzione

Scrivere un programma che presenti  un menu a video che permetta all’utente di eseguire le operazioni su un array di interi e dimensione richiesta in input.
Le operazioni sono: caricamento  array, ricerca e verifica se un valore inserito da tastiera è presente nell’array, ordinamento per selezione, e stampa dell’array.
Attraverso il menu di scelta l’utente può interrompere  il programma.

Codifica in C++

#include <iostream>
using namespace std;
void carica(int x[],int l);
void stampa(int x[],int l);
bool cerca(int x[],int l, int y);
void ordina(int x[],int l);
int main ()
{
int a[100];
int incognito;
int n;
int scelta;
while (1)
{
cout << "\n Menù Scelta\n";
cout << "\n 1- Caricamento Vettore\n";
cout << "\n 2- Ricerca elemento nell'array\n";
cout << "\n 3- Ordina \n";
cout << "\n 4- Stampa\n";
cout << "\n 5- Fine";
do {
cout << "\nInserisci la tua scelta\n";
cin >> scelta;
if ((scelta<1)||(scelta>5))
cout << "\n Scelta errata ripeti \n";
}
while ((scelta<1)||(scelta>5));
switch (scelta) {
case 1: {
cout << "inserisci la dimensione dell'arry\n";
cin >> n;
carica(a,n);
break;
}
case 2: {
cout << "\n Inserisci l'elemento incognito\n";
cin >> incognito;
if (cerca(a,n,incognito))
cout <<"\n Elemento trovato\n";
else
cout << "\n Elemento non trovato\n";
break;
}
case 3: {
cout << "\n Ordinamento array\n";
ordina(a,n);
cout << "\n---------\n";
stampa(a,n);
break;
}
case 4:{
cout << "\n Stampa elementi dell'array\n";
stampa(a,n);
break;
}
case 5:
{
cout << "\n Fine programma arriderci\n";
return 0;
}
}
}
}
void carica(int x[],int l)
{
int k;
for (k=0;k<l;k++)
{
cout << "\n Inserisci gli elementi\n";
cin >> x[k];
}
}
void stampa(int x[],int l)
{
int k;
for (k=0;k<l;k++)
{
cout << "\n Elementi dell'array'\t";
cout << x[k];
}
cout << endl;
}
bool cerca(int x[],int l, int y)
{
// Ricerca sequenziale
bool trovato=false;
int k;
for (k=0;k<l;k++)
{
if (x[k]==y)
trovato=true;
}
return trovato;
}
void ordina(int x[],int l)
{
// Ordinamento per selezione crescente
int k,j;
int tmp;
for (k=0;k<l-1;k++)
for (j=k+1;j<l;j++)
if (x[k]>x[j])
{
tmp=x[k];
x[k]=x[j];
x[j]=tmp;
}
}