A maior rede de estudos do Brasil

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 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

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

User badge image

Jonathan Gabriel

Há mais de um mês

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

 

User badge image

Andre Smaira

Há mais de um mês

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

User badge image

Maiara Ferreira

Há mais de um mês

Pessoal, preciso de uma ajuda no VisualG

Preciso criar um algoritmo que leia um conjunto de números e imprima a quantidade de números pares e ímpares,exemplo 1,2,3,4,5 = 2 pares e 3= ímpares.. alguem pode ajudar

Essa pergunta já foi respondida por um dos nossos especialistas