- ベストアンサー
3連1次方程式を解くプログラミングについて
最近プログラミングの勉強を始めたばかりの者です。 エラーが出ても、どこがいけないのか、自分では見つけられません。 よろしくお願いいたします。 次の3連1次程式を解くプログラムを作成しなさい。 ただし、X、Y、Zは整数とし、その範囲を-100<X、Y、Z<100とする。 4X+2Y-6Z=-28 7X-5Y-8Z=-20 5X+Y-Z=2 という問題です。 以前の質問の中で同じような問題の質問(QNo.1005159)があり、参考にさせていただいたのですが、エラーばかりで・・・ 100 FOR X=-100 TO 100 110 FOR Y=-100 TO 100 120 FOR Z=-100 TO 100 130 IF (4*X+2*Y-6*Z=-28) AND (7*X-5*Y-8*Z=-20) AND (5*X+Y-Z=2) THEN 140 140 NEXT Z 150 LET Z=Z1 160 NEXT Y 170 LET Y=Y1 180 NEXT X 190 LET X=X1 200 PRINT "X,Y,Z=";X1,Y1,Z1 END
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> ただし、X、Y、Zは整数とし、その範囲を-100<X、Y、Z<100とする。 > 4X+2Y-6Z=-28 > 7X-5Y-8Z=-20 > 5X+Y-Z=2 手で解いてみましたか?解が無いので問題に誤りがあると思われます。 > 100 FOR X=-100 TO 100 > 110 FOR Y=-100 TO 100 > 120 FOR Z=-100 TO 100 題意と違っています。-100と100は含みません。 他はNo.1さん、No.2さんのご指摘のとおりです。 > 200 PRINT "X,Y,Z=";X1,Y1,Z1 ここは処理されると思うのですが・・・ > エラーというか、実行しても何も表示されないのです・・・ ひょっとして、実行中?
その他の回答 (2)
- salsberry
- ベストアンサー率69% (495/711)
・130行目のIFの条件が成立してもしなくても140行目に進むので、130行目を812万回ほど実行するまでループから抜けることがない。 ・150行目で唐突に変数Z1を参照しているが、それ以前にZ1には値が代入されていない。170行目のY1、190行目のX1も同様。 ・150行目で変数Zに値を代入しても、その後Zが参照されることはないので無意味。170行目のY、190行目のXも同様。
お礼
ご指摘ありがとうございます。 組みなおしてみようと思います。
- n-jun
- ベストアンサー率33% (959/2873)
エラーばかりと言われてもどこなのかを提示しないと。。。 ですけど、 >130 IF (4*X+2*Y-6*Z=-28) AND (7*X-5*Y-8*Z=-20) AND (5*X+Y-Z=2) THEN 140 って 130 IF ((4*X+2*Y-6*Z)=-28) AND ((7*X-5*Y-8*Z)=-20) AND ((5*X+Y-Z)=2) THEN 140 の方がいいのではないかと思うのですが。。。 違っていたらスル~して下さい。
補足
エラーというか、実行しても何も表示されないのです・・・ すみません、ご指摘ありがとうございます。
お礼
実行中でした・・・。 お騒がせしてすみませんでした。 皆さんありがとうございました。