Página 2 de 2 PrimerPrimer 12
Resultados 21 al 22 de 22

gráficos de polinomios

  1. #21  
    Medio
    Fecha de ingreso
    Jan 2006
    Mensajes
    98
    Descargas
    0
    Uploads
    0
    Podrias enviar la función que utilizas para el calculo, para ver si existe algo raro porahi porque en el resto de codigo por lo pronto no veo fallos. Saludos
    Citar  
     

  2. #22  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    ok, pongo lo q hice hasta ahora:

    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <graphics.h>
    #include <math.h>

    typedef
    struct lista
    {
    int datox;
    int datoy;
    struct lista* prox;
    } nodo;
    typedef
    nodo* punt;

    punt carga()
    {
    FILE* arch;char letra;punt prim1;char string[2]; punt q; punt t; int i;char caract[10000];
    arch = fopen("c:\\datos.txt","rt");
    prim1 = NULL;
    for (i = 1; i<=3;i++)
    letra = fgetc(arch);
    while (letra != EOF)
    {
    q = (nodo*)malloc(sizeof(nodo));
    strcpy(caract,"");
    while (letra != ';')
    {
    string[0] = letra;
    string[1] ='\0';
    strcat(caract,string);
    letra = fgetc(arch);
    }
    q->datox = atoi(caract);
    strcpy(caract,"");
    letra = fgetc(arch);
    while (letra != '}')
    {
    string[0] = letra;
    string[1] = '\0';
    strcat(caract,string);
    letra = fgetc(arch);
    }
    q->datoy = atoi(caract);
    while ((letra != '{') && (letra != EOF))
    letra = fgetc(arch);
    if (letra == '{')
    letra = fgetc(arch);
    if (prim1 == NULL)
    prim1 = q;
    else
    t->prox = q;
    q->prox = NULL;
    t = q;

    }
    free(q);
    return prim1;

    }

    float calculo (float k,punt prim)
    {
    float v;float f;int actual;
    punt H;punt T;int h;

    v = 1;f = 0;
    H = prim; T = prim;
    while (H != NULL)
    {
    actual = H->datox;
    while (T != NULL)
    {
    if (actual == (T->datox))
    T = T->prox;
    if (T != NULL)
    {
    v =v * ((k-(T->datox))/(actual - (T->datox)));
    T = T->prox;
    }
    else
    break;
    }
    f=f+(v*(H->datoy));
    H = H->prox;
    T = prim;
    v = 1;
    }

    return f;
    }
    void inicio()
    {
    int gdriver = DETECT,
    gmode, codError; /* Modo gráfico, código de error */

    initgraph(&gdriver, &gmode, "c:\\Tc\\BGI"); /* Intento pasar a modo gráfico */
    codError = graphresult(); /* Miro si hay error */
    if (codError != grOk) /* Si lo hay... */
    {
    printf("Error de gráficos: %s\n", /* Aviso */
    grapherrormsg(codError)); /* Muestro el error */
    printf("Pulse una tecla para salir...");
    getch(); /* Espero */
    exit(1); /* y abandono el programa */
    }

    }

    int gra() /* Cuerpo del programa */
    {
    punt fo;

    int xmax, ymax; /* Variables locales: aquí guardaré
    las coordenadas máximas de la pantalla */
    float x,y; /* x es la primera coordenada de los puntos,
    que recorreré con bucle "for"; y es la
    segunda coordenada, calculada */

    int xPant,yPant; /* Coordenadas que se veran en pantalla, una
    vez escaladas y desplazadas */

    float xIni, xFin, /* Limites de visualizacion */
    escalaX, escalaY, /* Escala en X (calculada) y en Y (fijada) */
    despX, despY, /* Desplaz en X (calculado) y en Y (fijado) */
    xIncr; /* Incremento en X (inversa de la escala) */

    inicio(); /* Paso a modo gráfico */

    xmax = getmaxx(); /* Miro cuales son las coordenadas */
    ymax = getmaxy(); /* máximas de la pantalla */

    xIni = -10; /* Limites a usar en el eje X */
    xFin = 10;

    escalaX = xmax / (xFin-xIni); /* Escala en X (calculada) */
    escalaY = 10; /* Escala en Y (prefijada) */

    despX = xmax/2; /* Desplazamiento en pantalla del (0,0) */
    despY = ymax/2;
    xIncr = 1/escalaX;

    /* Dibujo el eje de abcisas (X) */
    setcolor(YELLOW);
    moveto (0, despY);
    linerel (xmax,0);

    /* Dibujo el eje de ordenadas (Y) */
    setcolor(YELLOW);
    moveto (despX, 0);
    linerel (0,ymax);


    for (x=xIni; x<xFin; x+=xIncr)
    { /* Coordenada x: recorro toda la pantalla */
    fo = carga();
    y = calculo(x,fo); /* Función a dibujar: Y = X^2 - 2x +10 */
    xPant = (int) ( x*escalaX + despX );
    yPant = (int) ( - y*escalaY + despY );
    putpixel(xPant,yPant,WHITE); /* y muestro cada punto */
    }

    getch(); /* Espero a que se pulse una tecla */
    closegraph(); /* Y termino con el modo gráfico */
    return 0;
    }

    void main ()
    {
    float x,chebish;float valor;char tecla;float h;float f;punt w;float to;float t1;
    char n;
    w = carga();

    printf("Ingresar el Extremo Inferior del Intervalo\n");
    scanf("%f",&to);
    printf("Ingresar el Extremo Superior del Intervalo\n");
    scanf("%f",&t1);

    do
    {

    printf("1.C lculo del Polinomio de Largange\n");
    printf("2.C lculo de la Derivada\n");
    printf("3.C lculo de la Integral\n");
    printf("4.Ch‚bishev\n");
    printf("5.Salir\n");
    tecla = getch();
    switch(tecla)
    {
    case '1':
    {

    printf("Ingresar el punto donde se calcular el Polinomio de Interpolaci¢n\n");
    scanf("%f",&x);
    valor = calculo(x,w);
    printf("El valor del Polinomio de Interpolaci¢n en el punto %f es %f \n\a",x,valor);
    getch();
    gra();
    break;
    }
    case '2':
    {
    printf("Ingresar el Incremento\n");
    scanf("%f",&h);
    f = ((4*calculo((to+h),w))-(3*calculo(to,w))-(calculo((to+(2*h)),w)))/(2*h);
    printf("el valor de la derivada en %f es %f\n ",to,f);
    getch();
    break;
    }
    }
    }
    while (tecla != '5');
    }
    Citar  
     

Temas similares

  1. [JAVA] dudas sobre gráficos y extensiones
    Por buff en el foro PROGRAMACION DESKTOP
    Respuestas: 2
    Último mensaje: 21-04-2008, 00:58
  2. Gráficos en VB
    Por welvis30 en el foro PROGRAMACION DESKTOP
    Respuestas: 13
    Último mensaje: 23-04-2007, 08:38
  3. Respuestas: 3
    Último mensaje: 22-04-2007, 22:25
  4. Graficos En C Aki!
    Por Jakofff en el foro GENERAL
    Respuestas: 12
    Último mensaje: 06-04-2006, 13:23

Marcadores

Marcadores