{Elabore um algoritmo que o usuário forneça um número inteiro positivo N e,
atravês da função FORMULA(N), retorne o valor H, conforme abaixo:
H = 1 + 1/2 + 3 + 1/4+...+(N + 1/N)}
Program Pzim ;
var
n:integer;
h:real;
function formula(x:integer):real;
var
soma1,soma2:real;
i:integer;
begin
for i:=1 to x do
begin {se i mod 2 for diferente de zero - IMPAR}
if (i mod 2 <> 0) then
begin
soma1:=(soma1+i);
end
else
if (i mod 2 = 0 ) then {se i mod 2 for igual a zero - PAR}
begin
soma2:=(soma2+(1/i));
end;
end;
formula:=(soma1+soma2); {soma os dois valores}
end;
Begin
writeln('Digite um número : ');
readln(n);
if (n>0) then {condiciona a função se n maior que zero}
begin
h:=formula(n); {chama a função}
writeln('A soma é igual a : ',h:1:2); {mostra o resultado}
end
else {se não for, mostra a mensagem}
writeln('Digite um número maior que zero');
End.