こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

投稿日時 - 2008-09-10 21:05:54

QNo.4319095

すぐに回答ほしいです

質問者が選んだベストアンサー

> ただし、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

ここは処理されると思うのですが・・・

> エラーというか、実行しても何も表示されないのです・・・

ひょっとして、実行中?

投稿日時 - 2008-09-12 22:24:09

お礼

実行中でした・・・。

お騒がせしてすみませんでした。

皆さんありがとうございました。

投稿日時 - 2008-09-16 12:10:17

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

・130行目のIFの条件が成立してもしなくても140行目に進むので、130行目を812万回ほど実行するまでループから抜けることがない。
・150行目で唐突に変数Z1を参照しているが、それ以前にZ1には値が代入されていない。170行目のY1、190行目のX1も同様。
・150行目で変数Zに値を代入しても、その後Zが参照されることはないので無意味。170行目のY、190行目のXも同様。

投稿日時 - 2008-09-10 23:01:53

お礼

ご指摘ありがとうございます。
組みなおしてみようと思います。

投稿日時 - 2008-09-11 15:12:32

ANo.1

エラーばかりと言われてもどこなのかを提示しないと。。。

ですけど、
>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
の方がいいのではないかと思うのですが。。。
違っていたらスル~して下さい。

投稿日時 - 2008-09-10 21:32:18

補足

エラーというか、実行しても何も表示されないのです・・・
すみません、ご指摘ありがとうございます。

投稿日時 - 2008-09-10 22:34:35

あなたにオススメの質問