Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: ERIK546 en 5 Febrero 2014, 06:53 AM

Título: Como elevar una potencia en C
Publicado por: ERIK546 en 5 Febrero 2014, 06:53 AM
Hola a todos, hace un tiempo que no he escrito en el foro. Sin embargo requiero la ayuda de los expertos por la siguiente situación.
Resulta que me encuentro programando en C el método de la bisección, podría buscarlo en Internet, sin embargo se trata del método de la bisección para optimizar funciones matemáticas (máximo o mínimo), y no para encontrar raíces.
No explicaré por el momento el algoritmo; ya que podría ser un poco complicado y aburrido. Sin embargo me he atorado en el programa en mi intento de establecer un criterio.
En teoría el número de iteraciones del programa está dado por la expresión

n=[log(10^s)]/[log(2)]

Dado un "s" escogido por el usuario. Les dejo el código que llevo para mayor claridad:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
    int i;
    double p,n,l,s;
    float a,b,c,d,e;
    printf("Programa Metodo de Biseccion\n");
    printf("Define la funcion\n");
   
    printf("Define el primer limite del intervalo\n");
    scanf("%f",&a);
    printf("Define el segundo limite del intervalo\n");
    scanf("%f",&b);
    c=(a+b)/2;
    d=(c+b)/2;
    e=(c+a)/2;
    printf("Defina s\n");
    scanf("%d",s);
    p=Math.Pow(l,s);
    n=log10(p)/log10(2);
    printf("%d",n);
   
   
 
  system("PAUSE");
  return 0;
}

Como podrán haber notado no llevo ni el 50% del programa, sin embargo no he podido avanzar de dicho criterio. Muchísimas gracias de antemano.
Título: Re: Como elevar una potencia en C
Publicado por: leosansan en 5 Febrero 2014, 07:25 AM
A simple vista veo un par de errores:

Código (cpp) [Seleccionar]

scanf("%d",s);


debería ser:

Código (cpp) [Seleccionar]

scanf("%d",&s);


y:

Código (cpp) [Seleccionar]

p=Math.Pow(l,s);


sería:

Código (cpp) [Seleccionar]

p=pow(10,s);


Por cierto, aunque el código sea de C mejor usas las etiquetas GeSHi de C++ para que el código salga coloreado. Es más fácil de revisar. ;)

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)



Título: Re: Como elevar una potencia en C
Publicado por: dato000 en 5 Febrero 2014, 13:51 PM
http://www.cplusplus.com/reference/cmath/log/?kw=log
http://www.cplusplus.com/reference/cmath/pow/?kw=pow
Título: Re: Como elevar una potencia en C
Publicado por: leosansan en 5 Febrero 2014, 22:28 PM


log (http://www.cplusplus.com/reference/cmath/log/?kw=log)

pow (http://www.cplusplus.com/reference/cmath/pow/?kw=pow)

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/simba1.gif)

Título: Re: Como elevar una potencia en C
Publicado por: Yoel Alejandro en 6 Febrero 2014, 00:29 AM
Correcto, y yo añadiría que en lugar de

Código (cpp) [Seleccionar]

system("PAUSE");


usaras

Código (cpp) [Seleccionar]

getchar();


pues lo que la gente no sabe es que las órdenes system no son en "C puro", sino que "se salen de C" y hacen una petición por medio del procesador de comandos del sistema operativo. Esto puede hacer que tu programa no sea compatible en otros sistemas (computadores). Prefiere usar:

Código (cpp) [Seleccionar]

getchar( );


incluido en <stdio.h>, la cual sí es estándar y portable.