function obsah_kruhu_(n)
%obsah_kruhu_(n)
%
% Funkce priblizne vypocte obsah jednotkoveho kruhu pomoci
% obdelnikoveho a lichobeznikoveho pravidla.
%
% Vstupni parametr: n ... pocet dilku deleni intervalu <0,1>

h = 1 / n;     % delka dilku deleni
x = 0 : h : 1; % krajni body dilku

% ------------------------------------------------------------------------
% Aproximace pomoci obdelnikoveho pravidla

c = 0.5 * (x(1:n) + x(2:n+1));  % stredy jednotlivych dilku
f = sqrt(1 - c.^2);             % funkcni hodnoty ve stredech dilku

S = 4 * h * sum(f);  % priblizny obsah jednotkoveho kruhu
err = abs(pi - S);   % absolutni chyba vypoctu

disp(' ')
disp(['Obdelnikove pravidlo, n = ', num2str(n)])
disp('--------------------------------------------------')
disp(['Spocteny obsah jednotkoveho kruhu: ', num2str(S,'%1.12g')])
disp(['Absolutni chyba: ', num2str(err,'%1.6e')])


% ------------------------------------------------------------------------
% Aproximace pomoci lichobeznikoveho pravidla

f = sqrt(1 - x.^2);   % funkcni hodnoty v krajnich bodech dilku

S = 4 * h/2 * ( f(1) + f(n+1) + 2*sum(f(2:n)) );  % priblizny obsah jednotkoveho kruhu
err = abs(pi - S);   % absolutni chyba vypoctu

disp(' ')
disp(['Lichobeznikove pravidlo, n = ', num2str(n)])
disp('--------------------------------------------------')
disp(['Spocteny obsah jednotkoveho kruhu: ', num2str(S,'%1.12g')])
disp(['Absolutni chyba: ', num2str(err,'%1.6e')])

% konec