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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Sacar raiz cuadrada sin usar la funcion sqrt(x)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Sacar raiz cuadrada sin usar la funcion sqrt(x)  (Leído 3,838 veces)
mort

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Sacar raiz cuadrada sin usar la funcion sqrt(x)
« en: 9 Febrero 2015, 22:25 pm »

Estoy haciendo un ejercicio que  pide que introduzca 3 valores de tipo float y que determine si los números pueden representar los lados de un triangulo recto.

Intento hacer la comparación mediante el teorema de pitagoras, pero no se como sacar la raíz cuadrada en el ultimo paso, lo debo sacar sin usar usar pow, ni tampoco la función sqrt(x), debido a que son temas que todavía no veo en el libro :-\.


En línea

_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: Sacar raiz cuadrada sin usar la funcion sqrt(x)
« Respuesta #1 en: 9 Febrero 2015, 22:51 pm »

Links en  "mensajes similares" abajo del post:

http://foro.elhacker.net/programacion_cc/raiz_cuadrada_en_c-t320138.0.html
http://foro.elhacker.net/programacion_cc/ayuda_novato_raiz_cuadrada_en_c_sin_sqrt-t404341.0.html

Saludos.


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Sacar raiz cuadrada sin usar la funcion sqrt(x)
« Respuesta #2 en: 10 Febrero 2015, 10:30 am »

Puedes intentar A = RAIZ( B^2 + C^2 ) o bien puedes probar con A^2 = B^2 + C^2

Moraleja: No necesitas calcular la raiz cuadrada... simplemente hacer la comprobación

Código
  1. if ( abs( A^2 - B^2 - C^2 ) < 1e-4 ) { /* A,B,C son los vértices de un triángulo rectángulo */ }
En línea

mort

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Sacar raiz cuadrada sin usar la funcion sqrt(x)
« Respuesta #3 en: 10 Febrero 2015, 23:35 pm »

Ups... tienes mucha razon xD.
y yo que hice todo esto para hacer una comprobacion:
Código
  1. #include <stdio.h>
  2.  
  3. int main (){
  4.  
  5. float lado1, lado2, lado3;
  6. float hipotenusa, r, t;
  7.  
  8. printf("Introduzca medida1: ");
  9. scanf("%f", &lado1);
  10.  
  11. while (lado1 != -1){
  12.  
  13.  
  14. printf("Introduzca medida2: ");
  15. scanf("%f", &lado2);
  16. printf("Introduzca medida3: ");
  17. scanf("%f", &lado3);
  18.  
  19. if (lado1 == 0 || lado2 == 0 || lado3 == 0){
  20. printf("introduzca un valor correcto\n\n");
  21. }
  22.  
  23. else if (lado1 > lado2 && lado1 > lado3){
  24.  
  25.       hipotenusa = (lado2 * lado2) + (lado3 * lado3);
  26.       r = hipotenusa;
  27.       t = 0;
  28.       while (t != r){
  29.       t = r;
  30.       r = (hipotenusa/r + r)/2;
  31.       }
  32.       if (lado1 == r){
  33.       printf("forma triangulo recto, la hipotenusa es %f\n", r);
  34.       }
  35.       else{
  36.       printf("No se forma triangulo recto\n");
  37.       }
  38.  
  39.  
  40. }
  41.   else if  (lado2 > lado1 && lado2 > lado3){
  42.  
  43.    hipotenusa = (lado1 * lado1) + (lado3 * lado3);
  44.    r = hipotenusa;
  45.    t = 0;
  46.    while (t != r){
  47.     t = r;
  48.     r = (hipotenusa/r + r)/2;
  49.    }
  50.    if (lado2 == r){
  51.     printf("forma triangulo recto, la hipotenusa es %f\n\n", r);
  52.    }
  53.    else{
  54.     printf("No se forma triangulo recto\n\n");
  55.    }
  56.   }
  57.   else if (lado3 > lado1 && lado3 > lado2){
  58.  
  59.   hipotenusa = (lado1 * lado1) + (lado2 * lado2);
  60.   r = hipotenusa;
  61.   t = 0;
  62.   while (t != r){
  63.   t = r;
  64.   r = (hipotenusa/r + r)/2;
  65.   }
  66.  
  67.   if (lado3 == r){
  68.   printf("forma trinagulo recto, la hipotenusa es %f\n\n", r);
  69.   }
  70.   else{
  71.   printf("No se forma triangulo recto\n\n");
  72.   }
  73.   }
  74.   else{
  75.   printf("No se forma un triangulo recto\n\n");
  76.   }
  77.   printf("Introduzca medida1, (-1 para terminar): ");
  78.   scanf("%f", &lado1);
  79.   }
  80.   system ("pause");
  81.   return 0;
  82. }

Gracias! lo hare como tu me dices para hacer mas corto el programa.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sacar Raiz pero no solo cuadrada
Programación Visual Basic
Zeroql 1 2,677 Último mensaje 12 Septiembre 2008, 19:14 pm
por cassiani
sacar raiz cuadrada en c sharp
.NET (C#, VB.NET, ASP)
Amagekure 1 10,649 Último mensaje 1 Marzo 2010, 20:50 pm
por [D4N93R]
Raiz cuadrada en c « 1 2 »
Programación C/C++
JOSE23 11 27,195 Último mensaje 21 Febrero 2011, 18:06 pm
por JOSE23
[Ayuda novato] Raiz cuadrada en C sin sqrt « 1 2 »
Programación C/C++
bourne1191 18 43,693 Último mensaje 6 Diciembre 2013, 20:51 pm
por amchacon
Duda calcular raiz cuadrada sin sqrt C++
Programación C/C++
seryioo 4 8,439 Último mensaje 26 Julio 2015, 10:10 am
por do-while
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines