Opzione 5 parte 2, con tanti porci annessi :D (T_T)
This commit is contained in:
parent
020fa829cf
commit
e9d93e3eae
76
Program.cs
76
Program.cs
@ -5,12 +5,14 @@ namespace matrix_4;
|
||||
class Program {
|
||||
static void Main(string[] args) {
|
||||
Console.Clear();
|
||||
int scelta, lineaAutobus, lineaAutobus2, fermataAutobus, fermataAutobus2, conto;
|
||||
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];
|
||||
bool[,] corrispondenzaLineaFermata = configurazione.Item3;
|
||||
bool nullo = true;
|
||||
|
||||
Array.Fill(lineePartenza, int.MaxValue);
|
||||
Array.Fill(lineeDestinazione, int.MaxValue);
|
||||
|
||||
do {
|
||||
Console.WriteLine("Inserire un'opzione:");
|
||||
@ -87,7 +89,7 @@ class Program {
|
||||
nullo = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (nullo) {
|
||||
Console.WriteLine("Nessuna");
|
||||
}
|
||||
@ -106,7 +108,7 @@ class Program {
|
||||
fermataAutobus2 = SelezionaElementoArray(fermateAutobus);
|
||||
Console.Clear();
|
||||
if (fermataAutobus != fermataAutobus2) {
|
||||
Console.WriteLine($"Tra le fermate {fermataAutobus} e {fermataAutobus2} passano le linee");
|
||||
Console.WriteLine($"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]);
|
||||
@ -116,6 +118,48 @@ class Program {
|
||||
|
||||
if (nullo) {
|
||||
Console.WriteLine("Nessuna");
|
||||
Console.WriteLine("Quindi si può:");
|
||||
for (int i = 0; i < corrispondenzaLineaFermata.GetLength(0) && j < lineePartenza.Length; i++) {
|
||||
if (corrispondenzaLineaFermata[i, fermataAutobus]) {
|
||||
lineePartenza[j] = i;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < corrispondenzaLineaFermata.GetLength(0) && j < corrispondenzaLineaFermata.GetLength(1); i++) {
|
||||
if (corrispondenzaLineaFermata[fermataAutobus2, i]) {
|
||||
lineeDestinazione[j] = i;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
j = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
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 {
|
||||
@ -189,7 +233,6 @@ class Program {
|
||||
|
||||
while (r < dimensione1) {
|
||||
while (c < dimensione2) {
|
||||
Console.WriteLine($"Debug: r: {r}\tc: {c}\t dimensione1: {dimensione1}\t dimensione2: {dimensione2}");
|
||||
Console.WriteLine($"La linea {ritorno.Item2[c]} si ferma alla fermata {ritorno.Item1[r]}?");
|
||||
Console.WriteLine("[0] Sì\t[1] No");
|
||||
scelta = Convert.ToInt32(Console.ReadLine());
|
||||
@ -222,6 +265,12 @@ 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]);
|
||||
@ -243,13 +292,20 @@ class Program {
|
||||
|
||||
}
|
||||
|
||||
static void MostraLineeFermata(bool[,] p_matrice, int p_indiceFermata) {
|
||||
bool[] ritorno = new bool[p_matrice.GetLength(1)];
|
||||
for (int i = 0; i < p_matrice.GetLength(1); i++) {
|
||||
if (p_matrice[p_indiceFermata, i]) {
|
||||
ritorno[i] = true;
|
||||
static int[] InsertionSort(int[] p_array) { //implementazione ufficiale copiata da Classroom
|
||||
int i, j;
|
||||
int temp;
|
||||
|
||||
for (i = 1; i < p_array.Length; i++) {
|
||||
temp = p_array[i];
|
||||
j = i - 1;
|
||||
while (j >= 0 && p_array[j] > temp) {
|
||||
p_array[j + 1] = p_array[j];
|
||||
j--;
|
||||
}
|
||||
p_array[j + 1] = temp;
|
||||
}
|
||||
|
||||
return p_array;
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -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+c2792696c81e301c72c709b90a11629ec17f7a51")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+020fa829cf0e4b4eebb7bd2e979136a2388ac622")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("matrix_4")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("matrix_4")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@ -1 +1 @@
|
||||
ed3107c54af0a051d8bb6245e1a705a87813e83c096ae66e5dec0cb1db26b3f8
|
||||
1c44fa622f05b47c7aafc5c43a5a0350ea57aee1982b35c834c80f97f6c4e7c2
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user