A resposta por gentileza deve ser em linguagem q funciona no Editor VisuAlg
(A linguagem que o VisuAlg interpreta é bem simples: é uma versão portuguesa dos pseudocódigos largamente utilizados nos livros de introdução à programação, conhecida como "Portugol". OBS foi isso o que eu achei sobre a linguagem do VisuAlg)
Desenvolva uma Algoritmo que receba como entrada pelo usuário a idade e o estado civil (c - casado, s - solteiro, v - viúvo e d – desquitado ou separado) de 20 pessoas. O seu código ao final deve ser capaz de calcular e imprimir as seguintes informações:
a) a quantidade de pessoas casadas;
b) a quantidade de pessoas solteiras;
c) a média das idades das pessoas viúvas;
d) a porcentagem de pessoas desquitadas ou separadas dentre todas as pessoas analisadas.
Soluções para a tarefa
Resposta:
O programa abaixo (também anexado) conta com uma validação simples dos dados para evitar a maioria das possíveis ocorrências de exceções/erros que poderiam vir a prejudicar o funcionamento.
Perceba que isso evita problemas como a digitação de dados não inteiros para a idade, sendo que, caso seja digitado um valor negativo (ex: -3), o programa considerará o valor absoluto. Ainda, para o estado civil, é utilizada uma listagem numerada das possibilidades para evitar erros de digitação.
Caso seja dada uma entrada errada de idade ou opção do estado civil, o programa solicitada novamente até que seja passado um dado válido.
Perceba, no entanto que a validação não impede, por exemplo, idades absurdas (ex: 99999 anos).
Obs.: Os pontos que precedem linhas de programação não fazem parte do programa e devem ser desconsiderados, foram colocados apenas para garantir a identificação do código aqui no site.
solteiros=casados=separados=viuvos = 0
while True:
.....while True:
..........try:
...............idade = int(input('Idade: '))
...............if idade<0:
....................idade = abs(idade)
..........except:
...............print('Por favor, digite uma idade válida!')
...............continue
..........else:
...............break
.....if idade == 0:
..........break
.....while True:
..........print('''
Estado civil
[1] Solteiro(a)
[2] Casado(a)
[3] Separado(a)
[4] Viúvo(a)''')
..........est_civil = str(input('Digite a opção correspondente: ')).strip()
..........if est_civil not in ('1', '2', '3', '4'):
...............print('Opção inválida!')
...............continue
..........print(f'Registrado!\n')
..........if est_civil == '1':
...............solteiros += 1
..........elif est_civil == '2':
...............casados += 1
..........elif est_civil == '3':
...............separados += 1
..........else:
...............viuvos += 1
..........break
print('Fim do registro')
print(f'''
Foram cadastrados {solteiros} solteiros, {casados} casados, {separados} separados e {viuvos} viúvos''')
Explicação: