책 내용 질문하기
질문이요
도서
[2014] 정보처리기사 실기(산업기사 포함)
페이지
63
조회수
78
작성일
2014-04-11
작성자
첨부파일

디버깅 과정에서 순서도는 어느정도 이해된거같은데

막상 디버깅을 해보니 이해가 안되네요

k가 4일 경우 j가 왜 3이며

hap의 경우 0 2까지 밖에 이해 되고

5 10 17은 이해가 안되네요

추가질문1: 65페이지에서 디버깅하는데

m=m+(a)i라는데 왜

m이 1 3 5 7 9 11.........이런식인거죠?

추가질문2: 69페이지에서 디버깅하는데

c mok nmg d

0 28 0 0

1 14 0 1

이런식으로 나오는데 mok = int(b/c)인데

계산하자면 b가 28 c가 0이면 28/0인데 어떻게

mok이 1이죠?

그리고 28/1이면 mok은 28 nmg는 0아닌가요?

그리고 d는 어떤 의미에서 0123456 나열되잇죠?

답변
2014-04-14 14:42:46

안녕하세요.

1)

K가 2이고 J가 2인 상태에서 MOD(K,J) = 0은 YES가 되어 7번 동그라미로 이동합니다.

그리고 7번 동그라미에서 K=J가 YES가 되어 HAP에 J를 누적합니다. HAP은 2가 됩니다.

이어서 K < A도 YES이므로 K를 1 증가하여 3을 만든 뒤 4번 동그라미로 이동합니다.

이제 K는 3, J는 2가 되어

MOD(K,J)=0이 NO가 됩니다. 그럼 6번 동그라미로 이동하여 J가 1 증가되어 J가 3이 됩니다.

이제 K는 3, J는 3이 되어

MOD(K,J)=0이 YES가 되고, K와 J가 같으므로 HAP=HAP+J에 의해 HAP이 5가 됩니다.

이어 K

이제 K는 4, J는 2가 되어

MOD(K,J)=0이 Yes가 되고 K=J가 No가 됩니다.

이어 K

이제 K는 5, J는 2가 됩니다.

위 과정을 다시한번 디버깅을 수행하면서 과정을 이해해 보세요.

2)

M의 값 1 3 5 7 9 ...를 값으로 사용하는 것이 아니라 배열의 첨자로 사용하게 됩니다.

즉 A(M)으로 사용하므로 M이 1일 때는 A(1)의 값 2를 의미합니다. 배열에는 2부터 100까지 저장되어 있으니까요.

3)

B가 28일 때, C와 D는 0이고

이후 C는 1증가 되어 1이 됩니다.

C보다 B가 크므로 9번 동그라미로 이동합니다.

MOK = INT(B/C), MOK = INT(28/1) = MOK은 28, NMG는 0이 됩니다.

해설도 이렇게 되어 있습니다.

D는 배열에 저장된 값의 개수로 배열의 어느 위치까지 출력할지 그 위치를 정하는 변수입니다.

지금처럼 배열에 6개의 값이 저장되어 있으면, D는 6이 되어 마지막 반복문에서 1부터 6까지 반복하면서 값을 출력하는 것이죠.

오늘도 즐거운 하루 되세요.

"
  • *
    2014-04-14 14:42:46

    안녕하세요.

    1)

    K가 2이고 J가 2인 상태에서 MOD(K,J) = 0은 YES가 되어 7번 동그라미로 이동합니다.

    그리고 7번 동그라미에서 K=J가 YES가 되어 HAP에 J를 누적합니다. HAP은 2가 됩니다.

    이어서 K < A도 YES이므로 K를 1 증가하여 3을 만든 뒤 4번 동그라미로 이동합니다.

    이제 K는 3, J는 2가 되어

    MOD(K,J)=0이 NO가 됩니다. 그럼 6번 동그라미로 이동하여 J가 1 증가되어 J가 3이 됩니다.

    이제 K는 3, J는 3이 되어

    MOD(K,J)=0이 YES가 되고, K와 J가 같으므로 HAP=HAP+J에 의해 HAP이 5가 됩니다.

    이어 K

    이제 K는 4, J는 2가 되어

    MOD(K,J)=0이 Yes가 되고 K=J가 No가 됩니다.

    이어 K

    이제 K는 5, J는 2가 됩니다.

    위 과정을 다시한번 디버깅을 수행하면서 과정을 이해해 보세요.

    2)

    M의 값 1 3 5 7 9 ...를 값으로 사용하는 것이 아니라 배열의 첨자로 사용하게 됩니다.

    즉 A(M)으로 사용하므로 M이 1일 때는 A(1)의 값 2를 의미합니다. 배열에는 2부터 100까지 저장되어 있으니까요.

    3)

    B가 28일 때, C와 D는 0이고

    이후 C는 1증가 되어 1이 됩니다.

    C보다 B가 크므로 9번 동그라미로 이동합니다.

    MOK = INT(B/C), MOK = INT(28/1) = MOK은 28, NMG는 0이 됩니다.

    해설도 이렇게 되어 있습니다.

    D는 배열에 저장된 값의 개수로 배열의 어느 위치까지 출력할지 그 위치를 정하는 변수입니다.

    지금처럼 배열에 6개의 값이 저장되어 있으면, D는 6이 되어 마지막 반복문에서 1부터 6까지 반복하면서 값을 출력하는 것이죠.

    오늘도 즐거운 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.