Ejercicio: Formateo de la salida mediante secuencias de caracteres de escape

Completado

En este ejercicio, modificará la salida de la consola del ejercicio anterior para lograr el formato de informe que ha especificado el profesor.

Formateo de la salida de la consola

En esta tarea, actualizará el código para aplicar los últimos toques a la salida notificada. Comenzará agregando una fila de encabezado que incluya las etiquetas de columna especificadas por el profesor. Después de eso, usará secuencias de escape de caracteres para agregar más espaciado interno entre las columnas de información.

  1. En el editor de .NET, busque las instrucciones Console.WriteLine() que se usan para mostrar la puntuación de clase actual de cada alumno y la letra de calificación.

  2. Agregue una nueva línea de código en blanco encima de las instrucciones Console.WriteLine().

  3. En la línea de código en blanco que ha creado, escriba el código siguiente para agregar un encabezado para las calificaciones de los alumnos:

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

    Observe que ha incluido \n al final del texto. En el módulo "Realizar formato de cadena básico con C#", ha aprendido que la secuencia de caracteres de escape \n generará una nueva línea. La ubicación de la secuencia de escape es importante. En este caso, \n se encuentra al final de la información que desea escribir en la consola, por lo que la nueva línea se agregará después de mostrar la "calificación del alumno".

  4. Para formatear la salida en forma de columnas alineadas de texto, reemplace los espacios entre palabras por la secuencia de escape \t como se indica a continuación:

    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");
    

    La secuencia de escape \t insertará una tabulación entre los elementos de texto. Agregar las tabulaciones generará columnas de información alineadas a la izquierda.

  5. Para ver los resultados de las actualizaciones, seleccione Ejecutar.

  6. Compare la salida de la aplicación con la siguiente salida:

    Student	Grade
    
    Sophia: 94.6    A
    Nicolas:    83.6    B
    Zahirah:    83.4    B
    Jeong:  95.4    A
    
  7. Observe que, a pesar de usar una pestaña en lugar de un carácter de espacio, algunas líneas todavía no tienen mucho espacio en blanco entre el nombre del alumno y su puntuación numérica.

    Esta diferencia se debe a la forma en que se aplica el espaciado de tabulación. Las ubicaciones de las tabulaciones se especifican en intervalos de cuatro caracteres y cada tabulación avanza a la siguiente ubicación de tabulación. Si tiene una cadena de cinco caracteres seguida de una secuencia de escape de tabulación, la secuencia de escape avanzará a la tabulación en la ubicación de ocho caracteres, rellenando el hueco con caracteres de espacio para crear espacios en blanco en la salida. Sin embargo, puede avanzar a la misma ubicación si tiene una cadena de siete caracteres seguida de una secuencia de escape de tabulación. Esto hace que las secuencias de escape de tabulación se aprecien mejor cuando se producen más allá de la siguiente ubicación de tabulación.

  8. Para que el espacio en blanco sea más notable entre las dos primeras columnas, agregue otro \t después de los dos nombres de alumno más cortos de la siguiente manera:

    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");
    

Comprobación del trabajo

En esta tarea, ejecutará el código y comprobará que la salida es correcta.

  1. Compare el código con lo siguiente:

    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 ejecutar el código y mostrar la salida con formato, seleccione Ejecutar.

  3. Para comprobar que el código funciona según lo previsto, compare la salida de la aplicación con la salida siguiente:

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

    Si el código muestra resultados diferentes, deberá revisarlo para encontrar el error y realizar las actualizaciones correspondientes. Vuelva a ejecutar el código para ver si ha corregido el problema. Continúe actualizando y ejecutando el código hasta que genere el resultado esperado.