책 내용 질문하기
순서도 질문합니다.
도서
2016 시나공 정보처리기사 실기
페이지
조회수
119
작성일
2016-03-12
작성자
첨부파일
안녕하세요? 정보처리기사 실기 1과목 알고리즘 책에서 96쪽에 순서도...뭐 의미는 이해가 가지만 이렇게 해도 되는가 싶어서 질문합니다. 중간에 반복문 2번. 처음으로 1이 나올때까지인데...그것이 배열의 순서를 정해주는 i변수에 넣어서 반복문 조건에 넣었다는게 잘못 아닌가요? 음....반복문 조건에 대해서는 큰 문제는 없다 생각하지만..이 처음으로 1이 나왔을때 이 반복문을 빠져나와야 한다는게 이 순서도의 잘못된 점이 아닌가 합니다. C가 1일 때...판단에서 그때는 반복문 안에 break를 넣어서 반복문을 빠져나와야 하는것 아닌가요? 문론 그땐 그 1을 0으로 차감하는 과정도 있어야 하겠지만요...여기서 나타낸바ㅗ는 1이 나타난 후에도 배열의 위치가 1일 때까지 계속 반복문을 수행하는것과 같지 않습니까?
답변
2016-03-14 10:10:52

안녕하세요.

입력되었다고 가정된 A 배열의 값 10100을 뒤에서부터 처리하기 위해 i를 5부터 1이될때까지 -1씩 증가하면서 처리하는 과정입니다.

간단히 살펴보면

④번에 의해 C는 1이고

반복문을 실행합니다.

⑤번에 의해 i는 5가 됩니다.

⑥번에 의해 B(i) = A(i) - C, 즉 B(i) = 0 - 1, B(i) = -1이 됩니다.

⑦번에서 Yes가 되어 C는 1이 됩니다.

⑩번에 의해 B(i) = ABS(B(i)), 즉 B(i) = ABS(-1), B(i) = 1이 됩니다.

다시 ⑤번에 의해

i는 기존 5에서 -1 증가한 4가 된 후 ⑥~⑩번 과정을 반복합니다.

이와 같이 처리하면 앞서 알고리즘의 이해 과정에서 처리한 형태로 순서도가 진행되어 결과적으로

B 배열에는 10110이 저장됩니다.

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

  • *
    2016-03-14 10:10:52

    안녕하세요.

    입력되었다고 가정된 A 배열의 값 10100을 뒤에서부터 처리하기 위해 i를 5부터 1이될때까지 -1씩 증가하면서 처리하는 과정입니다.

    간단히 살펴보면

    ④번에 의해 C는 1이고

    반복문을 실행합니다.

    ⑤번에 의해 i는 5가 됩니다.

    ⑥번에 의해 B(i) = A(i) - C, 즉 B(i) = 0 - 1, B(i) = -1이 됩니다.

    ⑦번에서 Yes가 되어 C는 1이 됩니다.

    ⑩번에 의해 B(i) = ABS(B(i)), 즉 B(i) = ABS(-1), B(i) = 1이 됩니다.

    다시 ⑤번에 의해

    i는 기존 5에서 -1 증가한 4가 된 후 ⑥~⑩번 과정을 반복합니다.

    이와 같이 처리하면 앞서 알고리즘의 이해 과정에서 처리한 형태로 순서도가 진행되어 결과적으로

    B 배열에는 10110이 저장됩니다.

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

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