1. 다음 코드가 오류가 나는 이유 ?
- main() 함수는 하나만 사용 가능하기 때문에
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
}
int main()
{
std::cout << "Hello World!\n";
}
해당 코드를 바르게 고치는 방법
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
}
void main1()
{
std::cout << "Hello World!\n";
}
2. 매개변수, 인자(argument), 리턴값
3. 함수의 입력과 출력
- 전광판, 뻥튀기, 덧셈기, 자판기
- 입력
- 매개변수(parameter), 인자
- 출력
- 반환값(return value), 리턴값
- 함수가 돌려주는 결과 값
- void
- 리턴값이 없으면 리턴형 쓰는 자리에 void
- 매개변수가 없으면 매개변수 쓰는 자리에 void
- 이 경우는 생략 가능
4. 1부터 6까지 랜덤으로 나오는 c++ 소스
#include <iostream>
#include <cstdlib> // 난수 생성을 위한 헤더 파일
#include <ctime> // 시간을 기반으로 난수를 초기화하기 위한 헤더 파일
int main() {
// 시간을 기반으로 난수 생성기 초기화
std::srand(static_cast<unsigned int>(std::time(nullptr)));
// 1부터 6까지의 난수 생성 및 출력
int randomNumber = std::rand() % 6 + 1;
std::cout << "랜덤 숫자: " << randomNumber << std::endl;
return 0;
}
5. 함수 정의, 호출, 선언
- 함수 정의
- 함수 만들기
- 이름, 매개변수, 리턴형, 기능
- 함수 호출
- 함수 사용하기
- 이름, 매개변수
- 함수 선언
- 함수의 사용법
- 이름, 매개변수, 리턴형
- 컴파일러에게 함수에 대한 정보를 미리 줌
6. 함수 정의, 선언, 호출하는 방법
#include <iostream>
void display();
void display1(); // 함수 선언
int main()
{
std::cout << "Hello World!\n";
display(); // 호출
display1(); // 호출
}
void display1() //정의
{
std::cout << "Lee\n";
}
void display() //정의
{
std::cout << "Lee\n";
}
7. return문
- 결과 값을 호출한 함수로 반환
- return문을 만나면 함수의 나머지 부분에 상관없이 함수의 실행을 종료하고 호출한 함수로 넘어감
- return(수식이나 값);
- return 다음에 괄호는 생략해도 됨
- return 1;
- return x;
- return (x*2);
- return (x+y);
8. 두배의 결과를 리턴하는 함수
#include <iostream>
void display(); // 함수 선언
void doubleInt(int x);
int doubleIntReturn(int x);
int main()
{
int x;
std::cout << "Hello World!\n";
display(); // 호출
doubleInt(3);
std::cout << doubleIntReturn(2);
x = doubleIntReturn(4);
std::cout << x;
}
int doubleIntReturn(int x)
{
return x * 2;
}
void doubleInt(int x)
{
std::cout << x * 2;
}
void display() //정의
{
std::cout << "Lee\n";
}
9. 두 수를 더해서 리턴하는 함수
#include <iostream>
int add(int x, int y);
int main()
{
std::cout << add(3, 6);
}
int add(int x, int y)
{
return (x + y);
}
10. 문자, 문자열 리턴 자판기 함수
#include <iostream>
char vending(int x);
const char* vending1(int x);
std::string vending2(int x);
int main()
{
std::cout << vending(1);
std::cout << vending1(1);
std::cout << vending2(1);
}
std::string vending2(int x)
{
if (x == 1) return "커피";
else return "유자차";
}
const char* vending1(int x)
{
if (x == 1) return "커피";
else return "유자차";
}
char vending(int x)
{
if (x == 1) return 'A';
else return 'B';
}
11. 나누기 함수
#include <iostream>
double divide(int x, int y);
int main()
{
std::cout << divide(10, 4);
}
double divide(int x, int y)
{
return (double)x / y;
}
12. 구조체 변수를 활용한 함수
#include <iostream>
struct Man {
int age;
double weight;
std::string name;
};
int main()
{
Man han = {10, 20.5, "cpp"};
Man kim;
std::cout << han.name << "은(는) " << han.age << "살이고, 몸무게는 " << han.weight << "kg입니다.\n";
han.age = 1; han.weight = 3.5; han.name = "SmileHan";
kim = han;
std::cout << kim.name << "은(는) " << kim.age << "살이고, 몸무게는 " << kim.weight << "kg입니다.\n";
std::cout << han.name << "은(는) " << han.age << "살이고, 몸무게는 " << han.weight << "kg입니다.\n";
}
13. C struct vs C++ class
14. 구조체 : C vs C++ (C언어와 C++ 언어의 가장 다른 점)
- C
- 변수의 모임
- C++
- 변수와 함수의 모임
- 그럼 클래스와 같나요?
- 아니요. 한가지가 다릅니다.
- 접근제어 속성을 생략하면 struct은 public, class는 private이 기본입니다.
15. 구조체를 활용한 간단한 게임
#include <iostream>
#include <string>
// 플레이어 정보를 담는 구조체
struct Player {
std::string name; // 플레이어 이름
int level; // 플레이어 레벨
int health; // 플레이어 체력
};
int main() {
Player player1; // 플레이어 객체 생성
// 플레이어 정보 입력 받기
std::cout << "플레이어 이름: ";
std::getline(std::cin, player1.name);
std::cout << "플레이어 레벨: ";
std::cin >> player1.level;
std::cout << "플레이어 체력: ";
std::cin >> player1.health;
// 입력 받은 정보 출력하기
std::cout << "\n입력된 정보:\n";
std::cout << "플레이어 이름: " << player1.name << "\n";
std::cout << "플레이어 레벨: " << player1.level << "\n";
std::cout << "플레이어 체력: " << player1.health << "\n";
return 0;
}
참고자료 : 한성현 교수님 수업자료
'C++ 프로그래밍 (1학년 2학기)' 카테고리의 다른 글
231102 C++프로그래밍 9주차 (0) | 2023.11.02 |
---|---|
231019 C++ 프로그래밍 7주차 (1) | 2023.10.19 |
231012 C++ 프로그래밍 5주차 (0) | 2023.10.12 |
230921 C++ 프로그래밍 3주차 (0) | 2023.09.21 |
230914 C++ 프로그래밍 2주차 (0) | 2023.09.14 |