2004/04/16 プログラムの基本構成 変数の宣言 入力 計算 出力 変数宣言 変数の型を指定 型 意味 値 int integer 整数 float floating point nummber 実数 char charactor 文字 入力 scanf を使う scanf ( "%f", &r ); /* float 型の変数 r に値を入力する */ % の後に、型に対応した文字を置く float 型では、f int 型では、(i でなく..) d (十進), o (八進), x (十六進) char 型では、 c 変数の前には、& をかく 計算 代入文と式 式のかけ算では、数学と違い、'*' を入れる必要がある。 例 ( 円の面積 ) S = 3.1415 * r * r; 出力 printf を使う printf ( "面積 = %f\n", S ); == 文字コード ( ASCII Code ) 数値と、文字を対応させる規則 (の一つ)。 例 文字 二進数 十進 十六進 0 00110000 48 30 1 00110001 49 31 A 01000001 65 41 B 01000002 66 42 a 01100001 97 61 b 01100002 98 62 == 文字 ( コード ) の入力 char c, d; /* char (文字) 型の変数を二つ宣言 */ scanf( "%c", &c ); /* 文字 (コード) を入力 */ /* キーボードから、'A' を入れれば、変数 c には、65 が入る */ d = c + 32; /* 文字コードを変更することにより */ /* 大文字が小文字に変換される */ /* c が 65 ('A') なら、d は、97 ('a') */ printf ( "%c\n", d ); /* 数値を文字として出力 */ /* 'a' が出力される */ 32 にというマジックナンバー 32 == 'a' - 'A' /* 文字を ' で囲むと、その文字に対応した、 */ /* ASCII Code を意味する */ 計算機の内部では、全てのデータ ( 情報 ) が数値として扱われる 外 ( 人間 ) にとっての文字も、計算機内部では、数値 # 外と内の間に一対一の対応規則 ( ASCII Code ) があるこ # とがポイント == 数学関数の利用 仕様 角度 ( 度数 ) を入力 ( 例 30 ) すると その正弦値 ( sin( 30 ) = 0.5 ) を出力する。 # [Point] 数学関数 (ここでは sin ) を利用するには、一行目に # #include # が必要 # [Point] C 言語の sin は、引数がラジアンでなければならないので、 # 角度をラジアンに変換する必要がある。 int d; /* 度数を収めるための変数 d の宣言 */ float r; /* ラジアンを収めるための変数 r の宣言 */ scanf( "%d", &d ); /* 度数をキーボードから正数値として入力する */ d = d % 360; /* d の値を 360 で割った余りを再度 d に設定する */ /* 正弦の値は、元の角度に 360 加えても代らない */ # [Point] d = d % 360 は、「d と (d %360) が等しい」という意味でない。 # 「現在の d を 360 で割った余りを、新しく d に『代入』する」という意味。 # C 言語では、'=' を、「代入」の意味でつかい、「等しい」という意味で使わない。 # C 言語で、「等しい」の意味には、 '==' を使うので注意 !! r = d * 2 * 3.1415 * d; /* 度をラジアンに変換 */ printf ( "%f\n", sin( r ) ); /* 正弦関数の呼び出しと値の出力 */