책 내용 질문하기
1권 148쪽 질문있습니다
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
148
조회수
376
작성일
2019-04-04
작성자
탈퇴*원
첨부파일

INT(i/2)=i/2가 이해가 안됩니다

i=1일때 왜 INT(i/2)=i/2=1 인가요? 

답변
2019-04-04 14:22:50

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

 

int함수의 용도를 정확히 파악하세요.

int함수는 괄호()안의 수를 정수로 바꾸는 함수로 소수점 데이터를 '버림' 처리합니다.

 

즉 int(i/2) = i/2 는 i가 2의 배수일 때 참을, 2의 배수가 아닐 때 거짓을 반환하게 됩니다.

i가 1일 때는, 0 = 0.5  를 비교하므로 거짓으로 J = J-(i/(i+1))을 수행하고

i가 2일 때는, 1 = 1 을 비교하므로 참이되어 J = J+(i/(i+1))을 수행하게 되죠.

이것이 홀짝홀짝 반복하게 됩니다.

 

참고로 디버깅표는 단순히 변수가 변하는 값을 순서대로 적어서 기록합니다.

단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 한 행에 모든 변화값이 적힌다고 생각하시면 안됩니다.

 

간혹 이해를 돕기 위해 회전수에 맞춰 디버깅표에 선을 그어 끊어서 표기한 경우도 있으니, 디버깅표를 참고하실 때는 이를 염두에 두시기 바랍니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-04-04 14:22:50

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

     

    int함수의 용도를 정확히 파악하세요.

    int함수는 괄호()안의 수를 정수로 바꾸는 함수로 소수점 데이터를 '버림' 처리합니다.

     

    즉 int(i/2) = i/2 는 i가 2의 배수일 때 참을, 2의 배수가 아닐 때 거짓을 반환하게 됩니다.

    i가 1일 때는, 0 = 0.5  를 비교하므로 거짓으로 J = J-(i/(i+1))을 수행하고

    i가 2일 때는, 1 = 1 을 비교하므로 참이되어 J = J+(i/(i+1))을 수행하게 되죠.

    이것이 홀짝홀짝 반복하게 됩니다.

     

    참고로 디버깅표는 단순히 변수가 변하는 값을 순서대로 적어서 기록합니다.

    단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 한 행에 모든 변화값이 적힌다고 생각하시면 안됩니다.

     

    간혹 이해를 돕기 위해 회전수에 맞춰 디버깅표에 선을 그어 끊어서 표기한 경우도 있으니, 디버깅표를 참고하실 때는 이를 염두에 두시기 바랍니다.

     

    행복한 하루되세요 :)

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