diff --git a/Program.cs b/Program.cs index a56d1d2..12cf6fb 100644 --- a/Program.cs +++ b/Program.cs @@ -1,11 +1,12 @@ namespace ripasso4; class Program { - const int dimensione = 25; + const int dimensione = 5; static void Main(string[] args) { Console.Clear(); //dichiarazione e inizializzazione variabili int scelta; + string[] arrayNomi = new string[dimensione], arrayCognomi = new string[dimensione]; //menu do { @@ -29,7 +30,9 @@ class Program { break; case 2: Console.Clear(); - CreaVettoriParalleli(); + CreaVettoriParalleli(arrayCognomi, arrayNomi); + ControllaVettoriParalleli(arrayCognomi, arrayNomi); + CercaAlunni(arrayCognomi, arrayNomi); Pausa(); break; case 3: @@ -45,21 +48,22 @@ class Program { } while (scelta != 0); } - static void StampaArray(int[] p_insieme) { + static void StampaArray(string[] p_insieme) { for (int j = 0; j < p_insieme.Length; j++) { Console.WriteLine("Elemento " + j + ": " + p_insieme[j]); } } - static int[] CreaVettoreOrdinato() { - int[] arrayCasuale = CreaArrayCasuale(), ritorno = new int[dimensione]; + static string[] CreaVettoreOrdinato() { + int[] arrayCasuale = CreaArrayCasuale(); + string[] ritorno = new string[dimensione]; int indiceDecrescenteArray = dimensione - 1, indiceCrescenteArray = 0; for (int i = 0; i < dimensione; i++) { if (arrayCasuale[i] % 2 != 0) { - ritorno[indiceDecrescenteArray] = arrayCasuale[i]; + ritorno[indiceDecrescenteArray] = Convert.ToString(arrayCasuale[i]); indiceDecrescenteArray--; } else { - ritorno[indiceCrescenteArray] = arrayCasuale[i]; + ritorno[indiceCrescenteArray] = Convert.ToString(arrayCasuale[i]); indiceCrescenteArray++; } } @@ -92,42 +96,152 @@ class Program { } return ritorno; } - static void CreaVettoriParalleli() { - string nome, cognome; - string[] arrayNomi = new string [dimensione], arrayCognomi = new string [dimensione]; - char scelta; - - for (int i = 0; i< dimensione; i++){ - do { - Console.Write("Inserire il nome dell'alunno n." + (i + 1) + ": "); - nome = Console.ReadLine(); + static void CreaVettoriParalleli(string[] p_arrayCognomi, string[] p_arrayNomi) { - Console.WriteLine("Nome inserito: " + nome); - do{ - Console.Write("È corretto? [S/N]"); - scelta = Convert.ToChar(Console.ReadLine()); - switch(scelta){ - case 'S': - arrayNomi[i] = nome; + for (int i = 0; i < dimensione; i++) { //Inserimento nomi e cognomi + Console.Clear(); + + //Inserimento cognomi + Console.Write("Inserire il cognome dell'alunno n." + (i + 1) + ": "); + p_arrayCognomi[i] = Console.ReadLine(); + + Console.Clear(); + + //Inserimento nomi + Console.Write("Inserire il nome dell'alunno n." + (i + 1) + ": "); + p_arrayNomi[i] = Console.ReadLine(); + } + } + static void ControllaVettoriParalleli(string[] p_arrayCognomi, string[] p_arrayNomi){ + string correzione; + uint elemento; + char scelta; + + do { + Console.Clear(); + Console.WriteLine("Cognomi: "); + StampaArray(p_arrayCognomi); + Console.WriteLine(); + Console.WriteLine("Nomi: "); + StampaArray(p_arrayNomi); + + Console.Write("È corretto? [S/N] "); + scelta = Convert.ToChar(Console.ReadLine()); + + switch (scelta) { + case 'S': + break; + + case 'N': + Console.Clear(); + + do { + Console.Write("Modificare la lista dei nomi o dei cognomi? "); + correzione = Console.ReadLine(); + + if (correzione != "nomi" && correzione != "cognomi") { + Console.WriteLine("Opzione non valida. Inserire [nomi] o [cognomi]."); + Pausa(); + } + } + while (correzione != "nomi" && correzione != "cognomi"); + + Console.Clear(); + + + + do { + switch (correzione) { + case "nomi": + StampaArray(p_arrayNomi); + break; + case "cognomi": + StampaArray(p_arrayCognomi); + break; + } + Console.WriteLine(); + + Console.Write("Digitare il numero dell'elemento sbagliato: "); + elemento = Convert.ToUInt32(Console.ReadLine()); + + if (elemento < 0 || elemento > dimensione - 1) { + Console.WriteLine("Numero di elemento non valido, inserire un numero compreso tra 0 e " + (dimensione - 1)); + Pausa(); + } + } + while (elemento < 0 || elemento > dimensione - 1); + + Console.Clear(); + + switch (correzione) { + case "nomi": + Console.WriteLine("Elemento precedente: " + p_arrayNomi[elemento]); break; - case 'N': - break; - default: - Console.WriteLine("Opzione non valida, inserire [S] o [N]"); + case "cognomi": + Console.WriteLine("Elemento precedente: " + p_arrayCognomi[elemento]); break; } - } - while (scelta != 'S' && scelta != 'N'); - - + Console.WriteLine(); + Console.Write("Inserire il nuovo elemento: "); + switch (correzione) { + case "nomi": + p_arrayNomi[elemento] = Console.ReadLine(); + break; + case "cognomi": + p_arrayCognomi[elemento] = Console.ReadLine(); + break; + } + + break; + default: + Console.WriteLine("Opzione non valida, inserire [S] o [N]"); + Pausa(); + break; } - while (true); - Console.Write("Inserire il cognome dell'alunno n." + (i +1) + ": "); - cognome = Console.ReadLine(); - Console.WriteLine("Cognome inserito: " + cognome); - arrayCognomi[i]= cognome; - + } + while (scelta != 'S'); + } + static void CercaAlunni(string[] p_arrayCognomi, string[] p_arrayNomi) { + Console.Clear(); + + //dichiarazione e inizializzazione variabili + string daCercare; + int i = 0, indiceOccorrenze = 0; + bool daCercareEsiste = false; + + const int valoreNonValido = -1; + int[] luogoOccorrenze = new int[dimensione]; + for (int j=0; j