Exercício – Calcular a média das pontuações das tarefas do aluno

Concluído

Neste exercício, você calculará e armazenará a média das pontuações das tarefas de cada aluno. Como você sabe o número de tarefas pontuadas de cada aluno, a média será calculada dividindo a soma das pontuações das tarefas pelo número de tarefas. Para armazenar as médias, você usará o tipo de dados Decimal.

Criar variáveis para armazenar a média

Nesta tarefa, você criará uma variável para cada aluno que pode ser usada para armazenar a pontuação média de suas tarefas que valem nota.

  1. No Editor do .NET, localize as instruções Console.WriteLine() usadas para exibir as pontuações somadas de cada aluno.

  2. Crie uma linha de código em branco acima das instruções Console.WriteLine().

  3. Na linha de código em branco que você criou, para declarar as variáveis Decimal que serão usadas para as pontuações atuais dos alunos, digite o seguinte código:

    decimal sophiaScore;
    decimal nicolasScore;
    decimal zahirahScore;
    decimal jeongScore;
    
    

    Observe que você está apenas declarando as variáveis decimal, não inicializando-as. Você escolheu o tipo decimal porque estava representando uma nota média e queria incluir uma casa decimal que não estaria disponível se você usasse um número inteiro. Dessa forma, será possível ver se um aluno obteve uma pontuação de 89,9 e arredondar sua nota de um B para um A.

    No exercício anterior, você inicializou as variáveis inteiras para usá-las imediatamente na saída do console. Neste caso, essas variáveis decimal serão inicializadas na próxima etapa usando cálculos com os dados existentes, começando com a pontuação de Sofia.

  4. Para atribuir a pontuação atual de Sofia na disciplina ao decimal sophiaScore, atualize a variável com o seguinte código:

    decimal sophiaScore = sophiaSum / currentAssignments;
    
    

    Para calcular a pontuação atual de um aluno para a disciplina, divida a soma das pontuações das tarefas pelo número total de tarefas. Cada aluno da turma tem cinco tarefas, representadas por currentAssignments, que você inicializou durante a configuração.

  5. Para atribuir o restante das pontuações dos alunos, insira o seguinte código:

    decimal nicolasScore = nicolasSum / currentAssignments;
    decimal zahirahScore = zahirahSum / currentAssignments;
    decimal jeongScore = jeongSum / currentAssignments;
    
    

    Por fim, você deseja exibir as notas de cada aluno neste aplicativo. Na próxima etapa, você modificará o código para exibir a pontuação de cada aluno, em vez da soma das tarefas.

  6. Para exibir a pontuação atual de cada aluno, substitua as variáveis de soma nas instruções de exibição pelas variáveis de pontuação:

    Console.WriteLine("Sophia: " + sophiaScore);
    Console.WriteLine("Nicolas: " + nicolasScore);
    Console.WriteLine("Zahirah: " + zahirahScore);
    Console.WriteLine("Jeong: " + jeongScore);
    
    
  7. Dedique um minuto à análise da abordagem incremental que você está usando para desenvolver este aplicativo.

    Dividir um problema em partes menores é uma habilidade importante para os desenvolvedores. Criar o código de maneira incremental e verificar o trabalho com frequência resulta no desenvolvimento rápido de aplicativos confiáveis. Nesse caso, é possível redirecionar Console.WriteLine() para verificar se os cálculos estão corretos ao concluir cada estágio do processo.

  8. Para exibir os valores da nota atual de cada aluno, selecione Executar.

    A seguinte saída deve ser exibida:

    Sophia: 94
    Nicolas: 83
    Zahirah: 83
    Jeong: 95
    
  9. Observe que as pontuações são exibidas como números inteiros em vez de decimais.

    Quando você deseja que o resultado de um cálculo de divisão seja um valor decimal, o dividendo ou o divisor deve ser do tipo decimal (ou ambos). Ao usar variáveis inteiras no cálculo, é necessário aplicar uma técnica conhecida como coerção para "converter" um inteiro em um decimal.

    Para o cálculo da pontuação, é possível obter um resultado decimal convertendo a variável de soma ou currentAssignments em um tipo decimal. Nesse caso, você converterá a soma em um decimal.

  10. Em suas operações de divisão, para converter uma variável inteira em um decimal, atualize o código da seguinte maneira:

    decimal sophiaScore = (decimal) sophiaSum / currentAssignments;
    decimal nicolasScore = (decimal) nicolasSum / currentAssignments;
    decimal zahirahScore = (decimal) zahirahSum / currentAssignments;
    decimal jeongScore = (decimal) jeongSum / currentAssignments;
    

    Só é necessário que o dividendo ou o divisor seja do tipo decimal para que a divisão resulte em um valor decimal. Aqui, você converte apenas a variável de soma que é usada como dividendo.

  11. Revise a seguinte escala de notas que o professor usa para atribuir notas com formato de letra:

    97 - 100    A+
    93 - 96     A
    90 - 92     A-
    87 - 89     B+
    83 - 86     B
    

    O próximo passo é incluir uma nota com formato de letra para cada aluno com base na pontuação total. Adicionar a nota com formato de letra à saída exibida será um processo manual.

  12. Para determinar o valor da nota atual de cada aluno, selecione Executar.

    Use a nota atual de cada aluno para determinar a nota com formato de letra apropriada, arredondando para cima ou para baixo conforme necessário.

  13. Para acrescentar a nota com formato de letra após a pontuação numérica de cada aluno, atualize o código da seguinte maneira:

    Console.WriteLine("Sophia: " + sophiaScore + " A");
    Console.WriteLine("Nicolas: " + nicolasScore + " B");
    Console.WriteLine("Zahirah: " + zahirahScore + " B");
    Console.WriteLine("Jeong: " + jeongScore + " A");
    

Verificar seu trabalho

Nesta tarefa, você executará o código e verificará se a saída está correta.

  1. Compare seu código com o seguinte:

    int currentAssignments = 5;
    
    int sophia1 = 93;
    int sophia2 = 87;
    int sophia3 = 98;
    int sophia4 = 95;
    int sophia5 = 100;
    
    int nicolas1 = 80;
    int nicolas2 = 83;
    int nicolas3 = 82;
    int nicolas4 = 88;
    int nicolas5 = 85;
    
    int zahirah1 = 84;
    int zahirah2 = 96;
    int zahirah3 = 73;
    int zahirah4 = 85;
    int zahirah5 = 79;
    
    int jeong1 = 90;
    int jeong2 = 92;
    int jeong3 = 98;
    int jeong4 = 100;
    int jeong5 = 97;
    
    int sophiaSum = sophia1 + sophia2 + sophia3 + sophia4 + sophia5;
    int nicolasSum = nicolas1 + nicolas2 + nicolas3 + nicolas4 + nicolas5;
    int zahirahSum = zahirah1 + zahirah2 + zahirah3 + zahirah4 + zahirah5;
    int jeongSum = jeong1 + jeong2 + jeong3 + jeong4 + jeong5;
    
    decimal sophiaScore = (decimal) sophiaSum / currentAssignments;
    decimal nicolasScore = (decimal) nicolasSum / currentAssignments;
    decimal zahirahScore = (decimal) zahirahSum / currentAssignments;
    decimal jeongScore = (decimal) jeongSum / currentAssignments;
    
    Console.WriteLine("Sophia: " + sophiaScore + " A");
    Console.WriteLine("Nicolas: " + nicolasScore + " B");
    Console.WriteLine("Zahirah: " + zahirahScore + " B");
    Console.WriteLine("Jeong: " + jeongScore + " A");
    
  2. Para executar o código e exibir as pontuações dos alunos com notas com formato de letra, selecione Executar.

  3. Para verificar se o código está funcionando conforme o esperado, compare a saída do aplicativo com a seguinte saída:

    Sophia: 94.6 A
    Nicolas: 83.6 B
    Zahirah: 83.4 B
    Jeong: 95.4 A
    

    O código agora deve exibir as pontuações do aluno como um valor decimal, e você deve ver a letra da nota que atribuiu.

    Se o código exibir resultados diferentes, você precisará examinar o código para encontrar o erro e fazer atualizações. Execute o código novamente para ver se você corrigiu o problema. Continue atualizando e executando o código até que ele produza os resultados esperados.

Importante

Não exclua nenhuma parte do código que você escreveu até agora. Você desenvolverá esse código no próximo exercício.