책 내용 질문하기
소수의 개수 구하기, 약수구하기 순서도와 c언어 코드가 다른이유 문의
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
조회수
494
작성일
2019-05-02
작성자
탈퇴*원
첨부파일
정보처리기사 실기 192쪽과 193쪽 , 198쪽 199쪽 순서도와 c언어 코드 반복문에 조건 및 초기값이 다른이유가 뭔가요? 예)순서도 : k>=100 c언어 코드 : k<100 순서도 : d=0 c언어 코드 : d=-1
답변
2019-05-03 10:13:47

안녕하세요 길벗수험서 운영팀입니다.

 

순서도와 프로그래밍 코드의 배열 첨자가 다르기 때문입니다.

 

순서도에서 배열 a(10)을 선언하면 a(1) ~ a(10) 까지 10개의 요소를 사용하지만,

프로그래밍 코드에서는 배열 a[10]을 선언하면 a[0] ~ a[9] 까지 10개의 요소를 사용합니다.

 

이에 따라 첨자를 위주로 반복하는 경우 반복 조건이 달라질 수 있습니다.

(<가 >=로, >가 <=로 서로 뒤집히는 경우는 단순히 코드 작성의 편의를 위해 바꾼 것입니다.)

 

당연히 배열 첨자의 초기값이 달라지므로 (1과 0) 첨자 역할을 하는 변수가 +1을 하며 시작하게 되면 순서도는 0에서 시작하고 프로그래밍 코드는 -1에서 시작하게 되겠죠.

최대값 또한 <=10이 <10으로 바뀌거나 <10이 <9로 바뀌는 경우도 발생할 수 있겠죠.

 

조금 달라보일 수 있으나 디버깅을 해보시면서 전반적인 코드를 해석해보시면 순서도와 동일한 알고리즘을 수행하고 있다는 것을 파악하실 수 있으실 것입니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-05-03 10:13:47

    안녕하세요 길벗수험서 운영팀입니다.

     

    순서도와 프로그래밍 코드의 배열 첨자가 다르기 때문입니다.

     

    순서도에서 배열 a(10)을 선언하면 a(1) ~ a(10) 까지 10개의 요소를 사용하지만,

    프로그래밍 코드에서는 배열 a[10]을 선언하면 a[0] ~ a[9] 까지 10개의 요소를 사용합니다.

     

    이에 따라 첨자를 위주로 반복하는 경우 반복 조건이 달라질 수 있습니다.

    (<가 >=로, >가 <=로 서로 뒤집히는 경우는 단순히 코드 작성의 편의를 위해 바꾼 것입니다.)

     

    당연히 배열 첨자의 초기값이 달라지므로 (1과 0) 첨자 역할을 하는 변수가 +1을 하며 시작하게 되면 순서도는 0에서 시작하고 프로그래밍 코드는 -1에서 시작하게 되겠죠.

    최대값 또한 <=10이 <10으로 바뀌거나 <10이 <9로 바뀌는 경우도 발생할 수 있겠죠.

     

    조금 달라보일 수 있으나 디버깅을 해보시면서 전반적인 코드를 해석해보시면 순서도와 동일한 알고리즘을 수행하고 있다는 것을 파악하실 수 있으실 것입니다.

     

    행복한 하루되세요 :)

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