Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 14
1

Разработка рекурсивных алгоритмов и программ

13.11.2019, 23:42. Показов 1169. Ответов 1
Метки нет (Все метки)

Разработка рекурсивных алгоритмов и программ.

Это задание:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
S(x)=\sum_{k=0}^{n}\frac{x^{2k+1}}{(2k+1)!}\,,\ \ \ \ \ Y(x)=\frac{e^x-e^{-x}}{2}<br />
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2019, 23:42
Ответы с готовыми решениями:

Разработка алгоритмов и программ нисходящим способом
Пожалуйста, помогите решить задачу...уже два дня пытаюсь(( Если исходная последовательноть...

Разработка алгоритмов и программ с использованием динамических массивов
Нужно сделать вывод динамического массива с суммой положительных элементов в начале массива и...

Разработка алгоритмов и программ с использованием динамических структур данных
Перевернуть список L, то есть изменить ссылки в этом списке так, чтобы его элементы оказались...

Разработка рекурсивных алгоритмов и программ
Написать рекурсивную функцию сложения целых чисел

1
Модератор
8669 / 4328 / 2974
Регистрация: 17.08.2012
Сообщений: 13,777
15.11.2019, 10:44 2
Лучший ответ Сообщение было отмечено D1973 как решение

Решение

Не всякий сможет понять, о чём идёт речь в Вашем задании.

Y(x) - это синус гиперболический sh(x), а S(x) - это сумма n+1 членов ряда Тейлора для sh(x).

Итак.

Найдём рекуррентное соотношение для членов ряда.

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
S(x)=\sum_{k=0}^{n}\frac{x^{2k+1}}{(2k+1)!}=\sum_{k=0}^{n}a_k<br />

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
a_0=\frac{x^{2\cdot 0+1}}{(2\cdot 0+1)!}=\frac{x^1}{1!}=x;\ \ \ a_k=\frac{x^{2k+1}}{(2k+1)!};\ \ \ a_{k-1}=\frac{x^{2(k-1)+1}}{(2(k-1)+1)!}=\frac{x^{2k-1}}{(2k-1)!};<br />

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\frac{a_k}{a_{k-1}}=\frac{\frac{x^{2k+1}}{(2k+1)!}}{\frac{x^{2k-1}}{(2k-1)!}}=\frac{x^2}{2k(2k+1)}=\frac{x^2}{4k(k+0.5)}\ \Rightarrow \ \boxed{a_k=\frac{a_{k-1}x^2}{4k(k+0.5)}}<br />

Первый член ряда a0 найден, последующий член ряда ak выражен через предыдущий ak-1. Рекуррентное соотношение найдено.

Пишем программу. На форме разместите два Edit, два Label и один Button. Дважды щёлкните на Button1, в коде появится заготовка
Delphi
procedure TForm1.Button1Click(Sender: TObject);
begin
 
end;
Замените эту заготовку на
Delphi
function S(x: real; n: integer): real;
var
  a: real;
  k: integer;
begin
  if n = 0
    then S := x
    else begin
      a := x;
      for k := 1 to n do a := a * x * x / 4 / k / (k + 0.5);
      S := S(x, n - 1) + a
    end
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  x: real;
  n: integer;
begin
  x := StrToFloat(Edit1.Text);
  n := StrToInt(Edit2.Text);
  Label1.Caption := FloatToStr(S(x, n));
  Label2.Caption := FloatToStr((exp(x) - exp(-x)) / 2)
end;
Если нужно, добавьте на форму несколько Label с соответствующими Caption, чтобы было ясно, куда и что вводить и куда и что выводится, и измените Buton1.Caption, например, на "Вычислить".

Значение переменной "x" вводите в Edit1, значение "n" - в Edit2. В Label1 выводится значение S(x), в Label2 выводится значение Y(x).

Я привёл простейшее решение.
Нет проверки вводимых данных на корректность.
Рекурсия реализована максимально просто, поэтому при рекурсивных вызовах функции S(x, n) значения членов ряда каждый раз вычисляются заново.

Не по теме:

Темы называйте осмысленно. Фотографии текста запрещены. Текст вопроса (задание) пишите полностью. Ссылки на файлопомойки запрещены.
Прочитайте на досуге Правила форума.
Если будете и далее эти правила не соблюдать, я с Вами поступлю нехорошо.

3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2019, 10:44

Разработка рекурсивных алгоритмов и программ
Помогите решить Составьте текст программы, содержащей две функции: 1. функцию сложения двух...

Разработка рекурсивных алгоритмов для вычисления функции
Сразу к сути!!! Я должен сделать рекурсию функции y=x+3-e^-x. Что то y2 не выводит, ошибок нету! ...

Рекурсивные методы решения задач. Разработка и реализация рекурсивных алгоритмов.
Рекурсивные методы решения задач. Разработка и реализация рекурсивных алгоритмов. Помогите...

Разработка и отладка алгоритмов и программ с использованием шаблонов классов и алгоритмов библиотеки STL
1. Создать объект-контейнер и заполнить его данными. 2. Просмотреть контейнер. 3....

Разработка алгоритмов и программ с использованием под программ
дано действительные числа a, b. Получить u=min(a,b) v=min(ab,a+b) min(u+v2,3,14)

Разработка алгоритмов и программ
Здравствуйте помогите пожалуйста решить задачку Составьте программу вычисления числа сочетаний...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru