1급 필기와 실기를 구입해서 시험을 준비하고 있는데
컴활 1급 필기 12년 6월 본 시험문제 중 풀리지 않는 것들이 있어 혹시 답변이 가능하신지 질문드립니다.
22, 37번 잘 이해가 되지 않아서 그럽니다. 푸는 방법 좀 설명해주세요~
안녕하세요.
22번 해설
㉠, ㉡ 데이터가 첫 번째로 입력된 셀은 [A1] 셀이고, [A1] 셀을 Cells(행,열) 형태로 지정하면 Cells(1, 1)이므로 Cells(㉡, T_Year + 1)에서 ㉡은 1입니다. T_Year + 1의 결과 값이 1이 되려면 T_Year는 0이여야 하고, T_Year가 0이 되게 하려면 For 문에서 T_Year를 0부터 시작해야 하므로 ㉠은 0입니다.
㉢ [A1] 셀에는 2012가 입력되어 있으므로 ㉢ + T_Year의 결과 값은 2012가 되어야 합니다. T_Year는 0이므로 ㉢은 2012입니다.
㉣ “Quarter”가 첫 번째로 입력된 셀은 [A2] 셀이고, [A2] 셀을 Cells(행,열) 형태로 지정하면 Cells(2, 1)이므로 ㉣의 값은 2가 되면 됩니다. For문에서 TQ의 초기 값으로 1이 지정되어 있으므로, TQ에 1을 더해주면 2가 되므로 ㉣은 TQ + 1입니다.
문제에 제시된 프로시저를 하나하나 살펴보면 다음과 같습니다.
Sub UpTable( ) ① For T_Year = 0 To 2 ② Cells(1, T_Year + 1).Value = 2012 + T_Year ③ Next T_Year ④ For TQ = 1 To 2 ⑤ Cells(TQ + 1 , 1).Value = “Quarter”& TQ ⑥ Next TQ End Sub |
① T_Year를 0에서 2가 될 때까지 1씩 증가시키면서 매번 ?번 문장을 수행합니다.
② 2012에 T_Year를 더해 1행 T_Year + 1열에 치환합니다.
ㆍValue : 값 지정
③ 반복문의 끝으로서 반복문의 시작인 ?번으로 이동합니다.
For ~ Next문(?~?)의 실행에 따른 변수의 변화를 보면 다음과 같습니다.
실행횟수 |
T_Year |
2012 + T_Year |
Cells(1, T_Year + 1) |
1 |
0 |
2012 |
1행1열(A1) ← 2012 |
2 |
1 |
2013 |
1행2열(B1) ← 2013 |
3 |
2 |
2014 |
1행3열(C1) ← 2014 |
4 |
3 |
|
|
④ TQ를 1에서 2가 될 때까지 1씩 증가시키면서 매번 ?번 문장을 수행합니다.
⑤ “Quarter”와 TQ를 연결하여 TQ + 1행 1열에 치환합니다.
⑥ 반복문의 끝으로서 반복문의 시작인 ?번으로 이동합니다.
For ~ Next문(?~?)의 실행에 따른 변수의 변화를 보면 다음과 같습니다.
실행횟수 |
TQ |
“Quarter”& TQ |
Cells(TQ + 1 , 1) |
1 |
1 |
Quarter1 |
2행1열(A2) ← Quarter1 |
2 |
2 |
Quarter2 |
3행1열(A3) ← Quarter2 |
3 |
3 |
|
|
37번
문제에 제시된 코드를 하나하나 살펴보면 아래와 같습니다.
Sub Chk( ) ① LoopN = 0 ② Num = 10 ③ Do ④ Num = Num - 2 ⑤ LoopN = LoopN + 1 ⑥ Loop While Num> 5 ⑦ MsgBox “루프를 ” & LoopN & “번 반복.” End Sub |
① LooN에 0을 치환합니다.
② Num에 10을 치환합니다.
③ ⑥번에서 지정한 조건식에 만족할 때까지 ④~⑤를 수행합니다.
④ Num 값을 2 감소시킵니다.
⑤ LoopN 값을 1 증가시킵니다.
⑥ Num이 5보다 클 경우 ?번을 수행하고 아니면 반복문을 벗어납니다(DO~Loop While은 조건식이 참인 동안 반복 실행함).
반복문 실행에 따른 변수의 변화는 아래와 같습니다.
실행횟수 |
Num - 2 |
LoopN + 1 |
Num |
LoopN |
|
|
|
10 |
0 |
1 |
8 |
1 |
8 |
1 |
2 |
6 |
2 |
6 |
2 |
3 |
4 |
3 |
4 |
3 |
그러므로 실행된 후 LoopN의 값은 3이 됩니다.
즐거운 하루 되세요.
"-
*2012-07-16 09:55:49
안녕하세요.
22번 해설
㉠, ㉡ 데이터가 첫 번째로 입력된 셀은 [A1] 셀이고, [A1] 셀을 Cells(행,열) 형태로 지정하면 Cells(1, 1)이므로 Cells(㉡, T_Year + 1)에서 ㉡은 1입니다. T_Year + 1의 결과 값이 1이 되려면 T_Year는 0이여야 하고, T_Year가 0이 되게 하려면 For 문에서 T_Year를 0부터 시작해야 하므로 ㉠은 0입니다.
㉢ [A1] 셀에는 2012가 입력되어 있으므로 ㉢ + T_Year의 결과 값은 2012가 되어야 합니다. T_Year는 0이므로 ㉢은 2012입니다.
㉣ “Quarter”가 첫 번째로 입력된 셀은 [A2] 셀이고, [A2] 셀을 Cells(행,열) 형태로 지정하면 Cells(2, 1)이므로 ㉣의 값은 2가 되면 됩니다. For문에서 TQ의 초기 값으로 1이 지정되어 있으므로, TQ에 1을 더해주면 2가 되므로 ㉣은 TQ + 1입니다.
문제에 제시된 프로시저를 하나하나 살펴보면 다음과 같습니다.
Sub UpTable( )
① For T_Year = 0 To 2
② Cells(1, T_Year + 1).Value = 2012 + T_Year
③ Next T_Year
④ For TQ = 1 To 2
⑤ Cells(TQ + 1 , 1).Value = “Quarter”& TQ
⑥ Next TQ
End Sub
① T_Year를 0에서 2가 될 때까지 1씩 증가시키면서 매번 ?번 문장을 수행합니다.
② 2012에 T_Year를 더해 1행 T_Year + 1열에 치환합니다.
ㆍValue : 값 지정
③ 반복문의 끝으로서 반복문의 시작인 ?번으로 이동합니다.
For ~ Next문(?~?)의 실행에 따른 변수의 변화를 보면 다음과 같습니다.
실행횟수
T_Year
2012 + T_Year
Cells(1, T_Year + 1)
1
0
2012
1행1열(A1) ← 2012
2
1
2013
1행2열(B1) ← 2013
3
2
2014
1행3열(C1) ← 2014
4
3
④ TQ를 1에서 2가 될 때까지 1씩 증가시키면서 매번 ?번 문장을 수행합니다.
⑤ “Quarter”와 TQ를 연결하여 TQ + 1행 1열에 치환합니다.
⑥ 반복문의 끝으로서 반복문의 시작인 ?번으로 이동합니다.
For ~ Next문(?~?)의 실행에 따른 변수의 변화를 보면 다음과 같습니다.
실행횟수
TQ
“Quarter”& TQ
Cells(TQ + 1 , 1)
1
1
Quarter1
2행1열(A2) ← Quarter1
2
2
Quarter2
3행1열(A3) ← Quarter2
3
3
37번
문제에 제시된 코드를 하나하나 살펴보면 아래와 같습니다.
Sub Chk( )
① LoopN = 0
② Num = 10
③ Do
④ Num = Num - 2
⑤ LoopN = LoopN + 1
⑥ Loop While Num> 5
⑦ MsgBox “루프를 ” & LoopN & “번 반복.”
End Sub
① LooN에 0을 치환합니다.
② Num에 10을 치환합니다.
③ ⑥번에서 지정한 조건식에 만족할 때까지 ④~⑤를 수행합니다.
④ Num 값을 2 감소시킵니다.
⑤ LoopN 값을 1 증가시킵니다.
⑥ Num이 5보다 클 경우 ?번을 수행하고 아니면 반복문을 벗어납니다(DO~Loop While은 조건식이 참인 동안 반복 실행함).
반복문 실행에 따른 변수의 변화는 아래와 같습니다.
실행횟수
Num - 2
LoopN + 1
Num
LoopN
10
0
1
8
1
8
1
2
6
2
6
2
3
4
3
4
3
그러므로 실행된 후 LoopN의 값은 3이 됩니다.
즐거운 하루 되세요.
"