function y = elementSerie(calcul,n)
// Catalogue d'éléments de série

	select calcul
	
	case 0 // Série 1/n^3
		if (n == 0) then
			y = 0;
		else
			y = 1/(n^3);
		end
	
	case 1 // exp(1.31)
		y = (1.31^n) / prod(1:n);
		
	case 2 // sin(0.235711)
		y = ((-1)^n * (0.235711^(2*n+1))) / prod(1:2*n+1);
		
	case 3 // ln(1.347)
		if (n == 0) then
			y = 0;
		else
			y = ((-1)^(n-1)) * ((0.347^n)/n);
		end
		
	case 4 // 1.19^1/3
		if (n == 0) then
			y = 1;
		else
			bin = prod((1/3):(-1):(1/3-n+1));
			y = (bin/prod(1:n)) * (0.19^n);
		end
		
	case 5 // 1.5^1.6
		if (n == 0) then
			y = 1;
		else
			bin = prod(1.6:-1:1.6-n+1);
			y = (bin/prod(1:n)) * (0.5^n);
		end
	end
	
endfunction

function s = sommePartielle(calcul,N)
// Calcule la somme partielle de 0 jusqu'à N d'un elementSerie

	s = 0;
	for i = 0:1:N
		s = s + elementSerie(calcul,i);
	end
endfunction

function res = sommeTotale(calcul,N,prec)
// Calcule une somme totale (définie avec elementSerie) selon une précision prec

	if (abs(elementSerie(calcul,N+1)) < prec)
		res = sommePartielle(calcul,N);
	else
		res = sommeTotale(calcul,N+1,prec);
	end
endfunction

function y = calcul1(prec)
// Calcul : exp(1.31)
// Résultat escompté : 3.7061737 
// précision 0.1 => y = 3.6654401
// précision 0.01 => y = 3.6975897
// précision 0.001 => y = 3.7059226
// précision 0.0001 => y = 3.7061378

	y = sommeTotale(1,0,prec);
endfunction

function y = calcul2(prec)
// Calcul : sin(0.235711)
// Résultat escompté : 0.2335344
// précision 0.1 => y = 0.235711
// précision 0.01 => y = 0.235711
// précision 0.001 => y = 0.2335283
// précision 0.0001 => y = 0.2335283

	y = sommeTotale(2,0,prec);
endfunction

function y = calcul3(prec);
// Calcul : ln(1.347)
// Résultat escompté : 0.2978799
// précision 0.1 => y = 0.347
// précision 0.01 => y = 0.3007228
// précision 0.001 => y = 0.2981044
// précision 0.0001 => y = 0.2978135

	y = sommeTotale(3,0,prec);
endfunction

function y = calcul4(prec)
// Calcul : 1.19^(1/3)
// Résultat escompté : 1.0596985
// Précision 0.1 : y = 1
// Précision 0.01 : y = 1.0633333
// Précision 0.001 : y = 1.0593222
// Précision 0.0001 : y = 1.0597456

	y = sommeTotale(4,0,prec);
endfunction

function y = calcul5(prec)
// Calcul : 1.5^1.6
// Résultat escompté : y = 1.9131368
// Précision 0.1 : y = 1.92
// Précision 0.01 : y = 1.92
// Précision 0.001 : y = 1.9134
// Précision 0.0001 : y = 1.913064

	y = sommeTotale(5,0,prec);
endfunction
