Условие задачи:
Найти сумму сходящегося ряда: [latex]\frac{\cos x-\cos 2x}{1}+\frac{\cos 2x -\cos 3x}{2}+\cdots+\frac{\cos nx-\cos(n+1)x}{n}+\cdots[/latex]
Входные данные:
[latex]x[/latex] — константа;
[latex]number[/latex] — номер искомой частичной суммы;
Выходные данные:
[latex]value[/latex] — значения необходимых слагаемых;
[latex]partial[/latex] _ [latex]amount[/latex] — искомая частичная сумма;
Тесты:
[latex]x[/latex] | [latex]number[/latex] | [latex]value[/latex] | [latex]partial[/latex] _ [latex]amount[/latex] |
10 | 3 | -1.24715 0.126915 0.27373 | -0.846508 |
100 | 4 | 0.375131 0.254642 0.167733 0.0896382 | 0.887145 |
5 | 5 | 1.12273 -0.0396918 -0.389257 -0.14578 0.16739 | 0.715395 |
Код на языке C++:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <iostream> #include <cmath> using namespace std; int main() { int number; double x; cin>>x>>number; double value; double partial_amount=0; int n=1; while(n<=number){ value=(cos((n*x))-cos(((n+1)*x)))/n; cout<<value<<" "; partial_amount+=value; n++; } cout<<endl; cout<<partial_amount; return 0; } |
Код на языке Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); int number=in.nextInt(); double x=in.nextDouble(); double value; double partial_amount=0; int n=1; while(n<=number){ value=(Math.cos((n*x))-Math.cos(((n+1)*x)))/n; System.out.println(value + " " ); partial_amount+=value; n++; } System.out.println("\n"+partial_amount); } } |
Решение задачи:
Под словом «ряд» в математическом анализе понимают сумму бесконечного числа слагаемых. Зададим цикл с счетчиком [latex]n[/latex] от 1 до заданного пользователем числа [latex]number[/latex]. Именно такое количество необходимых слагаемых [latex]value=\frac{\cos nx -\cos (n+1)x}{n}[/latex] будет найдено на каждом шаге цикла для последующего суммирования и нахождения искомой частичной суммы.
Код задачи на C++: Ideone
Код задачи на Java: Ideone
— Косинус кодируется так [latex]\cos x,[/latex] а не так [latex]cos x[/latex].
— «номер цикла» — это Вы о чём? У Вас всего один цикл в программе.
— Вы неправильно оформили ссылку на код. Она ведет не туда и зачем-то показывает читателю абсолютно неважные коды типа TOxyIr.
— Вы пишите «Икс». Это шутка или [latex]x[/latex] не получился?
— Что у Вас в таблице тестов? Если там всё правильно, то сделайте пояснения, пожалуйста.
— Что здесь делает массив на 5 элементов? Вам совершенно не нужно что-либо запоминать в цикле. Кроме накопленной частичной суммы, конечно. Можно запоминать предыдущее значение косинуса, но это одна обычная переменная, а не массив.
— Вы пытаетесь решить не только задачу по программированию циклов, но и исходную задачу из задачника Демидовича. Конечно, я только «за», но Вы ещё не проходили этот материал в курсе математического анализа. Очень желательно переформулировать условие задачи в соответствии с заданием на программирование (см.ссылку выше).
— Используйте WolframAlpha для получения тестов для разных значений [latex]x.[/latex] Например, для [latex]x=1[/latex] получаем такой ответ.
В конце Вашей публикации я вставил небольшой виджет для удобного тестирования Вашей программы при помощи WolframAlpha. Просто вводите различные значения и смотрите, что получилось. Учтите, что из-за особенностей вычислений может появляться незначительная комплексная составляющая, которую можно игнорировать.
Здравствуйте. Попыталась исправить замечания, но немного перестаралась и случайно убрала добавленный Вами виджет с WolframAlpha
Лучше бы Вы исправили замечания. Ну, хоть первое…
Вы неправильно используете термин исчисление. Да и в радианах задаются углы, а косинус величина безразмерная.
Надеюсь, стало лучше.
Да, стало много лучше. Вот только такой текст «//www.wolframalpha.com/widget/widget.jsp?id=aec39d24217f7d957f9855fd6b358c11» не должен быть виден. Он может быть в поле href ссылки, но не как текст на экране. он ведь не предназначен для чтения.
Кстати, по ссылке открывается такой текст:
Это ведь не то, что Вы хотели показать?