[2.1]
/*
int형 변수 2개를 선언하고 cin을 사용하여 값을 입력받도록 한다.
그리고 cout을 사용하여 두 값에 대한 사칙연산(+, -, *, /) 결과를 출력해 보도록 한다.
어떤 값을 출력하기 위해서는 cout과 출력할 변수를 기술해 주면 된다.
그런데 cout의 대상은 변수뿐만이 아니라 상수, 수식, 함수(반환값) 등 어떤 값이 동반되는 경우라면 어느 것이든 될 수 있다.
*/
#include <iostream>
using namespace std;
int main(void)
{
int num1, num2;
cout << "숫자 두개 입력:";
cin >> num1 >> num2;
cout << "합:" << num1 + num2 << endl;
cout << "차:" << num1 - num2 << endl;
cout << "곱:" << num1*num2 << endl;
cout << "나눗셈:" << num1 / num2 << endl;
return 0;
}
[2.2]
/*
5행 5열의 원소를 가지는 char형 배열을 선언하고 실행 결과와 같이 마름모 모양으로 '*' 문자를 채워보도록 한다.
그리고 cout을 사용하여 배열 원소의 값을 출력하되 실행 결과와 같이 출력되도록 한다.
*/
#include <iostream>
using namespace std;
int main(void)
{
char arr[5][5] =
{
{' ', ' ', '*', ' ', ' '},
{ ' ', '*', '*', '*', ' ' },
{ '*', '*', '*', '*', '*' },
{ ' ', '*', '*', '*', ' ' },
{ ' ', ' ', '*', ' ', ' ' },
};
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
cout << arr[i][j];
}
cout << endl;
}
return 0;
}
[2.3]
<ns.h>
/*
"ns.h" 파일을 만들고 MyNS라는 네임스페이스를 만들어 본다.
MyNS 네임스페이스에는 2개의 int 값 중 최대값을 반환하는 MyMax라는 함수와 최소값을 반환하는 MyMin이라는 함수를 추가한다.
단, 함수 프로토타입만 추가해야한다.
그리고ns.cpp 파일에는 이 두함수의 정의 부분을 추가하도록 한다.
main.cpp의 main 함수에서는 MyNS의 MyMax, MyMin 함수를 사용해보도록 한다
*/
#ifndef NS_H
#define NS_H
#include <iostream>
using namespace std;
namespace MyNS
{
int MyMax(int, int);
int MyMin(int, int);
}
#endif
<ns.cpp>
#include "ns.h"
int MyNS::MyMax(int num1, int num2)
{
if (num1 > num2)
return num1;
else if (num1 < num2)
return num2;
else
cout << "두 수는 동일하다" << endl;
}
int MyNS::MyMin(int num1, int num2)
{
if (num1 > num2)
return num2;
else if (num1 < num2)
return num1;
else
cout << "두 수는 동일하다" << endl;
}
<nsMain.cpp>
#include "ns.h"
int main(void)
{
int num1, num2;
cout << "두 수 입력:";
cin >> num1 >> num2;
cout << "최댓값:" << MyNS::MyMax(num1, num2) << endl;
cout << "최솟값:" << MyNS::MyMin(num1, num2) << endl;
return 0;
}
[2.4]
/*
직사각형과 원의 면적을 계산하는 GetArea라는 함수를 작성하고자 한다.
사용자로부터 계산하고자 하는 모양을 입력받고, 직사각형일 경우 가로와 세로값을 입력받고,
원일 경우 반지름을 입력받는다.
그리고 GetArea 함수를 통해 면적을 계산하여 화면에 출력한다.
*/
#include <iostream>
using namespace std;
#define PI 3.14
int GetArea(int col, int row)
{
return col*row;
}
double GetArea(int radius)
{
return radius*radius*PI;
}
int main(void)
{
int sel;
cout << "[1].직사각형 넓이\t[2].원의 넓이: ";
cin >> sel;
switch (sel)
{
case 1:
int col, row;
cout << "가로 세로 입력:";
cin >> row >> col;
cout << "직사각형의 넓이:" << GetArea(col, row) << endl;
break;
case 2:
int radius;
cout << "반지름 입력:";
cin >> radius;
cout << "원의 넓이:" << GetArea(radius) << endl;
break;
}
return 0;
}
[2.5]
/*
5개 이하의 int형 값을 매개 변수로 전달받아 합을 반환하는 Sum 함수를 구현해 본다.
이 때 Sum 함수는 단 하나만 구현해야 한다.
디폴트 매개변수의 복습을 위한 간단한 문제이다
*/
#include <iostream>
using namespace std;
int Sum(int num1 = 1, int num2 = 2, int num3 = 3, int num4 = 4, int num5 = 5)
{
return num1 + num2 + num3 + num4 + num5;
}
int main(void)
{
cout << "Sum():" << Sum() << endl;
cout << "Sum(5):" << Sum(5) << endl;
cout << "Sum(4, 5):" << Sum(4, 5) << endl;
cout << "Sum(3, 4, 5):" << Sum(3, 4, 5) << endl;
cout << "Sum(2, 3, 4, 5):" << Sum(2, 3, 4, 5) << endl;
cout << "Sum(1, 2, 3, 4, 5):" << Sum(1, 2, 3, 4, 5) << endl;
return 0;
}
[2.6]
/*
다음과 같은 main 함수가 동작할 수 있도록 GetArray 함수를 작성한다
*/
#include <iostream>
using namespace std;
int *GetArray(int num)
{
int *p = new int[num]; //동적할당
for (int i = 0; i < num; i++)
p[i] = i;
return p;
}
int main(void)
{
int i;
int *pAry;
pAry = GetArray(5);
for (i = 0; i < 5; i++)
cout << pAry[i] << " ";
cout << endl;
delete[]pAry;
return 0;
}
[2.7]
/*
다음과 같은 구조체가 있다.
이 구조체 변수 5개를 원소로 갖는 배열을 포인터 변수를 사용하여 동적으로 생성하고 각 원소의 x, y값을 임의의 값으로 채워 본다
struct Point
{
int x, y;
};
이 연습문제에서는 각 원소에 대해 배열 방식이 아닌 포인터 방식으로 접근해 본다.
*/
#include <iostream>
using namespace std;
struct Point
{
int x, y;
};
int main(void)
{
struct Point *pAry = new struct Point[5];
for (int i = 0; i < 5; i++)
{
*(pAry + i) = { i, i };
}
for (int i = 0; i < 5; i++)
{
cout << "[" << pAry[i].x << ", "<< pAry[i].y << "]" << endl;
}
return 0;
}
[2.8]
/*
다음 프로그램의 출력결과는 무엇인가?
bool 타입에 대한 이해를 확인하는 문제이다.
bVar1과 bVar2의 값이 무엇인지 생각해 보고 직접 실행하여 확인해본다
*/
#include <iostream>
using namespace std;
typedef int BOOL;
int main(void)
{
BOOL bVar1;
bool bVar2;
bVar1 = (1 < 2) + (2 < 3);
bVar2 = (1 < 2) + (2 < 3);
cout << "bVar1:" << bVar1 << endl;
cout << "bVar2:" << bVar2 << endl; //bool이므로 1 or 0만 출력가능
}
[2.9]
/*
1부터 100까지 더하는 프로그램을 작성한다.
for문을 사용하고 index용 변수는 for 문으ㅢ 초기화 구문 내에서 선언하여 사용하도록 한다.
매우 간단한 문제이다. 하지만 이 문제로부터 C++의 경우 어느 위치에서든지 변수 선언이 올 수 있으며
특히 for 문의 index로 다음과 같은 구문을 매우 흔하게 사용함을 알도록 한다
*/
#include <iostream>
using namespace std;
int main(void)
{
int sum = 0;
for (int i = 0; i < 100; i++)
sum += (i + 1);
cout << "합계:" << sum << endl;
return 0;
}
개발 환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
[참고] 기초를 탄탄히 세워주는 C++ 프로그래밍 입문 황준하 저
'C++ > 기초를 탄탄히 세워주는 C++ 프로그래밍 입문(황준하 저)' 카테고리의 다른 글
기초를 탄탄히 세워주는 C++ 프로그래밍 입문 5장 연습문제 (0) | 2017.06.29 |
---|---|
기초를 탄탄히 세워주는 C++ 프로그래밍 입문 4장 연습문제 (0) | 2017.06.27 |
기초를 탄탄히 세워주는 C++ 프로그래밍 입문 3장 연습문제 (0) | 2017.06.21 |
기초를 탄탄히 세워주는 C++ 프로그래밍 입문 1장 연습문제 (6) | 2017.06.20 |
또 C++ 입문책을 보는 이유 (0) | 2017.06.19 |