ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ ๋ชจ์–‘

์ˆ˜ํ•™์—์„œ์˜ ํ•จ์ˆ˜์™€ ๊ฐ™์ด, inputย ,ย outputย ์ด ์žˆ๊ณ ,ย inputย ์ด ๋“ค์–ด๊ฐ”์„ ๋•Œ, ์–ด๋–ค ์ž‘์—…์„ ํ•œ ๋’ค,ย outputย ์„ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š”ย inputย ,ย outputย ์— ์•„๋ฌด ์ˆซ์ž๋‚˜ ๋„ฃ์–ด์ค˜๋„ ๋˜์ง€๋งŒ, ์ปดํ“จํ„ฐ๋Š” ์ด ์ˆซ์ž ์ž์ฒด๋„ ๋ช…์‹œ์ ์œผ๋กœ ์จ์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์–ด๋–คย inputย ์ด ๋“ค์–ด๊ฐ€๋Š”์ง€, ์˜ˆ์ƒ๋˜๋Š”ย outputย ์€ ์–ด๋–ค ๋…€์„์ธ์ง€ ๋ช…์‹œ์ ์œผ๋กœ ์จ์ค„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

Function in C++

int iSqrt(int p){		// #1
    return p * p;		// #2
}
  1. int pย :ย inputย ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ž๋ฃŒํ˜•์€ integer ์ด์–ด์•ผ ํ•œ๋‹ค.
    • int iSqrtย :ย outputย ์˜ ์ž๋ฃŒํ˜•์€ integer ์ด๋‹ค.
  2. ์–ด๋–ป๊ฒŒ ์ž‘์šฉํ•˜๋Š”์ง€ ์ ์–ด์ฃผ๋Š” ํ•จ์ˆ˜์˜ย bodyย ์ด๋‹ค.

Input, output paramater

์ˆ˜ํ•™์—์„œ์˜ ํ•จ์ˆ˜์™€ ๋‹ค๋ฅด๊ฒŒย inputย ,ย outputย ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ๋‹ค.

inputย ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ

#include <iostream>
 
int helloworld(void){
	cout << "hello world";
	return 0;
}
 
int main(){
	helloworld();
}
์ถœ๋ ฅ
// helloworld

outputย ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ

#include <iostream>
 
void helloworld(void){
	cout << "helloworld";
}
 
int main(){
	helloworld();
}
์ถœ๋ ฅ
// helloworld

voidย ์ž๋ฃŒํ˜•์€ window ์šด์˜์ฒด์ œ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

Main ํ•จ์ˆ˜ ์•ˆ์—์„œ ์‚ฌ์šฉ

์„ ์–ธ(Declare)ย ,ย ์ •์˜(Define)ย ,ย ํ˜ธ์ถœ(Calling)ย ์˜ ์„ธ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

์„ ์–ธ(Declare)

int iSqrt(int);

mainย ํ•จ์ˆ˜๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—, ๋จผ์ € ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ํ˜•๊ณผ, ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ž๋ฃŒํ˜•์ด ์จ์ง„ ํ•จ์ˆ˜์˜ ์›ํ˜•(prototype) ์„ ์ ์–ด์ค€๋‹ค. ๋ณ€์ˆ˜ ์ด๋ฆ„์€ ์จ์ค„ํ•„์š”์—†๋‹ค.

์ •์˜(Define)

int iSqrt(int p){
	return p * p;
}

mainย ํ•จ์ˆ˜ ๋ฐ‘์— ์–ด๋–ป๊ฒŒ ์ž‘์šฉํ•˜๋Š”์ง€ ํ•จ์ˆ˜์˜ ๋‚ด์šฉ์„ ์ ์–ด์ค€๋‹ค. ์ด๋•Œ๋Š”ย inputย ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„๊นŒ์ง€ ์ ์–ด์ค˜์•ผ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ˜ธ์ถœ(Calling)

y = iSqrt( x );

mainย ํ•จ์ˆ˜์—์„œ ๋ถˆ๋Ÿฌ์„œ ์‚ฌ์šฉํ•œ๋‹ค. ํ•จ์ˆ˜๋ฅผ ๋Œ๋ฆฌ๊ณ ๋‚œ ๋ฐ˜ํ™˜๊ฐ’์ด y์— ์ €์žฅ๋œ๋‹ค.

์ „์ฒด์ฝ”๋“œ ์˜ˆ์ œ

# include <iostream>
 
using namespace std;
 
int sum(int a, int b);					// Declare
 
int main(){
    int x, y;
    cout << "x ์ž…๋ ฅ" << endl;
    cin >> x;
    
    cout << "y ์ž…๋ ฅ" << endl;
    cin >> y;
    
    cout << sum(x, y) << endl;			// Calling
    
    return 0;
}
 
int sum(int a, int b){					// Define
    return a + b;
}

Default Arguments

ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ, ์•„๋ฌด ์ธ์ž๋„ ๋„ฃ์ง€ ์•Š์•˜๋‹ค๋ฉด, default๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„˜๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์„ ์–ธํ•  ๋•Œ, ์ธ์ž๊ฐ’๊นŒ์ง€ ๊ฐ™์ด ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค. ๋˜ํ•œ, input์ด ์ ๊ฒŒ ๋“ค์–ด์™”์„ ๊ฒฝ์šฐ, ์•ž ์ธ์ž๋งŒ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์„ค์ •๋œ๋‹ค.

# include <iostream>
 
using namespace std;
 
int sum(int a, int b);					// Defalut Arguments
 
int main(){
    int x, y;
    cout << "x ์ž…๋ ฅ" << endl;				// 8
    cin >> x;
    
    cout << "y ์ž…๋ ฅ" << endl;				// 5
    cin >> y;
    
    cout << sum(x, y) << endl;			// 13
    cout << sum(x) << endl;				// 9
    cout << sum() << endl;				// 7
    
    return 0;
}
 
int sum(int a, int b){					
    return a + b;
}

ํ•จ์ˆ˜์˜ ๋™์ž‘๊ณผ์ •

#include <iostream>
#include <cmath>		// cmath ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํฌํ•จ
 
using namespace std;
 
int main(){
    double value;
    
    // ๋ณ€์ˆ˜ ํ• ๋‹น
    value = 16;
    
    // ๋ฃจํŠธ ๊ณ„์‚ฐ
    double root = sqrt(value);
    
    // ๋‹ค๋ฅธ ๊ฐ’ ๊ณ„์‚ฐ ํ›„ ํ• ๋‹น
    root = sqrt(100);
}

cmath ๋Š” ์ˆ˜ํ•™ ํ•จ์ˆ˜๋“ค์„ ๋ชจ์•„๋‘” ํ‘œ์ค€ c++ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ฃผ ๋ชฉ์ ์„ ๋‘๋Š” ํ•จ์ˆ˜๋Š”ย mainย ํ•จ์ˆ˜์ด๋‹ค. ์ด๋•Œ, ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ๋•Œ, ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ๊ทธ๋ฆผ์œผ๋กœ ์‚ดํŽด๋ณด์ž.

mainย ํ•จ์ˆ˜๊ฐ€ ๋™์ž‘ํ•˜๋‹ค๊ฐ€, ์ค‘๊ฐ„์—ย sqrtย ๋ฅผ ๋งŒ๋‚˜๋ฉด

๋งŒ๋“ค์–ด๋‘” ๊ทธ ํ•จ์ˆ˜๋กœ ๊ฐ”๋‹ค๊ฐ€, ๋ฐ˜ํ™˜๊ฐ’์„ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ค๊ณ ,

๋˜ ๋งŒ๋‚˜๋ฉด ๋‹ค์‹œ ๊ฐ”๋‹ค๊ฐ€ ๋ฐ˜ํ™˜๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

cmath Library

#include <iostream>
  • ์ข…๋ฅ˜