Saltar al contenido
EjemplosEnglishEspacio →

Gestor de notas del curso

Registra tres notas por alumno y arma el reporte del curso.

Nivel
Avanzado
Conceptos:
Entrada y salida
Matrices
Arreglos
Funciones
Para
Si
Abrir en Codoritmo

Ejecuta, modifica y depura este ejemplo en el navegador.

Lo que aprenderás

Una matriz guarda las notas y un arreglo los nombres de los alumnos. La Funcion PromedioAlumno recibe la matriz completa, y el reporte cuenta aprobados y busca el mejor promedio.

Código

grade-book.psc · 46 líneas
Funcion promedio <- PromedioAlumno(notas, alumno)    Definir promedio Como Real    Definir k Como Entero    promedio <- 0    Para k <- 1 Hasta 3 Hacer        promedio <- promedio + notas[alumno, k]    FinPara    promedio <- promedio / 3FinFuncionAlgoritmo GestorNotas    Definir nombres Como Caracter    Definir notas, mejorPromedio, p Como Real    Definir a, k, mejor, aprobados Como Entero    Dimension nombres[4], notas[4, 3]    Para a <- 1 Hasta 4 Hacer        Escribir "Nombre del alumno ", a, ":"        Leer nombres[a]        Para k <- 1 Hasta 3 Hacer            Escribir "  Nota ", k, " de ", nombres[a], ":"            Leer notas[a, k]        FinPara    FinPara    Escribir ""    Escribir "Alumno      Promedio   Estado"    mejor <- 1    mejorPromedio <- -1    aprobados <- 0    Para a <- 1 Hasta 4 Hacer        p <- PromedioAlumno(notas, a)        Escribir Sin Saltar nombres[a], "      ", Redon(p * 10) / 10, "      "        Si p >= 6 Entonces            Escribir "Aprobado"            aprobados <- aprobados + 1        SiNo            Escribir "Recursa"        FinSi        Si p > mejorPromedio Entonces            mejorPromedio <- p            mejor <- a        FinSi    FinPara    Escribir ""    Escribir "Aprobaron ", aprobados, " de 4 alumnos."    Escribir "Mejor promedio: ", nombres[mejor], " (", Redon(mejorPromedio * 10) / 10, ")"FinAlgoritmo

Diagrama de flujo

Cada bloque del diagrama corresponde a una instrucción del código.

Algoritmo GestorNotas
Algoritmo GestorNotasSíNoSíNoAlgoritmo GestorNotasAlgoritmo GestorNotasDefinir nombres Como CaracterDefinir nombres Como CaracterDefinir notas, mejorPromedio, p Como RealDefinir notas, mejorPromedio,p Como RealDefinir a, k, mejor, aprobados Como EnteroDefinir a, k, mejor, aprobadosComo EnteroDimension nombres[4], notas[4, 3]Dimension nombres[4], notas[4,3]Para a <- 1 Hasta 4 HacerPara a <- 1 Hasta 4Escribir "Nombre del alumno ", a, ":"Escribir "Nombre del alumno ",a, ":"Leer nombres[a]Leer nombres[a]Para k <- 1 Hasta 3 HacerPara k <- 1 Hasta 3Escribir " Nota ", k, " de ", nombres[a], ":"Escribir " Nota ", k, " de ",nombres[a], ":"Leer notas[a, k]Leer notas[a, k]Escribir ""Escribir ""Escribir "Alumno Promedio Estado"Escribir "Alumno PromedioEstado"mejor <- 1mejor <- 1mejorPromedio <- -1mejorPromedio <- -1aprobados <- 0aprobados <- 0Para a <- 1 Hasta 4 HacerPara a <- 1 Hasta 4p <- PromedioAlumno(notas, a)p <- PromedioAlumno(notas, a)Escribir Sin Saltar nombres[a], " ", Redon(p * 10) / 10, " "Escribir Sin Saltarnombres[a], " ", Redon(p* 10) / 10, " "Si p >= 6 Entoncesp >= 6Escribir "Aprobado"Escribir "Aprobado"aprobados <- aprobados + 1aprobados <- aprobados + 1Escribir "Recursa"Escribir "Recursa"Si p > mejorPromedio Entoncesp > mejorPromediomejorPromedio <- pmejorPromedio <- pmejor <- amejor <- aEscribir ""Escribir ""Escribir "Aprobaron ", aprobados, " de 4 alumnos."Escribir "Aprobaron ",aprobados, " de 4 alumnos."Escribir "Mejor promedio: ", nombres[mejor], " (", Redon(mejorPromedio * 10) / 10, ")"Escribir "Mejor promedio: ",nombres[mejor], " (",Redon(mejorPromedio * 10) /…FinAlgoritmoFinAlgoritmo
Funcion PromedioAlumno
Funcion PromedioAlumnoFuncion promedio <- PromedioAlumno(notas, alumno)Funcion promedio <-PromedioAlumno(notas, alumno)Definir promedio Como RealDefinir promedio Como RealDefinir k Como EnteroDefinir k Como Enteropromedio <- 0promedio <- 0Para k <- 1 Hasta 3 HacerPara k <- 1 Hasta 3promedio <- promedio + notas[alumno, k]promedio <- promedio +notas[alumno, k]promedio <- promedio / 3promedio <- promedio / 3FinFuncion (devuelve promedio)FinFuncion (devuelve promedio)

Ejemplo de ejecución

Esto muestra el programa al ejecutarlo. Las respuestas escritas por el usuario aparecen resaltadas.

Nombre del alumno 1:Respuesta del usuario: Ana  Nota 1 de Ana:Respuesta del usuario: 9  Nota 2 de Ana:Respuesta del usuario: 8  Nota 3 de Ana:Respuesta del usuario: 10Nombre del alumno 2:Respuesta del usuario: Bruno  Nota 1 de Bruno:Respuesta del usuario: 5  Nota 2 de Bruno:Respuesta del usuario: 6  Nota 3 de Bruno:Respuesta del usuario: 4Nombre del alumno 3:Respuesta del usuario: Carla  Nota 1 de Carla:Respuesta del usuario: 7  Nota 2 de Carla:Respuesta del usuario: 7  Nota 3 de Carla:Respuesta del usuario: 8Nombre del alumno 4:Respuesta del usuario: Diego  Nota 1 de Diego:Respuesta del usuario: 6  Nota 2 de Diego:Respuesta del usuario: 5  Nota 3 de Diego:Respuesta del usuario: 7 Alumno      Promedio   EstadoAna      9      AprobadoBruno      5      RecursaCarla      7.3      AprobadoDiego      6      Aprobado Aprobaron 3 de 4 alumnos.Mejor promedio: Ana (9)

Desafío

Muestra también el promedio general de todo el curso.

Ver pista

Suma cada p en un acumulador y divide entre 4 al final.

Abrir en Codoritmo