Ir ao conteúdo
  • Cadastre-se
kevin066

VisualG Me descompliquem nesse exercício de programação

Posts recomendados

Galera, sou iniciante na parte de programação e to com varias duvidas nas resoluções de exercícios, nem mesmo os esboços que tento fazer estão dando certo. A questão é a seguinte:

 

Elabore um algoritmo em que o usuário digita um número positivo entre 0 e 1000 e o programa informa se o número é múltiplo de 2, 3, 5 e 7.

 

Agradeço se alguém puder ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o esboço desse certo ele não seria esboço, seria a resolução 😅

Seu problema é com a lógica ou a linguagem? Pra saber se o número é múltiplo, você tem que testar o resto da divisão. Se o resto é zero, é múltiplo, caso contrário não é.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples meu parceiro você só precisa utilizar a função MOD que é simplesmente a função de resto segue abaixo um esboço de parte do codigo como ficaria

 

obs. essa é somente uma logica pra você entender, para aprender de verdade é legal aprimorar este código utilizando outras funçoes.

enquanto variavel1 < 1000 faca

se variavel1 MOD 2 = 0 entao

             se variavel1 MOD 3 = 0 entao

                        se variavel1 MOD 5 =0 entao

                                     se variavel1 MOD 7 = 0 entao

                                                 escreval (" o numero", variavel1 " e divisível por 2 3 5 e 7") 

                                    fimse

                        fimse

               fimse

fimse

variavel1 <- variavel1 + 1

fimenquanto


 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, kevin066 disse:

Elabore um algoritmo em que o usuário digita um número positivo entre 0 e 1000 e o programa informa se o número é múltiplo de 2, 3, 5 e 7.

 

O enunciado já começa com um dilema: é para utilizar somente números positivos ou é para utilizar o 0 também?

 

No caso aí, ou tira o 0 ou chama de algo como "números inteiros não negativos". 🤓

 

@kevin066, já conseguiu resolver o problema? por favor poste o código completo, e caso tenha dúvidas, informar qual.


Obs.: o algoritmo do @Gustavo L1m4 é apenas uma base. O teu problema é um pouco diferente.
 

No aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, Simon Viegas disse:

 

O enunciado já começa com um dilema: é para utilizar somente números positivos ou é para utilizar o 0 também?

 

No caso aí, ou tira o 0 ou chama de algo como "números inteiros não negativos". 🤓

 

@kevin066, já conseguiu resolver o problema? por favor poste o código completo, e caso tenha dúvidas, informar qual.


Obs.: o algoritmo do @Gustavo L1m4 é apenas uma base. O teu problema é um pouco diferente.
 

No aguardo.

Caso seja para todos os números creio eu que funcionaria muito bem, percebeu algum problema no meu código ?

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
14 horas atrás, Gustavo L1m4 disse:

Caso seja para todos os números creio eu que funcionaria muito bem

 

Este é um dos pontos chaves, rs.

 

14 horas atrás, Gustavo L1m4 disse:

percebeu algum problema no meu código ?

 

A base da lógica me pareceu boa, apenas alguns detalhes:

  1. faltou inicializar¹ a variável variavel1 com 0 (apesar de 0 NÃO ser positivo);
  2. se é de "0 a 1000", teria que ser "<=1000";
  3. no Portugol é* de boa colocar acentos. E faltou alguns ",". Ex.:
    escreval ("O número ", variavel1:1, " é divisível por 2, 3, 5 e 7")
  4. suponho que teu código foi apenas um esboço. Mas para um código mais específico, recomendam-se uso de nomenclaturas de variáveis mais sugestíveis. Eu, por exemplo, usaria numero.
  5. um outro ponto seria em relação a indentação. O primeiro se teria que ficar um dente para frente. No meu padrão ficaria algo assim:
    numero <- 0
    enquanto numero <= 1000 faca
       se numero MOD 2 = 0 entao
          se numero MOD 3 = 0 entao
             se numero MOD 5 = 0 entao
                se numero MOD 7 = 0 entao
                   escreval ("O número ", numero:1, " é divisível por 2, 3, 5 e 7")
                fimSe
             fimSe
          fimSe
       fimSe
       numero <- numero + 1
    fimEnquanto
  6. como é um loop de quantidade pré-determinadas, poderia utilizar o para/faca. Segue um código me VisualG para servir como referência:
    algoritmo "FCdH"
    var
      numero : inteiro
    inicio
    numero <- 0
    para numero de 0 ate 1000 faca
       se numero MOD 2 = 0 entao
          se numero MOD 3 = 0 entao
             se numero MOD 5 =0 entao
                se numero MOD 7 = 0 entao
                   escreval ("O número ", numero:1, " é divisível por 2, 3, 5 e 7")
                fimSe
             fimSe
          fimSe
       fimSe
    fimPara
    fimAlgoritmo
    Resultado:
    tela.png

 

 

 

@kevin066, inclusive, este valores obtidos em [5] já poderiam servir como referência para efetuar os testes no teu código (que é DIFERENTE deste acima).

 

¹ No VisualG, por exemplo, as variáveis globais são inicializadas automaticamente, mas (se não me engano) variáveis locais não são, daí pode dar problemas. De um modo geral, é bom inicializar.

 

adicionado 13 minutos depois

ADENDO:

3 horas atrás, Simon Viegas disse:

2. se é de "0 a 1000", teria que ser "<=1000";

 

 

Este é um ponto interessante. Mesmo utilizando "<" o resultado seria o mesmo, entretanto a lógica estaria imprecisa (para não dizer incorreta).

 

O que está implícito no enunciado é "meio" de achar a resposta, não a resposta em si. Vejam por exemplo o código abaixo:

algoritmo "FCdH"
inicio
escreval("O número 0 é divisível por 2, 3, 5 e 7")
escreval("O número 210 é divisível por 2, 3, 5 e 7")
escreval("O número 420 é divisível por 2, 3, 5 e 7")
escreval("O número 630 é divisível por 2, 3, 5 e 7")
escreval("O número 840 é divisível por 2, 3, 5 e 7")
fimAlgoritmo

Percebam que ele É uma solução para o problema de verificar, ou melhor, mostrar " todos os números" que se enquadram na condição. Mas, como sugerido, é implícito que estão se buscando um "meio técnico" de como se chegar a uma resposta adequada, e não somente entregar o resultado em si.

 

Obs.: esta mesma lógica do código acima poderia ser aplicada para um número específico, bastaria utilizar uns se/entao/senao ou um escolha/caso, mas obviamente cairia neste mesmo problema citado acima.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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...

Eletrônica

PROMOÇÃO DE QUARENTENA

Aproveite o isolamento social para aprender eletrônica!
De R$ 39,90 por apenas R$ 19,90
Só até as 23h59min desta sexta-feira 10/04/2020

CLIQUE AQUI E COMPRE AGORA MESMO!