]> git.llucax.com Git - z.facultad/75.42/euler.git/blob - calculo.c
Se agregan mas cosas al make clean.
[z.facultad/75.42/euler.git] / calculo.c
1 /* vim: set et ts=4 sw=4 fdm=indent fdl=1 fdn=1 fo+=t:
2  *
3  * Taller de Programación (75.42).
4  *
5  * Ejercicio Número 1:
6  * Graficador de la solución de una ecuación diferencial por el método
7  * de Euler (explícito).
8  *
9  * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
10  * Puede copiar, modificar y distribuir este programa bajo los términos de
11  * la licencia GPL (http://www.gnu.org/).
12  *
13  * Creado: sáb ago 23 16:59:01 ART 2003
14  *
15  * $Id$
16  */
17
18 #include "calculo.h"
19
20 size_t resultados_calcular(Resultados* res, Real paso, Real ti, Real tf,
21         Real f0) {
22     /* Índice para iterar. */
23     size_t i;
24     /* Calculo la cantidad de pasos necesarios según el tiempo inicial, el
25      * tiempo final y el "tamaño" del paso. */
26     size_t pasos = (size_t)((tf - ti) / paso);
27     /* Respeto la cantidad máxima de pasos admitida. */
28     if (pasos > ANCHO) {
29         pasos = ANCHO;
30     }
31     /* Agrego el valor inicial de la función (para empezar a iterar). */
32     (*res)[0] = f0;
33     /* Itero paso a paso calculando el valor de la función. */
34     for (i = 1; i < pasos; i++) {
35         /* f(t+paso) = FUNCION(paso, f(t)) */
36         (*res)[i]    = FUNCION(paso, (*res)[i-1]);
37     }
38     return pasos;
39 }
40