<3
Segundo o Hemocentro da Unicamp: "Doação de sangue é o processo pelo qual um doador voluntário tem seu sangue coletado para armazenamento em um banco de sangue ou hemocentro para um uso subsequente em uma transfusão de sangue." Para ser doador, no entanto, é necessário considerar os possíveis riscos para o doador e para os receptores. Entre os requisitos para doar, destacamos:
Peso mínimo: 50 kg
Idade entre 16 e 69 anos
Estar em boas condições gerais de saúde
Não utilizar drogas injetáveis
Para o sexo biológico masculino:
Para o sexo biológico feminino:
Nesta tarefa, iremos aplicar os conhecimentos em comandos condicionais para, a partir de alguns dados na entrada, identificar possíveis doadores. Para uma triagem completa, dirija-se ao Hemocentro da Unicamp ou a outro posto de coleta.
A entrada será composta por várias linhas, cada uma delas contendo dados como descritos abaixo. Note que alguns dados só serão fornecidos se forem necessários de acordo com o contexto.
Peso: float
representando peso em kg
Idade: int
representando idade em anos
Documento de autorização: string
contendo S
ou N
(dado apresentado
apenas se a idade for igual a 16 ou 17 anos)
Boa saúde: string contendo S
ou N
Uso de drogas injetáveis: string contendo S
ou N
.
Primeira doação: string contendo S
ou N
Meses desde a última doação: int
representando
número de meses (dado apresentado apenas se já foi doador)
Doações nos últimos doze meses: int
representando número de doações feitas nos últimos doze meses (dado
apresentado apenas se já foi doador)
Sexo biológico: string contendo M
ou F
.
Gravidez: string contendo S
ou N
(dado apresentado apenas para pessoas de sexo biológico feminino)
Amamentando: string contendo S
ou N
(dado apresentado apenas para pessoas de sexo biológico feminino)
Idade do bebê sendo amamentado: int
representando idade em meses do bebê sendo amamentado (dado apresentado apenas para pessoas de sexo biológico feminino que estejam amamentando)
É muito fácil utilizar acentuação em Python, mas as strings foram escritas nesta tarefa estão propositalmente sem acentos para evitar erros com codificações diversas na etapa de comparação dos resultados no SuSy.
A primeira parte da saída irá reproduzir os dados lidos para cada caso precedidos de uma breve descrição, conforme strings a seguir:
Peso:
Idade:
Documento de autorizacao:
Boa saude:
Uso drogas injetaveis:
Primeira doacao:
Meses desde ultima doacao:
Doacoes nos ultimos 12 meses:
Sexo biologico:
Gravidez:
Amamentando:
Meses bebe:
Na segunda parte da tarefa, serão reportados os impedimentos encontrados, respeitando o conteúdo e a ordem das strings abaixo.
Impedimento: abaixo do peso minimo.
Impedimento: menor de 16 anos.
Impedimento: menor de 18 anos, sem consentimento dos responsaveis.
Impedimento: maior de 60 anos, primeira doacao.
Impedimento: maior de 69 anos.
Impedimento: nao esta em boa saude.
Impedimento: uso de drogas injetaveis.
Impedimento: intervalo minimo entre as doacoes nao foi respeitado.
Impedimento: numero maximo de doacoes anuais foi atingido.
Impedimento: gravidez.
Impedimento: amamentacao.
Caso nenhum impedimento tenha sido identificado, seu programa deve escrever a mensagem:
Procure um hemocentro para triagem completa.
No SuSy, para cada tarefa, criamos um conjunto de testes com arquivos de entrada arq<i>.in
e para cada um deles temos uma saída esperada arq<i>.res
. Para esta tarefa, os testes abertos serão os listados na tabela abaixo. Haverá também dois testes fechados.
Entrada | Saída | ||
---|---|---|---|
arq1.in | 75.5 |
Peso: 75.5 |
arq1.res |
arq2.in | 65.0 |
Peso: 65.0 |
arq2.res |
arq3.in | 49.5 |
Peso: 49.5 |
arq3.res |
arq4.in | 59.0 |
Peso: 59.0 |
arq4.res |
arq5.in | 82.4 |
Peso: 82.4 |
arq5.res |
arq6.in | 54.2 |
Peso: 54.2 |
arq6.res |
arq7.in | 77.2 |
Peso: 77.2 |
arq7.res |
arq8.in | 62.0 |
Peso: 62.0 |
arq8.res |
arq9.in | 58.0 |
Peso: 58.0 |
arq9.res |
arq10.in | 85.3 |
Peso: 85.3 |
arq10.res |
Leia instruções para fazer os testes em Testes com o SuSy.
Veja aqui a página de submissão da tarefa. O arquivo a ser
submetido deve se chamar lab04.py. No link Arquivos
auxiliares há um arquivo aux04.zip
que contém todos os arquivos de testes abertos e seus respectivos resultados compactados.
Utilize o sistema SuSy com o mesmo login e senha que você utiliza para fazer acesso ao sistema da DAC. Se você não estiver inscrito corretamente, envie email para .
O limite máximo será de 15 submissões. Serão considerados os resultados da última submissão.
O peso desta tarefa é 2.
O prazo final para submissão é 08/09/2019.
A nota desta tarefa é proporcional ao número de testes que executaram corretamente, desde que o código esteja coerente com o enunciado. A submissão de um código que não implementa o algoritmo requisitado, mas que exibe as saídas esperadas dos testes abertos a partir da comparação de trechos da entrada será considerada fraude e acarretará a atribuição de nota zero à média final da disciplina.