C++
절차 지향 언어란?
개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되어야 한다.
객체 지향 언어란?
프로그램을 다수의 객체로 만들고, 서로 상호작용 하도록 만드는 프로그래밍 언어이다.
객체 지향 개념을 도입하여 C언어에 비해 효율성 저하를 최소화
타입체크가 엄격
- 실행 시간 오류의 가능성을 줄이고 디버깅을 돕는다.
이식성이 좋음
- 다양한 운영체제에서 사용할 수 있는 언어
활용 분야
- 임베디드
- 금융, 통신 애플리케이션
- 서버 구축
- 검색엔진 등
입력, 출력, 개행
int int1;
std::cin >> int1;
std::cout << int1;
std::cout << "Hello World!\n";
//또는
std::cout << "Hello World!";
std::cout << std::endl;
변수
데이터 저장공간
- 데이터에는 숫자, 문자, 객체, 함수, ...등이 있다.
변수가 어떤 유형(data type, 자료형)인지 정하고 변수 이름을 지정
- int num1 = 5;
- 자료형 int, 변수이름 num1 에 5라는 숫자를 초기화(대입)한다는 의미
변수에 값을 넣을 때는 대입 연산자 (=)를 이용하여 값 저장
예약어(do, while, if 등) 사용 X
소문자와 대문자를 구분
- age와 AGE은 다른 변수
대소문자, 숫자, 문자로만 구성할 수 있음
- 문자는 _와 $만 허용
숫자로 시작될 수 없음
외에도 많으나 지금은 이정도만 알고있으면..!
문자('')와 문자열("")은 따옴표로 둘러싸서 사용
- "Hello World" == 문자열
- 'A' == 문자
문자에는 숫자도 저장이 가능하다.
- ASCII 코드 범위 내의 숫자라면!
- 숫자값을 저장해도 출력은 문자가 된다.
std::string a = 5; (X), std::string a = "5"; (O)
- 따옴표 안에 있으면 5라는 문자열, 따옴표 안에 없으면 숫자 자체를 의미
char character1 = 100;
std::cout << character1;
//출력값 = d;
실습 1
std::string name; // 문자열 변수 선언
int age; // int형 변수 선언
std::cout << "이름을 입력하세요:";
std::cin >> name;
std::cout << std::endl;
std::cout << "나이를 입력하세요:";
std::cin >> age;
std::cout << std::endl;
std::cout << "안녕하세요! " + name + "님 (" << age << ")세";
연산자
int a = 10;
double b = 3.14;
short c = 3;
std::string str1 = "5";
std::string str2 = "10";
//산술 연산자
std::cout << a + b << std::endl;
std::cout << a - b << std::endl;
std::cout << a * b << std::endl;
std::cout << a / c << std::endl;
std::cout << a % c << std::endl;
std::cout << str1 + str2 + std::to_string(c) << std::endl; //5103
//증감 연산자
std::cout << a << std::endl; // 10
std::cout << a++ << std::endl; // 10
std::cout << a << std::endl; // 11
std::cout << ++a << std::endl; // 12
std::cout << a << std::endl; // 12
std::cout << !false << std::endl; // true
std::cout << !(!false) << std::endl; // false
std::cout << (false && false) << std::endl; // false
std::cout << (false && true) << std::endl; // false
std::cout << (true && true) << std::endl; // ture
std::cout << (false || false) << std::endl; // false
std::cout << (true || false) << std::endl; // true
std::cout << (true || true) << std::endl; // true
std::cout << ((2 > 1 && -2 < 1) || 5 > 2) << std::endl; // true
조건문
int a;
std::cout << "숫자를 입력해 주세영: ";
std::cin >> a;
if (a < 10) {
std::cout << "입력한 수가 10보다 작습니다.\n";
}
else if (a == 10) {
std::cout << "10을 입력하셨군요!\n";
}
else {
std::cout << "입력한 수가 10보다 큽니다.\n";
int a;
std::cout << "점수를 입력해 주세영: ";
std::cin >> a;
if (a > 100 || a < 0) {
std::cout << "점수를 잘 못 입력 하셨어용";
}
else if (a >= 90) {
std::cout << "A학점 입니다~~";
}
else if (a >= 80) {
std::cout << "B학점 입니다~";
}
else if (a >= 70) {
std::cout << "C학점 입니다..";
}
else if (a >= 60) {
std::cout << "D...";
}
else
std::cout << "F";
std::cout << std::endl;
std::string userId, userPw;
std::string inputId = "user01", inputPw = "1234";
std::cout << "아이디를 입력해주세요: ";
std::cin >> userId;
std::cout << "비밀번호를 입력해주세요: ";
std::cin >> userPw;
if (userId == inputId) {
if (userPw == inputPw) {
std::cout << "로그인 성공!!\n";
}
else {
std::cout << "비밀번호가 틀렸습니다.\n로그인 실패\n";
}
}
else {
std::cout << "아이디가 틀렸습니다.\n로그인 실패\n";
char grade;
switch (a/10) {
case 10:
std::cout << 'A';
grade = 'A';
break;
case 9:
std::cout << 'A';
grade = 'A';
break;
case 8:
std::cout << 'B';
grade = 'B';
break;
case 7:
std::cout << 'C';
grade = 'C';
break;
case 6:
std::cout << 'D';
grade = 'D';
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
std::cout << "F";
grade = 'F';
break;
default:
std::cout << "잘 못 입력";
조건 ? 조건이 참일 때 실행할 코드 : 조건이 거짓일 때 실행할 코드;
ex) score == 'F' ? std::cout << "재수강" : std::cout << "잘해써용~";
ex2) grade == 'F'||'D' ? std::cout << "재수강 ㅠ" : std::cout << "잘했어영~";
실습 2 (if문 이용)
"나이를 입력하세요: "라는 문구를 출력하고 사용자로부터 숫자를 입력 받기
입력된 숫자가 1부터 7 까지면 "유아", 8~13까지면 "초등학생", 14~16은 중학생, 17~19는 고등학생 20살 이상이면 성인
200살 이상이면 "나이가 너무 많습니다" 출력
int age;
std::cout << "나이를 입력하세요: ";
std::cin >> age;
if (0 <= age && age <= 7) {
std::cout << "유아";
}
else if (age <= 13) {
std::cout << "딩초";
}
else if (age <= 16) {
std::cout << "중학생";
}
else if (age <= 19) {
std::cout << "고등학생";
}
else if (age <= 199) {
std::cout << "성인";
}
else if (200 <= age) {
std::cout << "나이가 너무 많습니다..!";
}
else {
std::cout << "잘 못 입력";
}
std::cout << std::endl;
실습3 (if문 이용)
std::string name;
std::cout << "이름을 입력하세요: ";
std::cin >> name;
if (name == "홍길동") {
std::cout << "남자";
}
else if (name == "성춘향") {
std::cout << "여자";
}
else {
std::cout << "모르겠어용";
}
std::cout << std::endl;
실습4 (삼항현산자 이용)
int a;
std::cout << "숫자를 입력하세요: ";
std::cin >> a;
a % 5 == 0 ? std::cout << a + " 는 5의 배수입니다." : std::cout << a + "는 5의 배수가 아닙니다.";
std::cout << std::endl;
실습5
int int1, int2;
std::string w;
std::cout << "숫자1을 입력하세요: ";
std::cin >> int1;
std::cout << "숫자2를 입력하세요: ";
std::cin >> int2;
std::cout << "원하는 계산을 입력하세요 (+, -, *, /): ";
std::cin >> w;
if (w == "+") {
std::cout << "값: " << int1 + int2;
}
else if (w == "-") {
std::cout << "값: " << int1 - int2;
}
else if (w == "*") {
std::cout << "값: " << int1 * int2;
}
else if (w == "/") {
std::cout << "몫: " << int1 / int2 << ", 나머지" << int1 % int2;
}
char op;
int a, b;
std::cout << "연산할 정수 두 개를 입력해 주세요.";
std::cin >> a >> b;
std::cout << "연산자를 입력해주세요. (+ - * /)";
std::cin >> op;
std::cout << "**** 연산결과 --->";
switch (op) {
case '+':
std::cout << a + b;
break;
case '-':
std::cout << a - b;
break;
case '*':
std::cout << a * b;
break;
case '/':
std::cout << "몫:" << a / b << "나머지는" << a % b << "입니다.";
break;
default:
std::cout << "잘못된 연산자입니다.";
}
마무으리!
HMI나 PLC를 쓰면서 스크립트를 얼추 써봤지만,
부트캠프 신청한 목적이라고도 볼 수 있는 C++을 배우기 시작하였다.
대학교 1학년 때로 돌아간 느낌이 들어 추억 새록새록!!
사실 대학교 1학년 2학년 때 열심히 놀기도 하고 프로그래밍에 관심이 없어서 기초가 비실비실한 상태로 급하게 졸업하기 위해 지식을 마구잡이로 습득했던 느낌이 있었다.
처음 느낀 것은 아니었기에 방학 동안 코딩 학원도 다녀봤었는데,
다급한 마음 때문인지 지금은 더 처절하게 수업에 임하고 있다.
덕분에 기초가 단단하게 다져지고 있는 기분!! 아주 조와~
요즘 수업에 뒤쳐지지 않기를 바라는 마음이 한 가득이다.
내일도 열심히 듣고 뒤쳐지지 말자!