funciones exponente.. lenguaje c

      • 329
      • mensajes
      • miembro desde
      • 18/01/08
    #1 funciones exponente.. lenguaje c

    buenas tengo una programa que calcula el exponente. con algunas funciones , aca esta, y les pregunto algunas consultas


    #include <stdio.h>
    #include <math.h>
    int asknum (void);
    double power (int base,int exponente);
    int main ()
    {
    int num1,num2;
    printf ("\nintroduzca la base: ");
    num1=asknum();
    printf ("\nintroduzca el exponente: ");
    num2=asknum();
    printf ("\n el resultado es: %g\n", power (num1,num2));
    return (0);
    }
    int asknum(void)
    {int num;
    scanf("%i",&num);
    return (num);
    }

    double power (int base, int exponente)
    {
    float valexp;
    valexp=exponente*log(base);
    return (exp(valexp));
    }

    1) esta claro que con la declaracion de la libreria math se

    pueden hacer calculos matematicos. alguno otro mas conocen aparte

    de calcular,la potencia ...
    creo que con la suma no es necesario colocarlo. antes lo ponia.

    yo. ni en la division, multiplicacion, resta. ?

    2)cuando una variable es de tipo double , no es de tipo entero.

    seria float , ese es el tipo de valor que devuelve la funcion ,

    ninguna de las variables puede ser distinta. sino la propia

    funcion la convierte..

    3)el orden cambia... en este programa por que queda como que base

    es num1 y exponente es num2. en la funcion main,,, y tambien

    cuando se declara, la funcion double power (int base,int

    exponente)... primero esta base y exponente...
    despues en la definicion de la funcion double power esta

    asignado al valor que devuelve, --- primero exponente y despues

    base...

    4) por que el valor que retorna es... (exp (valexp))

    no puede ser. solamente. valexp????


    gracias espero sacarme las dudas...

  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    4 comentarios / 6321 Visitas

      • 8,892
      • mensajes
      • miembro desde
      • 27/11/07
    31/08/2010
    #2 Re: funciones exponente.. lenguaje c

    La verdad, las dudas me las ocasionaste a mí, porque no entiendo mucho lo que querés preguntar. Te muestro dónde se centran mis dudas, y te doy algunas respuestas:

    1) esta claro que con la declaracion de la libreria math se

    pueden hacer calculos matematicos. alguno otro mas conocen aparte

    de calcular,la potencia ...
    creo que con la suma no es necesario colocarlo. antes lo ponia.

    La verdad, me costó entenderlo. Bueno, la respuesta es que tenés pow (o sea potencia, por lo que no necesitas escribir otra función); también están las funciones trigonométricas: sin (seno) y las demás; no las recuerdo todas y me da fiaca buscarlas. Veo que usaste exp y log, también.

    yo. ni en la division, multiplicacion, resta. ?

    2)cuando una variable es de tipo double , no es de tipo entero.

    seria float , ese es el tipo de valor que devuelve la funcion ,

    ninguna de las variables puede ser distinta. sino la propia

    funcion la convierte..

    No entiendo la última parte de la pregunta. Con respecto a la primera, double es una variable de tipo float (flotante) de doble precisión, es decir, con más dígitos significativos. Y no, no es entera.

    3)el orden cambia... en este programa por que queda como que base

    es num1 y exponente es num2. en la funcion main,,, y tambien

    cuando se declara, la funcion double power (int base,int

    exponente)... primero esta base y exponente...
    despues en la definicion de la funcion double power esta

    asignado al valor que devuelve, --- primero exponente y despues

    base...

    Muy confuso lo que decís. No veo dónde estaría cambiado el orden.

    4) por que el valor que retorna es... (exp (valexp))

    no puede ser. solamente. valexp????

    exp es una función que da como resultado la constante E (base de los logaritmos naturales) elevada al argumento. O sea que valexp es ese exponente al cual se eleva E para obtener el resultado. Las razones por las cuales esa fórmula funciona debés buscarlas en un libro de matemáticas. Acá me resultaría un poco difícil mostrártelas debido a problemas tipográficos, ya que el foro de psicofxp no soporta el lenguaje Latex (usado para fórmulas matemáticas).

      • 2,110
      • mensajes
      • miembro desde
      • 22/01/05
    31/08/2010
    #3 Re: funciones exponente.. lenguaje c
    Cita Escrito por Kryptonyte Ver mensaje
    La verdad, las dudas me las ocasionaste a mí, porque no entiendo mucho lo que querés preguntar.
    +1
      • 329
      • mensajes
      • miembro desde
      • 18/01/08
    01/09/2010
    #4 Re: funciones exponente.. lenguaje c
    Cita Escrito por Kryptonyte Ver mensaje
    La verdad, las dudas me las ocasionaste a mí, porque no entiendo mucho lo que querés preguntar. Te muestro dónde se centran mis dudas, y te doy algunas respuestas:

    1) esta claro que con la declaracion de la libreria math se

    pueden hacer calculos matematicos. alguno otro mas conocen aparte

    de calcular,la potencia ...
    creo que con la suma no es necesario colocarlo. antes lo ponia.

    La verdad, me costó entenderlo. Bueno, la respuesta es que tenés pow (o sea potencia, por lo que no necesitas escribir otra función); también están las funciones trigonométricas: sin (seno) y las demás; no las recuerdo todas y me da fiaca buscarlas. Veo que usaste exp y log, también.

    yo. ni en la division, multiplicacion, resta. ?

    2)cuando una variable es de tipo double , no es de tipo entero.

    seria float , ese es el tipo de valor que devuelve la funcion ,

    ninguna de las variables puede ser distinta. sino la propia

    funcion la convierte..

    No entiendo la última parte de la pregunta. Con respecto a la primera, double es una variable de tipo float (flotante) de doble precisión, es decir, con más dígitos significativos. Y no, no es entera.

    3)el orden cambia... en este programa por que queda como que base

    es num1 y exponente es num2. en la funcion main,,, y tambien

    cuando se declara, la funcion double power (int base,int

    exponente)... primero esta base y exponente...
    despues en la definicion de la funcion double power esta

    asignado al valor que devuelve, --- primero exponente y despues

    base...

    Muy confuso lo que decís. No veo dónde estaría cambiado el orden.

    4) por que el valor que retorna es... (exp (valexp))

    no puede ser. solamente. valexp????

    exp es una función que da como resultado la constante E (base de los logaritmos naturales) elevada al argumento. O sea que valexp es ese exponente al cual se eleva E para obtener el resultado. Las razones por las cuales esa fórmula funciona debés buscarlas en un libro de matemáticas. Acá me resultaría un poco difícil mostrártelas debido a problemas tipográficos, ya que el foro de psicofxp no soporta el lenguaje Latex (usado para fórmulas matemáticas).

    hola mira ,en el punto cuatro acerca del cambio de lugar si cambia ,. pero por ejemplo , no varia el resultado por que es----conmutativo la potencia

    no como la resta , que cambia de lugar...y no da lo mismo si esta en distinto orden
      • 8,892
      • mensajes
      • miembro desde
      • 27/11/07
    01/09/2010
    #5 Re: funciones exponente.. lenguaje c
    Cita Escrito por juan_bann Ver mensaje
    hola mira ,en el punto cuatro acerca del cambio de lugar si cambia ,. pero por ejemplo , no varia el resultado por que es----conmutativo la potencia

    no como la resta , que cambia de lugar...y no da lo mismo si esta en distinto orden
    Entiendo perfectamente la diferencia entre conmutativo y no conmutativo, pero no es el caso; la potencia NO es conmutativa. En ningún momento se invierte el orden de los argumentos. A vos lo que te confunde son los nombres, me parece. Supongo que es aquí donde pensás que se invirtió el orden:

    double power (int base, int exponente)
    {
    float valexp;
    valexp=exponente*log(base);
    return (exp(valexp));
    }

    Podrías haberlo escrito como sigue, y sería lo mismo:

    double power (int base, int exponente)
    {
    float valexp;
    valexp=log(base)*exponente;
    return (exp(valexp));
    }

    ya que la multiplicación SÍ es conmutativa.

    Y en cuanto a la última línea, si pensás que se invierten los términos:

    return (exp(valexp));

    ahí "exp" no es una variable, sino una función. Que se llame "exp" es sólo una circunstancia; podría llamarse "potenciadee".
IR ARRIBA