문제출처 : https://ko.khanacademy.org/math/kor-2nd-2/x755c696a3c09a536:2-2-4
개념이해하기
시각 : 시간의 한 순간으로 시계의 침이 가리키는 때
시간 : 어떤 시각 부터 다른 시각까지의 사이 (1분-60초,1시간-60분,하루-24시간,1년-12개월)
예)
현재 시각으로 부터 90분 전의 시각은 오전 8시 30분이었습니다. 현재 시각은 몇시 몇분입니까?
8시 30분에서 90분의 시간이 흐른다면 10시가 됩니다.
정답은 오전 10시
작품소개
두개의 임의의 시계가 주어지고 두 시각의 차이가 몇분 차이인지 묻고 맞다면 참 잘했어요, 틀렸다면 정답을 이야기 합니다.
알고리즘
- 시계와 시계바늘(분침),시계바늘(시침)을 2개씩 오브젝트에 추가합니다.
- 변수에 첫번째분,첫번째시,첫번째분침각도,첫번째시침각도,첫번째시간,두번째분,두번째시,두번째분침각도,두번째시침각도,두번째시간 을 추가합니다.
- 첫번째 시계에서 다음과 같이 코딩을 합니다.
- 첫번째시간을 0~660(11시간을 분단위로 표현) 사이의 임의의 숫자로 정합니다.(첫번째 시계가 두번째 시계보다 작게 하기 위해서 0시~11시 사이의 임의의 수를 선택)
- 5분 단위로 맞추기 위해 첫번째시간을 5로 나눈 몫 * 5를 하면 5분 단위의 수가 됩니다. (예 12 를 5로 나눈 몫 2 에서 * 5를 하면 10 이 되는 것과 같이 분을 5분 단위로 설정함)
- 현재 몇시인지 첫번째시 = 첫번째시간 / 60 의 몫으로 정합니다.
- 현재 몇분인지 첫번째분 = 첫번째시간 / 60 의 나머지로 정합니다.
- 첫번째시침각도 = 첫번째시간 / 60 (0과 12 사이의 실수값 나온다. ) / 12 ( 0과 1사이의 실수값이 나온다.) * 360 (0과 1사이의 실수값을 0~360 사이의 값으로 변경한다.)
- 첫번째분침각도 = 첫번째분/60 * 360 (60분이 360도 이므로 각도를 계산하기 위해 분을 60으로 나눈 후 360을 곱해 주면 해당 분에 해당하는 각도가 나온다.)
- 두번째시간을 첫번째시간 ~ 첫번째시간 + 60 사이의 임의의 숫자로 정합니다.
- 5분 단위로 맞추기 위해 두번째시간을 5로 나눈 몫 * 5를 하면 5분 단위의 수가 됩니다. (예 12 를 5로 나눈 몫 2 에서 * 5를 하면 10 이 되는 것과 같이 분을 5분 단위로 설정함)
- 현재 몇시인지 두번째시 = 두번째시간 / 60 의 몫으로 정합니다.
- 현재 몇분인지 두번째분 = 두번째시간 / 60 의 나머지로 정합니다.
- 두번째시침각도 = 두번째시간 / 60 (0과 12 사이의 실수값 나온다. ) / 12 ( 0과 1사이의 실수값이 나온다.) * 360 (0과 1사이의 실수값을 0~360 사이의 값으로 변경한다.)
- 두번째분침각도 = 두번째분/60 * 360 (60분이 360도 이므로 각도를 계산하기 위해 분을 60으로 나눈 후 360을 곱해 주면 해당 분에 해당하는 각도가 나온다.)
- 각도설정 신호 보내기를 하여 분침과 시침이 현재 각도로 설정을 하도록 한다.
- 그 다음 현재 두 시간의 차이는 몇분입니까? 라고 묻고 기다린다.
코드
- 첫번째시계판
먼저 변수의 값을 보이지 않게 숨긴다.
알고리즘에서 설명했던 것과 같이 시간을 설정하고 해당 각도를 계산 후 각도 설정 신호를 보낸 후
현재 두 시간의 차이는 몇분입니까? 를 묻고 기다린다.
대답이 두 시간의 차이와 같다면 정답입니다. 아니라면 두시간의 차이를 말합니다.
- 두번째 시계판
- 첫번째시계 바늘(시침)
- 첫번째시계 바늘(분침)
- 두번째시계 바늘(시침)
- 두번째시계 바늘(분침)
실행화면
시각과 시간의 원리를 이해할 수 있는 프로젝트였습니다.
오늘도 행복한 하루 되세요.^^
원당컴퓨터학원
인천광역시 서구 원당대로840번길 5 장원프라자 502호
#정보올림피아드
#검단신도시코딩
#원당동코딩
#마전동코딩
#왕길동코딩
#당하동코딩
#아라동코딩
#풍무동코딩
#불로동코딩
#검단동코딩
#검암동코딩
사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기
'강의자료 > 코딩으로 즐기는 수학' 카테고리의 다른 글
[초등 2학년 2학기] 길이재기 (31) | 2023.11.21 |
---|---|
[초등 2학년 2학기] 그래프를 이용하여 문제 풀기 (34) | 2023.10.27 |
[초등 2학년 2학기] 구구단 개념 이해하기 (18) | 2023.09.06 |
[초등 2학년 1학기] 여러가지 도형 (25) | 2023.08.16 |
[초등 2학년 1학기] 곱셈을 배워 봅시다. (10) | 2023.08.08 |