Buscar

Calcular valor absoluto e relativo

Olá pessoal boa tarde!

Estou tentando resolver a questão abaixo: 

"Construa um algoritmo que entre com um número inteiro e imprima o valor absoluto e o valor relativo do algarismo que se encontra na casa das centenas simples."

Sei que o valor relativo vou encontrar fácil quando obtiver o absoluto, estou com dificuldade justamente no absoluto e tentei da seguinte forma usando como exemplo o numero 946:

prog teste

 

int num, num1, num2, num3;

 

num<- 946;

 

num1 <- num div 100;

num2 <- (num div 10) % num1;

num3 <- (num div 10) % 10; // essa parte que não  “funfa”

 

imprima "\n",num1,"\n",num2,"\n",num3,"\n";

fimprog

saudações

💡 7 Respostas - Contém resposta de Especialista

User badge image

Passei Direto

Antes de tudo, é importante definir “valor absoluto” e “valor relativo”:

  • Valor absoluto: valor do algarismo, independentemente da posição no número. O valor absoluto da centena em 946 é 9.
  • Valor relativo: valor do algarismo no número. O valor relativo da centena em 946 é 900.

 

Primeiro vamos analisar o algoritmo proposto, verificar o que há de errado e, só então, propor a forma correta de se fazer. O algoritmo proposto é mostrado a seguir:

 

prog teste

 

int num, num1, num2, num3;

 

num <- 946;

 

num1 <- num div 100;        //num1 = 9 (valor absoluto)

num2 <- (num div 10) % num1; //num2 = 4

num3 <- (num div 10) % 10;   //num3 = 4

 

imprima "\n",num1,"\n",num2,"\n",num3,"\n";

fimprog

 

Da forma que está proposto, são usadas lógicas distintas para o segundo e o terceiro dígito, mas mantendo essa lógica, o erro se encontra no local destacado. Se quer obter o valor da unidade, a divisão deve ser por 1, não por 10, como mostrado. Mas de qualquer forma, num2 e num3 não são necessários para o objetivo do exercício. Abaixo é proposto um algoritmo com o objetivo pedido:

 

prog teste

 

int num, num1, num2;

 

num <- 946;

 

num1 <- (num div 100) % 10;  //num1 = 9 (valor absoluto)

num2 <- num1*100;           //num2 = 900 (valor relativo)

 

imprima "\n",num1,"\n",num2,"\n";

fimprog

0
Dislike0
User badge image

Noel Paiva

O valor absoluto de um número é o valor desse mesmo número independentemente do seu sinal. Por exemplo, o valor absoluto de -3 é 3. 
Neste caso, 4 é o valor absoluto do algarismo 4. 

O valor relativo de um número é o valor desse número consoante a casa decimal em que se encontra. 
Neste caso, o valor relativo do algarismo 8 no número 14782 é 80. 

Explicado isso vamos lá:
Armazena o valor em uma variavel e faz: 
- para descobrir o algarismo das unidade é só pegar o resto da divisão desse numero por 10 (x mod 10) observe por exemplo 1001 => o resto da divisão de 1001 por 10 = 1 que é o algarismo das unidades 

- para descobrir o algarismo das dezenas pegue o resto da divisão do numero por 100 e divide o resultado por 10. exemplo 1030 => o resto de 1030 po 100=30, 30/10=3 que é o algarismo das dezenas 

- para o das centenas pegue o resto da divisão do numero por 1000 e divida por 100. exemplo: 3400 => o resto da divisão de 3400 por 100=400, 400/100= 4 que é o algarismo das centenas 

- para o dos milhares pegue a parte inteira da divisão do numero por 1000 (x div 1000). exemplo 5500/1000=5,5 a parte inteira é 5 ( ao fazer (x div 1000) o resultado vai ser 5 direto). 

2
Dislike0
User badge image

Noel Paiva

vc armazena o valor em uma variavel e faz: 
- para descobrir o algarismo das unidade é só pegar o resto da divisão desse numero por 10 (x mod 10) observe por exemplo 1001 => o resto da divisão de 1001 por 10 = 1 que é o algarismo das unidades 

- para descobrir o algarismo das dezenas pegue o resto da divisão do numero por 100 e divide o resultado por 10. exemplo 1030 => o resto de 1030 po 100=30, 30/10=3 que é o algarismo das dezenas 

- para o das centenas pegue o resto da divisão do numero por 1000 e divida por 100. exemplo: 3400 => o resto da divisão de 3400 por 100=400, 400/100= 4 que é o algarismo das centenas 

- para o dos milhares pegue a parte inteira da divisão do numero por 1000 (x div 1000). exemplo 5500/1000=5,5 a parte inteira é 5 ( ao fazer (x div 1000) o resultado vai ser 5 direto). 

2
Dislike0
User badge image

Franco Lyrio Dalto

Perfeito Noel! Após tirar a dúvida com tua resposta, implementei meu algoritmo em 15 segundos. Valeu!

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


✏️ 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