Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TCHE

[Resolvido] algoritmo encontrar o valor de s

Recommended Posts

no que q muda nesse algoritmo pra passar pro visualg

aida esta dando erro

essa letra k q surjinho ai tenho q criar uma variavel

Compartilhar este post


Link para o post
Compartilhar em outros sites

nba parte de transcrever ele para isso que você quer ,não vou poder te ajudar pq nunk usai isso...mas quanto a

 

essa letra k q surgindo ai tenho q criar uma variável

hehehe.. você tem sim... é que eu fiz as praças e esqueci de declarar! ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

se for incremento de 1 em 1 o 'passo 1' é implícito ow seja naum precisa escrever 'passo 1' ow incrementar o a variavel dentro do laço!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim quitz, mas no visualG não existe isso de ir incrementando o loop tem que ser de outra forma, como o Korosi mostrou...

Compartilhar este post


Link para o post
Compartilhar em outros sites

gente!!! dem uma olhadinha no meu e mi digam onde estou errando como faço corrigilo

var
n, i, k : inteiro
s : real
Inicio
Escreva("Digite o valor de n: ")
Leia (n)
para i de 1 ate n faca
   para k de 0 ate n faca
	  s :=i/n-k
   fimpara
fimpara
Escreva ("a Soma é ",S)
Fimalgoritmo
n = 4 deu outro valor e ñ

S=6.42

 

mas nesse laço ele já ñ esta sendo incrementado

quando excelta de um valor incial ate o valor final

ñ precisando da linha

i:= i + 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo.. o k não vai até n .. ele vai até n-1 . pq se fosse até n ele zeraria o denominador da ultima fração .

 

 

ficaria 4/4-4 o mesmo que 4/0. o que não existe matematicamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é eu percebi isto e corrigir

mas quando eu atribui 4 a n

o resultado final esta sendo -2 ainda tem algu muito errado ai onde ainda ñ encontrei

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pela dica...nao sabia q incrementava sozinho...

 

é eu percebi isto e corrigir

mas quando eu atribui 4 a n

o resultado final esta sendo -2 ainda tem algu muito errado ai onde ainda ñ encontrei

Nao seria aqui?

s :=i/n-k

 

Eu colocaria

s :=s+(i/(n-k))

 

Pois o valor de S muda a cada "rodada", entao ele pegaria o valor anterior e somaria ao novo valor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Korosi eu coloquei como você citou mesmo assim ñ esta dando o resultado correto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Korosi eu coloquei como você citou mesmo assim ñ esta dando o resultado correto

Acho q já sei o q é..."i" e "k" estão declaradas como inteiro, deveriam estar como real; ve se é isso mesmo!

 

Se nao for, tenta usar esse código. Em C tá rodando certinho, tentei passar pra Portugol (só tentei...HaUHuAhUa)

CODE
VAR

Real: i=0, j=0, s=0, n;

Inicio

Escreva("Entre com N: ");

Leia(n);

 

j=n;

s=1/n;

 

Para i=2 até n de 1 em 1

Faça

j=j-1;

s=s+(i/j);

Fim Para

 

Escreva("O valor de S é:",s)

Fim

Desconsidere alguns erros por falta de "prática"...hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites
para k de 0 ate n faca

 

Se você está usando pascal dá pra fazer FOR k:=N DOWNTO 1

 

Mas mesmo assim esse pedaco ta errado:

 

para i de 1 ate n faca
  para k de 0 ate n faca
  s :=i/n-k
  fimpara
fimpara

 

Se n=3:

 

S = 1/1 + 1/2 +1/3 + 2/1+2/2+2/3 + 3/1+3/2+3/3...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal gostaria q você observaçem e indicassem qual é a diferença do primeiro algoritmo pro seguinto, uma vez q eu acho qi esta a mesma coisa so q o resultado final ñ esta batendo com o teste de mesa q foi feito

 

só uma coisa q eu tive q declarar o n como inteiro, pq como real no laço ñ execulta isto no visualig, fora esse detalhe ñ veje difetença

agora vem a pergunta

pq? o resultado final esta dando diferente

 

Var

Real N,S,aux1,aux2;

Inteiro i;

Inicio

Escreva( Digite o valor de n);

Leia (n);

	  Para (i=1, i<=N, i++) Faça
					para (k=0,k<N,k++) faça

			S=i/N-k;

Escreva ( a Soma é ,S);

Fim;

var
n, i, k : inteiro
s : real
Inicio
Escreva("Digite o valor de n: ")
Leia (n)
para i de 1 ate n faca
   para k de 0 ate n -1 faca
	  s :=i/n-k
   fimpara
fimpara
Escreva ("a Soma é ",S)
Fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dois sao a mesma coisa.

e pq o resultado ñ bate com o dele

 

quando eu atribui 4 a n o resultado final é -2

e ñ 6,42 apresentando no teste de mesa

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dois sao a mesma coisa.

e pq o resultado ñ bate com o dele

 

quando eu atribui 4 a n o resultado final é -2

e ñ 6,42 apresentando no teste de mesa

 

São mais iguais q gêmeos...hahaha

 

Mas estão errados...veja bem:

 

CODE
Para (i=1, i<=N, i++) Faça

para (k=0,k<N,k++) faça

 

S=i/N-k;

Um laço está dentro do outro, ou seja: chega no primeiro laço, entra no segundo, roda ele, e depois volta pro primeiro...

Quer dizer que o primeiro laço está funcionando de contador pro segundo laço, entendeu? Ele vai rodar o segundo laço 4 vezes (no caso de N=4)!!

Ai que está: aninhar dois laços...por isso q no meu algoritmo só tenho um laço, e um decremento dentro deste laço!

 

E a formula está errada tmbm...pq ele vai fica trocando o valor de 'S' a cada execução. Por isso se coloca s=s+..., 's' é o valor antigo de 's', mais o valor que está sendo calculado. E tmbm é preciso colocar parenteses onde se deve calcular antes. No casa ficaria 's=s+(i/(n-k)'.

 

Veja uma comparação, rodando em C (mandando imprimir o valor de i e de k a cada 'rodada'):

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Korosi eu entendi era pra eu ja ter feito esse algoritmo no exemplo que você deu "do Postado 25/04/2008 - 17:48" pesso desculpas mas ñ tinha prestado a tenção no seu algoritmo

ele esta realmente correto o valor da 6.41666666666667

eu me empolgeu nos outros algoritmo e pensei o q seu estava do mesmo jeito voltei le seu ultimo post e resouvi ler o q estava a cima e vi q estava diferente

um abraço muito obrigado, obrigado a todos

 

var
n, i, k: inteiro
s: real
Inicio
Escreva("Digite o valor de n: ")
Leia (n)
k:= n
s := 1/n
para i de 2 ate n faca
   k := k - 1
   s := s + (i/k)
fimpara
Escreva ("a Soma é ",S)
Fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.