前学期のまとめ |
第1回 イントロダクション、文字列および計算結果の画面表示 |
‥‥の部分にプログラムを書く。
プログラム中では,語の切れ目その他の許される所で,好きな数の空白,TAB,改行をいれて構わない。
■使用可能な文字コード
を用いて書く。全角文字(日本語文字)は文字列以外に使ってはいけない。
特に,全角の空白を入れるとコンパイルエラーになるので注意する。
■数式の書き方
○演算子の種類:
使用可能な演算子: +,-,*,/,%
(べき乗演算子^は使えないことに注意)
○演算の優先順序:
()で囲んだところが最も優先順位が高く、最初に実行される。
*,/は+,-よりも、演算の優先順位が高い。
例: 3.0*4.0/5.0+6.0 と 3.0*4.0/(5.0+6.0) は演算結果が異なる。
○実数型定数
f形式(指数なし表示) : 12.34 2.0 2.
(小数点以下がない場合でも少数点を付けることに注意)
e形式(指数つき表示) : 1.234e1 2.0e0 2e0
(1.234e1 は 1.234×101 を表す)
○整数型定数
d形式 : 1234 2 3
のように小数点のない定数は整数と判断する
○文字型定数
1文字 : 'a' ( 文字を ' と ’で囲む)
文字列: "Hello World!!" ( 文字列を " と "で囲む)
■画面表示の仕方(基本的なprintf文)
○文字列の画面表示
printf("Hello World!!\n");
○計算結果の画面表示
第2回 数値の定数および変数の画面出力、キーボード入力 |
■printf()関数
printf()は書式出力の関数である。
の例で示すように,printf(”書式”,出力変数)の形をしていて,基本的には,””で囲まれた文字列がそのまま出力される。但し,\n 記号のように¥マークが付いた文字はエスケープ文字と呼ばれ,画面制御を行う特別な記号として扱われる(\n:改行復帰)。そのため,画面上には表示されない。また,% は,””の後に表記されている変数(上の例では,変数a,b)の値を,以下に示す各々の変数の型に応じて画面に表示できる書式に変換する際の約束を表している。
エスケープ文字の例: \n : 復帰改行, \t : 水平タブ,\v : 垂直タブ, \b : 1文字後退
■scanf()関数
キーボードからの入力データを%‥に記した変換書式にしたがって、変数に代入する。 (変数名の先頭に&がつくことに注意する)
%‥の約束はprintf()の場合と同様である。
例:
■定数
変数はプログラムの中で値を変えることができるデータであるのに対して,定数は値が固定されているデータです。定数は,変数と同様の型をもっており,以下のように数値や文字を直接的に表現します。
■算術演算
C言語では,通常の数式と類似した約束で数式をあらわすことができます。そのための算術演算子に以下のものがあります。
■変数名の規則
使える文字, 英字(a-z,A-Z),アンダーバー( _ ),数字(0-9)の組み合わせ。ただし,先頭は英字。英字の大文字,小文字は区別される。名前の長さは,一般的に最初の31文字までは有効。
以下の予約語は使えない。
予約語
auto break case char const continue default do
double else enum extern float for goto if
int long register return short signed sizeof static
struct switch typedef uinion unsigned void volatile while
■代入文
右辺の変数や定数、または、式の計算結果をを、左辺の変数に代入する。(左辺と右辺が等しいという意味ではないことに注意)
変数 = 定数;
変数 = 変数;
変数 = 式;
例: a=b+c; c=1.3;
第3回 文字の定数および変数、変数の使い方全般 |
■変数を使うときの注意
■定数および変数の種類
定数の種類 | 宣言 | printf書式 |
整数定数 | short | %hd |
int | %d | |
実数定数 | float | %f, %e |
double | %lf, %le | |
文字定数 | char | %c |
文字列定数 | charの配列 | %s |
■ データの型と表現可能な範囲
型 | 長さ | 表現可能な範囲 |
char | 1Byte | 1文字のコード(=256種類の文字、アスキーコード) |
short int | 2Byte=16bit | 0~(2^16-1) (=65,535 -32768~+32767の整数) |
long int | 4Byte=32bit | 0~(2^32-1) (=4,294,967,294 -2147483648~+2147483647の整数 |
float | 4Byte=32bit | 仮数部(23ビット=8,388,608, 6~7桁) 指数部(8ビット=256, +38~-45乗), 符号1bit |
double | 8Byte=64bit | 仮数部(52ビット=4.5036e15, 15~16桁) 指数部(11ビット=2046, +308~-324乗), 符号1bit |
第4回 条件制御文(if文)、算術関数の使い方 |
■ if文
・構文
・動作
■条件式の種類
条件式 | 意 味 | 注 意 |
比較演算子 | ||
x==a | xがaに等しい? | x=aと間違えない |
x!=a | xがaに等しくない? | |
x>a | xがaより大きい? | |
x<a | xがaより小さい? | |
x>=a | xがa以上? | |
x<=a | xがa以下? | |
論理演算子 | ||
(式1)&&(式2) | (式1)と(式2)が同時に真? | |
(式1)||(式2) | (式1)と(式2)のどちらかが真? | |
!(式1) | (式1)が偽? |
■ 算術関数
関数名 | 引数及び関数の型 | 機能 |
abs(i) | int | 整数iの絶対値を求める |
acos(x) | double | 実数xの逆余弦を求める |
asin(x) | double | 実数xの逆正弦を求める |
atan(x) | double | 実数xの逆正接を求める |
ceil(x) | double | 実数xの小数点以下を切り上げる |
cos(x) | double | 実数xの余弦を求める |
exp(x) | double | eのx乗を求める |
fabs(x) | double | 実数xの絶対値を求める |
floor(x) | double | 実数xの小数点以下を切り捨てる |
fmod(x,y) | double | 実数xをyで割った剰余を求める |
log(x) | double | 実数xの自然対数を求める |
log10(x) | double | 実数xの常用対数を求める |
pow(x,y) | double | 実数xのy乗を求める |
sin(x) | double | 実数xの正弦を求める |
sqrt(x) | double | 実数xの平方根を求める |
tan(x) | double | 実数xの正接を求める |
第5回 繰り返し制御文(for文) 、実数計算の誤差の蓄積,多重ループ |
■ for文
・構文
・動作
例:整数型のループ変数iを用いて,iを1からnまで1ずづ増やしながら{ }の中の反復処理をn回繰り返すfor文
第6回 その他の制御文(switch文,while文 do while文 無限ループ) |
■switch文
・構文
・動作
■while文
・構文
・動作
■do while文
・構文
・動作
■無限ループ
・構文
◎while文による無限ループ
◎for文による無限ループ
◎do while文による無限ループ
・動作
第7回 1次元配列,統計計算(平均,標準偏差) |
1つの名称でくくることのできるデータの集まりがあるとします。配列はその変数の集まりであるデータ全体に1つの名前をつけて、データの集合を一まとめにして扱う手段を提供します。配列データの一つ一つ(配列要素)を区別するために、配列名とその要素番号を指定する使い方をします。例えば,配列名がaという名前の配列変数の一つ一つ(配列要素)は, 以下のようになります。
ここで、aは配列名,0,1,2は配列要素の番号
■1次元配列
・宣言の仕方
データの型 配列名[要素の最大数];
例: int a[100];
・参照の仕方
配列名[要素番号]
例:
読込み
for(i=0;i<100;i++)
scanf("%e",&a[i]);
表示
for(i=0;i<100;i++)
printff("%e\n",a[i]);
演算
for(i=0;i<100;i++)
a[i]=2*i-1;
■配列データの初期化
・宣言文の初期値として記述する
データの型 配列名[要素の最大数]={ , で区切ったデータの並び};
例: int a[10]={40,85,90,63,15,53,78,45,93,68};