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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2019, 23:25   #1
Mat Bourn
Форумчанин
 
Регистрация: 13.04.2015
Сообщений: 140
По умолчанию Для каждого x, изменяющегося от a до b с шагом h, найти.

Всем доброго. Проверьте пожалуйста задачку. Математику я не знаю. Делал по аналогии чужих примеров.

Для каждого 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 выбрать в зависимости от задания.


Код:
#include <stdio.h>
#include <iostream.h>
#include <windows.h>


 int _tmain(int argc, _TCHAR* argv[])
{
 SetConsoleOutputCP(1251);
 SetConsoleCP(1251);

 const double pi = 3.14;
 double a, b, h, n, x;
 double Yx, Sx, k;


 cout << "  a  =  ";
 cin >> a;

 cout << "  b  =  ";
 cin >> b;

 cout << "  h  =  ";
 cin >> h;

 cout << "  n  =  ";
 cin >> n;

 for ( x = a; x <= b; x += h )
{
 Yx = -0.5 * log(1 - 2 * x * cos(pi / 4) + pow(x,2));


 for( k = 1; k <= n; k++ )
{
 Sx = (pow(x,k) * cos(k * pi / 3)) / k;
}

 //cout << " |   " << Yx << "   |     " << Sx << "     |       " << Yx - Sx << "        |";
 printf (" |     %.6f",Yx);
 printf ("     |     %.6f",Sx);
 printf ("     |          %.6f",Yx - Sx);
 printf ("         |");
 cout << endl;
}

 cout << endl;
 cout << "  ";
 system("pause");
 return 0;
}
Использовал C++ Builder 10. Нахождение суммы S(x) я думаю что не правильно.
Изображения
Тип файла: png 0000.png (3.5 Кб, 50 просмотров)
Mat Bourn вне форума Ответить с цитированием
Старый 23.11.2019, 23:36   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Есть:
Код:
Yx = -0.5 * log(1 - 2 * x * cos(pi / 4) + pow(x,2));
По условию задачи:
Код:
Yx = -0.5 * log(1 - 2 * x * cos(pi / 3) + pow(x,2));
А тут следует добавить:
Код:
Sx = 0;   // Тут накапливаем сумму
for( k = 1; k <= n; k++ )
{
 Sx =  Sx + pow(x,k) * cos(k * pi / 3) / k;
}
PS: Это так, взгляд с боку ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 23.11.2019, 23:42   #3
Mat Bourn
Форумчанин
 
Регистрация: 13.04.2015
Сообщений: 140
По умолчанию

Спасибо.
Mat Bourn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x) rutizar22 Помощь студентам 1 28.10.2012 12:51
Для каждого x, изменяющегося от a до b с шагом h, найдите значения функции Y(x), суммы S(x) и |Y(x)-S(x)| Язык Си zig1 Помощь студентам 2 01.02.2012 21:08
Для аргумента Х, изменяющегося от -0.6 с шагом 0.05, вычислить 20 значений функции J@ck Помощь студентам 2 13.05.2009 14:14
Вычислить значение функции Y=F(x) для аргумента x, изменяющегося от xн до xк с шагом изменения Hx. dr.Chas Общие вопросы по программированию, компьютерный форум 1 12.12.2008 13:58