2014-05-13 4 views

답변

1

두 문제 "DONE"어떤 반응하지만 을 제공하지 않는 모든 ": end"는 같은 줄에 있습니다.

2 : 이것은 아마도 가장 큰 문제 일 것입니다. "stop"명령입니다. "중지"는 프로그램을 모두 끝내고 일반 기능으로 돌아가는 데 사용됩니다. 당신이 원하는 것은 D * E = C와 D + E = B가 반복되면 멈추게하는 것입니다. 이 경우 두 가지 중 하나를 수행 할 수 있습니다. 반복 루프에 브레이크 아웃 코드를 기록합니다. 예를 들어

:ClrHome 
:Input "A=", A 
:Input "B=", B 
:Input "C=", C 
:For(D,1,100,1) 
:For(E,1,100,1) 
:Repeat (D*E)=C and (D+E)=B 
:End 
:End 
:End 
:Disp D 
:Disp E 

또는, 당신은 고토 명령

:If (D*E)=C and (D+E)=B 
:Goto Lbl A 

를 사용하여 코드에서 아래 촉진 할 수 있습니다, 당신은 당신의 변수를 표시 당신이 그것을 원하는 경우 위의 "하는 Lbl A"를 둘 것

+0

문제 1 진짜 문제가되지 않습니다. 'End's는 콜론 (:)으로 구분되기 때문에 각각의 줄에있는 것과 같습니다. 그것은 단지 선호의 문제입니다. 또한'Goto' 명령은'Lbl' 키워드를 사용하면 오류를 줄 것입니다. 레이블 이름, 단순히 'Goto A'로만 따라야합니다. – kamoroso94

0

문제는 정지가 루프를 끊는 대신 프로그램을 완전히 종료한다는 것입니다. 대신 또는 루프를 들어 사용하여,이 문제를 해결하려면, 당신은 반복 루프를 사용할 수 있습니다

:1→D 
:Repeat (D*E=C and D+E=B) or D=100 
::1→E 
::Repeat (D*E=C and D+E=B) or E=100 
:::E+1→E 
::End 
::1+D→D 
:End 

당신은 그들이 명확성을 위해 단지 거기에 있지만, 당신이 그들을 떠날 경우 그들이 작동하기 때문에 코드가 여전히 작동, 여분의 콜론을 무시할 수 있습니다 개행과 동일합니다.

D*E=C and D+E=B 조건이 충족되면 반복 루프가 중단되지만 변수 ED의 초기화 및 증가를 직접 처리해야합니다.

또한 A이 1이 아닌 경우 인수 분해 알고리즘이 실패 할 수 있습니다. BCA으로 나눈 다음 일정한 계수로 A을 출력하는 것을 고려하십시오.

코드에 또 다른 오류가 발생했습니다. End 문이 너무 많지만이 문제를 해결해도 프로그램이 수정되지 않으며 여전히 Stop에서 종료됩니다. Then이없는 If에는 End이 필요 없지만 조건이 true이면 한 줄만 실행됩니다. 예를 들어 :

:If <condition> 
:<one statement> 

또는

:If <condition> 
:Then 
:<statement 1> 
:<statement 2> 
:<statement ...> 
:<statement n> 
:End