プレイ日記
問題を募集します。プチコンプログラムに関することなら何でもいいです。 ー投稿形式ー ・問題(出来れば一行) ・選択肢(3つまで) ・答え ・解説(出来れば一行) お願い致します。
5そうだね
プレイ済み
返信[1]
親投稿
だにえる haru2016nen
問:次のうち、PRINT命令に関係(影響) しない命令はどれ? 選:TABSTEP COLOR LOCATE GPUTCHR
0そうだね
プレイ済み
返信[2]
親投稿
だにえる haru2016nen
問:次の命令の中で一番処理が速いのはどれか 選:A=A+1 A=A+2 INC A INC A,2
0そうだね
プレイ済み
返信[3]
親投稿
数値を文字列に変換する関数のうち、空白による桁揃えができるのはどれか? BIN$() STR$() ←これが正解 HEX$()
0そうだね
プレイ済み
返信[4]
親投稿
ダニエルさん≫ちなみに2個目の答えは何でしょう…
0そうだね
プレイ済み
返信[5]
親投稿
だにえる haru2016nen
INC Aが一番速いです。 ちなみに INC A,2 と A=A+2 のように +1以外の場合は INCの方が遅いです。
0そうだね
プレイ済み
返信[6]
親投稿
そうなんですね!ありがとうございます
0そうだね
プレイ済み
返信[7]
親投稿
割と実行速度は不安定だったりするらしいけどね(前や後ろにある命令によって変わったりとか)
1そうだね
プレイ済み
返信[8]
親投稿
そうなんですか…
0そうだね
プレイ済み
返信[9]
親投稿
バージョンアップで順位逆転とかも。
1そうだね
プレイ済み
返信[10]
親投稿
グハァ
1そうだね
プレイ済み
返信[11]
親投稿
myu314 myu314
INC AとA=A+1実験しなおしてみては。 今までずっとA=A+1の方が速かったはず。 手元のNew3DSで試したけど、A=A+1の方が速かったよ。 ノーマル3DSでも同じだったと思うけど…。 ちなみに A=A+1とA=A+2の差は無い、INC AとINC A,2も同じくらい。 INCの方が確実に速くなるのは配列使ったときだけじゃないかな。 A[0]=A[0]+1だと2回配列にアクセスすることになるので遅いっていう。
1そうだね
プレイ済み
返信[12]
親投稿
かつては A=A+1 INC A どちらも「2回参照」だったようですが INC A[RND(999)]のような場合、変な挙動をするため「1回参照」 に変更され、結果的に速くなったらしいです。
0そうだね
プレイ済み
返信[13]
親投稿
でも大きいプログラムじゃない限りあんまり気にならないよね
2そうだね
プレイ済み
返信[14]
親投稿
myu314 myu314
うん、普段はあんまり気にしなくてもいいよ。 こういう細かな高速化は、速度が問題になってもうどうにもならなくなった時に悪あがきでやるものだから:) それまでは見た目が綺麗で読みやすい書き方が正解。 ただ大きなプログラムじゃなくて、計算回数が問題かな。 例えば、自キャラ動かす処理だと1秒間に60回、X座標とY座標で2倍の120回くらい計算するわけだけど、同じような処理を敵にもする場合、敵が1000匹居たら120,000回くらい計算することになるよね。 これくらいの回数だとちょっと高速化が必要になってきそうでしょ。 プログラムの大きさと計算回数はあんまり関係ないよー。
5そうだね
プレイ済み
返信[15]
親投稿
MIKI ifconfig
ちなみに - 関数呼び出しより遅い配列 - 加算より遅いinc - 除算より遅い乗算 - repeat-until より遅いgoto を称して「激遅四天王」と呼びます。中でも配列の遅さは超怒級!
1そうだね
プレイ済み
返信[16]
親投稿
問題 DEFの関数では最後に$をつけなくても文字列を返すことができる ○Xでどうぞ
2そうだね
プレイ済み
返信[17]
親投稿
答え ○。 理由は知らないです。 問題 ・MMLの音階はCDEFGAHである ○X ・次のうちヘルプを押しても説明がでないものはどれ smilebasic smileboom putitcomputer
1そうだね
プレイ済み
返信[18]
親投稿
ネタバレ忘れたww 答え 1.X。CDEFGA「B」 ちなみにHはBの別の言い方。 2.smilebasic。
1そうだね
プレイ済み
返信[19]
親投稿
おちゃめ ochame_nako
しょぼーんさんへ それは代入された段階で型が決まるためです。 これによっていろいろと便利なことができるようになります。 というわけで、私もいくつか問題を作ってみました。 問題や解説が若干長目なので文字数オーバーならば適当に端折ってください。
2そうだね
プレイ済み
返信[20]
親投稿
おちゃめ ochame_nako
(問題) B=BUTTON()のときAボタンとBボタンの両方が押されている場合を判定したい。間違っているものはどれ? (選択肢) 1.IF (B AND 16) AND (B AND 32) THEN ~ 2.IF (B AND 16) && (B AND 32) THEN ~ 3.IF (B AND 48)==48 THEN ~
0そうだね
プレイ済み
返信[21]
親投稿
おちゃめ ochame_nako
↑ 正解は1 (解説) ANDは複数の条件式が成立する場合に使うことができますが、比較演算子を省略した場合には正しく行うことができません。 (問題) INPUT "123*456=";A:?"正解は56088"において入力して約3秒後に正解表示するようにしたい。?の前に挿入するものとして間違っているものはどれ? (選択肢) 1.VSYNC 180 2.WAIT 180 3.M=MILLISEC:WHILE MILLISEC-M<3000:WEND
0そうだね
プレイ済み
返信[22]
親投稿
おちゃめ ochame_nako
↑ 正解は1 (解説) VSYNCは前回のVSYNCからの経過フレーム数となるためVSYNC 180では入力時間を含めて最大3秒間の待ちとなるので入力に3秒かかればVSYNCは無視される。 (問題) FOR I=1 TO 10:NEXT のループ終了後のIの値は? (選択肢) 1. 9 2. 10 3. 11
0そうだね
プレイ済み
返信[23]
親投稿
おちゃめ ochame_nako
↑ 正解は3 (解説) NEXT実行時にカウンタ変数Iの値が1ずつ加算されます。この時に終了値10を超えていればループを終了するためIの値は11となります。 (問題) FOR I=0.1 TO 1.5STEP 0.1:NEXT:?I で表示されているIの値は? (選択肢) 1. 1.4 2. 1.5 3. 1.6
0そうだね
プレイ済み
返信[24]
親投稿
おちゃめ ochame_nako
↑ 正解は2 (解説) NEXT実行時にカウンタ変数Iの値が0.1ずつ加算されます。この時に終了値1.5を超えていればループを終了するため1.6が正解となりそうですが、実数型の演算誤差によって0.1を15回加算すれば1.5を微妙に超えるためその時点でループを終了します。(ループ1回分少なくなる) (問題) ?"A"==A で画面に表示される文字は? (選択肢) 1. Type mismatch 2. 0 3. 3
0そうだね
プレイ済み
返信[25]
親投稿
おちゃめ ochame_nako
↑ 正解は3 (解説) 実数型の変数Aと文字列"A"は異なるものであるため0(false)もしくは型が違うためType mismatchエラー表示となりそうですが、なぜか文字列と数値の比較演算は3を返します。 (問題) 1/3を実行すると何桁まで正しく計算される? (選択肢) 1. 8桁 2. 16桁 3. 32桁
0そうだね
プレイ済み
返信[26]
親投稿
おちゃめ ochame_nako
↑ 正解は2 (解説) プチコン3号の実数型は2進数で52桁分の有効桁数となっています。これは10進数換算で16桁弱です。普通に表示した際には小数第8位までしか表示されませんがFORMAT$を使えば16桁まで表示可能です。 (問題) 変数Aの値の整数部分だけを取り出したい。Aの絶対値が1億以下の場合に正常動作しないことがあるものはどれ? (選択肢) 1. FLOOR(A) 2. A>>0 3. A OR 0
0そうだね
プレイ済み
返信[27]
親投稿
おちゃめ ochame_nako
↑ 正解は1 (解説) 結果が整数値になるビット演算やシフト演算を行えば小数部分は自動的に切り捨てられます。FLOOR(A)だとAが負数のときは-1.5が-2になるため正常動作しません。
0そうだね
プレイ済み
返信[28]
親投稿
おちゃめ ochame_nako
とりあえず、7問作ってみました。 上から順番に見ていけば前の問題の解答+次の問題となっているためうっかり答えを見てしまう心配がありません。
1そうだね
プレイ済み
返信[29]
親投稿
»しょぼーんs そんなヘルプが…ッ!? …やるなスマブ。流石だぜ。
2そうだね
プレイ済み
返信[30]
親投稿
ありがとうございます(^^)一人じゃ思いつかない問題ばかりで嬉しいです(笑)
2そうだね
プレイ済み