Vous êtes sur la page 1sur 12

EVIDENCIA DE

APRENDIZAJE:IMPLEMENTACIÓN
DE FUNCIONES EN UN
PROGRAMA EN LENGUAJE C.
INSTITUTO: Universidad Abierta y a Distancia de México
ALUMNO: Edwing Cid Cantú
DOCENTE: Claudia Erika González Gómez
MATRICULA: ES1821021282
SEMESTRE: Primer
CARRERA: Desarrollo de Software
ASIGNATURA: Fundamentos de programación
CLAVE: 15141102
UNIDAD: 6 “Funciones”
Indicaciones:

1. Lee detalladamente y analiza el siguiente 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.

2. Realiza un análisis y diseño de solución SIN considerar aún el uso de


funciones o módulos, realiza el análisis y determina:

a) Datos de entrada, es decir, qué necesitará ingresar el usuario:


Requiere ingresar las calificaciones individuales porcentuales (0 a 100) de
cada actividad de aprendizaje y la calificación del examen práctico

b) Datos adicionales, es decir, con los que ya contamos.


Sabemos que un alumno aprueba si saca 70 o más de calificación y sabemos
que tiene derecho a recuperación si su promedio es mayor a 50 y menor a
70

c) Proceso.
 Pedir al usuario ingrese las 4 calificaciones individuales porcentuales
necesarias (0-100)
 Promediar la calificación de las 4 calificaciones
 Decidir si el promedio resultante es de 70 hacia arriba
 Si es así Imprimir el promedio y la leyenda: “Estas aprobado no
requieres nivelación”
 Si el promedio resultante no es mayor o igual a 70, decidir si esta
entre mayor a 50 y menor a 70
 Si es así Imprimir el promedio y la leyenda: “Estas reprobado pero
tienes derecho a nivelación”
 Decidir si el promedio es menor a 50

P á g i n a 1 | 11
 Si es así Imprimir el promedio y la leyenda: “Estas reprobado”

d) Datos de salida, qué se espera que devuelva el programa como


resultado final.
Devuelva el promedio, si el alumno reprueba o aprueba y si tiene derecho o
no a nivelación

e) Algoritmo

Proceso Calificaciones
Definir n1,n2,n3,ep Como Entero;
Definir promedio Como Real;;
Escribir "Calificación de la primera actividad (0 a 100): ";
Leer n1;
Escribir "Calificación de la segunda actividad (0 a 100): ";
Leer n2;
Escribir "Calificación de la tercera actividad (0 a 100): ";
Leer n3;
Escribir "Calificación de examen practico (0 a 100): ";
Leer ep;
promedio<-(n1+n2+n3+ep)/(4);
Si promedio>=70 Entonces
Escribir "Tu promedio es de: ",promedio;
Escribir "Aprobado";
Escribir "No requieres nivelación";
SiNo
Si promedio>50 Y promedio<70 Entonces
Escribir "Tu promedio es de: ",promedio;
Escribir "Reprobado";
Escribir "Tienes derecho a nivelación";
SiNo
Escribir "Tu promedio es de: ",promedio;
Escribir "Reprobado";
Fin Si
Fin Si
FinProceso

3. Una vez entendido completamente la solución del problema, realiza un análisis


y diseño de solución considerando el uso de al menos DOS funciones o
módulos adicionales al principal.

P á g i n a 2 | 11
Diagrama modular:
El programa tendrá tres funciones: Una principal (main) donde se pedirán los datos
iniciales al usuario y se imprimirán los resultados esperados. La suma de las notas
y la tercera función para calcular el promedio.

Principal

Datos Entrada:

n1[],n2[],n3[],ep[]

Salidas:

prom, suma, “impresiones”

Sumar Promedio

Parametros Entrada: Parametros Entrada:

Sumar[n1n2,n3,ep] suma

Valor de retorno: Valor de retorno:

suma prom

Algoritmo (pseudocodigo) y Diagrama de Flujo para el primer módulo:

Módulo sumar(float n1, float n2, float n3, float


ep)
Inicio
Definir suma Como Flotante;
suma = n1+n2+n3+ep ;
return(suma);
Fin

P á g i n a 3 | 11
Como podemos observar en el pseudocodigo y diagrama de flujo, este módulo o función
llamado “sumar” pedirá como parámetro de entrada los datos requeridos en el módulo o
función principal, en este caso las 4 notas individuales, posteriormente se realizará el
proceso de la suma de dichas calificaciones o notas para finalmente retornar el valor en la
variable llamada “suma”.

Algoritmo (pseudocodigo) y Diagrama de Flujo para el segundo módulo:

Módulo promedio(float suma)


Inicio
Definir prom Como Flotante
Prom = (suma/TAM);
Retorna (prom);
Fin

P á g i n a 4 | 11
Como podemos observar en el pseudocodigo y diagrama de flujo, este módulo o función
llamado “Promedio” pedirá como parámetro de entrada el retorno del valor “suma” del
anterior módulo descrito, posteriormente se realizará el proceso de dividir el valor de
retorno “suma” entre el tamaño (TAM) de calificaciones ingresadas, es decir 4, para
finalmente retornar el valor en la variable llamada “prom”.

Algoritmo (pseudocodigo) para el módulo principal:

Inicio

/* Lectura de las cantidades de las notas */

Escribir ("Calificación de la primera actividad (0 a 100): ");

Leer(n1);

Escribir ("Calificación de la segunda actividad (0 a 100): ");

Leer(n2);

Escribir ("Calificación de la tercera actividad (0 a 100): ");

Leer(n2);

Escribir ("Calificación del examen práctico (0 a 100): ");

Leer(n1);

P á g i n a 5 | 11
/* Llamamos a las funciones de sumar y promediar */

x  sumar(n1,n2,n3,ep);

y  promedio(x);

/* Hacemos las comparaciones correspondientes del promedio obtenido*/

SI (y>=70 Y y<=100){

Escribir ("\nTu promedio es: %.2f\n",y);

Escribir ("\nEstas APROBADO\n");

Escribir ("\nNo requieres nivelación\n");

SINO{

SI (y>50 Y y<70){

Escribir ("\nTu promedio es: %.2f\n",y);

Escribir ("\nEstas REPROBADO\n");

Escribir ("\nTIENES DERECHO NIVELACION\n");

SINO{

SI (y>=0 Y y<=50){

Escribir ("\nTu promedio es: %.2f\n",y);

Escribir ("\nEstas REPROBADO\n");

Escribir ("\nNO TIENES DERECHO NIVELACION\n");

SINO{

SI (y<0 O y>100){

Escribir ("\nLO SENTIMOS, DATOS ERRONEOS VUELVA


A INTENTARLO\n");

P á g i n a 6 | 11
}

/* Cálculo de la suma de las 4 calificaciones obtenidas con la función sumar */

Flotante sumar(Flotante n1, Flotante n2, Flotante n3, Flotante ep){

Flotante suma = n1+n2+n3+ep;

Regresa (suma);

/* Cálculo del promedio de la calificación con la función promedio */


Flotante promedio(Flotante suma){

Flotante prom = (suma/TAM);

Regresa (prom);

Fin

Como podemos observar en el algoritmo del módulo principal, primero se dará paso a las
lecturas de las 4 calificaciones a promediar, después de ello invocaremos a nuestras dos
funciones: “sumar” y “promedio” con el objetivo de que en la primera función se sumen
todas las calificaciones y en la segunda función se promedien para un promedio final,
posteriormente mediante sentencias SI-SINO se hacen los ajustes necesarios para evaluar
en qué posición cae el promedio y devolver al usuario si el alumno esta aprobado o
reprobado y si tiene o no derecho a nivelación. Por último se colocan nuestras funciones a
utilizar en el módulo principal y las cuales son motor para resolver el problema.

Código en C:

/* Declaramos librerias*/

#include <stdio.h>

#include <stdlib.h>

#include <wchar.h>

#include <locale.h>

#define TAM 4

/*Función principal*/

float sumar(float n1, float n2, float n3, float ep);


P á g i n a 7 | 11
float promedio(float suma);

int main()

setlocale(LC_ALL, "");

float n1,n2,n3,ep,x,y;

printf("Calificación de la primera actividad (0 a 100): ");

scanf("%f",&n1);

printf("Calificación de la segundad actividad (0 a 100): ");

scanf("%f",&n2);

printf("Calificación de la tercera actividad (0 a 100): ");

scanf("%f",&n3);

printf("Calificación del examen práctico (0 a 100): ");

scanf("%f",&ep);

x = sumar(n1,n2,n3,ep);

y = promedio(x);

if (y>=70 && y<=100){

printf ("\nTu promedio es: %.2f\n",y);

printf ("\nEstas APROBADO\n");

printf ("\nNo requieres nivelación\n");

else{

if (y>50 && y<70){

printf ("\nTu promedio es: %.2f\n",y);

printf ("\nEstas REPROBADO\n");

printf ("\nTIENES DERECHO NIVELACION\n");

}
P á g i n a 8 | 11
else{

if (y>=0 && y<=50){

printf ("\nTu promedio es: %.2f\n",y);

printf ("\nEstas REPROBADO\n");

printf ("\nNO TIENES DERECHO NIVELACION\n");

else{

if (y<0 || y>100){

printf ("\nLO SENTIMOS, DATOS ERRONEOS VUELVA A


INTENTARLO\n");

return 0;

float sumar(float n1, float n2, float n3, float ep){

float suma = n1+n2+n3+ep;

return (suma);

float promedio(float suma){

float prom = (suma/TAM);

return (prom);

P á g i n a 9 | 11
Ejecutable:

Figura 1. Calificación aprobatoria

Figura 2. Calificación reprobatoria pero con derecho a nivelación

P á g i n a 10 | 11
Figura 3. Calificación reprobatoria sin derecho a nivelación

Fuentes de consulta:

Joyanes, L., & Zohanero, I. (2005). Programación en C. Metodología, algoritmos y


estructuras de datos. España: McGraw Hill.

López, L. (2005). Programación estructurada en lenguaje C. México: Alfamega.

Programación ATS. (3 de Marzo de 2016). Youtube: Programación en C - Arreglos -


Ejercicio ordenar números y hacer búsqueda binaria. Obtenido de Youtube:
https://www.youtube.com/watch?v=lTBasxSrh2o

P á g i n a 11 | 11

Vous aimerez peut-être aussi