Составить функцию которая вычисляет функцию синус как сумму ряда

Acoustics

0 / 0 / 0

Регистрация: 13.11.2020

Сообщений: 3

1

13.11.2020, 21:35. Показов 5597. Ответов 2

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Доброго времени суток! Проблемы с задачкой – Составить функцию, которая вычисляет функцию синус как сумму ряда (с точностью 0.001). Функция – sin(x) = x – x^3/3! + x^5/5! – x^7/7! + K .
Пример:
Введите угол в градусах:
45
sin(45) = 0.707

Я попытался что то сделать, но у меня не вышло, вот код:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
 
main (){
setlocale (LC_ALL , "Russian");
double g,s;
double sn(double g);
const int e=0.001;
double x,a;
int n;
x=g*3.141592653/180; 
a = x;
s = a;
n = 0;
while (abs(a)>e){
a=-a*x*x/(2*n+2)/(2*n+3);
s=s+a;
n=n+1;  
}
sn=s;
printf("Введите угол (в градусах):n");
scanf("%d",&g);
s=sn(g);
printf("sin=%f",s);
getch();
}



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

13.11.2020, 21:35

Ответы с готовыми решениями:

Необходимо составить функцию на VBA, которая вычисляет сумму S=1-2^2+3^2-.-12^2
Помогите плз составить функцию, которая вычисляет сумму S=1-2^2+3^2-…-12^2

Составить рекурсивную функцию, которая вычисляет функцию Аккермана по формуле
Составить рекурсивную функцию, которая вычисляет функцию Аккермана по формуле
A(n,m)=
m+1, (если…

Составить рекурсивную функцию, которая вычисляет сумму элементов массива, стоящих на нечетных позициях
Составить рекурсивную функцию, которая вычисляет сумму элементов массива, стоящих на нечетных…

Написать на языке СИ++ программу, вычисляющую функцию, представленную в виде ряда с заданной точностью e=0,001.
Написать на языке СИ++ программу, вычисляющую функцию, представленную в виде ряда с заданной…

2

Диссидент

Эксперт C

27465 / 17154 / 3780

Регистрация: 24.12.2010

Сообщений: 38,635

13.11.2020, 22:57

2

Цитата
Сообщение от Acoustics
Посмотреть сообщение

но у меня не вышло,

Что не вышло, КАК не вышло?



0



analogov net

2120 / 948 / 439

Регистрация: 17.11.2018

Сообщений: 2,493

14.11.2020, 03:53

3

Лучший ответ Сообщение было отмечено Acoustics как решение

Решение

Цитата
Сообщение от Acoustics
Посмотреть сообщение

Я попытался что то сделать, но у меня не вышло

Acoustics, ну, хотя бы так, уже хорошо. Хоть что-то. Хотя видно, что это попытка передрать код с какого-то паскалеобразного языка, даже функцию sn умудрился втюхать в main, в 9 строке.
На Си так делать нельзя. Ну, хотя бы, как-то так нужно было сделать:

Кликните здесь для просмотра всего текста

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
double sn( double g )
{
    const int e = 0.001;
    int n;
    double x, a, s;
 
    x = g * M_PI / 180;
    a = x;
    s = a;
    n = 0;
 
    while( fabs( a ) > e )
    {
        a = -a * x * x / ( 2 * n + 2 ) / ( 2 * n + 3 );
        s = s + a;
        n = n + 1;
    }
 
    return s;
}

Но на Си пишут немного иначе. Например, так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#define eps 1e-3
double Sin( double x )
{
    double an, sum;
    
    sum = an = x *= ( M_PI / 180. );
    for( size_t n = 0; fabs( an ) > eps; n++ )
    {
        an  *= -x * x / ( 2 * n + 2 ) / ( 2 * n + 3 );
        sum += an;
    }
    return sum;
}
 
int main()
{
    double grade;
 
    printf( "Enter the angle (in degrees): " );
    if( scanf( "%lf", &grade ) != 1 )   return 1;
 
    printf( "Sin(%g) = %.3gn", grade, Sin( grade ) );
    printf( "sin(%g) = %.3gn", grade, sin( grade * M_PI / 180 ) );
 
    return 0;
}



2



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

14.11.2020, 03:53

Помогаю со студенческими работами здесь

Написать на языке СИ++ программу, вычисляющую функцию, представленную в виде ряда с заданной точностью e=0,001.
Написать на языке СИ++ программу, вычисляющую функцию, представленную в виде ряда с заданной…

Составить рекурсивную функцию, которая вычисляет сумму двух целых неотрицательных чисел путем многократного добавления числа 1
Условие: Составить рекурсивную функцию, которая вычисляет сумму двух целых неотрицательных
чисел…

Напишите программу, которая вычисляет сумму ряда 1—1/3+1/5—1/7+1/9 +… с заданной точностью
Язык С. Надо решить с помощью while.

Вычислить функцию, заданную как сумму ряда с заданной точностью
Подскажите пожалуйста, где ошибки?
#include &lt;iostream&gt;
#include &lt;clocale&gt;
#include &lt;cmath&gt;

Написать на языке СИ++ программу, вычисляющую функцию, представленную в виде ряда с заданной точностью e=0,001. Значение переменной x вводить с клави
Ребят курсач в пятницу а как делать хз(
Помогите плз написать прогу и блок-схему к нему.Заранее…

Написать программу, которая вычисляет значение e^2 с точностью до 0,001
Помогите решить такое задание:
1. Написать программу, которая вычисляет значение e2(здесь квадрат)…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

3

Опубликовано 12.06.2017 по предмету Информатика от Гость
>> <<

PascalABC
Составить функцию, которая вычисляет функцию синус как сумму ряда (С точностью 0.001)
Пример ввода:
x=45
sin(45) = 0.707

Ответ оставил Гость

Var g,s:real;
function sn(g:real):real;
const e=0.001;
var x,a,s:real; n:integer;
begin
x:=g*Pi/180;
a:=x;s:=a;n:=0;
while abs(a)>e do
 begin
 a:=-a*x*x/(2*n+2)/(2*n+3);
 s:=s+a;
 n:=n+1
 end;
sn:=s;
end;
begin
write(Введите угол (в градусах): );
readln(g);
s:=sn(g);
writeln(sin(,g,)=,s:7:5);
end.

Оцени ответ

Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Дан 1 ответ

Var g,s:real;

function sn(g:real):real;

const e=0.001;

var x,a,s:real; n:integer;

begin

x:=g*Pi/180;

a:=x;s:=a;n:=0;

while abs(a)>e do

 begin

 a:=-a*x*x/(2*n+2)/(2*n+3);

 s:=s+a;

 n:=n+1

 end;

sn:=s;

end;

begin

write(‘Введите угол (в градусах): ‘);

readln(g);

s:=sn(g);

writeln(‘sin(‘,g,’)=’,s:7:5);

end.








petyaGavrikov_zn
БОГ

(194k баллов)



11 Апр, 18


Здравствуйте! На сайте Otvet-Master.ru собраны ответы и решения на все виды школьных задач и университетских заданий. Воспользуйтесь поиском решений на сайте или задайте свой вопрос онлайн и абсолютно бесплатно.

PascalABC Составить функцию, которая вычисляет функцию синус как сумму ряда (С точностью 0.

001)

Пример ввода :

x = 45

sin(45) = 0.

707.

PascalABC Составить функцию, которая вычисляет функцию синус как сумму ряда (С точностью 0?

На этой странице сайта, в категории Информатика размещен ответ на вопрос
PascalABC Составить функцию, которая вычисляет функцию синус как сумму ряда (С точностью 0?. По уровню сложности вопрос рассчитан на учащихся
10 – 11 классов. Чтобы получить дополнительную информацию по
интересующей теме, воспользуйтесь автоматическим поиском в этой же категории,
чтобы ознакомиться с ответами на похожие вопросы. В верхней части страницы
расположена кнопка, с помощью которой можно сформулировать новый вопрос,
который наиболее полно отвечает критериям поиска. Удобный интерфейс
позволяет обсудить интересующую тему с посетителями в комментариях.

Формулировка задачи:

Написать функцию вычисления суммы ряда y=sinx-(sin2x)/2+…+((-1)^n+1)*sin(nx)/n с точностью до eps=0.001. В качестве параметров передать x (в радианах) и eps. Вот, думаю всё правильно, на калькуляторе результаты сверял – всё верно

Код к задаче: «Функции: вычисление суммы ряда с заданной точностью»

textual

int sign = 1;
do
    {
        n++;
        previous = current;
        current = sin(n*x)/n;
        sum += sign*current;
        sign = -sign;
    } while (fabs(current - previous) > eps);

Полезно ли:

13   голосов , оценка 3.769 из 5

Добавить комментарий