2017-05-12 1 views
0

제가 고등학생이었을 때 제 TI-84 Plus 계산기가 제 2 차 방정식을 수행하도록 프로그래밍하는 방법을 알아 냈습니다. 내가했던 goody-two-shoes처럼, 나는 마지막 시험 전에 프로그램을 삭제했다. 지금 프로그램을 다시 만들려고하는데 잘 작동하지 않습니다. 지금까지와 같은TI-BASIC의 2 차 방정식 솔버가 잘못된 루트를 반환합니다.

:Prompt A, B, C 
:(-B+√(B²-4AC))/2A→Y 
:(-B-√(B²-4AC))/2A→Z 
:Disp Y 
:Disp Z 

(는 사용자가 주어진 편지 변수의 값을 설정할 수 있습니다 계산기에 STO> (저장) 버튼에 해당합니다.)

: 여기에 내 코드입니다 내가 말할 수있는이 이어야한다. 수학과 괄호는 순서대로 표시되고, Prompt 함수가 작동합니다 (프로그램이 끝난 후 A, B 및 C가 마지막으로 프로그램이 실행 된 시점에서 저장된 값을 인쇄하도록 계산기에 요청한 후).

제가 이미 답을 알고있는 이차 방정식을 계산해달라고 요청하면 재미있는 숫자가 나옵니다. A=1, B=-3, C=2, should return x-intercept values of 1 and 2을 입력하면 대신 2와 0이 반환됩니다. x -intercepts 0 = 3x²-10x + 7 are 1 and 7/3 그러나 계산기는 21과 0을 반환합니다. 지금은 재현 할 수 없지만이 프로그램에서는 몇 가지 상수가 반환되지 않습니다. .

이 코드의 잘못된 점은 무엇입니까? 수학은 작동합니다 (프로그램의 코드 행과는 달리 변수에 값을 저장하면 올바른 값을 반환 함). PromptDisp 함수가 작동합니다. 여기서 뭐가 잘못 됐니?

+0

FWIW, 내 코드는 [코드 예]와 거의 유사합니다 (http://www.instructables.com/id/Quadratic-Formula-for-the-TI-83-and-84/). 조금 더 공상. 그 코드는 표면 상으로 작동합니다. – Shokhet

+1

테스트에 편리한 TI-83 에뮬레이터가 없지만'(2A)'를 괄호로 사용해보십시오. – duskwuff

+0

@duskwuff 허. 그것은 그것을 한 것으로 보인다. 감사! ... 대답을 쓰고 싶니? 그렇지 않습니까? – Shokhet

답변

2

조작 순서가 다시 나타납니다.

((-B+√(B²-4AC))/2)*A 

는이 문제를 해결하기 위해 /(2A)에 괄호를 추가로 표현

(-B+√(B²-4AC))/2A 

구문 분석되고있다.

+0

감사합니다! ... 3 분 안에 수락을 기대하십시오 : D – Shokhet

+3

'A = 1'은 두 해석 모두에서 동일한 결과를 제공해야하므로 어떻게 첫 번째 예가 발생할 수 있습니까? – LutzL

+0

@LutzL 구분 기호가 뺄셈으로 바뀌면 그 일이 일어나는 것을 볼 수 있습니다. 첫 번째 예제에서는 {2,0}이됩니다. – Timtech