12 Exception 13 Delegate Event
·
Programming Languages/C#
12. Exception 12.1. Exception - System.Exception : 예외 최상위 클래스 : 모든 예외를 받아낸다 : 모든 예외를 처리함으로써, 새로운 오류 발생할 수있다 - throw : 의도적 예외 발생 - finally : try 블록의 예외 발생으로 catch 실행시, 자원 해제와 같은 코드를 미처 실해하지 못한 경우 사용 : catch 문 모두에 반복 작성하는 것보다 finally가 효과적 : 예외에 상관없이 반드시 finally 절의 코드를 실행 : finally 내부 try ~ catch 가능 - User Defined Exception : Exception 클래스를 상속 12.2. Exception Filter - catch 예외 제약 조건 : when 키워드 : if..
10 Collection, Indexer 11 Generic
·
Programming Languages/C#
10.1. Array - 변수와 배열 : 300개의 변수 대신, 300개 용량을 가진 배열 변수를 “한 개”만 선언해서 사용 - 배열 선언과 초기화 : { }, Collection Initializer : 필요한 용량에 맞는 Array를 선언 - 다차원 배열 (2차원) 선언과 초기화 : (세로, 가로) : 1차원 배열을 원소로 갖는 배열 - 가변 배열 (Jagged Array) : 10.2. System.Array - C# 에서 모든것은 객체다 : 배열은 System.Array 클래스의 파생형이다 - System.Array 클래스의 주요 메서드와 프러퍼티 - System.Range 객체를 이용한 배열 분할 10.2. Collection - ArrayLIst : 배열과 달리 생성시 용량을 지정할 필요가 없..
[WSA] Visual Studio에서 inet_ntoa( ) 대체하기
·
Programming Languages/C
문제점 Visual Studio에서 권장하지 않는 함수들( 'scanf', fopen', 'strcpy') 사용시 Warning C4996 경고가 발생한다. 소켓 프로그래밍의 경우, inet_ntoa( ) 함수 사용시 IPv4만 지원해 해당 경고가 발생한다. inet_ntoa 뜻: network-to-address, 비트 단위 IP 주소를 문자열 주소값으로 변환한다. n = network : 비트 단위 IP 주소값 + 빅 엔디언 (네트워크는 비트 단위로 통신한다.) a = address : 문자열 단위 IP 주소값 + 리틀 엔디언 해결책 1. Visual Studio 경고를 무시 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996) 2. inet_..
[WSA] WinSock 실행 흐름
·
Programming Languages/C
소켓 통신 프로그래밍 API / 클래스 설명 제공 기능 OS/PL Unix Socket API 네트워크 표준 API TCP, UDP 등 다양한 네트워크에 사용 Unix(Ubuntu, Redhat..) Win WinSock2 API Socket API 윈도우 버전 Window(C/C++) C# .NET Sockets WinSock2 API C# 버전 Window(C#) TcpClient Sockets 클래스 내재됨 TCP, UDP 전용 TcpListner UdpClient 윈도우 소켓 실행 흐름 WSA(WinSock API) WSAStartup( ) : winsock 초기화 : 반드시 프로그램에서 요구하는 winsock 버전을 명시하고, 라이브러리 초기화를 진행해야 한다. #include int WSASt..
16 셸 정렬
·
Programming Languages/C
셸 정렬이란? : 단순 삽입 정렬의 장점을 살리고 단점 보완 : 정렬 횟수는 증가하지만, 전체적인 요소 이동 횟수 감소 단순 삽입 정렬의 특징 복잡도 O(n^1.25) 불안전
15 단순 삽입 정렬
·
Programming Languages/C
단순 삽입 정렬이란? : 선택한 요소를 알맞은 위치에 삽입하는 작업 반복 단순 정렬(버블, 선택, 삽입) 의 시간 복잡도는 O(n^2) 효율이 좋지 않다.
14 단순 선택 정렬
·
Programming Languages/C
단순 선택 정렬이란? : 가장 작은 요소부터 알맞은 위치로 정렬하는 알고리즘 불안전한 정렬 : 중복시 위치가 변한다.
13 버블 정렬, 칵테일 정렬
·
Programming Languages/C
버블 정렬: 이웃한 두 요소의 비교, 교환을 반복해 정렬 패스(Pass): 비교, 교환 작업 버블 정렬 구현 교환 횟수는 비교 횟수 = (n - 1) + (n - 2) + 1 = n(n - 1) / 2 의 절반인 n(n - 1) / 4 swap 함수 안에서 값의 이동이 3회 발생하므로 평균 3n(n - 1) / 4 버블 정렬 개선안(1) 버블 정렬 개선안(2) 칵테일 정렬 이 배열은 맨 앞 요소(9) 때문에 빠른 시간 안에 정렬 작업을 마칠 수 없다. 그래서 패스의 방향을 교대로 바꾸는 방식(칵테일 정렬)을 사용한다. /*--- 양방향 버블 정렬(칵테일 셰이커 정렬) ---*/ void shaker(int a[], int n) { int left = 0; int right = n - 1; int last..
12 정렬이란?
·
Programming Languages/C
정렬(Sorting)이란? : 특정 핵심 항목(key)의 대소 관계에 따라 데이터의 집합을 일정한 순서로 만드는 작업 : 정렬을 통해 검색을 빠르게 할 수 있다. 오름차순(Ascending), 내림차순(Descending) 안정성(Stable)이란? : 같은 값의 키를 가진 요소의 순서가 정렬 전후에도 유지되는 것 정렬 알고리즘의 핵심 요소 : 교환, 선택, 삽입 내부 정렬, 외부 정렬 : 내부 정렬(Internal Sorting) - 정렬할 모든 데이터가 하나의 배열에 저장 할 있는 경우 : 외부 정렬(External Sorting) - 정렬할 데이터가 너무 많아서, 하나의 배열에 저장 할 수 없는 경우
11 8퀸 문제
·
Programming Languages/C
8퀸 문제란? : 서로 공격 할 수 없도록 8개의 퀸은 8x8 체스판에 놓는 문제 1. 8 x 8 체스판, 64칸 에 8개의 퀸을 놓을 수 있는 조합 2. [규칙1] 각 열에 1개씩 배치 3. [규칙2] 각 행에 1개식 배치 3. [규칙3] 대각선 겹침 해결
10 하노이의 탑
·
Programming Languages/C
하노이의 탑(Top of Hanoi) 1. 하노의 탑 룰 2. 하노이의 탑 그룹핑 - 작은 문제로 분해 3. 하노이의 탑 그룹핑 룰 - 작은 문제의 반복 4. 하노이의 탑 구현
09 재귀 알고리즘 분석
·
Programming Languages/C
재귀의 이해는 컴퓨터의 실행 구조를 이해하는데 효과적이다. 분석 방법 1. 하향식(top down) 2. 상향식(bottom up) 3. 비재귀적 구현 1. 하향식(top down) 2. 상향식(bottom up) 3. 비재귀적 표현 재귀 함수를 재귀 호출을 사용하지 않고 구현하는 방법 3.1 꼬리 재귀 제거 방법 3.2 재귀 재거 방법
ubiquitous4g
'Programming Languages' 카테고리의 글 목록 (2 Page)