2020년도 1학기
-
[C++] 6. 선택제어문 (if, switch), 반복 제어문(for, while)2020년도 1학기/객체지향언어 2020. 5. 9. 06:11
if 문 조건식을 평가하여 결과가 참(true)이면 문장을 실행하고, 거짓(false)이면 문장을 실행하지 않는다. 여러 문장을 실행하여야 할 경우엔 {}으로 묶어 준다. 또한 if ~ else문에서는 조건식을 평가하여 참이면 if 다음의 문장(문장1)을 실행하고, 거짓이면 else 다음의 문장(문장2)을 실행한다. 이 또한 여러 문장을 실행하여야 할 경우엔 {}으로 묶어 준다. switch 문 if ~ else if ~ else if ~else 구조를 사용하면 여러 개의 조건 중 하나를 선택하게 할 수 있다. 이렇나 경우에 switch 문을 사용하면 좀 더 편리하게 처리할 수 있다 switch 문은 여러 가지 조건에 따라 프로그램의 흐름을 branch 시킬 수 있다. 주의할 점은 선택된 case 절 안..
-
[C++] 5. 데이터 처리(연산자, 선택 제어문, 반복 제어문)2020년도 1학기/객체지향언어 2020. 5. 9. 05:34
연산자 연산자(operator)는 C++ 프로그램 내에서 연산 동작을 수행하는 기호이다. 반대로 피연산다(operand)는 연산에 사용되는 데이터이다. 피연산자의 개수는 단항 연산자(unary operator), 이항 연산자(binary operator), 3항 연산자(ternary operator)가 있다. 이 중 관계 연산자(relational operator)는 두 개의 피연산자를 비교하여 서로간의 크고, 작고, 같은 관계를 비교하여 결과를 참, 거짓으로 나타내는 연산자이다. 결과 값이 참이면 true(1), 거짓이면 false(0)으로 표현한다. 문자 사이의 관계는 ASCII 코드 값으로 비교한다. 논리연산자(logic operator)은 AND, OR, NOT을 수행하여 연산 결과를 참, 거짓으..
-
[C++] 4. 기본 자료형, 문자열, 구조체2020년도 1학기/객체지향언어 2020. 5. 9. 04:39
정수형과 실수형(부동소수점수) 정수형은 부호있는 정수형과 부호 없는 정수형이 있다. 예를 들어 short int 자료형인 경우, 부호있는 정수형(short int)에서는 MSB는 부호를 나타내고 나머지 15비트가 크기를 나타낸다. MSB가 0이면 양수이고 1이면 음수이다. 양수이면 크기는 2진수로 나타내고 음수이면 크기는 2의 보수로 나타낸다. 부호없는(unsigned short int)에서는 16비트 모두가 크기를 나타내고 부호를 나타내는 비트는 없다. 따라서 부호는 없지만 수를 나타낼 수 있는 범위는 두배로 된다. ex) 0을 short int로 나타내기 : 00000000 0000000 ex) -1을 short int로 나타내기 : 1111111 11111111 부동 소수점 상수는 기본적으로 dou..
-
[C++] 3. 자료형과 변수2020년도 1학기/객체지향언어 2020. 5. 9. 04:13
변수(variable)이란? 상수(constant)는 한 번 정해지면 그 값을 변경할 수 없다. 하지만 변수(variable)은 값을 저장할 수 있는 그릇으로 메모리에 할당되어 있는 기억 공간을 가르키는 식별자이다. 변수는 반드시 먼저 선언한 후에 사용하고, 변수 선언에 의해 변수의 현태가 정해진다. 컴파일러는 변수의 메모리 공간을 할당하고 어떠한 연산을 실행할 수 있는지를 알게 된다. -영문자(A~Z, a~z), 숫자(0-9), _(underscore)만을 사용하여 만들 수 있다. 공백문자, 특수 문자를 사용할 수 없다. -첫문자는 숫자를 사용할 수 없다. -밑줄 문자(_)로 시작하는 이름은 컴파일러와 리소스가 사용하기로 예약되어 있다. -영문자는 대문자와 소문자를 구분한다. 즉, ABC와 abc는 다..
-
[C++] 2.2 C++ 프로그램의 예, C++ 입출력 기본2020년도 1학기/객체지향언어 2020. 5. 2. 03:42
-C++에서 입출력을 사용하려면 라이브러리로 iostream을 포함하여야 한다. -C++에서 문자열을 사용하기 위하여 string 라이브러리를 사용하면, string 클래스의 객체로 문자열을 선언할 수 있다. str은 string 클래스의 객체를 선언한 것이다. string 객체를 사용하면, 문자열에서도 =와 +와 같은 연산자를 사용할 수 있어 문자열 처리가 편리하다. -C++에서는 같은 이름의 식별자를 여러개 사용할 수 있도록 이름 공간(namespace)을 사용한다. 표준 C++ 라이브러리는 std 이름 공간을 사용한다. -cout 객체와 > 연산자를 사용하여 값을 입력하고 마찬가지로 변환 문자를 사용하지 않아도 자동으로 변수의 자료형에 따라 변환하여 입력된다. ---------------------..
-
[C++] 2. 객체지향 개발(OPP)의 특징2020년도 1학기/객체지향언어 2020. 3. 27. 11:51
객체 지향 개발(OPP)의 특징 1. 캡슐화(encapsulation) 데이터(변수)와 동작(function)을 하나의 클래스로 묶는 것이다. 실제로 구현되는 부분을 캡슐로 감싸서 외부에 드러내지 않고 이용 방법만 알려주는 것이다. 직접 접근은 안되고 함수를 통해서만 접근 가능하다. 캡슐화를 통해 만일의 상황(타인이 외부에서 조작, 불필요한 접근 등)을 막아 데이터를 보호할 수가 있다.(정보 은닉, Hiding) 근데 캡슐화를 해서 데이터를 묶고 숨기는 걸까? 우선 클래스 내부에 여러 함수를 포함시킬 수 있어서 프로그램을 보는 단위가 커지고 관리가 쉽다. 그리고 내부 데이터를 숨겨서 좀 더 자유롭게 변경이 가능하고 유지 보수가 쉽다. 2. 상속성(inheritance) 상위 개념의 특징을 하위 개념이 물..
-
[C++] 1. C++ 프로그래밍 언어2020년도 1학기/객체지향언어 2020. 3. 27. 11:14
C vs C++ C -절차적 언어(Procedural Language) : 순서대로 프로그래밍, 함수들의 집합으로 프로그래밍 C++ -객체지향언어(Object-Oriented Language) : 객체에 중심을 둔 , 클래스(class, 데이터와 함수들로 이루어짐)의 집합으로 프로그래밍 -C만큼 효율적(메모리를 적게 사용) & 실행 속도가 빠름(JAVA와는 대비되는 점) -일반화 프로그래밍(generic programming) 기능 -예외 처리(exception handling) 프로그래밍 기능 -논리(bool)형 -function overloading 기능 -namespace 사용(이름은 같지만 용도가 다르게 사용 가능) 절차적 프로그래밍 vs 객체 지향 프로그래밍 절차적 프로그래밍 -알고리즘(algo..
-
[디지털] 1. 2진 숫자, 논리레벨과 디지털 파형2020년도 1학기/디지털공학및실습 2020. 3. 25. 23:48
아날로그? 디지털? 2진 숫자와 논리레벨 2진 숫자는 말 그대로 2진법(binary digit)을 사용하여 숫자를 나타내는 것이다. 오직 1과 0만을 사용하고, 1은 HIGH로 0은 LOW로 표현한다. 이렇게 표현하는 것을 양 논리(positive logic)라고 한다. 이 때 비트(bit)는 한 개의 이진 숫자를 의미한다. 논리 레벨(logic level)은 디지털 논리 시스템에서 0과 1을 표현하기 위해 사용하는 전압을 말한다. 보통 데이터시트에서 High-level input voltage는 HIGH로 인식되는 최소 입력 전압을 나타내고, Low-level input voltage는 LOW로 인식되는 최대 입력 전압을 말한다. 최소, 최대 전압 사이에 있는 전압 구간은 허용되지 않는 전압 범위이므로..