]> git.llucax.com Git - z.facultad/75.42/euler.git/blobdiff - tp1.h
Prácticamente se finaliza el TP, sólo quedan pulir detalles.
[z.facultad/75.42/euler.git] / tp1.h
diff --git a/tp1.h b/tp1.h
index 8ae9410fedcfa107c713eb5f679a63bbda481211..eb00948a46ee8adab9424b67eb5295dfe7a08046 100644 (file)
--- a/tp1.h
+++ b/tp1.h
@@ -38,6 +38,9 @@
 /** Altura (en líneas) utilizadas para dibujar el gráfico. */
 #define ALTO 20
 
+/** Ancho (en líneas) utilizadas para dibujar el gráfico. */
+#define ANCHO 70
+
 /** Tiempo inicial. */
 #define T0 0.0
 
@@ -66,7 +69,7 @@
  *       pérdida de velocidad que agrega la indirección de un llamado a una
  *       función.
  */
-#define FUNCION(paso, ft) ((ft) + (500.0 - (ft)) / 30.0 * paso)
+#define FUNCION(paso, ft) ((ft) + ((500.0 - (ft)) / 30.0) * paso)
 
 
 
@@ -112,7 +115,7 @@ void imprimir_uso(FILE* fh);
 int argtod(const char* arg, Real* var, const char* nom);
 
 /**
- * Carga los datos necesarios por el programai.
+ * Carga los datos necesarios por el \ref main "programa".
  * Obtiene los datos desde los parámetros de la línea de comandos, validándolos
  * y mostrando un mensaje de error en caso de haberlo.
  *
@@ -123,7 +126,8 @@ int argtod(const char* arg, Real* var, const char* nom);
  * \param f0   Valor inicial de la función.
  *
  * \return TRUE si se cargaron bien, FALSE si no.
- * \todo Verificar que el paso no sea cero y que tf > ti.
+ * \todo \b TODO Verificar que el paso no sea cero y que tf > ti.
+ * \todo \b TODO Agregar opciones para especificar caracter en blanco y de punto.
  */
 int cargar_datos(int argc, const char** argv, Real* paso, Real* tf, Real* f0);
 
@@ -148,7 +152,7 @@ size_t calcular(Resultados* res, Real paso, Real ti, Real tf, Real f0);
  *
  * \return Máximo resultado.
  */
-Real max(const Resultados* res, size_t pasos);
+Real resultados_max(Resultados* res, size_t pasos);
 
 /**
  * Devuelve el valor mínimo de los resultados.
@@ -158,7 +162,30 @@ Real max(const Resultados* res, size_t pasos);
  *
  * \return Mínimo resultado.
  */
-Real min(const Resultados* res, size_t pasos);
+Real resultados_min(Resultados* res, size_t pasos);
+
+/**
+ * Rellena una cadena de caracteres con un caracter arbitrario.
+ *
+ * \param linea    Cadena de caracteres.
+ * \param caracter Caracter utilizado para rellenar.
+ * \param cant     Cantidad de caracteres a rellenar.
+ */
+void inicializar_linea(char* linea, char caracter, size_t cant);
+
+/**
+ * Imprime un gráfico de los resultados por pantalla.
+ * Realiza un gráfico de la función por pantalla, imprimiendo línea por línea.
+ * Cada línea representa un rango de valores. En cada línea se dibuja el
+ * caracter \e punto si la función en el tiempo evaluado está en el rango de esa
+ * línea. Si no lo está se dibuja el caracter \e blanco.
+ *
+ * \param res    Vector de resultados a graficar.
+ * \param pasos  Cantidad de pasos a graficar.
+ * \param punto  Caracter utilizado para dibujar un punto de la función.
+ * \param blanco Caracter utilizado para dibujar un punto en blanco.
+ */
+void resultados_graficar(Resultados* res, size_t pasos, char punto, char blanco);
 
 /**
  * Programa principal.