MC102 - Algoritmos e Programação de Computadores
MC102 Horários Plano de
desenvolvimento
Cronograma Oferecimentos
anteriores

Doe sangue, doe vida <3
Em tempos de pandemia...

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 durante a pandemia do COVID-19 destacamos:

Nesta tarefa, iremos aplicar os conhecimentos em comandos condicionais para, a partir de alguns dados na entrada, identificar possíveis doadores. Uma triagem completa poderá ser feita por um hemocentro ou outro posto de coleta. Para não haver risco de aglomeração, deve-se agendar um horário!

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:

Massa corporal:
Idade:
Documento de autorizacao:
Febre ou sintomas gripais:
Viagem recente ao exterior:
Contato com caso de COVID-19:    
Primeira doacao:
Doacoes nos ultimos 12 meses:
Meses desde ultima doacao:    
Sexo biologico:    
Gravida ou amamentando:

Na segunda parte da tarefa, serão reportados os impedimentos encontrados, respeitando o conteúdo e a ordem das strings abaixo.

Impedimento: abaixo da massa corporal minima
Impedimento: menor de 16 anos
Impedimento: menor de 18 anos sem consentimento dos responsaveis
Impedimento: maior de 60 anos e primeira doacao
Impedimento: maior de 69 anos
Impedimento: febre ou sintomas gripais
Impedimento: viagem recente ao exterior
Impedimento: contato com caso de COVID-19
Impedimento: numero maximo de doacoes anuais foi atingido
Impedimento: intervalo minimo entre as doacoes nao foi respeitado
Impedimento: gravida ou amamentando

Caso nenhum impedimento tenha sido identificado, seu programa deve escrever a mensagem:

Agende um horario 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
arq01.in
82.5
20
N
N
N
S
M
Massa corporal: 82.5
Idade: 20
Febre ou sintomas gripais: N
Viagem recente ao exterior: N
Contato com caso de COVID-19: N
Primeira doacao: S
Sexo biologico: M
Agende um horario para triagem completa
arq01.res
arq02.in
65.0
19
N
N
N
S
F
N
Massa corporal: 65.0
Idade: 19
Febre ou sintomas gripais: N
Viagem recente ao exterior: N
Contato com caso de COVID-19: N
Primeira doacao: S
Sexo biologico: F
Gravida ou amamentando: N
Agende um horario para triagem completa
arq02.res
arq03.in
49.0
15
N
N
N
S
F
N
Massa corporal: 49.0
Idade: 15
Febre ou sintomas gripais: N
Viagem recente ao exterior: N
Contato com caso de COVID-19: N
Primeira doacao: S
Sexo biologico: F
Gravida ou amamentando: N
Impedimento: abaixo da massa corporal minima
Impedimento: menor de 16 anos
arq03.res
arq04.in
59.0
17
N
N
N
N
S
M
Massa corporal: 59.0
Idade: 17
Documento de autorizacao: N
Febre ou sintomas gripais: N
Viagem recente ao exterior: N
Contato com caso de COVID-19: N
Primeira doacao: S
Sexo biologico: M
Impedimento: menor de 18 anos sem consentimento dos responsaveis
arq04.res
arq05.in
82.4
62
N
N
N
S
M
Massa corporal: 82.4
Idade: 62
Febre ou sintomas gripais: N
Viagem recente ao exterior: N
Contato com caso de COVID-19: N
Primeira doacao: S
Sexo biologico: M
Impedimento: maior de 60 anos e primeira doacao
arq05.res
arq06.in
54.2
67
N
N
N
N
0
F
N
Massa corporal: 54.2
Idade: 67
Febre ou sintomas gripais: N
Viagem recente ao exterior: N
Contato com caso de COVID-19: N
Primeira doacao: N
Doacoes nos ultimos 12 meses: 0
Sexo biologico: F
Gravida ou amamentando: N
Agende um horario para triagem completa
arq06.res
arq07.in
72.0
70
N
S
N
N
0
M
Massa corporal: 72.0
Idade: 70
Febre ou sintomas gripais: N
Viagem recente ao exterior: S
Contato com caso de COVID-19: N
Primeira doacao: N
Doacoes nos ultimos 12 meses: 0
Sexo biologico: M
Impedimento: maior de 69 anos
Impedimento: viagem recente ao exterior
arq07.res
arq08.in
62.0
25
S
N
S
S
F
N
Massa corporal: 62.0
Idade: 25
Febre ou sintomas gripais: S
Viagem recente ao exterior: N
Contato com caso de COVID-19: S
Primeira doacao: S
Sexo biologico: F
Gravida ou amamentando: N
Impedimento: febre ou sintomas gripais
Impedimento: contato com caso de COVID-19
arq08.res
arq09.in
58.0
32
N
N
N
N
1
10
F
S
Massa corporal: 58.0
Idade: 32
Febre ou sintomas gripais: N
Viagem recente ao exterior: N
Contato com caso de COVID-19: N
Primeira doacao: N
Doacoes nos ultimos 12 meses: 1
Meses desde ultima doacao: 10
Sexo biologico: F
Gravida ou amamentando: S
Impedimento: gravida ou amamentando
arq09.res
arq10.in
85.3
42
N
N
N
N
4
1
M
Massa corporal: 85.3
Idade: 42
Febre ou sintomas gripais: N
Viagem recente ao exterior: N
Contato com caso de COVID-19: N
Primeira doacao: N
Doacoes nos ultimos 12 meses: 4
Meses desde ultima doacao: 1
Sexo biologico: M
Impedimento: numero maximo de doacoes anuais foi atingido
Impedimento: intervalo minimo entre as doacoes nao foi respeitado
arq10.res

Releia, se necessário as 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 lab05.py. No link Arquivos auxiliares há um arquivo aux05.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 30 submissões. Serão considerados os resultados da última submissão.

O peso desta tarefa é 2.

O prazo final para submissão é 17/05/2020.

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 indica o estoque por tipo sanguíneo do Hemocentro da Unicamp no dia 03/04/2020. Para ver o estoque atual, acesse a página https://www.hemocentro.unicamp.br/.