Ir al contenido



Foto

Teorema de Pitagoras C#


  • Por favor identifícate para responder
1 respuesta en este tema

#1 javsolis3

javsolis3

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.380 mensajes
  • LocationPanama

Escrito 19 marzo 2012 - 06:38

Aqui dejo el codigo fuente.

[csharp]int a = Int32.Parse(textbox1.Text);int b = Int32.Parse(textbox2.Text);
int c= Math.Sqrt((a*a)+(b*b));
textbox3.Text=ToString©;[/csharp]
  • 0

#2 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.983 mensajes
  • LocationArgentina

Escrito 23 marzo 2012 - 03:39

Hola,
Para ir entiendiendole la mano viene de 10. Solo quisiera aclarar una pequeña cosita: si se sometiera una implementación como esta forma a prueba con valores de punto flotante cercanos a cero o, en su defecto, cercanos al máximo permitido, arrojará un error de bajo desbordamiento o sobre desbordamiento.
En la práctica se utiliza un procedimiento matemático que evita estos desbordamientos. La mayoría de los lenguajes ya suelen tener una función que aplica estos conceptos. Se la suele conocer como Hypot.

El procedimiento por si alguien le interesa, vendría a ser algo es así:

AbsX = Abs(X)
AbsY = Abs(Y)

si AbsX > AbsY
entonces resultado = AbsX * sqrt(1.0 + sqr(AbsY/AbsX))
sino resultado = AbsY * sqrt(1.0 + sqr(AbsX/AbsY))


Disculpen, pero no se de C#.

Delphi en la unidad Math ya cuenta con una función Hypot(), similar a ese procedimiento. Lo que hace es intercambiar AbsX por AbsY en caso de ser mayor, y de ese modo no se necesita repetir el cálculo tanto para el mayor como el menor.

Saludos,
  • 0