Ir ao conteúdo

Posts recomendados

Postado

 

Oi, pessoal

 

Sou nova na programação, estou fazendo o curso de algoritmo do Gustavo Guanabara e ele pede para fazer um exercício de Contagem Inteligente. Busquei entender com o pessoal aqui, fiz o código, ele até roda, mas não aparece o primeiro número (tipo o 1, se for crescente) e nem o último número se for uma contagem decrescente. Alguém pode me ajudar?

Var
     N1, N2, cont: inteiro
Inicio
    EscrevaL("CONTAGEM INTELIGENTE")
    EscrevaL("---------------------------------------------")

    EscrevaL("Inicio: ")
    Leia (N1)
    EscrevaL("Fim: ")
    Leia (N2) 

    Enquanto (N1 < N2) Faca
                     Se (N1 - < N2) então
                           N1  <- N1 + 1
                           Escreva(N1,  "...")   
                     Fimse
    FimEnquanto

    Enquanto (N1 > N2) Faca
                     Se (N1  > N2) então
                           N1  <- N1 - 1
                           Escreva(N1,  "...")   
                     Fimse
    FimEnquanto 
Fimalgoritmo

 

Capturadetela2024-08-06001651.png.5ca30bf3509d07701b0761875d021a25.png

  • Curtir 1
  • Obrigado 1
Postado

@Jaiane    o primeiro número não aparece por que você colocou para incrementar a variável antes de escrever o seu valor, assim quando escreve já tem uma unidade a mais ,  e igualmente nos decrescentes onde decrementa  a variável antes , e ao escrever o valor dela tem uma unidade a menos . e também ao finalizar o primeiro loop a variável "N1" estará  maior que "N2" e assim vai entrar no segundo loop e escrever o valor de N1 uma vez , e quanto ao último número que também não aparece na listagem , é por que você colocou esse símbolo "<" assim só vai até enquanto for menor que N2 , então use esse símbolo  "<="  ,  e para resolver você poderia fazer assim :

Algoritmo "ContaGem Intelligete"
Var
   N1, N2, cont,aux : inteiro
Inicio
   EscrevaL("CONTAGEM INTELIGENTE")
   EscrevaL("---------------------------------------------")

   EscrevaL("Inicio: ")
   Leia (N1)
   EscrevaL("Fim: ")
   Leia (N2)
   aux <- n1
   Enquanto N1 <= N2 Faca // não precisar desse simbolos "( )"
      // Se (N1 - < N2) então simbolos errados
      se n1 <= n2 então // não use acetuaCAo
         Escreva(N1,"...")
                        // incrementou a variAvel antes de escrever o valor
         N1  <- N1 + 1  // N1 sairAh com vaLor maior que N2
      Fimse
   FimEnquanto
   n1 <- aux    // recuperar o vaLor original de N1
   Enquanto N1 >= N2 Faca // senAo etrarAh nesse Loop tambem
      Se N1  >= N2 então
         Escreva(N1,"...")
         N1  <- N1 - 1
      Fimse
   FimEnquanto
   // no VisualG 3.0   ctrl + g identa o cOdigo automAticamente
Fimalgoritmo

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!