投稿
プチコン3号でBASICが少し分かってきた方を対象に軽い問題を出します。今回で5問目。 問題。次のプログラムを実行して「Aを2乗した値を表示する」はずが、エラーが起こりました。 原因と対策を答えなさい。 A=0 @LOOP A=A+1 IF A>=20 THEN END GOTO @HYOUJI GOTO @LOOP @HYOUJI PRINT A,A*A RETURN 答えが分かった方は「ネタバレ」で答えを書いて頂きたいです。正解した方にはそうだねで返します(私が見て無い時でも誰か分かる方がそうだねを押して頂けると助かります)。 ※今回は分かりやすいミスの為ノーヒントです。全員満点を目指しましょう
3そうだね
プレイ済み
返信[1]
親投稿
らいち zero120802
GOTOに、RETURNは使えないなー GOSUBを使うかどうにかしないとなー でも、そんなミスする人いるのかな?
1そうだね
プレイ済み
返信[2]
親投稿
>らいちさん その通りです。初歩的な事ですが、「やらかさない」ミスでは無いという事で。
0そうだね
プレイ済み
返信[3]
親投稿
pinfu ANNAININ
GOSUBでないと、 RETURNで戻れない・・・ これですかね。
1そうだね
プレイ済み
返信[4]
親投稿
>pinfuさん そういう事です。またGOTOとGOSUBの使い分け方でも書こうと思ってますので。
1そうだね
プレイ済み
返信[5]
親投稿
くろちく FoliageLamp
2乗がわからないので、理解がないのですが(何 いつも通りうちこんでみて、エラーが GOSUBがないのにRETURNがあります。とのことなので。 GOSUB @HYOUJIで、戻ってくるようにしたらいいのではと思います。
2そうだね
プレイ済み
返信[6]
親投稿
皆様お疲れさまです。今回はGOTOとGOSUBについてのエラーというテーマで問題を作りました。 @ラベルへ飛ばすという命令はGOTO(GO TOという意味。~へ行けという命令)です。が、プログラムを見ますと「飛ばした先にGOTOで戻す命令がない」「RETURNという命令がある」という違和感が。 そこで今回使うのがGOSUB。GOTOとの違いは「RETURNという命令で飛ばす元(この場合GOSUB @HYOUJI)へ帰って来る」というのがあります。プログラムのあちこちで同じ処理を何度もさせたい場合などに使います。 そして今回のプログラムですが、「GOTO @HYOUJIをGOSUBに変える」事で解決します。 あと2乗というのは3の2乗=3x3=9という風に同じ数をその数だけかけた値の事です。 今回は全員満点。また何か思いついたら出しますので。
2そうだね
プレイ済み