Lógica, perguntado por nataliacampones5, 3 meses atrás

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

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.

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.

Soluções para a tarefa

Respondido por davialmeida0
0

Resposta:

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 = int(input())

              vetNotaOrig.append(notaAlunoOriginal)

              contadorP += 1

         vetNotaAtv = []

         while qntdAlunos[n] != contadorS:

              notaAlunoAtv = int(input())

              vetNotaAtv.append(notaAlunoAtv)

              contadorS += 1

         while True:

              y = 0

              vetFinal = []

              while qntdAlunos[n] != y:

                   vetFinal = vetNotaAtv

                   vetFinal[y] = vetNotaOrig[y] + 2

                   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:

Perguntas interessantes