본문 바로가기
언어/JAVA

[JAVA] 명품 자바프로그래밍 실습문제 2장

by merona99 2019. 10. 4.
반응형

명품 자바프로그래밍 실습문제 2장

(자바 기본 프로그래밍)

 

 

[2장 3번]

Scanner 클래스를 이용하여 정수로 된 돈의 액수를 입력받아 오만 원권, 만 원권, 천 원권, 500짜리 동전, 100원짜리 동전, 50원짜리 동전, 10원짜리 동전, 1원짜리 동전 각 몇 개로 변환되는지 출력하라.

 

[입력&출력]

금액을 입력하시오>>65376
오만원권 1매
만원권 1매
천원권 5매
백원 3매
오십원 1매
십원 2매
일원 6매

 

[소스코드]

 

 

[2장 4번]

Scanner 클래스로 정수 3개를 입력받고 3개의 숫자 중 중간 크기의 수를 출력하라. 평균값을 구하는 것이 아님에 주의하라.

 

[입력&출력]

정수 3개 입력>>20 100 33

중간 값은 33

 

[소스코드]

 

 

[2장 5번]

Scanner를 이용하여 삼각형의 변의 길이를 나타내는 정수를 3개 입력받고 이 3개의 수로 삼각형을 만들 수 있는지 판별하라. 삼각형이 되려면 두변의 합이 다른 한 변의 합보다 커야 한다.

 

[입력&출력]

정수 3개를 입력하시오>>4 3 5
삼각형이 됩니다.

 

[소스코드]

 

 

[2장 6번]

369게임을 간단히 작성해보자. 1~99까지의 정수를 입력받고 정수에 3, 6, 9 중 하나가 있는 경우는 "박수짝"을 출력하고 두 개 있는 경우는 "박수짝짝"을 출력하는 프로그램을 작성하라. 예를 들면, 키보드로 입력된 수가 13인 경우 "박수짝"을, 36인 경우 "박수짝짝"을 출력하면 된다.

 

[입력&출력]

1~99 사이의 정수를 입력하시오>>36
박수짝짝

 

[소스코드]

 

 

[2장 7번]

2차원 평면에서 직사각형은 왼쪽 상단 모서리와 오른쪽 하단 모서리의 두 점으로 표현한다. (100, 100)과 (200, 200)의 두 점으로 이루어진 사각형이 있을 때, Scanner를 이용하여 정수 x와 y값을 입력받고 점 (x, y)가 이 직사각형 안에 있는지를 판별하는 프로그램을 작성하라.

 

[입력&출력]

점 (x, y)의 좌표를 입력하시오>>150 150
(150, 150)는 사각형 안에 있습니다.

 

[소스코드]

 

 

[2장 8번]

2차원 평면에서 직사각형은 문제 7번처럼 두 점으로 표현된다. 키보드로부터 직사각형을 구성하는 두 점 (x1, y1), (x2, y2)를 입력받아 (100, 100), (200, 200)의 두 점으로 이루어진 직사각형과 충돌하는지 판별하는 프로그램을 작성하라.

[Hint] 다음은 점 (x,y)가 (rectx1, recty1), (rectx2, recty2)의 사각형 안에 있으면 true를 리턴하는 메소드이다. 이 메소드를 활용하라.

 

[입력&출력]

public static boolean inRect(int x, int y, int rectx1, int recty1, int rectx2, int recty2) {
    if((x >= rectx1 && x <= rectx2) && (y >= recty1 && y <= recty2))
        return true;
    else
        return false;

}

 

(x1, y1) 의 값을 입력해 주세요 >>150 150
(x2, y2) 의 값을 입력해 주세요 >>300 300
두 사각형은 충돌합니다.

 

[소스코드]

 

 

[2장 9번]

원의 중심을 나타내는 한 점과 반지름을 실수 값으로 입력받아라. 그리고 실수 값으로 다른 점 (x, y)를 입력받아 이 점이 원의 내부에 있는지 판별하여 출력하라.

[HInt] 중심에서 점 (x, y) 사이의 거리가 반지름보다 작거나 같으면 원의 내부에 있다. 변수 x에 대한 제곱근의 값은 Math.sqrt(x)를 이용하면 된다. Math는 6장에서 설명한다.

 

[입력&출력]

원의 중심과 반지름 입력>>10 10 6.5
점 입력>>13 13
점 (13,13)는 원 안에 있다.

 

[소스코드]

 

 

[2장 10번]

원의 정보를 받기 위해 키보드로부터 원의 중심을 나타내는 한 점과 반지름을 입력받는다. 두 개의 원을 입력받고 두 원이 서로 겹치는지 판단하여 출력하라.

 

[입력&출력]

첫번째 원의 중심과 반지름 입력>>10 10 3
두번째 원의 중심과 반지름 입력>>12 12 2
두 원은 서로 겹친다.

 

[소스코드]

 

 

[2장 11번]

숫자를 입력받아 3~5는 "봄", 6~8은 "여름", 9~11은 "가을", 12,0,1의 경우 "겨울"을, 그 외 숫자를 입력한 경우 "잘못입력"을 출력하는 프로그램을 작성하라.

 

[입력&출력]

달을 입력하세요(1~12)>>9
가을

 

(1) if-else 문을 이용하여 프로그램을 작성하라.

(2) switch 문을 이용하여 프로그램을 작성하라.

 

[소스코드]

 

 

[2장 12번]

사칙 연산을 입력받아 계산하는 프로그램을 작성하고자 한다. 연산자는 +, -, *, /의 네 가지로 하고 피연산자는 모두 실수로 한다. 피연산자와 연산자는 실행 사례와 같이 빈 칸으로 분리하여 입력한다. 0으로 나누기 시 "0으로 나눌 수 없습니다."를 출력하고 종료한다.

[Hint] 연산자는 scanner.next()를 이용하여 문자열로 입력받으면 된다. 문자열 s가 "+"와 같은지 검사하려면 if(s.equals("+"))를 이용하며, true이면 s와 "+"가 같다.

 

[입력&출력]

연산>>2 + 4
2.0+4.0의 계산 결과는 6.0

 

(1) 연산 식을 구분할 때 if-else 문을 이용하여 프로그램을 작성하라.

(2) 연산 식을 구분할 때 switch 문을 이용하여 프로그램을 작성하라.

 

[소스코드]

반응형

댓글