⚠ 이 강좌는 오토핫키 v2를 다룹니다
지금 보시는 강좌는 널리 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
이전 오토핫키 버전과는 많은 부분에서 호환이 되지 않으니,
만약 현시점에서 대중적인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시길 바랍니다.
33. 프로그래밍 문제(4)
⚠ 제공되는 정답은 신중히 열어보세요
정답을 쉽게 확인할수록 문제 해결 능력은 천천히 오릅니다.
반드시 오래 생각한 후, 강좌를 아무리 복습해도 답을 모르겠을 때 정답을 확인해주세요.
프로그래밍 문제
문제 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
함수의 반환값은 사용자가 누른 버튼의 이름입니다.
정답 펼치기/접기
정답은 예시입니다.
조건을 지켜서 프로그래밍 했다고 가정할 때, 제공 정답과 동일한 동작을 한다면 잘 하신 것입니다.
내려받은 정답 코드가 자신의 코드와 다르다고해서 오답인 것은 아닙니다!