책 내용 질문하기
2017시나공 산업기사(기사) 교재 1권 105쪽 문제10번 , 108쪽 문제 17번 질문
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
105
조회수
47
작성일
2018-09-26
작성자
탈퇴*원
첨부파일

105쪽 문제 10 )

a = 20 % 11 / 3 * 5 -b; 산술연산자 우선순위에 따라 계산하는데

해설집에 (20%11) 나머지 연산부터 나누기 연산 곱하기 연산 순으로 이루어져있어요.

산술연산자 중에서도 우선순위가 * , / , % 순으로 표에 나5와있는데,

같은 순위에 있다고 보고 좌에서 우로 풀어야한다니.. 산술연산자 내에서의 우선순위는 무시해야하는건가요?

혼돈되서요~ 답변부탁드립니다!

108쪽 문제 17번)

d *= 7 - c++; 를 풀어쓰면

d = d*7 - (c++);

d = d*7 - 5;

d = 5*7 - 5;

d = 35 - 5;

d= 30;

답은 10이라고 했는데, 제가 이해한 과정입니다.

어떻게 해서 d* (7-5); 가 되는지 궁금합니다..ㅠ 단항연산자가 우선순위이지만 후치연산이기 때문에

앞에 있는 곱하기 산술 연산부터 해야 하는거 아닌가 생각해서요.,

p.s/ 2017년도에 첫번째 시험 불합격으로 인해 다시 준비 중인데 교재 재구매가 어려워 2017년도 시나공으로 공부하고있습니다. 2017 교재로 공부해도 무방한지요!

답변
2018-09-27 21:20:32

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

같은 순위에 있다고 보고 좌에서 우로 풀어야한다니.. 산술연산자 내에서의 우선순위는 무시해야하는건가요?

[답변]

아닙니다.

연산자 우선순위(60쪽)에 있는 도표를 잘 보셔야 합니다.

우선순위와 결합규칙 중 우선순위는 먼저 계산해야 함을 의미합니다.

우선순위가 없는 동일한 행에 있는 연산자들끼리는 연산자들끼리의 우선순위는 없으며, 해당 연산자들이 조합되어 있을 때는 결합 규칙의 방향대로 풀이를 한다는 의미입니다.

즉, 단항 연산자는 !, ~, ++, --는 어떤 것을 먼저 수행하는 것이 아닌 오른쪽에서 시작하여 왼쪽으로 연산을 한다는 의미이지요.

a = 20 % 11 / 3 * 5 -b;

에서도 마찬가지로, 우선순위가 높은 연산자를 먼저 풀이한 뒤, 동일한 우선순위에 있는 연산자들은 결합 규칙에 따라 해당하는 방향으로 푸시면 됩니다.

d *= 7 - c++; 풀이

[답변]

a *= b는 a=a*b를 의미합니다. *대신 사칙연산의 무엇이 들어가도 기호만 바뀔 뿐 동일합니다.

c=5, d=5일 때,

d *= 7 - c++;

d = d * (7 - c++);

d = d * (7 - 5);

d = 5 * 2;

d = 10

입니다. -=, +=, *=, /=을 사용할 때는 괄호를 반드시 사용해 주세요.

이러한 연산들은 중고등학교 때 배운 단순한 사칙연산의 우선순위와 다르지 않습니다. 연산자 우선순위를 조심해야 하는 부분은 산술 연산자 이외의 연산자가 나왔을 때 뿐입니다.

2017년도에 첫번째 시험 불합격으로 인해 다시 준비 중인데 교재 재구매가 어려워 2017년도 시나공으로 공부하고있습니다. 2017 교재로 공부해도 무방한지요!

[답변]

2017년 특별 개정판을 갖고 계신다면, 해당 교재로 학습하셔도 됩니다.

2018년 개정에 추가된 문제 또는 새로운 용어는 시험대비자료 코너에서 다운받아 학습할 수 있으니 학습에 참고하세요.

교재에 포함된 일부 문제에는 변동이 있을 수 있으니 강의는 교재에 맞는 강의를 선택해서 시청하시는 것을 권해드립니다.

행복한 하루되세요.^^

  • *
    2018-09-27 21:20:32

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

    같은 순위에 있다고 보고 좌에서 우로 풀어야한다니.. 산술연산자 내에서의 우선순위는 무시해야하는건가요?

    [답변]

    아닙니다.

    연산자 우선순위(60쪽)에 있는 도표를 잘 보셔야 합니다.

    우선순위와 결합규칙 중 우선순위는 먼저 계산해야 함을 의미합니다.

    우선순위가 없는 동일한 행에 있는 연산자들끼리는 연산자들끼리의 우선순위는 없으며, 해당 연산자들이 조합되어 있을 때는 결합 규칙의 방향대로 풀이를 한다는 의미입니다.

    즉, 단항 연산자는 !, ~, ++, --는 어떤 것을 먼저 수행하는 것이 아닌 오른쪽에서 시작하여 왼쪽으로 연산을 한다는 의미이지요.

    a = 20 % 11 / 3 * 5 -b;

    에서도 마찬가지로, 우선순위가 높은 연산자를 먼저 풀이한 뒤, 동일한 우선순위에 있는 연산자들은 결합 규칙에 따라 해당하는 방향으로 푸시면 됩니다.

    d *= 7 - c++; 풀이

    [답변]

    a *= b는 a=a*b를 의미합니다. *대신 사칙연산의 무엇이 들어가도 기호만 바뀔 뿐 동일합니다.

    c=5, d=5일 때,

    d *= 7 - c++;

    d = d * (7 - c++);

    d = d * (7 - 5);

    d = 5 * 2;

    d = 10

    입니다. -=, +=, *=, /=을 사용할 때는 괄호를 반드시 사용해 주세요.

    이러한 연산들은 중고등학교 때 배운 단순한 사칙연산의 우선순위와 다르지 않습니다. 연산자 우선순위를 조심해야 하는 부분은 산술 연산자 이외의 연산자가 나왔을 때 뿐입니다.

    2017년도에 첫번째 시험 불합격으로 인해 다시 준비 중인데 교재 재구매가 어려워 2017년도 시나공으로 공부하고있습니다. 2017 교재로 공부해도 무방한지요!

    [답변]

    2017년 특별 개정판을 갖고 계신다면, 해당 교재로 학습하셔도 됩니다.

    2018년 개정에 추가된 문제 또는 새로운 용어는 시험대비자료 코너에서 다운받아 학습할 수 있으니 학습에 참고하세요.

    교재에 포함된 일부 문제에는 변동이 있을 수 있으니 강의는 교재에 맞는 강의를 선택해서 시청하시는 것을 권해드립니다.

    행복한 하루되세요.^^

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