関数
関数
1. プログラム例
<?php
header("Content-Type: text/plain; charset=X-SJIS");
// 人口密度を計算する関数
function cal_density($jinko, $menseki){
$mitsudo = $jinko / $menseki;
return $mitsudo;
}
$fp = fopen("sample.txt", "r");
$num = 0;;
while(fscanf($fp, "%d %f %f", $name[$num], $popu[$num], $area[$num]) > 0) {
printf ("%d\t%5.0f\t%12.1f\t", $name[$num], $popu[$num], $area[$num]);
$area[$num] = cal_density($popu[$num], $area[$num]);
printf ("%10.1f\n", $area[$num]);
$num ++;
}
printf ("\nnum = %d\n", $num);
fclose($fp);
?>
2. 数学関数の使い方
sin(引数),cos(引数),tan(引数)
sin, cos, tanの値を返す.返す値はfloatの型である.
引数は,ラジアンの値でfloatの型で入力する.
atan(引数)
arctanの値を返す.返す値はfloatの型である.
引数は,floatの型で入力する.
sqrt(引数)
平方根の値を返す.返す値はfloatの型である.
引数は,floatの型で入力する.
log(引数1,引数2)
引数1の引数2を底とする対数を返す.返す値はfloatの型である.
引数2を省略した時は,自然対数を返す.
引数は,floatの型で入力する.
exp(引数)
eのべき乗を返す.返す値はfloatの型である.
引数は,floatの型で入力する.
pow(引数1,引数2)
引数1のべき乗を返す.返す値はfloatの型である.
引数は,floatの型で入力する.
3. 関数の作り方
良く利用する部分や複雑な処理は,関数を作り,それを利用すればプログラムが見やすくなり,バグも少なくなる.
関数名は,既に組み込まれている名前でない限り,自由につけられる.
関数がどんな値を返すのか(戻り値),その型を意識し,メインとなる部分の前に関数(function)を記述する.
関数は,ある変数の値が入力され(引数),それを関数は処理をし,計算結果を返す.
引数の数が,複数ある場合は,コンマで区切って表す.
関数の中で使われている変数名は,その関数の中でしか有効でない.
戻り値は,return 文によって返される.
例題の関数areaityは,人口と面積(m2)を引数とし,人口密度(人/km2)の値を戻り値として返している.
1人一年あたりの米消費量を59(kg)とする.県ごとの人口を入力すると,米消費量(t)が計算される関数conv_rice()を作成しなさい.
sample.txtと作った関数を用いて,県番号,県別人口,県別米消費量(kg)のデータを出力するプログラムを完成させなさい.出力は,
No.=○○○, Popu.=○○○, Rice=○○○○○.○(t)
というコンマ区切りの形式で出力されるものとする.
変更したプログラムは,"p07.php"という名前で保存しなさい.
保存場所は,~/local_html/Program/p07.php
このプログラムをWebブラウザで確認しなさい
課題