Pessoal, preciso de uma ajuda com um algoritmo no VisualG. Preciso criar um algoritmo que dado um número de 4 dígitos, identifique se é ou não um capicua, tipo por exemplo se eu colocar o numero 1001 ele diz q é um capicua. Como faço? se alguém puder me ajudar eu agradeço muito :)
Sanderson.
Abaixo segue no Portugol:
Inicio
Inteiro: Numero, Inverso, Alg1, Alg2, Alg3, Alg4;
Leia: Numero;
Alg1 <- Numero mod 10;
Alg2 <-(Numero div 10) mod 10;
Alg3 <-((Numero div 10)div 10) mod 10;
Alg4 <-((Numero div 10)div 10) div 10;
Inverso <- (Alg1 * 1000) + (Alg2 * 100) +Alg3 * 10) + Alg4;
Se Inverso = Numero
Escreva ("O Numero é Capicua")
Senão
Escreva (" O Numero não é Capicua")
Fim
Espero te-lo ajudado
abraço
Pessoal, preciso de uma ajuda no VisualG. Preciso criar um algoritmo que dado um número de 4 dígitos, identifique se é ou não um capicua. Como faço?
Pessoal, preciso de uma ajuda com um algoritmo no VisualG. Preciso criar um algoritmo que dado um número de 4 dígitos, identifique se é ou não um capicua, tipo por exemplo se eu colocar o numero 1001 ele diz q é um capicua. Como faço? se alguém puder me ajudar eu agradeço muito :)
#Programação#Algoritmo#visualg#capicua
Números Capicua também conhecidos como números palíndromos são números que cujo o valor não se altera independente da ordem em que o mesmo é lido, ou seja, lido da esquerda para direita ou da direita para a esquerda o valor não se altera. Exemplo: 1001, 77, 1001, 12321 e etecetera.
Para a resolução deste problema usamos os operadores Div (Retorna valor da divisão) e
Mod (Retorna o resto da divisão) e vamos operando com o divisor de valor 10, assim
pegamos o ultimo digito do número digitado, logo após nós aplicamos a operação de
Mod e guardamos o valor obtido. O valor obtido (lembrando que é o resto da divisão) é
soma a multiplicação por 10 (que foi nosso divisor) a variável invertida (que vai guardar
nosso número invertido) a cada digito obtido.
Para condição de parada, a cada digito processado aplicamos a operação de Div (que
retorna o valor da divisão) a fim de obtermos o valor zero, pois assim sabemos que não
há mais dígitos para verificar.
Por fim comparamos o valor inicial com o resultado obtido desta operação sucessiva de
Mod e Div, se os mesmos forem iguais, temos um número palíndromo.
Algoritmo "Número Capicua"
//Data: 13/10/2018
Var
//Declaração de variaveis
// digitado -> esta variável é para capturar o valor digitado
// num -> é uma variável para copiar o valor digitado e não mudar o valor capturado
// invertido -> recebe o valor das operações de div e mod para posterior verificação
// dígito -> armazena o resto da divisão pela operação de mod
//
digitado, num, invertido, digito : inteiro
Inicio
escreva("Digite um número inteiro: ")
//Captura o valor digitado
leia(digitado)
//Copio para a variável de operação
num <- digitado
//Inicializo a variável invertida
invertido <- 0
//Rodo um laço até o num chegar a 0 (zero)
enquanto num <> 0 faca
//
// Pego o resto da divisão por 10
// utilizando o operador MOD (%)
//
digito <- num MOD 10
//
// multiplico o que ja foi invertido por 10 e adiciono o resto
// ao final esse será o valor invertido
//
invertido <- (invertido * 10) + digito
//
// Divido por 10 o valor restante para eliminar o dígito calculado anteriormente
// Também vai ser minha variável de controle, quando este zerar, acabou os
// dígitos
//
num <- num \ 10
fimenquanto
//Comparo o digitado com o invertido
se digitado = invertido entao
//Se forem iguais digo que é palíndromo
escreva("Este é um número capicua (palíndromo).")
senao
//Senão digo que não é palíndromo
escreva("Este não é um número capicua (palíndromo).")
fimse
Fimalgoritmo
Números Capicua também conhecidos como números palíndromos são números que cujo o valor não se altera independente da ordem em que o mesmo é lido, ou seja, lido da esquerda para direita ou da direita para a esquerda o valor não se altera. Exemplo: 1001, 77, 1001, 12321 e etecetera.
Para a resolução deste problema usamos os operadores Div (Retorna valor da divisão) e
Mod (Retorna o resto da divisão) e vamos operando com o divisor de valor 10, assim
pegamos o ultimo digito do número digitado, logo após nós aplicamos a operação de
Mod e guardamos o valor obtido. O valor obtido (lembrando que é o resto da divisão) é
soma a multiplicação por 10 (que foi nosso divisor) a variável invertida (que vai guardar
nosso número invertido) a cada digito obtido.
Para condição de parada, a cada digito processado aplicamos a operação de Div (que
retorna o valor da divisão) a fim de obtermos o valor zero, pois assim sabemos que não
há mais dígitos para verificar.
Por fim comparamos o valor inicial com o resultado obtido desta operação sucessiva de
Mod e Div, se os mesmos forem iguais, temos um número palíndromo.
Algoritmo "Número Capicua"
//Data: 13/10/2018
Var
//Declaração de variaveis
// digitado -> esta variável é para capturar o valor digitado
// num -> é uma variável para copiar o valor digitado e não mudar o valor capturado
// invertido -> recebe o valor das operações de div e mod para posterior verificação
// dígito -> armazena o resto da divisão pela operação de mod
//
digitado, num, invertido, digito : inteiro
Inicio
escreva("Digite um número inteiro: ")
//Captura o valor digitado
leia(digitado)
//Copio para a variável de operação
num <- digitado
//Inicializo a variável invertida
invertido <- 0
//Rodo um laço até o num chegar a 0 (zero)
enquanto num <> 0 faca
//
// Pego o resto da divisão por 10
// utilizando o operador MOD (%)
//
digito <- num MOD 10
//
// multiplico o que ja foi invertido por 10 e adiciono o resto
// ao final esse será o valor invertido
//
invertido <- (invertido * 10) + digito
//
// Divido por 10 o valor restante para eliminar o dígito calculado anteriormente
// Também vai ser minha variável de controle, quando este zerar, acabou os
// dígitos
//
num <- num \ 10
fimenquanto
//Comparo o digitado com o invertido
se digitado = invertido entao
//Se forem iguais digo que é palíndromo
escreva("Este é um número capicua (palíndromo).")
senao
//Senão digo que não é palíndromo
escreva("Este não é um número capicua (palíndromo).")
fimse
Fimalgoritmo
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar