Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
term1
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 65
#1

Вычисление суммы ряда, перевести код с Pascal - C++

10.10.2012, 12:41. Просмотров 494. Ответов 6
Метки нет (Все метки)

Вычисление суммы ряда оформить в виде процедуры с параметром (в качестве параметра использовать количество слагаемых m). Проверить правильность вычисления. Значения слева и справа должны быть равными. На экран вывести значение выражения слева, значение выражения справа и количество просуммированных членов ряда.

http://www.cyberforum.ru/cgi-bin/latex.cgi?\sin x = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \ldots + \frac{(-1)^{m-1} \cdot x^{2 m-1}}{(2 m - 1)!}, \qquad \qquad m = 1, 2, \ldots
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Uses Crt;
var
m:integer;
s,x:real;
procedure sum(x:real; m:integer; var s:real);
 var
 xn:=real;
  k:integer;
   begin
    s:=x;
     xn:=x;
    for k:=1 to m do begin
      xn:=-xn*sqr(x)/((2*k+1)*2*k); 
        s:=s+xn;   
       end;
      end;
begin
Clrscr;
readln(x,m);
sum(x,m,s)
writeln(m,' ',sin(x):0:5,' ',s:0:5);
readln;
end.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,431
10.10.2012, 13:13     Вычисление суммы ряда, перевести код с Pascal #2
Цитата Сообщение от term1 Посмотреть сообщение
Проверить правильность вычисления
Чтобы проверить правильность вычисления, нужно эталонное значение и точность. В качестве эталона можно взять результат вычисления библиотечной функции, но вот откуда брать точность?
term1
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 65
10.10.2012, 13:16  [ТС]     Вычисление суммы ряда, перевести код с Pascal #3
помогите перевести прогу паскаль в си!
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,431
10.10.2012, 13:34     Вычисление суммы ряда, перевести код с Pascal #4
term1, ты мое сообщение прочитал?

А вообще, вот достаточно эффективный способ вычисления синуса через разложение в ряд Тейлора:

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif /* M_PI */
 
double taylor_sin(double x)
{
    static const double coeffs[] = {
        -0.16666666666666665052e+0,
        0.83333333333331650314e-2,
        -0.19841269841201840457e-3,
        0.27557319210152756119e-5,
        -0.25052106798274584544e-7,
        0.16058936490371589114e-9,
        -0.76429178068910467734e-12,
        0.27204790957888846175e-14,
    };
    static const size_t num_coeffs = sizeof coeffs / sizeof *coeffs;
    double sum, x_2, multiplier;
    size_t i;
 
    x = fmod(x, 2 * M_PI);
    sum = x;
    x_2 = x * x;
    multiplier = x * x_2;
 
    for(i = 0; i < num_coeffs; ++i)
    {
        sum += multiplier * coeffs[i];
        multiplier *= x_2;
    }
 
    return sum;
}
 
int main(void)
{
    double x;
    printf("Enter a number: ");
    fflush(stdout);
    scanf("%lf", &x);
    printf("sin %.5f = %.5f\ttaylor_sin %.5f = %.5f\n",
           x, sin(x), x, taylor_sin(x));
    exit(EXIT_SUCCESS);
}
term1
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 65
10.10.2012, 13:36  [ТС]     Вычисление суммы ряда, перевести код с Pascal #5
короче такое задание (не используя стандарные функции ( за исключение abs) вычислить сумму следующего ряда с заданной точностью E>0 (E,x,a вводятся с клавиатуры) а пример
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sin x = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \ldots + \frac{(-1)^{m-1} \cdot x^{2 m-1}}{(2 m - 1)!}, \qquad \qquad m = 1, 2, \ldots
надо написать прогу на си ++
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,431
10.10.2012, 13:37     Вычисление суммы ряда, перевести код с Pascal #6
Цитата Сообщение от term1 Посмотреть сообщение
надо написать прогу на си ++
term1, так на С или на С++?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2012, 13:45     Вычисление суммы ряда, перевести код с Pascal
Еще ссылки по теме:

Вычисление суммы ряда C++
Вычисление суммы ряда C++
C++ Вычисление суммы ряда
Вычисление суммы ряда 1^k+2^k+...+n^k C++
C++ Вычисление суммы ряда

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

Или воспользуйтесь поиском по форуму:
term1
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 65
10.10.2012, 13:45  [ТС]     Вычисление суммы ряда, перевести код с Pascal #7
с++ помоги пожалуйста!
Yandex
Объявления
10.10.2012, 13:45     Вычисление суммы ряда, перевести код с Pascal
Ответ Создать тему
Опции темы

Текущее время: 00:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru