Lección 82 — Cómo Hacer un Programa: Proyecto Práctico Paso a Paso
Aprender cómo hacer un programa es uno de los pasos más importantes para convertir los conocimientos de programación en soluciones reales. Después de estudiar algoritmos, pseudocódigo, variables, operadores, condicionales, ciclos y funciones, ha llegado el momento de integrar estos elementos en un proyecto completo.
En esta lección desarrollarás un sistema básico de registro y cálculo de calificaciones. El programa permitirá introducir las calificaciones de varios estudiantes, calcular sus promedios, determinar si aprobaron o reprobaron y presentar un resumen general de los resultados.
Lo construiremos desde cero, siguiendo un procedimiento ordenado: analizar el problema, identificar los datos necesarios, diseñar el algoritmo, escribir el pseudocódigo, probar su funcionamiento y corregir posibles errores.
No necesitas experiencia avanzada ni conocimientos de un lenguaje específico. Trabajaremos con pseudocódigo para concentrarnos en la lógica del programa y comprender cómo se relacionan sus componentes.
Al finalizar, habrás desarrollado un proyecto integrador que podrás utilizar como base para crear aplicaciones más completas.
¿Qué aprenderás en este proyecto?
Al completar esta lección podrás:
Identificar un problema que puede resolverse mediante programación.
Definir los objetivos y requisitos de un programa.
Reconocer los datos de entrada, los procesos y las salidas.
Diseñar un algoritmo antes de escribir instrucciones.
Utilizar variables y operadores para procesar información.
Aplicar condicionales para tomar decisiones.
Utilizar ciclos para repetir operaciones.
Organizar instrucciones mediante funciones.
Validar los datos introducidos por el usuario.
Realizar pruebas para comprobar los resultados.
Identificar y corregir errores básicos.
Documentar y mejorar un programa sencillo.
El objetivo principal no es memorizar instrucciones, sino aprender a construir soluciones de manera lógica, ordenada y verificable.
¿Qué significa desarrollar un programa?
Desarrollar un programa consiste en crear un conjunto organizado de instrucciones que una computadora pueda ejecutar para resolver un problema o realizar una tarea.
Un programa puede ser tan sencillo como una calculadora o tan complejo como un sistema de administración empresarial.
Aunque existen diferencias entre los proyectos, el desarrollo suele incluir varias actividades fundamentales:
Comprender qué problema necesita resolverse.
Determinar qué debe hacer el programa.
Identificar la información que utilizará.
Diseñar una solución lógica.
Escribir las instrucciones.
Probar que funcionan correctamente.
Corregir errores.
Mejorar el resultado.
Ejemplo cotidiano
Imagina que un profesor necesita calcular las calificaciones finales de sus estudiantes.
Si tiene pocos alumnos, puede realizar los cálculos manualmente.
Sin embargo, cuando necesita procesar muchas calificaciones, repetir las operaciones puede resultar tardado y aumentar el riesgo de errores.
Un programa puede automatizar parte de ese trabajo.
Por ejemplo, puede recibir tres calificaciones de cada estudiante, calcular el promedio y determinar si alcanza la calificación mínima aprobatoria.
Este será nuestro proyecto.
Etapas para crear un programa desde cero
Antes de comenzar, es importante comprender las etapas que seguiremos.
| Etapa | Actividad principal | Resultado esperado |
|---|---|---|
| Análisis | Comprender el problema | Requisitos definidos |
| Diseño | Planear la solución | Algoritmo y pseudocódigo |
| Desarrollo | Escribir las instrucciones | Programa construido |
| Pruebas | Comprobar el funcionamiento | Resultados verificados |
| Corrección | Resolver errores detectados | Programa mejorado |
| Documentación | Explicar cómo funciona | Solución comprensible |
Estas etapas no siempre se realizan una sola vez. Durante el desarrollo es normal regresar a una etapa anterior para modificar o mejorar la solución.
¿Por qué no comenzar directamente a escribir código?
Porque escribir instrucciones sin comprender el problema puede provocar errores, repeticiones innecesarias y soluciones incompletas.
Primero debemos saber qué queremos resolver; después decidiremos cómo hacerlo.
Presentación del proyecto: sistema de calificaciones
Desarrollaremos un programa llamado:
Sistema Básico de Calificaciones
Su propósito será registrar información de varios estudiantes y calcular sus resultados académicos.
Objetivo general
Crear un programa que permita introducir el nombre y tres calificaciones de cada estudiante, calcular su promedio, determinar si aprobó o reprobó y presentar un resumen general.
Funcionalidades
El programa deberá:
Solicitar la cantidad de estudiantes que se registrarán.
Pedir el nombre de cada estudiante.
Solicitar tres calificaciones.
Comprobar que las calificaciones sean válidas.
Calcular el promedio individual.
Determinar si cada estudiante aprobó.
Mostrar los resultados de cada estudiante.
Contar cuántos aprobaron y reprobaron.
Calcular el promedio general del grupo.
Presentar un resumen al finalizar.
Reglas del proyecto
Para simplificar el ejercicio, utilizaremos las siguientes condiciones:
Las calificaciones estarán comprendidas entre 0 y 10.
Cada estudiante tendrá exactamente tres calificaciones.
Las tres calificaciones tendrán el mismo valor para calcular el promedio.
La calificación mínima aprobatoria será 6.
Se registrará al menos un estudiante.
El promedio se calculará utilizando los valores originales, sin redondearlos antes de tomar decisiones.
Importante: estas reglas son supuestos didácticos. Los sistemas reales deben adaptarse a las normas de evaluación de cada institución.
Análisis del problema
La primera etapa consiste en identificar qué información necesitamos y qué resultados esperamos obtener.
Podemos hacerlo mediante el modelo:
Entrada → Proceso → Salida
Datos de entrada
Son los valores que el usuario proporcionará.
| Dato | Tipo | Ejemplo |
|---|---|---|
| Cantidad de estudiantes | Entero | 3 |
| Nombre | Texto | Ana |
| Primera calificación | Número | 8 |
| Segunda calificación | Número | 9 |
| Tercera calificación | Número | 7 |
Procesos
Son las operaciones que realizará el programa.
Validar la cantidad de estudiantes.
Leer y validar las calificaciones.
Sumar las tres calificaciones.
Dividir la suma entre tres.
Comparar el promedio con la calificación mínima.
Actualizar los contadores de aprobados y reprobados.
Acumular los promedios individuales.
Calcular el promedio general.
Datos de salida
Son los resultados que mostrará el programa.
Nombre del estudiante.
Promedio individual.
Estado de aprobación.
Cantidad total de estudiantes.
Número de aprobados.
Número de reprobados.
Promedio general del grupo.
¿Qué hemos conseguido?
Todavía no hemos escrito el programa, pero ya conocemos sus principales requisitos.
Este análisis evita que olvidemos funciones importantes durante el desarrollo.
Diseño de las operaciones matemáticas
Nuestro programa utilizará dos cálculos principales.
Promedio individual
El promedio de tres calificaciones se calcula mediante:
Promedio = (Calificación 1 + Calificación 2 + Calificación 3) / 3
Por ejemplo, si un estudiante obtiene:
Primera calificación: 8.
Segunda calificación: 9.
Tercera calificación: 7.
Entonces:
Promedio = (8 + 9 + 7) / 3 = 8
Promedio general del grupo
Para obtener el promedio general, sumaremos los promedios individuales y dividiremos el resultado entre la cantidad de estudiantes.
Promedio general = Suma de promedios individuales / Cantidad de estudiantes
Este procedimiento es válido porque todos los estudiantes tienen exactamente tres calificaciones con el mismo peso.
Regla de aprobación
Utilizaremos una condición:
Si el promedio es mayor o igual a 6, el estudiante aprueba.
Si el promedio es menor que 6, reprueba.
En pseudocódigo:
SI promedio >= 6 ENTONCES
ESCRIBIR "Aprobado"
SINO
ESCRIBIR "Reprobado"
FIN SIEsta condición permitirá automatizar la clasificación de los resultados.
Identificación de las variables
Las variables permiten almacenar los datos que utiliza el programa.
| Variable | Tipo conceptual | Función |
|---|---|---|
| cantidadEstudiantes | Entero | Cantidad de registros |
| nombre | Texto | Nombre del estudiante |
| nota1 | Real | Primera calificación |
| nota2 | Real | Segunda calificación |
| nota3 | Real | Tercera calificación |
| promedio | Real | Promedio individual |
| sumaPromedios | Real | Acumulador de promedios |
| aprobados | Entero | Contador de aprobados |
| reprobados | Entero | Contador de reprobados |
| promedioGeneral | Real | Promedio del grupo |
| i | Entero | Control del ciclo |
¿Qué son los contadores?
Un contador es una variable que registra cuántas veces ocurre determinado evento.
Por ejemplo:
aprobados ← aprobados + 1Esta instrucción incrementa el contador cuando un estudiante aprueba.
¿Qué es un acumulador?
Un acumulador es una variable que guarda una suma progresiva.
Por ejemplo:
sumaPromedios ← sumaPromedios + promedioCada vez que procesamos un estudiante, agregamos su promedio al total acumulado.
Los contadores registran cantidades; los acumuladores reúnen valores para operaciones posteriores.
Diseño del algoritmo
Ahora que conocemos los requisitos, podemos establecer la secuencia general de instrucciones.
Algoritmo propuesto
Iniciar el programa.
Solicitar la cantidad de estudiantes.
Validar que sea un entero positivo.
Inicializar los contadores y el acumulador.
Repetir el registro para cada estudiante.
Solicitar su nombre.
Solicitar y validar sus tres calificaciones.
Calcular su promedio.
Determinar si aprobó o reprobó.
Actualizar el contador correspondiente.
Acumular el promedio individual.
Mostrar los resultados del estudiante.
Continuar hasta procesar todos los registros.
Calcular el promedio general.
Mostrar el resumen del grupo.
Finalizar.
Esta secuencia representa la lógica principal del programa.
¿Dónde utilizaremos los ciclos?
Necesitamos repetir el registro de estudiantes y la validación de datos.
Utilizaremos:
PARA: para procesar una cantidad conocida de estudiantes.
MIENTRAS: para volver a solicitar datos cuando no cumplan las condiciones establecidas.
¿Dónde utilizaremos los condicionales?
Los utilizaremos para:
Determinar si una calificación está dentro del rango permitido.
Comprobar si el estudiante aprobó.
Seleccionar el contador que debemos incrementar.
¿Dónde utilizaremos las funciones?
Crearemos funciones para:
Solicitar una calificación válida.
Calcular el promedio.
Determinar si un estudiante aprobó.
Así evitaremos repetir instrucciones y mantendremos el programa organizado.
Desarrollo de las funciones
Antes de escribir el programa completo, construiremos sus componentes principales.
Función para solicitar una calificación válida
Una calificación debe estar comprendida entre 0 y 10.
Si el usuario introduce un valor fuera de ese intervalo, el programa deberá solicitarlo nuevamente.
FUNCIÓN leerCalificacion(numeroNota)
ESCRIBIR "Introduce la calificación ", numeroNota
LEER calificacion
MIENTRAS calificacion < 0 O calificacion > 10 HACER
ESCRIBIR "Error: la calificación debe estar entre 0 y 10"
LEER calificacion
FIN MIENTRAS
RETORNAR calificacion
FIN FUNCIÓNEsta función recibe el número de la calificación que debe solicitar y devuelve un valor válido.
Suposición: el usuario introduce valores numéricos. La comprobación de entradas no numéricas se abordará como una mejora posterior.
Función para calcular el promedio
FUNCIÓN calcularPromedio(a, b, c)
promedio ← (a + b + c) / 3
RETORNAR promedio
FIN FUNCIÓNLa función recibe tres calificaciones y devuelve su promedio.
Función para determinar la aprobación
FUNCIÓN estaAprobado(promedio)
SI promedio >= 6 ENTONCES
RETORNAR VERDADERO
SINO
RETORNAR FALSO
FIN SI
FIN FUNCIÓNLa función devuelve un valor lógico.
VERDADERO significa que el estudiante aprobó.
FALSO significa que no alcanzó el promedio mínimo.
Ventaja de esta organización
Si posteriormente necesitamos cambiar la calificación mínima aprobatoria, podemos modificar la función estaAprobado() sin alterar las operaciones del promedio.
Esto demuestra la utilidad de la reutilización del código.
Programa completo en pseudocódigo
Ahora integraremos todas las instrucciones en una sola solución.
El siguiente pseudocódigo utiliza una estructura general con funciones y un bloque principal.
FUNCIÓN leerCalificacion(numeroNota)
ESCRIBIR "Introduce la calificación ", numeroNota
LEER calificacion
MIENTRAS calificacion < 0 O calificacion > 10 HACER
ESCRIBIR "Error: la calificación debe estar entre 0 y 10"
LEER calificacion
FIN MIENTRAS
RETORNAR calificacion
FIN FUNCIÓN
FUNCIÓN calcularPromedio(a, b, c)
promedio ← (a + b + c) / 3
RETORNAR promedio
FIN FUNCIÓN
FUNCIÓN estaAprobado(promedio)
SI promedio >= 6 ENTONCES
RETORNAR VERDADERO
SINO
RETORNAR FALSO
FIN SI
FIN FUNCIÓN
INICIO
ESCRIBIR "SISTEMA BÁSICO DE CALIFICACIONES"
ESCRIBIR "Cantidad de estudiantes:"
LEER cantidadEstudiantes
MIENTRAS cantidadEstudiantes < 1 O
cantidadEstudiantes NO ES ENTERO HACER
ESCRIBIR "Introduce un número entero positivo"
LEER cantidadEstudiantes
FIN MIENTRAS
aprobados ← 0
reprobados ← 0
sumaPromedios ← 0
PARA i ← 1 HASTA cantidadEstudiantes HACER
ESCRIBIR "Estudiante ", i
ESCRIBIR "Nombre:"
LEER nombre
nota1 ← leerCalificacion(1)
nota2 ← leerCalificacion(2)
nota3 ← leerCalificacion(3)
promedio ← calcularPromedio(
nota1, nota2, nota3
)
sumaPromedios ← sumaPromedios + promedio
SI estaAprobado(promedio) ENTONCES
estado ← "Aprobado"
aprobados ← aprobados + 1
SINO
estado ← "Reprobado"
reprobados ← reprobados + 1
FIN SI
ESCRIBIR "Nombre: ", nombre
ESCRIBIR "Promedio: ", promedio
ESCRIBIR "Estado: ", estado
FIN PARA
promedioGeneral ←
sumaPromedios / cantidadEstudiantes
ESCRIBIR "RESUMEN GENERAL"
ESCRIBIR "Estudiantes: ", cantidadEstudiantes
ESCRIBIR "Aprobados: ", aprobados
ESCRIBIR "Reprobados: ", reprobados
ESCRIBIR "Promedio general: ", promedioGeneral
FIN
Consideraciones sobre el pseudocódigo
El programa está diseñado para enseñar la lógica, no para ejecutarse directamente en un lenguaje específico.
La sintaxis de LEER, ESCRIBIR, FUNCIÓN y otras instrucciones puede variar entre herramientas.
Para este ejercicio suponemos que las entradas pueden convertirse a los tipos de datos esperados. En un programa real también debemos manejar texto no numérico, entradas vacías y otros errores de formato.
Explicación paso a paso del programa
Comprendamos cómo trabajan juntos sus componentes.
Inicio del programa
La ejecución comienza mostrando el nombre del sistema:
ESCRIBIR "SISTEMA BÁSICO DE CALIFICACIONES"Después solicita la cantidad de estudiantes.
Validación de la cantidad
El programa comprueba que la cantidad sea un entero positivo.
Si el usuario introduce cero, un número negativo o un valor numérico con decimales, deberá intentarlo nuevamente.
Esta validación evita que el programa procese una cantidad inválida de registros.
Inicialización de variables
Antes de procesar estudiantes, establecemos:
aprobados ← 0
reprobados ← 0
sumaPromedios ← 0Si no inicializamos estas variables, sus valores podrían ser desconocidos o incorrectos, dependiendo del lenguaje.
Registro de estudiantes
El ciclo PARA permite procesar exactamente la cantidad indicada.
Por ejemplo, si el usuario introduce 3, el ciclo realizará tres iteraciones.
En cada una:
Solicita el nombre.
Obtiene tres calificaciones válidas.
Calcula el promedio.
Determina la aprobación.
Actualiza los contadores.
Acumula el promedio.
Muestra los resultados.
Cálculo del promedio general
Cuando termina el ciclo, el programa utiliza:
promedioGeneral ←
sumaPromedios / cantidadEstudiantesLa división es válida porque previamente comprobamos que la cantidad de estudiantes sea mayor que cero.
Presentación del resumen
Finalmente, el programa muestra los resultados generales.
Esta salida permite conocer el desempeño del grupo sin realizar cálculos manuales adicionales.
Ejemplo de ejecución
Supongamos que registramos tres estudiantes.
Datos introducidos
| Estudiante | Nota 1 | Nota 2 | Nota 3 |
|---|---|---|---|
| Ana | 8 | 9 | 7 |
| Luis | 5 | 6 | 4 |
| Marta | 10 | 9 | 8 |
Cálculo de promedios
Ana:
(8 + 9 + 7) / 3 = 8
Luis:
(5 + 6 + 4) / 3 = 5
Marta:
(10 + 9 + 8) / 3 = 9
Resultados individuales
| Estudiante | Promedio | Estado |
|---|---|---|
| Ana | 8 | Aprobado |
| Luis | 5 | Reprobado |
| Marta | 9 | Aprobado |
Resumen general
Cantidad de estudiantes: 3
Aprobados: 2
Reprobados: 1
Promedio general:
(8 + 5 + 9) / 3 = 7.33 aproximadamente
Salida esperada
SISTEMA BÁSICO DE CALIFICACIONES
RESUMEN GENERAL
Estudiantes: 3
Aprobados: 2
Reprobados: 1
Promedio general: 7.333333...La cantidad de decimales mostrados dependerá del lenguaje o del formato de salida utilizado.
Para presentar el promedio general con dos decimales, podría aplicarse una operación de formato al mostrarlo, sin modificar el valor utilizado para los cálculos.
¿Cómo probar un programa?
Escribir las instrucciones no garantiza que el programa funcione correctamente en todas las situaciones.
Por eso necesitamos realizar pruebas.
Una prueba de software consiste en ejecutar o evaluar un programa con determinados datos para comprobar si produce los resultados esperados.
Plan de pruebas
| Prueba | Datos | Resultado esperado |
|---|---|---|
| Registro normal | 8, 9, 7 | Promedio 8, aprobado |
| Calificaciones bajas | 4, 5, 3 | Promedio 4, reprobado |
| Límite aprobatorio | 6, 6, 6 | Promedio 6, aprobado |
| Calificación mínima | 0, 0, 0 | Promedio 0, reprobado |
| Calificación máxima | 10, 10, 10 | Promedio 10, aprobado |
| Valor fuera de rango | 12 | Solicitar nuevamente |
| Valor negativo | -2 | Solicitar nuevamente |
| Cantidad inválida | 0 estudiantes | Solicitar nuevamente |
| Cantidad decimal | 2.5 estudiantes | Solicitar entero positivo |
Importante: estas son pruebas propuestas, no resultados de una ejecución real. Deben verificarse al implementar el programa en una herramienta concreta.
Pruebas de límites
Las pruebas de límites comprueban valores cercanos a los extremos permitidos.
Por ejemplo:
0 es una calificación válida.
10 es una calificación válida.
-1 es inválida.
11 es inválida.
También debemos probar el límite de aprobación:
Un promedio de 5.99 reprueba.
Un promedio de 6 aprueba.
Estas pruebas ayudan a detectar errores en los operadores de comparación.
Depuración: cómo encontrar y corregir errores
La depuración es el proceso de identificar, analizar y corregir errores en un programa.
No todos los errores son iguales.
Errores de sintaxis
Ocurren cuando las instrucciones no cumplen las reglas del lenguaje.
Por ejemplo, escribir incorrectamente una palabra reservada o dejar incompleta una estructura.
Errores de ejecución
Aparecen cuando el programa intenta realizar una operación que no puede completar.
Por ejemplo:
Dividir entre cero.
Acceder a una posición inexistente de una colección.
Convertir un texto inválido a número sin manejar el error.
Errores lógicos
Son especialmente importantes porque el programa puede ejecutarse sin detenerse, pero producir resultados incorrectos.
Ejemplo de error lógico
Supongamos que escribimos:
promedio ← nota1 + nota2 + nota3 / 3Esta expresión es incorrecta para calcular el promedio de tres notas porque, según la jerarquía habitual de operadores, primero se divide nota3 entre 3.
La expresión correcta es:
promedio ← (nota1 + nota2 + nota3) / 3Los paréntesis garantizan que primero se sumen las tres calificaciones.
Método básico de depuración
Cuando encuentres un error:
Identifica qué resultado esperabas.
Comprueba qué resultado obtuviste.
Localiza la operación o condición relacionada.
Revisa los valores de las variables.
Corrige la instrucción.
Ejecuta nuevamente la prueba.
Comprueba que la corrección no haya provocado otros errores.
Un programa correcto no es simplemente aquel que se ejecuta, sino aquel que cumple sus requisitos y produce resultados adecuados para los casos previstos.
Validación de datos: una parte esencial
La validación consiste en comprobar que la información recibida cumple determinadas condiciones.
En nuestro proyecto validamos el intervalo de las calificaciones y la cantidad de estudiantes.
Sin embargo, existen otras situaciones que debemos considerar.
¿Qué sucede si el usuario introduce letras?
Imagina que el programa solicita una calificación y el usuario escribe:
ochoSi el lenguaje espera un número, podría producirse un error de conversión.
Por eso, una implementación real debería comprobar primero que el dato sea numérico.
¿Qué sucede si el nombre está vacío?
Nuestro programa introductorio no incluye esta comprobación.
Podríamos mejorar la solución para solicitar nuevamente el nombre cuando no contenga caracteres válidos.
¿Qué sucede si se introducen demasiados decimales?
Una calificación como 8.75 puede ser válida si las reglas del sistema permiten decimales.
Por ello, las restricciones deben definirse antes de programar.
Lección importante
Validar no significa rechazar todos los datos diferentes, sino comprobar que cumplan las reglas establecidas para el problema.
Documentación del programa
Documentar significa explicar cómo funciona una solución y cómo debe utilizarse.
Incluso los programas pequeños se benefician de una documentación básica.
Ficha del proyecto
| Elemento | Descripción |
|---|---|
| Nombre | Sistema Básico de Calificaciones |
| Objetivo | Registrar calificaciones y calcular resultados |
| Usuarios | Estudiantes y docentes |
| Entradas | Cantidad, nombres y calificaciones |
| Procesos | Validación, promedios y clasificación |
| Salidas | Resultados individuales y resumen |
| Técnica | Programación estructurada y funciones |
| Representación | Pseudocódigo |
| Restricción | Tres calificaciones por estudiante |
¿Qué debe explicar la documentación?
Para qué sirve el programa.
Qué datos necesita.
Qué operaciones realiza.
Qué resultados produce.
Qué restricciones tiene.
Cómo se utiliza.
Qué aspectos podrían mejorarse.
La documentación facilita que otras personas comprendan el proyecto y puedan ampliarlo posteriormente.
Mejoras que podemos incorporar
Nuestro programa cumple los requisitos básicos, pero todavía puede evolucionar.
Guardar los resultados
Actualmente, el pseudocódigo procesa los datos durante la ejecución.
Podríamos ampliar el proyecto para almacenar los resultados y consultarlos posteriormente.
Calcular porcentajes
Podemos agregar el porcentaje de estudiantes aprobados:
Porcentaje de aprobación = (Aprobados / Total de estudiantes) × 100
Para nuestro ejemplo:
(2 / 3) × 100 = 66.67 % aproximadamente
Identificar el promedio más alto
Podemos agregar una variable que registre el promedio máximo encontrado.
Identificar el promedio más bajo
De forma similar, podemos almacenar el menor promedio del grupo.
Incorporar un menú
Un menú permitiría seleccionar distintas operaciones:
1. Registrar estudiantes
2. Mostrar resumen
3. Salir
Conservar registros individuales
Una estructura de datos permitiría guardar nombres y calificaciones para consultarlos después.
Crear una interfaz gráfica
En una etapa posterior, podríamos reemplazar las entradas de texto por formularios, botones y tablas.
Estas mejoras muestran cómo un proyecto sencillo puede convertirse gradualmente en una aplicación más completa.
Ejercicios prácticos para mejorar el proyecto
Ahora te corresponde modificar la solución.
Ejercicio: cambiar la calificación mínima
Modifica el programa para que la calificación mínima aprobatoria sea 7.
Pregunta: ¿qué función debes modificar?
Ejercicio: agregar una cuarta calificación
Amplía el programa para registrar cuatro calificaciones por estudiante.
Recuerda actualizar el cálculo del promedio.
Ejercicio: calcular el porcentaje de aprobación
Crea una función llamada:
calcularPorcentajeAprobados()
Debe recibir la cantidad de aprobados y el total de estudiantes.
Ejercicio: encontrar el promedio mayor
Agrega las instrucciones necesarias para identificar el promedio más alto del grupo.
Ejercicio: validar nombres
Modifica el registro para impedir que se acepten nombres vacíos.
Ejercicio integrador
Desarrolla una versión del programa que incluya un menú con tres opciones:
Registrar estudiantes.
Mostrar el resumen.
Salir.
Piensa qué variables necesitarás conservar mientras el programa continúa ejecutándose.
Soluciones orientativas de los ejercicios
Cambiar la calificación mínima
Modifica la condición dentro de la función:
FUNCIÓN estaAprobado(promedio)
SI promedio >= 7 ENTONCES
RETORNAR VERDADERO
SINO
RETORNAR FALSO
FIN SI
FIN FUNCIÓN
Calcular el promedio de cuatro notas
FUNCIÓN calcularPromedio(a, b, c, d)
RETORNAR (a + b + c + d) / 4
FIN FUNCIÓNTambién será necesario solicitar la cuarta calificación y actualizar las llamadas a la función.
Calcular el porcentaje de aprobación
FUNCIÓN calcularPorcentajeAprobados(
aprobados, total
)
SI total <= 0 ENTONCES
RETORNAR 0
FIN SI
porcentaje ← (aprobados / total) * 100
RETORNAR porcentaje
FIN FUNCIÓNEn este ejemplo, la función devuelve cero cuando el total no es positivo para evitar una división inválida. En una aplicación real, también podría señalarse explícitamente que el dato es incorrecto.
Encontrar el promedio mayor
Antes del ciclo:
promedioMayor ← -1Dentro del ciclo, después de calcular cada promedio:
SI promedio > promedioMayor ENTONCES
promedioMayor ← promedio
FIN SIAl finalizar:
ESCRIBIR "Promedio mayor: ", promedioMayorInicializar con -1 es válido en este proyecto porque los promedios permitidos están entre 0 y 10.
Validar un nombre no vacío
ESCRIBIR "Nombre:"
LEER nombre
MIENTRAS nombre = "" HACER
ESCRIBIR "El nombre no puede estar vacío"
LEER nombre
FIN MIENTRASUna versión más completa también eliminaría espacios exteriores antes de comprobar si el nombre está vacío.
Menú básico
Una posible estructura general es:
opcion ← 0
MIENTRAS opcion <> 3 HACER
ESCRIBIR "1. Registrar estudiantes"
ESCRIBIR "2. Mostrar resumen"
ESCRIBIR "3. Salir"
LEER opcion
SEGÚN opcion HACER
CASO 1:
registrarEstudiantes()
CASO 2:
mostrarResumen()
CASO 3:
ESCRIBIR "Hasta pronto"
OTRO CASO:
ESCRIBIR "Opción inválida"
FIN SEGÚN
FIN MIENTRASLas funciones registrarEstudiantes() y mostrarResumen() representan componentes que todavía deben implementarse.
Para que este menú funcione correctamente, también será necesario decidir cómo conservar y compartir los datos entre las distintas operaciones.
Autoevaluación
Responde las siguientes preguntas para comprobar tus conocimientos.
¿Cuál es el primer paso para desarrollar un programa?
¿Qué diferencia existe entre datos de entrada y datos de salida?
¿Para qué sirve diseñar un algoritmo antes de programar?
¿Qué función cumplen las variables?
¿Cuál es la diferencia entre un contador y un acumulador?
¿Por qué utilizamos un ciclo PARA en nuestro proyecto?
¿Para qué utilizamos el ciclo MIENTRAS?
¿Qué función cumple una estructura condicional?
¿Por qué dividimos el programa en funciones?
¿Qué significa validar los datos?
¿Qué es un error lógico?
¿Por qué es importante probar los valores límite?
¿Qué sucede si calculamos el promedio sin utilizar correctamente los paréntesis?
¿Por qué necesitamos comprobar que la cantidad de estudiantes sea mayor que cero?
¿Qué mejoras podríamos incorporar al proyecto?
Respuestas orientativas
Comprender el problema y definir los requisitos.
Las entradas proporcionan información; las salidas presentan resultados.
Permite planear una solución lógica y ordenada.
Almacenan información utilizada durante la ejecución.
El contador registra ocurrencias; el acumulador suma valores progresivamente.
Porque conocemos la cantidad de estudiantes que debemos procesar.
Para repetir una operación mientras se cumpla una condición.
Permite seleccionar instrucciones según una condición.
Para organizar y reutilizar operaciones.
Comprobar que la información cumple las reglas establecidas.
Es un error que produce resultados incorrectos aunque el programa pueda ejecutarse.
Porque permiten detectar errores en los extremos de los intervalos válidos.
Podemos alterar el orden de las operaciones y obtener un resultado incorrecto.
Para evitar registros inválidos y una posible división entre cero.
Guardar registros, agregar menús, calcular porcentajes, mejorar las validaciones y crear una interfaz.
Lo que has aprendido
Al finalizar este proyecto, ya puedes:
Analizar un problema antes de escribir instrucciones.
Definir requisitos para un programa sencillo.
Identificar entradas, procesos y salidas.
Diseñar un algoritmo que describa una solución.
Utilizar variables para almacenar información.
Aplicar operadores para realizar cálculos.
Emplear condicionales para tomar decisiones.
Utilizar ciclos para repetir operaciones.
Crear funciones que organicen y reutilicen instrucciones.
Trabajar con contadores y acumuladores.
Validar datos según reglas establecidas.
Diseñar pruebas para verificar los resultados.
Reconocer y corregir errores básicos.
Documentar un proyecto para facilitar su comprensión.
Proponer mejoras para ampliar sus funcionalidades.
Lo más importante es que has integrado los fundamentos de programación en una solución con un objetivo concreto.
Conclusión
Aprender cómo hacer un programa implica mucho más que escribir instrucciones: requiere comprender un problema, diseñar una solución, organizar sus componentes y comprobar que los resultados sean correctos.
A través de nuestro Sistema Básico de Calificaciones, hemos aplicado variables, operadores, condicionales, ciclos, funciones, validaciones y pruebas para construir un proyecto completo en pseudocódigo.
También hemos descubierto que los programas pueden desarrollarse progresivamente. Una primera versión puede resolver una necesidad sencilla y, posteriormente, incorporar nuevas funciones, mejores validaciones y formas más avanzadas de almacenar o presentar información.
Recuerda: un buen programador no comienza preguntándose qué instrucciones debe escribir, sino qué problema necesita resolver y cómo puede solucionarlo de manera lógica y organizada.
Con esta lección concluyes la aplicación práctica de los fundamentos estudiados en el Módulo 8 y te preparas para continuar hacia nuevos temas de informática y tecnología.
