1.1.-Un programa
1.1. Un programa informático¶
Idea principal
Un programa es una solución expresada como instrucciones que un dispositivo puede ejecutar. Antes de escribir código conviene entender el problema y diseñar un algoritmo; en el apartado siguiente aprenderemos a expresarlo mediante pseudocódigo.
Cuando desarrollamos una aplicación web, una herramienta de escritorio o un pequeño script, no empezamos escribiendo instrucciones al azar. Partimos de una necesidad, decidimos qué datos entran, qué tratamiento se les aplica y qué resultado debe obtenerse. Esta forma de trabajar conecta la programación con el perfil profesional de Técnico Superior en Desarrollo de Aplicaciones Web: desarrollar y mantener aplicaciones que funcionen, sean seguras, accesibles y útiles para las personas usuarias.
El contenido se relaciona con el RA 1 del módulo de Programación, que pide reconocer la estructura de un programa y relacionar sus elementos con el lenguaje utilizado.
| Código | Descripción |
|---|---|
| RA 1 | Reconoce la estructura de un programa informático, identificando y relacionando los elementos propios del lenguaje de programación utilizado. |
| CE a | Se han identificado los bloques que componen la estructura de un programa informático. |
Qué deberías saber al terminar
Al acabar este apartado deberías poder:
- explicar qué es un programa y diferenciarlo del hardware;
- describir el recorrido básico de unos datos de entrada hasta una salida;
- definir algoritmo y reconocer sus características fundamentales;
- justificar por qué el pseudocódigo es un paso útil antes de programar.
1. ¿Qué es un programa?¶
Un programa informático es un conjunto ordenado de instrucciones y datos que un dispositivo puede interpretar y ejecutar para realizar una tarea. Las instrucciones se escriben inicialmente en un lenguaje de programación, como Python, y las herramientas del lenguaje las preparan para que el ordenador pueda ejecutarlas.
Un programa suele seguir este esquema:
Por ejemplo, una aplicación que calcula el precio final de un pedido puede:
- recibir el precio y el porcentaje de IVA (entradas);
- calcular el impuesto y sumarlo al precio (procesamiento);
- mostrar el total (salida).
Programa y algoritmo
El algoritmo describe los pasos para resolver un problema. El programa es la implementación de esos pasos en un lenguaje que el dispositivo puede ejecutar.
Esta diferencia es importante: un algoritmo puede explicarse sin elegir todavía Python, Kotlin u otro lenguaje. El programa, en cambio, debe respetar la sintaxis y las reglas del lenguaje elegido.
2. Hardware y software¶
El hardware es la parte física del sistema: procesador, memoria, teclado, disco o pantalla. El software está formado por los programas, los datos y la documentación que indican al hardware qué hacer.
Podemos observar su relación en una ejecución sencilla:
- El almacenamiento conserva el programa y los datos aunque se apague el equipo.
- La memoria RAM mantiene temporalmente las instrucciones y los datos que se están utilizando.
- La CPU lee y ejecuta las instrucciones.
- Los dispositivos de entrada y salida permiten introducir datos y mostrar o guardar resultados.
Una precisión útil
El sistema operativo, los controladores y las aplicaciones son software, pero cumplen funciones distintas. El sistema operativo coordina los recursos del equipo; una aplicación resuelve una necesidad concreta; y un controlador permite que el sistema operativo se comunique con un dispositivo.
Podemos clasificar el software según la función que desempeña:
| Tipo | Función | Ejemplos |
|---|---|---|
| Software de sistema | Coordina los recursos del equipo. | Sistema operativo y controladores. |
| Software de aplicación | Resuelve una necesidad de las personas usuarias. | Navegador, editor de texto o aplicación web. |
| Software de desarrollo | Ayuda a crear, comprobar y mantener programas. | IDE, editor, compilador o intérprete. |
Esta clasificación ayuda a distinguir el programa que se está desarrollando de las herramientas que se utilizan para construirlo y del software que hace posible su ejecución.
3. Programación y ciclo de desarrollo¶
La programación es el proceso de analizar un problema, diseñar una solución, escribirla en un lenguaje, comprobarla y mantenerla. En un proyecto real estas actividades pueden repetirse varias veces:
Un recorrido habitual es:
- entender el problema y recoger requisitos;
- planificar y diseñar una solución;
- programar la solución;
- probarla y corregir errores;
- desplegarla y mantenerla.
En esta unidad comenzaremos por la base: identificar el problema y describir una solución mediante un algoritmo. Más adelante trasladaremos esa solución a Python, estudiaremos los tipos de datos y aprenderemos a probar el código.
4. Algoritmos¶
Un algoritmo es una secuencia ordenada de pasos que permite resolver un problema o alcanzar un objetivo. Para que sea útil en programación, debe ser:
- preciso: cada paso indica una acción concreta;
- definido: con las mismas entradas produce el mismo resultado;
- finito: termina después de un número limitado de pasos.
Un algoritmo cotidiano
Para calcular el total de una compra: leer el importe, leer el descuento, calcular el descuento, restarlo del importe y mostrar el resultado. El algoritmo no depende todavía de Python ni de un modelo concreto de ordenador.
Diseñar el algoritmo antes de codificar ayuda a detectar pasos que faltan y a separar la lógica del problema de los detalles de sintaxis. La imagen siguiente resume el paso desde el problema hasta un programa que se puede probar.
Ejemplo: mantenimiento de una lámpara
Imagina que una lámpara no funciona. Antes de escribir código debemos decidir qué comprobaciones y acciones realizar: comprobar si está enchufada, revisar el foco y, si sigue sin funcionar, sustituir la lámpara.
Este ejemplo contiene decisiones y acciones, por lo que nos permite pasar de una situación cotidiana a un algoritmo. En 1.1.1. El pseudocódigo lo expresaremos con instrucciones y lo representaremos también mediante un diagrama de flujo.
5. Cómo representaremos los algoritmos¶
Existen varias formas de describir un algoritmo:
- mediante lenguaje natural, si la secuencia es muy sencilla;
- mediante pseudocódigo, usando instrucciones legibles y cercanas a la programación;
- mediante un diagrama de flujo, usando símbolos y flechas para visualizar el orden y las decisiones.
Por ejemplo, un diagrama de flujo utiliza un óvalo para el inicio o el final,
rectángulos para acciones y rombos para condiciones. Estas representaciones
permiten revisar la solución antes de escribir un archivo .py.
Conexión con el siguiente apartado
En 1.1.1. El pseudocódigo transformaremos el ejemplo de la compra en
instrucciones con Inicio, Fin, lectura, escritura, asignaciones y
condiciones. Después podremos traducirlo progresivamente a Python en el
apartado 1.2.
6. Buenas prácticas iniciales¶
- Definir con claridad qué problema se quiere resolver.
- Separar las entradas, el procesamiento y las salidas.
- Escribir pasos concretos, ordenados y verificables.
- Probar el algoritmo con datos normales y con casos límite.
- Elegir nombres que expliquen el significado de los datos cuando pasemos al código.
7. Resumen¶
- Un programa implementa una solución mediante instrucciones ejecutables.
- El hardware proporciona los recursos físicos y el software los coordina.
- Un algoritmo es independiente del lenguaje y debe ser preciso, definido y finito.
- El pseudocódigo y los diagramas de flujo ayudan a validar la solución antes de programarla.
Idea clave
Programar no consiste solo en conocer la sintaxis de un lenguaje: consiste en analizar un problema y construir una solución correcta que después podamos expresar y comprobar con código.
Bibliografía y fuentes¶
- Real Decreto 686/2010, título de Técnico Superior en Desarrollo de Aplicaciones Web.
- Python Software Foundation: documentación de Python.
- Joyanes Aguilar, Luis. Fundamentos de programación.