* HLX-BASIC 入門 #2 -(by [[K]], 2022.03.19) ** (6) WAIT めいれい -[よみかた] うぇいと -[どうさ] していしたびょうすうだけまちます。1000をしていすると1びょうです。2000なら2びょうになります。 -[れい1] FOR A=0,11; PRINTF "%d ",A; WAIT 1000; NEXT; → これでゆっくりとひょうじされます。おふろで数えているみたいです。 -[せつめい] コンピューターはとても速いので、ゆっくりさせたいときはこのめいれいをつかいます。 ** (7) FOR~NEXTでへらしながら数えさせる -FOR A=100,0,-1; PRINTF "%d",A; NEXT; のようにFORには3ばん目の数を書くことができます。ここでは「-1」を書いています。 -こうすると、「100からはじまって、1ずつ引いて、0になったらくりかえすのをやめる」になります。 -だからじっこうするとこうなります。 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 -ほかにも2ずつふやすことで、きすうで数えるとか、ぐうすうで数えるとかもできます。 -[れい1] FOR A=1,21,2; PRINTF "%d ",A; NEXT; → 1 3 5 7 9 11 13 15 17 19 -[れい2] FOR A=2,22,2; PRINTF "%d ",A; NEXT; → 2 4 6 8 10 12 14 16 18 20 -1びょうずつへらしながら数えると、ロケットはっしゃみたいですね。 -[れい3] FOR A=10,0,-1; PRINTF "%d ",A; WAIT 1000; NEXT; PRINTF "GO!"; → 10 9 8 7 6 5 4 3 2 1 GO! ** (8) 1+2+3+...+99+100=? -1から10までをぜんぶたすと55になります(しってた?)。これは(1)の[れい5]でもやっています。 -では1から100までを足したらどうなるでしょうか。100こもあるので、1+2+3+4+5+...って書いていくのはちょっとたいへんそうです。どこかでまちがえるかもしれません。 -ということで、FOR~NEXTをつかって、数えながらたすことにします。 A=0; ← さいしょになにか数をおぼえていたら計算をまちがえるので、0にする。 FOR B=1,101; ← これで、Bは1~100でくりかえす。 A=A+B; ← AにBをたして、そのこたえをAにおぼえさせる。 NEXT; PRINTF "%d",A; ← さいごにAがいくつになったかをがめんに出す。 -さてこたえはいくつになるでしょうか? ** (9) れんしゅうもんだい -[もんだい1] 1+2+3+...+999+1000 のこたえはいくつでしょうか? -[もんだい2] 1+3+5+7+9+11+13+15+17+19 のこたえはいくつでしょう?(FORをつかってね)かっこいいこたえになるよ! -[もんだい3] 180から1までをへらしながら数えてください(1びょうずつ)。180びょうはちょうど3ふんなので、カップラーメンがつくれます! -[もんだい4] 2*2*2*...*2 (ぜんぶ2で2は10こ)はいくつでしょうか?(FORを使って書けるかな? 2に*2を9かいやるってかんがえるといいかもね。) -[もんだい5] 1*2*3*4*5*6のこたえはいくつでしょうか?(FORを使って書けるかな?) ** (10) RNDめいれい -[よみかた] らんど -[どうさ] さいころをふって、てきとうに数をえらびます。えらばれる数は、0~(していした数-1)になります。 -[れい1] PRINTF "%d",RND(6); → 0~5のどれかがでてきます。じっこうするたびにかわります。 -[れい2] PRINTF "%d",RND(6)+1; → 1~6のどれかがでてきます。じっこうするたびにかわります。 -[せつめい] ほんとうのさいころのように1~6のはんいにしたければ、[れい2]のように+1します。 -[せつめい] たとえば2~10のぐうすうがでるさいころにしたければ、 RND(6)*2+2 にします。こんなふうにいろいろなさいころが作れます。 -[せつめい] コンピューターがほんとうにさいころをふっているわけではありません。さいころをふったときの数によくにたけいさんがあるので、それをつかっています。 --だからさいころをふる音はきこえません。 ** (11) けいさんドリルをつくろう -このRNDめいれいをつかって、けいさんドリルをつくってみました。 A=RND(10); B=AND(10); B=RND(10); PRINTF "%d+%d=?\n",A,B; -これでもんだいが作れます。 -[もんだい] このプログラムだと、1もんしか出てきません。では10もんつくるにはどうしたらいいでしょうか?(10かい書いてもできるけど、やっぱりFORをつかってやってほしいな。) ** (12) INPUTめいれい -[よみかた] いんぷっと -[どうさ] 数をにゅうりょくして、なまえをつけてきおくできます。 -[れい1] A=INPUT(); PRINTF "%d",A+3; → にゅうりょくした数に3をたした数が出てきます。 ** (13) IF~THEN~FIめいれい -[よみかた] いふ~ぜん~ふい -[どうさ] IF のあとにかいたじょうけんがなりたっていたら、THENからFIのあいだのめいれいをじっこうします。なりたっていなかったら、THENからFIのあいだのめいれいはじっこうしないでむしします。 -[れい1] PRINTF "1+1="; A=INPUT(); IF A==2 THEN PRINTF "O\n"; FI; → もしAが2なら、「O」を書く。 IF A!=2 THEN PRINTF "X\n"; FI; → もしAが2じゃなければ、「X」を書く。 -[せつめい] 「==」はおなじ、「!=」はおなじではない、といういみです。 -[せつめい] どちらがおおきいかをしらべるときは「>」や「<」がつかえます。「>=」と「<=」もつかえます。 ** (14) けいさんドリルにまるとばつをつけよう -(11)と(12)と(13)をくみあわせて、こんなのをつくりました。 A=RND(10); B=RND(10); PRINTF "%d+%d=",A,B; C=INPUT(); IF A+B==C THEN PRINTF "O\n"; FI; IF A+B!=C THEN PRINTF "X\n"; FI; -これでもんだいをじどうで作って、こたえがあっているかどうかで「O」「X」をだしてくれます。 -これをさらにぱわーあっぷして、もんだいを10かいだして、てんすうをつけるようにしました。 D=0; → これはてんすう。 FOR E=1,11; → 10もん出します。 A=RND(10); B=RND(10); PRINTF "[%d] %d+%d=",E,A,B; C=INPUT(); IF A+B==C THEN PRINTF "O\n"; D=D+10; FI; → せいかいなら、10てんたします。 IF A+B!=C THEN PRINTF "X\n"; FI; NEXT; PRINTF "SCORE=%d\n",D; → さいごにてんすうをだします。 -じっこうしたらこんなかんじです。 [1] 9+9=18 O [2] 1+8=9 O [3] 3+3=6 O [4] 1+0=1 O [5] 9+7=16 O [6] 5+1=6 O [7] 2+5=1 X [8] 3+2=5 O [9] 1+1=2 O [10] 1+1=2 O SCORE=90 -ええと、ぜんぶせいかいだとおもしろくないので、[7]はわざとまちがえてみました・・・ほんとうだよ!