Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139148
次のページ(過去)
返信[46]
親投稿
けい kei0baisoku
>pinfuさん ありがとうございます!(^O^) 全部読んで下さっただけでもう感無量です(笑) 少しでも今後のお役に立てれば嬉しいです(´ω`)
1そうだね
プレイ済み
返信[45]
親投稿
けい kei0baisoku
>LAMPさん DIMとVARは全く同じです。私も少し謎ではありますが、同じものがわざわざ二つもあるのは、多分BASICやプチコンの歴史的な背景によるものだと思ってます。 配列は、うむぅ、簡潔に説明するのは難しそうですが、一言でいうと「たくさんの変数がワンセットになったもの」です。 例えば VAR SERIF$[5]で、5個の文字列変数が作られます。 そして、SERIF$[0]~SERIF$[4]の5個の変数を使えます。5個の変数はそれぞれ独立しており、値を変えても他には影響しません。 これだけだと「普通に1つずつ変数使えばいいやん」で終わるのですが、添字に変数を使えることを覚えると、特にFOR文などと組み合わせてベタ打ちではできない処理が書けます。 配列も質問が多いので、講座的なのがあるといいのかなぁ、と少し思ってます(´ω`)
0そうだね
プレイ済み
返信[3]
親投稿
けい kei0baisoku
つ BACKUP(一応) 2回書けばその分理解が深まる!(°Д°)ポジティブ
2そうだね
プレイ済み
返信[6]
親投稿
けい kei0baisoku
数学系の処理を使いそうなら、ついでにあとどういうのがあるかだけ、ざっと目を通して頭に入れておくと便利ですよ!(^O^)
0そうだね
プレイ済み
返信[39]
親投稿
けい kei0baisoku
あっ、もしかしてまだ「配列」自体をご存知じゃないんですね(°ω°) よく見たら確かに、作品でも1つも出てきてない! 長々と語っておいてなんですが、他の方の回答の方が分かりやすいかも………(´Д`) 一度ご覧になった方が理解が早いかも知れません。
0そうだね
プレイ済み
返信[37]
親投稿
けい kei0baisoku
ゲームの追い込み、お疲れさまです(`・ω・´)\ あ、私の方もビックリしたわけではなく、燃え尽きただけです………(´Д`)
1そうだね
プレイ済み
返信[35]
親投稿
けい kei0baisoku
スイマセン!(><) 分からないところは遠慮なく聞いてください! 長くて分かりづらくてすみませんm(__)m
0そうだね
プレイ済み
返信[2]
親投稿
けい kei0baisoku
マイスパ、プログラムの練習にはちょうど良い題材ですよね!(^O^) 著作物なので全く同じものをプチコンで作っても公開できませんが。
0そうだね
プレイ済み
返信[33]
親投稿
けい kei0baisoku
以上です! 覚悟していた2、3倍の量になりました………(-ω-) 万一全部読んでくださった方いましたら、誠にありがとうございます。そしてすみません。 もし次またやることがあったら、絶対に短く済む内容にする………!(><)
0そうだね
プレイ済み
返信[32]
親投稿
けい kei0baisoku
三つ目、GCIRCLEのエラー。 用意された命令なので、まずヘルプを見るのが良いでしょう。この場合、見ると半径は「1~」とあります。このプログラムでは初っぱなに0を渡してますので、これがまずいと分かります。ちなみに、アホみたいに大きい10000の方は、エラーにはなりません(-ω-) もしもっと複雑な命令でヘルプを見ても分からなかったら、PRINTの時と同じく「段々範囲を狭めて犯人を追い詰める作戦」です。例えば座標指定を大丈夫と分かっている固定の値にしてみたり、色の指定をやめたり、半径も大丈夫な固定値にしてみたり。全部を大丈夫な値にするまでのどこかで、エラーが出なくなるはずです。 ちなみに今回の FOT X=0 TO 10000 STEP 10 の構文は「Xを10刻みで10000まで増やす」という意味です。 0,10,20,30,...,10000 ですね。
0そうだね
プレイ済み
返信[31]
親投稿
けい kei0baisoku
二つ目、配列の範囲外。 まずはソースを見て、どこか自分が間違えてないかを探してみるのが普通ですね。それでもし見ても分からなければ、迷わずその添字に使っている変数をPRINTしましょう。10の名推理よりも1行のPRINTです。その数値が予想外でも予想通りでも、必ず一歩前に進みます。で、たいてい数回もPRINTすれば問題は解決します。 さて、今回の場合、添字に使っているπ×πは、プリントすると約9.87と出てきます。さらにそれをCEIL()という関数に渡してますが、これは小数を切り上げる命令、つまり、切り上げて「10」になります。 VAR X[10]はサイズ10個の配列。添字に使えるのは「0~9」なので、10は確かに範囲外です。
0そうだね
プレイ済み
返信[30]
親投稿
けい kei0baisoku
今回、私が載せたプログラムの行末に付けていたのは、記号のページにある空白っぽいヤツです。 これは初心者、経験者関係無く、同じエラーを経験した人しか、見ても分からないと思います。でも多分、プログラムを長くやってる人の方が自力で、早く正解に辿り着ける確率は高いです。それは知識もあると思いますが「探し方」も上手いからじゃないかと思います。
0そうだね
プレイ済み
返信[29]
親投稿
けい kei0baisoku
ここからさらに絞ってみます。 (3)+より前を消した状態で、さらに""で囲まれた中身も消してみる。 これをやると残るのは PRINT "" だけになりますが、これもエラーになります。 意味不明ですが、プチコンがエラーを出している以上、必ずこの中に犯人はいます。実際にプログラムを打って確認していたらこの時点ではっきり気付くと思いますが、行の最後に余計なスペースが付いています。 で、そのスペースを消すと通ります。 ちなみに、命令の前後に余計なスペースがあるのは、文法エラーではありません。つまり、行の最後に付いていたスペースは、普通のスペースではない文法エラーになる何かだった、ということが分かります。
0そうだね
プレイ済み
返信[28]
親投稿
けい kei0baisoku
まず1つめのプリント文。 これ、実際に最近このコミュの投稿であったエラーです。 文法エラーは普通、見れば分かりますが、この行はいくら見てもおかしいところがないですね………。でも、プチコンがエラーだと言っているからには必ずどこかに原因があります。 こういう時は問題の行を少しずつ削っていって、どこを削ったらエラーがなくなるか、犯人を絞り込む方法が効果的です。 例えばこんな感じです。 (1)PRINTから+までだけ消してみる。 (2)+より後だけ消してみる。 ちなみにこれをやると結果は、1はエラー、2は通ります。 つまり、エラーの犯人は+より後にあることが分かります。
0そうだね
プレイ済み
返信[27]
親投稿
けい kei0baisoku
0そうだね
プレイ済み
返信[26]
親投稿
けい kei0baisoku
(2)Subscript out of range 「Subscript」は配列の「添字」という意味だそうです。つまり「配列の添字が範囲外」。2番目くらいによくみるエラーではないでしょうか。 原因としては、添字に使っている変数が思ったのと違う値になっている事が考えられます。または、うっかり間違えて全然違う変数を使ってしまっているか。 (3)Out of range in 0:16(GCIRCLE) GCIRCLEの何かが範囲外、と言ってますね。何が範囲外かはこれだけだとそれ以上分かりませんが、引数で与えたどれかの数値がおかしかったことが考えられます。 まず、元々の問題に対する解答は以上です。ここから、今回の具体的な原因についての解説です。 伝えたい事として「結果的に分かったバグの原因の知識そのものよりも、原因を探す力の方が大事」というのがありますので、探し方に重点を置いて解説したいです。
0そうだね
プレイ済み
返信[25]
親投稿
けい kei0baisoku
で、前置きが長くなり過ぎましたが本題の解答です。 まず、いずれのエラーも「スロット数:行数」で具体的なエラー場所を示してくれています。これが一番重要な情報です。 (1)Syntax error 「Syntax」は「文法」という意味です。文法がエラー。つまりプログラム自体の書き方がおかしい。一番よく見るエラーですね。 ほとんどの場合は単純ミスが考えられます。スペースがなかったり、ゼロとオーを間違えてたり、命令の名前を間違えていたり。たいていは、命令の文法を確認した上でよく見直せば分かりますね。
0そうだね
プレイ済み
返信[24]
親投稿
けい kei0baisoku
英語なので見た瞬間スルーされる方も多いと思いますが、プログラム関係で出てくる単語はそう多彩ではないので、知らない単語もその都度調べて覚えていけばそう苦労せずにだいたい分かるようになります。学生時代に英語の実力テストは開始3分で選択肢だけ埋めて残り57分熟睡していた私が保証します(-ω-) 学生の皆さんは熟睡は真似しないでください(-ω-) ですので、具体的なプログラムの間違い探し自体はおまけ程度だったのですが、真剣に探してくださる方が思いの外いらっしゃいましてスミマセン……… プログラムを見て原因が分かると主旨から外れるので、あえて分かりづらいバグにしました。全部当てられた猛者の方もいらっしゃいましたが、初心者の方は見ただけでは全部分からなくて当たり前ですので安心してください。 ただ「分からなくてもまずエラーメッセージが強い味方になる」事だけ覚えてほしいです。
0そうだね
プレイ済み
返信[23]
親投稿
けい kei0baisoku
回答、コメントくださった皆さん、ありがとうございました。ここから、私なりの解説です。(すみません多分長いです) まず今回の問題は「エラー画面の3つのエラーについてそれぞれ、どのようなミスが考えられるか」でした。 出題のテーマとして「エラーメッセージを活用して、問題の解決に近付くこと」を考えてました。PCで何かエラーが出ても内容をよく読む人は少ないと思いますが、プチコンでエラーが出たら99%自分の出したバグなので、自分で解決する必要があります。その時にエラーメッセージは強い味方になります。
0そうだね
プレイ済み
返信[2]
親投稿
けい kei0baisoku
言葉は月並みですが、失敗は成功のもと。 この失敗も決して無駄ではなく必ず次に活きます。頑張ってください(`・ω・´) そしてこうさんの突っ込みどころが多すぎるーw
0そうだね
プレイ済み