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.
Atividades conceituais: são os questionários
que podem ser respondidos via Moodle. Neste semestre não
teremos atividades presenciais e, portanto, a média das atividades
conceituais MAC
será dada pela média
aritmética simples das n
notas das atividades
conceituais.
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.
Média ponderada dos elementos: será dada pela fórmula:
MElem = 0.6 * MP + 0.3 * ML + 0.1 * MAC
Seja freq
a porcentagem de frequências às aulas
e MPre
definida como:
MPre = min(MElem, MP, ML)
O resultado final será dado pelas seguintes regras:
Caso freq
≥ 75%:
Caso MPre ≥ 5
: o(a) aluno(a)
estará aprovado(a) por nota e frequência
com MFinal = MElem
.
Caso 2.5 ≤ MPre < 5
: o(a)
aluno(a) terá direito a fazer o exame. Sua média final
será MFinal =
(MPre+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 MPre < 2.5
o(a) aluno(a)
estará reprovado(a) por nota com MFinal =
MPre
.
freq
< 75% o(a) aluno(a) estará
reprovado(a) por frequência com MFinal =
MPre
.
A primeira linha da entrada conterá n
valores nota_aci
indicando as notas das
atividades conceituais. A segunda linha conterá m
tuplas (nota_labi, peso_labi)
indicando a nota da tarefa de laboratório e seu respectivo peso para
a média das tarefas de laboratório. A terceira linha conterá as notas
das duas provas. A quarta 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 última linha contendo a nota
obtida.
<nota_ac1> ... <nota_acn>
(<nota_lab00>, <peso_lab00>) ... (<nota_labm-1>, <peso_labm-1>)
<nota_prova1> <nota_prova2>
<freq>
<nota_exame>
A primeira parte da saída conterá as médias obtidas pelo(a) aluno(a), formatadas para apresentar apenas uma casa decimal (veja seção Dicas):
Média das atividades conceituais: <MAC>
Média das tarefas de laboratório: <ML>
Média das provas: <MP>
Média ponderada dos elementos: <MElem>
Média preliminar: <MPre>
Caso o(a) aluno(a) tenha feito exame, a nota deve ser indicada:
Nota do exame: <Exame>
A situação final do(a) aluno(a) deve ser indicada por uma das strings abaixo:
Aprovado(a) por nota e frequência.
Reprovado(a) por nota.
Reprovado(a) por frequência.
Finalmente, a média final deve ser indicada:
Média 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, acompanhado de alguns comentários sobre o desempenho do aluno(a).
Entrada | Saída | Observações | ||
---|---|---|---|---|
arq1.in |
|
|
arq1.res | • Excelente desempenho em todos os itens. • Média final igual à média dos elementos. • Aprovado(a) sem exame. |
arq2.in |
|
|
arq2.res | • Bom desempenho em atividades conceituais e tarefas de laboratório. • Desempenho suficiente nas provas. • Média final igual à média dos elementos. • Aprovado(a) sem exame. |
arq3.in |
|
|
arq3.res | • Bom desempenho em atividades conceituais e tarefas de laboratório. • Desempenho insuficiente nas provas. • Aprovado(a) após exame. |
arq4.in |
|
|
arq4.res | • Bom desempenho nas atividades conceituais e nas provas. • Desempenho insuficiente nas tarefas de laboratório. • Aprovado(a) após exame. |
arq5.in |
|
|
arq5.res | • Não realizou atividades conceituais. • Desempenho suficiente nas provas e tarefas de laboratório. • Desempenho insuficiente na média ponderada dos elementos. • Aprovado(a) após 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 mais dois testes fechados.
• Para ler a linha com as notas das atividades conceituais e montar
uma lista com elementos do tipo float
você pode
utilizar:
notas_ac = [float(x) for x in input().split()]
• Para imprimir a primeira nota formatada com uma casa decimal você pode usar:
print("Nota da primeira atividade conceitual:", format(notas_ac[0], ".1f"))
• Para ler a linha com as notas das tarefas de laboratório podemos
utilizar uma abordagem semelhante, mas definindo uma função especial
que retornará uma tupla com dois elementos, sendo o primeiro
um float
e o segundo um int
.
def tupla_float_int(x) :
x = x[1:-1] # remove parênteses
x = x.split(",") # separa em duas strings
f = float(x[0]) # converte primeiro elemento para float
i = int(x[1]) # converte segundo elemento para int
return (f,i) # retorna tupla
notas_lab = [tupla_float_int(x) for x in input().split()]
• Para imprimir a nota do primeiro lab formatada com uma casa decimal e o peso você pode usar:
print("Nota do Lab00:", format(notas_lab[0][0], ".1f"))
print("Peso do Lab00:", notas_lab[0][1])
Veja aqui
a página de submissão da tarefa. Lembre-se que o
arquivo a ser submetido deve se chamar main.py. No
link Arquivos
auxiliares há um arquivo arqs-07.zip
que
contém todos os arquivos de testes abertos e seus respectivos
resultados compactados. Os arquivos executa-testes.py
e executa-testes-windows.py
também estão
neste pacote.
Observe o limite máximo de 20 submissões e que a nota final é proporcional ao número de testes que executaram corretamente.
O peso desta tarefa é 2.
O prazo final para submissão é 20/05/2018.