분류 전체보기 532

[프로그래밍 언어론] Data Type Part 1

1. 타입의 환경 (Evolution of Data Types) - 1956년 : FORTRAN - INTEGER, REAL, arrays 등 간단한 것만 사용을 했었다. - 1983년 : Ada - 사용자가 데이터타입을 만들어서 사용하면서, 복잡한 데이터 유형이 나타나기 시작했다. 2. 타입 설계 (Type Design) - 타입을 명세하는 기법. 즉, 타입을 바인딩하는 기법을 말한다. - 타입에 의해 바인딩 된 것은 타입으로 할 수 있는 연산자를 같이 바인딩 된다. - Primitive Data Type 방식과 Not-Primitive Data Type 방식이 있다. 3. Primitive Data Type - 다른 데이터에 의해서 정해지지 않고, 자기 자신자체로 데이터가 된다. - 우리가 쓰고 있는..

[알고리즘] 분할 정복 기법 (Divide - and - Conquer) - 결론

- 균형 취하기를 적용한 분할 정복은 분할한 하위 문제들이 독립적이라면(같은 하위 문제가 없다면) 유용한 기법 > 피보나치 문제는 하위 문제들이 독립적이지 않은 예제로, 분할정복으로 해결하기에 효율이 낮은 문제이다. - 분할과 합병단계는 효율적으로 구성되어야한다. > 대부분의 경우에는 분할 또는 합병 단계 중 하나는 쉽다. > 문제는 보통 2개의 하위 문제들로 나뉘어지나 항상 그렇지는 않다.

[알고리즘] 분할 정복 기법 (Divide - and - Conquer) - 3. 합병정렬(Mergesort)

. N개의 숫자들을 정렬하는 방법 ⓐ 알고리즘(명백한 방법) - 최대값을 찾는다. - 남아 있는 숫자들을 회귀적으로 정렬한다. ⓑ 분석 - 요구되는 비교 횟수 (n-1) + (n-2) + ... + 2 + 1 = n(n-1)/2 = ⊝(n^2) > 명백히 이 방법은 "균형취하기"발견법(Heuristic)을 이용하지 않는다. ⓓ 새로운 알고리즘 전략 : 합병정렬 - 배열을 반(Half)로 나눈다. - 두개의 부분들을 각각 정렬한다. - 정렬한 두 개의 부분들을 병합한다. ex) 27 10 12 20 25 13 15 22를 정렬하라. ⓔ 새로운 알고리즘 구현 //배열 a[i...j]를 정렬한다. void Mergesort(int i, int j){ int mid; if ( i > j ) { mid = flo..

[프로그래밍 언어론] 명령형 언어의 특징 2 - 변수(value)

명령형 언어의 특징이라는 주제를 달고 나온 부분은 자신이 프로그램언어를 개발시 고려해야할 상항에 대해서 나와 있는 것입니다. ----------------------------------------------------------------------------------------------------- * 변수란? - 메모리 공간에 대한 추상화 - 6개의 특징이 포함되어 있어야 한다. > name, address, value, type, lifetime, and scope - 선언된 변수는 symbol Table에 변수를 저장한다. ex) int a,b,c; //symbol Table에 저장 1. Name(이름) : "명명법은 명령형 언어의 특징 1"에서 이미 소개 되어 있기 때문에 건너띈다. 2. ..

[JavaScript] 자바스크립트

1. JavaScript란 - 인터프리터 방식의 Script언어 - HTML에 기능을 추가하기 위해서 사용 > HTML은 정적인 요소를 나타낸다면, JavaScript는 동적인 요소를 나타낸다. - 가격이 무료이며, 대부분의 브라우져에서 지원해준다 - ECMA에 의해 표준화가 되었다. 2. JavaScript적용하기 - HTML 내부에 삽입 : 여기서 주석이 들어가는 이유는 Javascript를 지원하지 않는 브라우져를 위해서 사용된다. - 외부 JavaScript 파일 사용 ex) 외부에 선언후 태그에 속성갑쳐럼 스크립트의 함수를 불러다 쓴다. 3. Java와의 비교 - 결론부터 말하면, 비슷하긴하지만 전혀 다른 언어이다. - 공통점 ⓐ 대/소문자 구분 ⓑ 문장은 ';' 에 의해 구분 ⓒ 기본적인 제어..

[프로그래밍 언어론] 명령형 언어의 특징 3 - Binding

명령형 언어의 특징이라는 주제를 달고 나온 부분은 자신이 프로그램언어를 개발시 고려해야할 상항에 대해서 나와 있는 것입니다. ----------------------------------------------------------------------------------------------------- * 바인딩이란? 변수나 예약어등 프로그래밍언어를 구성하고 있는 여러 것에 속성을 부여하는 것을 "바인딩한다"라고 한다. ex) int x; // 변수 x에 integer타입을 바인딩했다. x = 3;// 변수 x에 3이라는 값을 바인딩했다. * 바인딩이 일어나는 시간 1. 설계시 : 설계자에 의해서 기호(+, - 등)와 기호가 하는 일이 바인딩 된다.(ex> +는 더하는 역할을 한다) 2. 구현시 : ..

[HTML/CSS] 웹 개발

1. 웹 표준/웹 접근성 - W3C의 권장 표준 준수 - 논리적이고 의미에 맞는 HTML/CSS사용 - 내용과 디자인의 분리 - 브라우저간의 호환성 유지 - 웹 접근성 : 웹 접근간 장애제거(장애우, 노약자, 외국인의 접근편리 유도) - 웹 표준에 맞는가를 확인 하는 방법(Validation) > 통합검사기 : http://validator.w3.org/unicorn/ > HTML/XHTML : http://validator.w3.org/ > CSS : http://jigsaw.w3.org/css-validator/ > 브라우져의 Add-on ⓐ chrome : pendule ⓑ firefox : html Validator 2. 웹 개발 과정 - 요구 분석/조사 > 목표 및 요구 사항 분석 > 관련 사이..

[근황] ? 이라고 해야되나..?ㄷ

환절기 감기는 저를 빗겨가지 않았습니다. 그것도 강속구로 제 가슴속으로와서 기침을 마구 토하게 하고 있습니다 ㅠ 다들 감기들 안걸리고 잘 살고 계시나요...? 므튼 이번주 월요일 쉬면서 학과 진도도 이상하고... 중간고사 전에 보는 짜잘한 시험들 보느냐고 힘든 한주 였습니다. 또한 다음주부턴 중간고사라니... 미치겠습니다 ㅋㅋ 일단 최대한 할거 해결하면서 쉬는시간에 포스팅하고 있는데... 힘내야죠!! 이 감기부터 좀 던져버려야될텐데; 거의 2주되가내요 ㅠㅠ 다들 감기 조심하시고 화이팅이요~!!

Cloud Travel 2011.10.07

[프로그래밍 언어론] 명령형 언어의 특징 1 - 명명법(identifier)

명령형 언어의 특징이라는 주제를 달고 나온 부분은 자신이 프로그램언어를 개발시 고려해야할 상항에 대해서 나와 있는 것입니다. ----------------------------------------------------------------------------------------------------- * 명명법(identifier) : 명명법을 표현하기 위해서는 다음 4가지를 고려 해야한다. 1. 길이 예전에는 컴퓨터의 메모리가 적었기에 이름의 길이를 제한하고 있었다. 예를들어 FORTRAN은 최대 6개로 이뤄져있고, 프로그램언어를 영어처럼 표현하기 위한 목적으로 만들어진 COBOL에서도 최대를 30으로 제한하고 있다. 현재에는 메모리가 풍부하여, 이름의 길이에 제한하지 않는 언어가 많이 있다. 변..

[알고리즘] 분할 정복 기법 (Divide - and - Conquer) - 2. 이진검색

1. 이진 검색(Binary Search) - 문제 : 크기가 n인 정렬된 배열 S에 키(key) x가 있는지를 탐색 ⓐ 명확한 방법 - 알고리즘 ① 키 x를 찾을 때까지 배열의 첫번째 요소부터 시작하여 x를 배열의 각 요소와 순서대로 비교한다. - 복잡도 분석 > 최악의 경우 n번을 비교해야 한다. - 관찰 > 이 방법은 "배열이 정렬되어 있다는 사실"을 이용하지 않고, "균형취하기"라는 발견법을 이용하지 않았다. ⓑ 효율적인 방법 - 알고리즘 ① 키 x를 배열의 중간요소와 비교한다. 같으면 찾았으니 끝낸다. 캍지 않으면, 배열을 중간요소를 기준으로 반을 나눈다. ② 키 x가 중간요소보다 작으면 왼쪽에 위치한 배열반쪽을 선택한다. 키 x가 중간요소보다 크다면 오른쪽에 위치한 배열의 반쪽을 선택한다. ③..