본문 바로가기
C# Tuple 튜플의 개념(클래스)과 사용 예제 7개 (List, var, string 응용) C# Tuple 튜플의 개념(클래스)과 사용 예제 7개 (List, var, string 응용) C# Tuple 고양이 한 마리가 방 안으로 들어옵니다. 이 고양이의 털은 노랗고, 부드럽습니다. 튜플은 이런 정보를 모두 저장할 수 있는 클래스입니다. 튜플의 인스턴스들은 변경할 수 없는(immutable) 고정 항목을 갖습니다. 그리고 Tuple의 타입은 Class라는 것을 잊지 마세요. 아래 예제에선 3개의 아이템을 갖는 튜플을 선합니다. 그리고, 아이템 1, 2, 3의 속성을 읽습니다. 변경하진 않습니다. (못합니다) 1234567891011121314151617181920212223242526272829303132using System; class Program{ static void Main() {.. 2017. 1. 17.
[JavaCC 강좌] 자바CC 설치, 사용법, 문법, API, 계산기 예제 [JavaCC 강좌] 자바CC 설치, 사용법, 문법, API, 계산기 예제 JavaCC 설치 1. https://javacc.dev.java.net/[클릭]에 접속한다. 2. javacc-5.0.zip을 다운받는다. 3. C 디렉터리 아래에 압축을 푼다. 4. path에 C:\JavaCC\bin을 추가한다. JavaCC 문법, API 다루기 5. 간단한 덧셈에 대한 문법을 체크한다. Adder.jj라는 이름으로 다음 문서를 저장한다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950options{ LOOKAHEAD=2;} PARSER_BEGIN(Adder) public class Adder{.. 2017. 1. 17.
이클립스 팀 CVS 학습 - 버전화, 중간 검토 프로젝트 버전화 프로젝트가 완료되었으니 이제 버전화할 차례입니다. 파일 자원을 확약하는 동안 조금만 관심을 기울였다면 저장소가 자원에 버전 번호, 즉 개정 번호를 자동으로 지정한다는 사실을 알았을 것입니다. 파일을 확약하면서 제공해야 하는 유일한 정보는 확약 주석입니다. 프로젝트를 버전화 하려면 다음을 수행하십시오. 1. JanesTeamProject 프로젝트를 선택하십시오. 2. 네비게이터 보기에서 팀 > 버전으로 태그...를 선택하십시오. 3. 태그 자원 대화 상자가 열리면 버전 이름 A1을 입력하고 확인을 클릭하십시오. 4. CVS 저장소 보기를 선택하십시오. 5. 버전과 JanesTeamProject를 펼치십시오. 이제 JaneTeamProject 아래에 버전 번호가 A1인 프로젝트의 버전이 있습.. 2017. 1. 16.
CISC 8051 마이크로 프로세서 구조, 종류, 메모리맵, 레지스터, 특징 CISC 8051 마이크로 프로세서 구조, 종류, 메모리맵, 레지스터, 특징 CISC 마이크로 프로세서Intel 계열 마이크로프로세서의 종류 및 역사 CISC - History CISC - 8051 마이크로 프로세서 구조 8051: 8-bit microcontroller의 대표- 내부의 메모리 : 256바이트의 RAM - 하위 128바이트 : 내부 데이터 메모리용 - 상위 128바이트 : 특수 기능 레지스터 (SFR or Status Function Registers) : 4K 바이트의 프로그램 메모리 : 프로그램 메모리와 데이터 메모리 : 각각 64KByte까지 확장 가능 - 4개의 8bit 병렬 입출력 포트- 2개의 16bit 타이머, 카운터- 1개의 시리얼 포트 내장 CISC - 8051 종류 CI.. 2017. 1. 16.
임베디드 프로세서 종류 (시스템, 설계, 하드웨어, 솔루션의 특징 개념) 임베디드 프로세서 종류 (시스템, 설계, 하드웨어, 솔루션의 특징 개념) 임베디드 프로세서 입문 내장형 시스템 개발 순서 - 임베디드 프로세서 종류 선정 - 운영체제의 선정 - 프로그램 개발환경의 구축 - 시스템을 개발 임베디드 프로세서 - 중앙처리장치(Central Processing Unit 또는 CPU) - 임베디드 프로세서, 프로세서 코어(core), 혹은 간단하게 코어(core) - 데이터부(Datapath Unit) : 레지스터, ALU(Arithmetic Logic Unit), BUS : 곱셈기 : 멀티미디어 데이터의 신속한 처리 - 컨트롤부(Control Unit) : 데이터부의 각 모듈에서 실행될 수 있도록 모든 제어 신호를 발생하는 역할을 수행 마이크로프로세서, 마이크로컨트롤러 마이크로.. 2017. 1. 15.
C++ 멀티스레드 디버깅 방법 2가지, 메시지와 sleep 이용한 이론 C++ 멀티스레드 디버깅 방법 2가지, 메시지와 sleep 이용한 이론 C++ 멀티스레드 디버깅 프로그램의 버그는 운영체제의 스케줄링 타이밍과 연관되어 변동되는 경우가 많으므로 재현하기가 매우 어려울 수 있다. 따라서 C++ 멀티스레드 디버깅 프로그램의 디버깅은 몇 가지 특수한 테크닉을 요구한다. 1. 메시지에 기반을 두어 디버깅한다 C++ 멀티스레드 디버깅 프로그램을 디버깅할 때는 디버깅를 이용하는 것보다 디버깅 메시지를 이용하는 것이 더 효과적일 수 있다. 애플리케이션의 종류에 따라서 cout이나 로그 파일 또는 GUI 컴포넌트 등을 통해 메시지를 출력할 수 있다. 크리티컬 섹션의 시작과 끝 그리고 락의 획득과 해제 시점 각각에 멀티스레드 디버깅 메시지를 삽입한다. 여기서 출력되는 메시지를 분석하면 .. 2017. 1. 14.
C++ List index 랜덤 접근, lterator advance next 응용 (비추천) C++ List index 랜덤 접근, lterator advance next 응용 (비추천) advance 함수를 이용해 C++ List index에 접근합니다. 그리고 해당 데이터를 복사해 가져오는 건데 ... 별로 좋아 보이진 않는군요. 저런 루틴이 반복적으로 돈다면 ... 아우... 끔찍합니다. 정말 급하디급할 때 잠깐 써먹기엔 좋겠네요. 참고로, .size() 함수는 매번 컨테이너를 순회하며 크기를 세다 보니 O(n)의 속도가 나옵니다. 그러니, 커다란 컨테이너에서 size()를 호출하는 함수가 있다면 당장 지우세요. c++11 forward_list는 이점 때문에 size() 함수를 아예 제거했습니다. 123456789101112131415161718std::list l;// add eleme.. 2017. 1. 14.
GDB 사용법과 명령어 정리, GNU debugger 디버깅 (메모리 덤프 해결) GDB 사용법과 명령어 정리, GNU debugger 디버깅 (메모리 덤프 해결) GNU debugger GDB 소개, GDB 사용법 GNU debugger이며, 줄여서 GDB라고 불리는 이 소프트웨어는 GNU 소프트웨어 시스템을 위한 표준 GNU debugger이다. GNU debugger GDB는 다양한 유닉스 계열 시스템에서 동작하며, C, C++, 포트란을 비롯한 수많은 프로그래밍 언어를 디버깅하도록 도와주는 이식성 높은 GNU debugger이다. 단순하고 직관적인 디버거인 GNU debugger GDB GNU debugger GDB는 CLI(명령 라인 인터페이스)를 통해 각종 정보를 제공하는데, 메모리 정보, 스택 정보, 레지스터 정보 등 매우 다양한 정보를 제공한다. GDB 사용법 = 기본적.. 2017. 1. 13.
C# 그림판 - GDI 코딩배우기 (닷넷 윈폼 GUI 프로그래밍 강좌) C# 그림판 - GDI 코딩배우기 (닷넷 윈폼 GUI 프로그래밍 강좌) 제가 학생 시절에 만들었던 C# 그림판입니다. 지금 다시 보니 null 여부도 거르지 않고 엉망으로 만들어 놨네요. 어쨌든, 일단 공유하는 차원에서 업로드 합니다. C# 그림판 첨부파일 프로젝트 전체 압축 파일 : PaintEx.cs [다운] 윈폼 디자이너 소스 : PaintEX.Designer.cs [다운] 윈폼 기능 구현 소스 : PaintEX.zip [다운] MSDN에서 참조한 DrawData 클래스 : DrawData.cs [다운] 1. PaintBox 초기화 바로 아래 코드는 프로그램을 처음 실행할 때, 수행되는 코드입니다. C# 그림판 Form이 로드 될 때 불려지는 코드가 되겠죠. ResizeRedraw의 값을 기준으로 .. 2017. 1. 13.
[Qt프로그래밍] 다국어 처리 Qt개발 (linguist qm 기초 사용 방법) [Qt프로그래밍] 다국어 처리 Qt개발 (linguist qm 기초 사용 방법) 1. 전반적인 사항 출처 - Qt 다국어 처리 [클릭] 전반적인 사항은 위의 출처를 참고하시면 됩니다. Qt프로그래밍에서 다국어 처리하는 이유는 Qt이기 때문입니다. Qt는 멀티플랫폼에서 구동되기에 이러한 특색을 잘 살리고 원래의 의도대로 Qt 개발하기기 위해서 반드시 다국어 처리해야 합니다. 2. 코딩 시 필요한 언어별 코드추가로 Qt프로그래밍 시 필요한 언어별 코드는 아래를 참고하세요. Qt개발할 때 필요한 주요 부분입니다. 3. 자료형 변환 문제Qt 개발한 시스템 언어 설정을 위해선 dpgk-reconfigure를 설치하고, /etc/environment의 default 언어를 수정해야 합니다. 123# nano /et.. 2017. 1. 12.
C# 한글 깨짐, 파일스트림 euckr 추가 (인코딩 기초 프로그래밍 코딩) C# 한글 깨짐, 파일스트림 euckr 추가 (인코딩 기초 프로그래밍 코딩) C# 한글깨짐은 파일을 다룰 때, 종종 발생합니다. 구글어스의 Kml 파일을 예로 C# 한글깨짐을 살펴보죠. 1234567FileStream Stream = new FileStream(@"C:\test.kml", FileMode.Open, FileAccess.ReadWrite);StreamReader Reader = new StreamReader(Stream, Encoding.Default, true); String getReader = Reader.ReadToEnd(); byte[] b = System.Text.Encoding.Default.GetBytes(getReader);Stream.Write(b, 0, getReader.. 2017. 1. 11.
비트맵 코드 변환기 (bmp -> hex 코드) jpg 이미지 무료 프로그램 비트맵 코드 변환기 (bmp -> hex 코드) jpg 이미지 무료 프로그램 코딩 중에 유용하게 사용할 수 있는 비트맵 컨버터입니다. 첨부된 그림의 내용처럼 비트맵을 hex 코드로 변환시켜 줍니다. PCB를 이용해서 뭔가를 만들 땐 꽤 유용합니다. 자료제공 사이트 : 이지써킷 [클릭]프로그램 : ez-Bitmap_Converter_R1.0.zip메뉴얼 : 24 bits BMP to 8 Bits 비트맵 그림파일 변환툴.hwp Converter Manual 24 bits BMP to 8 Bits 비트맵 그림 파일 변환툴(BGR332)LCD 화면상에 원하는 image를 표현하려면 image 에 대한 각 pixel의 color data가 필요합니다. 일반적인 사진은 Jpeg 형태로 압축되어 있습니다. LCD에 .. 2017. 1. 10.