Resultados 1 al 8 de 8

Tema: programa para factorizar ecuaciones

  1. #1 programa para factorizar ecuaciones 
    Moderador HH
    Fecha de ingreso
    Feb 2002
    Ubicación
    México
    Mensajes
    1.155
    Descargas
    4
    Uploads
    0
    Hola, he hecho un programa que factoriza ecuaciones de segundo grado
    ax²+bx+c = (dx+e)(fx+g)
    mediante la "fuerza bruta".
    Aquí está el codigo fuente para que vean que se le puede mejorar al programa.

    /************************************************** *************************
    factoriza.cpp - Este programa factoriza
    ecuaciones de segundo grado,
    los pasa de la forma ax² + bx + c
    a la forma (ax+b)(cx+d)
    -------------------
    Autor: Othoniel García
    giskard@punkass.com
    ************************************************** *************************/

    /************************************************** *************************
    *Este programa es software libre. Puede redistribuirlo y/o modificarlo *
    *bajo los términos de la Licencia Pública General de GNU según es *
    *publicada por la Free Software Foundation, bien de la versión 2 de dicha *
    *Licencia o bien (según su elección) de cualquier versión posterior. *
    * *
    *Este programa se distribuye con la esperanza de que sea útil, pero SIN *
    *NINGÚN TIPO DE GARANTÍA, incluso sin la garantía MERCANTIL implícita o *
    *sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. Véase la *
    *Licencia Pública General de GNU para más detalles. *
    * *
    ************************************************** *************************/

    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    int a, b, c, d;
    int num1, num2, num3, comp;
    int conta1, conta2;
    int r1,r2,r3;
    char opcion;
    void main(void)
    {
    do
    {
    comp = 0;
    clrscr();
    printf("Escribe los valores de a,b,c en la ecuacion ax²+bx+c\n");
    scanf("%i",&num1);
    gotoxy(4,2);
    printf("x2+");
    scanf("%i",&num2);
    gotoxy(10,2);
    printf("x+");
    scanf("%i",&num3);
    conta1 = (0-1)*abs(num1);
    conta2 = (0-1)*abs(num3);
    a=(0-1)*conta1;
    b=(0-1)*conta2;
    c=(0-1)*conta1;
    d=(0-1)*conta2;
    while (a>=conta1 && comp!=1)
    {
    b=(0-1)*conta2;
    while (b>=conta2 && comp!=1)
    {
    c=(0-1)*conta1;
    while (c>=conta1 && comp!=1)
    {
    d=(0-1)*conta2;
    while (d>=conta2 && comp!=1)
    {
    clrscr();
    r1 = a*c;
    r2 = (a*d) + (b*c);
    r3 = b*d;
    printf("(%dx+%d)(%dx+%d)",a,b,c,d);
    if (r1 == num1 && r2 == num2 && r3 == num3)comp = 1;
    d--;
    }
    c--;
    }
    b--;
    }
    a--;
    }
    if (comp != 1) printf("\nNo se puede factorizar la ecuacion");
    printf("\nDeseas hacer otra ecuacion?[s/n]");
    opcion = getch();
    }while (opcion == 's' || opcion == 'S');
    }
    Última edición por Giskard; 02-11-2002 a las 16:50
    Mientras el mundo permanezca no acabarán la fama y la gloria de México-Tenochtitlan
    Citar  
     

  2. #2  
    Moderador HH
    Fecha de ingreso
    Sep 2002
    Ubicación
    Entre C# y PHP
    Mensajes
    1.813
    Descargas
    3
    Uploads
    0
    pones #include 3 veces y en cambio no incluyes nada... deberias incluir stdio al menos (iostream.h si estas en c++), ya que usas sentencias de entrada/salida en el codigo, por lo demas, creo que está bien
    Última edición por <PICCOLO>; 01-11-2002 a las 23:41
    Quien no sabe lo que busca no entiende lo que encuentra.
    Usa Firefox, Redescubre la web
    Citar  
     

  3. #3  
    Administrador Foros HH
    Fecha de ingreso
    Nov 2001
    Ubicación
    Spain
    Mensajes
    2.234
    Descargas
    0
    Uploads
    0
    mola tio!
    Todos desean saber, pero pocos pagar el trabajo que vale.

    [[NORMAS DEL FORO]]
    Citar  
     

  4. #4  
    Moderador HH
    Fecha de ingreso
    Sep 2002
    Ubicación
    Entre C# y PHP
    Mensajes
    1.813
    Descargas
    3
    Uploads
    0
    la variable que declaras con el nombre de conta3 no la usas para nada, asi que se podria suprimir
    Quien no sabe lo que busca no entiende lo que encuentra.
    Usa Firefox, Redescubre la web
    Citar  
     

  5. #5  
    Administrador Foros HH
    Fecha de ingreso
    Nov 2001
    Ubicación
    Spain
    Mensajes
    2.234
    Descargas
    0
    Uploads
    0
    tb xD
    Todos desean saber, pero pocos pagar el trabajo que vale.

    [[NORMAS DEL FORO]]
    Citar  
     

  6. #6  
    Moderador HH
    Fecha de ingreso
    Feb 2002
    Ubicación
    México
    Mensajes
    1.155
    Descargas
    4
    Uploads
    0
    Tienes razón en lo de conta3, es que al principio si la usé, pero después de cambiar el código para optimizar el programa dejé de usarla y se me olvidó quitarla de las declaraciones,

    En cuanto a los tres includes ahí van las librerías "conio.h" "stdio.h" e "math.h", no se ven porque en el foro si pones llos signos 'menor que' y 'mayor que' los toma como comentarios y no aparecen en el mensaje.
    saludos
    Mientras el mundo permanezca no acabarán la fama y la gloria de México-Tenochtitlan
    Citar  
     

  7. #7  
    Administrador Foros HH
    Fecha de ingreso
    Nov 2001
    Ubicación
    Spain
    Mensajes
    2.234
    Descargas
    0
    Uploads
    0
    a mi me mola. No puedo compilarlo pq al switch se le va la oya y no tengo inet en mi pc con redhat, xDD pero ya lo haré. Mola tio, queda asin la cosa pues:


    / **************************************************
    *************************
    factoriza.cpp - Este programa factoriza
    ecuaciones de segundo grado,
    los pasa de la forma ax² + bx + c
    a la forma (ax+b)(cx+d)
    -------------------
    Autor: Othoniel García
    giskard@punkass.com
    **************************************************
    *************************/

    / **************************************************
    *************************
    *Este programa es software libre. Puede redistribuirlo y/o modificarlo *
    *bajo los términos de la Licencia Pública General de GNU según es *
    *publicada por la Free Software Foundation, bien de la versión 2 de dicha *
    *Licencia o bien (según su elección) de cualquier versión posterior. *
    * *
    *Este programa se distribuye con la esperanza de que sea útil, pero SIN *
    *NINGÚN TIPO DE GARANTÍA, incluso sin la garantía MERCANTIL implícita o *
    *sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. Véase la *
    *Licencia Pública General de GNU para más detalles. *
    * *
    **************************************************
    *************************/

    #include stdio.h
    #include conio.h
    #include math.h
    int a, b, c, d;
    int num1, num2, num3, comp;
    int conta1, conta2;
    int r1,r2,r3;
    char opcion;
    void main(void)
    {
    do
    {
    comp = 0;
    clrscr();
    printf("Escribe los valores de a,b,c en la ecuacion ax²+bx+c\n");
    scanf("%i",&num1);
    gotoxy(4,2);
    printf("x2+");
    scanf("%i",&num2);
    gotoxy(10,2);
    printf("x+");
    scanf("%i",&num3);
    conta1 = (0-1)*abs(num1);
    conta2 = (0-1)*abs(num3);
    a=(0-1)*conta1;
    b=(0-1)*conta2;
    c=(0-1)*conta1;
    d=(0-1)*conta2;
    while (a>=conta1 && comp!=1)
    {
    b=(0-1)*conta2;
    while (b>=conta2 && comp!=1)
    {
    c=(0-1)*conta1;
    while (c>=conta1 && comp!=1)
    {
    d=(0-1)*conta2;
    while (d>=conta2 && comp!=1)
    {
    clrscr();
    r1 = a*c;
    r2 = (a*d) + (b*c);
    r3 = b*d;
    printf("(%dx+%d)(%dx+%d)",a,b,c,d);
    if (r1 == num1 && r2 == num2 && r3 == num3)comp = 1;
    d--;
    }
    c--;
    }
    b--;
    }
    a--;
    }
    if (comp != 1) printf("\nNo se puede factorizar la ecuacion");
    printf("\nDeseas hacer otra ecuacion?[s/n]");
    opcion = getch();
    }while (opcion == 's' || opcion == 'S');
    }
    Todos desean saber, pero pocos pagar el trabajo que vale.

    [[NORMAS DEL FORO]]
    Citar  
     

  8. #8  
    Moderador HH
    Fecha de ingreso
    Feb 2002
    Ubicación
    México
    Mensajes
    1.155
    Descargas
    4
    Uploads
    0
    El compilador en el que fue probado este programa es el borland c++ 5.01.
    Por el momento estoy trabajando con uno que te da los valores de x1 y x2 en las ecuaciones de segundo grado (ax² + bx + c = 0), sólo faltan algunos detalles.
    saludos
    Mientras el mundo permanezca no acabarán la fama y la gloria de México-Tenochtitlan
    Citar  
     

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
  •