Tengo que terminar un ejercicio de Visual Basic para el lunes, en todo el programa, he desarrollado una función que muestra por pantalla los alumnos que tienen una nota superior o inferior a la que se le pase como parámetro.
El caso es que no funciona bien... y por más que le doy vueltas no encuentro el error... alguien puede verlo y ayudarme?
Código:
Agradecería mucho la ayuda, ya tengo la cabeza bastante sobrecargada, pero no puedo parar hasta que acabe Public Sub mostrarpornota(ByRef corte As Integer, ByRef porencima As Boolean) If listalumnos.Count > 0 Then 'Si hay alumnos... Dim i, j As Integer 'Creamos dos variables contador, j por si existen notas Dim total As Double = 0 'Creamos una memoria donde almacenar la suma de las notas. Dim media As Double = 0 'y otra para calcular la media Dim textoencima As String = "Alumnos con nota superior a " & corte & ": " & vbNewLine Dim textoabajo As String = "Alumnos con nota inferior a " & corte & ": " & vbNewLine For i = 0 To listalumnos.Count - 1 'recorremos el arraylist de empleados total = 0 'inicializamos las variables en cada alumno. media = 0 If listalumnos(i).listanotas.Count > 0 Then 'Si hay registradas notas... For j = 0 To listalumnos(i).listanotas.Count - 1 'recorremos el arraylist de notas.. total = total + listalumnos(i).listanotas(j) ' las sumamos media = total / listalumnos(i).listanotas.Count ' y sacamos la media If media >= corte Then ' si la media está igual o por encima del corte fijado textoencima = textoencima & "- Nombre: " & listalumnos(i).nombre & " Nota media: " & media & vbNewLine 'guardamos aquí Else 'si no... textoabajo = textoabajo & "- Nombre: " & listalumnos(i).nombre & " Nota media: " & media & vbNewLine ' aquí End If Next End If Next If porencima = True Then 'Si lo que se quiere son las notas por encima del corte MessageBox.Show(textoencima, "Alumnos sobre " & corte) 'Sacamos mensaje por pantalla Else 'si son las que hay por debajo... MessageBox.Show(textoabajo, "Alumnos bajo " & corte) End If Else 'Si no hay empleados... MessageBox.Show("No hay empleados", "Error") 'no hay por qué hacer todo lo otro. End If End Sub

Saludos