일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 알고리즘
- 언제나휴일
- 캡슐화
- c언어
- Windows Forms
- 동영상 강의
- 프로젝트
- 네트워크 프로그래밍
- 추천
- 파이썬
- 충남 천안
- 표준 라이브러리 함수
- 무료 동영상 강의
- 유튜브 동영상 강의
- 클래스 다이어그램
- 안드로이드 앱 개발
- 소켓 통신
- 졸업 작품
- 소스 코드
- 강의
- 산책하기 좋은 곳
- C++
- 실습
- c#
- 실습으로 다지는 c#
- 언제나 휴일
- 동영상
- 표준 입출력
- 원격 제어 프로그램
- 졸업 작품 소재
Archives
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
[실습으로 다지는 C#] 두 개의 정수를 입력받아 작은 수가 큰 수의 약수인지 판별 본문
이번 강의에서는 두 개의 정수를 입력받아 작은 수가 큰 수의 약수인지 판별하는 실습을 할 거예요.
이를 위해 먼저 어떠한 알고리즘으로 수행해야 하는지 고민해 보세요. 그리고 난 후에 의사 코드(pseudo code)를 작성해 봅시다. 여러분께서 먼저 작성하고 난 후에 비교해 보세요.
input := 정수를 입력 받는다.
조건(정수로 변환(input,out num1)이 실패)
오류를 출력 후 알고리즘 종료
input := 정수를 입력 받는다.
조건(정수로 변환(input,out num2)이 실패)
오류를 출력 후 알고리즘 종료
큰 수를 num1에 작은 수를 num2로 설정
조건(num1을 num2로 나누었을 때 몫이 0)
num2는 num1의 약수
아니면
num2는 num1의 약수가 아님
두 수를 교환(ref num1, ref num2)
temp:= num1
num1:= num2
num2:= temp
이와 같이 의사 코드를 작성하였다면 프로젝트를 생성하고 주석을 달아보세요.
//http://ehpub.co.kr
//실습으로 다지는 C#
//5. 조건문 if else 실습2 - 두 개의 정수를 입력받아 작은 수가 큰 수의 약수인지 판별
using System;
namespace _005_조건문_실습2___두_개의_정수를_입력받아_작은_수가_큰_수의_약수인지_판별
{
class Program
{
static void Main(string[] args)
{
//input:= 정수를 입력 받는다.
//조건(정수로 변환(input, out num1)이 실패)
{
//오류를 출력 후 알고리즘 종료
}
//input := 정수를 입력 받는다.
//조건(정수로 변환(input, out num2)이 실패)
{
//오류를 출력 후 알고리즘 종료
}
//큰 수를 num1에 작은 수를 num2로 설정
//조건(num1을 num2로 나누었을 때 몫이 0)
{
//num2는 num1의 약수
}
//아니면
{
//num2는 num1의 약수가 아님
}
}
//두 수를 교환(ref num1, ref num2)
//temp:= num1
// num1:= num2
//num2:= temp
}
}
두 개의 정수를 입력받는 부분을 작성합시다. 실제 사용자가 입력한 것은 문자열로 받기 때문에 정수로 변환하는 작업이 필요하다는 것은 이전 강의에서 살펴보았어요.
Console.WriteLine("첫 번째 정수를 입력하세요.");
string input = Console.ReadLine();//input:= 정수를 입력 받는다.
int num1 = 0;
if (int.TryParse(input, out num1) == false)//조건(정수로 변환(input, out num1)이 실패)
{
Console.WriteLine("정수가 아닙니다.");//오류를 출력 후 알고리즘 종료
return;
}
Console.WriteLine("두 번째 정수를 입력하세요.");
input = Console.ReadLine();//input := 정수를 입력 받는다.
int num2;
if (int.TryParse(input, out num2) == false)//조건(정수로 변환(input, out num2)이 실패)
{
Console.WriteLine("정수가 아닙니다.");//오류를 출력 후 알고리즘 종료
return;
}
//큰 수를 num1에 작은 수를 num2로 설정
if (num1 < num2)
{
Swap(ref num1, ref num2);
}
if(num1% num2 == 0)//조건(num1을 num2로 나누었을 때 몫이 0)
{
Console.WriteLine("{0}은 {1}의 약수", num2, num1);//num2는 num1의 약수
}
else//아니면
{
Console.WriteLine("{0}은 {1}의 약수가 아닙니다.", num2, num1);//num2는 num1의 약수가 아님
}
//두 수를 교환(ref num1, ref num2)
private static void Swap(ref int num1, ref int num2)
{
int temp = num1;//temp:= num1
num1 = num2;// num1:= num2
num2 = temp;//num2:= temp
}
이와 같이 코드를 작성하였다면 테스트를 수행해야겠죠. 작은 수가 큰 수의 약수일 때, 약수가 아닐 때, 잘못 입력하였을 때를 고려하여 테스트를 수행하세요.
= 테스트 case1 =
첫 번째 정수를 입력하세요.
2
두 번째 정수를 입력하세요.
8
2은 8의 약수
= 테스트 case2 =
첫 번째 정수를 입력하세요.
8
두 번째 정수를 입력하세요.
3
3은 8의 약수가 아닙니다.
= 테스트 case3 =
첫 번째 정수를 입력하세요.
8
두 번째 정수를 입력하세요.
dl
정수가 아닙니다.
= 테스트 case4 =
첫 번째 정수를 입력하세요.
vkf
정수가 아닙니다.
다음은 이번 실습에서 사용한 전체 소스 코드입니다.
//http://ehpub.co.kr
//실습으로 다지는 C#
//5. 조건문 if else 실습2 - 두 개의 정수를 입력받아 작은 수가 큰 수의 약수인지 판별
using System;
namespace _005_조건문_실습2___두_개의_정수를_입력받아_작은_수가_큰_수의_약수인지_판별
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("첫 번째 정수를 입력하세요.");
string input = Console.ReadLine();//input:= 정수를 입력 받는다.
int num1 = 0;
if (int.TryParse(input, out num1) == false)//조건(정수로 변환(input, out num1)이 실패)
{
Console.WriteLine("정수가 아닙니다.");//오류를 출력 후 알고리즘 종료
return;
}
Console.WriteLine("두 번째 정수를 입력하세요.");
input = Console.ReadLine();//input := 정수를 입력 받는다.
int num2;
if (int.TryParse(input, out num2) == false)//조건(정수로 변환(input, out num2)이 실패)
{
Console.WriteLine("정수가 아닙니다.");//오류를 출력 후 알고리즘 종료
return;
}
//큰 수를 num1에 작은 수를 num2로 설정
if (num1 < num2)
{
Swap(ref num1, ref num2);
}
if(num1% num2 == 0)//조건(num1을 num2로 나누었을 때 몫이 0)
{
Console.WriteLine("{0}은 {1}의 약수", num2, num1);//num2는 num1의 약수
}
else//아니면
{
Console.WriteLine("{0}은 {1}의 약수가 아닙니다.", num2, num1);//num2는 num1의 약수가 아님
}
}
//두 수를 교환(ref num1, ref num2)
private static void Swap(ref int num1, ref int num2)
{
int temp = num1;//temp:= num1
num1 = num2;// num1:= num2
num2 = temp;//num2:= temp
}
}
}
언제나휴일 여행 및 산책
'C# > 실습으로 다지는 C#' 카테고리의 다른 글
[실습으로 다지는 C#] 캡슐화 실습 – 학생 클래스 정의하기 (0) | 2025.01.05 |
---|---|
[실습으로 다지는 C#] 랜덤 값 맞추기 (0) | 2025.01.05 |
[실습으로 다지는 C#] 암스트롱의 수 (0) | 2025.01.05 |
[실습으로 다지는 C#] 두 개의 정수 사이의 합계 구하기 (0) | 2025.01.05 |
[실습으로 다지는 C#] 두 개의 정수를 입력받아 큰 수를 출력 (0) | 2025.01.05 |
[실습으로 다지는 C#] 정수와 소수점 이하 자릿수 결정하기 (1) | 2025.01.05 |
[실습으로 다지는 C#] 숫자 출력 – 형식 지정자 이용하기 (0) | 2025.01.05 |
[실습으로 다지는 C#] 문자열 출력 포멧 (0) | 2025.01.05 |