2. 変数を使う

 変数(variable)を使ったプログラムを作りましょう。変数は「変な数」ではなく、「変わる(vary)数」という意味です。aという変数は、そこまでの命令によって0だったり9だったりする値の入れ物です。

 変数を使うと何が良いか?変数を使うとプログラムの汎用性が増えます。意味が分からない?はい、では次のプログラムを例に考えてみましょう。

実行結果は次の様になりました。

 このプログラムで使っている変数はdistとl(エルの小文字です)です。distを100, lを150にして実行してみましょう。4行目をdist=100; , 5行目をl=150; とすれば、次のようになりました。

 2箇所を変えただけで円の大きさと位置が変わりましたね。いろいろ値を変えて実行してみてください。もし、変数を使わずに同じことをしようとすると9, 11, 13行目の中を何か所も変えないといけなくなります。変え忘れのミスも生じやすくなります。

それでは、プログラムの流れを説明しましょう。初心者の皆さん、プログラムを読むときには必ず上から順に一行一行読みましょう。命令の積み重ねがプログラムです。

○ 1行目はウィンドウの大きさを決める命令です。

○ 2行目は変数を使うための宣言です。コンピュータ側に変数を使いますと教える訳です。宣言の仕方は変数の型の後に変数名を書きます。変数が複数ある場合にはカンマで区切って並べます。また何行かにわたって書くこともできます。

int dist, l, x, y;

 ここでintは整数のみを扱う型であることを示し、dist, l, x, yの4つは整数型の変数であることをこのプログラムを読むコンピュータに宣言します。なお、整数だけではなく小数点以下の値も扱うためには実数型の変数を使います。実数型の宣言は以下のようにします。

float d,e,f;

○ 4‐7行目は変数に値を入れる代入文です。代入文は左辺が変数名のみ、右辺は数値であったり変数であったり、計算式であったりします。

○ 9行目のellipseは楕円を描く命令です。x, y, rの値は5-7行目で指定されていてどれも100なので、ellipse(100, 100, 100, 100); と同じになり実行結果の一番左の円を描きます。

○ 10行目は代入文です。右辺は数式になっています。先に右辺の値を計算して左辺の変数にその結果を入れることになります。xが100、distが200ですから、xの値が300になります。

○ 11行目はまた楕円を描く命令です。xの値が300になっていますから、9行目と文字は同じ命令文でも中身は、ellipse(300, 100, 100, 100); となり、真ん中の円を描きます。

○ 12,13行は10,11の繰り返しです。13行目でellipse(500, 100, 100, 100); を実行して右の円を描きます。

【重要】変数の名前には次の規則があります。

・ 使える文字は英数字か_, $。 例) ○: i, j, point1, year_x  ×: a*, e#1, lp& 
・ 先頭の文字は英字か_, $. 例) ○: a12, _f, P14   ×: 1a, 20p 
・ 大文字と小文字は区別。   例) Oldとoldは別の変数
・ 予約語やシステム変数名(どちらも言語側で使う名前)は使えない。 例) width, int, size

プログラム例2)
 続いて次のプログラムを見てください。ここでx+=step; と書いてある命令は、x=x+step; と同じ意味です。y+=step; も y=y+step; と同じです。同様の演算にa*=2; となっていたら、a=a*2; 、x/=5; はx=x/5; があります。さらに、x++; はx=x+1; x--; は x=x-1; と同じ演算です。覚えておきましょう。このプログラムのx, y, l の値の変化は分かりますか?

 xの値は6行目で50、10行目で100、12行目で150、14行目で200になります。実行結果は次の通り。

演習1 次の図を出力するプログラムを作れ。但し、ウィンドウの大きさはsize(400,400); 、左下の円の中心は(100,200)、直径は200、2番目の円の中心は(150, 150)、直径は150、とだんだんxは50ずつ増加、yは50ずつ減少、直径は50ずつ減少、するものとして、円を描く命令は数値を直接入力するのではなく、ellipse(x,y,l,l); の様に変数で指定する事。

演習2 演習1を参考に次の図を出力するプログラムを作れ。

東京電機大学AD科向けコンプロI用サイト

このサイトは東京電機大学東京千住キャンパスのAD科の1年次生向けコンピュータプログラミングIの授業内容やお知らせをするページです。プログラムの初歩の初歩を学ぶ人のためのページです。この資料を授業等で共有したいという方もどうぞお使いください。一緒に学習向けコンテンツを作ってくださる方、学習者向けのサンプルプログラムの提案など歓迎いたします。

0コメント

  • 1000 / 1000