Buscar

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 :)

💡 5 Respostas

User badge image

Jonathan Gabriel

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

 

1
Dislike0
User badge image

Andre Smaira

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

0
Dislike0
User badge image

Andre Smaira

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

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta.

User badge image

Outros materiais