0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 10
|
||||||
1 | ||||||
Вычисление значения функции с использованием рекурсии28.05.2019, 23:30. Показов 3367. Ответов 8
Метки нет (Все метки)
Здравствуйте! Мне нужно вычислить значение функции (на картинке) с точностью ε (вводимой пользователем с клавиатуры) с помощью рекурсии. После преобразований у меня получилось два степенных ряда с множителями перед ними, итоговое значение равно разности сумм рядов с учетом этих множителей. Я вывела рекуррентные формулы и попробовала составить код для нахождения значения функции, но почему-то оно не совпадает с вычисленным непосредственно на калькуляторе. Вводить дополнительные переменные и присваивать им значения, равные тем, которые возвращают функции, мне пришлось, чтобы потом найти y.
Кроме того, компилятор выдаёт ошибки: "требуется точка с запятой" (после объявления функции main), "main: недопустимые локальные определения функций" и "{": не найдена несоответствующая лексема" (также в main), хотя с первой и третьей вроде всё нормально. Как можно исправить ошибки в составлении кода и сборке программы? Помогите, пожалуйста.
0
|
28.05.2019, 23:30 | |
Ответы с готовыми решениями:
8
Вычисление заданной функции разложением ее в ряд с использованием рекурсии Вычисление значения (с использованием перегрузки функции) Вычисление значения интервально заданной функции с использованием перечисления Вычисление значения функции в узлах табуляции с использованием циклов for, while и do ... while |
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
28.05.2019, 23:37 | 2 |
AlmariNuit, поставьте после строки 81 закрывающую фигурную скобку
1
|
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 10
|
|
28.05.2019, 23:47 [ТС] | 3 |
Yetty, спасибо. Но теперь Visual Studio заметил неинициализированные локальные переменные s1, s2 и eps, хотя eps задается пользователем. Как быть с этими переменными? Я пыталась записать конечное значение y через функции sum1 и sum2, но там ещё больше ошибок выдаёт. А eps, возможно, не инициализировано в подпрограммах вычисления суммы, но ведь оно вводится с клавиатуры, тогда придётся в каждой подпрограмме опять запрашивать ввод eps. А как по-другому сделать, чтобы получить окончательное значение из всех подпрограмм, - не знаю...
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
28.05.2019, 23:51 | 4 |
замените #include <math.h> на #include <сmath>, а abs замените на fabs
где задаётся n ? нет передачи eps в функцию. инициализируйте их нулём s1=0.0, s2=0.0 и передавайте в функции
1
|
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 10
|
|
28.05.2019, 23:53 [ТС] | 5 |
Yetty, попробую.
В том-то и дело, что n изначально никак не задаётся и зависит от того, с какой точностью нужно вычислить значение функции (то есть до какого члена ряда будет идти суммирование). А как точность правильно ввести, я так и не могу понять. С помощью цикла получилось бы, а в рекурсии - не получается. К сожалению, если s1 и s2 инициализировать нулём, то y будет равен нулю. Не совсем понятно, как передать их в функции.
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
||||||
29.05.2019, 00:09 | 6 | |||||
насчёт s1 и s2, Вы же их в функции объявляете, уберите их из строки 82 (не нужно инициализировать)
Вы её вводите правильно, её нужно передать в функции sum1 и sum2, например
1
|
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 10
|
||||||
29.05.2019, 00:11 [ТС] | 7 | |||||
Yetty, хорошо, а с переменной n тогда что делать, везде она "необъявленный идентификатор". Теперь только с ней выдаёт ошибки.
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
29.05.2019, 00:17 | 8 |
правильно, Вы же не инициализировали её значением (там мусор), а передаёте в функцию. я подправил очевидные ошибки, в алгоритм не вникал, но сложилось впечатление, что Вы функции для работы с числом слагаемых n пытаетесь применить для вычислений с точностью eps.
0
|
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 10
|
|
29.05.2019, 00:25 [ТС] | 9 |
Yetty, ладно, спасибо Вам большое за помощь! Попробую дальше разобраться с n (вообще она не только означает количество членов ряда, но и участвует в вычислениях очередного элемента).
0
|
29.05.2019, 00:25 | |
29.05.2019, 00:25 | |
Помогаю со студенческими работами здесь
9
Вычисление значения функции двух переменных с использованием механизма исключений Провести вычисление интеграла по формуле с использованием рекурсии Запрограммируйте с использованием рекурсии вычисление функции Нахождение значения функции с использованием рекурсии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |