책 내용 질문하기
1과목 254p, 255p, 257p질문있습니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
254
조회수
266
작성일
2019-10-04
작성자
탈퇴*원
첨부파일

Q1. 254p 문제4와 255p 문제5

>> 다음은 두 수를 입력받아 두 수 사이의 값들의 합계와 평균을 구하여 출력하는 알고리즘이다. ...

 

수학적으로 a와 b 사이의 값이라고하면 a와 b는 포함되지 않는다고 알고 있습니다.

그런데 정답에서는 a와 b를 포함하더군요. 이에대한 답변 부탁드리겠습니다. 

마찬가지로 문제5도 사이값의 경계값들이 포함되어 있네요.

Q2. 257p 문제7
사용자정의함수 isprime(i)는 정수 i가 소수인지 판단하는 함수라고 이해했는데 맞나요?
만약 그것이 맞다면 왜 isprime(2)는 0을 반환해야하는거죠 ?

가령, i = 5이라면 isprime(5)는 5를 1, 2, 3, 4로 나누었을때 나머지가 0인 것이 없으므로 끝까지 반복문을 수행후
for 문을 벗어나 return = 1을 반환하는 거죠.
이를 요약하면 입력받은 정수 i가 자신보다 작은 정수들로 하나씩 나눴을때 나누어 떨어지지는 수가 있는지 체크하며,
없으면 소수이고, 있으면 소수가 아닌것으로 판단하여 0을 반환하는 것으로 이해했습니다.
답변
2019-10-07 15:18:00

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

 

[1]

이용에 불편을 드려 사과드립니다.

해당 문제들은 <문제>의 문구에 '두 수를 포함한' 이라는 문구가 포함하여, 경계값들을 함께 연산에 포함시켜주어야 합니다.

 

[2]

isprime함수 내의 for문의 초기값과 조건식을 확인해보세요.

isprime(2)로 호출되는 경우

i의 초기값은 2이지만, 조건식이 i<2가 되어 for문은 수행되지 않고 바로 return 1로 넘어가게 됩니다.

 

main 함수의 isprime은 2부터 99까지 호출되도록 되어있고,

isprime 함수의 for문은 2부터 받은 인수의 -1까지 for문을 통해 나머지가 0인 경우를 구해 소수인지를 판별합니다.

if (number%i==0) 이 처음 수행되는 것은 isprime(3)이 호출되었을 때가 됩니다.

( for (i=2; i<3; i++) )

 

행복한 하루되세요 :)

  • 관리자
    2019-10-07 15:18:00

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

     

    [1]

    이용에 불편을 드려 사과드립니다.

    해당 문제들은 <문제>의 문구에 '두 수를 포함한' 이라는 문구가 포함하여, 경계값들을 함께 연산에 포함시켜주어야 합니다.

     

    [2]

    isprime함수 내의 for문의 초기값과 조건식을 확인해보세요.

    isprime(2)로 호출되는 경우

    i의 초기값은 2이지만, 조건식이 i<2가 되어 for문은 수행되지 않고 바로 return 1로 넘어가게 됩니다.

     

    main 함수의 isprime은 2부터 99까지 호출되도록 되어있고,

    isprime 함수의 for문은 2부터 받은 인수의 -1까지 for문을 통해 나머지가 0인 경우를 구해 소수인지를 판별합니다.

    if (number%i==0) 이 처음 수행되는 것은 isprime(3)이 호출되었을 때가 됩니다.

    ( for (i=2; i<3; i++) )

     

    행복한 하루되세요 :)

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