Skip to content

Latest commit

 

History

History
214 lines (152 loc) · 5.12 KB

Labs.md

File metadata and controls

214 lines (152 loc) · 5.12 KB

프로그램 실습(Labs)

  1. 다음은 main 함수와 add_10 함수로 구성된 프로그램 코드이다. add_10 함수는 입력 매개변수로 하나의 정수를 입력받고 입력된 값에 10을 더한 결과를 반환하는 함수이다. add_10 함수를 정의하라.
#include <iostream>
using namespace std;

/**
 * add_10: 입력하는 정수 값에 10을 더해서 반환하는 함수
 * @param {int} in [정수 매개변수]
 * @return {int}
 */
int add_10(int in) {               // 함수 정의

}

int main(int argc, char const *argv[])
{
	int data;

	cout << "정수를 입력하시요: ";
	cin >> data;

	cout <<	add_10(data) << endl;  // 함수 호출 

	return 0;
}
  1. 다음 프로그램 코드가 컴파일 에러 없이 실행파일을 생성할 수 있도록 (1), (2), (3), (4) 의 순서와 위치를 추론하고 실행 결과를 확인하라.
#include <iostream>
using namespace std;

cout << min_value(3, 5) << endl;   // (1) 함수 호출 

int main(int argc, char const *argv[]) // (2) main 함수 정의
{

	return 0;
}

int min_value(int x, int y){ return x > y ? y : x;} // (3) min_value 함수 정의

int min_value(int, int);  // (4) min_value 함수 선언
  1. 다음은 main 함수와 sum 함수로 구성된 프로그램 코드이다. main 함수에서 sum 함수를 호출하고 결과를 반환받아 화면에 출력한다. 프로그램 결과를 추론하고 함수 sum을 정의하여야 할 영역에 sum 함수를 정의한 후 결과를 확인하고 비교하라.
#include <iostream>
using namespace std;

// sum: 입력 매개변수로 전달받은 두 정수를 더하고 결과를 반환하는 함수
int sum(int a, int b);   // 함수 선언 (function declaration)


int main(int argc, char const *argv[])
{
	int x = 10, y = 30;

	int result = sum(x, y);  // 함수 호출 (function call)

	cout << x << " + " << y << " = " << result << endl;

	return 0;
}

// 함수 sum을 정의하여야 하는 영역
  1. 다음 프로그램 코드를 컴파일하여 실행 파일을 만든 후 명령창(command) 에서 다음과 같이 3 형식으로 실행한 후 결과를 확인하고 결과로 부터 프로그램 코드의 argc 의 의미를 추론하라.
$Lab4 first
$Lab4 first second
$Lab4 first second third
#include <iostream>
using namespace std;

int main(int argc, char const *argv[])
{
	cout << "# of input parameters: " << argc << endl;
	return 0;
}
  1. 다음 프로그램 코드는 4번 프로그램 코드에서 argv를 통해 전달 받은 값을 출력하려는 것이다. 프로그램을 실행하고 argv[]argc와의 관계를 추론하라. 프로그램의 실행은 4번과 같이 명령창에서 명령어를 입력하여 확인하라.
#include <iostream>
using namespace std;

int main(int argc, char const *argv[])
{
	cout << "# of input parameters: " << argc << endl;
	for(int i = 0; i < argc; i++)
		cout << argv[i] << endl;
	return 0;
}
  1. 다음 프로그램 코드를 컴파일하여 발생하는 에러를 해결하라. 컴파일에서 발생하는 예러의 이유를 추론하라.
#include <iostream>
using namespace std;

int main(int argc, char const *argv[])
{
	float x, y;

	cout << "실수 두개를 입력하시오: " << endl;
	cin >> x >> y;
	
	cout << mul(x, y) << endl;
	return 0;
}

void mul(float a, float b) {
	return a * b;
}
  1. 다음 프로그램 코드를 실행하였을 때 화면에 출력: 11 이 출력되도록 increase 함수를 포함하여 (가장 적인 코드를 추가하여)수정하라. 수정한 근거도 함께 기술하라.
#include <iostream>
using namespace std;


void increase(int x){
	x++;
}

int main(int argc, char const *argv[])
{
	int x = 10;

	increase(x);

	cout << "출력: " <<  x << endl;

	return 0;
}
  1. 다음 프로그램 코드를 실행하였을 때 화면에 출력될 각 결과를 추론하고 추론 근거를 농하고 실제 프로그램 실행 결과와 비교하라.
#include <iostream>
using namespace std;

void swap1(int x, int y){
	cout << "(swap1 연산 전 출력) x:" << x <<", y: " << y << endl;
	int tmp = x;
	x = y;
	y = tmp;
	cout << "(swap1 연산 후 출력) x:" << x <<", y: " << y << endl;
}

void swap2(int &x, int &y){
	cout << "(swap2 연산 전 출력) x:" << x <<", y: " << y << endl;
	int tmp = x;
	x = y;
	y = tmp;
	cout << "(swap2 연산 후 출력) x:" << x <<", y: " << y << endl;
}

int main(int argc, char const *argv[])
{
	int x = 10, y = 20;

	cout << "(출력 1) x: "  << x << ", y: " << y << endl;
	swap1(x, y);
	cout << "(출력 2) x: "  << x << ", y: " << y << endl;
	swap2(x, y);
	cout << "(출력 3) x: "  << x << ", y: " << y << endl;

	return 0;
}
  1. 다음 프로그램 코드 실행 시 각 출력의 결과를 추론하고 추론 곤거를 논하고 실행 결과의 비교하라.
#include <iostream>
using namespace std;

double div_eq(double x = 10, double y = 20) {
	return x / y; 
}

int main(int argc, char const *argv[])
{
	cout << "출력(1): " << div_eq() << endl;
	cout << "출력(2): " << div_eq(5) << endl;
	cout << "출력(3): " << div_eq(50, 10) << endl;
	return 0;
}