Logo Studenta

FPR_U1_Contenido

¡Este material tiene más páginas!

Vista previa del material en texto

Ciencias Exactas Ingeniería y Tecnología 
Primer Semestre 
 
Programa de la asignatura: 
Fundamentos de programación 
 
 
Unidad 1. 
 Preparando el camino hacia la programación 
 
 
 
Universidad Abierta y a Distancia de México 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 2 
Índice 
Unidad 1. Preparando el camino hacia la programación .................................................................. 3 
Presentación de la unidad ................................................................................................................................... 3 
Propósitos ...................................................................................................................................................................... 4 
Competencia específica ....................................................................................................................................... 4 
Logros……………………………………………………………………………………………………..………………………………………………..……4 
1.1. Introducción a la programación ................................................................................................................ 5 
1.1.1. Ejecución de programas en la computadora .................................................................................9 
1.1.2. Lenguaje de programación ..................................................................................................................... 12 
1.1.3. Paradigmas de programación ............................................................................................................... 17 
1. 2. Metodología de la programación .......................................................................................................... 18 
1.2.1. Fases de la metodología de programación ................................................................................... 18 
Cierre de la unidad ................................................................................................................................................. 30 
Fuentes de consulta .............................................................................................................................................. 30 
 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 3 
Unidad 1. Preparando el camino hacia la programación 
 
Presentación de la unidad 
 
La ingeniería de software es la disciplina formada por un conjunto de métodos, 
herramientas y técnicas que se utilizan en el desarrollo de programas 
informáticos. Los programas informáticos son una serie de instrucciones con 
una secuencia lógica que tienen como fin resolver un problema específico. 
 
Aunque la programación en un proyecto de menor escala se le considera como 
la etapa final, en un proyecto a gran escala, la programación forma parte de 
una de las fases de desarrollo y se le considera como la acción de desarrollar 
programas pilar fundamental al momento de crear una aplicación es por eso 
que el ingeniero en software debe analizar la situación, diseñar el proyecto, 
desarrollar el software, hacer las pruebas necesarias para el correcto 
funcionamiento y la implementación del sistema mediante el uso de las 
computadoras y la programación para resolver problemas. "Un programa es la 
codificación de un algoritmo en un lenguaje de programación determinado”. 
(Jiménez y Otero, 2014, p.17). 
 
Por la capacidad de datos que pueden almacenar y manipular, las 
computadoras han cobrado gran importancia para el manejo de datos y 
recursos. Para resolver problemas mediante la computadora, es necesario 
desarrollar programas escritos en un lenguaje que ella pueda procesar y ser 
ejecutados por ella. 
 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 4 
Propósitos 
 
Al finalizar la unidad podrás: 
 
• Comprender los conceptos básicos relacionados con la computadora y los 
lenguajes de programación. 
• Comprender qué es la programación. 
• Distinguirás los paradigmas de programación y los lenguajes asociados a 
éstos. 
• Reconocerás las fases de la metodología de la programación. 
• Codificarás programas sencillos en lenguaje C. 
• Identificarás los datos de entrada y salida de un algoritmo. 
• Diseñarás algoritmos que solucionen problemas sencillos. 
• Representarás algoritmos en diagrama de flujo y en pseudocódigo. 
• Conocerás el procedimiento a seguir para verificar la correcta ejecución de un 
algoritmo. 
 
 
Competencia específica 
 
Desarrollar y comprobar pseudocódigo para comprender la estructura de un 
programa en un lenguaje de programación con la resolución de problemas simples 
mediante algoritmos representados a través de diagramas de flujo. 
 
Logros 
• Comprender los conceptos básicos de programación. 
• Identificar la metodología de la programación. 
• Desarrollar algoritmos con base en problemas simples. 
• Desarrollar y verificar el pseudocódigo de un algoritmo. 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 5 
 
1.1. Introducción a la programación 
 
Como ya se mencionó, la acción de programar consiste en indicarle a la 
computadora qué es lo que tiene que hacer. Para esto, los desarrolladores de 
software escriben programas compuestos de un conjunto de instrucciones 
que son interpretadas y ejecutadas por la computadora para buscar la 
resolución de un problema. Se concibe un programa como “un sistema 
para transformar datos” (Winder, 1995, p.3). 
Para fines de este curso entenderemos que una computadora es una máquina 
electrónica que recibe datos de entrada y los procesa de acuerdo al conjunto 
de instrucciones, llamado programa, para obtener nuevos datos que son el 
resultado del proceso, tal como se ilustra en la siguiente figura: 
 
 
 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 6 
Un programa se compone, entre otras cosas, de: 
• Datos: variables o constantes. 
• Operadores: lógicos, aritméticos, relacionales y jerárquicos. 
• Estructuras de control: secuenciales, selectivas y repetitivas. 
 
Un programa es la forma en que el usuario o programador establece 
comunicación con la computadora, de acuerdo a un conjunto de 
instrucciones, para obtener nuevos datos que son el resultado del proceso, tal 
como se ilustra en la siguiente figura: 
 
Elementos básicos de una computadora 
 
Los componentes de una computadora son básicamente: hardware y 
software. 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 7 
Los recursos de hardware son todos aquellos elementos de la computadora 
que se pueden palpar como, por ejemplo: el monitor, el teclado, el disco duro 
y la memoria, entre otros (Sánchez, 2005). Los recursos de software son 
aquellos elementos intangibles sin los cuales la computadora no funcionaría, 
es decir, el soporte lógico: programas y datos, entre los que se encuentran los 
sistemas operativos, editores de texto, compiladores, bases de datos, 
videojuegos, etc. (Sánchez, 2005). 
 
Con el fin de poder entender la interacción de estos recursos y la estructura 
interna de la computadora, se hará referencia al modelo de Von Neumann que 
propone que tanto el programa como los datos sean almacenados en la 
memoria permanente lo que permite que la computadora no tenga que 
reconstruirse, pues para programarla únicamente se deberá introducir el 
programa por el dispositivo indicado y posteriormente alimentarla con los 
datos de entrada para que calcule la salida correspondiente. 
 
Arquitectura de una computadora 
 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 8 
Los elementos que componen esta arquitectura de la computadora según el 
modelo de Von Newman son: la unidad central de procesamiento (CPU por sus 
siglas en Inglés – Central Processor Unit) que está integrada por la unidad 
aritmética-lógica(ALU por sus siglas en Inglés - Arithmetic Logic Unit) y la 
unidad de control (CU por sus siglas en Inglés – Control Unit), la memoria y los 
dispositivos de entrada como el teclado, el ratón, un escáner, etc., y los de salida 
como el monitor, una impresora, una bocina o altavoz, por ejemplo. 
 
Para consultar una breve reseña y el concepto de programación, lee 
detenidamente el documento U1. Conceptos de programación y cómputo que 
se encuentra en la sección Material de apoyo. 
 
1.1.1. Ejecución de programas en la computadora 
 
Continuando con los elementos necesarios que integran el ámbito de la 
programación, abajo se expone una explicación del funcionamiento de una 
computadora en relación con la ejecución de un programa. 
 
Según Joyanes y Zohanero (2005), al ejecutar cualquier programa una vez que 
el programa y los datos fueron almacenados en la memoria principal, se realiza 
el siguiente proceso en el interior de la CPU: 
1. La Unidad de Control consulta en la memoria la instrucción indicada en el 
contador del programa y la almacena en el registro de instrucciones, 
actualizando el contador del programa con la dirección de memoria de la 
siguiente instrucción. 
2. Una vez almacenada la instrucción en el registro del programa, la unidad de 
control la decodifica, detectando los dispositivos implicados en su ejecución. 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 9 
3. Una vez detectados los dispositivos, la misma Unidad de Control, les envía 
las señales de control, indicándoles la acción a realizar y, si es el caso, los datos 
y/o la dirección de memoria correspondiente. 
4. Cuando cada dispositivo concluye con las acciones designadas, envía una 
señal a la unidad de control, para que ésta continúe con el mismo 
procedimiento para la siguiente instrucción, así hasta ejecutar todo el 
programa. 
 
Al período en el que se ejecuta una instrucción se le conoce como ciclo de 
instrucción o ciclo fetch. 
 
Para revisar a detalle el funcionamiento del CPU consulta el siguiente 
documento Unidad 1. Funcionamiento de la Unidad Central de Procesamiento 
CPU en la sección Material de apoyo. 
 
Con el fin de ilustrar este procedimiento, se analizará la ejecución del siguiente 
programa escrito en un lenguaje de programación ficticio. 
 
Ejemplo de ciclo de instrucción: 
El siguiente conjunto de instrucciones calcula el área de un rectángulo. Para 
comenzar es necesario delimitar el problema cuyo objetivo es obtener el área 
de un rectángulo. Como se sabe, los datos que se requieren para poder 
calcularla, según la fórmula, son las medidas de la base, las medidas de la 
altura, realizar la operación de multiplicación la base del rectángulo, por el dato 
que corresponde a la altura: 
𝑏 ∗ ℎ 
 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 10 
El ejemplo de programa para calcular el área de un rectángulo es el siguiente: 
Imprimir “Ingresa la base:” 
Leer b 
Imprimir “Ingresa la altura:” 
Leer h 
área← b*h 
Imprimir área 
 
Antes de definir paso a paso la ejecución de este programa se describirá la 
función de cada una de las instrucciones que lo integran. 
 
En programación hay una nomenclatura en la cual la información contenida 
dentro de los signos <> (se les conoce como picoparéntesis o signos mayor y 
menor que) debe ser modificada por el programador, es decir, son datos que 
se proporcionan a la computadora y dependen del objetivo planteado. Según 
el ejemplo la palabra Dato puede ser una letra o un símbolo dependiendo del 
planteamiento, es decir, es el nombre del campo o variable y éste debe ser 
modificado. 
 
 
Instrucción Descripción 
Imprimir 
<Dato> 
Imprime en el dispositivo de salida estándar el 
<Dato> indicado en la instrucción, que puede ser un 
mensaje de texto o el valor de una variable. 
Leer <X> 
Lee por medio del teclado un dato, lo almacena en la 
variable <X> indicado y lo almacena en la memoria 
RAM. 
<X> ← <Dato> 
La flecha representa una asignación, esta acción 
actualiza la dirección de memoria asignada a <X> 
con el valor <Dato>. 
Lista de instrucciones en lenguaje de programación 
 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 11 
Cabe señalar que, en los lenguajes de programación, las direcciones de 
memoria se representan por medio de variables, para hacerlos más legibles. 
De tal manera que <X> representa una variable y <Dato> puede ser un mensaje 
o cualquier valor. 
Ahora sí, de acuerdo con la información anterior, en la siguiente tabla se 
describe el ejemplo de un programa paso a paso explicando las acciones que 
realiza la unidad de control junto con las otras unidades de la computadora 
involucradas en la ejecución de cada una de las instrucciones del programa. 
Instrucción Descripción 
Imprimir “Ingresa base:” 
▪ La unidad de control envía señales al monitor 
para que imprima el mensaje “Ingresa base:”. 
Leer b 
▪ La unidad de control coordina las acciones 
necesarias para que, por medio del teclado, el 
usuario introduzca un número y lo almacene 
en la memoria principal, en el espacio 
correspondiente a la variable b. 
 Imprimir “Ingresa altura:” 
▪ La unidad de control, nuevamente, envía una 
señal al monitor para que imprima el 
mensaje “Ingresa altura:”. 
 Leer h 
▪ La unidad de control coordina las acciones 
necesarias para que el usuario introduzca un 
número, por medio del teclado, y lo almacene 
en el espacio de memoria correspondiente a 
la variable h. 
área← b *h 
▪ La unidad de control envía la señal indicada a 
la ALU para que realice la multiplicación, 
posteriormente envía la señal a la memoria 
junto con el resultado de la multiplicación 
para que se almacene en el espacio de 
memoria correspondiente a la variable área. 
 Imprimir área 
▪ La unidad de control trae de la memoria el 
dato almacenado en el espacio asignado a la 
variable área y coordina las acciones para que 
el monitor imprima este valor. 
Ejemplo de ejecución paso a paso de un programa 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 12 
 
Para revisar el tema sobre el lenguaje máquina, consulta el documento U1. 
Lenguajes de bajo nivel en la sección Material de apoyo. 
 
1.1.2. Lenguaje de programación 
 
El lenguaje de programación sirve para escribir código orientado a resolver 
algún problema o necesidad. Cada lenguaje de programación se define a partir 
de un conjunto de símbolos básicos, llamado alfabeto; un conjunto de reglas, 
llamado sintaxis, que definen la forma de manipularlos o combinarlos para 
representar instrucciones; y las reglas que especifican los efectos de dichas 
instrucciones cuando son ejecutadas por la computadora, conocidas como 
semántica. De esta manera se puede decir que los elementos que conforman 
un lenguaje de programación son: 
 
𝐿𝑒𝑛𝑔𝑢𝑎𝑗𝑒 𝑑𝑒 𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎𝑐𝑖ó𝑛 = 𝑎𝑙𝑓𝑎𝑏𝑒𝑡𝑜 + 𝑠𝑖𝑛𝑡𝑎𝑥𝑖𝑠 + 𝑠𝑒𝑚á𝑛𝑡𝑖𝑐𝑎 
 
Los lenguajes de programación se clasifican en lenguajes de bajo nivel y 
lenguajes de alto nivel dependiendo de su legibilidad para el ser humano. Los 
primeros se caracterizan porque sus instrucciones se parecen más a las 
acciones elementales que ejecuta una computadora, como son: sumar, restar, 
guardar en memoria, etcétera. En cambio, las instrucciones de los lenguajes 
de alto nivel son más parecidas a un lenguaje humano, por lo regular en idioma 
inglés. 
 
Los programas escritos en bajo nivel describen a detalle lo que sucede a nivel 
de hardware, mientras que los programas escritos en un lenguaje de alto nivel 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 13 
lo ocultan, teniendo como ventaja que son más fáciles de entender para las 
personas. 
 
Estructura de un lenguaje 
Como en muchos otros lenguajes, una función es un código de programación 
que tiene una tarea específica y formaparte del programa original. Es una 
secuencia de instrucciones precisas, para realizar una tarea en específico. 
 
Una función está definida por los siguientes elementos: 
• Cabecera de la función. Está integrada por un tipo de dato, un nombre 
de la función y una la lista de parámetros. 
• Código de programación. Es único para cada función. Se incluye el valor 
devuelto por la función. 
 
Los aspectos más importantes en el diseño de una función son: 
• Tipo de resultado. Se refiere al tipo de dato que devuelve la función. 
• Lista de parámetros. 
• Cuerpo de una función. Se encierra entre llaves {}. 
• Paso de parámetros. 
• Declaración de variables de forma local. Dentro de una función pueden 
declararse variables de distintos tipos, pero estas perduran únicamente 
dentro la función. 
• Valor devuelto por la función. 
 
Una función devuelve un único valor, el valor que devuelve puede ser de 
cualquier tipo de datos reconocido. El nombre de una función comienza con 
una letra o un subrayado (_) y puede contener las letras y subrayados que se 
desee. 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 14 
 
A continuación, se muestra la estructura general de una función en lenguaje 
programación C: 
 
 
Tipos de datos 
Los tipos de datos que suelen utilizarse en la mayoría de los lenguajes de 
programación son: 
• Cadena (texto). 
• Entero (número entero). 
• Decimal (número con punto decimal). 
 
Evolución de los lenguajes de programación 
Con las primeras computadoras surgió el primer lenguaje de programación 
que fue precisamente el lenguaje de máquina, el cual es considerado el 
lenguaje de primera generación. Las instrucciones en lenguaje de máquina 
dependían de las características de cada equipo, por lo que dada la dificultad 
de desarrollar programas en unos y ceros, los investigadores de la época 
desarrollaron el lenguaje ensamblador, cuyo conjunto de instrucciones consta de 
palabras nemotécnicas que corresponden a las operaciones básicas que una 
computadora puede ejecutar. 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 15 
Para ilustrar esto se revisará la siguiente instrucción:1 
 
Mueve el contenido del registro 8 al contenido del registro 10 
 
En lenguaje de máquina, ésta se podría representar como: 
0010 0000 1000 0100 
 
Lo anterior es ilegible para el ser humano, en cambio en lenguaje ensamblador 
esta instrucción se puede representar de la siguiente forma: 
MOV R8, R10 
 
El código anterior continúa estando en clave, pero es definitivamente más 
amigable que las cadenas de ceros y unos. 
 
Para traducir de lenguaje ensamblador a lenguaje de máquina, se 
desarrollaron programas llamados ensambladores (en inglés, assemblers). 
Este lenguaje fue considerado de segunda generación. Posteriormente, en la 
década de los 50´s aparecieron los primeros lenguajes de alto nivel, cuyas 
instrucciones son más parecidas al idioma inglés y, por lo tanto, más fácil de 
utilizar para los programadores, además de que son independientes de la 
arquitectura de las computadoras. Algunos ejemplos son: FORTRAN y COBOL 
(que son los primeros lenguajes que aparecieron y en sus inicios se utilizaron 
para aplicaciones científicas), C, Pascal, Ada, Lisp y Prolog (utilizados 
principalmente en inteligencia artificial), Java, C++, C#, entre otros. 
 
Al igual que el lenguaje ensamblador, los programas escritos en un lenguaje 
de alto nivel deben ser codificados a lenguaje de máquina, así que junto con 
 
1 Este ejemplo es una adaptación de la versión original que aparece en (Joyanes & Zohanero, 2005, pág. 32) 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 16 
ellos se desarrollaron programas traductores, que de acuerdo con la forma en 
que trabajan se dividen en dos tipos: compiladores e intérpretes. 
 
Compiladores. Traducen todo el programa escrito en un lenguaje de alto nivel, 
llamado programa o código fuente, generando un nuevo programa objeto que 
está escrito en lenguaje de máquina y a partir de éste se genera un programa 
ejecutable, el cual puede ejecutarse cada vez que se desee sin tener que 
compilar el programa fuente nuevamente. Además, como parte del proceso 
de traducción el compilador detecta los errores que hay en el código fuente, 
informándole al programador para que los corrija, pues un programa sólo se 
compila si no tiene errores. 
 
Intérprete. Revisa cada línea de código individualmente, la analiza y enseguida 
la ejecuta, sin revisar todo el código y sin generar un programa objeto, así que 
cada vez que se quiere ejecutar el programa se vuelve a traducir el programa 
fuente línea por línea. 
 
Por lo anterior, los compiladores requieren una fase extra antes de poder 
generar un programa ejecutable, y aunque esto pareciera menos eficiente en 
cuanto a tiempo, los programas creados con compiladores se ejecutan mucho 
más rápido que el mismo programa ejecutado con un intérprete. 
Adicionalmente, cuando un programa ya ha sido compilado puede ejecutarse 
nuevamente sin tener que compilarse, mientras que los programas que son 
interpretados, se deben volver a traducir cada vez que se ejecutan. 
 
Para revisar una explicación más detallada sobre los lenguajes de bajo nivel, 
revisa el documento U1. Lenguajes de bajo nivel en la sección Material de 
apoyo. 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 17 
Conforme han ido evolucionando las computadoras también lo han hecho las 
estrategias para solucionar problemas, generando nuevos programas con 
diferentes filosofías, llamadas paradigmas de programación. 
 
1.1.3. Paradigmas de programación 
 
Un paradigma “es un conjunto explícitamente determinado de conceptos y 
proposiciones usadas para dirigir investigación dentro de un campo 
determinado” (Cedano, Et al, 2014, p. 165). 
 
“Los paradigmas de programación se definen como las diversas maneras que 
a lo largo de la transformación de los lenguajes de programación se han 
reconocido como estilos para programar y resolver problemas. […] Cuando se 
describen los distintos enfoques del desarrollo de un programa y las técnicas-
y lenguajes- correspondientes, se habla de paradigma de programación. Éste 
define la forma en que se estructura el código, y la relación de éste con los 
datos.” (Ibidem, p. 165). 
 
Un lenguaje de programación siempre sigue un paradigma de programación, 
aunque también podemos encontrar lenguajes con la influencia de dos 
paradigmas, tal es el caso del lenguaje C, que surgió bajo el paradigma 
procedimental y se transformó al paradigma orientado a objetos, de tal 
manera que puede soportar ambos paradigmas. 
 
Los paradigmas de programación más importantes son: imperativo, funcional, 
lógico y orientado a objetos. Para revisar en qué consisten estos paradigmas, 
revisa el documento U1. Paradigmas de programación en la sección Material 
de apoyo. 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 18 
 
 
1. 2. Metodología de la programación 
En programación, se entiende como metodología al “conjunto de estrategias 
usadas para abordar un problema y transformarlo en un programa codificado 
que tendrá una estructura o arquitectura acorde con un paradigma de 
programación” (Martínez y Martín, 2003, p.46). 
 
La Importancia de contar con una metodología radica en la necesidad de 
sistematizar las acciones a realizar para la resolución del problema propuesto 
considerando todos los requerimientos, datos y objetivo del programa, es 
decir, todos los elementos necesarios para desarrollar un programa que dé 
solución a un requerimiento específico, con ello se reduce la probabilidad de 
error al momento de ejecutar un programa, y los costos que implica realizar 
correcciones. 
 
1.2.1. Fases de la metodología de programación 
Independientemente del paradigma que seelija y del lenguaje que se utilice 
para programar, existe un conjunto de fases que deben seguirse para realizar 
un programa de computadora que constituyen una metodología (Levine, 
2001): 
 
Fases de la metodología de programación 
 
 
Planteamiento del problema 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 19 
Es la primera fase del ciclo, consiste en seleccionar y plantear el problema que 
se quiere resolver para poder comenzar su análisis. Es muy importante tener 
bien claro y delimitar desde un inicio el problema a resolver pues de esto 
dependerá el éxito de las siguientes fases del proceso. En el planteamiento del 
problema se deben considerar los insumos (datos de entrada) que se necesitan 
para resolver el problema; los pasos a seguir para su solución y el producto final 
(datos de salida). 
 
Análisis del problema 
En esta fase se determina ¿qué hace el programa? Por lo cual debe definirse 
de manera clara y concisa el problema en cuestión, se debe establecer el 
ámbito del problema, las características, limitaciones y modelos de lo que se 
desea resolver. Este paso debe conducir a una especificación completa del 
problema en donde se describa cuáles son los datos requeridos para resolverlo 
(datos de entrada) y cuál es el resultado deseado (salida). 
 
 
El análisis del ejemplo es muy simple y se resume en la siguiente tabla: 
 
¿Cuál es la salida deseada? El área de un rectángulo, la cual 
identificaremos como área 
¿Qué método(s) se pueden 
utilizar para llegar a la 
solución? 
El área de un rectángulo se 
puede calcular con la siguiente 
fórmula: 
Á𝑟𝑒𝑎 = 𝐵𝑎𝑠𝑒 ∗ 𝐴𝑙𝑡𝑢𝑟𝑎 
¿Qué datos de entrada se 
requieren? 
 
Por el planteamiento del 
problema y dado el método 
anterior, los únicos datos que se 
requieren son: la medida de la 
base que se representa por b y 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 20 
la medida de la altura indicada 
por h 
¿Qué datos o información 
adicional es necesaria para 
solucionar el problema? 
En este caso no se requiere más 
información. 
¿Existe algún problema o 
condiciones que deban 
cumplirse? 
Las únicas restricciones son que 
las medidas de la base y altura 
sean mayores a cero. 
Análisis del problema ejemplo 
 
Diseño del algoritmo 
En esta fase se define ¿cómo el programa resuelve el problema? Para ello, se 
describe paso a paso la solución del mismo, lo cual se conoce como algoritmo. 
Cuando el problema es grande se recomienda dividirlo en problemas más 
pequeños y resolver por separado cada uno de ellos. A esta metodología se le 
conoce como diseño descendente (top-down) o modular. Existen diferentes 
formas de representar un algoritmo, algunas formales como una fórmula 
matemática, o informales, como es el caso del lenguaje natural. 
 
Para continuar con el desarrollo del programa ejemplo, se planteará la solución 
como una secuencia de pasos conocida como pseudocódigo: 
 
 
 
 
 
 
 
Ejemplo de pseudocódigo 
 
 
1. Obtener la medida de la base (𝑏) y la altura (ℎ) 
2. Calcular: á𝑟𝑒𝑎 = 𝑏 ∗ ℎ 
3. Imprimir el resultado (á𝑟𝑒𝑎) 
Calcula el área de un rectángulo 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 21 
Los algoritmos en la programación. Como ya se mencionó, las computadoras 
necesitan recibir indicaciones en un formato entendible para ellas, con el fin de que 
realicen las acciones deseadas. Las indicaciones u órdenes se agrupan en un 
programa, al conjunto de programas se le conoce como software. Para analizar la 
estructura de un programa, éste "se puede dividir en dos partes que son: el formato 
de representación interno del programa, que constituye el lenguaje máquina o 
código ejecutable, y el formato de presentación externa, que es un archivo o un 
conjunto de archivos, que puede o no estar en un formato que puede ser leído por el 
usuario (es decir, en un formato que respeta las reglas)” (Juganaru, 2014, p.2). 
 
Para que la computadora realice las acciones deseadas, es necesario elegir el 
software más adecuado para escribir un programa que realice la acción 
deseada., a esta acción se le denomina programación, con ello, no se afirma 
que la programación es sólo la escritura de código, la programación implica 
“un conjunto de tareas que se deben cumplir, a fin de que el código que se 
escribió resulte correcto y robusto, y cumpla con el objetivo o los objetivos para 
los que fue creado.” (Ibídem) Para ello, es preciso realizar dos acciones 
dependiendo del tipo de problema a resolver o acciones a realizar: 
• “Conocer las herramientas, los formalismos y los métodos para transformar 
un problema en un programa escrito en un lenguaje (que posiblemente no 
será el lenguaje máquina), y para que dicho programa pueda ser 
transformado en un código ejecutable. 
• Saber transformar el problema inicial en un algoritmo y luego en un 
programa” (Ibídem). 
 
Para los casos de problemas muy generales, existen métodos conocidos que 
solo se adaptan a un problema en particular, el método es por lo general un 
algoritmo o una técnica de programación. 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 22 
La palabra algoritmo proviene del nombre de un matemático persa conocido 
como Mohammad Al-KhoWârizmi, nacido alrededor del 780 d. c. en 
KhoWârizm, de ahí su seudónimo. Se considera como el padre de la algoritmia 
porque definió las reglas paso a paso para sumar, restar, multiplicar y dividir 
números decimales. La traducción al latín de Al-Khwārizmī es algoritmi, que 
da origen a la palabra algoritmo (Joyanes & Zohanero, 2005). Según la RAE 
(2016) un algoritmo es un “Conjunto ordenado y finito de operaciones que 
permite hallar la solución de un problema”, y también es “Método y notación 
en las distintas formas del cálculo”. 
 
Formalmente, en programación, un algoritmo se define como una secuencia 
finita de instrucciones precisas y eficaces para resolver un problema, que 
trabaja con uno o más datos (entrada) y devuelve un resultado (salida) (Viso & 
Peláez, 2007). 
 
Para llegar a la solución de un problema se requiere creatividad, ya que el 
programador sólo cuenta con la especificación del problema y su experiencia 
en resolverlos de una forma estructurada de inicio a fin. 
 
Existen dos maneras de representar un algoritmo: una gráfica, conocida como 
diagramas de flujo; y otra, similar a un lenguaje humano, la cual se denomina 
pseudocódigo. 
 
Los diagramas de flujo son una representación totalmente gráfica de un 
algoritmo que utiliza símbolos para representar las instrucciones y flechas para 
unirlas e indicar el orden en el que deben ejecutarse llamadas líneas de flujo, 
lo anterior hace más fácil seguir la secuencia de la ejecución de las 
instrucciones. Dichos símbolos fueron normalizados por el Instituto 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 23 
Norteamericano de Normalización ANSI (American National Standards 
Institute, por sus siglas en inglés). 
 
Algunos de los símbolos más utilizados se muestran en el siguiente cuadro: 
Símbolo Descripción 
 
Terminal. Representa el inicio y el final de un 
algoritmo. 
 
 Entrada y Salida (E/S). Representa la lectura de datos 
desde el dispositivo de entrada estándar, así como la 
impresión de datos en el dispositivo de salida 
estándar. 
 
Proceso. Representa cualquier tipo de operación que 
pueda originar un cambio de la información 
almacenada en memoria, asignaciones u 
operaciones aritméticas. 
 
Escribir. Despliega los textos o contenidos de las 
variables en cuestión. 
 
Decisión. Nos permite analizar una situación, con 
base en los valores verdadero y falso. Toma una 
decisión de las instrucciones que a continuación 
ejecuta el algoritmo. 
 Conector. Sirve para enlazar dos partes cualesquiera 
del diagrama que están en la misma página.Línea de flujo. Indica el orden de la ejecución de las 
operaciones. La flecha indica cuál es la siguiente 
instrucción que se debe realizar. 
 
 Conector. Conecta a dos puntos del diagrama 
cuando éstos se encuentran en páginas diferentes. 
Representa el inicio y el final de un programa. 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 24 
 Llamada a subrutina. Llama a un proceso 
determinado o subrutina. Una subrutina es un 
módulo independiente del módulo principal, que 
realiza una tarea determinada y al finalizar regresa el 
control de flujo al módulo principal. 
Símbolos básicos de los diagramas de flujo 
 
A continuación, consulta el documento U1. Algoritmos y diagramas de flujo, en 
la sección Material de apoyo. 
 
A continuación, se muestra el diagrama de flujo del problema que hemos 
tomado como ejemplo en esta Unidad y que consiste en calcular el área de un 
rectángulo: 
 
Ejemplo de diagrama de flujo 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 25 
 
El pseudocódigo es un lenguaje de especificación formal de algoritmos. La 
solución de un problema se representa de manera narrativa utilizando 
palabras claves, generalmente verbos, escritos en un lenguaje natural, que en 
nuestro caso será español. Es una de las representaciones de algoritmos más 
utilizadas por su parecido con el lenguaje natural y porque su codificación en 
un lenguaje de programación estructurado y modular como C es directa. En el 
ejemplo anterior se muestra el pseudocódigo escrito en solución al problema 
de calcular el área de un rectángulo. 
 
 
Un algoritmo también se puede expresar mediante una fórmula matemática, 
en el caso del ejemplo que hemos tratado, esta fórmula es: 
á𝑟𝑒𝑎 = 𝑏𝑎𝑠𝑒 × 𝑎𝑙𝑡𝑢𝑟𝑎 
 
Se puede utilizar cualquiera de las dos representaciones para diseñar un 
algoritmo, pues en cualquiera de las dos se puede expresar un algoritmo 
estructurado, de tal manera que la más conveniente depende del estilo de 
cada programador. 
 
La forma de evaluar el correcto funcionamiento del pseudocódigo es a través 
de una prueba de escritorio. La prueba de escritorio consiste en que el 
programador siga los pasos descritos en el pseudocódigo simulando el 
comportamiento de la computadora. Para ello requiere definir un conjunto de 
datos de prueba que le permita evaluar todos los posibles resultados que se 
obtendrán una vez que se lleve a cabo todos los pasos descritos en el 
pseudocódigo. Para fines de comprobación y de familiarización del 
funcionamiento de un pseudocódigo se recomienda utilizar un número finito 
de datos y escribir las variables en una hoja de papel, para el caso de un 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 26 
problema simple, para el desarrollo de sistemas más complejos existen 
herramientas más acordes para realizar esta comprobación. 
 
A continuación, se expone un ejemplo de prueba de escritorio considerando 
los datos del problema anterior. 
Datos de entrada Operación o instrucción 
a realizar 
Resultado 
Base, altura Área=base*altura Área 
5, 10 5*10 50 
 
En este ejemplo no se muestran variables porque se trata de un pseudocódigo; 
en el caso de verificar el funcionamiento del código de un programa, será 
necesario desglosar cada una de las variables que intervienen en el proceso. 
 
Implementación (codificación) 
 
El algoritmo no puede ser ejecutado por una computadora, por ello debe 
traducirse a un lenguaje de programación (como por ejemplo el lenguaje C) 
para obtener un programa fuente que se traduzca a lenguaje de máquina que 
pueda ser ejecutado por la computadora. 
 
En el siguiente cuadro se muestra la codificación del algoritmo en lenguaje C, 
por el momento no profundizaremos en la estructura y los componentes de 
este lenguaje, simplemente se expone este código a manera de ejemplo de lo 
que se produce en la fase de implementación o codificación. 
 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 27 
#include<stdio.h> 
#include<stdlib.h> 
main() 
{ 
 int b,h, area; 
printf("Ingresa la base y altura:"); 
scanf("%d %d", &b,&h); 
 area = b * h; 
 printf("Area = %d", area); 
} 
Ejemplo de Programa en lenguaje C que calcula área de un rectángulo. 
 
 
 
En la unidad 2 se estudiará con más detalle este tema abordando el lenguaje 
C. 
 
 
Validación y pruebas 
Esta fase se lleva a cabo una vez que se ha codificado el algoritmo previamente 
diseñado con el fin de verificar que su ejecución sea correcta. Existen diferentes 
formas de probar que la solución es correcta, algunas de ellas son formales y 
otras informales: las primeras se utilizan para garantizar que el programa o 
algoritmo siempre calcule el resultado deseado para cualquier conjunto de 
datos de entrada; en cambio, en las segundas sólo se prueba que funciona 
correctamente para algunos datos de entrada, tratando de encontrar posibles 
errores, en este caso no se puede garantizar que el programa o algoritmo 
calcule la salida correcta para cualquier conjunto de datos. En cualquiera de 
los dos casos, si se encuentra alguna falla se debe corregir y volver a realizar 
pruebas. 
 
Dado que el problema que estamos analizando como ejemplo es muy sencillo, 
si se ejecuta manualmente el programa o algoritmo relacionado para un caso 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 28 
específico de rectángulo se observará que el resultado es correcto. En la 
siguiente figura se ilustra la ejecución del programa: 
 
Resultado de la ejecución del programa ejemplo 
 
Documentación 
Cualquier proyecto de software por la complejidad que tiene requiere que 
tanto las ideas principales como el desarrollo de principio a fin sea 
documentado con el fin de que se pueda entender la lógica del programa y de 
ser necesario se pueda modificar o darle mantenimiento posteriormente, sin 
tantas complicaciones. Es común que si se desea modificar un programa y no 
se tiene información acerca de cómo fue construido originalmente, sea más 
fácil volverlo a hacer desde el principio que intentar entender la lógica aplicada 
en un inicio. Uno de los mejores ejemplos de la importancia de la 
documentación es el software libre, en el cual colaboran diversos 
desarrolladores para su elaboración, teniendo el código fuente disponible para 
modificarlo a su conveniencia. Estos desarrolladores se encuentran en 
diferentes puntos geográficos del globo terráqueo e incluso varios hablan 
diferentes idiomas, así es que la documentación les permite entender lo que 
está haciendo cada uno y bajo qué método está trabajando. 
 
Como parte de la documentación también deben incluirse manuales de 
usuario y las normas de mantenimiento para que se haga un buen uso del 
software y éste se mantenga al día. 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 29 
Mantenimiento 
Esta fase tiene sentido una vez que fue terminada y liberada una primera 
versión del programa, misma que ya está siendo utilizada. En esta fase se 
actualiza y modifica dicho programa para corregir errores no detectados o para 
cambiar y/o agregar una nueva función. Siguiendo con nuestro ejemplo, se 
podría extender el programa ejemplo que calcula el área de un rectángulo 
para obtener también su perímetro: 
 
#include<stdio.h> 
#include<stdlib.h> 
main() 
{ 
 int b,h, area, perimetro; 
printf("Ingresa la base y altura:"); 
 scanf("%d %d", &b,&h); 
perimetro = 2*b + 2*h; 
area = b * h; 
printf("Perimetro = %d", perimetro); 
 printf("Area = %d", area); 
} 
 
Ejemplo de mejora al programa original incluyendo el cálculo del perímetro de un rectángulo 
 
En el programa se resaltan las instrucciones que se añadieron para calcular el 
perímetro. 
 
La metodología de programación sirve para desarrollar softwaredesde el inicio 
con su diseño hasta el final con su implementación, de ahí la importancia de 
entender las diferentes fases y las actividades involucradas en cada una de 
ellas, con el fin de dar una solución óptima al problema en cuestión. 
 
 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 30 
 
Cierre de la Unidad 
 
Al concluir esta primera unidad se abordó de manera general, las partes que 
integran una computadora y la manera en que cada una de ellas interactúa 
para obtener el resultado esperado por el usuario. Así mismo, se expusieron las 
diversas formas de comunicación con las máquinas a través de lo que se 
denominan lenguajes de programación y cómo los distintos paradigmas que 
existen permiten aplicar las opciones que resulten más favorecedoras para la 
resolución de los problemas que se nos planteen, distinguiendo los elementos 
de un programa y desarrollo del mismo mediante la programación. 
 
Es muy importante tener en mente que el desarrollo y puesta en marcha 
exitosa de un programa depende de que se siga metódicamente cada una de 
las fases involucradas en dicho proceso creativo, independientemente del 
lenguaje que se utilice. Lo anterior, nos permitirá diseñar algoritmos y 
soluciones óptimas bien estructuradas para responder a las necesidades de la 
industria en la que te desarrolles profesionalmente. 
 
 
 
 
 
 
 
 
 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 31 
 
Fuentes de consulta 
 
• Cedano Olvera, M. A. Et al. (2014). Fundamentos de computación para 
ingenieros. México: Grupo Editorial Patria. 
 
• Jiménez, C. M. y Otero, C. B. (2013). Fundamentos de ordenadores: 
programación en C. Barcelona: Universitat Politécnica de Catalunya. 
 
• Joyanes, L., & Zohanero, I. (2005). Programación en C. Metodología, 
algoritmos y estructuras de datos. España: Mc Graw Hill. 
 
• Juganaru, M.M. (2014). Introducción a la programación. 1ª Ed. México: 
Editorial Patria. 
 
• Levine, G. (2001). Introducción a la Computación y a la Programación 
Estructurada. México: Mc Graw Hill. 
 
• Martínez Gil, F.A., y Martín Quetglás, G. (2003). Introducción a la 
programación estructurada en C. Valencia: Universitat de València 
 
• Mejía Mesa, A. (2004). Guía práctica para manejar y reparar el 
computador (p. 36-41). Bogotá: Panamericana Formas e Impresos. 
 
• Quero Catalinas, E. (2002). Sistemas operativos y lenguajes de 
programación. Madrid: Thomson Ediciones-Paraninfo. p.128-130 
 
 
Unidad 1. Preparando el camino hacia la programación 
UNADM | DCEIT | FPR 32 
• Rabasa Dolado, A., Santamaría Arana, L. (2004). Metodología de 
programación. Principios y aplicaciones. Alicante: Editorial Club 
Universitario. 
 
• RAE Real Academia Española (2016). Algoritmo. Recuperado de 
http://dle.rae.es/?id=1nmLTsh 
 
• Sánchez Montúfar, L.A. (2005). Informática. México: Pearson Educación 
 
• Winder, R. (1995). Desarrollo de software con C++. Madrid: Díaz de 
Santos. 
http://dle.rae.es/?id=1nmLTsh

Continuar navegando