책 내용 질문하기
여러가지 질문 드립니다.
도서
2020 시나공 정보처리기사 필기 : NCS 기반 전면 개편 [기본서]
페이지
324,567,582,583,613
조회수
376
작성일
2020-08-06
작성자
탈퇴*원
첨부파일

324p

문제4번 

-보기 2번 이해가 잘 안갑니다. 어떻게 다대다 관계가 될 수 있는지 설명부탁드립니다.

 

567p

문제11번

- 2%6이 왜 2가 되는지요?

 

582p

예제

-여기서 왜 ++a가 아닌 a++인지 궁금합니다.

 

사실 전치연산과 후치연산의 차이가 헷갈립니다.

++a의 경우는 명확히 할겠는데,

a++의 경우, 연산 후 증가라는 말이 잘 이해가 안되네요. 혹시 예를 들어 둘의 차이를 설명해주실 수 있나요?

 

 

583p

2번

-n의값은 10인데 출력은 왜 10이 아닌 9인지 궁금합니다.

 

5번

sum이 20보다 작을 때 까지 값만 나오는게 아닌가요?

마지막 sum에 21까지 포함되어있어 헷갈려서 여쭤봅니다.

 

613p

예제8번

-f면 실수형식이 나와야하는데, E가 나올 수 있나요?

 

예제9번

-%c와 %5c를 같이 써서 문자 한자리 이후 5자리까지 저장되는건가요? 그렇다면 단독으로 

char c[8]

scanf(%5c, c)만 했다면 어떻게 출력이 되나요?

 

 

 

별개로, 데이터베이스와 데이터 모델의 차이는 무엇인가요?

!와 <>도 둘 다 다르다는 뜻인데, 어떻게 다른지 궁금합니다.

 

감사합니다.

 

답변
2020-08-06 10:11:17

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

 

[324]

문맥적으로 해석하셔야 합니다.

다이어그램의 관계 표시 (1, N)은 반드시 왼쪽이 1 오른쪽이 N이라는 의미는 아닙니다. 왼쪽이 N, 오른쪽이 1이 될 수도 있죠.

사람은 거주지라는 관계로 도시와 연결됩니다.

문제는 '기간'이죠. 기간 별로 사람의 거주지는 매번 바뀔 수 있으므로 사람과 도시는 1:n이 됩니다.

도시는 거주지와 출생지라는 관계로 사람과 연결됩니다.

하나의 도시는 여러 사람이 거주하고, 출생지가 될 수 있으므로 도시와 사람은 1:n이 됩니다.

이렇게 한 사람이 여러 도시, 한 도시가 여러 사람, 쌍방 1:n, n:1이 성립하므로 n:m이 되는 것이죠.

 

[567]

나머지 계산에서 실수 계산은 존재하지 않는다는 것을 기억하세요.

a/b=c...d 가 있고, 몫을 c 나머지를 d라고 했을 때, 항상 다음 공식이 성립해야 합니다.

b*c+d=a

2를 6으로 나누면 몫은 0입니다. 

그럼 나머지는 2에서 6*0을 뺀 수인 2가 나머지가 되는 것이죠.

 

[582]

전치/후치 증감 연산자가 식에 영향을 주는 것은 '하나의 식' 안에서 뿐입니다. 즉, sum = sum + i++; 과 같이 세미콜론(;) 또는 쉼표(,)로 구분되는 각 식 내에서만 전/후가 의미가 있을 뿐, i++; 이나 ++i;와 같이 개별로 사용될 때는 그저 1을 증가시키는 역할 외에 다른 역할을 수행하지 못합니다. 

전치 후치 증가가 서로 차이를 보이는 간단한 식을 보자면,

a = i++; 은 다음의 코드와 동일합니다.

a = i; 

i = i + 1; 

a = ++i; 는 다음의 코드와 동일합니다.

i = i + 1; 

a = i;

 

[583-2]

n++ 후치 연산으로 인해 출력하고 난 후에 1이 증가하여 10이 되기 때문입니다.

 

[583-5]

코드를 한줄 씩 따라가며 추적해보세요.

while문은 조건이 성립하는 한 계속 반복하므로, sum<20을 통해 while문이 종료되려면 sum의 값이 20 이상이 되어야 합니다.

sum이 20 이상이 되는 시점을 확인해보세요.

sum이 15일 때 sum+=i와 i=i+1을 수행하고 난 뒤에야 sum은 20이상의 값을 갖게 되고 while을 만나 반복문을 빠져나오게 되겠죠.

 

[613-8]

scanf의 경우 일반 실수, 지수형 실수를 입력받을 때, %f나 %e 중 어떤 것을 사용해도 무관합니다. 

일반 실수 입력 - %e

지수형 실수 입력 - %f

위와 같은 교차 사용이 허용됩니다. %f와 %e의 차이는 printf문에서만 주의하시면 됩니다.

 

[613-9]

화면에서 한자리, 5자리를 가져오라고 했으므로 l이, 다음 b에 ove m이 차례대로 들어가게 됩니다. 한 번 읽은 것을 다시 읽지는 않습니다.

그냥 %5c만 한다면 마지막에 공백 한자리를 포함한 'love '이 저장될 것입니다.

 

[마지막]

데이터 모델은 개념, 논리, 물리 로 나눌 수 있죠.

각각 DB 구축 과정 중에 만들어지는 일종의 설계 모형이라고 보시면 됩니다.

그런데 여기서 물리 데이터 모델 쯤되면 실제 하드웨어 및 서버를 고려해서 모델링을 수행해야 하기 때문에, 물리 모델은 이전의 모델링 과정과는 다르게 DB의 실제 구현 단계 정도로 봐도 무관합니다.

 

!는 Not을 의미합니다.

같지 않다는 != 를 써야 하죠.

일반적으로 프로그래밍 코드에서 주로 쓰는 표현입니다.

<> 또한 같지 않다를 의미하며, 일반 수학식이나 순서도에서 주로 사용합니다.

.. 이 차이 말고는 없네요. 그저 사용처의 차이일 뿐입니다.

일반 수학식이나 순서도에서 !=를 사용해도 사람이 보는 것이니 이해할 수 있겠지만, 프로그래밍 코드에서 '<>'는 컴파일되지 않으므로 절대 사용해서는 안되겠습니다. (코드 오류)

 

행복한 하루되세요 :)

  • 관리자
    2020-08-06 10:11:17

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

     

    [324]

    문맥적으로 해석하셔야 합니다.

    다이어그램의 관계 표시 (1, N)은 반드시 왼쪽이 1 오른쪽이 N이라는 의미는 아닙니다. 왼쪽이 N, 오른쪽이 1이 될 수도 있죠.

    사람은 거주지라는 관계로 도시와 연결됩니다.

    문제는 '기간'이죠. 기간 별로 사람의 거주지는 매번 바뀔 수 있으므로 사람과 도시는 1:n이 됩니다.

    도시는 거주지와 출생지라는 관계로 사람과 연결됩니다.

    하나의 도시는 여러 사람이 거주하고, 출생지가 될 수 있으므로 도시와 사람은 1:n이 됩니다.

    이렇게 한 사람이 여러 도시, 한 도시가 여러 사람, 쌍방 1:n, n:1이 성립하므로 n:m이 되는 것이죠.

     

    [567]

    나머지 계산에서 실수 계산은 존재하지 않는다는 것을 기억하세요.

    a/b=c...d 가 있고, 몫을 c 나머지를 d라고 했을 때, 항상 다음 공식이 성립해야 합니다.

    b*c+d=a

    2를 6으로 나누면 몫은 0입니다. 

    그럼 나머지는 2에서 6*0을 뺀 수인 2가 나머지가 되는 것이죠.

     

    [582]

    전치/후치 증감 연산자가 식에 영향을 주는 것은 '하나의 식' 안에서 뿐입니다. 즉, sum = sum + i++; 과 같이 세미콜론(;) 또는 쉼표(,)로 구분되는 각 식 내에서만 전/후가 의미가 있을 뿐, i++; 이나 ++i;와 같이 개별로 사용될 때는 그저 1을 증가시키는 역할 외에 다른 역할을 수행하지 못합니다. 

    전치 후치 증가가 서로 차이를 보이는 간단한 식을 보자면,

    a = i++; 은 다음의 코드와 동일합니다.

    a = i; 

    i = i + 1; 

    a = ++i; 는 다음의 코드와 동일합니다.

    i = i + 1; 

    a = i;

     

    [583-2]

    n++ 후치 연산으로 인해 출력하고 난 후에 1이 증가하여 10이 되기 때문입니다.

     

    [583-5]

    코드를 한줄 씩 따라가며 추적해보세요.

    while문은 조건이 성립하는 한 계속 반복하므로, sum<20을 통해 while문이 종료되려면 sum의 값이 20 이상이 되어야 합니다.

    sum이 20 이상이 되는 시점을 확인해보세요.

    sum이 15일 때 sum+=i와 i=i+1을 수행하고 난 뒤에야 sum은 20이상의 값을 갖게 되고 while을 만나 반복문을 빠져나오게 되겠죠.

     

    [613-8]

    scanf의 경우 일반 실수, 지수형 실수를 입력받을 때, %f나 %e 중 어떤 것을 사용해도 무관합니다. 

    일반 실수 입력 - %e

    지수형 실수 입력 - %f

    위와 같은 교차 사용이 허용됩니다. %f와 %e의 차이는 printf문에서만 주의하시면 됩니다.

     

    [613-9]

    화면에서 한자리, 5자리를 가져오라고 했으므로 l이, 다음 b에 ove m이 차례대로 들어가게 됩니다. 한 번 읽은 것을 다시 읽지는 않습니다.

    그냥 %5c만 한다면 마지막에 공백 한자리를 포함한 'love '이 저장될 것입니다.

     

    [마지막]

    데이터 모델은 개념, 논리, 물리 로 나눌 수 있죠.

    각각 DB 구축 과정 중에 만들어지는 일종의 설계 모형이라고 보시면 됩니다.

    그런데 여기서 물리 데이터 모델 쯤되면 실제 하드웨어 및 서버를 고려해서 모델링을 수행해야 하기 때문에, 물리 모델은 이전의 모델링 과정과는 다르게 DB의 실제 구현 단계 정도로 봐도 무관합니다.

     

    !는 Not을 의미합니다.

    같지 않다는 != 를 써야 하죠.

    일반적으로 프로그래밍 코드에서 주로 쓰는 표현입니다.

    <> 또한 같지 않다를 의미하며, 일반 수학식이나 순서도에서 주로 사용합니다.

    .. 이 차이 말고는 없네요. 그저 사용처의 차이일 뿐입니다.

    일반 수학식이나 순서도에서 !=를 사용해도 사람이 보는 것이니 이해할 수 있겠지만, 프로그래밍 코드에서 '<>'는 컴파일되지 않으므로 절대 사용해서는 안되겠습니다. (코드 오류)

     

    행복한 하루되세요 :)

  • 관리자
    2020-08-06 11:37:06

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

     

    다음과 같이 출력될 것입니다.

    n= 1, t= 0

    n= 2, t= 1

    n= 3, t= 3

    n= 4, t= 6

    n= 5, t=10

    n= 6, t=15

    n= 7, t=21

    n= 8, t=28

    n= 9, t=36

    n=10, t=45

     

    행복한 하루되세요 :)

  • *
    2020-08-06 11:08:26

    안녕하세요. 답변 고맙습니다.

     

    추가질문이 있습니다 

     

    583p 문제 2번

    그렇다면

    printf에 n++가 아닌 ++n이 들어온다면 어떤 출력값을 가지나요?

     

     

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