関数(function)

数学の関数

  1. 関数とは
    $x$の値に対して$y$の値が1つに定まるもの

    例:$f(x)=x^2$ ←関数の定義
    $x$:独立変数 $y$:従属変数
    (システムとして捉えるならば、$x$:入力 $y$:出力)
    $f(a)$の値は$x$の処を$a$に置き換えて計算する
    例:$f(3)=3^2=9,\ f(-2)=(-2)^2=4$
  2. 多変数関数

    例:$g(x,y)=\sqrt{x^2+y^2}$ ←関数の定義
      $g(3,4)=\sqrt{3^2+4^2}=\sqrt{9+16}=\sqrt{25}=5$
      $g(5,12)=\sqrt{5^2+12^2}=\sqrt{25+144}=\sqrt{169}=13$

Cの関数

関数の定義(実体):definition

戻り値の型 関数名(パラメータの型 パラメータ名)
{
	処理
	return; /* 戻り値がない場合 */
	return( 戻り値 ); /* 戻り値がある場合 */
}

関数の宣言(プロトタイプ):declaration(prototype)

戻り値の型 関数名(パラメータの型 パラメータ名);

関数の呼び出し:call

関数名(引数)

インクルードファイル

#include "インクルードファイル名"

標準ライブラリ関数と標準ヘッダファイル

#include <ヘッダファイル名>

標準ヘッダを見てみよう

  これらのファイルは絶対に編集しないこと! 保存せずに終了!!

  1. stdio.hを探して見てみよう!
  2. string.hを探して見てみよう!
  3. math.hを探して見てみよう!

ライブラリ関数を使ってみよう

/* 斜辺の長さを求めるプログラム */

/* 標準ヘッダをインクルードする */
#include <stdio.h>
#include <math.h>

main()
{
	/* 変数定義 */
	float	a, b, c;
	
	/* 標準出力関数 */
	printf("1辺の長さを入力して下さい:");
	/* 標準入力関数 */
	scanf("%f", &a ); /*「&」はアドレスを表す */
	printf("もう1辺の長さを入力して下さい:");
	scanf("%f", &b );
	
	c = sqrt( a*a + b*b ); /* sqrtは平方根関数 */
	printf("斜辺の長さ:%f\n", c );
}
/* end of pytha.c */

練習問題(関数を使わずに直接計算して表示する版)

  1. 三角形の面積を求めるプログラム(tri.c)を作成せよ
    底辺の長さを入力して下さい:
     と表示し、底辺の長さをキーボードから入力させ、
    高さを入力して下さい:
     と表示し、高さをキーボードから入力させ、
    底辺:○○、高さ:□□ の三角形の面積は、○□ です。
     と三角形の面積を計算して表示するものとする。
  2. 台形の面積を求めるプログラム(trap.c)を作成せよ
    上底の長さを入力して下さい:
     と表示し、上底の長さをキーボードから入力させ、
    下底の長さを入力して下さい:
     と表示し、下底の長さをキーボードから入力させ、
    高さを入力して下さい:
     と表示し、高さをキーボードから入力させ、
    上底:○○、下底:△△、高さ:□□ の台形の面積は、○△□ です。
     と台形の面積を計算して表示するものとする。
  3. 円の周と面積を求めるプログラム(cir.c)を作成せよ
    半径の長さを入力して下さい:
     と表示し、半径の長さをキーボードから入力させ、
    半径:○○ の円の周は△△、面積は□□ です。
     と円の周と面積を計算して表示するものとする。

自分の関数を作ってみよう

/* 斜辺の長さを求めるプログラム2 */
#include <stdio.h>
#include <math.h>

float	shahen( float x, float y ); /* 関数宣言 */

main()
{
	float	a, b, c;
	
	printf("1辺の長さを入力して下さい:");
	scanf("%f", &a );
	printf("もう1辺の長さを入力して下さい:");
	scanf("%f", &b );
	
	c = shahen( a, b ); /* 関数呼び出し */
	printf("斜辺の長さ:%f\n", c );
}

/* 2辺から斜辺の長さを求める関数定義 */
float shahen( float x, float y )
{
	return( sqrt( x*x + y*y ) );
}
/* end of pytha2.c */
  1. 三角形の面積を求める関数 triangle() を作成し、それを使って三角形の面積を求めるプログラム(tri2.c)を作ってみよう!
  2. 台形の面積を求める関数 trapezoid() を作成し、それを使って台形の面積を求めるプログラム(trap2.c)を作ってみよう!
  3. 円の面積を求める関数 circle() および円周を求める関数 circumference() を作成し、それらを使って円の周と面積を求めるプログラム(cir2.c) を作ってみよう!