投稿
プチコン3号でBASICが少し分かってきた方を対象に軽い問題を出します。今回で3問目。 問題。次のプログラムを実行したらエラーが出ました。 原因と対策を答えなさい。 FOR I=0 TO 2 READ A$,B PRINT A$,B;"えん" NEXT DATA "うどん",600,"そば","500","ラーメン",800 答えが分かった方は「ネタバレ」で答えを書いて頂きたいです。正解した方にはそうだねで返します(私が見て無い時でも誰か分かる方がそうだねを押して頂けると助かります)。 ※前回のREADとDATAを少し掘り下げた問題です。全員満点を目指しましょう
6そうだね
プレイ済み
返信[1]
親投稿
pinfu ANNAININ
READ A$, B と言うことは、文字、数値を読む。 という理解・・・(不安) 2つ分ずつREADしているから、 500に¨¨が付いているのが原因?
4そうだね
プレイ済み
返信[2]
親投稿
くろちく FoliageLamp
掘り下げ要素がわからなかった…ので もっと考えるべきなのかと、考えながら参加です。 変数の型が一致しないという、エラーだったので。 文字列変数,数値変数が、READに設定されてることから ""で囲まれたものは、文字列変数と認識される?ので Bの数値変数では呼び出せないから…かな。 解決方法は、"500"から""を、とりのぞくことだと思います。
4そうだね
プレイ済み
返信[3]
親投稿
>pinfuさん、>LAMPさん 大正解です!今回は「文字と数字の読みこみ」という意味での掘り下げです。
1そうだね
プレイ済み
返信[4]
親投稿
タバひめ tabahime
つまり、文字変数と変数を交互に読み取るのですね。 ”500”は文字変数では読み取れませんので””を取り除く必要があります。ひっかけ問題ですね。 それと、3行は PRINT A$,B;"えん"  より PRINT A$;B;"えん"  の方がいいですね。文字変数A$と変数Bの中身を隣にくっつけて表示出来ますからね。
1そうだね
プレイ済み
返信[5]
親投稿
"そば"の次の500が""で囲まれていて文字列の扱いになってしまっていて、文字列用の変数はは変数名の後に$を付けないといけないから、変数Bでは読み込めないのだと思います。500の""を取ればできると思います。 間違っていたらすいません。
2そうだね
プレイ済み
返信[6]
親投稿
今回は皆様すぐ見つけられたのか全員満点です。単純な事ですがやらかさないミスではございませんので。 簡単な解説を。データというのは文字型(変数に$が付く)のと数値型(変数に$は付かない)があります。 大きな区別としまして、文字型には""(ダブルクォーテーション)で括るという決まりがあります。 今回のプログラムではデータの中に""で括った「文字型」を数値型の変数として読みこんでる部分があり、そこが求めている型と合わない為エラーが起こる、という訳です。 また次回、いい問題が思いついたら出しますね。 これ見ている他のベテランの方々も問題を出して頂けると嬉しいです。
1そうだね
プレイ済み
返信[7]
親投稿
pinfu ANNAININ
問題の作成ありがとうございました! 使った事のない命令をゼロから 初心者一人で理解していくのは やはり難しいので、 こういった形で焦点を絞ると、とても参考になります。 まだ、本格的な(?)応用は出来なさそうですが、とりあえず今回覚えた命令をタイトルで使っています。 貴重な時間を使って頂いた事に感謝です!!
0そうだね
プレイ済み
返信[8]
親投稿
どうもです。初心者向けの解説というのは基本的に「エラーの出ない使い方」ですので打ち間違いなどによるエラーについての対処と言うのは中々説明が無かったり説明しにくい物だったりします。 実はこの問題を出すという事ですが、トゥイッターで「ミーバースで見かける初心者へ何か出来ないか」と話をしていた所で思いついた事でして。 1問目のDIMとその配列の法則の話も「覚えて欲しい」事ですので問題として挙げました。 あと問題にする内容は基本的に「エラーの原因を探す」系にしていいます。「ここにどの命令を入れればよいか」だとプログラムを見る範囲が狭く入れる命令の範囲が広くなりますので。 pinfuさんをはじめ問題に挑戦して頂いた皆様も、他の方のエラーの原因が分からないとの質問が出た時に「あ、ここがおかしい」と指摘できるよう頑張って欲しいものです。
2そうだね
プレイ済み