1
resposta

[Projeto] EXERCÍCIO DE CLASSES COM DART

void main(List<String> args) {
  Aluno Aluno1 = Aluno(matricula: 222711, nome: "Janaina", nota_trabalho: 7.5, notas_prova: [8.0,9.0]);

  print(Aluno1.media([8.0,9.0], 7.5));

  print(Aluno1.provafinal([8.0,9.0], 7.5));

}
/*
Escreva uma classe cujos objetos representam alunos matriculados em uma disciplina. Cada objeto
dessa classe deve guardar os seguintes dados do aluno: matrícula, nome, 2 notas de prova e 1 nota de
trabalho. Escreva os seguintes métodos para esta classe:
  media calcula a média final do aluno (cada prova tem peso 2,5 e o trabalho tem peso 2)
  final calcula quanto o aluno precisa para a prova final (retorna zero se ele não for para a final)
*/
class Aluno{
  //Dados do Aluno
  int matricula;
  String nome;
  List<double> notas_prova;
  double nota_trabalho;

  //Determinando que todos os dados são obrigatórios, mas não posicionais.
  Aluno({required this.matricula, required this.nome, required this.nota_trabalho, required this.notas_prova});

  double media( notas_prova, nota_trabalho){
      double P1 = notas_prova[0];
      double P2 = notas_prova[1];
      double med = ((P1*2.5)+(P2*2.5)+(nota_trabalho*2))/(7);

      return med;
  }

  double provafinal(notas_prova, nota_trabalho){
    //vou supor que a média final para passar é 7, pois o exercício não especifica
    double P1 = notas_prova[0];
    double P2 = notas_prova[1];
    double obj = 7.0;
    double fin = 9.5*(obj - (((P1*2.5)+(P2*2.5)+(nota_trabalho*2))/(9.5)))/2.5; 

    return fin;
  }
}

Peguei um exercício da internet para treinar o conteúdo dado no curso. Estou postando pois, gostaria de receber sugestões de melhoria no código na parte de construção da classe e dos métodos. Na função main(), tenho consciência de que preciso armazenar os valores dos argumentos em variáveis e formular um print, mais adequado para as informações.

Em suma é isso, qualquer sugestão é bem vinda!

1 resposta

Olá Janaina!

Seu código está bem estruturado e atende aos requisitos do exercício proposto. Uma sugestão de melhoria seria adicionar validações nos métodos media e provafinal para garantir que as notas informadas estejam dentro do intervalo de 0 a 10. Você pode fazer isso utilizando condicionais para verificar se as notas estão dentro do intervalo e, caso contrário, retornar uma mensagem de erro.

Outra sugestão seria utilizar a interpolação de strings para formatar a saída do método main, tornando-a mais legível e fácil de entender.

Por exemplo:

void main(List<String> args) {
  Aluno aluno1 = Aluno(matricula: 222711, nome: "Janaina", nota_trabalho: 7.5, notas_prova: [8.0, 9.0]);

  double mediaFinal = aluno1.media(aluno1.notas_prova, aluno1.nota_trabalho);
  double notaFinal = aluno1.provafinal(aluno1.notas_prova, aluno1.nota_trabalho);

  print("Média final do aluno ${aluno1.nome}: $mediaFinal");
  print("Nota necessária na prova final do aluno ${aluno1.nome}: $notaFinal");

}

Espero ter ajudado e bons estudos!