책 내용 질문하기
선택정렬 순서도
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
261
조회수
82
작성일
2018-06-22
작성자
탈퇴*원

선택정렬하는 순서도에서 배열에 10개의 자료가 입력되는부분만 발췌한건데 오류가 있는것 같습니다.

10개의 자료를 입력받는데 M이10보다 클때까지 입력받게되면 Data[11]까지 입력받게 되는거 아닌가요?

M이 10보다 작거나 같은때까지 반복하다가 내려오는게 맞지않나요?

배열의 크기가 DATA[10]로 초기화되어있는데 이렇게되면 DATA[11]까지 입력받게 되는게 아닌지....

빠른 답변부탁드립니다.

※사진같이 첨부합니다.

답변
2018-06-22 09:48:11

안녕하세요.

직접 과정을 하나씩 따라가 보면서 확인하면 됩니다.

즉 디버깅을 수행해 보는 것이죠.

m은 0으로 초기화된 후

m = m + 1에 의해 m은 1이 됩니다.

data[m], 즉 data[1]을 입력받습니다.

m : 10을 비교하는데 m은 1이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.

m = m + 1에 의해 m은 2가 됩니다.

data[m], 즉 data[2]를 입력받습니다.

m : 10을 비교하는데 m은 2이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.

.

.

.

m = m + 1에 의해 m은 9가 됩니다.

data[m], 즉 data[9]를 입력받습니다.

m : 10을 비교하는데 m은 9이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.

m = m + 1에 의해 m은 10이 됩니다.

data[m], 즉 data[10]을 입력받습니다.

m : 10을 비교하는데 m은 10이므로 10보다 작지 않습니다. 즉 크거나 같다는 조건에 만족하므로 입력 과정을 마치고 아래쪽으로 제어를 이동합니다.

위와 같은 과정으로 진행하므로 m이 10일 때까지 data[1] ~ data[10]을 입력받습니다.

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

  • *
    2018-06-22 09:48:11

    안녕하세요.

    직접 과정을 하나씩 따라가 보면서 확인하면 됩니다.

    즉 디버깅을 수행해 보는 것이죠.

    m은 0으로 초기화된 후

    m = m + 1에 의해 m은 1이 됩니다.

    data[m], 즉 data[1]을 입력받습니다.

    m : 10을 비교하는데 m은 1이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.

    m = m + 1에 의해 m은 2가 됩니다.

    data[m], 즉 data[2]를 입력받습니다.

    m : 10을 비교하는데 m은 2이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.

    .

    .

    .

    m = m + 1에 의해 m은 9가 됩니다.

    data[m], 즉 data[9]를 입력받습니다.

    m : 10을 비교하는데 m은 9이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.

    m = m + 1에 의해 m은 10이 됩니다.

    data[m], 즉 data[10]을 입력받습니다.

    m : 10을 비교하는데 m은 10이므로 10보다 작지 않습니다. 즉 크거나 같다는 조건에 만족하므로 입력 과정을 마치고 아래쪽으로 제어를 이동합니다.

    위와 같은 과정으로 진행하므로 m이 10일 때까지 data[1] ~ data[10]을 입력받습니다.

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

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