diff --git a/Program.cs b/Program.cs index bfdcdd6..b1139dc 100644 --- a/Program.cs +++ b/Program.cs @@ -8,11 +8,9 @@ class Program { int scelta, lineaAutobus, lineaAutobus2, fermataAutobus, fermataAutobus2, conto, j = 0; (string[], string[], bool[,]) configurazione = Configurazione(); string[] fermateAutobus = configurazione.Item1, lineeAutobus = configurazione.Item2; - int[] lineePartenza = new int[fermateAutobus.Length], lineeDestinazione = new int[fermateAutobus.Length], coincidenze = new int[fermateAutobus.Length]; + int[] lineePartenza = new int[fermateAutobus.Length], lineeDestinazione = new int[fermateAutobus.Length]; bool[,] corrispondenzaLineaFermata = configurazione.Item3; bool nullo = true; - Array.Fill(lineePartenza, int.MaxValue); - Array.Fill(lineeDestinazione, int.MaxValue); do { Console.WriteLine("Inserire un'opzione:"); @@ -20,7 +18,7 @@ class Program { Console.WriteLine("2. Quali linee passano per la fermata?"); Console.WriteLine("3. Quali e quante sono le fermate per la linea?"); Console.WriteLine("4. Due linee hanno fermate in comune?"); - Console.WriteLine("5. oh hell nah"); + Console.WriteLine("5. Percorsi tra due fermate"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); scelta = Convert.ToInt32(Console.ReadLine()); @@ -82,7 +80,7 @@ class Program { lineaAutobus2 = SelezionaElementoArray(lineeAutobus); Console.Clear(); if (lineaAutobus != lineaAutobus2) { - + Console.WriteLine($"Tra le linee {lineeAutobus[lineaAutobus]} e {lineeAutobus[lineaAutobus2]} fermate in comune sono:"); for (int i = 0; i < corrispondenzaLineaFermata.GetLength(0); i++) { if (corrispondenzaLineaFermata[i, lineaAutobus] == corrispondenzaLineaFermata[i, lineaAutobus2]) { Console.WriteLine(fermateAutobus[i]); @@ -90,10 +88,10 @@ class Program { } } - if (nullo) { + if (nullo) {//serve per scrivere se non c'è nessuna fermata in comune Console.WriteLine("Nessuna"); } - Console.WriteLine($"Sono le fermate in comune tra le linee {lineeAutobus[lineaAutobus]} e {lineeAutobus[lineaAutobus2]}"); + } else { Console.WriteLine("Selezionare due linee differenti."); @@ -108,23 +106,30 @@ class Program { fermataAutobus2 = SelezionaElementoArray(fermateAutobus); Console.Clear(); if (fermataAutobus != fermataAutobus2) { - Console.WriteLine($"Tra le fermate {fermateAutobus[fermataAutobus]} e {fermateAutobus[fermataAutobus2]} passano le linee"); + Console.Write($"Tra le fermate {fermateAutobus[fermataAutobus]} e {fermateAutobus[fermataAutobus2]} passano le linee: "); for (int i = 0; i < corrispondenzaLineaFermata.GetLength(1); i++) { if (corrispondenzaLineaFermata[fermataAutobus, i] && corrispondenzaLineaFermata[fermataAutobus2, i]) { - Console.WriteLine(lineeAutobus[i]); + Console.Write($"{lineeAutobus[i]} "); nullo = false; } } - if (nullo) { + if (nullo) {//serve per scrivere se non c'è nessuna fermata in comune Console.WriteLine("Nessuna"); Console.WriteLine("Quindi si può:"); + + + Array.Fill(lineePartenza, int.MaxValue); + Array.Fill(lineeDestinazione, int.MaxValue); + + //trovo tutte le linee che passano per la fermata di partenza for (int i = 0; i < corrispondenzaLineaFermata.GetLength(0) && j < lineePartenza.Length; i++) { if (corrispondenzaLineaFermata[i, fermataAutobus]) { lineePartenza[j] = i; j++; } } + //trovo tutte le linee che passano per la fermata di destinazione for (int i = 0; i < corrispondenzaLineaFermata.GetLength(0) && j < corrispondenzaLineaFermata.GetLength(1); i++) { if (corrispondenzaLineaFermata[fermataAutobus2, i]) { lineeDestinazione[j] = i; @@ -132,18 +137,21 @@ class Program { } } + //riordino il tutto per semplificare i cicli lineePartenza = InsertionSort(lineePartenza); lineeDestinazione = InsertionSort(lineeDestinazione); + + j = 0; - MostraMatrice(corrispondenzaLineaFermata); for (int k = 0; k < corrispondenzaLineaFermata.GetLength(1); k++) { for (int i = 0; i < corrispondenzaLineaFermata.GetLength(0); i++) { if (!(lineePartenza[i] == int.MaxValue || lineeDestinazione[k] == int.MaxValue)) { while (j < corrispondenzaLineaFermata.GetLength(0)) { - Console.WriteLine($"Debug: corrispondenzaLineaFermata[{j}, {lineePartenza[i]}]: {corrispondenzaLineaFermata[j, lineePartenza[i]]}"); - Console.WriteLine($"Debug: corrispondenzaLineaFermata[{j}, {lineeDestinazione[k]}]: {corrispondenzaLineaFermata[j, lineeDestinazione[k]]}"); - if (corrispondenzaLineaFermata[j, lineePartenza[i]] == corrispondenzaLineaFermata[j, lineeDestinazione[k]]) { - coincidenze[k] = i; + //Verifico che la fermata j sia in comune tra la linea di partenza e di destinazione + if (corrispondenzaLineaFermata[j, lineePartenza[i]] == corrispondenzaLineaFermata[j, lineeDestinazione[k]] && corrispondenzaLineaFermata[j, lineeDestinazione[k]]) { + if (lineePartenza[i] != lineeDestinazione[k]) { + Console.WriteLine($"Prendere la linea {lineeAutobus[lineePartenza[i]]}, cambiare alla fermata {fermateAutobus[j]} e proseguire sulla linea {lineeAutobus[lineeDestinazione[k]]}"); + } } j++; } @@ -151,15 +159,6 @@ class Program { } } } - Console.WriteLine("Debug: lineePartenza:"); - StampaArray(lineePartenza); - Console.WriteLine("Debug: lineeDestinazione:"); - StampaArray(lineeDestinazione); - Console.WriteLine("Debug: coincidenze:"); - StampaArray(coincidenze); - for (int i = 0; i < corrispondenzaLineaFermata.GetLength(1); i++) { - Console.WriteLine($"prendere la linea {lineeAutobus[lineePartenza[i]]}, cambiare alla fermata {fermateAutobus[coincidenze[i]]} e proseguire sulla linea {lineeAutobus[lineeDestinazione[i]]}"); - } } } else { @@ -167,7 +166,6 @@ class Program { } Pausa(); break; - } } while (scelta != 0); @@ -175,15 +173,6 @@ class Program { } - static void MostraMatrice(bool[,] p_matrice) { - for (int r = 0; r < p_matrice.GetLength(0); r++) { - for (int c = 0; c < p_matrice.GetLength(1); c++) { - Console.Write(p_matrice[r, c] + " "); - } - Console.WriteLine(); - } - } - static void Pausa() { Console.WriteLine("Premere un tasto per continuare. . ."); Console.ReadKey(); @@ -265,17 +254,6 @@ class Program { } } - static void StampaArray(int[] p_array) { - for (int j = 0; j < p_array.Length; j++) { - Console.WriteLine("Elemento " + j + ": " + p_array[j]); - } - } - - static void StampaArraySoloElementi(string[] p_array) { - for (int j = 0; j < p_array.Length; j++) { - Console.WriteLine(p_array[j]); - } - } static int SelezionaElementoArray(string[] p_array) { int ritorno; do { diff --git a/bin/Debug/net9.0/matrix_4.dll b/bin/Debug/net9.0/matrix_4.dll index d0b0ac5..813a141 100644 Binary files a/bin/Debug/net9.0/matrix_4.dll and b/bin/Debug/net9.0/matrix_4.dll differ diff --git a/bin/Debug/net9.0/matrix_4.pdb b/bin/Debug/net9.0/matrix_4.pdb index 005f03f..c409f1c 100644 Binary files a/bin/Debug/net9.0/matrix_4.pdb and b/bin/Debug/net9.0/matrix_4.pdb differ diff --git a/obj/Debug/net9.0/matrix_4.AssemblyInfo.cs b/obj/Debug/net9.0/matrix_4.AssemblyInfo.cs index c71df77..4a6a097 100644 --- a/obj/Debug/net9.0/matrix_4.AssemblyInfo.cs +++ b/obj/Debug/net9.0/matrix_4.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("matrix_4")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+020fa829cf0e4b4eebb7bd2e979136a2388ac622")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e9d93e3eaeea2cbc9ef9a959e35aefc15c231e14")] [assembly: System.Reflection.AssemblyProductAttribute("matrix_4")] [assembly: System.Reflection.AssemblyTitleAttribute("matrix_4")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net9.0/matrix_4.AssemblyInfoInputs.cache b/obj/Debug/net9.0/matrix_4.AssemblyInfoInputs.cache index 404edf2..37ad4b3 100644 --- a/obj/Debug/net9.0/matrix_4.AssemblyInfoInputs.cache +++ b/obj/Debug/net9.0/matrix_4.AssemblyInfoInputs.cache @@ -1 +1 @@ -1c44fa622f05b47c7aafc5c43a5a0350ea57aee1982b35c834c80f97f6c4e7c2 +7ed80ff514c932191312058572799b94e8b3dc9ef3bf3b038539ef00fb54bd12 diff --git a/obj/Debug/net9.0/matrix_4.dll b/obj/Debug/net9.0/matrix_4.dll index d0b0ac5..813a141 100644 Binary files a/obj/Debug/net9.0/matrix_4.dll and b/obj/Debug/net9.0/matrix_4.dll differ diff --git a/obj/Debug/net9.0/matrix_4.pdb b/obj/Debug/net9.0/matrix_4.pdb index 005f03f..c409f1c 100644 Binary files a/obj/Debug/net9.0/matrix_4.pdb and b/obj/Debug/net9.0/matrix_4.pdb differ diff --git a/obj/Debug/net9.0/ref/matrix_4.dll b/obj/Debug/net9.0/ref/matrix_4.dll index b6231f6..12568c6 100644 Binary files a/obj/Debug/net9.0/ref/matrix_4.dll and b/obj/Debug/net9.0/ref/matrix_4.dll differ diff --git a/obj/Debug/net9.0/refint/matrix_4.dll b/obj/Debug/net9.0/refint/matrix_4.dll index b6231f6..12568c6 100644 Binary files a/obj/Debug/net9.0/refint/matrix_4.dll and b/obj/Debug/net9.0/refint/matrix_4.dll differ