typestar

Reporte de calificaciones en Visual Basic

Un programa completo: consultar un diccionario, ordenar por promedio, ponerle letra.

' Promedia las notas de quiz por estudiante e imprime una boleta con ranking.

Module GradeReport
    Sub Main()
        Dim scores As New Dictionary(Of String, Integer()) From {
            {"ada", {92, 88, 99}},
            {"grace", {85, 91, 78}},
            {"alan", {70, 82, 88}}
        }

        Dim ranked = From entry In scores
                     Let mean = entry.Value.Average()
                     Order By mean Descending
                     Select name = entry.Key, mean

        Console.WriteLine("student      mean  grade")
        For Each row In ranked
            Dim line = $"{row.name,-10}{row.mean,7:F1}  {LetterFor(row.mean)}"
            Console.WriteLine(line)
        Next
    End Sub

    Function LetterFor(mean As Double) As String
        If mean >= 90 Then Return "A"
        If mean >= 80 Then Return "B"
        Return "C"
    End Function
End Module

Cómo funciona

  1. Let mean = ... calcula una vez y nombra el resultado dentro de la consulta.
  2. Select name = entry.Key, mean da forma a filas de resultado anónimas.
  3. Una Function auxiliar en el mismo Module convierte promedios en letras.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
28
Caracteres a escribir
677
Tokens
158
Ritmo de tres estrellas
80 tpm

Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 118 segundos.

Escribe este fragmento

Paso 1 de 2 en Bis; paso 28 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →