function archimod( kmax )
% soluzione esercizio proposto
%
%   approssimazione di pi greco con simulazione dell'algoritmo archimedeo 
%
% 1. stampa a schermo una tabellache riporta su 4 colonne:
%   n = 2^k     
%   p(n) = n * sin( pi/n )  
%   Ea = | p(n) - pi |
%   Er = Ea/pi
%
% 2. salva la tabella in un file di testo (ascii)
%   usando il comando SAVE
%
% 3. crea un grafico di Er in funzione di n
%

clc
rigasep='-----------------------------------------------';
disp(rigasep)
fprintf(' n\t p(n)\tEass\t\t Erel\n');
disp(rigasep)

% inizializzo la matrice M e i vettori x,y 
M= [];
x =[];
y =[];

for k=2:kmax
   n=2^k;
   p=n*sin(pi/n);
   Ea=abs(pi-p);
   Er = Ea/pi;
   fprintf('%2d\t %5.4f\t %5.4e\t%3.2e\n',n, p, Ea, Er);
   
   % creo la riga corrispondente della matrice
   M = [ M; n, p, Ea, Er ];
   
   % aggiungo gli elementi che servono nei vettori x,y per il grafico
   x = [ x, n ];
   y = [ y, Er];
   
end

save architab.txt M -ascii

figure(kmax)
clf
hold on
plot(x,y, '*r')
plot(x,y, 'k-')
xlabel('\itn','FontSize',18)
ylabel('\itE_r','rotation',0,'FontSize',18)
title('Errore relativo nel calcolo di pi greco in funzione di n')
