C++프로그래밍
5주차 과제
과 목 명 : C++프로그래밍
담당교수 : 한성현 교수님
학 과 : 컴퓨터소프트웨어학과
학 년 : 1학년
학 번 : 2024001684
이 름 : 박시현
제 출 일 : 2024년 9월 30일
함수명에 대문자를 사용했다면 이후에 사용할 때도 대,소문자를 구분하여 사용해야한다.
---------------------------함수 만들기 1---------------------------
#include <stdio.h>
void display() {
printf("안녕!");
}
int main() {
display();
return 0;
}
--------------------------------------------------------------------------
---------------------------함수 만들기 2---------------------------
#include <stdio.h>
void dn(int x)
{
printf("%d",x*2);
}
int main()
{
dn(7);
return 0;
}
--------------------------------------------------------------------------
---------------------------함수 만들기 3---------------------------
#include <stdio.h>
int dn(int x)
{
return x*2;
}
int main()
{
dn(7);
return 0;
}
--------------------------------------------------------------------------
출력이 아닌 return한것이기에 출력이 되지 않는다!
---------------------------함수 만들기 4---------------------------
#include <stdio.h>
int add(int x, int y)
{
return x + y ;
}
int main()
{
int x;
x=add(1, 5);
printf("%d", x);
return 0;
}
--------------------------------------------------------------------------
1~3과는 달리 두 수를 넣어서 실행한다
---------------------------함수 만들기 5---------------------------
#include <stdio.h>
char v(int x)
{
if (x == 1) return 'A';
else return 'B';
}
int main()
{
char x;
x= v(1);
printf("%c\n", x);
return 0;
}
--------------------------------------------------------------------------
---------------------------함수 만들기 6---------------------------
#include <stdio.h>
const char* v(int x)
{
if (x == 1) return "커피";
else return "유자차";
}
int main()
{
printf("%s\n", v(1));
return 0;
}
--------------------------------------------------------------------------
---------------------------함수 만들기 1-1---------------------------
#include <stdio.h>
// 함수 정의
void display()
{
printf("안녕");
}
int main()
{
// 함수 호출
display();
return 0;
}
--------------------------------------------------------------------------
함수 선언을 사용하지 않은 코드이다
---------------------------함수 만들기 1-2---------------------------
#include <stdio.h>
// 함수 선언
void display();
int main()
{
// 함수 호출
display();
return 0;
}
// 함수 정의
void display()
{
printf("안녕");
}
--------------------------------------------------------------------------
---------------------------함수 만들기 2---------------------------
#include <stdio.h>
// 함수 선언
void print_dn(int x);
int main()
{
// 함수 호출
print_dn(7);
return 0;
}
// 함수 정의
void print_dn(int x)
{
printf("%d", x * 2);
}
--------------------------------------------------------------------------
---------------------------함수 만들기 3-1---------------------------
#include <stdio.h>
// 함수 정의
int dn(int x)
{
return x * 2;
}
int main()
{
int x;
// 함수 호출
x = dn(7);
printf("%d\n", x);
// 함수 호출
printf("%d\n", dn(7));
return 0;
}
----------------------------------------------------------------------------
---------------------------함수 만들기 3-2---------------------------
#include <iostream>
using namespace std;
// 함수 정의
int dn(int x)
{
return x * 2;
}
int main()
{
int x;
// 함수 호출
x = dn(3);
cout << x << endl;
// 함수 호출
cout << dn(3) << endl;
return 0;
}
----------------------------------------------------------------------------
---------------------------함수 만들기 4-1---------------------------
#include <stdio.h>
// 함수 정의
int add(int x, int y)
{
return x + y;
}
int main()
{
int x;
// 함수 호출
x = add(2, 3);
// 결과 출력
printf("%d", x);
return 0;
}
----------------------------------------------------------------------------
---------------------------함수 만들기 4-2---------------------------
#include <iostream>
using namespace std;
// 함수 정의
int add(int x, int y)
{
return x + y;
}
int main()
{
int x;
// 함수 호출
x = add(2, 3);
// 결과 출력
cout << x << endl;
return 0;
}
----------------------------------------------------------------------------
---------------------------함수 만들기 5-1---------------------------
#include <stdio.h>
// 함수 정의
char v(int x)
{
if (x == 1) return 'A';
else return 'B';
}
int main()
{
char x;
//함수 호출
x = v(1);
//결과 출력
printf("%c\n", x);
return 0;
}
----------------------------------------------------------------------------
---------------------------함수 만들기 5-2---------------------------
#include <iostream>
using namespace std;
//함수 정의
char v(int x)
{
if (x == 1) return 'A';
else return 'B';
}
int main()
{
char x;
//함수 호출
x = v(1);
//결과 출력
cout << x << endl;
return 0;
}
----------------------------------------------------------------------------
---------------------------함수 만들기 6-1---------------------------
#include <stdio.h>
//함수 정의
const char* v(int x)
{
if (x == 1) return "커피";
else return "유자차";
}
int main()
{
//함수 호출
printf("%s\n", v(1));
return 0;
}
----------------------------------------------------------------------------
---------------------------함수 만들기 6-2---------------------------
#include <iostream>
using namespace std;
// 함수 정의
const char* v(int x)
{
if (x == 1) return "커피";
else return "유자차";
}
int main()
{
//함수 호출
cout << v(1) << endl;
return 0;
}
----------------------------------------------------------------------------
---------------------------스택 오버플로우---------------------------
#include <stdio.h>
//함수 선언
int s(int n);
int main(void)
{
int in, out;
for (in = 1; in <= 50000; in++) {
out = s(in); //함수 호출
printf("in=%d, out=%d\n", in, out); //결과 출력
}
return 0;
}
//함수 정의
int s(int n)
{
if (n <= 1) return 1;
else return n + s(n - 1);
}
----------------------------------------------------------------------------
값을 형식매개변수로 전달할 경우엔 value
주소를 형식매개변수로 전달할 경우엔 reference
---------------------------call by value 예---------------------------
#include <stdio.h>
int sum(int x, int y);
int main(void)
{
int a = 2, b = 5, c=0;
printf("sum()호출 전 a=%d b=%d c=%d\n", a, b, c);
c = sum(a, b);
printf("sum()호출 후 a=%d b=%d c=%d\n", a, b, c);
return 0;
}
int sum(int a, int b)
{
a = a + 2;
b = b + 5;
printf("sum()함수 내 a=%d b=%d a+b=%d\n", a, b, a + b);
return(a + b);
}
----------------------------------------------------------------------------
---------------------------call by reference 예---------------------------
#include <stdio.h>
int sum(int *pa, int *pb);
int main(void)
{
int a = 2, b = 5, c=0;
printf("sum()호출 전 a=%d b=%d c=%d\n", a, b, c);
c = sum(&a, &b);
printf("sum()호출 후 a=%d b=%d c=%d\n", a, b, c);
return 0;
}
int sum(int *pa, int *pb)
{
*pa = *pa + 2;
*pb = *pb + 5;
return(*pa + *pb);
}
---------------------------------------------------------------------------------
구조적 프로그래밍을 사용한다면 프로그램의 가독성이 높아진다!
---------------------------반복되는 부분은 함수로 구현---------------------------
#include <stdio.h>
void add(int x, int y);
int main(void)
{
int n1 = 1, n2 = 2, n3 = 3;
int n4 = 4, n5 = 5, n6 = 6;
add(n1, n2);
add(n3, n4);
add(n5, n6);
return 0;
}
void add(int x, int y)
{
printf("두 수 %d과 %d를 더한 결과는 %d\n", x, y, x + y);
}
---------------------------------------------------------------------------------------------
가장 높은 주소는 stack(지역변수)이고
가장 낮은 주소는 text(명령코드)이다
변수 k와 다른 지역 변수 k는 별개의 변수이다.
따라서 변수 k의 값이 바뀌어도 변수 k에는 변화를 주지 않는다!
auto는 가장 기본적인 기억 클래스이며 아무런 기억 클래스를 사용하지 않았을 때 자동으로 auto를 사용한다고 인식한다
---------------------------auto변수와 static변수1---------------------------
#include <stdio.h>
void sub(void);
int main(void)
{
sub();
sub();
sub();
return 0;
}
void sub(void)
{
int x=10;
static int y=10;
printf("x=%d, y=%d\n",x,y);
x++;
y++;
}
-------------------------------------------------------------------------------------
---------------------------auto변수와 static변수2---------------------------
#include <iostream>
using namespace std;
void sub(void);
int main(void)
{
sub();
sub();
sub();
return 0;
}
void sub(void)
{
int x = 10;
static int y = 10;
cout << "x=" << x << ", y=" << y << endl;
x++;
y++;
}
-------------------------------------------------------------------------------------
구조체를 이용해 자신만의 자료형을 만드는것이 가능!!
---------------------------구조체 C++---------------------------
#include <iostream>
#include <iomanip>
using namespace std;
struct Man {
char name[10];
int age;
double weight;
};
int main(void)
{
Man gildong, sunhee, comso[160];
gildong.age = 20;
sunhee.weight = 52.5;
comso[0].age = 25;
cout << gildong.age << " " << fixed << setprecision(6) << sunhee.weight << " " << comso[0].age << endl;
return 0;
}
----------------------------------------------------------------------