Jump to content


Photo

Teorema de Pitagoras C#


  • Please log in to reply
1 reply to this topic

#1 javsolis3

javsolis3

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1380 posts
  • LocationPanama

Posted 19 March 2012 - 06:38 PM

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
  • 6295 posts
  • LocationArgentina

Posted 23 March 2012 - 03:39 PM

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




IP.Board spam blocked by CleanTalk.