프날 오토핫키 강좌  v2

⚠ 이 강좌는 오토핫키 v2를 다룹니다

지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만, 새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.

51. 프로그래밍 문제 (7)


⚠ 제공되는 정답은 신중히 열어보세요

정답을 쉽게 확인할수록 문제 해결 능력은 천천히 오릅니다.
반드시 오래 생각한 후, 강좌를 아무리 복습해도 답을 모르겠을 때 정답을 확인해주세요.

프로그래밍 문제


문제 1. 아래와 같은 프로그램을 작성하세요.

[동작]
1. 스크립트를 실행하면 [보기]와 똑같은 글을 메모장에 입력되게 한다.

[조건]
1. 코드 제한: 15줄
2. 비활성 상태의 메모장에 ControlSend로 입력되게 할 것.
3. 메모장의 Title과 관계 없이 실행되게 할 것.
[보기]
5병의 맥주가 벽장에 있네, 5병의 맥주라네
하나를 내려서 차례로 돌렸네, 4병의 맥주가 벽장에 있네

4병의 맥주가 벽장에 있네, 4병의 맥주라네
하나를 내려서 차례로 돌렸네, 3병의 맥주가 벽장에 있네

3병의 맥주가 벽장에 있네, 3병의 맥주라네
하나를 내려서 차례로 돌렸네, 2병의 맥주가 벽장에 있네

2병의 맥주가 벽장에 있네, 2병의 맥주라네
하나를 내려서 차례로 돌렸네, 1병의 맥주가 벽장에 있네

1병의 맥주가 벽장에 있네, 1병의 맥주라네
하나를 내려서 차례로 돌렸네, 더이상 벽장에 맥주가 없네

더 이상 벽장에 맥주가 없네, 맥주는 더 이상 없다네
가게로 가서 더 사왔네, 99병의 맥주가 벽장에 있네
힌트 펼치기/접기 1. 반복문과 조건문을 적절히 사용할 수 있습니다.
2. [보기]에서 반복되는 부분을 잘 파악해보세요.
3. 메모장의 제목은 파일명에 따라 변하는데, 창의 제목이 바뀌어도 프로세스 명은 바뀌지 않습니다.
정답 펼치기/접기
문제 1 정답
51-1.ahk (0.89KB)

Tip: 99병의 맥주

보기에 주어진 글은 북미 지역의 민요인 '99병의 맥주'의 일부를 번역한 것입니다. 병의 개수가 하나씩 줄어든다는 점, 병이 모두 떨어졌을 때 다른 문구를 출력해야한다는 점 때문에 초보 프로그래머가 이 가사로 반복문, 조건문을 연습하는 관례가 있습니다.

특히 원문은 한 병 남았을 때 복수형 'bottles'가 단수형 'bottle'로 변하는 부분까지 고려해야하며, 문제처럼 5병이 아닌 99병부터 시작한다는 차이가 있습니다.

 


문제 2. 아래와 같이 문제 1의 프로그램을 수정하세요.

문제 1의 프로그램을 ControlSetText를 이용하는 방식으로 바꿀 것

정답 펼치기/접기
문제 2 정답
51-2.ahk (0.56KB)

 


문제 3. 문제 1의 프로그램과 문제 2의 프로그램 중 어느 것이 더 좋은가요? 그 이유는?

정답 펼치기/접기 문제 2의 프로그램이 더 좋다. 메모장의 입력창 컨트롤의 내용을 바꾸는 작업은 ControlSetText로도 할 수 있는데, 입력하는데 시간이 걸리며 간섭도 있는 ControlSend보단 ControlSetText를 쓰는 것이 낫다.

'더 빠르기 때문에', 혹은 '더 안정적이기 때문에' 중 하나라도 같은 이유를 제시했다면 정답

 


정답은 예시입니다.

조건을 지켜서 프로그래밍 했다고 가정할 때, 제공 정답과 동일한 동작을 한다면 잘 하신 것입니다.
내려받은 정답 코드가 자신의 코드와 다르다고해서 오답인 것은 아닙니다!

질문하러 가기