You are on page 1of 8

Universidad Abierta y a distancia de México

2018
Fundamentos de Programación (DS-DFPR-1802-B1-006)

Alumno: César Morgado Pérez


Ingeniería en Desarrollo de Software
Matricula: ES1821000003

Docente: Claudia Erika González Gómez

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.

Para obtener la calificación final se promedia las 4 calificaciones obtenidas.

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 aprueba si tiene un promedio mayor o igual que 70.

Un alumno tiene derecho a nivelación si su promedio es mayor que 50 y menor que 70.

Análisis y diseño de solución


Datos de entrada: NumeroAlumnos, Nombre[], Calif1[], Calif2[], Calif3[] y Calif4[]
Datos adicionales: 50, 70, 4
Proceso: (Calif1+ Calif2+ Calif3+ Calif4)/4
Datos de salida: Prom

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.

Datos Entrada: NumeroAlumnos

Salida: Prom

LeerNomyCalif Promedios Situación

Parámetro de Entrada: Parámetro de Entrada: Calif1[], Parámetro de Entrada:


Nombre[] Calif2[], Calif3[] y Calif4[] Nombre[],prom[])

Retorno: Calif1[], Calif2[], Retorno: nulo(actualiza prom[]) Retorno: nulo


Calif3[] y Calif4[]

Ilustración 1 Diagrama Modular del programa.

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

Tabla 1 Algoritmo y diagrama de flujo del Módulo LeerNomyCalif

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

Tabla 2 Algoritmo y diagrama de flujo del Módulo

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

“El alumno”, Nombre [i-1], “ha


aprobado”

FIN

Tabla 3 Algoritmo y diagrama de flujo del Módulo

4
Codificación

Ilustración 2 Codificación del programa parte uno

Ilustración 3 Codificación del programa parte dos

5
Ejecuciones

Ilustración 4 Primera ejecución del programa.

Ilustración 5 Segunda ejecución del programa.

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.

You might also like