Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2009, 20:56   #1
RAMA
 
Регистрация: 16.10.2009
Сообщений: 2
Сообщение Рекурсии

Составить 2е задачи. Рекурсивные процедуры и функции.
Описать рекурсивную функцию root(f, a, b, e), которая методом деления отрезка пополам находит с точностью e корень уравнения f(x)=0 на отрезке [a, b]. (Считать, что e>0, a<b, f(a)*f(b)<0 и f(x}-непрерывная и монотонная функция на отрезке [a, b].)
RAMA вне форума Ответить с цитированием
Старый 16.10.2009, 21:02   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Ну и как, составили?
Arigato вне форума Ответить с цитированием
Старый 17.10.2009, 14:16   #3
RAMA
 
Регистрация: 16.10.2009
Сообщений: 2
По умолчанию

неа(((( ваще не могу
RAMA вне форума Ответить с цитированием
Старый 18.10.2009, 13:17   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Цитата:
Сообщение от RAMA
неа(((( ваще не могу
Сочувствую.
Arigato вне форума Ответить с цитированием
Старый 18.10.2009, 13:30   #5
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

вот исходник программы в функцию переделывать никакого желания нет переделаете сами
Код:
Uses Crt;

Function f(x: Double): Double;
 Begin
   f := x // тут ваша функция!!!
 End;

Var
 x, Eps, a, b, c: Double;
 n: Integer;

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

 n := 0;
 Repeat
   c := (a + b) / 2;
   If (f(a) * f(c)) < 0 Then b := c
   Else a := c;
   Inc(n)
 Until (b - a) <= Eps;

 x := (a + b) / 2;
 WriteLn('Корень равен  x=', x:10:7);
 WriteLn('Количество делений = ',n);
 ReadKey
end.
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 18.10.2009, 13:50   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ОДИНОЧЕСТВО В СЕТИ, ему это решение не подойдёт, задание то учебное! и необходимо написать именно рекурсивную функцию...

RAMA, Вы сами хоть что-нибудь сделали? Или ждёте, что всё сделают за Вас? (тогда платите деньги!) В чём конкретно затруднение?
Рекурсивная функция — это функция, которая вызывает сама себя.
примерно решение будет выглядеть так:
Код:
function root(f, a, b, e) : double;
...
begin
   if нашли решение (c точностью e) then root := решение; выход    
   иначе
      c := (a + b) / 2;
      If (f(a) * f(c)) < 0 Then root := root(f, a, c, e)
      Else root := root(f, c, b, e)
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.10.2009, 13:56   #7
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

ну рекурсивную так рекурсивную
Код:
FUNCTION F(X:REAL):REAL;
BEGIN
 F:=X;
END;
FUNCTION root(A,B,e:REAL):REAL;
VAR X,Y,Z:REAL;
BEGIN
 IF ABS(A-B)<e THEN root:=(A+B)/2
   ELSE BEGIN
   X:=F(A);
   Y:=F((A+B)/2);
   Z:=F(B);
   IF X*Y<0 THEN root:=root(A,(A+B)/2,e)
            ELSE root:=root((A+B)/2,B,e)
   END
END;
функцию f сам ТС прикрутит!
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсии в pascal Nogard Помощь студентам 1 22.06.2009 12:08
Ссылки и Рекурсии AleksD Паскаль, Turbo Pascal, PascalABC.NET 0 14.06.2009 20:27
Паскаль. Рекурсии Nush@ Паскаль, Turbo Pascal, PascalABC.NET 13 03.12.2008 21:27
выход из рекурсии L_M Помощь студентам 9 03.10.2008 18:03
Рекурсии Logan Паскаль, Turbo Pascal, PascalABC.NET 1 13.05.2008 08:52