elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [RESUELTO]Problema con funcion exp en C, cn Borland 5.02´
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [RESUELTO]Problema con funcion exp en C, cn Borland 5.02´  (Leído 4,537 veces)
SonaArtica

Desconectado Desconectado

Mensajes: 53


Estudiando...♥


Ver Perfil WWW
[RESUELTO]Problema con funcion exp en C, cn Borland 5.02´
« en: 26 Agosto 2012, 23:05 pm »

Bueno el tema es que tengo que hacer : (x/z)^2
Averiguando supe que la funcion exp(x) saca el exponente, lo probe y nada.
Luego probe con pow(d1,d2) que seria d1 elevado a d2 ej: pow(4,2)->16

 :-X A la expresion se la asigne a la variable x y no funka ;(
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. int main(){
  5. float a,b,x,resultado;
  6.    a=1;
  7.    b=4;
  8.    x=a/b;
  9.    resultado=pow(x,2);
  10.    printf ("El resultado de %f/%f al cuadrado es %f",a,b,resultado);
  11. return 0;
  12. }

Y me gustaria que quede algo asi:
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. int main(){
  5. float a,b,x,resultado;
  6.    a=1;
  7.    b=4;
  8.  
  9.    resultado=pow(a/b,2);
  10.    printf ("El resultado de %f/%f al cuadrado es %f",a,b,resultado);
  11. return 0;
  12. }

Pero tampoco funka :(
Jaja la verdad cn esta simple tonteria no la puedo resolver jaja, Saludos ^^


« Última modificación: 27 Agosto 2012, 08:18 am por SonaArtica » En línea

<z
fabianjsm

Desconectado Desconectado

Mensajes: 26


Ver Perfil WWW
Re: Problema con funcion exp en C, cn Borland 5.02
« Respuesta #1 en: 26 Agosto 2012, 23:27 pm »

Podrías hacerlo de este modo:

Código
  1. #include<stdio.h>
  2.  
  3. /* f(x,z) = (x/z)^2 */
  4. float f(float x, float z)
  5. {
  6. return !z? 0: (x /=z, x*x);
  7. }
  8.  
  9. int main()
  10. {
  11. printf("%f\n", f(20,4)); // salida: 25.00
  12. printf("%f\n", f(24,2)); // salida: 144.00
  13. return 0;
  14. }


En línea

SonaArtica

Desconectado Desconectado

Mensajes: 53


Estudiando...♥


Ver Perfil WWW
Re: Problema con funcion exp en C, cn Borland 5.02
« Respuesta #2 en: 27 Agosto 2012, 00:23 am »

No entendi nada del codigo que pusiste jeje.
return !z? 0: (x /=z, x*x); eso de "z?" que es?
float f(float x, float z) me parecio verlo pero no recuerdo que es tampoco :(
En línea

<z
durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Problema con funcion exp en C, cn Borland 5.02
« Respuesta #3 en: 27 Agosto 2012, 00:50 am »

Hola! esos dos codigo que pusiste andan bien, el problema puede ser que te falta agregar el header math.h ó tenes algun problema con Borland


Saludos
En línea

Ahorrate una pregunta, lee el man
-- KiLiaN --


Desconectado Desconectado

Mensajes: 1.163


Ju Já!!


Ver Perfil
Re: Problema con funcion exp en C, cn Borland 5.02
« Respuesta #4 en: 27 Agosto 2012, 01:16 am »

Y no sería más fácil multiplicar por sí misma la variable y obtener así el cuadrado?

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.  int cuadrado;
  7.  printf ("Escribe un numero: ");
  8.  scanf ("%d", &cuadrado);
  9.  printf ("El resultado de %d/%d es %d \n", cuadrado, cuadrado, cuadrado * cuadrado);
  10.  
  11.  system("PAUSE");
  12.  return 0;
  13. }
En línea

fabianjsm

Desconectado Desconectado

Mensajes: 26


Ver Perfil WWW
Re: Problema con funcion exp en C, cn Borland 5.02
« Respuesta #5 en: 27 Agosto 2012, 03:06 am »

La probaste al menos? Es C básico!

Y no sería más fácil multiplicar por sí misma la variable y obtener así el cuadrado?

Pienzo lo mismo, para que quieres math.h si solo tienes que dividir y multiplicar dos números!

Te lo explico por partes:

Código
  1. // Si el resultado es cero abortamos la división
  2. if(z == 0) // pero lo escribo asi if(!z)
  3. return 0;
  4. x = x/z; // pero lo escribo así x /= 2
  5. x = x*x; // pero lo escribo asi x *= x
quedaría así

Código
  1. if(!z)
  2. return 0;
  3. x /= z;
  4. x *= x;
  5. return x;

Ahora el operador ternario

Código
  1.    a = (condicion)? (resultado_si): (resultado_no);
   
Si la condicion es verdadera, se asigna resultado_si, si es falsa se asigna resultado_no. Los paréntesis no son necesarios. Pero en nuestro caso tenemos dos operaciones para la ultima sentencia, así que la separamos con la coma

Código
  1. // si z vale 0 retornamos cero, en otro caso realizamos las dos operaciones...
  2. // la expresión con comas tendra el valor de la última
  3.  
  4. resultado = (z == 0)? (0): (x /= z, x * x );
   return resultado;
   
Sintetizando nos queda así

Código
  1.    return !z? 0: (x /=z, x*x);
En línea

SonaArtica

Desconectado Desconectado

Mensajes: 53


Estudiando...♥


Ver Perfil WWW
Re: Problema con funcion exp en C, cn Borland 5.02
« Respuesta #6 en: 27 Agosto 2012, 03:29 am »

Hola! esos dos codigo que pusiste andan bien, el problema puede ser que te falta agregar el header math.h ó tenes algun problema con Borland


Saludos

 :) Jaja Graciass era eso que se me pasaba, tenia que inbocar la libreria <math.h> porque la funcion pow o sqrt son funciones de esa libreria, Saludos  ;D
En línea

<z
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines