Ir ao conteúdo
  • Cadastre-se

VisualG Contagem inteligente de um número


Ir à solução Resolvido por devair1010,

Posts recomendados

Boa tarde,

 

Estou tentando fazer uma contagem inteligente de um número. Está apresentando erro no inicio do laço enquanto, alguém poderia me ajudar por favor: 

 

Algoritmo "Contagem Inteligente"
// Disciplina   : [Linguagem e Lógica de Programação]
// Autor(a)    : Felipe Fernandes dos Santos Nunes
// Data atual  : 26/05/2021
Var // Seção de Declarações das variáveis
 S, cont1,cont: inteiro
Inicio // Seção de Comandos, procedimento, funções, operadores, etc...

   S <- 1
   cont <- 0
   
   enquanto(S >= 0) faça     //inicio do laço enquanto

   escreval("Informe o valor do numero: ")
   leia(cont1)
   
      se (cont1 <= 0) faça    //estrutura lógica se dentro do enquanto
         S <- cont1 + 1
      senao
         S <- cont1 - 1
      fimse
   fimenquanto       //fimenquanto
   
   escreval("A contagem inteligente é: ", S)// layout para o usuário
Fimalgoritmo

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Felipe_Fernandes, faca não tem o "cedinha". E o se usa entao (sem o ~).

 

Simplificando teu código, seria algo como:
 

algoritmo "Contagem Inteligente"
// Disciplina: [Linguagem e Lógica de Programação]
// Autor(a)  : Felipe Fernandes dos Santos Nunes
// Data atual: 26/05/2021
var
   S, cont1, cont: inteiro
inicio

   S <- 1
   cont <- 0

   enquanto (S >= 0) faca
      escreval("Informe o valor do numero: ")
      leia(cont1)

      se (cont1 <= 0) entao
         S <- cont1 + 1
      senao
         S <- cont1 - 1
      fimSe
   fimEnquanto

   escreval("A contagem inteligente é: ", S)
fimAlgoritmo

 

Obs.: só refinei a sintaxe do código atual.. não mexi na lógica.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Simon Viegas O algoritmo afirma que não há explicação disponível para o enquanto.

Var // Seção de Declarações das variáveis
 S, cont1,cont: inteiro
Inicio // Seção de Comandos, procedimento, funções, operadores, etc...

   S <- 1
   cont1 <- 0

   enquanto(cont1 <= 5) faca   //inicio do laço enquanto

   escreval("Informe o valor do numero: ")
   leia(cont1)
   
      se (cont1 <= 0) entao //estrutura lógica se dentro do enquanto
         S <- cont1 + 1
      senao
         S <- cont1 - 1
      fimse
      
   fimenquanto       //fimenquanto
   
   escreval("A contagem inteligente é: ", S)// layout para o usuário
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Solução

@Felipe_Fernandes   sim , o VisualG 3.0 não sabe explicar o que aconteceu , mas ele sabe que tem hum erro ali naquela linha  ,  aí o usuário é que precisa observar o que está errado , e nesse caso é porque você colocou parênteses que nem precisa perder tempo com eles , junto a palavra enquanto , e precisa deixar um espaço em branco entre as palavras , além do que o @Simon Viegas  já disse sobre os companheiros de cada comando , assim o "enquanto" vai bem com o "faca" e o "fimenquanto" , e o "se" vai bem o "entao" e o "fimse" ,  se Quiser / puder , veja sobre esses e outros comando nesse site 

http://www.inf.ufsc.br/~bosco.sobral/ensino/ine5201/Visualg2_manual.pdf

assim no seu primeiro código depois de ajeitar ele para compilar e rodar você verá que ele vai ficar em um Loop etheRnO 

Algoritmo "Contagem Inteligente"
// Autor(a)     : Felipe Fernandes dos Santos Nunes
// Data atual   : 26/05/2021
Var
  S, cont1,cont : inteiro
Inicio
  S <- 1
  cont <- 0
  enquanto S >= 0 faca     //inicio do laço enquanto precisa um espaço em branco entre as palavras
    escreval("Informe o valor do numero: ")
    leia(cont1)
    se cont1 <= 0 entao    //estrutura lógica se dentro do enquanto
      S <- cont1 + 1
    senao
      S <- cont1 - 1
    fimse
    escreval("val s= ",s)// aqui só para ver A SaiDa
  fimenquanto            // você tem aqui um Loop ethernO
                         // pois do jeito que está nunquinha
                         // que vai sair desse Loop
  escreval("A contagem inteligente é: ", S)// layout para o usuário
                         // e nunca vai chegar nessa Linha
Fimalgoritmo

e o erro permaneceu no segundo código , mas esse vai funcionar bem 

Algoritmo "contagem inteligente_2"
Var
  S, cont1,cont: inteiro
Inicio
  S <- 1
  cont1 <- 0  // não precisa perder Tempo digitando esses parenteses
  // enquanto( cont1 <= 5 ) faca  veja que esta tudo junto , não pode !
  enquanto cont1 <= 5  faca   //inicio do laço enquanto
    escreval("Informe o valor do numero: ")
    leia(cont1)
    se (cont1 <= 0) entao        //estrutura lógica se dentro do enquanto
      S <- cont1 + 1
    senao
      S <- cont1 - 1
    fimse
    escreval("val s= ",s)        // apenas para ver a saíDa
    escreval("val cont1= ",cont1)// apenas para ver a saíDa
  fimenquanto                    // fimenquanto  para quê essa informação ??? !
  escreval("A contagem inteligente é: ", S)// layout para o usuário
Fimalgoritmo

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
52 minutos atrás, Felipe_Fernandes disse:

@devair1010

@Simon Viegas

 

Obrigado!

 

Essa atuação só corrige o problema de sintaxe... precisa ainda verificar a questão da lógica.

 

O que seria

Em 26/05/2021 às 14:38, Felipe_Fernandes disse:

contagem inteligente

?

 

O programa já está funcionando como deveria? (Em relação aos resultados.)

 

Link para o comentário
Compartilhar em outros sites

@Simon ViegasA contagem inteligente seria uma contagem de números de 1 até 5 onde mostraria na tela os valores 1 - 2 - 3 - 4 - 5. Caso o usuário colocasse o valor 5 por exemplo, o programa automaticamente faria a contagem regressiva 5 - 4 - 3 - 2 - 1. Quanto aos resultados o programa ainda não está funcionando corretamente, pois ao mostrar os valores para o usuário o programa não retorna na tela os valores esperados e também o valor da variável  S e também do contador cont1:

 

Algoritmo "Contagem Inteligente"
// Disciplina   : [Linguagem e Lógica de Programação]
// Autor(a)    : Felipe Fernandes dos Santos Nunes
// Data atual  : 26/05/2021
Var // Seção de Declarações das variáveis
 S, cont1,cont: inteiro
Inicio // Seção de Comandos, procedimento, funções, operadores, etc...

   S <- 1
   cont1 <- 0

   enquanto cont1 <= 5 faca   //inicio do laço enquanto

   escreval("Informe o valor do numero")
   leia(cont1)
   
      se (cont1 <= 0) entao //estrutura lógica se dentro do enquanto
         S <- cont1 + 1
      senao
         S <- cont1 - 1
      fimse
   escreval("Valor de S: ", s)
   escreval("valor do contador:  ",cont1)
   fimenquanto
   
   escreval("A contagem inteligente é: ", S)// layout para o usuário
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
21 horas atrás, Felipe_Fernandes disse:

@Simon ViegasA contagem inteligente seria uma contagem de números de 1 até 5 onde mostraria na tela os valores 1 - 2 - 3 - 4 - 5. Caso o usuário colocasse o valor 5 por exemplo, o programa automaticamente faria a contagem regressiva 5 - 4 - 3 - 2 - 1. Quanto aos resultados o programa ainda não está funcionando corretamente, pois ao mostrar os valores para o usuário o programa não retorna na tela os valores esperados e também o valor da variável  S e também do contador cont1:

 

Seria bom postar o enunciado original completo... Para implementar uma solução, precisaria entender bem qual seria o problema..

 

Mas de um modo resumido... talvez meio que, primeiro lê o número, verifica qual "categoria" ele se encaixa e faz o que deveria fazer para a categoria identificada... algo como:

 

- leia o num;

- se num maior ou igual a 1 e menor ou igual a 4, então gere uma lista de 1 até num;

- senão, se num igual a 5, então gere uma lista de num até 1 (passo -1);

- senão, exibir uma mensagem de número inválido (ou algo do tipo).

 

 

Tente sempre começar do mais simples pro mais complexo... não precisa, e nem deveria, tentar fazer tudo de uma vez.

 

Por exemplo:

algoritmo "Contagem Inteligente"
// Disciplina: [Linguagem e Lógica de Programação]
// Autor(a)  : Felipe Fernandes dos Santos Nunes
// Data atual: 26/05/2021
var
   cont, num: inteiro
inicio
   escreval("Informe o valor do numero")
   leia(num)

   se (num >= 1) e (num <= 4) entao
      //aqui faz escrever na tela a lista de 1 até num (seguindo o enunciado)
   fimSe



fimAlgoritmo

 

Faça imprimir simplesmente de 1 a num. Esqueça que existe outra coisa... vá testando até ficar mais ou menos bom... após, inserir mais alguma coisa, como a questão da impressão de "5 a 1"... por aí vai.

 

Remundindo:

- dê continuidade ao código acima implementando a impressão da lista;

- poste o enunciado completo;

- poste a finalização dessa etapa;

 

Caso tenha dúvidas, é só perguntar. Só após ter finalizado e postado aqui no fórum essa etapa, tenta fazer uma próxima.. (Após postar, já pode tentar ir fazendo mais alguma coisa, se terminar antes de alguém responder, você responde por baixo...)

 

No aguardo.

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!