Faça um algoritmo que fique em laço (repetição) solicitando a digitação do estado civil (S para solteiro, C para Casado, V para viúvo ou D para Divorciado) e da idade de pessoas. O algoritmo só deve parar de solicitar a digitação de dados de novas pessoas quando for informado um estado civil inválido (diferente de S, C, V e D) ou uma idade inválida (idade menor que 0). Quando isso acontecer, devem ser exibidas as quantidades de pessoas de cada estado civil e a respectiva média de idade de acordo com o estado civil. A condição de repetição deste laço é um pouco mais complexa, você deverá montar uma expressão lógica usando os operadores lógicos E ou OU.
Soluções para a tarefa
Respondido por
1
Segue o algoritmo feito em python
#Faça um algoritmo que fique em laço (repetição)
#solicitando a digitação do estado civil
#S para solteiro,
#C para Casado,
#V para viúvo ou
#D para Divorciado
#e da idade de pessoas.
#O algoritmo só deve parar de solicitar a digitação de dados
#de novas pessoas quando for informado um estado civil inválido
#(diferente de S, C, V e D)
#ou uma idade inválida (idade menor que 0).
#Quando isso acontecer, devem ser exibidas
#as quantidades de pessoas de cada estado civil e
#a respectiva média de idade de acordo com o estado civil.
#A condição de repetição deste laço é um pouco mais complexa,
#você deverá montar uma expressão lógica usando os operadores lógicos E
#u OU.
#
totais= { 'C': 0 , 'S': 0, 'D': 0, 'V':0 } # zera totais por estado civil
idades = {'C':0 , 'S': 0, 'D': 0, 'V': 0 } # zera somatórios de idades de cada
#stado civil
westado = 'S' # atribuição dummy para entrar no loop
widade = 0 # idem para a idades
while westado in ( 'C','S',"V","D") and widade >=0: # loop com condição
#omplexa
westado = input("Informe um estado civil (C)asado, (S)olteiro, (D)ivorciado, (V)iuvo")
if westado in ( 'C','S',"V","D"): # o estado é válido ?
widade = int(input("Informe a idade")) # obtem idade
if widade >=0: # idade é válida ?
totais[westado] +=1 # conta mais uma pessoa nesse estado civil
idades[westado] += widade # acumula a idade para posterior média
print() # pula uma linha
print("exibindo os dados")
medias = dict(zip(totais.keys(),[ x[1]/x[0] for x in
list(zip(totais.values(),idades.values())) ]))
print("Estado Civil","Qtde","Média")
for estado in medias:
print( ' {0:6s} {1:4d} {2:6.2f}'.format(estado, totais[estado],medias[estado])
)
pode rodá-lo aqui https://repl.it/@bokomoko/sensoestadocivil
#Faça um algoritmo que fique em laço (repetição)
#solicitando a digitação do estado civil
#S para solteiro,
#C para Casado,
#V para viúvo ou
#D para Divorciado
#e da idade de pessoas.
#O algoritmo só deve parar de solicitar a digitação de dados
#de novas pessoas quando for informado um estado civil inválido
#(diferente de S, C, V e D)
#ou uma idade inválida (idade menor que 0).
#Quando isso acontecer, devem ser exibidas
#as quantidades de pessoas de cada estado civil e
#a respectiva média de idade de acordo com o estado civil.
#A condição de repetição deste laço é um pouco mais complexa,
#você deverá montar uma expressão lógica usando os operadores lógicos E
#u OU.
#
totais= { 'C': 0 , 'S': 0, 'D': 0, 'V':0 } # zera totais por estado civil
idades = {'C':0 , 'S': 0, 'D': 0, 'V': 0 } # zera somatórios de idades de cada
#stado civil
westado = 'S' # atribuição dummy para entrar no loop
widade = 0 # idem para a idades
while westado in ( 'C','S',"V","D") and widade >=0: # loop com condição
#omplexa
westado = input("Informe um estado civil (C)asado, (S)olteiro, (D)ivorciado, (V)iuvo")
if westado in ( 'C','S',"V","D"): # o estado é válido ?
widade = int(input("Informe a idade")) # obtem idade
if widade >=0: # idade é válida ?
totais[westado] +=1 # conta mais uma pessoa nesse estado civil
idades[westado] += widade # acumula a idade para posterior média
print() # pula uma linha
print("exibindo os dados")
medias = dict(zip(totais.keys(),[ x[1]/x[0] for x in
list(zip(totais.values(),idades.values())) ]))
print("Estado Civil","Qtde","Média")
for estado in medias:
print( ' {0:6s} {1:4d} {2:6.2f}'.format(estado, totais[estado],medias[estado])
)
pode rodá-lo aqui https://repl.it/@bokomoko/sensoestadocivil
Perguntas interessantes
História,
8 meses atrás
Inglês,
8 meses atrás
Administração,
1 ano atrás
Matemática,
1 ano atrás
Português,
1 ano atrás
Matemática,
1 ano atrás