Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 20 de 22

Tema: gráficos de polinomios

  1. #1 gráficos de polinomios 
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    hola, en mi curso de la facultad me pidieron que haga un programa que resuelva polinomios de interpolación por diferentes métodos, lagrange por ejemplo, y que los grafique, mi duda es: qué tengo que utilizar, en c o en vb, para poder graficar el polinomio? no quiero saber cómo se hace, sino qué tengo que investigar para poder graficar un polinomio, si tengo que usar alguna librería o api de windows o no se, algo de eso, muchas gracias!
    Citar  
     

  2. #2  
    Medio
    Fecha de ingreso
    Jan 2006
    Mensajes
    98
    Descargas
    0
    Uploads
    0
    Si lo haces en C y ademas lo haces bajo linux, las graficas las puedes hacer con gnu plot.
    Citar  
     

  3. #3  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    mmmm no, en windows tiene que correr
    Citar  
     

  4. #4  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicación
    Galiza
    Mensajes
    3.918
    Descargas
    8
    Uploads
    1
    En visual Basic es relativamente sencillo. Puedes dibujar directamente encima de un formulario, pero mejor que lo hagas sobre un control PictureBox.
    Para ello se usan ciertos métodos gráficos, como:
    Print
    PSet
    Line
    Circle
    ...

    En C de consola tambien es relativamente fácil, solo es cuestión de pasarse a modo grafico y utilizar funciones equivalentes a las que hay en VB. Pero si te soy sincero, mejor que lo hagas en VB.

    PD: esto es referido al Visual Basic 6, en cuanto al VB.NET no tengo ni idea si aun funcionan.
    He conocido muchos dioses. Quien niegue su existencia está tan ciego como el que confía en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
    Citar  
     

  5. #5  
    Medio
    Fecha de ingreso
    Aug 2006
    Mensajes
    66
    Descargas
    0
    Uploads
    0
    Si, es mejor que uses VB. Si tienes muchas dudas te puedo pasar algun ejemplo de la utilización de métodos gráficos.
    Citar  
     

  6. #6  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    ok, voy a intentar en VB
    Citar  
     

  7. #7  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicación
    Galiza
    Mensajes
    3.918
    Descargas
    8
    Uploads
    1
    Suerte, cualquier duda, ya sabes donde estamos.
    He conocido muchos dioses. Quien niegue su existencia está tan ciego como el que confía en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
    Citar  
     

  8. #8  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    nuevamente, al final tengo que hacerlo en C nomás, para el tema de los gráficos se que tengo que usar la librería graphics.h, ahora bien, estuve buscando en google pero no encontré mucho y ya estoy medio frustrado, alguien sabe alguna página donde pueda encontrar (explicadas), las funciones de esa librería? para ver si encuentro la que me ayude a graficar un maldito polinomio, gracias
    Citar  
     

  9. #9  
    Avanzado
    Fecha de ingreso
    Jun 2006
    Ubicación
    Valhala
    Mensajes
    1.167
    Descargas
    4
    Uploads
    0
    http://www.project-longinus.es
    Citar  
     

  10. #10  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    otro problema (Estoy alternando entre el gráfico y esto, es lo que me falta): para graficar el polinomio de interpolacion, los puntos me los pasan en un arch .txt de la forma {X1,Y1},{X2,Y2},......,{Xn,Yn}, yo creo que lo que necesito es tratar el arch como una secuencia de caracteres, es decir, por ejemplo, que me vaya avanzando caracteres mientras encuentre "{" o "}" o ",", si no avanza más, es porque estoy parado en un número, y de ahí, almacenarlo en una lista por ejemplo, vi la función fgetc(), que me lee un caracter, pero necesito, como dije, ir tomando determinados caracteres, existe alguna función que pueda hacer esto?
    Citar  
     

  11. #11  
    Moderador HH
    Fecha de ingreso
    Feb 2002
    Ubicación
    México
    Mensajes
    1.155
    Descargas
    4
    Uploads
    0
    Tengo un sencillo programa hecho en Visual c++ que precisamente grafica cualquier polinomio que escribas y en el rango que le des, aunque ese proyecto lo hice para la materia de compiladores por lo que encontrarás mucho código de análisis gramático y análisis lexicográfico que talvez no necesites.
    La forma en la que dibuja la funcion es pasándola de infija a posfija (usando pilas) para irle dando valores a x e irlos graficando, talvez pueda servirte de guía para lo que quieres.
    Mientras el mundo permanezca no acabarán la fama y la gloria de México-Tenochtitlan
    Citar  
     

  12. #12  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    mmmm no se si es taanto, sería graficar nomás un polinomio, necesitaria nombres de funciones nomás, me gustaría llegar a hacerlo solo, y otra cosa es lo de las cadenas de caracteres, como dije en el post anterior, como puedo contar caracteres de una cadena?
    Citar  
     

  13. #13  
    Moderador HH
    Fecha de ingreso
    Feb 2002
    Ubicación
    México
    Mensajes
    1.155
    Descargas
    4
    Uploads
    0
    para saber si un caracter es número o letra debes poner la siguiente condición
    if(caracter >= '0' && caracter <='9')
    de esta forma la función if regresará verdadero cuando el caracter sea un número y regresará falso cuando no sea número, este if lo puedes meter en un ciclo que vaya checando caracter por caracter, después con la función "atoi" (alfa to integer) conviertes esa cadena a un número entero para que puedas manipularlo.
    Cualquier duda estamos para ayudarte, saludos
    Mientras el mundo permanezca no acabarán la fama y la gloria de México-Tenochtitlan
    Citar  
     

  14. #14  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    ahhh, ahí está, cada vez estoy mas cerca. Estuve probando, pero el atoi se usa char* letra; int x:
    x = atoi (letra);
    pero el problema es que yo tengo definido sin puntero, es decir char letra, y me da un warning y no me funciona el programa, no se puede usar el atoi de esta forma?
    Citar  
     

  15. #15  
    Avanzado
    Fecha de ingreso
    Jun 2006
    Ubicación
    Valhala
    Mensajes
    1.167
    Descargas
    4
    Uploads
    0
    después con la función "atoi" (alfa to integer) conviertes esa cadena a un número entero para que puedas manipularlo.
    Yo no se mucho de C, pero char*letra normalmente se suele referir mas a un array de caracteres, vamos una cadena. Mete todos los numeros primero en una array de caracteres y luego se lo pasas como parametroa "atoi()".
    http://www.project-longinus.es
    Citar  
     

  16. #16  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    lo que pasa es que para eso tengo que definir un array, y yo no se cuantos números voy a tener en el fichero, y no voy a sobredimensionar el array, entonces, mi idea era en una variable caracter ir guardando caracter por caracter del fichero, si era número, lo convierto a entero con atoi(); pero ahí me da error, y también cuando uso strcat(), eso solo para concatenar strings? yo quiero concatenar un string con un caracter, no se puede?
    Citar  
     

  17. #17  
    Medio
    Fecha de ingreso
    Jan 2006
    Mensajes
    98
    Descargas
    0
    Uploads
    0
    Pues según lo que estaba mirando, la forma mas facil para que funcione atoi() es a traves de los arrays y como no quieres gastar memoria innecesaria en c lo puedes hacer reservando memoria para un caracter con malloc/calloc y luego con cada lectura hacer un realloc para expandir el array. Es menos eficiente evidentemente pero bueno, creo que funcionaria. De todas formas esto seria mucho mas facil implementarlo en c++ por el manejo de la memoria dinámica. Otra forma es realizandolo de tu forma; lees cada caracter pero declarando puntero a caracter y realizando conversion, no tiene porque ser un array(aunque si parece mas facil como dije):

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    char *numPtr = "1";

    printf( "Convirtiendo la cadena \"%s\" en un numero: %d\n", numPtr, atoi(numPtr) );
    system("PAUSE");
    return 0;
    }


    Saludos.
    Citar  
     

  18. #18  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    después de muchos intentos fallidos me salió esta dichosa función, les agradezco por haberme ayudado,
    Citar  
     

  19. #19  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    ahora con mi último tema, estoy con el gráfico del polinomio, con este código:

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

    void inicio(void)
    {
    int gdriver = DETECT, /* Que detecte qué pantalla tengo */
    gmode, codError; /* Modo gráfico, código de error */

    initgraph(&gdriver, &gmode, ""); /* 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 main(void) /* Cuerpo del programa */
    {
    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 */
    y = x*x -2*x - 10; /* 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;
    }


    pero en la parte marcada en negrita, en vez de usar y = x*x -2*x - 10; hago y = calculo(x); pero parece que la llamada a dicha función le hace algo, xq al poner que grafique, me tapa la mitad de la pantalla con un color gris, en cambio si pongo una operación simple, me grafica sin problemas, qué puedo hacer??
    gracias
    Citar  
     

  20. #20  
    Moderador HH
    Fecha de ingreso
    Feb 2002
    Ubicación
    México
    Mensajes
    1.155
    Descargas
    4
    Uploads
    0
    deberías usar un debugger, poniendo un "breakpoint" en esa función para revisar instrucción por instrucción y ver dónde se encuentra el problema.

    Lo difícil en la programación es encontrar los errores en un código, casi siempre me tardo más en esto que en escribirlo.

    Suerte
    Mientras el mundo permanezca no acabarán la fama y la gloria de México-Tenochtitlan
    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, 01:58
  2. Gráficos en VB
    Por welvis30 en el foro PROGRAMACION DESKTOP
    Respuestas: 13
    Último mensaje: 23-04-2007, 09:38
  3. Respuestas: 3
    Último mensaje: 22-04-2007, 23:25
  4. Graficos En C Aki!
    Por Jakofff en el foro GENERAL
    Respuestas: 12
    Último mensaje: 06-04-2006, 14:23

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •