プログラミング基礎 II
第三回: 変数の定義と使い方
Martin J. Dürst
duerst@it.aoyama.ac.jp
O 棟 529号室
テュールスト マーティン ヤコブ
http://www.sw.it.aoyama.ac.jp/2005/Programming%20Basics%20II/lecture3.html
© 2005 Martin
J. Dürst 青山学院大学
今週の目的
先週からの宿題
宿題: 沢山の printf
を使って面白い文書・模様を出力するプログラムを作ってください:
- コメントを入れて作成者やプログラムの働きを書いて下さい。
- タブ、改行、二重引用符など特殊文字も出力して下さい。
- 字下げを守って下さい。
変数とは
- データのために計算機に用意されているメモリ
- 名前が付いている「箱」
- 大きさと (扱えるデータの) 種類が決められている
- 箱に値 (データ) を入れられる (代入できる)
- 変数の値は計算などに使える
変数の定義
- C の場合、変数を使う前に用意する必要がある
- それを「変数の定義」という
- 定義は main 関数などの最初に行う
- 定義の時に変数の型 (種類)
を宣言しなければいけない
C の主な型
int
: 整数型 (integer)、-(231) ~
231-1 (おおよそ -2·109 ~ 2·109)
整数の計算に使う
char
: 文字型 (character)、-128 ~ 127 (漢字などは
char 一個に納まれない)
主に文字列に使う
double
: (倍精度) 浮動小数点数 (double precision
floating point number)
小数部がある計算に使う
- 他に
short
、long
、と float
がある
変数の定義の構文と例
型は変数名の前に書く:
int a;
char c;
double d;
同じ型の変数は複数同時に定義できる:
double d, e, f;
変数の名前の選び方
- 文法的制約:
- A-Z, a-z で始まる
- その後は数字 (0-9) と「_」も使える
- 大文字と小文字は区別される
- 名前をできるだけ分かりやすいようにする:
- 英語が好ましいがローマ字日本語でも良い
- 例:
int total; /* 合計 */
double average; /* 平均 */
代入とは
- 変数に値を与える (箱にデータを入れる)
ことを「代入」という
- 前に変数にあった値が消える
- 値を計算など (代入を含めて) 使うと値が残る
- 代入の記号としては「
=
」が使われる
- 代入は右から左へと行われる
- 右側が完全に計算されているから代入が行われる
- 代入を含めてプログラムは上から下の順に実行される
代入の例
total = 0;
total = 3 + 5;
total = total + 8;
average = total;
average = total / 3.0;
変数: 数学とプログラミングの違い
- 数学に数は無限にあるが、計算機の場合には最小・最大がある
- プログラムの変数は (たとえゴミであっても)
常に値を持つ
- 数学の = は「等しい」であるが、C のプログラムの
=
は代入である
変数からの出力: printf
、その二
整数の例:
printf ("合計は %d である。\n", total);
浮動小数点数の例:
printf ("平均は %f である。\n", average);
組み合わせの例:
printf ("合計: %d、平均: %f。\n", total, average);
データの数と順番と型が合わないといけない。
初期化
初期化は変数の定義と代入の組み合わせみたいなもの
int a1, a2 = 20, a3 = a2 + 20;
演習題
時間内に完了しなかったら宿題としてやって下さい。できるだけ変数を使って下さい。提出不要。
- 三つの整数の合計 (整数) と平均 (浮動小数点数)
を計算して出力するプログラムを作ってください。
- プログラム内の代入などの順番がどういう風に影響するのかをよく分かるプログラムを作って下さい。
- 与えられた半径の円の周囲の長さと面積、球の表面の面積と体積を計算し、出力するプログラムを作って下さい。(掛け算には「
*
」を使う。)
- 自分の分野によく使われる簡単な計算するプログラムを作って下さい。
次回のための準備
- 第六章 (pp. 69-74) をよく読む
- 余った演習題を完成する