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

André Sousa

Repetição controlada à entrada!

4 mensagens neste tópico

Boas, tenho umas duvidas a respeito deste algoritmo:

Determinar a média de uma sequência de números terminado por "sentinela" (zero)!

ED:

REAL nota, soma, média

INT contador

INICIO

   contador <-- 0

   soma <-- 0

   ler(nota)

enquanto (nota <> sentinela) Fazer

   contador <-- contador + 1

   soma <--- soma + nota

   ler (nota)

fimenquanto

se(contador <> 0) então

media <-- soma/contador

escrever(media)

Fim

Vamos lá ver se estou correcto quanto ao que é pedido. Portanto, eu criei uma variável nota que guarda uma tal sequência de números. A var soma, guarda o resultado entre a soma da sequência dos números e a média vai ser essa soma a dividir por um contador dos números. Para tal iniciei esse contador, atribuindo-lhe 0 e da mesma forma, atribui 0 à soma e de seguida o computador lê essa sequência(nota). Depois utilizei um ciclo de repetição. Enquanto não aparecer o numero 0(sentinela) na sequência, o contador assume a função de contar cada numero(+1) da sequência e é feita a soma de todos os números da sequência. De imediato, se o contador for diferente de 0, entao a media é a soma a dividar pelo contador e escreve-se o resultado final. O que desejo saber, é se concordam comigo, no que diz respeito ao significado deste algoritmo :confused:

Cumprimentos!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desde que o escrever(media) também esteja dentro do if parece-me bem, se estiver fora estás a escrever um valor que nunca definiste (a média nunca é definida antes).

Sendo a repetição controlada à entrada, este é o método mais simples de achar a média.

Se a pudesses controlar à saída a história já era outra..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tá tudo bem ... mas

eu criei uma variável nota que guarda uma tal sequência de números

A variável nota guarda a última nota lida pelo computador.

Depois de leres a segunda nota, nunca mais o teu programa pode saber qual foi a primeira nota. O que não tem problema nenhum, antes pelo contrário, mas a descrição que fizeste não corresponde ao código.

A var soma, guarda o resultado entre a soma da sequência dos números

Eu diria de outra forma: A variável soma guarda a soma parcial das notas lidas.

A maneira que usaste para descrever a função da variável soma é muito vaga e sujeita a interpretações diversas.

[...]

Como disse ao princípio, tudo bem, concordo com o significado do algoritmo e tanto a descrição dele em português como em pseudo-código explica bem o que faz e como o faz.

Mas quanto mais concreto e específico (picuínhas) fores, melhor :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não vejo mal nenhum em ires fazendo rewrite à variável nota, aliás, não vejo nada menos correcto no teu código.

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