• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Steiger!!

duvid

14 mensagens neste tópico

boas

eu tenho uma grande dificuldade em resolver este problema

se me podessem ajudar tlvz kom um prototipo agradecia

o problema:

Sendo h= 1 + ½ + 1/3 + ¼ + ... + 1/N, prepare um algoritmo para calcular o número h, sendo o número N fornecido pelo utilizador.

Fikem bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tão,... vamos lá ver:

Ler n
array[x]=1
Para x=2 to n entao
         array[x]=(1/x)
Seguinte

no fim somar todo o array.

Assim de repente axo que é só isto!

(ps: já agora, evita MESMO usar titulos como esse "duvid", um titulo mais apelativo ajuda)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

deixa ver se entendi

o n é o algoritmo k peço pa k se poxa calcular o h

e depois utilizo algum subprograma tipo funçao pa por h: 1 + 1/2....

ou so faço o array

tentei me explikar melhor k sou um pouco noob nisto:p

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pera ai que eu enganei-me e se calhar por isso é que tás a fazer confuzão:

Ler n

array[1]=1

Para x=2 to n entao

        array[x]=(1/x)

Seguinte

neste caso estou a ignorar a 1ª posição do array que é o array[0] só por uma questão de simplificação.

ou seja, vais carregar no array todos os valores que precisas de somar, e no fim é só correr um ciclo for para somar tudo, vai correndo os campos todos e vai somado cada um ao somatório que vem de traz

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não tenho o pascal para testar isto mas o código não deve fugir muito deste

o n é o valor dado pelo utilizador

c=0

a=1

while a<>n

        b=1/a

        c=c+b 

  wend

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é preciso usar arrays..

Eu sei, mas penso ser a forma talvez não mais simples, mas mais esplicita.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Oi!! tambem nao posso testar mas penso que esta maneiro é a mais simples:

Ler N

H=1

Para x=2 até N entao

    H = H + ( 1 / N )

Seguinte

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

yá,.... sou capaz de ter estado a complicar um bocado...  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmm... uma duvida:

o resultado (h) deve ser apresentado na forma numérica ou fraccional?

Porque se for uma fracção, nenhuma das vossas respostas serve, pois têm de fazer (por exemplo)

1/1 + 1/2 -> achar maximo divisor comum entre 1 e 2, reduzir ao mesmo denominador e somar numeradores, de seguida, simplificar a fracção (mdc entre numerador e denominador, e dividir ambos) e somar com 1/3, repetindo os passos iniciais.

Isto para dar a fraccao final, o resultado correcto.

Se precisares de ajuda posso-t ajudar a fazer o codigo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ler N

H = 0

Faça I de 1 até N

        H = H + 1/I

Seguinte

Simples

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não poderá ser assim?:

program pap;

VAR

   n:real;

BEGIN
   WriteLn('Insira o Valor para N');
   ReadLn(n);
   WriteLn('O Valor d H é:', 1+(1/2)+(1/3)+(1/n));
   ReadLn;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não poderá ser assim?:

program pap;

VAR

  n:real;

BEGIN
  WriteLn('Insira o Valor para N');
  ReadLn(n);
  WriteLn('O Valor d H é:', 1+(1/2)+(1/3)+(1/n));
  ReadLn;

Acho que nao pk as reticências (...) querem dizer que do 1/4 passa para 1/5 e para 1/6, 1/7, 1/8 ... etc ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, este é o meu primeiro post e espero ser o mais correcto possível

Quanto ao problema, estava a pensar em algo do género:

var n,num,h:real;

begin
   WriteLn('Insira o Valor para N');
   ReadLn(num);
   h:=0;
   for n:=num downto 1 do begin
    h:=h+(1/n);
   end;
    write('o valor de h é: ',h);
    ReadLn;
end.

Espero ter ajudado de alguma forma

Cumps,

MAiDEN_DuDE

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora