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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2008, 23:34   #1
Absent
Пользователь
 
Регистрация: 18.11.2007
Сообщений: 67
По умолчанию Задача в pascal?! помогите пожалуйста решить задачу.

Условие: Составить программу для решения уравнения f(x)=0 на отрезке [A,B] с точностью Е методом деления отрезка пополам и с помощью рекурсии.Код абсолютно правильный просто я не могу написать его с рекурсией. Заранее спасибо большое!!!

program ex;
var e:array [1..5] of real;
a,b,x:real;
i,n:integer;
function F (x:real):real;
begin
F:=(exp(ln(x)*(1/7))+ln(x+0.3))/(sqrt(x+1)-x);
end;
procedure V (a,b,e:real;var x:real; var n:integer);
var
at,bt,fat,fxs,xs:real;
begin
at:=a;
bt:=b;
n:=0;
repeat
xs:=(at+bt)/2;
n:=n+1;
fat:=F(at);
fxs:=F(xs);
if fat*fxs>=0 then
at:=xs
else
bt:=xs;
until abs(at-bt)<=e;
x:=xs;
end;
begin
writeln ('vvedite a,b');
readln (a,b);
writeln ('vvedite e');
for i:=1 to 5 do
read (e[i]);
for i:=1 to 5 do
begin
V(a,b,e[i],x,n);
writeln ('x=',x:5:4,' n=',n);
end;
readln;
readln;
end.

Последний раз редактировалось Absent; 03.04.2008 в 00:17.
Absent вне форума Ответить с цитированием
Старый 03.04.2008, 07:04   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Приложил маленький файлик по рекурсии, прочитай и поймешь, что твоя программа вполне рекурсивная, т.к. procedure V вызывает внутри себя описанную выше function F. Это называется линейная косвенная рекурсия, в отличие скажем от общеизвестного факториала, где используется прямая циклическая рекурсия.
Вложения
Тип файла: doc Рекурсия.doc (37.0 Кб, 22 просмотров)
puporev вне форума Ответить с цитированием
Старый 04.04.2008, 20:52   #3
МаксимNEWProgramm
Пользователь
 
Аватар для МаксимNEWProgramm
 
Регистрация: 04.04.2008
Сообщений: 57
По умолчанию Глупо

Чувак это у ткбя и есть Рекурсия!!!
Программированине-это не очередная пара, а искуство показать себя!!!
МаксимNEWProgramm вне форума Ответить с цитированием
Старый 04.04.2008, 21:29   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Нет, это не у меня, это в умных книжках пишут. А обращаться к незнакомым людям учитесь сейчас, а то по жизни можете много неприятностей нажить.
puporev вне форума Ответить с цитированием
Старый 07.04.2008, 18:48   #5
Absent
Пользователь
 
Регистрация: 18.11.2007
Сообщений: 67
По умолчанию

у меня задание сделать так, чтобы функция вызывала саму себя, ну чтобы была прямая рекурсия.

Последний раз редактировалось Absent; 07.04.2008 в 18:50.
Absent вне форума Ответить с цитированием
Старый 07.04.2008, 19:55   #6
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Уже не помню метода (деление пополам), но если код рабочий, то вот его рекурсивная запись:

Код:
procedure V (a,b,e:real;var x:real; var n:integer);
var fat,fxs:real;
begin
   if abs(a-b)<=e then exit;
   x:=(a+b)/2;
   n:=n+1;
   fat:=F(a);
   fxs:=F(x);
   if fat*fxs >= 0
   then V(x, b, e, x, n)
   else V(a, x, e, x, n);
end;
{ Обязательно: установка начальных значений до вызова функций }
n := 0;
V(a,b,e,x,n);
alexBlack вне форума Ответить с цитированием
Старый 09.04.2008, 23:41   #7
Absent
Пользователь
 
Регистрация: 18.11.2007
Сообщений: 67
По умолчанию

спасибо больщое!!! ОЧЕНЬ БЛАГОДАРЕН!!
Absent вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу на Turbo Pascal tree Паскаль, Turbo Pascal, PascalABC.NET 6 16.05.2010 23:27
Pascal.Помогите решить задачу на шифрование. newuser Паскаль, Turbo Pascal, PascalABC.NET 7 02.06.2008 15:46
Помогите решить задачу(Pascal) Дима82 Помощь студентам 20 23.05.2008 21:58
Помогите, пожалуйста, решить задачу на Turbo Pascal. Тема: записи. Morrigan13 Помощь студентам 1 28.03.2008 21:09
Помогите решить задачу на pascal Ilya M. Помощь студентам 4 28.10.2007 20:51