분류 전체보기 254

MIDI 파일 MIDI 이벤트의 Control 데이터와 악기 이름

안녕하세요. 언제나휴일입니다. MIDI파일을 분석할 때 미디 이벤트의 컨트롤과 악기 이름에 관한 값과 내용입니다. 프로그래밍 할 때 복붙할 수 있게 올려봅니다. Control Data "0 Bank Select", "1 Modulation Wheel", "2 Breath controller", "3 Undefined", "4 Foot Pedal", "5 Portamento Time", "6 Data Entry", "7 Volume", "8 Balance", "9 Undefined", "10 Pan position", "11 Expression", "12 Effect Control 1", "13 Effect Control 2", "14 Undefined", "15 Undefined", "16 Ribbon ..

[C#] 미디 분석 프로그램 만들기– 4. 트랙 청크 분석 4.4 Midi Event

1. 유튜브 동영상 강의 미디 분석 프로그램 - 트랙 청크 분석, 미디 이벤트 2. 미디 이벤트 앞에서 우리는 미디 파일은 청크들의 집합이라는 것과 청크에는 Header 청크와 Track 청크가 있다는 것을 확인하였습니다. 그리고 Track 청크에는 이벤트 정보들이 있고 이벤트 정보에는 메타 이벤트, 미디 이벤트, 시스템 이벤트가 있다는 것도 소개하였습니다. 바로 이전 강의에서는 메타 이벤트를 분석하는 코드를 작성했었죠. 이번에는 미디 이벤트를 분석하는 코드를 작성하기로 할게요. Track 청크는 이벤트들로 구성한다고 앞에서 얘기를 했고 이벤트는 delta time이 오고 그 뒤에 오는 상태 정보가 0~0xEF까지는 미디 이벤트, 0xF0~0xFE까지는 시스템 이벤트, 0xFF는 메타 이벤트라고 하였습니..

[C#] 미디 분석 프로그램 만들기– 4. 트랙 청크 분석(MTrk) 4.3 Meta Event 상세 구현(키, 박자 정보 등)

1. 유튜브 동영상 강의 미디 분석 프로그램 - 트랙 청크 분석, Meta Event 2. 해야 할 일 이전 글에서 미디 파일의 Track 청크의 메타 데이터에 관해 다루고 이를 분석하는 소스 코드를 소개하였습니다. 그런데 메타 데이터의 내용을 무조건 문자열로 구성하고 있다는 가정으로 정보를 제공하였습니다. 하지만 메타 데이터 내용은 약속된 수치로 특별한 의미를 나타내는 것도 있어요. 대표적으로 박자와 키 정보 등을 들 수가 있어요. 이번에는 메타 데이터의 내용을 상세하게 분석하여 제공하는 기능을 구현하기로 할게요. 3. MetaEvent 클래스 추가 구현 ehmidi 라이브러리의 MetaEvent 클래스에 상세 정보를 제공하는 MetaDescription 속성을 추가합시다. 템포나 박자 등을 계산하는 ..

[C#] 미디 분석 프로그램 만들기 – 4. 트랙 청크 분석(MTrk) 4.2 Meta Event

1. 유튜브 동영상 강의 미디분석 프로그램 만들기 - 트랙 청크 분석, 미디이벤트 2. Meta Event 이전 강의에서 미디 파일에서 Track 청크의 기본 구조와 delta time을 구하는 것에 관하여 다루었어요. 이번에는 Track 청크의 Meta 이벤트에 관하여 알아보고 분석하는 소스 코드를 소개할게요. Track 청크의 이벤트는 delta time과 이벤트 정보로 이루어져 있다는 것을 이전 게시글에서 얘기했어요. 또한 이벤트 정보는 Meta 이벤트, System 이벤트, Midi 이벤트 중에 하나라는 것도 소개했었죠. 이벤트 정보가 Meta 이벤트, System 이벤트, Midi 이벤트 중에 어떤 것인지를 확인하려면 delta time 뒤에 오는 첫 번째 바이트 정보의 값을 확인하여야 합니다...

[C#] 미디 분석 프로그램 만들기– 4. 트랙 청크 분석(MTrk) 4.1 delta time 구하기

1. 유튜브 동영상 강의 미디 분석 프로그램 만들기 - 트랙 청크, deltatime 2. 트랙 청크의 구조와 delta time 앞에서 미디 파일은 청크의 집합이라는 것과 청크에는 헤더 청크와 트랙 청크가 있다는 것을 확인하였습니다. 또한 헤더 청크의 내용을 분석하는 것까지 살펴보았습니다. 이번에는 트랙 청크를 분석하는 것을 할 거예요. 그리고 제일 먼저 delta time을 구하는 코드를 구현해 볼 거예요. 트랙 청크는 청크 데이터 부분에 트랙 이벤트 정보들로 구성합니다. 트랙 이벤트 정보는 해당 이벤트가 미디가 시작하여 어느 시점에 발생할 이벤트인지를 결정하는 delta time 부분이 먼저 오며 이후에 이벤트 정보가 옵니다. 이벤트 정보는 메타 이벤트, 시스템 이벤트, 미디 이벤트로 구분할 수 있..

Part 20. 문자열

Part 20. 문자열 68. 문자열 문자열 - C언어 프로그램을 작성하다 보면 문자열 데이터를 사용할 때가 많아요. 대부분의 프로그래밍 언어에서는 문자열을 관리하는 별도의 형식을 제공하지만 C언어는 문자열 형식을 제공하지 않아요. 그렇다고 C언어에서 문자열 데이터를 표현할 수 없는 것은 아니예요. C언어에서는 문자열을 char 형을 원소로 하는 배열이나 char 형을 원소로 하는 포인터 형식으로 문자열을 표현할 수 있어요. 그리고 문자열 데이터를 표현할 때 쉽게 표현할 수 있게 쌍 따옴표를 사용하여 문자열을 표현할 수 있어요. #define MAX_NAME_LEN 50 char name[MAX_NAME_LEN + 1] = "hello"; const char *str = "yahoo"; char 형식 원..

[C#] 미디 분석 프로그램 만들기– 3. Head 청크, MThd

1. 유튜브 동영상 강의 미디 분석 프로그램 만들기 - 헤더 청크 분석 2. 해야 할 일과 이론 이전 글에서 미디 파일은 청크들의 집합이라는 얘기와 함께 이를 확인하는 C# 소스 코드를 소개하였습니다. 이번에는 미디 파일의 청크 중에 Head 청크의 구조를 알아보고 이를 분석하는 C# 소스 코드를 소개할게요. 미디 파일의 head 청크는 14 바이트로 구성합니다. 청크 타입부분의 값은 ASCII 코드에서 Mthd에 해당하는 값(16진수로 4D 54 68 64)이 옵니다. 헤드 청크의 길이는 6바이트입니다. Head 청크의 데이터는 포멧, 트랙 개수, division으로 구성합니다. 포멧은 2바이트 차지하며 0,1,2 중에 하나입니다. 0: 단일 트랙, 1: 다중 트랙(여러 악기를 표현하기 쉬움), 2: ..

[C#] 미디 분석 프로그램 만들기– 2. 청크 목록 분석

1. 유튜브 동영상 강의 미디분석 프로 그램 만들기 - 청크 목록 분석 2. 해야 할 일 이번에는 미디 파일 구조를 간단히 알아보고 이를 분석하는 간단한 응용 프로그램을 작성해 보기로 할게요. 먼저 미디(Midi)는 Musical Instrument Digital interface로 전자악기의 디지털 데이터를 주고 받기 위한 표준 규격입니다. 여기에서는 미디 파일 구조를 점진적으로 분석하고 이를 이용하는 프로그램을 단계적으로 작성해 나가기로 할게요. 미디 파일은 덩어리(청크, Chunk)들의 집합입니다. 미디 파일은 여러 개의 청크들로 구성하고 있다는 거예요. 그리고 청크는 청크 유형(4바이트), 청크 길이(4바이트), 청크 데이터(청크 길이)의 조합이예요. 3. StaticFuns 정적 클래스 정의 S..

Part 19. 함수 만들기 실습

Part 19. 함수 만들기 실습 61. 함수 만들기 실습 시나리오 함수 만들기 실습 - C언어 이번에는 단순한 기능을 수행하는 함수들을 직접 만들고 호출해서 사용하는 실습을 진행할게요. 함수 만들기 실습은 해야 할 일을 분석하는 것부터 시작하며 이런 작업을 도메인(Domain) 분석이라고 불러요. 도메인 분석이 끝나면 적당한 이름을 결정하고 입력 매개변수 리스트와 반환 형식을 결정할 거예요. 그리고 테스트 코드를 작성한 후에 실제 함수를 구현하는 순서로 실습할게요. 여러분은 함수 만들기 과정을 통해 기본적인 알고리즘 논리 전개와 함수 원형을 결정하는 능력을 키워야겠죠. 어떤 종류의 프로그래밍 언어를 사용하더라도 이러한 능력은 필수적으로 필요해요. 여러분은 각 단계별로 진행하고 난 후에 책의 내용과 비교..

Part 18. 다양한 종류의 변수 (전역, 지역, 정적, 상수화)

Part 18. 다양한 종류의 변수 (전역, 지역, 정적, 상수화) 57. 전역 변수 다양한 종류의 변수, 전역 변수, 지역 변수, 정적 변수, 상수화 변수 - C언어 아시는 것처럼 C언어에서는 프로그램에서 관리할 데이터를 할당하고 관리하기 위해 변수에 관한 문법을 제공하고 있죠. C언어에서는 프로그램의 모든 함수에서 접근할 수 있는 전역 변수와 선언한 블록에서만 접근할 수 있는 지역 변수가 있어요. 그리고 이 외에도 정적 변수와 상수화 변수를 제공하는데 이들에 관해 하나 하나 살펴봅시다. 전역 변수 C언어에서는 변수 선언을 특정 블록 내부가 아닌 외부에 선언한 변수를 전역 변수라 불러요. 전역 변수는 프로그램 시작할 때 할당하고 프로그램 끝날 때 해제하며 프로그램 전제 영역에서 접근할 수 있죠. 예를 ..

Part 17. 매개변수 전달 원리

Part 17. 매개변수 전달 원리 56. 매개변수 전달 원리 매개변수 전달 원리 - C언어 이번에는 함수 호출에서 종료까지 수행 원리를 간단히 알아볼게요. 함수를 호출하면 해당 함수의 지역 변수를 위한 메모리를 스택에 할당해요. 그리고 피호출 함수의 동작이 끝나면 호출한 함수의 다음 부분을 수행하는 것이 기본 동작이죠. main 함수가 시작하면 main함수의 지역 변수를 위한 메모리를 스택에 할당해요. 그리고 Add 함수를 호출하면 입력 인자를 복사한 후에 Add 함수의 지역 변수를 할당한 후에 복사한 값으로 초기화를 수행하죠. 그리고 함수의 return 문을 만나면 자신의 스택 영역 바로 밑(호출 함수 스택의 맨 위)에 반환 값을 설정해요. 그리고 자신의 스택 메모리를 해제한답니다. 호출 결과를 대입..

Part 16. 함수 개요 그리고 프로그램

Part 16. 함수 개요 그리고 프로그램 52. 함수 개요 함수 개요 - C언어 소프트웨어를 만들 때 가장 많은 비용이 들어가는 것이 유지 보수 비용이라는 연구 결과가 계속 나오고 있어요. 그리고 점점 유지 보수 비용이 차지하는 비율도 높아지고 있답니다. 프로그램을 제작할 때 유지 보수 비용을 줄이는 여러 가지 방법이 있는데 그 중에 하나가 재사용성을 높이는 것이죠. 여러 프로그램에서 공통으로 사용할 수 있는 것들을 라이브러리로 만들어서 필요할 때 추가하여 사용하는 거예요. 여러 개의 컴포넌트(Component, 부품)로 만들고 필요한 부품을 결합하여 프로그램을 만들어서 재사용성을 높이기도 해요. 그리고 프로그래밍할 때 재사용성을 높이는 기본은 함수를 만들어 사용하는 것이예요. 대부분의 프로그래밍 언어..

4. WaferLine 예광탄 – 4.3 WaferLine 동작 구현 [Wafer 코팅 시뮬레이션]

유튜브 동영상 강의 Form1.cs 소스 코드 using System; using System.Windows.Forms; using WaferLineLib; namespace WaferLine_예광탄 { public partial class Form1 : Form { WaferLine wl = null; public Form1() { InitializeComponent(); wl = new WaferLine(1); } private void tbar_wafer_Scroll(object sender, EventArgs e) { if (wl == null) { return; } lb_wafer.Text = tbar_wafer.Value.ToString(); } private void tbar_pr_Scrol..

4. WaferLine 예광탄 – 4.2 WaferLine 클래스 정의 [Wafer 코팅 시뮬레이션]

1. 유튜브 동영상 강의 Wafer 코팅 시뮬레이션 - WaferLine 예광탄 WaferLine 소스 코드 using System; using System.Collections; using System.Collections.Generic; using WaferLineLib; namespace WaferLineLib { public class WaferLine : IEnumerable { public int No { get; } public int Spin { get; set; } public int Drop { get; set; } public WaferLine(int no) { No = no; Spin = 1000; Drop = 20; } List bwafers = new List(); List aw..

4. WaferLine 예광탄 – 4.1 시연 및 Layout [Wafer 코팅 시뮬레이션]

1. 유튜브 동영상 강의 WAFER 코팅 시뮬레이션 예광탄 2. WaferLine 예광탄 시연 WaferLine은 Wafer 추가, 코팅액 추가, 회전 속도 설정, 낙하 속도 설정, 코팅 시작 및 코팅한 Wafer를 확인하는 기능을 제공합니다. 여기에서는 WaferLine에 코팅해야 할 Wafer는 최대 200개를 보관할 수 있게 하드코딩할게요. 코팅액은 최대 20병을 보관할 수 있게 하드코딩합니다. 코팅액 1 병은 1000개의 쉘을 코팅할 수 있습니다. 코팅 완료한 Wafer는 보관에 제한이 없습니다. 3. WaferLine 예광탄 Layout WaferLine 예광탄의 자식 컨트롤을 배치합시다. Wafer(tbar_wafer)와 코팅액(tbar_pr), 회전속도(tbar_spin) 및 낙하속도(tba..

Part 15. 배열과 포인터 사용은 인덱스와 간접 연산자 [디딤돌 C언어]

Part 15. 배열과 포인터 사용은 인덱스와 간접 연산자 49. 간접 연산자 배열과 포인터 사용은 인덱스와 간접 연산자 [디딤돌 C언어] 피연산자로 포인터를 사용하는 더하기, 빼기 연산은 프로그램 메모리 주소를 계산하거나 상대적 거리를 계산하죠. 하지만 실제 개발자는 프로그램 메모리 주소를 아는 것은 큰 의미가 없어요. 개발자는 특정 프로그램 메모리 주소에 있는 값을 얻어오거나 설정하는 것을 원해요. C언어에서 포인터(배열 이름 포함)가 갖는 메모리 주소에 원하는 값을 설정하거나 얻어오는 방법은 크게 간접 연산자와 인덱스 연산자를 사용하는 방법이 있어요. 간접 연산자는 선언문이 아닌 코드 구문에서 포인터 형식을 피연산자로 오는 단항 연산자예요. 연산 기호는 포인터 변수를 선언할 때 사용한 지시 연산자 ..

Part 14. 배열과 포인터 그리고 산술 연산 [디딤돌 C언어]

Part 14. 배열과 포인터 그리고 산술 연산 45. 배열과 포인터 개요 배열과 포인터 개요 및 배열 선언문 동영상 강의 C언어에서는 같은 형식의 여러 데이터를 효과적으로 사용할 수 있는 배열을 제공하고 있어요. C언어에서 제공하는 기본 형식들은 변수가 관리하는 데이터가 하나여서 변수 이름은 갖고 있는 값을 의미하죠. 하지만 배열은 관리하는 데이터가 여러 개이므로 배열 이름이 특정 값을 대표할 수 없어요. C언어에서는 배열 이름은 관리하는 특정 값이 아닌 배열에 할당한 메모리의 시작 주소를 의미한답니다. 배열의 원소에 접근할 때는 배열 이름과 상대적 거리를 의미하는 인덱스 값을 사용하는 것이 일반적이예요. 예를 들어 3번째 원소를 접근하려면 시작 위치에서 거리 2이므로 인덱스 2를 사용해요. 따라서 상..

[C#] 미디 분석 프로그램 만들기 – 1. 프로젝트 소개

1. 유튜브 동영상 강의 미디 분석 프로그램 유튜브 동영상 강의 2. 프로그램 소개 미디 파일은 여러 개의 청크들로 구성합니다. 청크는 청크 타입과 청크 길이와 데이타로 구성하고 있는데 헤더 청크와 트랙 청크가 있어요. 이 외에 자세한 사항은 프로젝트를 진행하면서 하나 하나 설명하기로 할게요. 프로젝트 제작 순서는 다음과 같습니다. 청크 분석 헤더 청크 분석 트랙 청크 분석 메타 이벤트 분석 미디 이벤트 분석 시스템 이벤트 분석 미디 분석 프로그램 미디 분석 프로그램은 C# 언어와 Windows Forms 기술을 사용하여 구현합니다. 프로젝트를 진행하면서 미디 파일의 구조와 의미를 설명하기로 할게요. 그럼 다음 강의에서 만나요.

3. 라이브러리 만들기 [Wafer 코팅 시뮬레이션]

유튜브 동영상 강의 Wafer 코팅 시뮬레이션 - 라이브러리 만들기 안녕하세요. 언제나휴일입니다. 1. 해야 할 일 Wafer 클래스를 정의하고 Double Buffering 가능한 DPanel을 정의했습니다. 그리고 Wafer의 코팅 상태를 시각화하는 부분을 작성했습니다. Wafer 코팅 시뮬레이션에서 Wafer 클래스는 WaferLineLib에 정의할 것입니다. 그리고 DPanel과 Waper를 시각화하는 WaferPanel은 WaferLineControlLib에 정의할 것입니다. 이번에는 WaferLineLib와 WaferLineControlLib를 만드는 실습을 할 거예요. 물론 앞에서 만든 Wafer 클래스를 WaferLineLib에 추가하고 DPanel과 Panel을 시각화하는 부분을 Wafe..

2. Wafer 예광탄 [Wafer 코팅 시뮬레이션]

유튜브 동영상 강의 안녕하세요. 언제나 휴일입니다. 이번 강의는 Wafer 예광탄을 작성하는 실습입니다. 1. Wafer 클래스 소스 코드 namespace Wafer_예광탄 { /// /// Wafer 클래스 /// public class Wafer { static int last_wn;//가장 최근에 부여한 웨이퍼 일련 번호 readonly int wn;//웨이퍼 일련 번호 int[] cells = new int[100]; int now;//현재 코팅할 쉘 번호 /// /// 기본 생성자 /// public Wafer() { last_wn++; wn = last_wn;//웨이퍼 번호 순차 부여 } /// /// 현재 코팅하고 있는 쉘 번호 속성 - 가져오기 /// public int Now { get..

1. 프로젝트 소개 [Wafer 코팅 시뮬레이션]

유튜브 동영상 강의 Wafer 코팅 시뮬레이션 - 반도체 장비 제어 시스템 1. 개요 Wafer 코팅 시뮬레이션은 Wafer 코팅 설비 추가, 코팅 등의 작업을 시뮬레이션하는 솔루션입니다. 솔루션을 구성하는 컴포넌트는 두 개의 Windows 응용 프로그램과 세 개의 라이브러리로 구성합니다. 두 개의 Windows 응용 프로그램은 “WaferLine 공장 시뮬레이션”과 “중앙관제”입니다. 두 응용 모두 Windows Forms 앱(.NET Framework)입니다. WaferLine 공장 시뮬레이션에서는 Wafer 코팅 라인을 추가, 라인에 Wafer 추가, 코팅액 추가, Spin 속도 조절, 코팅액 낙하 속도 조절, 라인 가동, 라인 멈춤 등을 할 수 있습니다. 중앙관제에서는 공장과 소켓으로 연결하여 공..

매크로 및 정리하기(제어문)

43. 매크로 구문 C언어에서는 자주 사용하는 표현을 약속하여 쉽게 표현할 수 있게 매크로 구문을 제공하고 있어요. 매크로 구문은 자주 사용하는 표현을 약속한 후 개발자가 매크로 구문을 사용하여 쉽게 코드를 작성하는 문법이예요. 개발자가 매크로 구문으로 코드를 작성하면 컴파일러가 기계어 코드로 번역하기 전에 약속한 구문으로 바꾸어 줘요. 이러한 과정을 전개라 부르며 컴파일 전에 수행해서 전처리 구문이라고도 불러요. C언어에서는 #include문으로 다른 파일의 내용을 포함시키거나 #define문으로 매크로 구문을 약속하는 것이 대표적이죠. #include #include “파일명” #include 문은 다른 파일에 있는 내용을 포함시키는 매크로 구문이예요. 개발도구를 설치하면서 함께 설치한 파일들이 있는..

Kakao 번역 API와 .NET 음성 Speech를 이용한 번역 나래이터 만들기 1. 소개[언제나 WPF]

유튜브 동영상 강의 번역 나래이터 만들기 프로젝트 소개 00;00 인사 00:26 개발할 번역 나래이터 프로그램 시연 02:38 정의해야 할 형식들 소개 03:00 제작할 WrapkakoLib 라이브러리 소개 04:15 제작할 WrapSpeechLib 라이브러리 소개 안녕하세요. 언제나 휴일에 언휴예요. 이번에는 Kakao 번역 API와 .NET 음성 Speech 기술을 Mash up해 볼게요. 두 개의 기술 모두 사용하는 것은 크게 어렵지 않습니다. 그리고 최근에 응용이나 앱, 웹에서는 이러한 것을 지원하려고 노력하는 것 같네요. 실제 해당 기술을 사용해 본 적이 있다면 프로그램 제작에 걸리는 시간은 1시간~2시간 정도입니다. 여기에서는 이러한 기술을 경험해 보려는 이들을 위해 기술별로 제작해 나갈게요..

Kakao 번역 API와 .NET 음성 Speech를 이용한 번역 나래이터 만들기 2. 번역 라이브러리 만들기[C#]

유튜브 동영상 강의 [WPF] 번역 나래이터 - 번역 라이브러리 만들기 KakaoTransApi 소스 코드 using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text; using System.Web.Script.Serialization; namespace WrapKakaoLib { /// /// 언어 정보 열거형 /// public enum LanguageInfo { kr, en, jp, cn, vi, id, ar, bn, de, es, fr, hi, it, ms, nl, pt, ru, th, tr, MAX_LI } /// /// 카카오 음성 API - 정적 클래스 /// public..

Kakao 번역 API와 .NET 음성 Speech를 이용한 번역 나래이터 만들기 3. WrapSpeechLib 만들기[C#]

유튜브 동영상 강의 [WPF] 번역 나래이터 - WrapSpeechLib 만들기 Narrator 소스 코드 using System.Collections.Generic; using System.Globalization; using System.Speech.Synthesis; using WrapKakaoLib; namespace WrapSpeechLib { /// /// 번역 나래이터 클래스 /// public class Narrator { static SpeechSynthesizer speecher = new SpeechSynthesizer(); static Dictionary voice_dics = new Dictionary(); static Narrator() { foreach (InstalledVoi..

Kakao 번역 API와 .NET 음성 Speech를 이용한 번역 나래이터 만들기 4. 최종 번역 나래이터 구현[ WPF]

유튜브 동영상 강의 번역 나래이터 구현 화면 배치 MainWindow.xaml.cs 소스 코드 using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using WrapKakaoLib; using WrapSpeechLib; namespace 번역_나래이터_v0._1 { /// /// MainWindow.xaml에 대한 상호 작용 논리 /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void btn_speek_Click(object sender, RoutedEventArgs ..

Part 13. 제어문 II (반복문, 별출력)

C언어 - 반복문, 별출력 00:20 반복문 01:14 [실습] while문 1에서 100까지 합계 구하기 02:30 [실습] do while문 1에서 100까지 합계 구하기 03:11 [실습] do while문 음수 입력 전까지 합계 구하기 04:34 [실습] for문 1에서 100까지 합계 구하기 05:43 별출력 05:51 [실습] 별출력 - 속이 빈 정사각형 출력 41. 반복문 (while, do while, for) 반복문은 특정 조건이 참일 동안 반복해서 구문을 수행하는 구문이예요. C언어에서는 세 가지 종류의 반복문을 제공합니다. while(조건 표현식) 반복 수행 구문; do 반복 수행 구문 while(조건 표현식); for(초기 수행문; 조건 표현문; 조건 변화 구문) 반복 수행 구문; ..

[C++] 3. 입출력 개요 (cin, cout)

3. 입출력 개요 (cin, cout) C++ 입출력 개요 cin cout 여기에서는 앞으로 C++ 문법 학습하기 위해 필수적으로 사용할 입출력에 관한 사항을 간략하게 살펴보기로 할게요. C언어에서는 stdio.h 파일을 포함하여 표준 입출력 함수들을 사용했었죠. C++에서도 C언어에서 제공하는 함수들을 사용할 수 있어요. 하지만 C++언어에서 콘솔 화면에 출력하거나 키보드에서 입력받을 때 printf 함수나 scanf 함수를 사용하는 이들은 거의 없어요. C++ 언어에서는 iostream 파일을 포함하여 cout과 cin 개체를 사용할 수 있어요. iostream은 STL(Standard Template Library,표준 템플릿 라이브러리)에서 제공하는 클래스이며 cout과 cin은 미리 선언한 전역..

[C++] 1. 들어가기에 앞서 2. C++ 언어 소개 및 책의 기술 범위

C++ 언어 소개 1. 들어가기에 앞서 이 책은 C언어를 학습한 이들을 이가 C++언어를 학습하기 위해 작성하였습니다. C++언어는 C언어와 변수나 연산, 함수 등의 기본 문법은 비슷하지만 클래스와 템플릿 문법을 있습니다. 특히 C++ 언어에서 클래스는 OOP(Object Oriented Programming, 개체(혹은 객체) 지향 프로그래밍) 방식으로 프로그래밍할 수 있게 새롭게 추가한 문법이죠. 이러한 특징으로 인해 C언어와 C++은 접근 방식에서 많은 차이를 갖고 있습니다. 이 책은 C++입문자를 위한 책이지만 단순히 C++문법을 다루고 있는 책은 아니예요. 오히려 C++에 새롭게 추가한 문법을 OOP에 어떻게 활용하는지에 관한 부분이 많습니다. 이를 위해 문법 외에도 OOP의 특징과 OOP 프로..

Part 12. 제어문 I (조건문과 선택문)

C언어 - 제어문 (조건문, 선택문) C언어 - 제어문 실습 (조건문, 선택문) 00:14 조건문 00:53 [실습] if 문 - 홀수일 때 출력 01:58 [실습] if else 문 - 3의 배수인지 판별하여 출력 02:53 선택문 03:49 [실습]if 문으로 학점 출력하기 06:10 [실습] switch case 문으로 학점 출력하기 39. 조건문 (if else) C언어에서는 조건에 따라 수행할 작업을 판단하거나 반복해서 수행하는 등의 제어문을 제공해요. 조건 표현식에 따라 구문을 수행하는 조건문과 조건 표현식이 참일 동안 반복해서 구문을 수행하는 반복문, 표현식의 값에 따라 수행할 위치를 선택하는 선택문 등이 있어요. 그리고 미리 특정 코드에 대응하는 표현을 약속하는 매크로 구문을 제공하고 있어..