(Realizar um programa em Python do seguinte problema)
Em uma faculdade de um mundo muito distante, dois jovens professores buscam ajudar seus alunos a estudarem e melhorarem seus conhecimentos sobre a disciplina de programação, fazendo com que notas mais altas sejam conquistadas. Para isso, desenvolveram a estratégia da "Segunda Chance".
A "Segunda Chance" consiste em uma nova atividade com os mesmos problemas da atividade original, porém com um prazo estendido e com a disponibilização de vídeos detalhados com a resolução de cada problema, de modo a incentivar que os alunos revisitem e comparem suas próprias propostas de solução.
Para aumentar ainda mais o incentivo para a turma, os professores concedem um bônus de dois pontos sobre a nota original para aqueles que resolverem TODOS os problemas dentro do prazo estendido, isto é, que obtiverem dez na nova atividade, o que é uma "moleza", considerando que basta assistir as resoluções e aplicá-las. Mas é claro, o bônus é concedido até o limite de dez pontos, ou seja, caso a soma do bônus com a nota original resulte em um valor superior a dez, a nota final será dez.
Como esperado, os alunos ficaram contentes e empolgados com a oportunidade. De tão agradecidos, ofereceram um software aos dois professores, de modo a reduzir um pouco da carga extra de trabalho que eles terão para recalcular as notas.
Você se voluntariou para implementar esse software, que precisa receber um valor inicial indicando a quantidade de alunos da turma, seguido pelas notas originais de cada aluno e pelas notas obtidas na nova atividade. O programa deverá exibir a quantidade de alunos que tiveram suas notas alteradas, assim como as notas originais e finais de cada aluno, destacando aqueles que aumentaram as notas.
Entrada
Na primeira linha haverá um número natural N (1 <= N <= 999) indicando a quantidade de alunos da turma;Nas próximas N linhas, haverá a nota original de cada aluno, que são valores reais no intervalo fechado [ 0,10 ];Por fim, nas N linhas seguintes, haverá a nota obtida na nova atividade por cada aluno, também situadas no intervalo fechado [ 0,10 ].
Note que as N primeiras notas correspondem as notas originais dos N primeiros alunos, e as próximas N notas correspondem as notas da "Segunda Chance" dos mesmos alunos. Portanto, se N = 5, a 1ª nota é do primeiro aluno e a 6ª nota também é do primeiro aluno (original e "Segunda Chance), a 2ª nota é do segundo aluno e a 7ª também, a 5ª é do quinto aluno e a 10ª também.
Saída
A primeira linha será a frase 'NOTAS ALTERADAS: ', sem apóstrofos e completamente em maiúsculo, em que deve ser substituído pela quantidade de alunos que tiveram suas notas originais alteradas em decorrência da aplicação do bônus;As próximas N linhas serão as notas de todos os alunos, na mesma ordem dada na entrada, iniciando com asterisco ('*') para indicar as notas que foram alteradas e hífen ('-') para indicar aquelas que não foram, seguido pela posição da referida nota entre parênteses. O formato de cada linha pode ser observada nos exemplos, onde se destacam três características: (I) a posição tem sempre três dígitos, completada com zeros à esquerda quando necessário; (II) todas as notas são exibidas com duas casas decimais e; (III) todas as notas ocupam cinco colunas, incluindo o caractere ponto, e completadas com zeros à esquerda quando necessário.
Samples Input(Entrada)
5
10.00
10.00
10.00
10.00
10.00
0.00
0.00
0.00
0.00
0.00
Samples Output (Saida)
NOTAS ALTERADAS: 0
-(001) original: 10.00 | final: 10.00
-(002) original: 10.00 | final: 10.00
-(003) original: 10.00 | final: 10.00
-(004) original: 10.00 | final: 10.00
-(005) original: 10.00 | final: 10.00
Soluções para a tarefa
Resposta:
contadorP = 0
contadorS = 0
qntdAlunos = []
numeroAluno = int(input())
qntdAlunos.append(numeroAluno)
n = 0
for i in range(0,qntdAlunos[n]):
if qntdAlunos[n] != 0:
vetNotaOrig = []
while qntdAlunos[n] != contadorP:
notaAlunoOriginal = float(input())
vetNotaOrig.append(notaAlunoOriginal)
contadorP += 1
vetNotaAtv = []
while qntdAlunos[n] != contadorS:
notaAlunoAtv = float(input())
vetNotaAtv.append(notaAlunoAtv)
contadorS += 1
while True:
y = 0
vetFinal = []
while qntdAlunos[n] != y:
vetFinal = vetNotaAtv
vetFinal[y] = vetNotaOrig[y]
if vetFinal[y] >= 10:
vetFinal[y] = 10
y += 1
p = 0
nA = 0
while qntdAlunos[n] != p:
if vetNotaOrig[p] != vetFinal[p]:
nA += 1
p += 1
else:
nA += 0
p += 1
y = 0
z = 1
print('NOTAS ALTERADAS:',nA)
while qntdAlunos[n] != y:
if vetNotaOrig[y] != vetFinal[y]:
x = '*'
else:
x = '-'
print(x,'({:03d})'.format(z),'original:',f'{vetNotaOrig[y]:0>5.2f}','|','final:',f'{vetFinal[y]:0>5.2f}')
z += 1
y += 1
break
else:
n += 1
Explicação: