2014-08-31 3 views
-1

사각형의 모든 상자 위치를 표시하는 코드를 작성했습니다. 사용자가 4를 입력하면 사각형의 크기가 4x4이고 모든 위치가 인쇄되어야합니다. 내가 그의 프롤로그 프로그램을 작성했습니다,하지만 난 운영자 예상 오류를 얻고있다 .... 여기 내 코드입니다 : 내가 프롤로그와 일을 연습 할 새로운 오전프롤로그에서 오류 연산자가 예상됩니다.

printsqpos(N):- printnum(1,N). 

printnum(I,NUM):- I<=NUM,printrow(I,NUM),N1 is I+1,printnum(N1,NUM). 

printrow(I,N):- printcell(I,1,N). 

printcell(I,J,N):- J<=N,write(I,J),K is J+1,printcell(I,K,N). 

... 나에게

도와주세요

답변

2

오류의 출처는 ..., J <= M, ......, J =< M, ...입니다.

보다 작거나 같은 프롤로그에는 =<이 기록됩니다. 처음 엔 이상하게 보일 수 있습니다. 그러나 Prolog를 자주 사용하는 것은 정리 해설자를 구현하는 것입니다. 거기에 <=은 오히려 비교 연산자가 아닌 오른쪽에서 왼쪽 화살표로 보여집니다.

그러나 더 많은 것이 있습니다 : 하나의 재귀 규칙으로 구성된 printnum/2을 가져 가십시오. 즉,이 술어는 이 아니며이 성공할 것입니다. 실패하거나 반복 될 수 있습니다.

+0

네 대답은 완벽합니다 .... 왜 내가 이걸 가지고 부정적인 평가를 받았는지 모르겠다. 나는 방금 porlog를 배우기 시작했다. ..... 그래서이 의심은 명백하다. –

+0

그렇지 않은가? 처음 상태가 I =

+0

@JatinKhurana : 당신 말이 맞아요. 내 요점은 단지 결코 성공하지 못할 것이라는 것이었다. 그리고 보통 하나의 술어가 성공할 것으로 기대한다. – false

관련 문제