Ir ao conteúdo
  • Cadastre-se

Problemas no VisualG


JCVM

Posts recomendados

Bom gente, eu tinha um exercicio que era assim: O usuario fornece um número, e se o número estiver entre 50 e 90, exibir o numero. Senão, mandar o usuario rodar o programa novamente. Não achei muito legal isso e resolvi mandar o usuario de volta para o começo do programa. Só que eu ainda não vi repita/fimrepita direito, teria como algúem apontar o erro aqui? ( O erro acontece com o número sendo válido ou não, ele diz que esperva encontrar então na linha 8. Mas o então tá lá)

var

n:real

inicio

// Seção de Comandos

repita

escreval ("Digite um número entre 50 e 90")

leia (n)

se n>50 (e) n<90 então

escreval (n)

senao

escreval (n," Não é um número válido")

fimrepita

fimse

fimalgoritmo

Ou seja, o que eu quero é que o programa repita apenas se o usuario digitar um numero inválido.

Link para o comentário
Compartilhar em outros sites

Bom gente, eu tinha um exercicio que era assim: O usuario fornece um número, e se o número estiver entre 50 e 90, exibir o numero. Senão, mandar o usuario rodar o programa novamente. Não achei muito legal isso e resolvi mandar o usuario de volta para o começo do programa. Só que eu ainda não vi repita/fimrepita direito, teria como algúem apontar o erro aqui? ( O erro acontece com o número sendo válido ou não, ele diz que esperva encontrar então na linha 8. Mas o então tá lá)

var

n:real

inicio

// Seção de Comandos

repita

escreval ("Digite um número entre 50 e 90")

leia (n)

se n>50 (e) n<90 então

escreval (n)

senao

escreval (n," Não é um número válido")

fimrepita

fimse

fimalgoritmo

Ou seja, o que eu quero é que o programa repita apenas se o usuario digitar um numero inválido.

Bom, prazer, minha primeira postagem no fórum... :D

ok, aqui vai

O comando é repita...ate(DEFINE O QUE VAI REPETIR). voce deverá colocar no final da instrução a condição da parada, senao o programa sequer irá rodar. se nao fosse por isso, ele iria ser executado infinitamente :o

var

n:real

inicio

// Seção de Comandos

repita

escreval ("Digite um número entre 50 e 90")

leia (n)

se ((n>50) e (n<90)) então

escreval (n)

senao

escreval (n," Não é um número válido")

fimse

ate ((n>50) e (n<90))

fimalgoritmo

caso nao goste de declarar o que vai "amarrar" o seu comando, poderá usar o enquanto...fimenquanto, entretanto neste voce irá especificar a condiçao para ele executar no início.

A diferença entre um e outro é que o repita...ate ira funcionar ATÉ que acontece o que voce pediu, já o enquanto funcionará ENQUANTO for diferente do que voce colocou. o mesmo algoritmo usando enquanto seria.

Outra coisa que notei foi que voce colocou um fimse depois do ate, o que geraria um erro. se voce abre um bloco SE dentro de REPITA...ATE é importante que o mesmo seja fechado dentro do bloco.

Qualquer dúvida, não deixe de perguntar

var

n:real

inicio

// Seção de Comandos

ENQUANTO((n<=50) OU (n>=90))

escreval ("Digite um número entre 50 e 90")

leia (n)

se ((n>50) e (n<90)) então

escreval (n)

senao

escreval (n," Não é um número válido")

fimse

FIMENQUANTO

fimalgoritmo

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...