Company
교육 철학

LV01 변수, cout, Debug

C++ 기초 프로그래밍 가이드

프로그래밍을 처음 시작하는 분들을 위한 C++ 입문 가이드입니다. 변수, 출력, 디버깅의 기초를 차근차근 배워보겠습니다.

1. 프로그램의 구조

C++ 프로그램은 반드시 main 함수로 시작됩니다. 이는 프로그램의 진입점(entry point)이며, 전체 프로그램에서 반드시 한 개만 존재해야 합니다.
왜 main 함수가 필요한가요?
컴퓨터는 프로그램을 실행할 때 "어디서부터 시작해야 하지?"라는 질문을 합니다. C++에서는 항상 main 함수부터 시작한다는 약속이 정해져 있습니다. 마치 책을 읽을 때 첫 페이지부터 시작하는 것처럼, 프로그램도 main 함수부터 시작합니다.

기본 구조 예시

#include <iostream> // 입출력을 위한 표준 라이브러리 int main() { std::cout << "안녕하세요"; return 0; }
C++
복사
각 줄의 의미:
#include <iostream>: 콘솔 입출력 기능을 제공하는 헤더 파일입니다. cout을 사용하려면 반드시 필요합니다.
int main(): 프로그램의 시작을 알리는 메인 함수입니다. 모든 C++ 프로그램은 여기서 시작합니다.
std::cout << "안녕하세요";: 화면에 "안녕하세요"를 출력하는 명령입니다.
return 0;: 프로그램이 정상 종료되었음을 운영체제에 알립니다. 0은 "문제없이 잘 끝났다"는 의미입니다.
실생활 비유:
프로그램 구조는 요리 레시피와 비슷합니다.
#include는 필요한 재료와 도구를 준비하는 것
main 함수는 요리를 시작하는 것
함수 안의 명령들은 요리 순서
return 0은 요리 완성

2. 출력하기 (cout)

C++에서는 콘솔(검은색 화면)에 문자를 출력할 때 std::cout을 사용합니다.
cout이란?
console output의 줄임말입니다.
"콘솔로 출력하라"는 의미입니다.
<< 기호는 "출력 방향"을 나타냅니다. cout 쪽으로 데이터를 보낸다는 뜻입니다.

출력 예시

한 줄에 여러 내용 출력:
std::cout << "안녕하세요" << "반갑습니다"; // 결과: 안녕하세요반갑습니다
C++
복사
<< 기호를 여러 번 사용하면 내용을 이어서 출력할 수 있습니다. 마치 기차 칸을 연결하듯이 출력 내용을 연결합니다.
줄바꿈 출력 (\n 개행문자 사용):
std::cout << "안녕하세요\n" << "반갑습니다\n"; // 결과: // 안녕하세요 // 반갑습니다
C++
복사
\n은 "다음 줄로 이동"을 의미하는 특수 문자입니다. 엔터를 누른 것과 같은 효과입니다.
띄어쓰기 출력:
std::cout << "Hello" << " " << "World"; // 결과: Hello World
C++
복사
띄어쓰기는 " " 처럼 공백 문자를 명시적으로 출력해야 합니다. 자동으로 띄어쓰기가 되지 않습니다.

3. 변수

변수의 개념

변수란, 하나의 값을 저장할 수 있는 메모리 공간을 의미합니다.
실생활 비유:
변수는 라벨이 붙은 상자와 같습니다.
상자 이름(변수명): age, score, number
상자 안의 내용물(값): 10, 95, 3.14
상자 크기(타입): int(정수), float(실수) 등
예를 들어, int age = 25;는 "age라는 이름의 정수형 상자를 만들고, 그 안에 25를 넣는다"는 의미입니다.
왜 변수가 필요한가요?
1.
재사용: 같은 값을 여러 번 사용할 때 편리합니다.
2.
변경 가능: 프로그램 실행 중에 값을 바꿀 수 있습니다.
3.
의미 전달: a + b보다 width + height가 더 이해하기 쉽습니다.

변수 선언과 초기화

int age; // 변수 선언 (상자를 만듦) age = 3; // 변수에 값을 대입 (상자에 값을 넣음) int number = 10; // 선언과 동시에 초기화 (상자를 만들면서 값을 바로 넣음)
C++
복사
용어 정리:
선언(Declaration): 변수를 만드는 것. 메모리 공간을 확보합니다.
초기화(Initialization): 변수에 처음으로 값을 넣는 것.
대입(Assignment): 이미 선언된 변수에 새로운 값을 넣는 것.
권장 사항:
변수는 선언과 동시에 초기화하는 것이 좋습니다. 초기화하지 않은 변수는 쓰레기 값(garbage value)을 가지고 있어서 예상치 못한 오류가 발생할 수 있습니다.
int a; // ❌ 나쁜 예: 초기화 안 함 int b = 0; // ✅ 좋은 예: 초기화함
C++
복사

변수명 규칙

반드시 지켜야 할 규칙:
1.
문자 또는 밑줄로 시작: age, _count는 가능, 3age는 불가능
2.
대소문자 구분: ageAge는 완전히 다른 변수입니다
3.
띄어쓰기 금지: my age는 불가능, myAge 또는 my_age로 써야 합니다
4.
예약어 사용 금지: int, return, if 등 C++ 키워드는 변수명으로 사용 불가
5.
중복 금지: 같은 범위에서 같은 이름의 변수를 두 번 선언할 수 없습니다
변수명 작성 스타일:
// 카멜 표기법 (camelCase) int myAge = 25; int studentScore = 95; // 스네이크 표기법 (snake_case) int my_age = 25; int student_score = 95; // 헝가리안 표기법 (Hungarian notation) int nAge = 25; // n은 number float fScore = 95.5f; // f는 float
C++
복사
좋은 변수명의 특징:
의미가 명확함: a보다 age가 좋습니다
너무 길지 않음: studentTestScoreFromLastWeek보다 lastTestScore가 좋습니다
일관성 유지: 한 프로젝트에서는 하나의 스타일만 사용합니다

올바른 변수 선언과 사용 예시

#include <iostream> int main() { int a = 10; int b = 20; std::cout << "a의 값은: " << a << "\\n"; std::cout << "b의 값은: " << b << "\\n"; return 0; }
C++
복사

잘못된 변수 사용 예시

변수는 반드시 선언 후 사용해야 합니다.
int a = 0; c = 0; // 오류: c가 선언되기 전에 사용됨 int c;
C++
복사

4. 산술 연산

C++에서 지원하는 기본적인 산술 연산자는 다음과 같습니다. 수학 계산기와 비슷하지만 몇 가지 주의할 점이 있습니다.
연산자
설명
+
더하기
-
빼기
*
곱하기
/
나누기(몫)
%
나머지

산술 연산 예제

#include <iostream> int main() { int a = 5; int b = 2; std::cout << "a + b = " << a + b << std::endl; std::cout << "a - b = " << a - b << std::endl; std::cout << "a * b = " << a * b << std::endl; std::cout << "a / b = " << a / b << std::endl; std::cout << "a % b = " << a % b << std::endl; return 0; } // 결과 // a + b = 7 // a - b = 3 // a * b = 10 // a / b = 2 // a % b = 1
C++
복사
정수 나눗셈의 중요한 특징:
C++에서 정수끼리 나눗셈을 하면 소수점 아래를 버리고 몫만 반환합니다.
int result1 = 5 / 2; // 2 (2.5가 아님!) int result2 = 10 / 3; // 3 (3.33...이 아님!) float result3 = 5.0 / 2.0; // 2.5 (실수 나눗셈) float result4 = 5 / 2.0; // 2.5 (하나라도 실수면 실수 나눗셈)
C++
복사
나머지 연산자의 활용:
나머지 연산자(%)는 매우 유용합니다.
// 짝수/홀수 판별 int num = 7; if (num % 2 == 0) { // 짝수 } else { // 홀수 } // 10의 자리 분리 int number = 125; int ones = number % 10; // 5 (일의 자리) int tens = (number / 10) % 10; // 2 (십의 자리)
C++
복사

5. 할당 연산자와 동등 비교 연산자

할당 연산자 (=)

의미: 오른쪽의 값을 왼쪽의 변수에 대입합니다.
int a; a = 5; // a에 5를 할당 (저장)
C++
복사
주의: 수학의 등호와는 다릅니다!
int x = 10; x = x + 5; // 수학에서는 말이 안 되지만, 프로그래밍에서는 가능! // "x의 현재 값에 5를 더한 결과를 x에 다시 저장하라" // x는 이제 15가 됨
C++
복사

동등 비교 연산자 (==)

의미: 두 값이 서로 같은지 비교합니다. 결과는 참(true) 또는 거짓(false)입니다.
if (a == 5) { std::cout << "a는 5입니다." << std::endl; }
C++
복사

자주 하는 실수

int score = 100; // ❌ 잘못된 코드 if (score = 90) { // 대입 연산자를 사용함 (항상 참이 됨) cout << "90점입니다"; } // ✅ 올바른 코드 if (score == 90) { // 비교 연산자를 사용함 cout << "90점입니다"; }
C++
복사
= vs == 비교표:
= : 값을 저장한다 (할당)
== : 값이 같은지 확인한다 (비교)
이 둘을 혼동하면 찾기 어려운 버그가 발생하므로 항상 주의해야 합니다!

복합 대입 연산자

더 편리하게 사용할 수 있는 연산자들도 있습니다.
int a = 10; a += 5; // a = a + 5와 같음 (a는 15가 됨) a -= 3; // a = a - 3와 같음 (a는 12가 됨) a *= 2; // a = a * 2와 같음 (a는 24가 됨) a /= 4; // a = a / 4와 같음 (a는 6이 됨) a %= 4; // a = a % 4와 같음 (a는 2가 됨)
C++
복사

증감 연산자

int count = 5; count++; // count = count + 1과 같음 (6이 됨) count--; // count = count - 1과 같음 (5가 됨) ++count; // count를 먼저 증가시킴 count++; // count를 나중에 증가시킴 // 차이점 예시 int a = 5; int b = a++; // b = 5, a = 6 (a를 b에 대입한 후 증가) int c = 5; int d = ++c; // d = 6, c = 6 (c를 증가시킨 후 d에 대입)
C++
복사
이 가이드를 기초로 C++ 프로그래밍의 기본 개념을 정확히 익히고, 앞으로의 학습에 튼튼한 기반을 쌓아가길 바랍니다.

숙제 연습문제

문제 1번
#include <iostream> using namespace std; int main() { cout << "HELLO WORLD"; return 0; }
C++
복사

출력 예시

HELLO WORLD
문제 2번
다음과 같이 출력 해 주세요

출력 예시

@@@@
main()
std::cout << “@@@@”;
문제 3번
다음과 같이 출력 해 주세요

출력 예시

123###456
문제 4번
다음과 같이 출력 해 주세요
(## 과 ## 사이 띄어쓰기 3칸)

출력 예시

CODING
##   ##
std::cout “CODING”;
std::cout << std::endl;
std::cout << “##   ##”;
문제 5번
아래와 같이 출력 해주세요.

출력 예시

5 4 3 2 1 GO!
문제 6번
변수를 하나 만들고, 변수에 값으로 5를 넣어주세요
그리고 그 변수값을 출력 해 주세요.

출력 예시

5
문제 7번
변수 t를 만들고, 변수값 5를 넣어주세요.
그리고 아래와 같이 출력 해주세요.

출력 예시

t에서 1씩 증가=5 6 7
t에서 2씩 감소=5 3 1
문제 8번
a, b, c 변수 3개를 만들어주세요. 그리고 아래 그림처럼 변수에 값을 채우고 출력 해주세요.
(띄어쓰기를 정확히 맞추어주셔야합니다)

출력 예시

a, b, c 값은 각각 a는 5, b는 -1, c는 2 입니다
문제 9번
변수 a와 b를 만들고, 각각 a에는 7 b에는 2를 넣어 주세요.
그리고 a와 b의 합과 차를 출력 해주세요.

출력 예시

a+b=9
a-b=5
문제 10번
변수 k와 g를 선언하고, k에는 8g에는 4를 채워주세요.
그리고 두 변수를 곱한값과 나눈 값을 아래와 같이 출력 해주세요.

출력 예시

8*4=32
8/4=2
문제 11번
변수 a, b, c, d 를 선언해 주세요.
변수값 3, 5, 3, 4를 순서대로 아래와 같이 넣어주세요.
수식 ((a+b)*c)/d 의 값을 출력해 주세요.

출력 예시

6
문제 12번
변수 a를 선언해주세요.
변수 a에 8을 넣어주세요.
a를 5번 곱한 값, a의 5승의 값을 출력해 주세요.

출력 예시

32768

문제 13번
아래의 소스코드를 Visual Studio에 복사 해 주세요.
그리고 F10을 눌러 트레이스 연습을 해 주시면 됩니다.
특히 조사식에는 변수 a를 등록해서 a값이 어떻게 변하는지 확인 해 보셔야 합니다.
트레이스의 단축키 : F10
트레이스 종료 단축키 : Shift + F5
#include <iostream> using namespace std; int main() { int a; a = 8; cout << a; a = a + 1; a++; a = 3; a = a + 1; a++; cout << "a값은 : " << a << endl; a = a + 1; a++; cout << "마지막 a값은 : " << a << endl; return 0; }
C++
복사
소스코드 작성란 안에는 위의 소스코드를 복사하여 넣으시면 됩니다.
문제 14번
변수 a를 선언해 주세요.
변수값 8을 a에 넣어주세요.
a = a + 1, a++ 를 적절히 이용하여
a를 12로 만들어 주시면 됩니다.

출력 예시

12

복습 문제

문제 1번
아래의 그림과 같이 출력 해 주세요
5앞에는 띄어쓰기 한칸
8앞에는 띄어쓰기 두칸
0앞에는 띄어쓰기 세칸이 있습니다.

출력 예시

1234
567
89
0
문제 2번
다음과 같이 출력 해 주세요

출력 예시

158% 입니다
문제 3번
변수 q, w, e를 선언하고 아래와 같이 값을 채워주세요.
값을 채운 후 아래와 같이 화면에 보이도록 출력 해주세요.

출력 예시

#q=1,1,1
#w=2,2,2
#e=3,3,3

문제 4번
변수 a를 만들고, 변수값 10을 넣어주세요.
그리고 아래와 같이 출력 해주세요.

출력 예시

a의 값은 10입니다
문제 5번
bbq라는 변수에 숫자 5를 넣어주세요
그리고 아래와 같이 출력 해 주세요

출력 예시

bbq의 값은 5입니다
문제 6번
a, b, c, g, h 변수를 만들어주세요.
그리고 a에는 40, b에는 60, c에는 10을 채워 줍니다.
g에는 a와 c를 더한 값
h에는 b에서 c를 뺀 값을 넣어주세요.
그리고 변수 g와 h를 출력 합니다.

출력 예시

50
50
문제 7번
변수 a, b를 만들어 주세요.
변수값 10과 3을 아래와 같이 넣어 주세요.
두 수를 곱한 값과 나눈 값을 출력해 주시면 됩니다.
<주의>
띄어쓰기를 꼭 확인해 주세요!

출력 예시

10 * 3 = 30
10 / 3 = 3
문제 8번
변수 a, b, c, d 를 선언해 주세요.
변수값 3, 2, 6, 2를 순서대로 아래와 같이 넣어주세요.
수식 (a+b)*(c/d) 의 값을 출력해 주세요.

출력 예시

15
문제 9번
변수 a, b, c, d 를 선언해 주세요.
변수값 3, 3, 8, 3을 순서대로 아래와 같이 넣어주세요.
수식 (a*b)+(c*d) 의 값을 출력해 주세요.

출력 예시

33