Jump to content

Archived

This topic is now archived and is closed to further replies.

Lucas Sandes

Python

Recommended Posts

gostaria de saber como faço pra resolver esta questão em Python!Faça um Programa que leia um número inteiro menor que 1000 e imprima a quantidade de centenas, dezenas e unidades do mesmo. * Observando os termos no plural a colocação do "e", da vírgula entre outros. Exemplo: * 326 = 3 centenas, 2 dezenas e 6 unidades * 12 = 1 dezena e 2 unidades

Share this post


Link to post
Share on other sites

Pode ser feito assim:

 

se (numero > 99) então   cent = numero / 100   resto = numero % 100   cent = inteiro (cent)   se (cent > 1) então	  escrever cent, " centenas "   senao	  escrever cent, " centena "fim_sese (numero > 9) então     dec = resto / 10   resto = resto % 10   dec = inteiro (dec)   se (dec > 1) então	  escrever dec, " dezenas"   senao	  escrever dec, " dezena"   se (resto > 1) então	  escrever resto, " unidades"   senao	  escrever resto, " unidade"senao   se (numero > 1) então	  escrever numero, " unidades"   senao	  escrever numero, " unidade"fim_se

Share this post


Link to post
Share on other sites

nossa!

 

quantos tópicos que percebi que os membros abrem, pede um programa e somem...

 

 

 

pena..

 

 

parabens Kandrade por sempre ser atencioso e mandar ver nas ajudas.

 

 

é isso aee

Share this post


Link to post
Share on other sites

É uma pena mesmo, mas não tem jeito. A maioria dos usuários não tem compromisso com o fórum.

 

 

nossa!

 

quantos tópicos que percebi que os membros abrem, pede um programa e somem...

 

pena..

 

Obrigado Pantoja.

 

:D

 

parabens Kandrade por sempre ser atencioso e mandar ver nas ajudas.

Share this post


Link to post
Share on other sites

Ser iniciante não quer dizer que você não saiba pensar antes de pedir o código pronto. você sequer postou o que fez, se é que fez.

Se você não tem o mínimo de lógica de programação é bom começar a praticar, porque linguagem nenhuma salva.

 

#!/usr/bin/env python
N = input()

centena = N/100
N = N%100
dezena = N/10
N = N%10

frase = ""

if centena > 0:
frase +=str(centena)+" centena"
if centena > 1:
	frase +="s"

if dezena > 0:
if centena > 0:
	frase+=(" e " if N == 0 else ", ")
frase+=str(dezena)+" dezena"
if dezena > 1:
	frase+="s"

if N > 0:
if dezena > 0 or centena > 0:
	frase+=" e "
frase+=str(N)+" unidade"
if N > 1:
	frase+="s"

print frase

Share this post


Link to post
Share on other sites

Acho que assim fica melhor Lucas.

 

import string

e = int(input("Digite o numero: "))
d = {100: "centena", 10: "dezena", 1: "unidade"}

stack = []
for i in reversed(d.keys()):
   if e/i: stack.append("%d %s%s" % (e/i, d[i],"s" if e/i>1 else ""))
   e-=(e/i)*i

print string.joinfields(stack, " e ")

Deste modo você pode até adicionar outras ordens como 1000, 10000, etc...

Share this post


Link to post
Share on other sites

 

if centena > 0:
frase +=str(centena)+" centena"
if centena > 1:
frase +="s"

 

Desculpem, não consegui editar direito o post acima.

 

No meu post acima eu colei o código postado por _Isis_

 

Estou exatamente neste exercício e aprendendo sozinho. Tentei de diversas formas, mas eu não conhecia o operador que resultasse o resto de uma divisão. E pesquisando encontrei esse fórum.

 

Como encontrei o código pronto, resolvi copiar e entendê-lo.

 

Com o operador % eu conseguir dividir as centenas, dezenas e unidades, o que ficou fácil.

Mas eu não entendi o que você fez no código acima, para colocar o singular e plural.

 

Poderia me explicar a linha:

 

frase +=str(centena)+" centena"

 

Você pegou a váriavel frase que estava sem nada e jogou valor nela, mas o que significa o +=str(variaveldacentena)+" centena"

Se puder me explicar e me dizer se há e qual é a diferença entre imprimir os valores no interpretador entre 'x' e "x"

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.