投稿
Siketyan siketyanman
今日のプチコン問題! 第2問 難易度★★☆☆☆ FOR-NEXTを使って、"こんにちは"を1秒おきに表示するコードをかいてください。 ネタバレにチェックを忘れずに!!
2そうだね
プレイ済み
返信[1]
親投稿
タバひめ tabahime
"こんにちは"の回数の指定がないのでとりあえず1秒ごとに10回"こんにちは"を表示するプログラムです。(画像)1秒は60フレームなのでVSYNC 60を使ってプログラムの実行を60フレーム停止します。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
FOR~NEXTを使ってという事だったんでこんな感じで。 WHILE TRUE PRINT ”こんにちは” FOR I=1 TO 60 VSYNC 1 NEXT WEND VSYNCやWAITが無いBASICだと1秒になるループ回数を調整 するんですけどプチコンではその必要はありませんね。
0そうだね
プレイ済み
返信[3]
親投稿
おかっぺ Japanese_WASABI
FOR I=0 TO 9 LOCATE 0,0 IF I MOD 2==0 THEN PRINT "こんにちは" ELSE PRINT " "*5 ENDIF WAIT 60 NEXT 急に難しくなったから、また、意図を勘違いしてそう・・
0そうだね
プレイ済み
返信[4]
親投稿
けい kei0baisoku
>おかっぺさん なるほど、一秒おき(^O^) プログラムより日本語の方が難しいですよね。 >otta777さん 意外な回答だったので質問を(°ω°) 素直に VSYNC 60 としてないのはなぜでしょうか?
0そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
>けいさん VSYNC 60で1秒の時間待ちは出来ますけどお題にFOR~ NEXTを使うとあったんでこんな形にしてみました。 あと昔のBASICだと簡単に時間を計る機能が無いBASICも あったんでFOR~NEXTのループ回数を調整して時間待ちの 処理をしてたってネタを語りたかっただけなんです^^;;;
0そうだね
プレイ済み
返信[6]
親投稿
1秒置きの定義が良くわからないので、1秒毎のもので勘弁してください。 (フレーム間に1秒置くのか、秒間に1秒置くのかどちらかな?)
0そうだね
プレイ済み
返信[7]
親投稿
けい kei0baisoku
>otta777さん なるほど。ありがとうございます(^O^) そう言えばお題はFOR文だった(^^; 昔は時間の計測も簡単には出来なかったのですね。当時のプログラマが、ある命令をいろいろ組み合わせて工夫していたのだろうなというのが想像できます(^^)
0そうだね
プレイ済み
返信[8]
親投稿
KU kerorinU
FOR I=0TO 10 '<-指定が無かったので取り敢えず10 PRINT "こんにちは" WAIT 60 NEXT
1そうだね
プレイ済み
返信[9]
親投稿
問題の細かいニュアンスとFORを使うというところの意図がわかりにくいところですね〜。FORを使って永久ループを作れという事なら、 FOR I=0 TO 1:I=0 うんちゃらかんちゃら NEXT という意味にもなるでしょうし。まあ謎仕様ですが(^^;
0そうだね
プレイ済み
返信[10]
親投稿
l-oxygen_k KOKO929292
FOR I=n TO n PRINT "こんにちは" WAIT 60 NEXT 回数が分からんので『n』にしました! けして変数じゃありませんよw
1そうだね
プレイ済み
返信[11]
親投稿
Siketyan siketyanman
皆さん、たくさんのご回答ありがとうございます! FOR-NEXTの繰り返す回数ですが、何でも構いません。 答え発表は明日の予定です!明日の問題もお楽しみに♪
0そうだね
プレイ済み
返信[12]
親投稿
タバひめ tabahime
WAIT派とVSYNC派がいますね。VSYNCってどう読むんだろ?
1そうだね
プレイ済み
返信[13]
親投稿
うくじー 1221.PPTOT
>>タバひめs 自分は「ブイシンク」と言ってますが、違いますか?
2そうだね
プレイ済み
返信[14]
親投稿
VAR A FOR A=0 TO 4 ?¨こんにちは¨ WAIT 60 NEXT
1そうだね
プレイ済み
返信[15]
親投稿
タバひめ tabahime
訂正です。VSYNCとWAITはよくにてますが、WAIT 60が正解でした。
0そうだね
プレイ済み
返信[16]
親投稿
Siketyan siketyanman
こんなにたくさんの人に回答してもらえて、とってもうれしいです!答えを今すぐにでも発表したいぐらいですが、明日まで我慢します( ;∀;)これからも続けたいと思っていますので、よろしくお願いします!!
0そうだね
プレイ済み
返信[17]
親投稿
おちゃめ ochame_nako
FOR~NEXTによる無限ループ表記をしたいのならばこれが最短ですね。 FOR I=0TO I+1 ?"こんにちわ"WAIT 60 NEXT これだとカウンタが1ずつ増えているので厳密には無限ループになってないように見えますが、プチコン3号では9007199254740992でカウンタがカンストになるので実質無限です。 ちなみにカンストまでにかかる時間は約2億8542万7016年です。
1そうだね
プレイ済み
返信[18]
親投稿
Siketyan siketyanman
正解発表です。 さまざまな回答がありましたが、ここでは一つの例を挙げます。 他にも回答はあると思いますので、違うからといって必ずしも間違いではありません。 答え↓ FOR I=0 TO I+1 ? "こんにちは" WAIT 60 NEXT 答え↑ 今日の問題は別投稿にて。
0そうだね
プレイ済み
返信[19]
親投稿
けい kei0baisoku
意外な答えだったので質問です(・ω・)/ FOR の終わりを I+1 にしたのは何故ですか? 初心者向けの問題なのと、途中で「FOR-NEXTの繰り返す回数ですが、何でも構いません。」とコメントされてたので、FOR I=0 TO 99のような普通のFOR文の使い方を想定していると思ってました。
0そうだね
プレイ済み