function ssum = expSeriesPlot(x,tol)
% Suma de n términos de la serie exp**x
% Datos:  x   = exponente del número e
%         tol = (opcional) tolerancia de la suma.
%               Por defecto: tol = 5e-9
%               La suma termina cuando T_k/S_k < tol, donde T_k es el
%               término k-esimo y S_k la suma acumulada (con ese término).
%
 if nargin < 2, tol=5e-9; end
 term = 1; ssum = term; Eabs(1)=abs(ssum-exp(x)); k=1;            % Inicializar
 fprintf('Aproximación en serie de exp(%f)\n\n',x);
 fprintf('  k    término k         suma      Error abs. serie\n');
 fprintf('%3d  %11.3e  %11.3e  %16.3e\n',1,x,ssum,Eabs(1));
%
 while abs(term/ssum)>tol
    k=k+1;
    term = term*x/(k-1);                        % Siguiente término de la serie
    ssum = ssum + term;
    Eabs(k) = abs(ssum-exp(x));
    fprintf('%3d  %11.3e  %11.3e  %16.3e\n',k,term,ssum,Eabs(k));
 end
%
 semilogy(1:k,Eabs,'-');
 xlabel('Número de términos');   ylabel('Error absoluto');
 fprintf('\nError de truncamiento después de %d términos: %11.3e\n\n',k,Eabs(k));
end
