![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.11.2007
Сообщений: 67
|
![]()
Условие: Составить программу для решения уравнения 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. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Приложил маленький файлик по рекурсии, прочитай и поймешь, что твоя программа вполне рекурсивная, т.к. procedure V вызывает внутри себя описанную выше function F. Это называется линейная косвенная рекурсия, в отличие скажем от общеизвестного факториала, где используется прямая циклическая рекурсия.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 04.04.2008
Сообщений: 57
|
![]()
Чувак это у ткбя и есть Рекурсия!!!
![]()
Программированине-это не очередная пара, а искуство показать себя!!!
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Нет, это не у меня, это в умных книжках пишут. А обращаться к незнакомым людям учитесь сейчас, а то по жизни можете много неприятностей нажить.
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 18.11.2007
Сообщений: 67
|
![]()
у меня задание сделать так, чтобы функция вызывала саму себя, ну чтобы была прямая рекурсия.
Последний раз редактировалось Absent; 07.04.2008 в 18:50. |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Уже не помню метода (деление пополам), но если код рабочий, то вот его рекурсивная запись:
Код:
n := 0; V(a,b,e,x,n); |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 18.11.2007
Сообщений: 67
|
![]()
спасибо больщое!!! ОЧЕНЬ БЛАГОДАРЕН!!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите решить задачу на 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 |