namespace insertion_sort; class Program { const int dimensione = 10; static void Main(string[] args) { Console.Clear(); //dichiarazione e inizializzazione variabili int scelta; int[] array = null; bool opzione1 = false, opzione3 = false; //menu do { Console.WriteLine("Scegliere un'opzione:"); Console.WriteLine("1. Crea array casuale"); Console.WriteLine("2. Mostra array casuale"); Console.WriteLine("3. Riordina array casuale"); Console.WriteLine("4. Mostra array ordinato"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); scelta = Convert.ToInt32(Console.ReadLine()); switch (scelta) { case 0: Console.Clear(); break; case 1: Console.Clear(); array = CreaArrayCasuale(); opzione1 = true; Pausa(); break; case 2: Console.Clear(); if (opzione1) { StampaArray(array); } else { Console.WriteLine("Bisogna creare l'array casuale prima di mostrarlo"); } Pausa(); break; case 3: Console.Clear(); if (opzione1) { OrdinaArray(array); } else { Console.WriteLine("Bisogna creare l'array casuale prima di ordinarlo"); } opzione3 = true; Pausa(); break; case 4: Console.Clear(); if (opzione3) { StampaArray(array); } else { Console.WriteLine("Bisogna creare l'array casuale prima di mostrarlo"); } Pausa(); break; default: Console.WriteLine("Errore: scelta non valida"); Pausa(); break; } } while (scelta != 0); } static void Pausa() { Console.WriteLine("Premere un tasto per continuare. . ."); Console.ReadKey(); Console.Clear(); } static void StampaArray(int[] p_insieme) { for (int j = 0; j < p_insieme.Length; j++) { Console.WriteLine("Elemento " + j + ": " + p_insieme[j]); } } static int[] CreaArrayCasuale() { //dichiarazione e inizializzazione variabili const int maxLength = 10; Random caso = new Random(); int[] ritorno = new int[dimensione]; for (int i = 0; i < dimensione; i++) { ritorno[i] = caso.Next(maxLength);//per ogni posizione di ritorno assegno un valore a caso (metodo Random.Next) } return ritorno; } static void OrdinaArray(int[] p_array) { int k, temp; StampaArray(p_array); Console.WriteLine(); Console.WriteLine() for (int i = 0; i < dimensione; i++) { k = dimensione - i; do { if (!(k == dimensione || k < 0 || k - 1 < 0)) { if (p_array[k] < p_array[k - 1]) { temp = p_array[k]; p_array[k] = p_array[k - 1]; p_array[k - 1] = temp; Console.WriteLine("Scambio. . ."); StampaArray(p_array); Console.WriteLine(); Console.WriteLine(); } } k--; } while (k > 0); } } }