Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Mariana Oliveira

Algoritmo Visualg dúvida

Recommended Posts

Olá pessoal,

tenho este exercício para resolver no visualg usando estrutura de repetição, mas nao consigo fazer pois não sei como faço para informar se o número lido contem o dígito 2 e/ou 7, acredito que alguem aqui possa me ajudar

Obrigada.

leia um número entre 100 e 999 (validar para aceitar apenas valores nesse intervalo) e informar se o número lido contém os dígitos 2 e/ou 7.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá moça. Perceba que pra facilitar, seu professor disse que os numeros terão sempre 3 digitos.

Vou explicar com exemplos (o código fica por sua conta):

Imagine que o indivíduo entre com o número 349.

voce pode obter o primeiro digito (a centena) fazendo uma divisão inteira por 100, nesse caso seu resultado seria 3. Primeiro digito obtido, agora é só comparar se ele é 2 ou 7.

voce dividiu o número por 3 e obteve 100 né? Imagina que voce faz o inverso agora 3*100 = 300 (óbvio que voce não obteve o mesmo número original).

"E daí seu retardado? No que isso vai me ajudar?" - voce pode estar pensando.

E eu explico: Se voce pegar o número original (349) e subtrair esse resultado (300), voce vai ter 49. Que voce pode dividir por 10 para obter a dezena (4). Aí voce pode novamente subtrair o 49 do 4*10, e tem o ultimo digito. Ficou fácil agora?

Seu professor facilitou muito pedindo pra voce verificar somente valores que vão de 100 a 999, pois eles sempre tem o mesmo número de digitos. Eu fiz aqui no forum um código pra um usuário no tópico http://forum.clubedohardware.com.br/problema-vetores-dev/930825?t=930825 , que o indivíduo poderia digitar qualquer valor de 0 a 999999999, e aí a coisa fica um pouco mais complicada, porque se o cara entra com um 347 da vida, eu vou dividir primeiro por 100, depois por 10, já se ele entra com um valor como 63985 eu divido por 10000, depois por 1000, depois por 100, depois por 10.

"E eu com isso?! Quero só saber do meu código e pronto ***** ¬¬" - voce imagina.

voce não tem nada a ver com isso, mas pode ser que futuramente ele solicite que voce faça... ;)

Se tiver ainda alguma dúvida, só perguntar.

Editado por Ghost Killer
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ghost Killer, obrigada, fiquei muito feliz com sua resposta, ajudou bastante, e o seu tópico http://forum.clubedohardware.com.br/...30825?t=930825 também me ajudou bastante, salvei aqui pra mim caso ele passe mais algum desse tipo e também para pesquisa, estou tentando fazer o exercício, assim que conseguir eu mando ele pra você dar uma olhada, obrigada até

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa, é bem complicado esse exercício, nao consegui, da uma olhada no que eu consegui fazer, mas nao ta dando certo nao aparece 4 no dig 2 aparece 4.9 e se eu coloco \ pra aparecer só o numero 4 aparece 10, nao to mais entendendo nada, você pode me ajudar de novo?

obrigada pela ajuda

ai vai o que eu fiz:

var

nro,i:inteiro

dig1,dig2,dig3,dig21:real

inicio

// Seção de Comandos

dig1<-0

dig2<-0

dig3<-0

para i de 1 ate 1 faca

escreval("escreva um numero>100<999: ")

leia (nro)

fimpara

dig1<- nro\100

se(dig1=2)ou(dig1=7)então

escreval (" O PRIMEIRO digito contem o numero 2 ou 7")

senao

escreval (" O PRIMEIRO dígito NÃO é 2 nem 7")

fimse

dig2<- (nro-dig1*100)\10

se (dig2=2)ou(dig2=7)então

escreval (" O SEGUNDO digito é 2 ou 7")

fimse

escreval (" O SEGUNDO dígito NÃO é 2 nem 7")

dig21<-dig2*10

dig3<- (nro-dig1*100)-dig21

se (dig3=2)ou (dig3=7)então

(" O TERCEIRO dígito contem o numero 2 ou 7")

senao

escreval (" O TERCEIRO dígito NÃO é 2 nem 7")

fimse

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Mariana, vi sua PM e por enquanto ando frequentando aqui e lendo a maioria dos tópicos (ia ver esse) até o momento que eu ficar de saco cheio uahhaua, é difícil eu frequentar um forum por muito tempo, não dou mais 3 semanas pra eu sumir daqui.

Bom, vamos lá:

Existem 2 tipos de divisões, a divisão inteira e a divisão real. A divisão inteira, te dá uma resposta inteira e deixa um resto. Já a divisão real te dá uma resposta quebrada, sem resto. voce precisa de uma divisão inteira, e está tendo uma divisão real. O problema é que o mesmo operador ( " / " )faz os dois tipos de divisão. A solução é que para ter uma resposta que é inteiro, todas as variáveis devem ser declaradas como inteiro, e não como real. Ou seja, no seu caso, nro, dig1, dig2, dig3 e dig21 tem que ser todos inteiros.

Tente mudar esses tipos de dados e volte para me dar a resposta. Uma pergunta, a divisão no VisualG é com a barra assim mesmo? ( "\" ), não é pro outro lado não, tipo assim: " / "? Nunca vi desse jeito em nenhuma linguagem, mas como nunca usei VisualG...

Ainda assim pode haver alguns problemas, que se ocorrerem faço uma ideia de como resolver (pois também tive naquele código que te mostrei e lá está resolvido), mas de antemão é melhor não esquentar a cabeça com isso agora (pois não sei se o VisualG tem uma função para truncar valores por exemplo). Se não tiver a função, e o problema que falei ocorrer, a gente vai ter que criar uma equivalente, e vai ser meio chatinho...

Vamos dar um passo de cada vez pra não tropeçar.

A propósito, voce alguma vez já definiu/criou alguma função? Sabe como faz?

Editado por Ghost Killer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Possivelmente o que você queria seria assim:

var

nro,i:inteiro

dig1,dig2,dig3,dig21:real

inicio

dig1<-0

dig2<-0

dig3<-0

para i de 1 ate 1 faca

escreval("escreva um numero>100<999: ")

leia (nro)

fimpara

dig1<- nro/100

se(dig1=2)ou(dig1=7)então

escreval (" O PRIMEIRO digito contem o numero 2 ou 7")

senao

escreval (" O PRIMEIRO dígito NÃO é 2 nem 7")

fimse

dig2<- (nro-dig1*100)/10

se (dig2=2)ou(dig2=7)então

escreval (" O SEGUNDO digito é 2 ou 7")

fimse

escreval (" O SEGUNDO dígito NÃO é 2 nem 7")

dig21<-dig2*10

dig3<- (nro-dig1*100)-dig21

se (dig3=2)ou (dig3=7)então

(" O TERCEIRO dígito contem o numero 2 ou 7")

senao

escreval (" O TERCEIRO dígito NÃO é 2 nem 7")

fimse

fimalgoritmo

^_^

espero ter ajudado

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

Entre para seguir isso  





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

×