'2011/06'에 해당되는 글 27건

  1. 2011.06.23 1장
  2. 2011.06.22 1장 Binary Systems
  3. 2011.06.22 UML, 상속, 다형성, 캡슐화
  4. 2011.06.22 9장 Graphs
  5. 2011.06.22 1장 Matrices and Gaussian Elimination (1)
  6. 2011.06.22 union과 enum 설명
  7. 2011.06.22 8장 Relations
공부/객체지향2011. 6. 23. 17:50


위대한 소프트웨어 만들기 3단계
1. 소프트웨어가 고객이 원하는 기능을 하도록 하기
2. 객체지향 기본 원리를 통해 소프트웨어를 유연하게
3. 유지보수와 재사용이 쉬운 디자인 만들기

캡슐화
프로그램을 논리적인 그룹으로 나누기.
일반적으로 변화 가능성이 높은 부분을 그렇지 않은 부분으로부터 분리하여 캡슐화
중복 코드를 볼 때마다 캡슐화 할 수 있는지 찾아보기.
1. 클래스의 데이터를 private로 보호
2. 속성들 전체를 캡슐화
3. 행위를 캡슐화
프로그램을 쪼개서 다른 부분의 수정 없이 특정 부분을 변경할 수 있다.

위임 (Delegation)
객체가 어떤 일을 직접하지 않고 다른 객체에게 그 일을 하도록 맡기는 것
코드의 재사용성이 좋아진다. (각 객체가 자기 자신의 기능만 하면 됨.)
객체가 독립적이고 느슨하게 결합되도록 함. 이로 인해 재사용이 쉬움.
 

'공부 > 객체지향' 카테고리의 다른 글

5장 좋은디자인 = 유연한 소프트웨어  (0) 2011.06.28
4장 분석  (0) 2011.06.26
3 요구사항 변경  (0) 2011.06.25
2장 요구사항 수집 (유스케이스)  (0) 2011.06.24
UML, 상속, 다형성, 캡슐화  (0) 2011.06.22


Posted by skyjumps
공부/논리설계2011. 6. 22. 19:29


10진수 소수를 n진수로 변환하는 문제 
http://sunkyu.tistory.com/71338
왜 이렇게 되는지 이해가 안되었는데 시프트 연산을 생각해보면 이해가 되었다.
2진법으로 바꿀때 2로 나눈다는 것은 오른쪽 시프트 연산이다. 이진수의 맨 끝자리를 버리겠단 뜻이다. 그래서 2로 나누었을 때 발생하는 나머지는 2진수로 바꾸었을 때 2^0 자리의 수가 되겠다. 계속 2로 나눠주면서 그 다음 자리 수를 구할 수 있다.
소수일 때는 2를 곱해주는데 이는 왼쪽 시프트 연산이다. 이진수의 맨 앞자리를 버린다. 즉 소수에 2를 곱했을 때 소수점을 넘어가는 숫자가 2^-1의 자리의 수가 된다. 계속 2를 곱해주면 그 다음 자리 숫자를 구할 수 있다.


2의 보수에 대한 알기쉬운 설명
http://maanu.egloos.com/3356542

r-1의 보수와 r의 보수의 차이
r-1의 보수는 0을 표현 하는 방법이 2개 있다. +0, -0
r의 보수는 0을 표현하는 방법이 1개. 0
예를 들면 r이 10이고 자리수가 2개일 때(n=2) +0은 0이고, -0은 99-0 = 99이다.

보수를 이용한 빼기 연산
M - N을 구한다고 할 때

N을 r의 보수로 바꿔주고 더해주면
M + (r^n - N) = M - N + r^n

i) M>=N일 경우
r^n (케리)가 있기 때문에 버리면 M - N 만 남는다.

ii) M<N일 경우
결과는 -(N-M)이 나와야 겠다.
M-N + r^n을 r^n - (N-M) 으로 바꿀 수 있고 이는 N-M의 r의 보수이다.
이 수를 다시 r의 보수를 취하면 N-M을 구할 수 있다. r^n - (r^n - (N-M)) = N-M
이 값에 '-'를 붙여주면 값이 구해진다. -(N-M)

Signed binary numbers가 필요한 이유
컴퓨터에서 -를 표현해야 될 때 컴퓨터는 모든 것을 0과 1로 표현해야 하기 때문에 부호를 나타내는 비트가 하나 필요하다.
그래서 0이면 양수 1이면 음수 이렇게 표현할 수 있다.


코드
소통하기 위해서 사용. BCD, Excess-3, Gray, ASCII 등이 있음.
Gray가 유용할 때는 디지털에서 0111에서 1000으로 바뀔 때 비트가 4개가 바뀌기 때문에 에러가 발생할 가능성이 높다. 그래서 비트를 하나씩만 바꾸면서 그런 경우를 최소화할 수 있다.
코드에 대한 재미있는 이야기 
http://maanu.egloos.com/3262125

'공부 > 논리설계' 카테고리의 다른 글

4장 Combinational Logic  (0) 2011.06.28
3장 Gate-Level Minimization  (0) 2011.06.26
2장 Boolean Algebra and Logic gate  (0) 2011.06.24


Posted by skyjumps
공부/객체지향2011. 6. 22. 17:38


UML
애플리케이션 구조. 사용자와 개발자가 소통하는데 사용하는 언어.

상속
다른 클래스의 상태와 행동을 자신의 것으로 사용하기 위해 쓰는 것.
코드 중복을 피할 수 있다.

오버라이딩
슈퍼클래스의 행동을 변경하는 것.

다형성
서브 클래스가 슈퍼 클래스를 대신할 수 있도록 허용
왜 좋은가? 코드가 유연해진다.
예를 들면 슈퍼클래스 Airplane은 서브클래스 Jet나 Rocket 같은 어떤 서브 클래스 타입과도 잘 동작 할 것이다. 새로운 서브 클래스를 만들면 Airplane으로 짜여진 코드에 수정없이 사용할 수 있을 것이다. 

캡슐화
애플리케이션의 나머지 부분으로부터 데이터 일부를 숨기고 다른 곳에서 접근 하지 못하도록 제한하는 것.
코드 안의 정보가 잘못 사용되는 것을 막기 위해 사용한다. 예를 들면 내부에서만 변경되어야 하는 값이 외부로부터 변경될 경우 문제가 발생할 수 있다.

'공부 > 객체지향' 카테고리의 다른 글

5장 좋은디자인 = 유연한 소프트웨어  (0) 2011.06.28
4장 분석  (0) 2011.06.26
3 요구사항 변경  (0) 2011.06.25
2장 요구사항 수집 (유스케이스)  (0) 2011.06.24
1장  (0) 2011.06.23


Posted by skyjumps
공부/이산수학2011. 6. 22. 16:05


undirected edge : 두 vertices를 있는 방향이 없는 선

directed edge : 두 vertices를 있는 방향이 있는 선

multiple edges : 같은 vertices를 잇는 여러개 edges

multiple directed edges : 같은 vertices를 잇는 방향이 같은 edges

loop : vertex 자기 자신을 연결하는 edge

undirected graph : vertices와 undirected edges의 모음

simple graph : multiple edges나 loops가 없는 undirected 그래프

multigraph : multiple edges를 가지나 loops는 가지지 않는 undirected 그래프

pseudograph : multiple edges와 loops를 가질 수 있는 undirected 그래프

directed graph : vertices와 directed edges의 모음

directed multigraph : multiple directed edges를 가질 수 있는 그래프

simple directed graph : loops나 multiple directed edges이 없는 directed 그래프

adjacent : 두 vertex 사이에 edge가 있을 때 둘이 adjacent 하다고 한다.

incident : 한 vertex가 어떤 edge의 끝점일 때 그 edge는 그 vertex와 incident하다고 한다. 

deg(v) : vertex v와 incident한 edge들의 갯수 (루프는 2번 카운트된다.), v와 연결된 edges의 갯수

deg-(v) :  v가 terminal vertex로서의 edges의 갯수. edges가 나가는 갯수

deg+(v) : v가 initial vertex로의 edges의 갯수. edges가 들어오는 갯수 

underlying undirected graph of a graph with directed edges : edges의 방향을 없앤 undirected graph

Kn (complete graph on n vertices) : 각각의 vertex 쌍이 edge로 연결되어 있는 undirected graph

bipartite graph : 한 그래프 V의 vertex set을 두개의 sub vertex set V1, V2로 나눌 수 있고 V1의 vertex는 V2의 vertex를 잇는 edge를 가진다. 이러한 그래프 V를 bipartite graph.

Km,n (complete bipartite graph) : m개의 vertex를 가진 첫번째 서브셋과 n개의 vertex를 가진 두번째 서브셋이 있을 때 첫번째 vertex와 두번째 서브셋의 vertex가 edge를 갖는 것.

Cn (cycle of size n), n >=3 : n개의 vertex들이 서로 edge로 이어져 마지막 vertex와 첫번째 vertex가 같은 graph

Wn (wheel of size n ), n>=3: 싸이클에 vertex 하나가 추가되서 그 vertex가 다른 vertex들을 연결 한 것 

Qn (n-cube), n>=1 : 길이가 n인 2^n개의 bit strings을 표현한 그래프. 두 vertex는 비트 차이가 하나일때 edge를 갖는다.

isolated vertex : 차수가 0인 vertex

pendant vertex : 차수가 1인 vertex

regular graph : vertex 차수가 모두 같은 그래프. 

subgraph  of a graph G = (V,E)

G1 U G2 (union of G1 and G2)

adjacency matrix : edge로 표현한 메트릭스

incidence matrix : edge와 vertex의 incidence로 표현한 메트릭스

isomorphic simple graphs : 두 그래프의 vertex가 V1에서 V2로 가는 일대일함수이면서 v1, v2와 f(v1), f(v2)의 edge도 일치할 때.

invariant : isomorphic graph가 가져야할 혹은 갖지 말아야할 속성. 예를 들면 노드수와 Edge수가 같아야 한다. 노드의 차수도 같아야 한다. 

simple path : 어느 한 edge를 한번 이상 지나지 않는 path

circuit : 시작과 끝이 같은 path

connected graph : 모든 vertex가 이어져 있는 undirected 그래프

strongly connected directed graph : 모든 두 노드가 path가 있는 directed 그래프

Euler circuit : 그래프의 모든 edge를  한번만 지나는 circuit.

Euler path :  모든 edge는 한번만 지나는 path

Hamilton circuit: 모든 vertex를 한번만 지나는 simple graph circuit. 

'공부 > 이산수학' 카테고리의 다른 글

8장 Relations  (0) 2011.06.22


Posted by skyjumps
공부/선형대수2011. 6. 22. 14:32


n equations in n unknowns을 다룬다.
Two equations two unknowns(예를 들면 2x-y=1, x+y=5)에 대해
Row picture, Column picture에 대해 배웠다.
2차식일 경우 
(2, -1)(x)  =  (1)
 1,  1   y        5
Row picture는 좌표계에서 직선을 그려 그 교차점이 해(x)가 되는 것이고

x(2) + y(-1) = 1
   1   +    1     5
Column picture는 벡터를 이용하여 좌표계에 표시를 했고 벡터의 합이 (1,5)가 되도록 x,y를 이용하여 두 벡터의 크기를 조절한다.

이런식으로 n equations in n unknowns에 대해서도 생각할 수 있다.
n이 3이면 row picture는 면이 만나는 점이 해가 될것이고, column picture는 3개의 벡터를 이용하여 식의 오른쪽 값을 만드는값이 해가 될 것이다.

'공부 > 선형대수' 카테고리의 다른 글

Inverse Matrices  (0) 2011.06.26
Elimination with Matrices  (1) 2011.06.24


Posted by skyjumps
공부/C언어2011. 6. 22. 14:13


Union
공용체라고 한다. union은 선언은 구조체 선언하는 것과 비슷한데, 메모리할당 측면에서 구조체는 구조체안에 있는 변수만큼 메모리가 할당되지만, union은 멤버변수중에 가장 사이즈가 큰 것으로 메모리가 할당되고 그 할당된 메모리를 다른 변수들이 같이 쓴다. 예를 들면 union 안에 int와 char가 있으면 5byte(4+1)이 할당되지 않고 4byte가 할당되어 2개 변수가 그 메모리 영역을 같이 쓴다.

Union 활용(Endian 변경)
http://shinluckyarchive.tistory.com/283


Enum
열거형타입이라고 한다. 타입이름을 정할 수 있고 그 타입은 일정한 값들만 허용된다.
예) Color라는 타입을 만들고 red, blue, green 값을 가질 때
enum Color{
RED, BLUE, GREEN };

왜 쓰는가? enum이 좋은점은 메소드나 클래스가 enum에 정의되어 있는 값만 사용된다. 이상한 값이 들어오는 것을 막아준다. 타입의 안전과 값의 안전.

참고
http://destiny738.tistory.com/entry/C%EC%96%B8%EC%96%B4-%EC%9C%A0%EB%8B%88%EC%98%A8-union-%EC%97%B4%EA%B1%B0%ED%98%95-enum 

드퍼스트 객체지향 방법론

'공부 > C언어' 카테고리의 다른 글

함수포인터  (0) 2011.07.10


Posted by skyjumps
공부/이산수학2011. 6. 22. 13:58


  • reflexive : A집합에 속하는 모든 a에 대해 (a,a)가 어떤 Relation에 포함되면 그 Relation이 reflexive하다고 한다. 그래프에서 모든 Vertex가 자기 자신을 가리키는 Edge를 가지고 있는 걸 상상.
  • symmetric : (a,b)가 어떤 Relation R에 포함되고 (b,a)도 포함되면 그 Relation은 symmetric하다고 한다. 그래프에서 두 Vetex가 서로를 향하는 Edge를 가지고 있는 것.
  • antisymmetric : (a,b)와 (b,a)가 어떤 Relation R에 포함되면 a와 b는 같을 경우 이 관계를 antisymmetric이라고 한다. a,b가 서로 다른데 R이 (a,b), (b,a)를 포함하는 경우 antisymmetric이 아님. 그래프에서 두 Vertex를 서로 가리키는 Edge가 없는 것.
  • transitive : (a,b) , (b,c)가 관계 R에 포함되고 (a,c)도 포함될때 이 관계를 transitive. 그래프에서 a에서 b가는 경로가 있고 ,b에서 c가는 경로가 있고, c에서 a가는 경로가 있을 때.
  • equivalence relation : reflexive, symmetric, and transitive 한 관계.
  • R이 equivalence relation일 때, aRb이면 a와 b가 equivalent하다고 한다.
  • [a]R 은 a와 equivalent한 집합 A의 모든 요소들의 집합.
  • partial ordering : reflexive, antisymmetric, and transitive한 관계.
  • poset(S,R) : a set S 와 partial ordering R
  • comparable : poset(A,*) 의 a,b에서 a*b 또는 b*a면 a,b는 comparable 하다고 한다. 예) poset(A,|) 에서 3|9은 comparable 이지만 5|7은 5|7도 7|5도 안되기 때문에 comparable이 아니다. (incomparable)
  • total ordering : partial ordering에서 모든 요소의 쌍이 comparable일 경우
  • well-ordered set : poset(S,*)이 total order고 공집합이 아닌 모든 S의 부분집합에서는 최소값을 갖는 set. 예를 들어 양의 정수의 집합은 ≤ 관계에 대해 well-ordered set이지만 S가 정수의 집합일 경우에는 total order이지만 최소값이 없기 때문에 well-ordered set이 아님.
  • Hasse diagram : poset의 그래픽으로 표현한 것인데 loops 없애고, transitive로 유도되는 edges 없애고, vertex들의 위치를 맞춤으로써 방향 표시도 없앤 그래프. 
  • maximal element : poset에서 다른 요소들보다 작지 않은 요소. a<*b 인 b가 없을 때 a.
  • minimal element : poset에서 다른 요소들보다 크지 않은 요소. b<*a인 b가 없을 때 a.
  • greatest element : poset에서 모든 요소들보다 같거나 큰 요소 .
  • least element : poset에서 모든 요소들보다 작거나 같은 요소
  • upper bound of a set: poset(S,*)의 subset A 에서 S의 원소 u가 A의 모든 원소보다 크거나 같을 때 u는 upper bound
  • lower bound of a set: poset(S,*)의 subset A 에서 S의 원소 u가 A의 모든 원소보다 작거나 같을 때 u는 lower bound
  • least upper bound of a set: 가장 작은 upper bound
  • greatest lower bound of a set: 가장 큰 lower bound
  • lattice : 모든 두개의 원소가 a greatest lower bound와 a lowest upper bound를 가지는 an partially ordered set. 
  • compatible total ordering for a partial ordering : partial ordering을 포함하는 total ordering
  • topological sort : partial ordering을 total ordering으로 만든 결과.  ex) 선수강 트리


참고사이트

Well-ordered set

http://nicetoseeu.egloos.com/2613505


well-ordered induction

http://jmsstar.egloos.com/tb/1458053

'공부 > 이산수학' 카테고리의 다른 글

9장 Graphs  (0) 2011.06.22


Posted by skyjumps