* Ordinal Type : 특정 타입이 취할 수 있는 값이 주어진 것. 즉 사용자가 지정해준 변수 값 많을 취한 수 있다.
1. Enumeration Types (열거 방식)
- 타입이 취할 수 있는 값을 일일이 열거 해주는 방식
ex) (in C) enum colors { red, blue, green, yellow } // 각각의 요소는 숫자 인덱스로 지정되있다.
// red = 1 , blue = 2 , green = 3 , yellow = 4
colors mycolor = red; // mycolor은 red, blue green, yellow만 취할 수 있다.
mycolor++; // 각각의 요소에 숫자가 부여 되있으므로 ++시 다음요소 값 이동
// 즉 mycolor값은 blue가 된다.
- 열거 타입의 설계 이슈
ⓐ 상수 사용을 한번으로 제한 할 것인가?
ex) (in C) enum boolean1{T,F} enum boolean2{F,T,U} // T or F에 해당하는 상수는 무엇인가?
(in Pascal) 상수 사용을 한번으로 제한해준다.
(in Ada) 상수 사용을 여러번 사용가능하고, 중복 사용된 상수값 사용시 타입을 선언하여 혼동을 막는다.
TYPE letters is {'A', 'B', 'C'}
TYPE vowels is {'A'}
// A의 사용에 대한 혼동을 막기 위해서 사용시 (letters)A, (vowels)A등으로 타입을 명시해준다.
- 가독성과 신뢰성을 지원해주기 위해서 사용한다.
2. Subrange Type (열거된 것의 부분 방식)
- 특정 타입에서 일부분만을 가지는 방식
ex) TYPE sub_int = 0 ... 100;
// subrange의 타입은 부모타입과 같은 타입으로 지정된다. > 변수간의 호환성을 위해서
// 위의 pose의 경우 int형으로 0~100까지의 값을 가진 하나의 부분 타입이 나온다.
- 특별한 설계 이슈는 없으며, Enumeration Type에서의 설계이슈와 같다.
1. Enumeration Types (열거 방식)
- 타입이 취할 수 있는 값을 일일이 열거 해주는 방식
ex) (in C) enum colors { red, blue, green, yellow } // 각각의 요소는 숫자 인덱스로 지정되있다.
// red = 1 , blue = 2 , green = 3 , yellow = 4
colors mycolor = red; // mycolor은 red, blue green, yellow만 취할 수 있다.
mycolor++; // 각각의 요소에 숫자가 부여 되있으므로 ++시 다음요소 값 이동
// 즉 mycolor값은 blue가 된다.
- 열거 타입의 설계 이슈
ⓐ 상수 사용을 한번으로 제한 할 것인가?
ex) (in C) enum boolean1{T,F} enum boolean2{F,T,U} // T or F에 해당하는 상수는 무엇인가?
(in Pascal) 상수 사용을 한번으로 제한해준다.
(in Ada) 상수 사용을 여러번 사용가능하고, 중복 사용된 상수값 사용시 타입을 선언하여 혼동을 막는다.
TYPE letters is {'A', 'B', 'C'}
TYPE vowels is {'A'}
// A의 사용에 대한 혼동을 막기 위해서 사용시 (letters)A, (vowels)A등으로 타입을 명시해준다.
- 가독성과 신뢰성을 지원해주기 위해서 사용한다.
2. Subrange Type (열거된 것의 부분 방식)
- 특정 타입에서 일부분만을 가지는 방식
ex) TYPE sub_int = 0 ... 100;
// subrange의 타입은 부모타입과 같은 타입으로 지정된다. > 변수간의 호환성을 위해서
// 위의 pose의 경우 int형으로 0~100까지의 값을 가진 하나의 부분 타입이 나온다.
- 특별한 설계 이슈는 없으며, Enumeration Type에서의 설계이슈와 같다.