문제/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;
}
}
}