このWikiは古くなりました:新しいWikiへ移動

[[Tonyu基礎練習]] - ''練習:変数''

変数 - 数値が変わる

変数とは

変数と言う意味を知らずにプログラミングを行う事は大変困難です。プログラムのほとんどは、変数を操作する作業といってもよいでしょう。

次のプログラムを見てみましょう。

 x=50;
これは、xに50を''代入''するということです。つまりは、&br;

xは50になった
ということです。

次のような文を良く見かけると思います。

 x=x+1;

これは、xは以前のxの値よりも1だけ増えたということです。

具体的には、以前のxが50だった場合、次のよう手順で、xは51になります。

incX.png

ここで、次のようにはならないのか?と思われるかもしれません。

 50=50+1;

数学の場合このような結果になりますが、=には「等しい」という 意味はありません。=は「代入」という動作で、左辺に書かれた変数の 中身を変更することをいいます。

table bgcolor=#cccccc><tr><td><font size=-1>

Tonyuで等しいということを言うためには、次のように「=」を二つ重ねます。

x==1</font>

/td></tr></table>

縦横移動

Tonyuでは、xとyは特別な意味を持っています。

  • xは、オブジェクトの横位置(x座標)を表します
  • yは、オブジェクトの縦位置(y座標)を表します

次のようなプログラムを見てみましょう(※extends,while,updateといったものは後で説明します)

プログラム1:<BR>

 
extends SpriteChar;
while (1) {
   x=x+1;
   update();
}

プログラム2:<BR>

 
extends SpriteChar;
while (1) {
   x=x+2;
   update();
}

さらに、次のプログラムを見てみましょう:

プログラム3:<BR>

 
extends SpriteChar;
while (1) {
   x=x+1;
   y=y+1;
   update();
}

プログラム3は、斜め移動をするプログラムです。

x,y以外の変数

変数は、xとyしかないわけではなく、すきな名前を作ることも可能です。次のプログラムを見てみましょう。

プログラム4:<BR>

 
extends SpriteChar;
c=1;
while (1) {
   x=x+c;
   y=y+c;
   update();
}

これは、プログラム3と同じ動きですが、このプログラムのほうが便利なことがあります。例えば、 2行目を次のように書き換えてみましょう。

 
c=2;

すると、縦も横もさっきの2倍の速度で移動します。

もし、変数cを使わないで、速度を2倍にしたかったら、次のように、2箇所を書きかえる必要があります。

プログラム5:<BR>

 
extends SpriteChar;
while (1) {
   x=x+''2'';
   y=y+''2'';
   update();
}

いろいろな計算

+(足し算)以外にも、もちろん、減算(引き算)も可能です。次のプログラムを入力してみましょう。さっきと逆方向に移動します。
 
extends SpriteChar;
c=2;
while (1) {
   x=x-c;
   y=y-c;
   update();
}

乗算(掛け算)は数学とは違う記号(* : アスタリスク)を使います。 また、除算(割り算)は(/ : スラッシュ)を使います。

 
extends SpriteChar;
c=2;
while (1) {
   x=x+c*2;
   y=y+c/2;
   update();
}

括弧を使った計算もできます。計算の優先順位は数学と同じです。

 
extends SpriteChar;
c=2;
while (1) {
   x=x+(c+1)/2;
   y=y+(c-1)*2;
   update();
}

練習問題

変数で変わった動きを作る

今までのオブジェクトは、直線運動するだけでしたが、 先ほど出てきた変数をうまく利用すると、もっと変わった動きが作れます。

 
extends SpriteChar;
c=0;
while (1) {
   x=x+c;
   y=y+c;
   c=c+1;
   update();
}

なにやらすごい速度で飛び出していってしまいました。もう少しゆっくり結果を見てみましょう。

 
extends SpriteChar;
c=0;
while (1) {
   x=x+c;
   y=y+c;
   c=c+0.1;
   update();
}

次のような動きをするプログラムを作りましょう

  • 工事中:アプレット1をうめる
  • 工事中:アプレット2をうめる

練習:変数練習:while文


添付ファイル: fileincX.png 118件 [詳細]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-11-14 (火) 21:24:37 (2345d)