}//private static bool LeerArchivo() /*hace una regla de 3 simple para determinar cual es la distancia maxima a la que * puede llegar una nave, y si esa distancia es mayor o igual a la de la espedición (D)*/ private static bool Llegara(Nave nave, int D) { int recorridoPosible = (nave.Combustible * nave.VelocidadMaxima) / nave.ConsumoDeCombustible; if (recorridoPosible >= D) { return(true); } else { return(false); } }//private static bool Llegara(Nave nave, int D)
//para leer el archivo y guardar los datos private static bool LeerArchivo(string nombre, ref Queue <Hangar> CasosPrueba) { string linea; bool correcto = false; try { using (StreamReader sr = new StreamReader(nombre, Encoding.GetEncoding("iso-8859-1"))) { CasosPrueba = new Queue <Hangar>(); int casos = 0; if ((linea = sr.ReadLine()) != null) { casos = Int32.Parse(linea); } if (casos < 1 || casos > 50) { throw new Exception("Numero de casos de prueba no validos."); } int cont = 0; int N, D; string[] datos; while (cont < casos && (linea = sr.ReadLine()) != null) { datos = linea.Split(); N = Int32.Parse(datos[0]); D = Int32.Parse(datos[1]); if ((N < 1 || N > 100) && (D < 1 || D > 1000000)) { throw new Exception("N y/o D no son validos."); } int contN = 0; int Vi, Fi, Ci; List <Nave> naves = new List <Nave>(); while (contN < N && (linea = sr.ReadLine()) != null) { datos = linea.Split(); Vi = Int32.Parse(datos[0]); Fi = Int32.Parse(datos[1]); Ci = Int32.Parse(datos[2]); if (Vi < 1 || Vi > 1000 || Fi < 1 || Fi > 1000 || Ci < 1 || Ci > 1000) { throw new Exception("Vi, Fi, o Ci de caso " + cont + " no son validos."); } Nave nave = new Nave(Vi, Fi, Ci); naves.Add(nave); contN++; }//while para leer los grupos de naves if (contN < N) { Console.WriteLine("Numero de naves en caso " + casos + " es menor al indicado."); N = naves.Count; } Hangar h = new Hangar(N, D, naves); CasosPrueba.Enqueue(h); cont++; }//while para N y D if (cont < casos) { throw new Exception("Numero de casos de prueba mayor al contenido real."); } }//using StreamReader correcto = true; } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("\n\n\n"); return(correcto); }//private static bool LeerArchivo()