3章 変数と式と フローチャート フローチャート プログラムの処理の「流れ」を図で表す. プロセス 判断 開始/停止 Process : 任意の処理を表す。出入口は1つ。 (2つ以上あるということは内部で条件判断 が行われていることになる) Decision : 一つの入口と複数の出口。 条件にしたがって出口を一つ選ぶ。 (条件判断機能) Terminal : 入口,出口を表す. (プログラムの開始,終了など) プログラムの 作成と実行 入口は一つ ターミナルを起動する emacsを起動する 合流 ソースファイルを入力 コンパイル 分岐するときは 条件判断が必要 エラーがある オブジェクトを実行 ソースファイルを修正 エラーがある 出口は一つ END 真 条件式 文 if (論理式) 文; 偽 真 文1 条件式 偽 文2 if (論理式) 文1; else 文2; 変数とは • コンピュータのメモリに確保された領域 • 数値を入れる「箱」と考える • 変数(variable)の名前 – 最初の文字はA-Zまたはa-zおよび_ – 2番目以降は数字(0-9)も使用できる – 最大31文字 – 大文字と小文字は区別される – 途中に空白があってはいけない – キーワード、予約済みの識別子は使えない 変数の型(type) 整数 char int 実数 整数 8bit 32bit short int long int long long 16bit 64bit 64bit 実数 float 32bit double 64bit long double (普通はdoubleを使う) 80bit 長さ(bit数)により表現できる値の範囲に制限がある (P65) int型 宣言(定義) int a = 123; 値の範囲(32bit) 2147483647 0 -2147483648 入力 scanf("%d",&a); 表示 printf("%d\n",a); double型 宣言(定義) double a = 6.02e+23; 値の範囲(絶対値) 最大値 1.79769e+308 最小値 2.22507e-308 精度(桁数) 15 入力 scanf("%lg",&a); 表示 printf("%g\n",a); double型 入力 %lg を使用する 出力 %e、%f、%gが使用できる %e d.dddddde ddd %f d.dddddd %g 表示する桁数に応じて%eまたは%f (dは数字0-9) char型(P67) 宣言(定義) char a = 'x'; 値の範囲(8bit) 127~0~-128 入力 scanf("%c",&a); 表示 printf("%c\n",a); 文字の表現 char (8bit)で表現できるもの 定数は ’a’ のようにシングルクォートでくく る 数値(0-255)で表現することも出来る printfでは %c で文字を表示 日本語の文字は1文字16∼32ビットで 表現しているので、charは使えない。 /* 666666 Tachibana Masayoshi */ /* p66 */ #include <stdio.h> #include <float.h> #include <limits.h> int main(void) { printf("double max:\t%g\n",DBL_MAX); printf("double min:\t%g\n",DBL_MIN); printf("double digit:\t%d\n",DBL_DIG); printf("int max:\t%d\n",INT_MAX); printf("int min:\t%d\n",INT_MIN); printf("long max:\t%ld\n",LONG_MAX); printf("long min:\t%ld\n",LONG_MIN); } return 0; p66.c 定数(constant) 整数定数 10進数 浮動小数点定数 123.45 1.2345e+2 変数の定義(宣言)と初期化 1. 型名 変数名; 2. 代入されていない変数の値は不定 3. 必ず初期化を行う 4. 実行文の後には定義をおけない その他 const double c = 2.99792458e8; 変数の値を固定(定数化) 整数の表現形式を変える unsigned unsigned unsigned unsigned 符号のない整数 char 0-255 short int 0-65535 int 0-4294967295 (約40億) 演算子の優先順位 Cにはたくさんの演算子がある すべてを「今」覚える必要はない 演算子には優先順位がある かけ算は足し算より先にやる すべて覚えるのは大変 うろ覚えで間違えるよりは表を見ること 括弧を使って確実に 代入式(P87) 左辺値 代入演算子 右辺値 右辺値の値を計算し、代入演算子の規則に 従って、右辺値に適用する式 代入式も値を持つ 値は代入後の左辺値の値 代入演算子(P87) = , += , -= , *= , /= , %= <<= , >>= , &= , |= , ^= 代入式(2) = += -= *= /= %= a+=b a-=b a*=b a/=b a%=b a=a+b a=a-b a=a*b a=a/b a=a%b 代入式(3) <<= >>= &= |= ^= a<<=b a>>=b a&=b a|=b a^=b a=a<<b a=a>>b a=a&b a=a|b a=a^b 代入式(4) << 左シフト >> 右シフト & ビットAND | ビットOR ^ ビット排他的OR 詳しくは 情報処理概論で... 算術演算子(P90) 整数 +,-,*,/,% 浮動小数点 +,-,*,/ 整数と浮動小数点は同じ記号を使う コンパイラが型に応じて異なる演算器を 使う命令を生成する 整数型と浮動小数点型の混合演算 一つの式の中で異なる型の値を混ぜて使う 結果に応じて型の変換を行う 精度の高い方へ型変換が行われる 代入における型変換 代入される左辺値の型にあわす キャスト(cast) 明示的な型変換 sizeof データの大きさ(バイト数)を答える演算子
© Copyright 2024 ExpyDoc