코딩 공부/Unity C#

float를 사용한 삼각법

recordmastd 2024. 6. 2. 19:27

문제 - 플로트를 사용한 삼각법

Exercise6이라는 이름의 새 C# 콘솔 앱을 만듭니다.

Main 메서드에서 다음을 수행합니다:

  1. 각도를 입력하라는 메시지를 표시하고 각도를 도 단위로 구하여 float 변수에 저장합니다.
  2. 각도의 코사인과 사인을 계산하고 표시합니다.

힌트 1: Math 클래스는 이 작업에 매우 유용하므로 해당 클래스에 대한 설명서를 참조하세요. 해당 설명서는 https://msdn.microsoft.com/en-us/library/system.math(v=vs.110).aspx에서 찾을 수 있습니다

힌트 2: 코사인과 사인을 계산하는 메서드에 대한 설명서를 읽다 보면 각도를 도가 아닌 라디안 단위로 제공해야 한다는 것을 알 수 있습니다. 각도를 도에서 라디안으로 변환하려면 각도에 (float)Math.PI / 180 를 곱하면 됩니다. Math.PIdouble 이므로 이 변환을 위해 타입 캐스트가 필요합니다.

제안된 테스트 사례: 각도에 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));
        }
    }
}