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
Antes de tudo, é importante definir “valor absoluto” e “valor relativo”:
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
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).
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).
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar