책 내용 질문하기
170페이지 문제4 C코드 관련
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
170
조회수
54
작성일
2018-03-13
작성자
탈퇴*원
첨부파일

C코드를 보면 if( ) 의 조건이 문제2의 흐름도와 같이 k==j로 되어있는데

k==j가 아닌 다른 답변(예를 들면 s==-1) 로 해도 이 프로그램의 결과에는 문제가 없어보입니다.

그렇다면 k라는 변수를 선언한 의미가 없어지게 되고 필요없어서 k=j/2*2라는 라인을 지워도 결과는 같게 될 거 같습니다.

이런 경우 실제 시험에서 s==-1로 답할경우 오답이 되나요?

빈칸에 적을 답이 모든 변수가 의미있는지 여부까지 고려해야 되는지 궁금합니다.

답변
2018-03-14 09:45:13

안녕하세요.

문제의 처리조건에 변수 설명이 있는 경우 해당 변수의 용도이고 해당 변수를 이용해서 문제를 해결하라는 묵시적인 조건입니다.

그러므로 변수의 용도가 명확히 파악되는 경우 해당 변수를 이용해서 답안을 작성하는 것이 가장 효과적입니다.

해당 문제에서

k는 홀수인지 짝수인지 판별하는 변수이고

j는 1씩 증가하는 숫자가 저장될 변수라고 정의되어 있습니다.

if 조건 부분은 짝수와 홀수를 판별해서 짝수인 경우 even += g를 홀수인 경우 odd += g를 수행하는 부분임을 알 수 있으므로

k 변수를 사용해서 답안을 작성해야 합니다.

처음부터 코드를 작성하는 것이라면 임의로 작성해도 되지만

이미 코드가 작성된 경우에는 해당 코드의 작동 방식을 먼저 이해하고 그에 맞는 빈 괄호를 채워야 하기때문에 더 어렵다고 할 수 있습니다.

그런 맥락에서 k = j / 2 * 2를 사용한 것은 코드 작성자가 k를 홀짝 판별을 위한 용도로 사용하겠다고 다시 한 번 확인해 주는 항목이라고 할 수 있습니다.

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

  • *
    2018-03-14 09:45:13

    안녕하세요.

    문제의 처리조건에 변수 설명이 있는 경우 해당 변수의 용도이고 해당 변수를 이용해서 문제를 해결하라는 묵시적인 조건입니다.

    그러므로 변수의 용도가 명확히 파악되는 경우 해당 변수를 이용해서 답안을 작성하는 것이 가장 효과적입니다.

    해당 문제에서

    k는 홀수인지 짝수인지 판별하는 변수이고

    j는 1씩 증가하는 숫자가 저장될 변수라고 정의되어 있습니다.

    if 조건 부분은 짝수와 홀수를 판별해서 짝수인 경우 even += g를 홀수인 경우 odd += g를 수행하는 부분임을 알 수 있으므로

    k 변수를 사용해서 답안을 작성해야 합니다.

    처음부터 코드를 작성하는 것이라면 임의로 작성해도 되지만

    이미 코드가 작성된 경우에는 해당 코드의 작동 방식을 먼저 이해하고 그에 맞는 빈 괄호를 채워야 하기때문에 더 어렵다고 할 수 있습니다.

    그런 맥락에서 k = j / 2 * 2를 사용한 것은 코드 작성자가 k를 홀짝 판별을 위한 용도로 사용하겠다고 다시 한 번 확인해 주는 항목이라고 할 수 있습니다.

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

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