6.関数U
前回から、関数という用語を使っています。
「関数」というと数学の苦手な人の中には、相当引いてしまう人もいると思いますが、そんなにビビる必要はありません。例えば、今まで使ってきたようなprintfだって関数の一つです。関数というのは、僕たちがコンピュータに何か動作をさせるための、命令を表していると考えればいいのです。今回ここで使っていく関数だって、計算はコンピュータがやってくれるのですから。
サンプル6−1
#include <stdio.h>
#include <string.h>
/*文字列を扱う場合*/
int main()
{
/*文字列変数(charcter)を用意*/
char A1[10], b1[10] ;
int
ln ;
/*文字列に文字を代入(stringをcopyする)*/
strcpy(A1, "abcdef");
strcpy(b1, "xyz");
printf("A1=%s b1=%s\n",A1,b1);
/*訓練のため、できるだけ手打ちでお願いします*/
/*文字列(string)の長さ(length)を測る*/
ln = strlen(A1);
printf("文字数=%d\n",ln);
/*文字列を比較(compete)*/
if(strcmp(A1, b1) > 0 )
printf("左辺が大\n");
if(strcmp(A1, b1) < 0 )
printf("右辺が大\n");
if(strcmp(A1, b1) == 0 )
printf("等しい\n");
if(strcmp(A1, b1) != 0 )
printf("等しくない\n");
/*文字列の結合(concatenate)*/
strcat(A1, b1);
printf("A1 + b1 =%s\n", A1);
return(0);
}
次に、数学関数の入力をしてみましょう。
サンプル6−2
#include <stdio.h>
#include <math.h>
/*数学関数の導入*/
int main()
{
printf("sin30°=%f\n", sin(30.0 * 3.141592/ 180.0));
printf("cos30°=%f\n", cos(30.0 *
3.141592/ 180.0));
printf("tan30°=%f\n", tan(30.0 * 3.141592/ 180.0));
printf("2の3乗=%f\n", pow(2.0
, 3.0));/*powはpower(何乗)の略*/
printf("1000のログ=%f\n", log10(1000));
printf("10の平方根=%f\n", sqrt(10.0)); /*sqrtはsqare root(平方根)の略*/
return(0);
}
一般的によく使う、関数です。覚えておきましょう。注)math.hを使うソースプログラムをコンパイルする際には、次のような記述が必要になるので注意してください。
% fcc ソースプログラム名 -lm(エルエム)
例) fcc samp0529.c -lm
課題 サンプル4-2でやった、半径2の円の面積を求めることを、POWERを使った式で表現しなさい。当然math.hが必要になります。小数点以下3桁まで求めること。