코딩 공부/Unity C#
float를 사용한 삼각법
recordmastd
2024. 6. 2. 19:27
문제 - 플로트를 사용한 삼각법
Exercise6이라는 이름의 새 C# 콘솔 앱을 만듭니다.
Main 메서드에서 다음을 수행합니다:
- 각도를 입력하라는 메시지를 표시하고 각도를 도 단위로 구하여 float 변수에 저장합니다.
- 각도의 코사인과 사인을 계산하고 표시합니다.
힌트 1: Math 클래스는 이 작업에 매우 유용하므로 해당 클래스에 대한 설명서를 참조하세요. 해당 설명서는 https://msdn.microsoft.com/en-us/library/system.math(v=vs.110).aspx에서 찾을 수 있습니다
힌트 2: 코사인과 사인을 계산하는 메서드에 대한 설명서를 읽다 보면 각도를 도가 아닌 라디안 단위로 제공해야 한다는 것을 알 수 있습니다. 각도를 도에서 라디안으로 변환하려면 각도에 (float)Math.PI / 180 를 곱하면 됩니다. Math.PI 는 double 이므로 이 변환을 위해 타입 캐스트가 필요합니다.
제안된 테스트 사례: 각도에 90을 입력하면 코사인은 약 0, 사인은 약 1이 되어야 합니다. 약간의 반올림 오류가 발생하기 때문에 정확하지 않습니다( 2𝑏=𝑛!)
답안 입력
namespace Exerxcise6
{
internal class Program
{
/// <summary>
/// 플로트를 이용한 삼각법
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
// 각도 입력
Console.WriteLine("Enter the angle: ");
float angle = float.Parse(Console.ReadLine());
// 삼각 함수 계산
float cos = (float)Math.Cos(angle * Math.PI / 180); // Math.Cos()의 값은 double이므로 타입캐스팅
float sin = MathF.Sin(angle * (float)Math.PI / 180); // Math.PI는 double이므로 계산을 위해 타
// Math 내부에 있는 필드 PI 사용, 사용자 임의 지정 파이값보다 더 정확함
// 계산값 출력
Console.WriteLine("Cosine of " + angle + " degrees: " + cos);
Console.WriteLine("Sine of " + angle + " degrees: " + sin);
}
}
}
피드백 반영 답안 작성
namespace Exerxcise6
{
internal class Program
{
/// <summary>
/// 플로트를 이용한 삼각법
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
// 각도 입력
Console.WriteLine("Enter the angle: ");
float angle = float.Parse(Console.ReadLine());
// 삼각 함수 계산
float radianAngle = (float)(angle * Math.PI / 180);
// 계산값 출력
Console.WriteLine("Cosine of " + angle + " degrees: " + Math.Cos(radianAngle));
Console.WriteLine("Sine of " + angle + " degrees: " + Math.Sin(radianAngle));
}
}
}