public void resolver(List <double> vectorInicial, List <List <double> > matrizCoeficientes, int cantidadEcuaciones, List <double> terminosIndependientes) { PasoDeResolucion paso = new PasoDeResolucion(); paso.setearValoresDeIncognitas(vectorInicial); List <double> vectorCalculado = resolverSegunEstrategia(matrizCoeficientes, cantidadEcuaciones, terminosIndependientes, vectorInicial); //Cargo al paso de resolucion el resultado del criterio de paro para esa iteracion criteriosDeParo.ForEach(criterio => paso.cargarCriterio(criterio.hayQueSeguir(vectorInicial, vectorCalculado))); pasos.Add(paso); if (pasos.Count >= 200) { Resultados formResultados = new Resultados(pasos); formResultados.ShowDialog(); return; } if (criteriosDeParo.Any(criterio => criterio.hayQueSeguir(vectorInicial, vectorCalculado))) { resolver(vectorCalculado, matrizCoeficientes, cantidadEcuaciones, terminosIndependientes); } else { /*PasoDeResolucion pasoFinal = new PasoDeResolucion(); * pasoFinal.setearValoresDeIncognitas(vectorCalculado); * criteriosDeParo.ForEach(criterio => pasoFinal.cargarCriterioFinal()); * * pasos.Add(pasoFinal); */ Resultados formResultados = new Resultados(pasos); formResultados.ShowDialog(); } }