IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Рекурсивная функция, метод деления пополам
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


Вот такая програмка: нужно описать рекурсивную функцию (f, a, b, eps), которая методом деления отрезка пополам находит с точностью eps корень уравнения f(x)=0 на [a, b].
Считать, что eps>0, a<b, f(B)<0 i f(x) - непрерывная.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Yurka,
вот тут приведен итеративный вариант метода дихотомии:
FAQ: Численные методы решения уравнений
Его очень просто преобразовать в рекурсию:

{$n+}
Uses Crt;

Type
fType = Function(x: Double): Double;

Function f(x: Double): Double; Far;
Begin
f := 1 / (Exp(x * Ln(2))) - 10 + 0.5*Sqr(x)
End;

function dichotomy(f: fType; a, b: Double;
const eps: Double): Double;
var c: double;
Begin
If (b - a) <= eps then begin
dichotomy := ( a + B ) / 2;
exit;
end;

c := ( a + B ) / 2;
If (f( a ) * f( с )) < 0 Then
dichotomy := dichotomy(f, a, c, eps)
Else
dichotomy := dichotomy(f, c, b, eps)
End;

Var
x, Eps, a, b: Double;

begin
ClrScr;
Writeln('Введите значения a и b'); Read( a, B );
WriteLn('Введите точность Eps'); Read(Eps);

x := dichotomy(f, a, b, Eps);
WriteLn('Корень равен x=', x:10:7);
ReadKey
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


Ну, Volvo, ты молодчинка!!! :p9:
Есть у меня ещё один вопрос, чтобы темы не начинать может здесь задам...
насчёт сортировки. Нужно "метод Бульбашки"(название на украинском) (этот я знаю) smile.gif сравнить с "сортування обміну на великих відстанях" ("сортировка обмена на больших растояниях" вроде так перевёл), так этот второй метод что то я не могу найти. Нужно сравнить их быстродействие, используя любой большой масив
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 7.09.2025 14:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name