본문 바로가기

C++

(40)
[C++ 때려잡기] C++ 기초강의 4-1 간단한 구조체 2018/08/23 - [교육 노트/C++ 기초강의] - C++ 기초 강의 OT4차 강의 제목은배열과 포인터이다. 배열은 기존에 배웠던 그 배열이지만 더욱 심화로 배울것이고마침내 C언어의 꽃이자 알파이자 오메가, 꿀잼 포인터가 테마이다우리는 C++이지만 C++도 OOP전에는 사실상 핵심 개념이다. 하지만 그전에 머리도 식힐겸 간단한 구조체부터 설명하도록 하겠다. 1. 구조체구조체란 하나 이상의 변수를 그룹 지어서 만든 사용자 정의 자료형이다사용자 정의 자료형이란 C++에서 기본적으로 제공하는 자료형이 아니지만자료형으로 쓰기위해 우리가 직접 만든 자료형이란 의미이다. 이런 개념이 왜 필요하느냐 하면 예를들어 학생100의 정보 관리 프로그램을 제작할 때 각각의 학생은 이름, 학번, 나이 … 등의 여러 가지 ..
[C++ 때려 잡기] C++ 기초강의 3 파일입출력 기초 2018/08/23 - [교육 노트/C++ 기초강의] - C++ 기초 강의 OT 지금까지 만든 프로그램들은 프로그램을 종료하면 모든 데이터가 날라가는 형식이었다.그러나 우리가 사용하는 다양한 프로그램들을 대부분 저장, 불러오기 기능을 가지고있고이를 통하여 게임랭킹, 각종 정보들을 프로그램을 껏다 켜도 유지되도록 할 수 있다. 이렇게 데이터 저장되는것을 파일이라고 부른다.가장 대표적인 파일이 메모장에서 사용하는 *.txt 파일이다. 1. 파일 기존 프로그램이 대표적으로 exe 확장자를 가지고 있고 실행하면 정보를 메모리 (RAM) 에 기록한다. RAM 은 대표적인 휘발성 메모리이므로 데이터를 영구적으로 저장 할 수 없다.반면 파일의 정보는 하드디스크, SSD등 보조 기억 장치에 저장되어 영구히 보관할수있다..
[C++ 때려 잡기] C++ 기초강의 2-advanced-2 헤더와 CPP, 디폴트 파라미터, static 변수 2018/08/24 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-2 함수 오버로딩2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-3 call by value / call by reference2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-4 재귀함수2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-advanced-1 랜덤 1. 헤더와 cpp 함수의 선언과 정의를 따로 나눠놓아도함수가 많아지면 main 함수..
[C++ 때려 잡기] C++ 기초강의 2-advanced-1 랜덤 2018/08/24 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-2 함수 오버로딩2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-3 call by value / call by reference2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-4 재귀함수주사위 게임, 로또등실생활은 확률과 랜덤으로 가득 차있다. C++에서는 이러한 랜덤 상황을 어떻게 표현하는가? 1. 랜덤랜덤을 표현하는 방법 rand() 함수 사용 : 0 ~ RAND_MAX까지의 난수를 발생..
[C++ 때려 잡기] C++ 기초강의 2-4 재귀함수 2018/08/24 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-2 함수 오버로딩2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-3 call by value / call by reference 우리가 만든 함수를 여러번 실행시키기 위해서는그냥 여러번 쓰면되지만 우리는 이미 반복문을 배웠기때문에 반복문을 통하여 함수를 반복하여 실행시킬수가 있다. for문과 while문으로 함수를 반복하여 사용가능한데함수의 반복의 경우 특수한 방법이 하나 더 존재한다. 바로 재귀를 이용하는것이다. 1. 재귀재귀(recurs..
[C++ 때려 잡기] C++ 기초강의 2-3 call by value / call by reference 2018/08/24 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-2 함수 오버로딩 지금까지의 내용들은 이해하기 어려운 내용들은 아니였으나이번 강의는 조금 컴퓨터적 사고가 필요해서 어렵게 느껴질 수도 있다. 해당 내용을 가르치기 전에 swap을 배워보자 1. swap (스왑)swap은 변수 2개의 내용을 바꿀때 자주 사용하는 용어이다.두 변수 x = 10; y = 20;일 때 이 두 변수를 x = 20, y = 10 으로 바꾸는 (서로 교환하는) 방법은? 한번 해보자 int x = 10; int y = 20; x = y; y = x; 처음 생각하면 이런식..
[C++ 때려 잡기] C++ 기초강의 2-2 함수 오버로딩 2018/08/24 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의 앞에서 함수를 정의 하는 방법을 배웠다 예를 들어 2개의 매개변수를 더하는 결과를 돌려주는 함수를 int plus(int x, int y) { return x + y; }과 같이 짯을것이다. ps. "plus"이 모호합니다 같은 오류가 발생하면 함수이름을 바꾸어주도록하자. 해당함수는 int형식의 변수 2개를 받아 두개의 합인 int값을 돌려주는 과정을 거치된다. 그런데 여기에 매개변수로 int 대신에 float타입을 넣으면 어떻게 될까?plus(3.5,5.5) 와 같이 사용하게 되면 3.5 와 5.5 가 넘어갈때 묵시적으로 int형으로 형변환이 되고plus(3,5) 와 같이 작동한다...
[C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의 프로그램을 만들다보면 중복해서 사용되는 기능들이 나오게되고이걸 죄다 복붙을 통하여 해결하다보면 코드가 지저분해지고 길어지게 된다. C/C++에서는 이러한 기능을 묶어 재사용할수있도록 일종의 모듈화가 가능한데그것이 바로 함수이다 1.함수란 특정한 기능을 수행하도록 나눠진 작업 단위, 수학에서의 함수와 비슷한 의미를 가진다. C++ 에서 함수는 다음과 같은 구조를 가진다 () { return ; } 리턴타입은 돌려주는 리턴값이 어떤 변수 타입인지를 의미하고매개변수느느 해당 함수에 넘겨줄 값을 의미한다. 위 구조대로 들어온 값에 1을 더하는 기능을 하는 함수를 만들어보면 int plusOne(int x) { int y = x + 1; return y; } 다음과 같다.대충 이러한 구조를 띄는데 함수를 사용할때..