X-Git-Url: https://git.llucax.com/z.facultad/75.42/euler.git/blobdiff_plain/b9c399a948a2dc3256e6a5c2059ae1ac748662ae..7233d9e5d478de8db21bb41c35bf1cfc95438939:/carga.c diff --git a/carga.c b/carga.c index 6747088..108a810 100644 --- a/carga.c +++ b/carga.c @@ -39,7 +39,8 @@ int argtod(const char* arg, Real* var, const char* nom) { } } -int cargar_datos(int argc, const char** argv, Real* paso, Real* tf, Real* f0) { +int cargar_datos(int argc, const char** argv, Real* paso, Real* t0, Real* tf, + Real* f0) { switch (argc) { /* Si no tiene parámetros usa los valores por omisión. */ case 1: @@ -69,7 +70,17 @@ int cargar_datos(int argc, const char** argv, Real* paso, Real* tf, Real* f0) { fprintf(stderr, "Error: Demasiados parámetros.\n"); return FALSE; } - /* TODO Verificar que el paso no sea cero y que tf > ti. */ + /* El paso debe ser mayor que cero. */ + if (*paso <= 0.0) { + fprintf(stderr, "Error: El paso (%f) debe ser mayor que cero.", *paso); + return FALSE; + } + /* El tiempo final debe ser mayor que el inicial. */ + if (*t0 >= *tf) { + fprintf(stderr, "Error: El tiempo final (%f) no es mayor que ", *tf); + fprintf(stderr, "el tiempo inicial (%f).", *t0); + return FALSE; + } return TRUE; }