No description
- Rust 100%
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
🎯 Desafio: Sistema de Notas de Alunos
Parte base (para os dois)
Escreva um programa que:
- Armazene uma lista de alunos, cada um com nome e 3 notas
- Calcule a média de cada aluno
- Classifique cada aluno como:
- Aprovado (média ≥ 7)
- Recuperação (média entre 5 e 6.9)
- Reprovado (média < 5)
- Ao final, mostre:
- A lista de todos os alunos com sua média e situação
- O nome do aluno com a maior média
- A média geral da turma
Exemplo de saída
Ana - Média: 8.3 - Aprovado
Bruno - Média: 5.5 - Recuperação
Carlos - Média: 3.0 - Reprovado
Melhor aluno: Ana (8.3)
Média da turma: 5.6
🔵 Extra para quem já programa
Além do que já foi pedido, adicione:
- Tratamento de erros: se alguma nota for inválida (negativa, maior que 10, ou não numérica), a nota do aluno deve ser marcada como inválida sem quebrar o programa — capture isso com o mecanismo de erro idiomático da linguagem (try/catch, Result, exceptions, o que for)
- Ordenação: exiba a lista final ordenada da maior pra menor média, usando a forma idiomática de ordenar coleções na linguagem escolhida
- Imutabilidade (se a linguagem suportar): tente resolver usando estruturas imutáveis ou funções puras, evitando alterar o estado diretamente
Estrutura de dados sugerida (adapte pra sua linguagem)
alunos = [
{"nome": "Ana", "notas": [8.5, 7.0, 9.5]},
{"nome": "Bruno", "notas": [5.0, 6.0, 5.5]},
{"nome": "Carlos", "notas": [2.0, 4.0, 3.0]},
]