rendered paste bodyunit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var
n, a1, a2, linenr : int64;
{$R *.dfm}
procedure fibonacci;
begin
Form1.Memo1.Clear;
Form1.Memo1.Lines.Add('0: 1');
Form1.Memo1.Lines.Add(IntToStr(linenr+1)+': 1');
while a2<StrToInt64(Form1.Edit1.Text) do
begin
n:=a1+a2;
a1:=a2;
a2:=n;
Form1.Memo1.Lines.Add(IntToStr(linenr)+': '+IntToStr(a2));
Inc(linenr);
end;
Form1.Memo1.Lines.Delete(Form1.Memo1.Lines.Count - 1);
if linenr>83 then
begin
Form1.Memo1.Lines.Add('');
Form1.Memo1.Lines.Add('Max reached!!!');
end
else
begin
Form1.Memo1.Lines.Add('');
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
fibonacci;
Form1.Button1.Enabled:=False;
Form1.Button2.Enabled:=True;
Form1.Edit1.Enabled:=False;
if StrToInt64(Form1.Edit1.Text)<3 then
begin
Form1.Memo1.Clear;
Form1.Memo1.Lines.Add('Please choose a number higher than 2');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Memo1.Clear;
Form1.Button1.Enabled:=True;
Form1.Button2.Enabled:=False;
Form1.Edit1.Enabled:=True;
Form1.Edit1.SetFocus;
linenr:=0;
n:=0;
a1:=1;
a2:=1;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Edit1.Enabled:=True;
Form1.Button1.Enabled:=True;
Form1.Button2.Enabled:=False;
end;
initialization
linenr:=0;
n:=0;
a1:=1;
a2:=1;
end.