namespace strings_5; class Program { static void Main(string[] args) { Menu(); } static void Menu() { Console.Clear(); int scelta; string[] array = null, array2 = null; string stringa1, stringa2; do { Console.WriteLine("Inserire un'opzione:"); Console.WriteLine("1. Crea array"); Console.WriteLine("2. Mostra array"); Console.WriteLine("3. Trova frase più lunga"); Console.WriteLine("4. Codifica"); Console.WriteLine("5. Mostra codifica"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); scelta = Convert.ToInt32(Console.ReadLine()); switch (scelta) { case 0: break; case 1: Console.Clear(); array = CreaArray(); Pausa(); break; case 2: Console.Clear(); if (array != null) { StampaArray(array); } else { Console.WriteLine("Errore: è necessario creare l'array prima di mostrarlo."); } Pausa(); break; case 3: Console.Clear(); if (array != null) { Console.WriteLine($"La frase più lunga è {MaxLength(array)}"); } else { Console.WriteLine("Errore: è necessario creare l'array prima di mostrare la frase più lunga."); } Pausa(); break; case 4: Console.Clear(); if (array != null) { array2 = CodificaArray(array); Console.WriteLine("Array codificato con successo"); } else { Console.WriteLine("Errore: è necessario creare l'array prima di codificarlo."); } Pausa(); break; case 5: Console.Clear(); if (array2 != null) { StampaArray(array2); } else { Console.WriteLine("Errore: è necessario codificare l'array prima di mostrarlo."); } Pausa(); break; default: Console.WriteLine("Opzione non valida."); Pausa(); break; } } while (scelta != 0); } static void Pausa() { Console.WriteLine("Premere un tasto per continuare. . ."); Console.ReadKey(); Console.Clear(); } static string Input() { Console.Write("Inserire una frase: "); return Console.ReadLine(); } static string[] CreaArray() { int dimensione; Console.Write("Quante frasi inserire?"); dimensione = Convert.ToInt32(Console.ReadLine()); string[] ritorno = new string[dimensione]; for (int i = 0; i < dimensione; i++) { ritorno[i] = Input(); } return ritorno; } static void StampaArray(string[] p_array) { for (int i = 0; i < p_array.Length; i++) { Console.WriteLine($"Elemento n.{i + 1}: {p_array[i]}"); } } static string MaxLength(string[] p_array) { int max = 0, maxIndex = 0; for (int i = 0; i < p_array.Length; i++) { if (p_array[i].Length > max) { max = p_array[i].Length; maxIndex = i; } } return p_array[maxIndex]; } static string[] CodificaArray(string[] p_array) { for (int i = 0; i < p_array.Length; i++) { p_array[i] = Codifica(p_array[i]); } return p_array; } static string Codifica(string p_stringa) { int codice; char[] ritorno = new char[p_stringa.Length]; for (int i = 0; i < p_stringa.Length; i++) { if (char.IsAsciiLetter(p_stringa[i])) { codice = Convert.ToInt32(p_stringa[i]) + p_stringa.Length; if (codice > 90 && codice < 97) { codice = 65 + p_stringa.Length; } else if (codice > 122) { codice = 97 + p_stringa.Length; } ritorno[i] = Convert.ToChar(codice); } else { ritorno[i] = p_stringa[i]; } } return string.Join("", ritorno); } }