Professional Documents
Culture Documents
2018
Fundamentos de Programación (DS-DFPR-1802-B1-006)
Unidad 6: Funciones
Evidencia de Aprendizaje. Implementación de funciones en un
programa en lenguaje C.
Contenido
Índice de ilustraciones ....................................................................................................... 1
Índice de Tablas ................................................................................................................ 1
Resumen ........................................................................................................................... 1
Planteamiento de problema ............................................................................................... 1
Análisis y diseño de solución ............................................................................................. 1
Algoritmo ........................................................................................................................... 2
Solución por módulos ........................................................................................................ 3
Diagrama modular ............................................................................................................. 3
Módulo LeerNomyCalif ...................................................................................................... 3
Módulo Promedios ............................................................................................................. 4
Módulo Situación ............................................................................................................... 4
Codificación ....................................................................................................................... 5
Índice de ilustraciones
Ilustración 1 Diagrama Modular del programa.................................................................... 3
Ilustración 2 Codificación del programa parte uno ............................................................. 5
Ilustración 3 Codificación del programa parte dos .............................................................. 5
Ilustración 4 Primera ejecución del programa. ................................................................... 6
Ilustración 5 Segunda ejecución del programa................................................................... 6
Índice de Tablas
Tabla 1 Algoritmo y diagrama de flujo del Módulo LeerNomyCalif ..................................... 3
Tabla 2 Algoritmo y diagrama de flujo del Módulo .............................................................. 4
Tabla 3 Algoritmo y diagrama de flujo del Módulo .............................................................. 4
Resumen
Se presenta un problema, el cual debe analizarse y proponer un diseño que no ocupe
funciones, para después rediseñar nuestra solución con el uso de módulos para evidenciar
el aprendizaje de las funciones.
Planteamiento de problema
La materia de Fundamentos de Programación cuenta con N alumnos en el grupo. Cada alumno debe
entregar 3 actividades de aprendizaje y presentar un examen práctico.
Diseñe un programa que permita determinar cada alumno aprueba o no la materia, y si tiene derecho
o no a nivelación.
Un alumno tiene derecho a nivelación si su promedio es mayor que 50 y menor que 70.
1
Algoritmo
INICIO
IMPRIME “¿Cuántos alumnos son?”
LEER NumeroAlumnos
DESDE i ← 1 mientras i ≤ NumeroAlumnos, i ← i + 1
IMPRIMIR “Nombre del alumno”, i
LEER Nombre[i-1]
IMPRIMIR “Calificación de la actividad de aprendizaje 1 del alumno”, Nombre[i-1]
LEER Calif1[i-1]
IMPRIMIR “Calificación de la actividad de aprendizaje 2 del alumno”, Nombre[i-1]
LEER Calif2[i-1]
IMPRIMIR “Calificación de la actividad de aprendizaje 3 del alumno”, Nombre[i-1]
LEER Calif3 Calif1[], Calif2[], Calif3[] y Calif4[]
IMPRIMIR “Calificación de la actividad de Examen práctico del alumno”, Nombre[i-1]
LEER Calif4
FIN_DESDE
DESDE i ← 1 mientras i ≤ NumeroAlumnos, i ← i + 1
Prom[i-1]=(Calif1[i-1]+ Calif2[i-1]+ Calif3[i-1]+ Calif4[i-1])/4
FIN_DESDE
DESDE i ← 1 mientras i ≤ NumeroAlumnos, i ← i + 1
SI Prom[i-1]>70
IMPRIMIR “El alumno”, Nombre [i-1], “ha aprobado”
SINO
SI Prom[i-1]>50
Imprimir “El alumno”, Nombre [i-1], “tiene derecho a nivelación”
SINO
IMPRIMIR “El alumno”, Nombre [i-1], “NO tiene derecho a nivelación”
FINSI
FINSI
FIN_DESDE
FIN
2
Solución por módulos
Se dividirá el problema en tres módulos, el primero capturara el nombre y las calificaciones
de los estudiantes, el segundo calculara el promedio de los estudiantes y el tercero definirá
la situación de los estudiantes en cuanto a si aprobaron o si tienen o no derecho a nivelación
con respecto al promedio obtenido. Se describe cada módulo en la Ilustración 1.
Diagrama modular
Principal.
Salida: Prom
Módulo LeerNomyCalif
Módulo LeerNomyCalif
INICIO LeerNomyCalif
DESDE i ← 1 mientras i ≤ NumeroAlumnos,
i←i+1
IMPRIMIR “Nombre del alumno”, i NumeroAlumnos, i=1
LEER Nombre[i-1]
IMPRIMIR “Calificación de la actividad de
aprendizaje 1 del alumno”, Nombre[i-1] I<=NA F
LEER Calif1[i-1]
IMPRIMIR “Calificación de la actividad de
aprendizaje 2 del alumno”, Nombre[i-1] V
LEER Calif2[i-1] Calificación de la actividad de
IMPRIMIR “Calificación de la actividad de aprendizaje 1 del alumno
aprendizaje 3 del alumno”, Nombre[i-1]
LEER Calif3[i-1]
IMPRIMIR “Calificación de la actividad de Calif1[i-1]
Examen práctico del alumno”, Nombre[i-1]
LEER Calif4[i-1]
FIN_DESDE i=i+1
FIN
FIN
3
Módulo Promedios
Módulo Promedios
INICIO Promedios
DESDE i ← 1 mientras i ≤ NumeroAlumnos,
i←i+1
Prom[i-1]=(Calif1[i-1]+ Calif2[i-1]+ Calif3[i- NumeroAlumnos, i=1,
1]+ Calif4[i-1])/4 Calif1[], Calif2[],
FIN_DESDE Calif3[] y Calif4[]
FIN
F
I<=NA
V
Prom[i-1]=(Calif1[i-1]+
Calif2[i-1]+ Calif3[i-
1]+ Calif4[i-1])/4
i=i+1
FIN
Módulo Situación
Módulo Situación
INICIO Situación
DESDE i ← 1 mientras i ≤
NumeroAlumnos, i ← i + 1
SI Prom[i-1]>70 NumeroAlumnos, i=1,
IMPRIMIR “El alumno”, Nombre [i-1], “ha Prom[]
aprobado”
SINO
SI Prom[i-1]>50
Imprimir “El alumno”, Nombre [i-1], “tiene I<=NA F
derecho a nivelación”
SINO
V
IMPRIMIR “El alumno”, Nombre [i-1], “NO
tiene derecho a nivelación” i=i+1
FINSI
FINSI
FIN_DESDE F
FIN Prom[i-1]>70
V
“El alumno”, Nombre [i-1], “ha
aprobado”
Prom[i-1]>70
FIN
4
Codificación
5
Ejecuciones
6
Bibliografía
Muñoz Frías, J. D. (2006). Fundamentos de Programación utilizando el lenguaje C. Madrid:
Universidad Pontificia Comillas.
UnADM. (2018). Unidad 6. Funciones. México: Ciencias Exactas, Ingeniería y Tecnología.