Programa em Bash que mostre o Crápulo de um numero [RESOLVIDO]

1. Programa em Bash que mostre o Crápulo de um numero [RESOLVIDO]

Henrique Sian
geovanesian

(usa Ubuntu)

Enviado em 19/01/2018 - 19:10h

Boa tarde!!
Então pessoal, tivemos uma prova de sistemas informaticos, porém teve um problema em particular que toda turma não foi nada bem, digo por mim também..

Bem o enunciado era o seguinte:

Dado um numero inteiro positivo, seu crápulo é o número que se obtém somando os digitos que lo compoe. Se o valor da soma é menor que 10, o crápulo é o valor obtido desta soma, caso contrário, tem que voltar a somar os digitos até que seja menor que 10. Escreva um programa que calculo o crápulo de um numero. Exemplo: o crapulo de 7 é 7. o Crapulo de 13 é 4...

Bom eu fiz assim, apenas para se o crapulo for menor que 10, mais que isso não conseguí fazer, já que acho, acho, que entrar for e também matrizes .



#!/bin/bash
#18 de Enero de 2018
clear

if test $num -lt 10
then
echo "Seu crápulo es : $num"
else
echo "Você digitou um numero maior que 10 e o programa não calcula seu crápulo."
fi


Se alguém souber fazer isso, me ajude.




  


2. MELHOR RESPOSTA

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 20/01/2018 - 23:56h

#!/bin/bash
# Soma os digitos de um número;
# Se a soma for maior que 10 repete a soma dos digitos restantes.

echo -n "Digite um número: "
read numero

soma=$numero
i=0

while [ $soma -ge 10 ]
do
resto=$soma
soma=0
while [ $resto -gt 0 ]
do
digito=$(( $resto % 10))
resto=$(( $resto / 10 ))
soma=$(( $soma + $digito ))
done
i=$((i+1))
echo "soma$i = $soma"
done
echo "Resultado: $soma"


3. Re: Programa em Bash que mostre o Crápulo de um numero

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/01/2018 - 21:37h

geovanesian escreveu:

Boa tarde!!
Então pessoal, tivemos uma prova de sistemas informaticos, porém teve um problema em particular que toda turma não foi nada bem, digo por mim também..
...
Se alguém souber fazer isso, me ajude.



deixa eu ver se entendi ... por exemplo ... se o usuário digitar 123 é para dar o retorno 6 e se ele digitar 56 é para dar número inválido já q a soma da 11 ... é isso ???

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



4. Re: Programa em Bash que mostre o Crápulo de um numero [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 19/01/2018 - 23:31h

Recebe n

c=n
Enquanto c>=10:
m=c
c=0
Enquanto m>0:
dígito=resto(m/10)
c=c+dígito
m=parte_inteira(m/10)

Imprime "O crapulo de ", n, " vale ", c



5. Re: Programa em Bash que mostre o Crápulo de um numero [RESOLVIDO]

Henrique Sian
geovanesian

(usa Ubuntu)

Enviado em 20/01/2018 - 07:49h

Sim, é exatamente isso.


6. Re: Programa em Bash que mostre o Crápulo de um numero [RESOLVIDO]

Henrique Sian
geovanesian

(usa Ubuntu)

Enviado em 20/01/2018 - 07:52h

paulo1205 escreveu:

Amigo não entendi esse pseudocodigo. mas, obrigado mesmo assim!


Recebe n

c=n
Enquanto c>=10:
m=c
c=0
Enquanto m>0:
dígito=resto(m/10)
c=c+dígito
m=parte_inteira(m/10)

Imprime "O crapulo de ", n, " vale ", c





7. Re: Programa em Bash que mostre o Crápulo de um numero [RESOLVIDO]

Paulo Jr
Pebis

(usa Debian)

Enviado em 20/01/2018 - 09:24h

geovanesian escreveu:

Boa tarde!!
Então pessoal, tivemos uma prova de sistemas informaticos, porém teve um problema em particular que toda turma não foi nada bem, digo por mim também..

Bem o enunciado era o seguinte:

Dado um numero inteiro positivo, seu crápulo é o número que se obtém somando os digitos que lo compoe. Se o valor da soma é menor que 10, o crápulo é o valor obtido desta soma, caso contrário, tem que voltar a somar os digitos até que seja menor que 10. Escreva um programa que calculo o crápulo de um numero. Exemplo: o crapulo de 7 é 7. o Crapulo de 13 é 4...

Bom eu fiz assim, apenas para se o crapulo for menor que 10, mais que isso não conseguí fazer, já que acho, acho, que entrar for e também matrizes .



#!/bin/bash
#18 de Enero de 2018
clear

if test $num -lt 10
then
echo "Seu crápulo es : $num"
else
echo "Você digitou um numero maior que 10 e o programa não calcula seu crápulo."
fi


Se alguém souber fazer isso, me ajude.



O enunciado diz pra você pegar o número e somar, se o resultado da soma for maior que 10, continue somando. Por exemplo, se o número digitado for 555, a soma será 15, então esse resultado 15 (que é maior que 10) deve ser somando novamente até o resultado ficar meno que 10





8. Re: Programa em Bash que mostre o Crápulo de um numero [RESOLVIDO]

Henrique Sian
geovanesian

(usa Ubuntu)

Enviado em 20/01/2018 - 09:26h

Eu entendi a pergunta, porém não consigo resolver este problema de jeito nenhum, já tentei de tudo! while, for e nada saí.



Pebis escreveu:

geovanesian escreveu:

Boa tarde!!
Então pessoal, tivemos uma prova de sistemas informaticos, porém teve um problema em particular que toda turma não foi nada bem, digo por mim também..

Bem o enunciado era o seguinte:

Dado um numero inteiro positivo, seu crápulo é o número que se obtém somando os digitos que lo compoe. Se o valor da soma é menor que 10, o crápulo é o valor obtido desta soma, caso contrário, tem que voltar a somar os digitos até que seja menor que 10. Escreva um programa que calculo o crápulo de um numero. Exemplo: o crapulo de 7 é 7. o Crapulo de 13 é 4...

Bom eu fiz assim, apenas para se o crapulo for menor que 10, mais que isso não conseguí fazer, já que acho, acho, que entrar for e também matrizes .



#!/bin/bash
#18 de Enero de 2018
clear

if test $num -lt 10
then
echo "Seu crápulo es : $num"
else
echo "Você digitou um numero maior que 10 e o programa não calcula seu crápulo."
fi


Se alguém souber fazer isso, me ajude.



O enunciado diz pra você pegar o número e somar, se o resultado da soma for maior que 10, continue somando. Por exemplo, se o número digitado for 555, a soma será 15, então esse resultado 15 (que é maior que 10) deve ser somando novamente até o resultado ficar meno que 10







9. Re: Programa em Bash que mostre o Crápulo de um numero [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 20/01/2018 - 14:25h

[quote]geovanesian escreveu::

Amigo não entendi esse pseudocodigo. mas, obrigado mesmo assim!

Tentou executá-lo na sua mente para ver como ele funciona?


10. Re: Programa em Bash que mostre o Crápulo de um numero [RESOLVIDO]

Henrique Sian
geovanesian

(usa Ubuntu)

Enviado em 20/01/2018 - 14:29h

paulo1205 escreveu:
Claro! mas, não consegui!


[quote]geovanesian escreveu::

Amigo não entendi esse pseudocodigo. mas, obrigado mesmo assim!

Tentou executá-lo na sua mente para ver como ele funciona?





11. Re: Programa em Bash que mostre o Crápulo de um numero

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 20/01/2018 - 14:52h

V se é isso que c quer

#!/bin/bash
x=1
while [ $x -eq 1 ]
do
echo "Escreva um numero"
read num
crapulo=`echo $num | sed 's/./&+/g' | sed 's/+*$//' | bc`
if [ $crapulo -lt 11 ]; then
echo $crapulo
x=0
else
echo "Crápulo maior que 10, tente outra vez !!!"
fi
done


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



12. Re: Programa em Bash que mostre o Crápulo de um numero [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/01/2018 - 20:11h

geovanesian escreveu:

Boa tarde!!
Então pessoal, tivemos uma prova de sistemas informaticos, porém teve um problema em particular que toda turma não foi nada bem, digo por mim também..

Bem o enunciado era o seguinte:

Dado um numero inteiro positivo, seu crápulo é o número que se obtém somando os digitos que lo compoe. Se o valor da soma é menor que 10, o crápulo é o valor obtido desta soma, caso contrário, tem que voltar a somar os digitos até que seja menor que 10. Escreva um programa que calculo o crápulo de um numero. Exemplo: o crapulo de 7 é 7. o Crapulo de 13 é 4...

Bom eu fiz assim, apenas para se o crapulo for menor que 10, mais que isso não conseguí fazer, já que acho, acho, que entrar for e também matrizes .



#!/bin/bash
#18 de Enero de 2018
clear

if test $num -lt 10
then
echo "Seu crápulo es : $num"
else
echo "Você digitou um numero maior que 10 e o programa não calcula seu crápulo."
fi


Se alguém souber fazer isso, me ajude.



Boa noite Geovanesian.
Teste e verifique se é o que deseja:
#!/bin/bash
read -p "Digite um Número: " NUM
CRAP=$(bc <<< $(sed 's/[0-9]/&\+/g;s/\+$//' <<< "$NUM"))
while (($CRAP > 10));do
CRAP=$(bc <<< $(sed 's/[0-9]/&\+/g;s/\+$//' <<< "$CRAP"))
done
echo -e "Nº:$NUM Crap:$CRAP\n"


Marcelo Oliver



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts