Derivadas en c++

Iniciado por socram7, 28 Mayo 2013, 20:24 PM

0 Miembros y 1 Visitante están viendo este tema.

socram7

Tengo una duda tengo un codigo para hacer derivadas en c++ sin embargo mi duda es... como le hago para que acepte numeros fraccionarios ya que esta opción si no la puedo agregar... Me podrian ayudar o decirme como hacerle para que acepte numeros fraccionarios tanto en el exponente como en el coeficiente numerico?? Desde ya muchas gracias

Código (cpp) [Seleccionar]
#include <iostream>
#include <stdlib>
#include <math.h>

int main(){
int numero[5], total[5],i;
char sign[5];

for(i=0;i<5;i++)  {
{
do{
             cout<<"ingrese el signo del "<<" x"<<"^"<<i<<": ";
cin>>sign[i];
                 }while((sign[i]!='+')&&(sign[i]!='-'));  }
cout<<"ingrese el coeficiente literal"<<" x"<<"^"<<i<<": ";
cin>>numero[i]; }


  for(i=0;i<5;i++)  {
  total[i]=numero[i]*i;
  }

  cout<<"los nuemero son;"<<endl;
for(i=0;i<4;i++){

  cout<<total[i]<<"x^"<<(i-1)<<"+";  }
  for(i=4;i<5;i++){

  cout<<total[i]<<"x^"<<(i-1);  }
  cout<<endl;
  system("pause");

}

pacoperico

Debes utilizar variables de tipo float para almacenar esos numeros fraccionarios.

leosansan

#2
Cita de: socram7 en 28 Mayo 2013, 20:24 PM
Tengo una duda . como le hago para que acepte numeros fraccionarios ya que esta opción si no la puedo agregar... Me podrian ayudar o decirme como hacerle para que acepte numeros fraccionarios tanto en el exponente como en el coeficiente numerico?? Desde ya muchas gracias

Para empezar no plantees sólo la duda de como ingresar los números fraccionarios. No te costaba nada comentar  que el código sencillamente no compilaba, debido  a tener mal escrita una librería y no poder usar las instrucciones cout y cin, mira por qué y por otra te sobra la librería math, además de lo indicado por pacoperico.

Aunque funciona bien te aconsejaría echarle un vistazo a cómo usar números fraccionarios a partir de una estructura, en el buscador del foro puedes encontrar referencias a ello y si no a usar una Clase Fracción. Te dejo eso como tarea, aunque para un código tan cortito como el que planteas me conformaría con lo siguiente;

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#define N   5
using namespace std;

int main(){
   int i;
   float total[N],numero1[N],numero2[N],exp1[N],exp2[N];
   char sign[N],c;
   for(i=0;i<N;i++)
   {
       do{
           cout<<"Ingrese el signo del "<<" x"<<"^"<<i<<": ";
           cin>>sign[i];
       }while((sign[i]!='+')&&(sign[i]!='-'));
              cout<<"Ingrese el NUMERADOR del coeficiente de: "<<" x"<<"^"<<i<<": ";
       cin>>numero1[i];
       cout<<"Ingrese el DENOMINADOR del coeficiente de: "<<" x"<<"^"<<i<<": ";
       cin>>numero2[i];
       cout<<"Ingrese el NUMERADOR del EXPONENTE del coeficiente de: "<<" x"<<"^"<<i<<": ";
       cin>>exp1[i];
       cout<<"Ingrese el DENOMINADOR del EXPONENTE del coeficiente de: "<<" x"<<"^"<<i<<": ";
       cin>>exp2[i];
       system("cls");
   }
   for(i=0;i<N;i++)
       total[i]=numero1[i]/numero2[i]*(exp1[i]/exp2[i]);
   cout<<"los numeros son;"<<endl;
   for(i=0;i<=N-1;i++)
       cout<<total[i]<<"x^"<<(exp1[i]/exp2[i])-1<<"+";
   for(i=N-1;i<N;i++)
     cout<<total[i]<<"x^"<<(exp1[i]/exp2[i])-1;
   cout<<endl;
   system("pause");
}


Y si no quieres tanto cout y cin tienes esta otra forma, donde se ingresan uno y luego el otro:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#define N   5
using namespace std;

int main(){
   int i;
   float total[N],numero1[N],numero2[N],exp1[N],exp2[N];
   char sign[N],c;
   for(i=0;i<N;i++)
   {
       do{
           cout<<"Ingrese el signo del "<<" x"<<"^"<<i<<": ";
           cin>>sign[i];
       }while((sign[i]!='+')&&(sign[i]!='-'));
       cout<<"Ingrese el numerador Y denominador del coeficiente de: "<<" x"<<"^"<<i<<": ";
       cin>>numero1[i]>>numero2[i];
       cout<<"Ingrese el numerador Y denominador del exponente de: "<<" x"<<"^"<<i<<": ";
       cin>>exp1[i]>>exp2[i];
       system("cls");
   }
   for(i=0;i<N;i++)
       total[i]=numero1[i]/numero2[i]*(exp1[i]/exp2[i]);
   cout<<"los numeros son;"<<endl;
   for(i=0;i<=N-1;i++)
       cout<<total[i]<<"x^"<<(exp1[i]/exp2[i])-1<<"+";
   for(i=N-1;i<N;i++)
     cout<<total[i]<<"x^"<<(exp1[i]/exp2[i])-1;
   cout<<endl;
   system("pause");
}



Saluditos! ... ...

socram7

#3
Cita de: leosansan en 29 Mayo 2013, 08:07 AM
Para empezar no plantees sólo la duda de como ingresar los números fraccionarios. No te costaba nada comentar  que el código sencillamente no compilaba, debido  a tener mal escrita una librería y no poder usar las instrucciones cout y cin, mira por qué y por otra te sobra la librería math, además de lo indicado por pacoperico.

mmmm gracias por tu sugerencia pero a mi si me compila bien, es decir la libreria iostream si esta escrita bien  .__.? igual muchisimas gracias por el codigo :O muchas gracias era lo que buscaba...



leosansan

#4
Cita de: socram7 en 29 Mayo 2013, 20:41 PM
mmmm gracias por tu sugerencia pero a mi si me compila bien, es decir la libreria iostream si esta escrita bien  .__.? igual muchisimas gracias por el codigo :O muchas gracias era lo que buscaba...

Dudo lo mucho, sin "using namespace std;" difícil que "arranquen"  los cin y cout y respecto a la librería, una cosa es lo que hay y otra lo que había.

En cualquier caso el asunto era resolverte una duda, cosa que parece he conseguido.


Saluditos!. ... ..

socram7

mmm de hecho yo trabajo en borland c++ y ahi arrancan sin necesidad del using namespace std; pero igual muchisimas gracias si has resuelto mi problema  ;-) ;-) ;-) ;-) ;-) ;-)

leosansan

Cita de: socram7 en 30 Mayo 2013, 05:08 AM
mmm de hecho yo trabajo en borland c++ y ahí arrancan sin necesidad del using namespace std; pero igual muchísimas gracias si has resuelto mi problema  ;-) ;-) ;-) ;-) ;-) ;-)

Sorry, sorry, sorry cien veces. De todas formas creo que deberías intentar programar ajustándote al C/C++ estándar, más que nada para que tus programas sean "portables". y de nuevo, sorry por la ignorancia de ese detalle del compilador de borland.

Saluditos!. .... ...


socram7

Cita de: leosansan en 30 Mayo 2013, 18:12 PM
Sorry, sorry, sorry cien veces. De todas formas creo que deberías intentar programar ajustándote al C/C++ estándar, más que nada para que tus programas sean "portables". y de nuevo, sorry por la ignorancia de ese detalle del compilador de borland.

Saluditos!. .... ...


mmm no hay problema y gracias por tu sugerencia y por tu ayuda con el programa  ;-) ;-)...