예전 글들/C, C++
-
-
함수 포인터란 무엇인가예전 글들/C, C++ 2011. 2. 11. 13:49
1. 함수 이름은 함수에 대한 상수형 포인터, 이 포인터를 사용하여 함수를 호출 할 수 있다. A. 이를 사용하면, 입력 내용에 따라 마음대로 원하는 함수를 호출할 수 있다. B. 예시 i. int형을 가리키는 포인터는 정수형을 가리키고, 함수에 대한 포인터는 해당 반환형과 원형부를 지닌 함수를 가리켜야 한다. 1. long (*funcPtr) (int); funcPtr은 정수형 매개변수를 가지며, long형을 반환하는 함수를 가리켜야 한다. ii. long * Function (int); long (*funcPtr) (int); 첫 번째 Function()은 정수형을 매개변수로 갖고 long형 변수의 포인터를 반환하는 함수. 두 번째 funcPtr은 정수형을 매개변수로 갖고 long형 변수를 반환하는 ..
-
객체 지향 프로그래밍예전 글들/C, C++ 2011. 2. 11. 13:40
1. 컴퓨터 프로그래밍의 패러다임의 하나. A. 컴퓨터 프로그램을 명령어 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 “객체”들의 모임으로 파악하고자 하는 것. B. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. C. 장점: i. 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. ii. 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능 D. 지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다는 비판을 받기도 한다. 2. 기본 구성 요소 A. 클래스(Class) i. 같은 종류(또는 문제 해결을 위한)의 집단에 속하는 속성(attribute)과 행위(beha..
-
C언어, C++ 이란 무엇인가예전 글들/C, C++ 2011. 2. 11. 13:39
그냥 위키피디아에 있는 자료 나만 보기 좋게 정리 C언어 1. 역사 A. 1970년대 초 켄 톰슨과 데니스 리치가 당시 새로 개발된 유닉스 운영체제에서 사용하기 위해 만든 프로그래밍 언어 B. 켄 톰슨은 BCPL언어를 필요에 맞추고 개조해서 “B”언어(언어를 개발한 벨 연구소의 B를 따서)라 명명했고, 이 B언어에서 C언어가 탄생했다. 유닉스 시스템의 바탕 프로그램은 모두 C로 쓰여졌고, 많은 운영체제의 커널도 또한 C로 만들어졌다. 오늘날 많이 쓰이는 C++는 C에서 객체 지향형 언어로 발전된 것이다. C. 역사적 흐름 i. 1963년 – ALGOL 60에서 CPL이 파생 ii. 1969년 – BCPL 개발 iii. 1970년 - B언어 개발 iv. 1972년 – 벨 연구소(Bell Laboratori..
-
합병정렬(MergeSort)_(1)예전 글들/C, C++ 2010. 12. 24. 14:54
1. 합병정렬 - 문제: n개 키를 비내림차순으로 정렬 - 입력: 양의 정수 n, 키의 배열 S(첨자는 1부터 n까지) - 출력: 키가 비내림차순으로 정렬된 배열 S 2. 합병 - 문제: 2개의 정렬된 배열을 하나의 정렬된 배열로 합병 - 입력: 양의 정수 h와 m, 정렬된 키의 배열 U(첨자는 1부터 h까지), 정렬된 키의 배열 V(첨자는 1부터 m까지) - 출력: U와 Ω의 키들을 모두 포함하여 정렬한 배열 S(첨자는 1부터 h+m까지) 3. 소스 void merge(int h, int m, int* U, int* V, int* s); void mergesort(int n, int* s, int step); int main(int argc, char* argv[]) { int s[] = {27, 10..
-
이분검색(Binary Search)예전 글들/C, C++ 2010. 12. 23. 15:31
알고리즘 책에 나와있는 pseudocode 참고 1. 문제: n개 키를 가진 정렬된 배열 S에 x가 있는지를 결정하라. 2. 입력: 양의 정수 n, 정렬된(비내림차순) 키의 배열 S(첨자는 1부터 n까지), 키 key 3. location, S에서 key가 있는 위치(만약 key가 S에 없으면 0) 소스 int location(int *s, int low, int high, int key) { int mid; if( low > high ) return -1; else { mid = (low + high)/2; if( s[mid] == key ) return mid+1; else if( s[mid] < key ) { low = mid + 1; return location(s, low, high, key);..
-