none
Contar registros vector RRS feed

  • Question

  • Buenos días. Tengo un ejercicio que no puedo resolver

    Es un app de consola donde tengo que ingresar una determinada cantidad de datos y luegos mostrar las estadísticas. Los datos ya los pude ingresar pero no se como mostrar las estadísticas.

    Cantidad de alumnos por ciclo lectivo ya lo tengo hecho.

    Me falta cantidad de aprobados, desaprobado y promocionados por materia. Lo pude hacer con una sola pero no con dos.

    Tengo este código pero me trae los mismos datos para ambas materias.

    For i As Integer = 0 To Materia.Length - 1 Dim count As Integer = 0 For j As Integer = 0 To Materia.Length - 1 If Materia(i) = Materia(j) Then count += 1 If numero(Materia(i)) Then list(i) = Materia(i) End If End If Next If list(i) <> "" Then Console.WriteLine("La materia " & list(i) & " tiene " & count & " alumno/s.") ContarPromocionados = 0 ContarAprobados = 0 ContarDesaprobados = 0 ContarCiclo = 0 For f As Integer = 0 To Promedios.Length - 1 Promedios(f) = Nothing Next list.GetValue(i) For x As Integer = 0 To list.Length - 1 If CicloLectivo(x) = 2020 Then ContarCiclo = ContarCiclo + 1 End If Promedios(x) = (NotaPrimerParcial(x) + NotaSegundoParcial(x) + NotaTrabajoPractico(x)) / 3 If (Promedios(x) >= 7) Then ContarPromocionados = ContarPromocionados + 1 ElseIf (Promedios(x) > 4) And (Promedios(x) < 7) Then ContarAprobados = ContarAprobados + 1 ElseIf (Promedios(x) < 4) Then ContarDesaprobados = ContarDesaprobados + 1 End If Next Console.WriteLine(ContarPromocionados & " promocionados") Console.WriteLine(ContarAprobados & " aprobados") Console.WriteLine(ContarDesaprobados & " desaprobados") End If Next

    Function numero(num As String) As Boolean

            For i As Integer = 0 To list.Length - 1

                If list(i) = num Then

                    Return False

                End If

            Next
            Return True

        End Function


    Espero sus respuestas. Gracias :)


    Wednesday, July 8, 2020 2:57 PM

All replies

  • Hola Pablo N Rodriguez A,


    ¿Podrías por favor comentar tu código para poder entender con mayor detalle qué es lo que hace o se supone que haga cada parte? Te sugeriría que pongas a tu programa a imprimir todos los datos que tienes para que revises que todo este en orden. Se me ocurre que podrías revisar lo siguiente:


    • Las declaraciones de End de cada sección a ver si no hay alguna parte que debería finalizar antes.
    • Si estás guardando la misma materia varias veces y por eso te trae la misma información. siempre.
    • Si estás guardando las mismos cantidades de aprobados, desaprobados y promocionados para todas las materias por el igual.
    • Tus operaciones matemáticas y los datos que les pasas.
    • Si estas guardando los valores que ocupas en las variables que tienes.


    Se me ocurre que podrías crear una clase Materia que tenga como atributos todos esos datos que quieres saber. Así cuando quieras ver esa información en consola podrías simplemente recorrer un arreglo que contenga tus instancias de la clase Materia y por cada una, mostrar todos sus atributos.


    Saludos cordiales

     

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Wednesday, July 8, 2020 4:33 PM
    Moderator
  • Hola Gabriel. Básicamente, hay que ingresar datos de Matrícula, nombre, materia, ciclo lectivo y las 3 notas.

    Y lo que tengo que hacer es que por cada materia que se haya registrado, tomar las 3 notas de cada alumno y hacer un promedio para calcular si el alumno aprobó, desaprobó o promocionó. Y después contar cuantos aprobaron, cuantos desaprobaron y cuantos promocionaron en cada materia.

    Las variable son estas

     Dim Matricula() As Int32
        Dim NombreApellido() As String
        Dim NotaPrimerParcial() As Int32
        Dim NotaSegundoParcial() As Int32
        Dim NotaTrabajoPractico() As Int32
        Dim Materia() As String
        Dim CicloLectivo() As Int32
        Dim Promedios() As Double
        Dim ContarPromocionados As Double
        Dim ContarAprobados As Int32
        Dim ContarDesaprobados As Int32

    Wednesday, July 8, 2020 8:37 PM