게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

프로젝트 3 질문입니다.

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2014)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
박상혁



가입: 2014년 9월 3일
올린 글: 27

올리기올려짐: 2014년12월1일 2:05    주제: 프로젝트 3 질문입니다. 인용과 함께 답변

check_exp에서

repeat (if ((repeat (read + 100) 2) + (-55)) then 1 else -1) 5

위와 같은 exp는 if 조건문이 항상 홀수이기 때문에 1을 택하게 되고, 항상 잘 계산되는 정수식이 됩니다.

하지만 위와 같은 input을 처리하기 위해선 결국 모든 종류의 입력(read)에 대해 다 테스트를 해 볼 수 밖에 없을 것 같은데요, 이것은 문제의 의도사항이 아닌 것 같습니다.

실제로 잘 계산되는 정수식이지만 위와 같은 복잡한 입력에 대해서는 check_exp 함수가 false를 반환하게 코드를 작성해도 괜찮을까요?
그리고 고려하지 않아도 되는 케이스(ex. "if cond T F" exp에서 cond가 항상 0이 아니어도 exp가 T, F의 값을 모두 가질 수 있다고 예측해도 되는지 등)가 있다면 알려주실 수 있나요?


자세히 생각해 보진 않았지만 check_cmd의 경우에도 유사한 의문이 생길 것 같습니다. 혹시 가능하다면 cmd의 경우에도 어떻게 되는 지 알려주시면 감사하겠습니다.


감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김윤승



가입: 2014년 9월 1일
올린 글: 452
위치: 302동 312-2호

올리기올려짐: 2014년12월1일 14:19    주제: 인용과 함께 답변

네, 짝홀까지 고려하실 필요는 없습니다.
권장하는 방법은 식이 가질 수 있는 범위(ex: [-10,20])를 고려하는 것입니다.

그래서 잘 모르겠을 때에는 false를 반환하는 것이 맞습니다.

정확히 어디까지 고려해야 하는지 등은 정답이 없기 때문에 애매한 것이 맞습니다.

if true A B 와 같은 식에서 B는 실행되지 않을 거라는 것 정도까지는 해주는 게 좋을 것 같습니다.

어디까지 해야 하는지 선을 찾는 것도 실력이기 때문에 너무 세세하게 알려드릴 순 없지만 애매한 케이스가 있으면 질문하시면 됩니다.
위로
사용자 정보 보기 비밀 메시지 보내기
정의진



가입: 2014년 11월 13일
올린 글: 9

올리기올려짐: 2014년12월3일 19:55    주제: 인용과 함께 답변

저도 범위로 해서 생각해서 했는데
그렇다면
위와 같이 범위 사이에 구멍이 생기는 경우에 대해서는 검토하지 않아도 괜찮은 것인가요?
위로
사용자 정보 보기 비밀 메시지 보내기
김윤승



가입: 2014년 9월 1일
올린 글: 452
위치: 302동 312-2호

올리기올려짐: 2014년12월3일 23:36    주제: 인용과 함께 답변

어떻게 하든 완벽하게 하기는 일반적으론 불가능합니다.

안전하게 잘 모르겠는 건 false를 리턴하면서, 올바른 상황에서는 최대한 true를 리턴하도록 하는 게 목표입니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2014) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay