Aviso: Em 2 de maio, alguns arquivos de teste foram
modificados: espaços em branco extras ao final de algumas
linhas foram removidos. A nova versão está
em aux08.zip
.
O critério de aprovação em MC102 é composto por vários itens com pesos diferentes. Nesta tarefa, vamos fazer um programa em Python para podermos calcular a média e situação final de um(a) aluno(a) com facilidade. O programa proposto neste semestre é um pouco diferente do programa do semestre passado e inclui a proposta de tarefas extras de laboratório!
Atividades conceituais: são os questionários
que podem ser respondidos via Moodle. A nota atribuída a cada
uma destas atividades é uma nota de participação, calculada
de maneira proporcional ao número de questões
respondidas pelo(a) aluno(a), independentemente do fato de estarem
corretas ou não. A média das atividades
conceituais MAC
será dada pela
média aritmética simples das notas das atividades.
Tarefas de laboratório: são os programas
desenvolvidos e entregues para correção automática no
SuSy. Para compor a média dos laboratórios ML
, cada tarefa tem um peso indicado no enunciado do laboratório.
Provas teóricas: são as avaliações aplicadas em sala de aula, sem consulta. Para compor a média de provas MP
a primeira prova tem peso 2 e a segunda, peso 3.
Considerando Freq
a porcentagem de frequência às aulas, o resultado final será computado seguindo as regras abaixo:
Caso Freq
≥ 75%:
Caso MP ≥ 5
e
ML ≥ 5
:
Será calculada uma média ponderada dos elementos avaliativos:
MElem = 0.6 * MP +
0.3 * ML + 0.1 * MAC
O(A) aluno(a) estará aprovado(a) por nota e
frequência com MFinal =
max(5, MElem)
.
Caso o(a) aluno(a) não tenha sido aprovado(a)
pelas condições acima e MP ≥
2.5
e ML ≥ 2.5
:
O(A) aluno(a) deverá realizar o exame. Sua média final
será MFinal =
(min(MP, ML) + Exame)/2
.
Caso MFinal ≥ 5.0
o(a) aluno(a)
estará aprovado(a) por nota e frequência.
Caso contrário, estará reprovado(a) por nota.
Caso MP < 2.5
ou
ML < 2.5
:
O(A) aluno(a) estará reprovado(a) por nota
com MFinal =
min(MP, ML)
.
Caso Freq
< 75%:
O(A) aluno(a) estará reprovado(a) por frequência com MFinal = min(MP, ML)
.
Ao final do semestre, teremos uma ou mais tarefas adicionais. Estas
tarefas terão sua nota ponderada somada ao numerador do cálculo
da média de laboratórios, mas o denominador será
dado pela soma dos pesos das tarefas
obrigatórias. Considere m
tarefas
obrigatórias e k
tarefas extras:
nota_lab0*peso_lab0 + ... + nota_labm-1*peso_lab_m-1 +
nota_lab_extra0*peso_lab_extra0 + ... + nota_lab_extrak-1*peso_lab_extra_k-1
ML = ----------------------------------------------------------------------------------
peso_lab0 + ... + peso_labm-1
Com este cálculo, ML
poderá atingir um
valor maior do que 10.0 e aumentar a média final do(a) aluno(a)
caso MP seja maior ou igual a 5.0. Obviamente,
MFinal
será enviada à DAC respeitando-se o valor máximo 10.0.
Os valores estarão separados por linhas:
n
valores nota_aci
indicando as notas das atividades conceituais.
m
valores nota_labi
indicando as notas das tarefas de laboratório obrigatórias.
m
valores peso_labi
indicando os pesos das notas das tarefas de laboratório obrigatórias.
A quarta linha conterá k
valores nota_lab_extrai
indicando as notas das tarefas de laboratório adicionais.
A quinta linha conterá k
valores peso_lab_extrai
indicando os pesos das notas das tarefas de laboratório adicionais.
A sexta linha conterá as notas das duas provas.
A sétima linha conterá um valor entre 0 e 100 indicando a porcentagem da frequência às aulas.
Caso o(a) aluno(a) precise fazer exame, haverá uma oitava linha contendo a nota obtida.
<nota_ac1> ... <nota_acn>
<nota_lab00> ... <nota_labm-1>
<peso_lab00> ... <peso_labm-1>
<nota_labextra00> ... <nota_labextrak-1>
<peso_labextra00> ... <peso_labextrak-1>
<nota_prova1> <nota_prova2>
<freq>
<nota_exame>
Dica: para ler uma linha com as notas e receber uma lista com
elementos do tipo float
você pode utilizar:
notas = [float(x) for x in input().split()]
A primeira parte da saída conterá as médias das atividades conceituais, tarefas de laboratório e provas obtidas pelo(a) aluno(a), formatadas para apresentar apenas uma casa decimal (veja as dicas para formatação):
Media das atividades conceituais: <MAC>
Media das tarefas de laboratorio: <ML>
Media das provas: <MP>
Caso o(a) aluno(a) tenha feito exame, a nota deve ser indicada:
Nota no exame: <Exame>
A situação final do(a) aluno(a) deve ser indicada por uma das strings abaixo:
Aprovado(a) por nota e frequencia.
Reprovado(a) por nota.
Reprovado(a) por frequencia.
Por último, a média final deve ser indicada:
Media final: <MFinal>
Para facilitar a visualização e a conferência o número de atividades conceituais e tarefas de laboratório é inferior ao que será proposto no semestre. Os oito testes abertos estão listados abaixo, acompanhados de alguns comentários sobre o desempenho do(a) aluno(a).
Entrada | Saída | Observações | ||
---|---|---|---|---|
arq1.in |
|
|
arq1.res | • Excelente desempenho em todos os itens. • Média final igual à média ponderada dos elementos, com máximo 10 .• Aprovado(a) sem exame. |
arq2.in |
|
|
arq2.res | • Ótimo desempenho em atividades conceituais e tarefas de laboratório. • Desempenho suficiente nas provas. • Média final igual à média ponderada dos elementos. • Aprovado(a) sem exame. |
arq3.in |
|
|
arq3.res | • Não realizou as atividades conceituais. • Desempenho suficiente nas provas e tarefas de laboratório. • Aprovado(a) sem exame. |
arq4.in |
|
|
arq4.res | • Excelente desempenho em atividades conceituais e tarefas de laboratório. • Desempenho insuficiente nas provas. • Aprovado(a) após o exame. |
arq5.in |
|
|
arq5.res | • Ótimo desempenho nas atividades conceituais
e nas provas. • Desempenho insuficiente nas tarefas de laboratório. • Aprovado(a) após o exame. |
arq6.in |
|
|
arq6.res | • Não realizou as atividades conceituais. • Desempenho insuficiente nas provas e tarefas de laboratório. • Reprovado(a) após o exame. |
arq7.in |
|
|
arq7.res | • Desempenho insuficiente em todos os itens. • Reprovado(a) sem direito a exame. |
arq8.in |
|
|
arq8.res | • Desempenho insuficiente em todos os itens. • Não atingiu frequência mínima. • Reprovado(a) sem direito a exame. |
Esta tarefa inclui dois testes fechados.
O uso da biblioteca numpy
não está
habilitado. Portanto, seu código não poderá
incluí-la.
Veja aqui a
página de submissão da tarefa. O arquivo a ser
submetido deve se chamar lab08.py. No
link Arquivos
auxiliares há um
arquivo aux08.zip
que
contém todos os arquivos de testes abertos, seus respectivos
resultados compactados e scripts para facilitar os testes.
O limite máximo será de 20 submissões. Serão considerados os resultados da última submissão.
O peso desta tarefa é 4.
O prazo final para submissão é 19/05/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.