13.01.2013 Views

La Sezione Aurea

La Sezione Aurea

La Sezione Aurea

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Algoritmi per il calcolo di phi<br />

Di seguito è illustrato un programma in linguaggio Pascal che permette di calcolare un valore<br />

approssimato di φ tramite 3 differenti algoritmi, che derivano da considerazioni sulle caratteristiche<br />

del rapporto aureo appena descritte. Il programma dà un’approssimazione di φ tramite il metodo di<br />

derivazione da funzione continua, il metodo di derivazione da radici nidificate o tramite il calcolo<br />

dei rapporti tra elementi contigui della sequenza di Fibonacci.<br />

program sezione_aurea;<br />

uses crt;<br />

var scelta:char;<br />

i,n:integer;<br />

uscita:string[5];<br />

Dopo aver assegnato un nome al programma viene caricata la libreria necessaria. Sono dichiarate un<br />

totale di 4 variabili: la variabile scelta, necessaria per l’opzione di quale algoritmo utilizzare; le<br />

variabili globali di tipo intero i ed n dichiarate per gli ordinamenti e per i cicli; e infine la variabile<br />

uscita che permette la ripetizione a piacere dell’intero programma.<br />

(*procedure richiamate nel main program*)<br />

(*frazione continua*)<br />

procedure frazione(n:integer);<br />

var phi:real;<br />

begin<br />

phi:=1;<br />

for i:=1 to n do<br />

begin<br />

phi:=1+1/phi;<br />

writeln(phi:0:15);<br />

end;<br />

writeln;<br />

textcolor(12);<br />

writeln('phi~= ',phi:0:15);<br />

end;<br />

Vengono quindi espresse tre procedure, ciascuna contenente un algoritmo per l’approssimazione di<br />

φ, che verranno poi richiamate nel programma principale. <strong>La</strong> prima di queste procedure, frazione, è<br />

quella che calcola il valore del rapporto aureo tramite la funzione continua<br />

1<br />

1+<br />

1<br />

1+<br />

1<br />

1+<br />

1<br />

1+<br />

1+<br />

...<br />

Dichiarata la variabile locale phi, le viene assegnato il valore di innesco 1. Il ciclo for…to…do si<br />

ripeterà n volte (variabile passata per valore) tante quante saranno scelte nel main program (vedi più<br />

avanti); maggiore sarà n migliore sarà l’approssimazione di phi.<br />

(*radici nidificate*)<br />

procedure radici(n:integer);<br />

var phi:real;<br />

begin<br />

phi:=0;<br />

for i:=1 to n do<br />

begin<br />

phi:=sqrt(1+phi);<br />

writeln(phi:0:15);<br />

19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!