第7回の演習の解答例

(1) sin関数を用いて0°から180°までのsin関数の値を10°ずつ表示せよ.



#include <stdio.h>
#include <math.h>

void main()
{
    int i;
	double rad,pi;
	double x;
	
	pi=3.141;
	
    for(i=0;i<=18;i++){
	
        rad = ((double)i*10)/180.0*pi;
		x=sin(rad);
	
		printf("sin%d°=%1.3f¥n",i*10,x);
    }
	
}

(2) 以下の数列を計算するプログラムを作成せよ.



#include <stdio.h>
#include <math.h>

void main()
{
    int i, n;
    float wa;

    printf("n=");
    scanf("%d", &n);

    wa = 0; 

    for(i=0;i<n;i++) {
        wa += pow(-1,(float)i)/(2*(float)i+1);
    }
    printf("数列の答えは%fです¥n",wa); 
}

(3) まずデータ(例えば実験データなど)の件数 n を整数で入力し,続いてその件数分データを入力すると,
  データの合計と平均値を求め画面に表示するプログラムをfor文を用いて作成せよ.



#include <stdio.h>

void main()
{
	int i, n;
	float data,sum=0.0;
	
	printf("データ件数nを入力してください:");
	scanf("%d",&n);
	
	for(i=0;i<n;i++){
		printf("データを入力してください:");
		scanf("%f",&data);
		
		sum += data;
		
	}
	
	printf("データの合計値は,%.2fです.¥nデータの平均値は,%.2fです.¥n",sum,sum/(float)n);
	
}

(4) 成績データ(0以上100以下)を何件か入力し,その最大値を求めるプログラムを作成せよ.ただし,データ件数は始めに入力する.



#include <stdio.h>

void main()
{
	int i,n,data,max=0;
	
	printf("データ件数nを入力してください:");
	scanf("%d",&n);
	
	for(i=0;i<n;i++){
		printf("成績データを入力してください:");
		scanf("%d",&data);
		
		if(max<data){
			max = data;
		}
	}
	
	printf("成績の最高得点は%d点です。¥n",max);
	
}

(5)以下の長方形則を用いて数値積分を実行するプログラムを作成せよ

  数値積分は関数を解析的に解くのが困難な場合に,近似的に値を求める手法である

  以下に基本的な数値積分手法である長方形則の概念と式を示す


      長方形則の概念図

  ここで,hは長方形の幅である.ab間を100に分割した時,h=0.01 ×(b-a)となる

  今回は以下に示す式の計算せよ.ただしab間を400分割して計算すること



#include <stdio.h>
#include <math.h>

void main()
{
    int i;
    float h,s;

    h = (2-0)/400.0;
    s = 0;

    for(i=0;i<400;i++) {
        s += (pow((float)i*h,3)+7*pow((float)i*h,2)-8*((float)i*h)+16);
    }

    s *= h;

    printf("積分値は%fです¥n",s);
 
}