문제/C# 연습문제

C# 연습문제 : 메서드 (뇌를 자극하는 C# 5.0)

코딩너구리 2022. 9. 14. 23:06

1. 다음 코드에서 Square() 메소드를 구현해서 프로그램을 완성하세요. Sqaure() 함수는 매개 변수를 제곱하여 반환합니다. 

 

using System;

namespace BookTestC
{
    public class Program
    {
        private static double Square(double arg)
        {
        }

        private static void Main(string[] args)
        {
            Console.Write("수를 입력하세요:");
            string input = Console.ReadLine();
            double arg = Convert.ToDouble(input);

            Console.WriteLine("결과 : {0}", Square(arg));
        }
    }
}

 

결과 코드

using System;

namespace BookTestC
{
    public class Program
    {
        private static void Main(string[] args)
        {
            while (true)
            {
                Console.Write("수를 입력하세요:");
                string input = Console.ReadLine();
                if (IsNumber(input))
                {
                    double arg = Convert.ToDouble(input);
                    Console.WriteLine("결과 : {0}", Square(arg));
                }
                else
                {
                    Console.WriteLine("숫자가 아닌 다른 값이 들어왔습니다. 입력 내용 : {0}", input);
                }

                Console.WriteLine();
            }
        }

        private static bool IsNumber(string value)
        {
            bool result = double.TryParse(value, out _);

            return result;
        }

        private static double Square(double arg)
        {
            double result = arg * arg;

            return result;
        }
    }
}

추가로 TryParse() 함수를 이용해 들어온 값이 숫자인지 아닌지 판별해 예외처리를 해주었다.

 

 

2. 다음 코드에서 Mean() 메소드를 실행하고 난 후의 mean이 정상적인 값을 가질 수 있도록 코드를 수정하시오.

using System;

namespace BookTestC
{
    public class Program
    {
        private static void Main(string[] args)
        {
            double mean = 0;

            Mean(1, 2, 3, 4, 5, mean);

            Console.WriteLine("평균 : {0}", mean);
        }

        public static void Mean(double a, double b, double c, double d, double e, double mean)
        {
            mean = (a + b + c + d + e) / 5;
        }
    }
}

 

결과 코드

using System;

namespace BookTestC
{
    public class Program
    {
        private static void Main(string[] args)
        {
            double mean = 0;

            double[] values = { 10, 25, 35, 45, 55 };

            Mean(values, out mean);

            for (int i = 0; i < values.Length; i++)
            {
                Console.WriteLine("{0}번의 점수 : {1}", i, values[i]);
            }

            Console.WriteLine("평균 : {0}", mean);
        }

        public static void Mean(double[] values, out double mean)
        {
            double addValue = 0;

            for (int i = 0; i < values.Length; i++)
            {
                addValue += values[i];
            }

            mean = addValue / values.Length;
        }
    }
}

배열을 이용해 들어오는 갯수가 늘어나도 자동으로 평균값을 내주도록 하였다.

 

 

 

 

3. 다음 코드에 Plus() 메소드가 double 형 매개 변수를 지원하도록 오버로딩하세요.

using System;

namespace BookTestC
{
    public class Program
    {
        private static void Main(string[] args)
        {
            int a = 3;
            int b = 4;
            int resultA = 0;

            Plus(a, b, out resultA);

            Console.WriteLine("{0} + {1} = {2}", a, b, resultA);

            double x = 2.4;
            double y = 3.1;
            double resultB = 0;

            Plus(x, y, resultB); //오버로드가 필요한 메소드입니다.

            Console.WriteLine("{0} + {1} = {2}", x, y, resultB);
        }

        public static void Plus(int a, int b, out int c)
        {
            c = a + b;
        }
    }
}

 

결과 코드

using System;

namespace BookTestC
{
    public class Program
    {
        private static void Main(string[] args)
        {
            int a = 3;
            int b = 4;
            int resultA = 0;

            Plus(a, b, out resultA);

            Console.WriteLine("{0} + {1} = {2}", a, b, resultA);

            double x = 2.4;
            double y = 3.1;
            double resultB = 0;

            Plus(x, y, out resultB);

            Console.WriteLine("{0} + {1} = {2}", x, y, resultB);
        }

        public static void Plus(int a, int b, out int c)
        {
            c = a + b;
        }

        public static void Plus(double x, double y, out double z)
        {
            z = x + y;
        }
    }
}