quarta-feira, 15 de junho de 2011

Exercicio com função - soma

{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.