일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 무료 동영상 강의
- c언어
- 캡슐화
- 추천
- 프로젝트
- 졸업 작품
- 소스 코드
- 유튜브 동영상 강의
- 동영상
- 표준 입출력
- 언제나 휴일
- Windows Forms
- 동영상 강의
- c#
- 클래스 다이어그램
- 실습으로 다지는 c#
- 강의
- 소켓 통신
- 알고리즘
- 원격 제어 프로그램
- 언제나휴일
- C++
- 파이썬
- 졸업 작품 소재
- 안드로이드 앱 개발
- 표준 라이브러리 함수
- 실습
- 충남 천안
- 네트워크 프로그래밍
- 산책하기 좋은 곳
- Today
- Total
목록c# (67)
프로그래밍 언어 및 기술 [언제나휴일]
[실습으로 다지는 C#] 직접 연관 관계(Direct Association) 실습 – 계산기, 사각형 이번 강의는 직접 연관 관계(Direct Association) 실습입니다. 직접 연관 관계는 명령을 내리는 형식과 명령을 수행하는 형식 사이의 관계로 가장 흔한 관계입니다. 이번 실습은 계산기와 사각형을 소재로 실습해 봅시다. 계산기에서는 사각형 개체를 입력받아 면적을 계산하는 기능을 제공합니다. 사각형은 너비와 높이를 멤버 필드로 갖고 이들 값을 가져오기 속성을 제공합니다. 이를 클래스 다이이어그램으로 표시하면 계산기에서 사각형으로 실선 화살표로 표현할 수 있어요.namespace 직접_연관_관계_실습{ class Rectangle { public int Height ..
[실습으로 다지는 C#] 구성(Composition) 관계 실습 – 사람, 눈 이번 강의는 구성(Composition) 관계 실습입니다. 소재는 사람과 눈입니다. 구성 관계는 소유 개체를 생성할 때 내부 개체가 같이 만들어지는 특징을 갖고 있습니다. 클래스 다이어그램을 바탕으로 코드를 구현해 보세요. 주의할 점은 Man 생성자에서 Eye 개체를 생성해야 한다는 것입니다. 별다른 알고리즘을 갖고 있는 것이 아니어서 코드 설명은 생략할게요.using System;namespace 구성_관계_실습{ class Eye { double sight; bool opened; public bool Opened { get ..
[실습으로 다지는 C#] 집합(Aggregation) 관계 실습 – 쇼핑 센터, 상품 이번 강의는 집합(Aggregation) 관계를 코드로 표현하는 실습입니다. 실습 소재는 쇼핑 센터와 상품입니다. 집합 관계는 이처럼 컬렉션과 원소 사이의 관계입니다. 상품은 상품 이름, 가격, 회사 이름, 일련 번호를 갖습니다. 일련 번호는 순차적으로 자동 부여하며 상품은 쇼핑 센터에 입고할 수 있게 표현해 봅시다. 먼저 클래스 다이어그램을 작성해 보세요. 이를 코드로 작성합시다. namespace 집합_관계{ public class Product { public string Name { get; private set; } ..
[실습으로 다지는 C#] 일반화 관계(Generalization) 실습 – 포유류, 호랑이, 사자 이번 강의에서는 일반화 관계(Generalization)를 코드로 표현하는 실습입니다. 일반화 관계는 “A는 B이다.”로 표현할 수 있는 형식 사이의 관계라고 했어요. 이번 실습에서는 “호랑이는 포유류이다.”, “사자는 포유류이다.”를 표현할 거예요. 포유류는 공통적으로 새끼에게 젖을 물리는 행위를 합니다. 그리고 울기도 합니다. 물론, 호랑이와 사자는 울음 소리가 다르죠. 이러한 내용을 실습해 볼 거예요. 먼저 클래스 다이어그램을 작성하면 다음처럼 작성할 수 있어요.여러분께서 실습할 내용과 클래스 다이어그램을 토대로 구현을 해 보세요. 그리고 비교해 보시기 바랍니다.기반 형식 포유류(Mammal)에는..
[실습으로 다지는 C#] 클래스 간의 관계 이번 강의에서는 클래스 간의 관계를 알아볼 거예요. 클래스 다이어그램으로 관계를 나타낼 때 7가지의 관계가 있어요.일반화 관계(Generalization)집합 관계(Aggregation)구성 관계(Composition)직접 연관 관계(Direct Associtaion)연관 관계 (Association)의존 관계 (Dependency)실현 관계 (Realization)일반화 관계(Generalization)는 기반 형식과 파생 형식 사이의 관계입니다. “피아니스트는 음악가이다.” 처럼 “이다.”로 표현할 수 있는 형식 사이의 관계입니다. 음악가 종류에는 피아니스트, 드러머, 기타리스트 등이 있죠. 이 때 음악가를 기반 형식이라고 말하고 피아니스트를 파생 형식이라..
[실습으로 다지는 C#] 캡슐화 실습 – 학생 클래스 정의하기이번 강의에서는 캡슐화 실습을 해 봅시다. 캡슐화는 여러 개의 멤버를 하나의 형식으로 묶는 과정을 말합니다. 이번 실습에서는 학생 클래스를 정의하는 실습을 해 보기로 할게요. 실습할 학생 클래스의 멤버는 다음과 같아요.학생 클래스 멤버 필드 아이큐 매력 번호 - 읽기 전용, 순차 부여 이름 가장 최근에 부여한 번호 - 정적 멤버 멤버 메서드 생성자(이름) 공부하다(횟수) 춤추다(횟수) 노래하다(횟수) ToString 재정의 멤버 속성 get은 public, set privateOOP 프로그래..
[실습으로 다지는 C#] 랜덤 값 맞추기 이번 강의에서는 컴퓨터가 생각한 랜덤 값(0~99)을 사용자가 10번 시도 내에 맞추는 프로그램을 만들어 봅시다. 먼저 문제를 해결하기 위한 논리를 생각하고 의사 코드(pseudo code)로 표현해 보세요. 여러분께서 먼저 작성한 후에 비교해 보세요.rnum := 랜덤 값반복(tcnt:1->10) guess := 추측값 입력 조건(guess is equals rnum) 반복문 탈출 조건(guess>rnum) 더 작다고 알려준다. 아니면 더 크다고 알려준다.조건(시도 횟수가 10보다 작거나 같..
[실습으로 다지는 C#] 암스트롱의 수 이번 실습에서는 암스트롱의 수를 판별하는 메서드를 만들어 봅시다. 암스트롱의 수는 ABC = AXAXA + BXBXB + CXCXC인 정수를 말합니다. 예를 들어 153 = 1 = 125 + 27 입니다. 이러한 수를 암스트롱의 수라고 말합니다. 이러한 암스트롱의 수를 판별하는 메서드를 만들기 전에 먼저 메서드 이름과 입력 매개 변수와 리턴 형식을 결정합니다. 언제나 알고리즘은 입력 인자와 수행 결과가 어떠한 것이 올 수 있는지를 판단할 수 있어야 합니다. 메서드 이름은 IsAmstrong으로 정할게요. 그리고 입력 인자는 판별할 정수가 필요하므로 정수형 변수 num으로 결정하고 반환은 판별 결과이므로 bool로 결정합시다.bool IsAmstrong(int num..
[실습으로 다지는 C#] 두 개의 정수 사이의 합계 구하기 이번 강의에서는 두 개의 정수를 입력 받은 후에 두 개의 정수 사이의 합계를 구하는 실습을 해 봅시다. 먼저 어떻게 해야 문제를 해결할 수 있을지 생각한 후에 의사 코드(pseudo code) 형태로 작성해 보세요. 작성한 후에 비교해 보시기 바랍니다.input := 정수를 입력 받는다. 조건(정수로 변환(input,out num1)이 실패) 오류를 출력 후 알고리즘 종료 input := 정수를 입력 받는다. 조건(정수로 변환(input,out num2)이 실패) 오류를 출력 후 알고리즘 종료 조건(num1두 수를 교환(ref num1, ref num2) temp:= num1 num1:= num2 num2:= ..
[실습으로 다지는 C#] 두 개의 정수를 입력받아 작은 수가 큰 수의 약수인지 판별이번 강의에서는 두 개의 정수를 입력받아 작은 수가 큰 수의 약수인지 판별하는 실습을 할 거예요. 이를 위해 먼저 어떠한 알고리즘으로 수행해야 하는지 고민해 보세요. 그리고 난 후에 의사 코드(pseudo code)를 작성해 봅시다. 여러분께서 먼저 작성하고 난 후에 비교해 보세요. input := 정수를 입력 받는다.조건(정수로 변환(input,out num1)이 실패) 오류를 출력 후 알고리즘 종료input := 정수를 입력 받는다.조건(정수로 변환(input,out num2)이 실패) 오류를 출력 후 알고리즘 종료큰 수를 num1에 작은 수를 num2로 설정조건(num1을 num2로 나누었을 때 몫이 0..
[실습으로 다지는 C#] 두 개의 정수를 입력받아 큰 수를 출력 이번 강의부터 제어문에 관한 실습을 진행할 거예요. 제어문 중에서도 이번 실습에서는 조건문 if else에 관한 실습입니다. 그리고 첫 번째 주제는 두 개의 정수를 입력받아 큰 수를 출력하는 실습입니다. 프로그래밍을 할 때 해야 할 작업을 바로 코드로 작성하는 것은 초반에 조급함을 달래줄 수는 있을 거예요. 하지만 실제 작업을 완료하려면 많은 시행 착오로 비용이 많이 들어갈 수 있어요. 가급적이면 해야 할 작업을 의사코드(psuedo code)나 다이어그램 등을 이용하여 논리를 전개해 본 후에 타당하다면 코드로 옮기는 습관을 가져보세요. 이와 같이 작업하면 초반에 작업이 더딘 느낌이 들 거예요. 하지만 실제 작업을 완료하기 위해 들어가는..
[실습으로 다지는 C#] 정수와 소수점 이하 자릿수 결정하기이번 강의에서는 숫자를 출력할 때 정수와 소수점 이하 자릿수를 지정하는 방법을 알아볼거예요. 다음은 자릿수를 지정하는 표현과 예를 간략하게 나타낸 것입니다.다음은 이번 실습에 사용할 변수 선언입니다.double dv = 1234.123456789;int iv = 123;포멧 문자열에 0의 갯수는 정수 자릿수를 의미하며 빈 자리는 0을 출력합니다.//0의 갯수 = 정수 자릿수(빈 자리는 0 출력) Console.WriteLine("{0:000000}", iv); Console.WriteLine("{0:000000}", dv);실행 결과000123001234“D” 형식 지정자 뒤에 정수 표현도 정수 자릿수를 의..
[실습으로 다지는 C#] 숫자 출력 – 형식 지정자 이용하기 이번 실습에서는 형식 지정자를 이용하여 숫자를 출력하는 방법을 알아보기로 할게요. 이미 이전 강의에서는 출력할 때 문자열 출력 포멧을 알아보았죠.{index[,alignment][:formatString]}{인덱스[,배치][:포멧문자열]} 포멧 문자열에는 출력할 내용을 어떠한 형식으로 출력할 것이지 나타내는 표현도 나타낼 수 있습니다. 이를 형식 지정자라 불러요.이번 실습에서는 형식 지정자를 이용하여 숫자를 표현하는 방법을 다룰거예요. 다음은 숫자를 표현할 때 사용하는 형식 지정자와 간략한 예를 나타낸 것입니다.먼저 실습에 사용할 변수를 선언하세요.int iv = 12345;double dv = 12345.6789;double dv2 = 0.2..
[실습으로 다지는 C#] 문자열 출력 포멧프로그래밍 언어를 배울 때 출력문은 언제나 제일 먼저 만납니다Console.WriteLine("Hello, World");이번 실습에서는 문자열 출력 포멧에 관한 사항입니다.문자열 출력 포멧은 Console.WriteLine 메서드는 string.Format 메서드에서 같은 방식으로 표현할 수 있습니다. 이는 둘 다 문자열을 첫 번째 인자로 받기 때문입니다.using System;namespace Demo{ class Program { static void Main(string[] args) { string str = string.Format("Hello, World"); Console.W..
안녕하세요. 언제나 휴일에 언휴예요.첫 번째 응용, Form 배경색 Toggle [WinForm with C#]Windows Forms 프로그래밍 실습 강의 “WinForm with C#”을 시작할게요.첫 번째 실습은 Form 배경색을 Toggle하는 응용입니다.1. Windows Forms 응용 만들기2. Form 속성 설정하기 Form의 Text 속성3. Form 이벤트 핸들러 만들기 Form의 Load 이벤트 핸들러 Form의 MouseClick 이벤트 핸들러4. 소스 코드 구현 이벤트 핸들러 구현 배경 색 Toggle 변경 메서드 구현1. Windows Forms 응용 만들기첫 번째 실습이죠. Visual Studio를 실행한 이후에 만드는 과정을 소개할게요.이 강의에서 사용할 ..
3. Console 입출력 개요 프로그래밍 언어를 배울 때 출력문은 제일 먼저 만나죠. 이 책에서도 첫 번째 프로그램인 "Hello, World"에서 Console.WriteLine("Hello, World!"); 를 사용했어요. Console.WriteLine("Hello, World!"); 이번 장에서는 Console 클래스를 이용하여 출력하는 방법과 일력받는 부분에 관하여 알아볼게요. 3.1 서식 지정 문자열 Console.WriteLine 메서드에 다양한 인자를 원하는 형태로 출력하려면 첫 번째 입력 인자로 서식 지정 문자열을 전달해야 합니다. 수나 날짜, 열거형 등을 원하는 형태로 출력할 때 효과적이죠. 서식 지정 문자열은 인덱스, 배치, 포멧 문자열로 구성합니다. {index [,alignme..
다루는 내용 2.1 메모리 크기 2.2 논리 형식 bool 2.3 문자 형식 char 2. 기본 형식 C#에서는 관리할 데이터를 표현하기 위해 형식과 변수를 제공합니다. 형식은 표현할 데이터 종류를 약속한 것입니다. 이러한 형식은 변수 선언이나 개체 생성을 통해 구체화합니다. 변수는 구체화 한 데이터에 접근하기 위해 사용하는 것입니다. C#에서 형식은 이미 제공하는 기본 형식과 개발자가 정의해서 사용하는 사용자 정의 형식이 있습니다. 다음은 System namespace에 정의한 기본 형식입니다. C# 형식에는 기본 형식과 사용자 형식이 있다고 하였습니다. 이 중에 사용자 형식에는 클래스, 구조체와 열거형이 있어요. 이들에 대해서는 뒤에서 다시 자세하게 다룰게요. 형식은 분류 방법에 따라 값 형식, 참조..
1. C# 소개 안녕하세요. 언제나 휴일입니다. 컴퓨터 혹은 스마트 기기 등에서 동작하는 프로그램을 만들 때 사용하는 언어는 매우 다양합니다. 그 중에서 .NET Framework에서 동작하는 프로그램을 만들 때 가장 추천하는 언어는 C#입니다. .NET Framework는 마이크로소프트 사에서 개발한 윈도우즈 프로그램 개발 및 실행 환경입니다. 개인용 컴퓨터 뿐만 아니라 다양한 스마트 기기에 설치하여 사용할 수 있습니다. 당연히 C# 언어를 이용하면 개인용 컴퓨터를 비롯하여 다양한 기기에서 동작 가능한 프로그램을 개발할 수 있습니다. (물론 우리나라에서 .NET Framework는 거의 Windows O/S를 탑재한 컴퓨터 환경입니다.) .NET Froawork 에는 공통으로 제공하는 라이브러리를 포함..
1. 유튜브 동영상 강의 미디 분석 프로그램 - 미디 분석기, 트리 뷰 2. 해야 할 일 드디어 미디 분석 프로그램 마지막 강의입니다. 이번 강의에서는 TreeView에 청크의 내용을 상세하게 보여주는 부분과 노드를 선택하였을 때 대응하는 바이너리를 DataGridView에서 확인하기 쉽게 선택해서 보여주는 부분을 구현합니다. 3. MakeChunkNode 메서드 수정 미디 분석기 프로그램 MainForm.cs에서 MakeChunkNode 메서드를 수정합시다. chunk가 헤더인지 트랙인지에 따라 상세 노드를 만들어 매다는 메서드를 만들어 호출합시다. private TreeNode MakeChunkNode(Chunk chunk) { TreeNode tn = new TreeNode(chunk.ToStrin..
1. 유튜브 동영상 강의 미디 분석 프로그램 - 미디 분석기 2. 해야 할 일 이번 강의에서는 지난 강의에서 청크 목록을 ListBox에 추가할 때 발생하는 크로스스레드 문제를 해결할 거예요. 그리고 ListBox에 청크를 선택하면 청크의 원본 이진 데이터를 Hexa 값으로 DataGridView에 보여주는 작업을 할 거예요. 이 외에도 Header 클래스에 Division에 관한 코드를 수정합니다. 3. 크로스 스레드 문제 해결 크로스 스레드 문제는 폼이나 컨트롤을 생성한 스레드가 아닌 스레드에서 폼이나 컨트롤의 속성을 변경하는 등의 작업을 할 때 발생합니다. 이에 관한 자세한 사항은 크로스 스레드 발생 원인 및 해결하기를 참고하세요. 폼이나 컨트롤에는 InvokeRequired 속성을 갖고 있습니다...
1. 유튜브 동영상 강의 미디 분석 프로그램 - 미디 분석기 2. 해야 할 일 이전강의까지 미디 파일을 분석하는 ehmidilib를 만들었습니다. (*진행하면서 ehmidilib에 새로운 형식 및 기능을 추가합니다. *) 이번 강의부터 ehmidilib를 이용하는 미디분석기 프로그램을 작성하기로 합시다. 미디분석기 프로그램은 Windows Forms 앱(.NET Framework) 입니다. 이번 강의에서는 메인 폼에 컨트롤을 배치하고 미디 파일을 열어서 청크 목록을 보여주는 부분까지 구현할거예요. 미디 파일을 여는 작업을 위해 “파일 열기 대화상자”인 OpenFileDialog를 사용합니다. 미디 파일에 청크 목록을 분석하는 작업은 ehmidilib에 MidiParser 클래스를 추가하여 구현할 거예요...
1. 유튜브 동영상 강의 미디 분석 프로그램 - 트랙 청크 분석, System Event 2. System Event Message 현재 미디 파일에 헤드 청크와 트랙 청크를 분석하는 작업을 진행하고 있습니다. 현재 헤드 청크는 상세 분석하였고 트랙 청크도 메타 이벤트와 미디 이벤트는 분석하는 기능까지 구현했어요. 이번 강의에서는 시스템 이벤트를 분석하는 작업을 진행할게요. 앞에서 얘기했듯이 상태 바이트가 0xF0~FE까지가 시스템 이벤트입니다. 다음은 상태 바이트에 따른 시스템 이벤트에 관한 설명입니다. 0xF0 … 0xF7 ☞ System Exclusive Messages 상태 바이트 뒤에 제조사 ID가 오며 그 뒤에 오는 메시지는 가변적이며 맨 뒤에 0xF7이 옵니다. 0xF1 DD ☞ MTC Qu..
1. 유튜브 동영상 강의 미디 분석 프로그램 - 트랙 청크, 미디 이벤트 상세 분석 지난 강의에서 미디 이벤트를 분석하는 부분을 구현하였습니다. 이번 강의에서는 미디 이벤트의 상세 내용을 분석하기로 할게요. 2. 미디 이벤트 지난 강의에서 설명한 미디 이벤트 중에 이번에 상세 구현할 부분만 다시 설명하기로 할게요. Note off, Note on, Key after touch에서 F는 음 번호, S는 음 세기입니다. 음 번호를 12로 나누었을 때 몫은 옥타브이며 나머지는 음 이름입니다. Control Change에서 F는 컨트롤 번호이고 S는 새로운 값입니다. 컨트롤 번호에 대응하는 이름은 이전 글(MIDI 파일 MIDI 이벤트의 Control 데이터와 악기 이름)에 있어요. Program Change에..
1. 유튜브 동영상 강의 미디 분석 프로그램 - 트랙 청크 분석, 미디 이벤트 2. 미디 이벤트 앞에서 우리는 미디 파일은 청크들의 집합이라는 것과 청크에는 Header 청크와 Track 청크가 있다는 것을 확인하였습니다. 그리고 Track 청크에는 이벤트 정보들이 있고 이벤트 정보에는 메타 이벤트, 미디 이벤트, 시스템 이벤트가 있다는 것도 소개하였습니다. 바로 이전 강의에서는 메타 이벤트를 분석하는 코드를 작성했었죠. 이번에는 미디 이벤트를 분석하는 코드를 작성하기로 할게요. Track 청크는 이벤트들로 구성한다고 앞에서 얘기를 했고 이벤트는 delta time이 오고 그 뒤에 오는 상태 정보가 0~0xEF까지는 미디 이벤트, 0xF0~0xFE까지는 시스템 이벤트, 0xFF는 메타 이벤트라고 하였습니..
1. 유튜브 동영상 강의 미디 분석 프로그램 - 트랙 청크 분석, Meta Event 2. 해야 할 일 이전 글에서 미디 파일의 Track 청크의 메타 데이터에 관해 다루고 이를 분석하는 소스 코드를 소개하였습니다. 그런데 메타 데이터의 내용을 무조건 문자열로 구성하고 있다는 가정으로 정보를 제공하였습니다. 하지만 메타 데이터 내용은 약속된 수치로 특별한 의미를 나타내는 것도 있어요. 대표적으로 박자와 키 정보 등을 들 수가 있어요. 이번에는 메타 데이터의 내용을 상세하게 분석하여 제공하는 기능을 구현하기로 할게요. 3. MetaEvent 클래스 추가 구현 ehmidi 라이브러리의 MetaEvent 클래스에 상세 정보를 제공하는 MetaDescription 속성을 추가합시다. 템포나 박자 등을 계산하는 ..
1. 유튜브 동영상 강의 미디분석 프로그램 만들기 - 트랙 청크 분석, 미디이벤트 2. Meta Event 이전 강의에서 미디 파일에서 Track 청크의 기본 구조와 delta time을 구하는 것에 관하여 다루었어요. 이번에는 Track 청크의 Meta 이벤트에 관하여 알아보고 분석하는 소스 코드를 소개할게요. Track 청크의 이벤트는 delta time과 이벤트 정보로 이루어져 있다는 것을 이전 게시글에서 얘기했어요. 또한 이벤트 정보는 Meta 이벤트, System 이벤트, Midi 이벤트 중에 하나라는 것도 소개했었죠. 이벤트 정보가 Meta 이벤트, System 이벤트, Midi 이벤트 중에 어떤 것인지를 확인하려면 delta time 뒤에 오는 첫 번째 바이트 정보의 값을 확인하여야 합니다...
1. 유튜브 동영상 강의 미디 분석 프로그램 만들기 - 트랙 청크, deltatime 2. 트랙 청크의 구조와 delta time 앞에서 미디 파일은 청크의 집합이라는 것과 청크에는 헤더 청크와 트랙 청크가 있다는 것을 확인하였습니다. 또한 헤더 청크의 내용을 분석하는 것까지 살펴보았습니다. 이번에는 트랙 청크를 분석하는 것을 할 거예요. 그리고 제일 먼저 delta time을 구하는 코드를 구현해 볼 거예요. 트랙 청크는 청크 데이터 부분에 트랙 이벤트 정보들로 구성합니다. 트랙 이벤트 정보는 해당 이벤트가 미디가 시작하여 어느 시점에 발생할 이벤트인지를 결정하는 delta time 부분이 먼저 오며 이후에 이벤트 정보가 옵니다. 이벤트 정보는 메타 이벤트, 시스템 이벤트, 미디 이벤트로 구분할 수 있..
1. 유튜브 동영상 강의 미디 분석 프로그램 만들기 - 헤더 청크 분석 2. 해야 할 일과 이론 이전 글에서 미디 파일은 청크들의 집합이라는 얘기와 함께 이를 확인하는 C# 소스 코드를 소개하였습니다. 이번에는 미디 파일의 청크 중에 Head 청크의 구조를 알아보고 이를 분석하는 C# 소스 코드를 소개할게요. 미디 파일의 head 청크는 14 바이트로 구성합니다. 청크 타입부분의 값은 ASCII 코드에서 Mthd에 해당하는 값(16진수로 4D 54 68 64)이 옵니다. 헤드 청크의 길이는 6바이트입니다. Head 청크의 데이터는 포멧, 트랙 개수, division으로 구성합니다. 포멧은 2바이트 차지하며 0,1,2 중에 하나입니다. 0: 단일 트랙, 1: 다중 트랙(여러 악기를 표현하기 쉬움), 2: ..
1. 유튜브 동영상 강의 미디분석 프로 그램 만들기 - 청크 목록 분석 2. 해야 할 일 이번에는 미디 파일 구조를 간단히 알아보고 이를 분석하는 간단한 응용 프로그램을 작성해 보기로 할게요. 먼저 미디(Midi)는 Musical Instrument Digital interface로 전자악기의 디지털 데이터를 주고 받기 위한 표준 규격입니다. 여기에서는 미디 파일 구조를 점진적으로 분석하고 이를 이용하는 프로그램을 단계적으로 작성해 나가기로 할게요. 미디 파일은 덩어리(청크, Chunk)들의 집합입니다. 미디 파일은 여러 개의 청크들로 구성하고 있다는 거예요. 그리고 청크는 청크 유형(4바이트), 청크 길이(4바이트), 청크 데이터(청크 길이)의 조합이예요. 3. StaticFuns 정적 클래스 정의 S..
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..