+void inicializar_linea(char* linea, char caracter, size_t cant) {
+ size_t j;
+ for (j = 0; j < cant; j++) {
+ linea[j] = caracter;
+ }
+ linea[cant] = '\0';
+}
+
+void resultados_graficar(Resultados* res, size_t pasos, char punto, char blanco) {
+ /* Máximo valor de la función. */
+ Real min;
+ /* Mínimo valor de la función. */
+ Real max;
+ /* Paso utilizado para la representación de las líneasMínimo valor de la función. */
+ Real pasoh;
+ int i;
+ int j;
+ char linea[ANCHO];
+ min = resultados_min(res, pasos);
+ max = resultados_max(res, pasos);
+ pasoh = (max - min) / (ALTO);
+ printf("min: %f, max: %f, pasoh: %f\n", min, max, pasoh);
+ /* Inicializa la línea. */
+ inicializar_linea(linea, blanco, MAX_PASOS);
+ /* Por cada línea a dibujar. */
+ for (i = ALTO; i >= 0; i--) {
+ /* Se fija si hay algún punto que entre en el rango. */
+ for (j = 0; j < pasos; j++) {
+ /* Si está entre en el rango a imprimir, se agrega un punto. */
+ if (((min + pasoh * i) <= (*res)[j])
+ && ((*res)[j] < (min + pasoh * (i + 1)))) {
+ linea[j] = punto;
+ /* Si no, se lo deja en blanco. */
+ } else {
+ linea[j] = blanco;
+ }
+ }
+ printf("%8.2f _%s\n", min + pasoh * i, linea);
+ }
+}
+