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

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

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

Вычислить значение выражения - C++

31.03.2012, 22:48. Просмотров 491. Ответов 4
Метки нет (Все метки)

Я новичок в этом деле.Буду рад любой помощи.
Задача:
вычислить S
вычисление прекратить если (рис1)
Подсчитать кол-во слагаемых.
0
Изображения
  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 22:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить значение выражения (C++):

Вычислить значение выражения - C++
Вычислить (s(a)+s(b))s(a+b) где s(x)=x^4 -cosx,x -1,x>5

Вычислить значение выражения - C++
Здравствуйте,вот решил покавырятся в заданиях из лабараторных работ (просто для себя) заинтересовала эта задача,но как ее записать я что-то...

Вычислить значение выражения - C++
помогите составить программу вот для такого выражения заранее спасибо)

Вычислить значение выражения - C++
помогите составить программу вот для такого выражения

Вычислить значение выражения - C++
не могу выявить в чем ошибка #include <iostream> #include<stdio.h> #include<conio.h> #include<math.h> #include <cmath> using...

Вычислить значение выражения - C++
Буду очень благодарен.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
31.03.2012, 23:07 #2
если сумма действительно начинается от n=0 то как минимум выражение ln n некорректно. Не трать время.
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 23:10 #3
Если от 1, то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <math.h>
int main()
{
 double s1=0;
 double s2;
 int n=1;
 do
  {
   s2=s1;
   s1+=pow((1+cos(n))/(2+cos(n)),2*n-log(n));
   n++;
  }
 while (fabs(s1-s2)>0.0001);
 std::cout<<"S="<<s1<<"\nn="<<n<<"\n";
 system("pause");
 return 0;
}
1
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
31.03.2012, 23:15 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cmath>
 
int main(void)
{
    double res = 0, tmp, eps = 1e-4, n = 1;
    while((tmp = pow((1+cos(n))/(2+cos(n)),2*n-log(n))) > eps)
    {
        res += tmp;
        ++n;
    }
    std::cout << "s = " << res << std::endl; 
    std::cout << "n = " << n - 1 << std::endl;
    return 0;
}
1
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
31.03.2012, 23:34 #5
Вай-вай. А что такое сумма ты не знаешь, и что такое циклы тоже? Или вот ты написал "Итерация", а немного погуглить на эту тему ты пробовал?

А ещё ты не пробовал разбить задачу на отдельные подзадачи, не пробовал, например, для начала вычислить один элемент этого ряда?
Разве сложно написать вот так?
C
1
2
n=0;
a=(1+cos(n))/(2+cos(n))
Ну вот хотя бы так для начала. Потом появиться на форуме с вопросом "Ой, а как возводить в степень в С???"
Так были б видны попытки работать. тебе б посоветовали использовать функцию pow
Ты бы вернулся к решению и самостоятельно сообразил бы, что выражение следует возвести в степень 2*n-log(n). Посмотрел бы в гугле пример использования функции pow и по аналогии написал бы
a=pow(a, 2*n-log(n))
Затем поискал бы пример программы "сумма ряда", или самостоятельно подумал, а зачем ты столько лекций посетил по программированию, на которых давались примеры циклов и как циклы используются на практике. И нельзя ли просуммировать твой ряд в цикле.
Взял бы для примера цикл while и написал бы
C
1
2
3
4
5
n=0;
while(условие){
a=(1+cos(n))/(2+cos(n));
a=pow(a, 2*n-log(n));
}
Что тебе нужно чтобы найти сумму в цикле? Наверное каждый раз надо запоминать просуммированное ранее в некоторой переменной и каждый раз прибавлять к ней новое a!

C
1
2
3
4
5
6
7
n=0;
summa=0;
while(условие){
a=(1+cos(n))/(2+cos(n));
a=pow(a, 2*n-log(n));
summa=summa+a;
}
Ну! Думаешь ты, вот сумма ряда и найдена! Только почему то у нас всегда n=0
А греческий значок "сигма" в формуле (я надеюсь, что ты к математике не относишься так как к программированию, а поэтому) ты знаешь, что обозначает сумму ряда при изменении n=0, 1, 2, 3, т.е. n должен с каждым шагом увеличиваться.
добавим это в программу
C
1
2
3
4
5
6
7
8
n=0;
summa=0;
while(условие){
a=(1+cos(n))/(2+cos(n));
a=pow(a, 2*n-log(n));
summa=summa+a;
n=n+1;// вот здесь с новым шагом цикла n увеличивается
}
Осталась последняя неясность в нашей программе. Что за "условие" стоит в цикле while?
Т.е. сколько элементов ряда нужно суммировать? А нам не сказано сколько! Давай! Смотри в условие! Там сказано (1+cos(n))/(2+cos(..., короче это наше слагаемое а должно быть меньше эпсилон
Ну! Так прямо так и запишем! Видишь? для того что бы выполнить аналогичное задание надо только понять условие и записать все действия, которые там требуются на языке программирования.
Пишем:
C
1
2
3
4
5
6
7
8
9
10
n=0;
summa=0;
epsilon=1e-4;
a=1;
while(a>=epsilon){
a=(1+cos(n))/(2+cos(n));
a=pow(a, 2*n-log(n));
summa=summa+a;
n=n+1;// вот здесь с новым шагом цикла n увеличивается
}
видишь? а в цикле постоянно уменьшается, и когда оно будет меньше epsilon цикл завершится.
Разве это какая-то высшая математика?
Короче, объяснил подробно. Надеюсь ты понял. Как вывести summa на экран думаю догадаешься.
Или ты даже Hello World написать не можешь?
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 23:34
Привет! Вот еще темы с ответами:

Вычислить значение выражения - C++
Обчислить значение выражения y=корень(2-b)^3+(3-b)^3, для подсчета (a-b)^3 использовать функцию.

Вычислить значение выражения - C++
Привет всем! Я ве некоторые проблемы с C ++. Я ве обучения C ++ с помощью видео курсов ... У меня есть некоторые математические выражения....

Вычислить значение выражения - C++
Помогите с этой ф-й y=2 {\sin}^{2}\frac{1}{{(\pi +z)}^{3}}

Вычислить значение выражения - C++
#include &lt;stdio.h&gt; #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; void main() { int n; int matrix; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.03.2012, 23:34
Ответ Создать тему
Опции темы

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