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)만 했다면 어떻게 출력이 되나요?
별개로, 데이터베이스와 데이터 모델의 차이는 무엇인가요?
!와 <>도 둘 다 다르다는 뜻인데, 어떻게 다른지 궁금합니다.
감사합니다.
안녕하세요 길벗수험서 운영팀입니다.
[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이 들어온다면 어떤 출력값을 가지나요?