(C++ 자료구조)ADT 기본적인 문제에 관해
한길찬
솔직히 말씀드리면 이 질문의 범주는 C++이 아니지만,, 카테고리가 이것에 세분화되어있는 곳이 있을 리가 없고 궁금하기도 하고..... 일단은 C++자료구조에서 찾은거니까 C++ 거쳐가신 분들은 다 알고 계시리라 생각하면서 올려봅니다. 문제가 된다면 지울게요데이터 타입(ADT) 자연수이고요,
객체 : 정수의 순서가 있는 범위로서 0부터 MAXINT까지의 값을 가집니다.
x,y가 자연수에 속할 때
함수 부분에서 나눗셈(Divide) 부분의 조건을 어떻게 설정해야 할 지 몰라서 질문드립니다.
그냥 말로 해서는 감이 안 잡히실 것 같아서 곱셈(Multiply)을 예로 들어 보겠습니다.
Multiply(x,y):NaturalNumber∷=if((x*y=MAXINT)Multiple=x*y
elseMultiply=MAXINT
이런 식으로 함수를 정의하는데 나눗셈은 뭔가 그냥 해서는 안 될 것 같다고 생각되어서 질문 드립니다.
1.자연수/자연수를 계산하면 소수점 형태가 나올 가능성이 있는데 그에 대한 명시를 해야 하는가
2.예시의 형식대로 쓴다면 어떤 형식으로 작성해야 할까요?Divide(x,y):NaturalNumber∷= if((x/y)%1==0)Divide=x/y
else Divide=x/y-(x%y)/y제 멋대로 써본건데 이게 맞는 걸까요? 결과물이 자연수여야 된다는 조건이 제시되지 않았기 때문에 혼란이 옵니다. 자연수 타입 ADT면 결과도 자연수여야되는건지 아닌지, 아니면 아예 그냥 나눗셈 부분은 if문이 필요가 없는 건 아닌지...