프날 오토핫키 강좌  v2

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

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

63. 프로그래밍 문제 (9)


객체에 관련된 간단한 문제를 준비했습니다.

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

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

프로그래밍 문제

문제 1. 다음 중 객체에 관한 설명으로 옳지 않은 것은?

ㄱ. 객체는 변수와 함수를 갖고 있는 하나의 집합이다.
ㄴ. 객체는 인스턴스이다.
ㄷ. 클래스는 객체이다.
ㄹ. 객체의 멤버에 접근하고 싶을 땐 . 연산자를 사용한다.

정답 펼치기/접기 답: ㄴ, ㄷ

- 객체는 인스턴스가 아닐 수도 있지만, 인스턴스는 객체입니다.
- 클래스는 객체의 설계도이며, 그 자체로 객체는 아닙니다.

 


문제 2. 아래와 같은 클래스를 작성하세요.

수학 계산 클래스 'MyMath'

[동작]
1. 하나의 수 n과 다른 수 m을 입력받아 nm을 반환하는 메서드 Exponent()를 구현할 것.
2. 하나의 수 n과 다른 수 m을 입력받아 nm / 10을 반환하는 메서드 Exponent10()를 구현할 것.
3. 하나의 수 n을 입력받으면 그 n을 반지름으로 하는 원의 면적을 구하는 메서드 GetArea()를 구현할 것.
4. 3.14의 값을 가지는 필드 PI를 구현할 것

[조건]
1. Exponent() 함수는 오토핫키에 내장된 Exp() 함수를 이용하지 말고 구현할 것.
2. Exponent10() 함수는 그 내부에서 Exponent() 함수를 호출하여 구현할 것.
3. GetArea() 함수는 필드 PI를 이용하여 만들 것.

[참고 사항]
1. 원의 면적은 PI * 반지름2 이다.

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

 


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

다른 사람이 만든 클래스를 이용하기

[동작]
1. 메모장에 글을 쓰다가 F1 키를 누르면, 작성한 글의 한글 초성을 출력한다.

[조건]
1. 아래 제공된 라이브러리를 이용할 것.
2. 현재 복사된 텍스트가 담겨있는 내장 변수 A_Clipboard를 사용할 것.

사용할 라이브러리: 모두의 한글

[다운로드 주소]
https://github.com/devPnal/every-hangul-v2

[다운로드 방법]
1. 우측의 Releases 란을 클릭하여 현재 버전의 다운로드 페이지를 들어간다.
2. Library.zip을 눌러서 라이브러리(EveryHangul.ahk)와 예제 파일(Demo.ahk)이 들어있는 압축 파일을 내려 받는다.
3. 라이브러리에 있는 메서드를 활용하여 위 문제를 해결한다.

힌트 펼치기/접기 - 적고 있는 글은 Ctrl + A로 전체 선택할 수 있으며, Ctrl + C로 복사할 수 있습니다.
- '모두의 한글' 라이브러리에는 클래스가 적혀있기 때문에, 그 안의 메서드를 이용하면 됩니다.
정답 펼치기/접기
문제 3 정답
63-3.ahk (0.00KB)

Tip: 라이브러리?

57강에서 짧게 말씀드려서 용어가 낯설 수도 있겠습니다. 라이브러리는 프로그래밍에 필요한 함수나 클래스와 같은 자원을 모아둔 파일을 의미합니다.

여러분이 내려받은 '모두의 한글'은 오토핫키에서 한글과 관련된 작업을 용이하게 하기 위해 제가 만든 라이브러리입니다. 이를 이용하여 한글과 관련된 여러 작업을 할 수 있습니다. 한글의 자모를 분리할 수도 있고, 현재 컴퓨터의 한/영 상태를 알아올 수도 있습니다.

이 문제는 클래스 형태의 라이브러리를 잘 사용할 수 있는지 확인해볼 수 있는 문제입니다. 내려받은 파일에는 예제 파일도 있고, 각 함수별 역할과 사용법도 작성되어 있으니 받은 파일을 조금만 조사해보면 금방 풀 수 있을 것입니다. 주어진 라이브러리를 자신의 코드에 올바르게 적용하는 것도 능력입니다. 그러한 능력을 키우기 위해 이런 문제를 만들어보았습니다.

 


정답은 예시입니다.

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

질문하러 가기