Pour définir cette fonction de façon récursive, on utilise le fait que :
S(n) = S(n - 1) + n
S(0) = 0 pour la condition d'arrêt
Voici le programme complet :
program SommePremiersEntiers ;
var
n:integer;
function somme ( n : integer ) : integer ;
begin
if n = 0 then
somme:= 0
else
somme:= somme (n - 1) + n;
end;
begin
readln(n);
writeln(somme (n));
end ;