以下の内容で演習を行います.
C言語では下記プログラムのように、様々な数学関数を用いることができます.例えば以下のようなプログラムで、三角関数の計算や平方根等の利用ができます。(math-1.c として打ち込んでみてください。)
- - - - - - - - - - - - - - - -
#include <stdio.h>
#include <math.h>
int main()
{
double pi,a,x,y,z,r;
pi = 3.1415926;
a = 3.0;
r= 10.0;
/*三角関数の計算 */
x = r*cos(pi/a);
y = r*sin(pi/a);
/*平方根の計算 */
z = sqrt(x*x + y*y);
printf("10*sin(pi/3.0)=%lf, 10*cos(pi/3.0)=%lf
\n", x, y);
printf("A square root of (x*x+y*y) is %lf
\n", z);
}
- - - - - - - - - - - - - - - -
数学関数を用いる場合には、
#include <math.h> をプログラムの先頭付近に書き入れることと、コンパイル時に、ファイル名を math-1.c とすると、
cc math-1.c -o math-1 -lm
というふうに、最後に -lm を付け足す必要があります.
sin(), cos(), sqrt()の他に, exp(), tan(), log() などいろいろ用意されています。(次回以降、よく使う事になります.)
実数x の値の入力を促し、sin(x)、cos(x)、tan(x)の値を出力するプログラムを作成せよ。
実数x , hの値の入力を促し、(sin(x + h) – sin(x) )/ h、cos(x)の値を出力するプログラムを作成せよ。
また、同じxの値を与えた場合で、h = 0.1, 0.01, 0.001とおいたときの出力を確認せよ。
二等辺三角形ABCの角Aの大きさをx (rad)、辺ABと辺ACの長さを共にLとする。
xとLの値の入力を促し、辺BCの長さを求めるプログラムを作成せよ。
整数Nの入力を促し、半径10の円に内接する正N角形の周りの長さ、面積を求めるプログラムを作成せよ。
(正四角形、正六角形の場合について正しい答えになっているか、またNが大きい場合に円に近い値をとるか、各自試してみよ)
実数L>0の入力を促し、|sin(x)|をxについて区間[0, L]で積分するプログラムを作成せよ。絶対値は数学関数fabs()をもちいて計算できる。(例:xの絶対値はfabs(x) )
ただし、区間の分割数nは1000であるとする。