Informática, perguntado por lucas27484, 6 meses atrás

Para automatizar o cálculo da nota dos alunos na disciplina de Algoritmos e Programação de Computadores, o professor da disciplina solicitou a sua ajuda para criar um programa que calcule a média das três avaliações somativas de cada um dos alunos e informe se o aluno foi aprovado ou não. Nesta disciplina, o aluno é aprovado se sua nota é maior ou igual a 7.0.

Entrada:

A primeira linha contém um inteiro N (1 ≤ N ≤ 50 ) que representa a quantidade de alunos da turma. Cada uma das N linhas seguintes contém 3 valores do tipo double representando, cada um, as respectivas notas as1, as2 e as3 de cada uma das avaliações somativas do aluno (0.0 ≤ asi ≤ 10).

Saída:

A saída deve conter uma linha para cada aluno com a frase "O ALUNO X FOI APROVADO" se o aluno foi aprovado na média final ou "O ALUNO X FOI REPROVADO" se o aluno foi reprovado na média final, onde X representa o índice do aluno, conforme apresentado nos exemplos.

Observações:
No primeiro caso de teste, o aluno 0 foi aprovado pois a média das notas dele é 10.0. O aluno 1 foi aprovado pois a média das notas dele é 7.0. E o aluno 2 foi reprovado pois a média das notas dele é 6.99.

Anexos:

Soluções para a tarefa

Respondido por GeBEfte
4

O programa a seguir não possui validação de dados ou controle/tratamento de exceções, assim cabe ao usuário digitar cuidadosamente as informações como mostram os exemplos no texto.

Vamos atentar agora para uma informação importante dada sutilmente nas observações. Note que a média do "aluno 2" deveria ser 6,999..., uma dízima periódica, mas que, segundo o exemplo, foi dada como 6,99.

Isso nos diz que a média não deve ser arredondada, mas sim truncada.

Como não será preciso mostrar as médias esse truncamento não precisará ser efetuado, mas, caso fosse necessário, poderíamos utilizar uma biblioteca ou mesmo uma manipulação do número transformando-o em string.  

[Python 3.8]

\sf n~ =~ int(inpu t())\\status~ =~ list()\\\\for~ aluno~ in~ range(n):\\~~~~  notas~ =~ inpu t().split()\\~~~~  as1~ =~ float(notas[0])\\~~~~  as2~ =~ float(notas[1])\\  ~~~~as3~ =~ float(notas[2])\\  ~~~~media = (as1+as2+as3)/3\\~~~~  if~ media~ >=~ 7:\\~~~~~~~~    status.append('APROVADO')\\~~~~  else:\\~~~~~~~~    status.append('REPROVADO')\\\\for~ i~ in~ range(len(status)):\\~~~~  print(f'O~ aluno~ \{i\}~ foi~ \{status[i]\}')

\Huge{\begin{array}{c}\Delta \tt{\!\!\!\!\!\!\,\,o}\!\!\!\!\!\!\!\!\:\,\perp\end{array}}Qualquer~d\acute{u}vida,~deixe~ um~coment\acute{a}rio

Perguntas interessantes