ページへ戻る

− Links

 印刷 

blike​/intro​/p0006 のバックアップ差分(No.2) :: OSASK計画

osaskwiki:blike/intro/p0006 のバックアップ差分(No.2)

« Prev[4]  Next »[5]
1: 2011-02-17 (木) 10:42:06 k-tan[6] ソース[7] 2: 2011-02-17 (木) 11:32:05 k-tan[6] ソース[8]
Line 1: Line 1:
 +TITLE:x
* (5) gotoで繰り返し [#ba387db8] * (5) gotoで繰り返し [#ba387db8]
-(by [[K]], 2011.02.17) -(by [[K]], 2011.02.17)
-*** (1) [#dab6f4a9]+*** (1) rei0017.c~rei0019.c [#dab6f4a9] 
 +-次のプログラムは、画面に1から5までの数字をひとつずつ出すプログラムです。 
 + printf("1 2 3 4 5"); 
 +-これを1から10までに改造しなさいといわれたらどうしますか?・・・そうですね、こうしますよね。 
 + printf("1 2 3 4 5 6 7 8 9 10"); 
 +-でも1から100までといわれたらどうしますか?・・・まあ100までせっせと書いてもいいですが、書き間違えるかもしれません。それに1000になったりしたらさすがにもう書く気はおきません。 
 +-そんなときはこうします。新しい命令を使う必要なんてありません。もうここまでで十分に勉強できているのです。 
 + int a; 
 + a = 1; 
 + b: 
 + printf("%d ", a); 
 + if (a == 100) { goto c; } 
 + a = a + 1; 
 + goto b; 
 + c: 
 +-これで100まで出ます。やったね! 
 +-新しい命令はないですが、 a = a + 1; について説明しておくほうがいいかもしれません。これは、aに覚えていた数字に1を加えてそれを覚えなおすということです。 
 +-変数とifとgotoがあれば、本当にいろいろなことができるのです。 
 +*** (2) rei0020.c~rei0021.c waitで時間をかける [#z1186686] 
 +-前回の rei0016.c みたいなゲームを作っていると、文字をもっとゆっくり書きたいなと思うことがあります。たとえば「あなたは...しんでしまった!」とか。そういうときはwait命令を使ってこうします。 
 + printf("あなたは..."); 
 + wait(1000); 
 + printf("しんでしまった!"); 
 +-これで「あなたは...」のあと1秒待ってから「しんでしまった!」が表示されます。1000というのが1秒を表します。100なら0.1秒ですし、3000なら3秒です。 
 +-もっとじれったくするのなら、こんなのはどうでしょうか? 
 + printf("あなたは"); 
 + wait(500); 
 + printf("."); 
 + wait(500); 
 + printf("."); 
 + wait(500); 
 + printf("."); 
 + wait(500); 
 + printf("しんでしまった!"); 
 +-これだと全文が表示されるまで合計2秒かかることになります。・・・でも、やりすぎるとかえって嫌われるかもしれないので、演出はほどほどに(笑)。 
 +*** (3) rei0022.c [#hc0d088f] 
 +-おふろにはいってゆっくり100まで数えます。 
 + int a; 
 + a = 1; 
 + b: 
 + printf("%d ", a); 
 + if (a == 100) { goto c; } 
 + a = a + 1; 
 + wait(1000); 
 + goto b; 
 + c: 
-(以下書き途中) -(以下書き途中)
« Prev[4]  Next »[5]