반응형
Untitled Document.md

뇌를 자극하는 C# 5.0 프로그래밍 Chapter6 연습문제


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
namespace Csharp_practice
{
    class Program
    {
        static double Square(double arg)
        {
            //이 메소드를 구현해주세요.
            return arg * arg;
        }
 
        static void Main(string[] args)
        {
            Console.Write("수를 입력하세요: ");
            string input = Console.ReadLine();
            double arg = Convert.ToDouble(input);
 
            Console.WriteLine("결과: {0}", Square(arg));
        }
    }
}
cs


출력결과




2. 다음 코드에서 Mean() 메소드를 실행하고 난 후의 mean은 얼마의 값을 가질까요? 3이라고요? 아닙니다. 0입니다. 자, 문제 나갑니다. mean이 0을 갖게되는 원인과 이를 바로잡으려면 다음 코드에서 어떤 부분을 고쳐야 할까요?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
namespace Csharp_practice
{
    class Program
    {
        static void Main(string[] args)
        {
            double mean = 0;
 
            mean = Mean(12345, mean); //반환한 값을 mean에 저장
 
            Console.WriteLine("평균 : {0}", mean);
        }
 
        //double형을 반환하는 메소드로 고친다.
        public static double Mean(double a, double b, double c, double d, double e, double mean) 
        {
            return (a + b + c + d + e) / 5;
        }
    }
}
cs


출력결과


처음에 결과가 0으로 나오는 이유는 변수 mean이 처음에 초기화 값인 0이 그대로 출력되기 때문이다. 원하는 값을 연산하기 위해서, Mean메소드를 void형이 아닌 나눗셈 연산결과 값(double)을 반환하는 메소드로 바꾸었다. 그리고 Main 부분에서 Mean함수로 반환된 값을 mean에 저장하면 원하는 결과를 얻을 수 있다.




3. 다음 코드에 Plus() 메소드가 double 형 매개 변수를 지원하도록 오버로딩하세요. 이 프로그램이 완성된 후의 실행 결과는 다음과 같아야 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
namespace Csharp_practice
{
    class Program
    {
        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;
        }
 
        // 이 아래에 double 형 매개 변수를 받을 수 있도록
        // 오버로딩된 Plus() 메소드를 작성하세요.
        public static void Plus(double a, double b, out double c)
        {
            c = a + b;
        }
    }
}
cs


출력결과




반응형

+ Recent posts