OPZIONE 5 CHE FUNZIONA DIO CANNNNN

This commit is contained in:
La Programmatrice Verde 2025-03-14 21:10:43 +01:00
parent e9d93e3eae
commit e02fcb648e
9 changed files with 25 additions and 47 deletions

View File

@ -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 {

Binary file not shown.

Binary file not shown.

View File

@ -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")]

View File

@ -1 +1 @@
1c44fa622f05b47c7aafc5c43a5a0350ea57aee1982b35c834c80f97f6c4e7c2
7ed80ff514c932191312058572799b94e8b3dc9ef3bf3b038539ef00fb54bd12

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.