|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
программа по расчету числа Фибоначчи
Вот такая проблемка возникла. Нужна программа по расчету числа Фибоначчи.
Может кто-нибудь подсказать, в чем тут ошибка? Код:
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; editN: TEdit; Label2: TLabel; Label3: TLabel; editFib: TEdit; Button1: TButton; Label4: TLabel; procedure Button1Click(Sender: TObject); private function Fibona44i (n: byte): double; public end; var Form1: TForm1; implementation function TForm1.Fibona44i(n: byte): double; begin if ((n=1)or(n=2)) then Result := 1 else // двойной рекурсивный вызов: // память расходуется катастрофически Result := Fibona44i(n-1)+Fibona44i(n-2); end; procedure TForm1.Button1Click(Sender: TObject); var n: byte; begin try n := StrToInt(editN.Text); except MessageDlg('От 0 до 255', mtError, [mbOK], 0); end; editFib.Text := FloatToStrF(Fibona44i(n),ffGeneral,6,0); end; end. Последний раз редактировалось Admin, 14.09.2009 в 10:27. |