Exercício – Formatar a saída usando sequências de caracteres de escape

Concluído

Neste exercício, você modificará a saída do console do exercício anterior para obter o formato de relatório especificado pelo professor.

Formatar a saída do console

Nesta tarefa, você atualizará seu código para aplicar os toques finais à saída relatada. Você começará adicionando uma linha de cabeçalho que inclui os rótulos de coluna especificados pelo professor. Depois disso, você usará sequências de escape de caracteres para adicionar preenchimento extra entre as colunas de informações.

  1. No Editor do .NET, localize as instruções Console.WriteLine() usadas para exibir a nota da classe atual de cada aluno e a nota em letra.

  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 adicionar um cabeçalho para notas de alunos, insira o seguinte código:

    Console.WriteLine("Student Grade\n");
    

    Observe que você está incluindo \n no final do texto. No módulo "Executar formatação de cadeia de caracteres básica com C#", você aprendeu que a sequência de caracteres de escape \n fará com que uma linha seja criada. O local da sequência de escape é importante. Nesse caso, o \n está no final das informações que você deseja gravar no console. Portanto, a nova linha será adicionada após a exibição de "Nota do Aluno".

  4. Para formatar a saída como colunas alinhadas de texto, substitua os espaços entre palavras pela sequência de escape \t da seguinte maneira:

    Console.WriteLine("Student\tGrade\n");
    Console.WriteLine("Sophia:\t" + sophiaScore + "\tA");
    Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB");
    Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB");
    Console.WriteLine("Jeong:\t" + jeongScore + "\tA");
    

    A sequência de escape \t inserirá uma parada de tabulação entre os itens de texto. Adicionando essas paradas de tabulação devem resultar em colunas de informações alinhadas à esquerda.

  5. Para exibir os resultados das atualizações, selecione Executar.

  6. Compare a saída do aplicativo com a seguinte saída:

    Student	Grade
    
    Sophia: 94.6    A
    Nicolas:    83.6    B
    Zahirah:    83.4    B
    Jeong:  95.4    A
    
  7. Observe que, apesar de usar uma guia em vez de um caractere de espaço, algumas linhas ainda não têm muito espaço em branco entre o nome do aluno e sua nota numérica.

    Essa diferença se deve à forma como o espaçamento de tabulação é aplicado. Os locais de parada de tabulação são definidos em intervalos de quatro caracteres e cada guia avançará para o próximo local de parada de tabulação. Se você tiver uma cadeia de caracteres de cinco caracteres seguida por uma sequência de escape de tabulação, a sequência de escape avançará para a parada de tabulação no local de oito caracteres, preenchendo a lacuna com caracteres de espaço para criar espaço em branco na saída. No entanto, você poderá avançar para o mesmo local se tiver uma cadeia de caracteres de sete caracteres seguida por uma sequência de escape de tabulação. Isso torna as sequências de escape de tabulação mais perceptíveis quando elas ocorrem mais longe do próximo local de parada de tabulação.

  8. Para tornar o espaço em branco mais perceptível entre as duas primeiras colunas, adicione outro \t após os dois nomes de alunos mais curtos da seguinte forma:

    Console.WriteLine("Student\t\tGrade\n");
    Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA");
    Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB");
    Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB");
    Console.WriteLine("Jeong:\t\t" + jeongScore + "\tA");
    

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("Student\t\tGrade\n");
    Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA");
    Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB");
    Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB");
    Console.WriteLine("Jeong:\t\t" + jeongScore + "\tA");
    
  2. Para executar o código e exibir a saída formatada, 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:

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

    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.