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

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

Войти
Регистрация
Восстановить пароль
 
Альма
12 / 9 / 1
Регистрация: 25.11.2010
Сообщений: 358
Записей в блоге: 1
#1

Циклические алгоритмы (найти ошибку) - C++

08.01.2012, 02:47. Просмотров 544. Ответов 2
Метки нет (Все метки)

Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n=10.
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
#include <math.h>
#include <stdio.h>
#include <iostream.h>
 
int main()
{
   double a,b,h,S=0,Y,x,p=1,r;
   int i,n;
   
    cout<<"Vvedite a:";
    cin>>a;
    cout<<"Vvedite b:";
    cin>>b;
    cout<<"Vvedite h:";
    cin>>h;
    cout<<"Vvedite n:";
    cin>>n;
   
    for (x=a; x<=b; x+=h)
    {
        Y=(exp(x)+exp(-x))/2;
        {
            r=S=1;
            for(i=1; i<=n; i++)
            {
                       r=r*(x*i)/(2*i);
                       S+=r;
             }
 
        }
 
        printf("\n x= %8.2lf   S(x)= %8.5lf    Y(x)= %8.5lf    |Y(x)-S(x)|= %8.5lf", x,S,Y,fabs(Y-S));  
        i++;
    }
return 0;
}
Помогите правильно организовать S(x)
Подсказка: S(x) и Y(x) равны


Функция тут Измените программу с использованием циклических алгоритмов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2012, 02:47     Циклические алгоритмы (найти ошибку)
Посмотрите здесь:

Задачи на циклические алгоритмы - C++
Помогите пожалуйста сделать в с++: 1)Написать функцию, которая по целому a вычисляет и возвращает максимальное n, при котором n! ≤ a. ...

Тема: Циклические алгоритмы - C++
Вычислить таблицу значений функции u. Найти сумму положительных значений функции u среди всех вычисляяемых. U=\begin{cases} ...

Циклические алгоритмы. Управление циклами. - C++
Организовать процесс угадывания числа: компьютер генерирует случайное число (1…1000), пользователь пытается его угадать за фиксированное...

Циклические алгоритмы. Вычислить значение - C++
Два числа, действительное х и натуральное n&gt;=10, вводятся с клавиатуры. Вычислить значение: sin(x)+ sin^2(x)+ sin^3(x)+...

програмир на языке С-циклические алгоритмы - C++
for: Дано вещественное число-цена 1 кг конфет. вывести стоимость 1, 2, ... ,10 кг конфет. while: Дано целое число N (&gt;0). Если оно...

Циклические алгоритмы. Двумя способоми - C++
Необходимо написать программу двумя способами для циклического алгоритма.

Циклические алгоритмы. Реализация рядов - C++
Всем привет. Задали контрольную, есть задание: вывести на экран таблицу значений функции y(x) для х, изменяющегося от 0.1 до 1.2 с шагом...

Циклические алгоритмы вычисления сумм, произведений - C++
найти число ПИ, используя произведение: ПИ/2= 2/1*2/3*4/3*4/5*6/5*6/7*... точность для печати не менее 5-ти знаков. во внешнем цикле...

Циклические алгоритмы. Вычислить значение выражения. - C++
Помогите , будьте добры! Задача предполагает применение оператора цикла for языка программирования С++. 1. Дано натуральное число N....

Циклические алгоритмы. Циклы с фиксированным количеством повторений. - C++
Даны два целых числа A и B (A &lt; B). Вывести все целые числа, расположенные между данными числами (включая сами эти числа), в порядке их...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
08.01.2012, 12:01     Циклические алгоритмы (найти ошибку) #2
http://www.cyberforum.ru/cgi-bin/latex.cgi?S(x)=\sum_{k=0}^{n}\frac{{x}^{(2*k)}}{(2*k)!}
Формула S(X) означает что 10 раз (n = 10) мы должны производить суммирование от 0 до k (как бы два цикла - один определяет величину k (от 0 до n = 10) а в другом идёт накопление сумм http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{k} = \frac{{x}^{(2*k)}}{(2*k)!} от 0 до k.
Ни в одном из ваших топиков верной на мой взгляд реализации S(x) я не увидел
Накопление сумм лучше всего реализовать с помощью рекуррентного соотношения
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{k} = \frac{{x}^{(2*k)}}{(2*k)!}
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{k + 1} = \frac{{x}^{(2*(k + 1))}}{(2*(k + 1))!} = \frac{{x}^{(2*k + 2)}}{(2*k + 2)!} = \frac{{x}^{(2*k + 2)}}{(2*k)!*(2*k + 1)*(2*k + 2)}
Найдём отношение http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{a}_{k + 1}}{{a}_{k}}

http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{a}_{k + 1}}{{a}_{k}} = \frac{{x}^{(2*k + 2)}}{(2*k)!*(2*k + 1)*(2*k + 2)}*\frac{(2*k)!}{{x}^{(2*k)}} = \frac{{x}^{2}}{(2*k + 1)*(2*k + 2)}
-=ЮрА=-
Заблокирован
Автор FAQ
08.01.2012, 12:21     Циклические алгоритмы (найти ошибку) #3
Ниже С++ реализация
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
using namespace std;
 
double Y(double x)
{
    return 0.5*(exp(x)+exp(-x));
}
 
double S(double x, int n)
{
    double ak = 1, sum = 0;
    for(int k = 0; k <= n; k++)
    {
        sum += ak;
        ak  *= pow(x,2)/(1.0*(2*k + 1)*(2*k + 2));
    }
    return sum;
}
 
int main()
{
    double a, b, h, x, s;
    cout<<"Check value S(1.5) = 2.352 : "<<S(1.5,10)<<endl;
    cout<<"Enter a : ";cin>>a;
    cout<<"Enter b : ";cin>>b;
    cout<<"Enter h : ";cin>>h;
    cout<<"  x\t|  S(x)\t|  Y(x)\t| |S(x) - Y(x)|\n"; 
    for(x = a; x <= b; x += h)
    {
        s = S(x,10);
        cout<<setw(3)<<setprecision(2)<<x<<"\t|"
            <<setw(5)<<s<<"\t|"
            <<setw(5)<<Y(x)<<"\t|"
            <<setw(5)<<fabs(s - Y(x))<<endl;
    }
    system("pause");
    return 0;
}
Миниатюры
Циклические алгоритмы (найти ошибку)   Циклические алгоритмы (найти ошибку)  
Yandex
Объявления
08.01.2012, 12:21     Циклические алгоритмы (найти ошибку)
Ответ Создать тему
Опции темы

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