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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






:D Ты будешь смеяться, но вот тут:
FAQ: Алгоритмы сортировки я выкладывал таблицу, сравнивающую основные алгоритмы для разных входных последовательностей, а вот тут:
FAQ: Улучшение кода Oleg_Z даже приводил программу, производящую такое сравнение...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

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

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


Цитата(volvo @ 4.07.05 20:04)
:D Ты будешь смеяться, но вот тут:
FAQ: Алгоритмы сортировки я выкладывал таблицу, сравнивающую основные алгоритмы для разных входных последовательностей, а вот тут:
FAQ: Улучшение кода Oleg_Z даже приводил программу, производящую такое сравнение...

вообщем всё нормально,ты как всегда на высоте!!!, я это всё просматривал, только вот второй метод это что пирамидальный?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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