アプリ版:「スタンプのみでお礼する」機能のリリースについて

添付の図のようなフローチャートをbasicでプログラムすると次のようになる
130行目の空欄を等号ないし不等号ないし等号つき不等号で埋め
条件式を完成させよという問題がありました。

100 INPUT N
110 FOR I=1 TO N
120 LET A=I
130 IF (A+1)^2 (空欄) N THEN GOTO 190
140 NEXT I
150 IF A<=1 THEN GOTO 190
160 PRINT A
170 LET N=N-A^2
180 IF N>=1 THEN GOTO 110
190 END

ここで入れるべきものはA^2がNを「超えない」なので>=ですよね?
解答を見ると>となっているのですが
解答の条件式でN=4として実行すると2が出力されるのでおかしな気がします。

解答が正しいのでしょうか?それとも間違っているのでしょうか?

「空欄に不等号が入るのですが・・・」の質問画像

A 回答 (2件)

>解答の条件式でN=4として実行すると2が出力されるのでおかしな気がします。


2の2乗は4です。
4は4を『超えて』ますか?

ピッタリ一致する(並ぶ、揃うとも言う)だけで、『超えて』は居ません。

これを踏まえると、『超えない』なので『>』が正解。

日本語のニュアンスの取り違えですね。
プログラムには案外、そういうニュアンスの取り違えがないように努力することが一番大事な要素だったりします。
ニュアンス違いで相手の言ってる事を間違って理解していたら、間違った物が出来上がるのは当然ですからね。
    • good
    • 0
この回答へのお礼

よくよく考えてみればガウス記号は「その数字を『超えない』最大の整数」なのに
[4]=4ですから、確かに「超える」ではありませんね。

この問題は練習問題だったので、試験では取り違えのないよう注意したいと思います
解答ありがとうございました

お礼日時:2011/12/12 21:44

>解答が正しいのでしょうか?それとも間違っているのでしょうか?


あなたが間違っている。
1、「超えない」は「<=」でしょ?
2、フローの文字だけ見てないできちんと各行の処理の意味を理解しましょう。130は(A+1)^2がNを「超えたら」のほうです。
3、N=4のときA=2で合ってます。
    • good
    • 0
この回答へのお礼

そういえばガウス記号はその数字を「超えない」最大の整数で
[4]=4ですから、「超えない」の場合その数字はセーフですね。

ということは確かにN=4のときA=2で大丈夫ですね

「超えない」に関する理解不足でした
解答ありがとうございました

お礼日時:2011/12/12 21:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!