0

わかりました、これが私の問題です。高度なピタゴラスの定理プログラムを作成しましたが、明らかに例外があります。これが私の問題の例です。とを入力するA? √(3)と戻ります。コードは次のとおりです。B? 20

:Prompt A,C
:(C^2-A^2)->B
:If B<0
:Then
:Disp "THAT IS N
OT  A VALID TRIA
ANGLE
:Else
:If iPart(√(B))≠
√(B)
:Then
:Disp "B = √(",B
:Else
:Disp "B = ",√(B)
:End
:End

したがって、B = 1 の場合、仮説的には出力するはずB = 1ですが、代わりに次のように出力します。

A=? √(3)
C=? 2
B = √(
              1
           Done

私は何を間違っていますか?どうすれば修正できますか?

4

1 に答える 1

1

あなたのプログラムを簡単に評価すると、B≠1. たとえば、有名な 3,4,5 - 三角形を計算したい場合、次のように表示されます。

A=?4
C=?5
B=
                  3
               Done

どうやら はiPart(で正しく動作しません√(1)If iPart( ...これを除外するために、ステートメントに追加のステートメントを含めることができます。このような。

:...
:If iPart(√(B))≠√(B) and B≠1
:...

Inputそれに加えて、 , コマンドClrHomeとコマンドを使用すると、プログラムがよりきれいで見栄えがよくなると思いOutput(ます。

:ClrHome
:Input "A: ",A
:Input "C: ",C
:(C^2-A^2)->B
:If B<0
:Then
:Output(4,1,"THA
T IS NOT A")
:Output(5,1,"VAL
ID TRIANGLE")
:Else
:If iPart(√(B))≠
√(B) and B≠1
:Then
:Output(3,1,"B: 
√( )")
:Output(3,5,B)
:Else
:Output(3,1,"B:")
:Output(3,5,√(B))
:End
:End
:Pause
:ClrHome

結果画面は次のようになります。

A: √(3)
C: 2
B: 1

3これは、右下隅ではなく整列されているため、よりクリーンだと思います。ENTER を押すと、すべてが画面から削除されます (Pauseコマンドにより)。

于 2014-10-23T07:49:41.517 に答える