Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Fibonacci - Unit1.pas

Unit1.pas

Caricato da: Anonymous
Scarica il programma completo

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, ComCtrls, Grids;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     ListBox1: TListBox;
  12.     Button1: TButton;
  13.     Edit1: TEdit;
  14.     Edit2: TEdit;
  15.     Button2: TButton;
  16.     Label1: TLabel;
  17.     StringGrid1: TStringGrid;
  18.     Edit3: TEdit;
  19.     Button3: TButton;
  20.     Label2: TLabel;
  21.     Edit4: TEdit;
  22.     Label3: TLabel;
  23.     procedure Button1Click(Sender: TObject);
  24.     procedure Button2Click(Sender: TObject);
  25.     procedure Button3Click(Sender: TObject);
  26.   private
  27.     { Private declarations }
  28.   public
  29.     { Public declarations }
  30.   end;
  31.  
  32. var
  33.   Form1: TForm1;
  34.  
  35. implementation
  36.  
  37. {$R *.dfm}
  38.  
  39. procedure TForm1.Button1Click(Sender: TObject);
  40. var d:integer; //dichiara le variabili di tipo integer;
  41.     a,b,c,h,f,g:extended; //dichiara le variabili di tipo extended;
  42. begin
  43.  stringgrid1.colCount:=strtoint(edit1.text);
  44.  listbox1.clear;     //cancella tutto il contenuto del listbox1
  45.  a:=0;    //inizializza la variabile a, impostandogli valore 0
  46.  b:=1;    //inizializza la variabile b, impostandogli valore 1
  47.  listbox1.Items.Add(floattostr(a)); //scrive nella listbox, la prima...
  48.  listbox1.items.add(floattostr(b)); //.. e la seconda cifra della sequenza
  49.  stringgrid1.cells[0,1]:=floattostr(a); //Ora li scrive anche...
  50.  stringgrid1.cells[1,1]:=floattostr(b); // ...nella tabella
  51.  for d:=1 to strtoint(edit1.text)-2 do //inizia qui il ciclo che determina la sequenza
  52.                                     //di fibonacci a seconda del numero immesso
  53.                                     //dall'utente nell'edit1
  54.   begin
  55.    c:=a+b; //trova il successivo numero della sequenza di fibonacci
  56.    listbox1.Items.Add(floattostr(c));//scrive il numero trovato in coda alla lista
  57.    stringgrid1.cells[d+1,1]:=floattostr(c); //qui scrive il numero trovato nella tabella
  58.    stringgrid1.cells[d-1,0]:=floattostr(d); //qui conta i numeri della sequenza
  59.    a:=b; //resetta le variabili sostituendole
  60.    b:=c;  //  con i numeri successivi della sequenza
  61.   end; //finisce il ciclo for to do
  62.   f:=strtofloat(listbox1.Items[strtoint(edit1.text)-1]); //individua il numero della sequenza scelto dall'utente
  63.   g:=strtofloat(listbox1.Items[strtoint(edit1.text)-2]); //individua il numero precedente a quellos celto dall'utente
  64.   h:=f/g;  //trova il numero di fibonacci facendo il rapporto tra i due numeri di prima
  65.   edit2.text:=floattostr(h);   //scrive il riusltato ottenuto nell'edit2
  66. end;
  67.  
  68. procedure TForm1.Button2Click(Sender: TObject);
  69. begin
  70.  halt; //esce dal programma
  71. end;
  72.  
  73. procedure TForm1.Button3Click(Sender: TObject);
  74. var a:integer; //dichiara a come intera
  75. begin
  76.  a:=strtoint(edit3.Text); //impone a come valore del contenuto dell'edit3, necessariamente intero
  77.  if a > listbox1.Count then //se il numero immesso in edit3 (a) è > della somma dei numeri nela sequenza allora...
  78.   showmessage('Il numero inserito è troppo grande, provare con un numero compreso tra 1 e '+inttostr(listbox1.count))//... mostra il messaggio di errore
  79.  else //altrimenti
  80.   begin
  81.    label3.caption:='Il '+inttostr(a)+'° numero della sequenza di Fibonacci è:'; //aggiorna il contenuto della label4 con il valore immesso dall'utente
  82.    listbox1.ItemIndex:=a-1; //individua il numero calcolato nella listbox...
  83.    stringgrid1.col:=a-1; //... e anhce nella stringgrid
  84.    edit4.text:=listbox1.Items[listbox1.itemindex]; // fa vedere nell'edit4, qual'è il numero che corrisonde a quello immesso dall'utente.
  85.   end;
  86. end;
  87.  
  88. end.