MC102 - Algoritmos e Programação de Computadores
MC102 Horários Plano de
desenvolvimento
Plano de
aulas
Oferecimento
anterior

Doe sangue, doe vida <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:

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.

Descrição da entrada

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.

Descrição da saída

É 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.

Testes com o SuSy

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
22
S
N
S
M
Peso: 75.5
Idade: 22
Boa saude: S
Uso drogas injetaveis: N
Primeira doacao: S
Sexo biologico: M
Procure um hemocentro para triagem completa.
arq1.res
arq2.in 65.0
27
S
N
S
F
N
S
13
Peso: 65.0
Idade: 27
Boa saude: S
Uso drogas injetaveis: N
Primeira doacao: S
Sexo biologico: F
Gravidez: N
Amamentando: S
Meses bebe: 13
Procure um hemocentro para triagem completa.
arq2.res
arq3.in 49.5
15
S
N
S
M
Peso: 49.5
Idade: 15
Boa saude: S
Uso drogas injetaveis: N
Primeira doacao: S
Sexo biologico: M
Impedimento: abaixo do peso minimo.
Impedimento: menor de 16 anos.
arq3.res
arq4.in 59.0
17
N
S
S
S
F
N
N
Peso: 59.0
Idade: 17
Documento de autorizacao: N
Boa saude: S
Uso drogas injetaveis: S
Primeira doacao: S
Sexo biologico: F
Gravidez: N
Amamentando: N
Impedimento: menor de 18 anos, sem consentimento dos responsaveis.
Impedimento: uso de drogas injetaveis.
arq4.res
arq5.in 82.4
62
N
N
S
M
Peso: 82.4
Idade: 62
Boa saude: N
Uso drogas injetaveis: N
Primeira doacao: S
Sexo biologico: M
Impedimento: maior de 60 anos, primeira doacao.
Impedimento: nao esta em boa saude.
arq5.res
arq6.in 54.2
70
S
N
N
36
0
F
N
N
Peso: 54.2
Idade: 70
Boa saude: S
Uso drogas injetaveis: N
Primeira doacao: N
Meses desde ultima doacao: 36
Doacoes nos ultimos 12 meses: 0
Sexo biologico: F
Gravidez: N
Amamentando: N
Impedimento: maior de 69 anos.
arq6.res
arq7.in 77.2
25
S
N
N
1
4
M
Peso: 77.2
Idade: 25
Boa saude: S
Uso drogas injetaveis: N
Primeira doacao: N
Meses desde ultima doacao: 1
Doacoes nos ultimos 12 meses: 4
Sexo biologico: M
Impedimento: intervalo minimo entre as doacoes nao foi respeitado.
Impedimento: numero maximo de doacoes anuais foi atingido.
arq7.res
arq8.in 62.0
25
S
N
N
6
1
F
S
N
Peso: 62.0
Idade: 25
Boa saude: S
Uso drogas injetaveis: N
Primeira doacao: N
Meses desde ultima doacao: 6
Doacoes nos ultimos 12 meses: 1
Sexo biologico: F
Gravidez: S
Amamentando: N
Impedimento: gravidez.
arq8.res
arq9.in 58.0
32
S
N
S
F
N
S
7
Peso: 58.0
Idade: 32
Boa saude: S
Uso drogas injetaveis: N
Primeira doacao: S
Sexo biologico: F
Gravidez: N
Amamentando: S
Meses bebe: 7
Impedimento: amamentacao.
arq9.res
arq10.in 85.3
42
S
N
N
2
3
F
N
N
Peso: 85.3
Idade: 42
Boa saude: S
Uso drogas injetaveis: N
Primeira doacao: N
Meses desde ultima doacao: 2
Doacoes nos ultimos 12 meses: 3
Sexo biologico: F
Gravidez: N
Amamentando: N
Impedimento: intervalo minimo entre as doacoes nao foi respeitado.
Impedimento: numero maximo de doacoes anuais foi atingido.
arq10.res

Leia instruções para fazer os testes em Testes com o SuSy.

Orientações para submissão

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.


A figura que ilustra esta tarefa indica o estoque por tipo sanguíneo do Hemocentro da Unicamp no dia 16/08/2019. Para ver o estoque atual, acesse a página https://www.hemocentro.unicamp.br/.