⚠ 이 강좌는 오토핫키 v2를 다룹니다
지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만,
새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.
33. 프로그래밍 문제(4)
마지막 수정일: 2023-12-22
⚠ 제공되는 정답은 신중히 열어보세요
정답을 쉽게 확인할수록 문제 해결 능력은 천천히 오릅니다.
반드시 오래 생각한 후, 강좌를 아무리 복습해도 답을 모르겠을 때 정답을 확인해주세요.
프로그래밍 문제
문제 1. 다음 중 Loop에 관한 설명으로 옳지 않은 것은?
ㄱ. 함수의 한 종류이다.
ㄴ. 원하는 횟수만큼 블록 안의 내용을 반복한다.
ㄷ. 무한 반복이 가능하다.
ㄹ. 조건이 참일 때 반복한다.
정답 펼치기/접기
답: ㄱ, ㄹㄱ. 함수가 아니라 제어문이다. 그렇기에 반복 횟수를 지정해줄 때 괄호 처리를 해주지 않았다.
ㄹ.
Loop
는 조건과는 관련 없다.
문제 2. 다음 중 조건문에 관한 설명으로 옳지 않은 것은?
ㄱ. 조건이 참이면 블록 안의 구문을 실행한다.
ㄴ. 조건이 -1이면 거짓이므로, 블록 안의 구문을 실행하지 않는다.
ㄷ.if
의 조건이 참이어서 구문을 실행했다면, 그 밑의else if
와else
문은 건너뛴다.
ㄹ.else
는 하나의 조건문 묶음에서 여러개 쓸 수 있다.
ㅁ.else
는 필요 없는 경우 사용하지 않아도 된다.
정답 펼치기/접기
답: ㄴ, ㄹㄴ. 0과 빈 값을 제외한 모든 값은 '참' 취급이며, 음수도 마찬가지이다.
ㄹ.
else
는 한 번만 쓸 수 있다. else if
는 여러번 쓸 수 있다.
문제 3. 아래와 같은 프로그램을 작성하세요.
현재 초(Second)에 따라 구구단을 출력하는 프로그램
[동작]
1. F1을 누르면 (현재 초의 10의 자리 수 + 1)을 '단'으로 하여 구구단을 출력한다.
2. 예를 들어서, 현재 '초'가 34초라면 4단을, 59초라면 6단을 출력하도록 한다.
3. F2를 누르면 프로그램이 종료되게 한다.
[조건]
1. 구구단은 반복문을 이용하여 구현할 것.
2. 구구단은 해당 '단'의 내용을 한 번에 하나의 알림 상자로 출력할 것. (하단 출력 예시 참고)
3. 하단 출력 예시와 동일하게, 현재 초 또한 출력하게 한다.
힌트 펼치기/접기
- 현재 초를 표현하는 내장 변수를 배운 적이 있습니다.- 어떤 수의 10의 자리를 구하려면, 그 수를 10으로 나눈 후 몫만 취하면 되겠죠?
- 한 단을 하나의 알림 상자에 모두 표현하려면, 반복할 때마다 곱셈 식을 문자열로 이어붙이면 되겠네요.
특히, '개행'을 뜻하는 이스케이프 시퀀스를 이용해서 한 줄씩 이어붙이면 보기 좋을 것입니다.
정답 펼치기/접기
문제 4. 아래와 같은 프로그램을 작성하세요.
사용자의 선택에 따라 구구단을 출력하는 프로그램
[동작]
1. 첫 번째 알림 상자의 내용은 '7단?'이며, 예를 누르면 7단을 출력하고 프로그램이 종료된다.
2. 첫 번째 알림 상자에서 아니요를 누르면 두 번째 알림 상자가 나타난다.
3. 두 번째 알림 상자의 내용은 '8단?'이며, 예를 누르면 8단을 출력하고 프로그램이 종료된다.
4. 두 번째 알림 상자에서 아니요를 누르면 세 번째 알림 상자가 나타난다.
5. 세 번째 알림 상자의 내용은 '9단?'이며, 예를 누르면 9단을 출력하고 프로그램이 종료된다.
6. 세 번째 알림 상자에서 아니요를 누르면 프로그램이 종료된다.
[조건]
1. 구구단은 반복문을 이용하여 구현할 것.
2. 구구단은 해당 '단'의 내용을 한 번에 하나의 알림 상자로 출력할 것.
3. 자세한 출력 형태는 하단의 출력 예시 영상을 참고할 것
힌트 펼치기/접기
- 전체적으로 '문제 3'과 접근 방법이 동일하나, 알림 상자에서 선택한 버튼에 따라 행동이 달라져야합니다.-
MsgBox
함수의 반환값은 사용자가 누른 버튼의 이름입니다.
정답 펼치기/접기
정답은 예시입니다.
조건을 지켜서 프로그래밍 했다고 가정할 때, 제공 정답과 동일한 동작을 한다면 잘 하신 것입니다.
내려받은 정답 코드가 자신의 코드와 다르다고해서 오답인 것은 아닙니다!