Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

vm_labs / lr_8 / LR_8

.CPP
Скачиваний:
5
Добавлен:
09.02.2015
Размер:
1.23 Кб
Скачать
#include	<stdio.h>
#include	<conio.h>
#include	<stdlib.h>
#include	<math.h>

#define		_A	0
#define		_B	1
#define		_N_UZ	8


double	f(double x);
double	gauss(double *x_arr, double *a_arr, FILE *f_out);

void	main()
{
	double	x_arr[_N_UZ] = {-0.96028986,
				-0.79666648,
				-0.52553242,
				-0.18343464,
				0.18343464,
				0.52553242,
				0.79666648,
				0.96028986};

	double	a_arr[_N_UZ] = {0.10122854,
				0.22238103,
				0.31370664,
				0.36268378,
				0.36268378,
				0.31370664,
				0.22238103,
				0.10122854};

	double	integral;

	FILE	*f_out;

	if ((f_out = fopen("out.txt","w"))==NULL)
	{
		fprintf(stderr, "\nCan't open output file!\n");
		exit(1);
	}

	integral = gauss(x_arr,a_arr, f_out);
	fprintf(f_out,"\nIntegral I = %2.8f\n", integral);


	fclose(f_out);
	return;
}

double	f(double x)
{
	return ((1/sqrt(1+x))*exp(-x));
}

double	gauss(double *x_ptr, double *a_ptr, FILE *f_out)
{
	double	I = 0;
	int	j;
	double	k_1 = (_A+_B)/2., k_2 = (_B-_A)/2.;



	for (j=0; j<_N_UZ; j++, a_ptr++, x_ptr++)
	{
		I += (*a_ptr) * f(k_1+k_2*(*x_ptr));

		fprintf(f_out, "\nx=%2.8f a=%2.8f I=%2.8f", *x_ptr, *a_ptr, I);
	}
	I *= k_2;

	return	I;
}


Соседние файлы в папке lr_8