Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2016, 14:44   #1
pirat2k
Пользователь
 
Регистрация: 28.11.2012
Сообщений: 34
По умолчанию Создать функцию Sin1

Описать функцию Sin1(x, ε) вещественного типа (параметры x, ε — вещественные, ε > 0), находящую приближенное значение функции sin(x):
sin(x) = x − x3/(3!) + x5/(5!) − … + (−1)n•x2•n+1/((2•n+1)!) + … .
В сумме учитывать все слагаемые, модуль которых больше ε. С помощью Sin1 найти приближенное значение синуса для данного x при шести данных ε.
pirat2k вне форума Ответить с цитированием
Старый 22.02.2016, 17:25   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Код:
#include <stdio.h>
#include <math.h>

float sin1(float x, float e)
{
float r;
int i;
int n;
int sn;
int fct;
float xn;

r = 0.0;
xn = x;

for(n = 0, sn = 1, fct = 1; 
fabs((xn * (float) sn ) / (float) fct) > e; 
n++, sn *= -1, xn = xn * x * x, fct = fct * (n + 1) * (n + 2) )
{
r = r + (xn * (float) sn ) / (float) fct;
}


return r;

}

void main()
{
printf("%f\n", sin1(0.2,0.001));
printf("%f\n", sin(0.2));
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 23.02.2016, 14:20   #3
pirat2k
Пользователь
 
Регистрация: 28.11.2012
Сообщений: 34
По умолчанию

я сделал, но оно при 6 данных E один и тот же ответ выбивает
Код:
	#include <conio.h>
#include <stdio.h>
#include <math.h>
void Sin1 (float x,float e)
{
float s,t,ch,zn;
int i;
s=x;
ch=x;
zn=1;
t=ch/zn;
i=1;
while (abs(t)>e)
{
ch=ch*(-1)*x*x;
zn=zn*2*i*(2*i+1);
t=ch/zn;
s=s+t;
i++;
}
printf ("%f",s);
}
void main()
{
clrscr();
float x,e;
printf ("vvedi x\n");
scanf ("%f",&x);
for (int i=1;i<=6;i++)
{
printf ("\n vvedi e\n");
scanf ("%f",&e);

Sin1 (x,e);
}
getch();
}
pirat2k вне форума Ответить с цитированием
Старый 23.02.2016, 15:22   #4
pirat2k
Пользователь
 
Регистрация: 28.11.2012
Сообщений: 34
По умолчанию

подскажите как сделать чтобы он при разны E разные ответы выдавал?
pirat2k вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать пользовательскую функцию mila13 Microsoft Office Excel 1 09.01.2015 01:10
создать функцию Татус Microsoft Office Excel 3 14.07.2011 22:07
Дано натуральное n. Вычислить: 1/sin1+1/sin1+sin2+1/sin1+sin(n) Романн Паскаль, Turbo Pascal, PascalABC.NET 1 07.06.2011 14:38
Создать функцию segail Microsoft Office Excel 5 26.09.2009 00:11
Y=sin1+sin2+sin3+...sinN, N=15 volody08 Паскаль, Turbo Pascal, PascalABC.NET 2 15.10.2008 23:43