[내일배움캠프 Day6] C++ 프로그래밍 기초

2024. 12. 23. 21:40·내일배움캠프/TIL

 

Hello, World 출력

#include <iostream> // 외부에 있는 파일을 가져오겠다는 의미
using namespace std;

// int는 함수 종료 시 어떤 타입을 반환할 건지 알려주는 부분
int main() { // 프로그램의 시작점
   cout <<"Hello, World" << endl; // 화면에 텍스트를 출력하는 코드
   return 0; // 정수 0을 반환하고 프로그램이 정상 종료
 }

 

변수

입력한 값을 담을 공간이 필요해 프로그래밍 언어는 변수라는 것을 제공합니다.

타입  표현하는 데이터 설명
int 정수(양수,0,음수) 소수점 X
float,double 부동 소수 소수점 O, 둘은 정밀도 차이
char 단일 문자 작은 따옴표로 한 문자 표현
bool 논리값 true 와 false
string 문자열 쌍 따옴표로 문자열 표현, <string> 헤더 필요
unsigned 양수 음수 입력 불가, 양수 범위가 2배

 

계산기 구현

#include <iostream>

using namespace std;

int main()
{
    // 1. 입력 받은 숫자를 저장 할 2개의 변수를 선언
    int firstNum = 0;
    int secondNum = 0;
    
    cout << "첫 번째 수 입력 : ";
    cin >> firstNum;
    
    cout << "두 번째 수 입력 : ";
    cin >> secondNum;
    
    //더한 결과값 출력
    cout << "더한 결과는 : " << firstNum + secondNum << endl;

    return 0;
}

 

데이터를 여러 개 담는 배열

학생 10명의 성적을 관리하는 프로그램을 만들어야 하는 경우, 이 10개 변수는 모두 관련된 내용으로 하나로 관리하는 것이 더 효율적일 것 같습니다. 이때 사용하는 게 배열입니다.

 

배열의 선언

#include <iostream>
using namespace std;

int main() {
    // 1. 정수형 배열 선언
    int numbers[5]; // 정수를 5개 저장할 수 있는 배열

    // 2. 선언과 동시에 초기화
    int initializedNumbers[3] = {1, 2, 3}; // 정수 배열을 선언하고 값 초기화

    // 3. 크기를 자동으로 설정
    int autoSizeNumbers[] = {10, 20, 30, 40}; // 배열의 크기를 자동으로 결정 (4칸)

    // 4. 실수형 배열 선언
    double decimals[4]; // 실수를 4개 저장할 수 있는 배열

    // 5. 문자형 배열 선언 -- 끝은 무조건 '\0' 
    char letters[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; // 문자열을 저장하기 위한 문자 배열

    // 6. 문자열 배열 (C 스타일)
    char word[] = "Hello"; // 문자열을 저장하는 배열, '\0' 자동 추가

    // 7. 논리형 배열
    bool flags[3] = {true, false, true}; // 참/거짓을 저장하는 배열

    // 8. 다차원 배열 (2차원 배열)
    int matrix[2][3] = { {1, 2, 3}, {4, 5, 6} }; // 2행 3열의 배열 선언

    // 9. 크기가 큰 배열
    long long largeArray[1000]; // 1000개의 데이터를 저장할 수 있는 배열

    // 10. 배열을 모두 0으로 초기화
    int zeroArray[5] = {0}; // 첫 번째 값만 0으로 초기화하면 나머지도 0으로 초기화

    return 0;
}

 

 

반복작업을 줄여주는 함수

동일한 코드를 계속 작성 하는 건 비효율적이므로 우리가 하는 작업을 정의해서 이름을 붙이고, 이 이름을 부를 때마다 그 작업을 해주는 것을 “함수”라고 합니다.

  • 인자 : 해당 함수는 정수형 변수 2개를 외부값으로 부터 받는 함수입니다.
  • 동작 : 인자로 받은 두 수를 더해서 반환합니다.
  • 반환 : 함수의 반환 타입은 정수형입니다.
  • 이름 : 함수의 이름은 add입니다.

 

값 전달(일반 변수)

일반적으로 변수의 복사해서 함수로 전달하므로, 함수 내부에서 값을 변경해도 원본은 영향을 받지 않습니다.

 

값 전달(배열)

배열의 경우 내부적으로 메모리 상 배열의 위치가 전달됩니다. 따라서 함수 내에서 값 수정 시 실제 값이 수정됩니다.

 

값 전달(참조자 사용)

배열 인자에 참조자를 사용하면 함수에서 인자의 값 변경 시 실제 변수의 값이 변경됩니다.

 

관련 내용을 정리한 적이 있습니다.

https://dev0404.tistory.com/6

 

[C++] Pass by value와 Pass by reference

호출되는 함수에 매개변수가 존재한다면, 함수 호출 때의 값(argument)이 호출되는 함수의 매개변수(parameter)로 전달됩니다. 자료 전달은 값으로 전달(pass-by-value), 참조로 전달(pass-by-reference), 포인

dev0404.tistory.com

 

판단을 해주는 조건문

~~를 하는 경우엔? ~~를 한다면 이렇게 생각해야 하는 부분들이 많습니다. 이런 상황을 구현하기 위해 조건문을 제공합니다.

1️⃣단순 if문

 

2️⃣if / else 문. if가 아닌 경우는 모두 else에 해당된다고 보시면 됩니다.

 

3️⃣if / else if / else문 연달아서 else-if가 작성되는 경우 기존의 영역은 포함하지 않음을 알 수 있습니다.

 

계산기 추가 기능 구현

#include <iostream>
using namespace std;

int main() {
    char op;
    double num1, num2;

    cout << "Enter first number: ";
    cin >> num1;
    cout << "Enter an operator (+, -, *, /): ";
    cin >> op;
    cout << "Enter second number: ";
    cin >> num2;

    if (op == '+') {
        cout << "Result: " << num1 + num2 << endl;
    }
    if (op == '-') {
        cout << "Result: " << num1 - num2 << endl;
    }
    if (op == '*') {
        cout << "Result: " << num1 * num2 << endl;
    }
    if (op == '/') {
        if (num2 == 0) {
            cout << "Division by zero is not allowed." << endl;
        } else {
            cout << "Result: " << num1 / num2 << endl;
        }
    }
    if (op != '+' && op != '-' && op != '*' && op != '/') {
        cout << "Invalid operator." << endl;
    }

    return 0;
}

 

복합 조건(&&, ||)

음식을 고르는 경우만 해도 고기 중에서도 소고기… 소고기 중에서 한우 중에서 특정 부위를 좋아하는 경우도 많습니다. 이런 복잡한 조건들을 표현하기 위해 복합 조건이라는 것을 제공합니다.

 

1️⃣&&는 A&&B와 같이 사용하며 A, B에는 조건 이 옵니다. 모든 조건이 참이어야 참이 됩니다. 아래와 같이 두 개의 스위치가 모두 닫아져야 전류가 흐르는것에 비유합니다.

 

2️⃣||는 A||B와 같이 사용하며 A,B에는 조건이 옵니다. 둘 중 하나만 참이어도 참이 됩니다.

 

동일한 작업을 해주는 반복문

학생 1,000명의 성적을 차례대로 입력해야 하는 경우 하드코딩으로 하는 것은 상당히 시간이 걸립니다. 반복문은 어떻게 하면 “성적을 입력하는 행위”를 깔끔하게 반복할 수 있습니다. 반복문의 종류는 크게 for문과 while문이 있습니다

 

for문

초기화 과정은 한 번만 하고, 이후에 종료 조건 확인→동작→ 사후 동작 → 종료 조건 확인을 반복합니다. 반복은 종료 조건이 될 때까지 반복합니다.

 

while문

반복의 범위가 명확하다 기보단, 특정 조건만 체크해서 반복하는 경우가 있습니다.

 

 

 

 

'내일배움캠프 > TIL' 카테고리의 다른 글

[내일배움캠프 Day8] C++ 과제 진행  (2) 2024.12.26
[내일배움캠프 Day7] Git  (1) 2024.12.24
[내일배움캠프 Day5] 콜리전 수정하기  (3) 2024.12.20
[내일배움캠프 Day4] 플레이어 이동하기  (3) 2024.12.19
[내일배움캠프 Day3] 블루프린트를 이용한 비주얼 스크립팅  (1) 2024.12.18
'내일배움캠프/TIL' 카테고리의 다른 글
  • [내일배움캠프 Day8] C++ 과제 진행
  • [내일배움캠프 Day7] Git
  • [내일배움캠프 Day5] 콜리전 수정하기
  • [내일배움캠프 Day4] 플레이어 이동하기
개발자 밍
개발자 밍
dev0404 님의 블로그 입니다.
  • 개발자 밍
    Developer
    개발자 밍
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • 강의 (8)
        • UE Climbing System (3)
        • UE Dungeon (1)
        • HCI (4)
      • 책 (18)
        • 객체지향의 사실과 오해 (5)
        • Effective C++ (3)
        • 이득우의 게임 수학 (4)
        • 이것이 취업을 위한 컴퓨터 과학이다 (4)
        • 리뷰 (2)
      • C++ (2)
      • 알고리즘 (2)
      • 자료구조 (1)
      • Unreal (4)
      • 내일배움캠프 (52)
        • TIL (52)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    언리얼
    그래픽스
    내일배움캠프
    객체지향
    c++
    알고리즘
    Effective
    게임수학
    컴퓨터 구조
    자료구조
    컴퓨터구조
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
개발자 밍
[내일배움캠프 Day6] C++ 프로그래밍 기초
상단으로

티스토리툴바