1. 과제에 관한 이야기
코드 작성과 계획의 중요성
inlcude <iostream>
int main(){
int nRectangleWidth{};
int nRectangleHeight{};
int nRectangleArea{};
nRectangleWidth = 10;
nRectangleHeight = 3;
nRectangleArea = nRectangleWidth * nRectangleHeight;
cout << nRectangleArea;
}
위의 코드는 직사각형의 넓이를 계산하는 간단한 예제입니다. 우리가 일반적으로 직사각형의 넓이를 계산할 때는 "밑변 * 높이"를 사용합니다.
위 코드에서 nRectangleArea = nRectangleWidth * nRectangleHeight와 같이 작성한 경우, 계획대로 코드를 작성한 것입니다. 하지만 만약 nRectangleArea = nRectangleHeight * nRectangleWidth와 같이 높이와 밑변의 순서를 바꾸었다면, 의도와 다르게 코딩을 했다고 볼 수 있습니다.
중요한 점은 코딩을 할 때 명확한 계획을 세우고, 그 계획에 따라 코드를 작성해야 한다는 것입니다. 만약 계획대로 작성했는데도 에러가 발생했다면, 계획을 다시 점검하고 그에 맞게 수정해야 합니다. 계획이 틀어지면, 코드를 완성하더라도 원하는 결과를 얻지 못할 수 있습니다.
2. Float에 관한 이야기
Float와 Double의 구분
include <iostream>
int main(){
float fData{};
fData = 1.5;
cout << fData;
}
위 코드에서 fData는 float형 변수로 선언되었지만, 1.5는 기본적으로 double로 간주됩니다. 이로 인해, float 대신 double이 사용될 수 있습니다.
include <iostream>
int main(){
float fData{};
fData = 1.5f; // 대문자 F를 사용해도 무방하다
cout << fData;
}
이를 방지하기 위해, fData = 1.5f;와 같이 숫자 뒤에 f를 붙여 float형으로 명시적으로 지정할 수 있습니다.
'f'를 붙이지 않으면 손해만 있을 뿐, 얻는 이점은 없습니다. 따라서 'f'를 붙여 정확한 자료형을 지정하는 것이 좋습니다.
3. 나누기 관련 이야기
자료형 변환과 캐스팅
모든 프로그램에서 연산은 동일한 자료형끼리 수행되는 것이 원칙입니다. 만약 다른 자료형끼리 연산을 수행하면, 작은 자료형이 큰 자료형으로 자동 변환됩니다. 예를 들어, 정수와 실수를 연산할 경우 정수가 실수로 변환됩니다.
/* Dst = destination (목적지) - 받는쪽
Src = source destination (송신) - 보내주는쪽
결론 두개가 바뀌면 안됨 */
예시를 들어보자
include <iostream>
int main() {
float fData{};
int nDst{};
int nSrc{};
nDst = 10;
nSrc = 3;
fData = nDst / nSrc;
cout << fData;
}
위 코드에서는 fData가 float형이지만, nDst와 nSrc는 int형이므로 결과는 3이 됩니다. float형 결과를 원한다면, float로 캐스팅을 해야 합니다.
fData = (float)nDst / (float)nSrc;
이렇게 캐스팅을 하면 원하는 결과를 얻을 수 있습니다.
그러나 조심해야 할 부분이 있습니다:
fData = (float)(nDrs / nSrc);
위 코드는 nDst / nSrc가 int형으로 먼저 계산되기 때문에 결과는 float이 아니라 int형 값이 됩니다. 따라서, 전체 연산을 원하는 자료형으로 캐스팅해야 합니다.
결론: 서로 다른 자료형을 사용할 때는 원하는 결과에 맞게 적절히 캐스팅하여 계산해야 합니다.
추가 사항: 단축키
- Shift + F5: 프로그램이 비정상 종료될 때 강제 종료.
- 솔루션 다시 검사: 단축키가 먹히지 않을 경우, 솔루션 파일을 우클릭 후 다시 검사.
'C++' 카테고리의 다른 글
| [강의] 8월 20일 수업정리 (0) | 2024.08.20 |
|---|---|
| [강의] 8월 19일 수업정리 (0) | 2024.08.19 |
| [강의] 8월 14일 수업정리 (0) | 2024.08.14 |
| [강의] 8월 13일 수업정리 (0) | 2024.08.13 |
| [강의] 8월 12일 수업정리 (0) | 2024.08.12 |