DFD, ALGORITMOS
Herramientas
Para implementar la solución de un problema mediante el uso
de una computadora es necesario establecer una serie de pasos que permitan
resolver el problema, a este conjunto de pasos se le denomina algoritmo, el cual
debe tener como característica final la posibilidad de transcribirlo fácilmente
a un lenguaje de programación, para esto se utilizan herramientas de
programación, las cuales son métodos que permiten la elaboración de algoritmos
escritos en un lenguaje entendible.
Un algoritmo, aparte de tener como característica la
facilidad para transcribirlo, debe ser:
1. Preciso. Debe indicar el orden en el cual debe realizarse
cada uno de los pasos que conducen a la solución del problema.
2. Definido. Esto implica que el resultado nunca debe
cambiar bajo las mismas condiciones del problema, éste siempre debe ser el
mismo.
3. Finito. No se debe caer en repeticiones de procesos de
manera innecesaria; deberá terminar en algún momento.
Por consiguiente, el algoritmo es una serie de operaciones
detalladas y no ambiguas para ejecutar paso a paso que conducen a la resolución
de un problema, y se representan mediante una herramienta o técnica. O bien, es
una forma de describir la solución de un problema planteado en forma adecuada y
de manera genérica.
Además de esto, se debe considerar que el algoritmo, que
posteriormente se transformará en un programa de computadora, debe considerar las
siguientes partes:
• Una
descripción de los datos que serán manipulados.
• Una
descripción de acciones que deben ser ejecutadas para manipular los datos.
• Los
resultados que se obtendrán por la manipulación de los datos.
Las herramientas o técnicas de programación que más se
utilizan y que se emplearán para la representación de algoritmos a lo largo del
libro son dos:
1. Pseudocódigo.
2. Diagramas de flujo.
Y alternativamente se presentarán soluciones de problemas
donde se utilicen:
3. Diagramas Nassi-Schneiderman (N/S).
Identificadores
Antes de analizar cada una las herramientas que se utilizan
en representación de algoritmos para la solución de problemas, se establecerá
qué son los identificadores que se utilizan dentro de un algoritmo.
Los identificadores son los nombres que se les asignan a los
objetos, los cuales se pueden considerar como variables o constantes, éstos
intervienen en los procesos que se realizan para la solución de un problema, por
consiguiente, es necesario establecer qué características tienen.
Para establecer los nombres de los identificadores se deben
respetar ciertas reglas que establecen cada uno de los lenguajes de
programación, para el caso que nos ocupa se establecen de forma indistinta
según el problema que se esté abordando, sin seguir regla alguna, generalmente
se utilizará la letra, o las letras, con la que inicia el nombre de la variable
que representa el objeto que se va a identificar.
Constante
Un identificador se clasifica como constante cuando el valor
que se le asigna a este identificador no cambia durante la ejecución o proceso
de solución del problema. Por ejemplo, en problemas donde se utiliza el valor
de
PI, si el lenguaje que se utiliza para codificar el programa
y ejecutarlo en la computadora no lo tiene definido, entonces se puede
establecer de forma constante estableciendo un identificador llamado PI y
asignarle el valor correspondiente de la siguiente manera:
PI = 3.1416.
De igual forma, se puede asignar valores constantes para
otro identificadores según las necesidades del algoritmo que se esté diseñando.
Variables
Los identificadores de tipo variable son todos aquellos
objetos cuyo valor cambia durante la ejecución o proceso de solución del
problema. Por ejemplo, el sueldo, el pago, el descuento, etcétera, que se deben
calcular con un algoritmo determinado, o en su caso, contar con el largo (L) y
ancho (A) de un rectángulo que servirán para calcular y obtener su área. Como se
puede ver, tanto L como A son variables que se proporcionan para que el
algoritmo pueda funcionar, y no necesariamente se calculen dentro del proceso
de solución.
Tipos de variables
Los elementos que cambian durante la solución de un problema
se denominan variables, se clasifican dependiendo de lo que deben representar
en el algoritmo, por lo cual pueden ser: de tipo entero, real y string o de
cadena, sin embargo, existen otros tipos de variables que son permitidos con base
en el lenguaje de programación que se utilice para crear los programas, por
consiguiente, al momento de estudiar algún lenguaje de programación en especial
se deben dar a conocer esas clasificaciones.
Para el caso de este libro, se denominará variables de tipo
entero a todas aquellas cuyo valor no tenga valores decimales; contrario a las
de tipo real, la cual podrá tomar valores con decimales. Como ejemplo de
variables enteras se puede considerar el número de personas, días trabajados,
edad de una persona, etcétera. Y para el caso de reales, se puede considerar el
sueldo de una persona, el porcentaje de equis cantidad, etcétera.
En caso de que las variables tomen valores de caracteres, se
designarán string o de cadena; como ejemplo de éstas se pueden mencionar el sexo
de una persona, falso o verdadero, el nombre de una persona, el tipo de sangre,
etcétera.
Pseudocódigo
Sin duda, en el mundo de la programación el pseudocódigo es
una de las herramientas más conocidas para el diseño de solución de problemas
por computadora. Esta herramienta permite pasar casi de manera directa la solución
del problema a un lenguaje de programación específico. El pseudocódigo es una
serie de pasos bien detallados y claros que conducen a la resolución de un
problema.
La facilidad de pasar casi de forma directa el pseudocódigo
a la computadora ha dado como resultado que muchos programadores implementen de
forma directa los programas en la computadora, cosa que no es muy recomendable,
sobre todo cuando no se tiene la suficiente experiencia para tal aventura, pues
se podrían tener errores propios de la poca experiencia acumulada con la
solución de diferentes problemas.
Por ejemplo, el pseudocódigo para determinar el volumen de
una caja de dimensiones A, B y C se puede establecer de la siguiente forma:
1. Inicio.
2. Leer las medidas A, B y C.
3. Realizar el producto de A * B * C y guardarlo en V (V = A
* B * C).
4. Escribir el resultado V.
5. Fin.
Diagramas de flujo
Los diagramas de flujo son una herramienta que permite
representar visualmente qué operaciones se requieren y en qué secuencia se
deben efectuar para solucionar un problema dado. Por consiguiente, un diagrama de
flujo es la representación gráfica mediante símbolos especiales, de los pasos o
procedimientos de manera secuencial y lógica que se deben realizar para
solucionar un problema dado.
Los diagramas de flujo desempeñan un papel vital en la
programación de un problema, ya que facilitan la comprensión de problemas
complicados y sobre todo aquellos en que sus procesos son muy largos;
generalmente, los diagramas de flujo se dibujan antes de comenzar a programar
el código fuente, que se ingresará posteriormente a la computadora.
Los diagramas de flujo facilitan la comunicación entre los
programadores y los usuarios, además de que permiten de una manera más rápida detectar
los posibles errores de lógica que se presenten al implementar el algoritmo.
Dentro de los diagramas de flujo se pueden utilizar los
símbolos con los cuales se indican las
operaciones que se efectuarán a los datos con el fin de producir un resultado.
Diagramas
Nassi-Schneiderman N/S
El diagrama N-S es una técnica en la cual se combina la
descripción textual que se utiliza en el pseudocódigo y la representación
gráfica de los diagramas de flujo. Este tipo de técnica se presenta de una
manera más compacta que las dos anteriores, contando con un conjunto de
símbolos muy limitado para la representación de los pasos que se van a seguir
por un algoritmo; por consiguiente, para remediar esta situación, se utilizan expresiones
del lenguaje natural, sinónimos de las palabras propias de un lenguaje de
programación (leer, hacer, escribir, repetir, etcétera).
Establecer cuál herramienta utilizar para representar los
algoritmos diseñados para la solución de problemas estará en función del gusto
y preferencia del programador, y quizás no tanto en función de la complejidad de
los problemas, ya que si bien es cierto que los diagramas N/S tienen pocos
símbolos, presentan la ventaja de que por lo compacto que resultan sus
representaciones suelen ser más fáciles de leer y de transcribir al lenguaje de
programación que se utilizará, pero luego resulta complicado acomodar las
acciones al construir el diagrama.
Los símbolos más utilizados en diagrama N/S corresponden a
un tipo de estructura para la solución del problema, esas estructuras pueden ser:
secuenciales de decisión y de ciclo.
También es importante señalar que antes de presentar
cualquier solución de un problema es necesario analizar el problema para
entender qué es lo que se quiere obtener, con qué se cuenta y cómo se obtendrá
lo deseado. En otras palabras, cómo está conformado el sistema: entrada,
proceso y salida. No establecer con claridad lo que se tiene puede traer
consigo una solución totalmente errónea; para que esto quede más claro,
considere el siguiente ejemplo. Se requiere un algoritmo para determinar el
cambio que recibirá una persona que adquiere un producto en la tienda.
Posiblemente alguien piense que la solución de este problema
requiere una gran cantidad de pasos probablemente demasiado complicados, o por
el contrario, que es demasiado sencillo, que no tiene ninguna complejidad.
Solución de problemas secuenciales
Para la solución de cualquier problema que se vaya a
representar mediante alguna de las herramientas que se han mencionado, siempre
tendremos que representar mediante letras, abreviaciones o palabras completas
los elementos que intervienen en el proceso de solución, a estos elementos se
les denomina variables o constantes. Por ejemplo: sueldo con S; horas trabajadas con HT; edad con E, o bien con la palabra completa según el gusto de cada diseñador.
Estructuras de control
Sin importar qué herramienta o técnica se utilice para la
solución de un problema dado, ésta tendrá una estructura, que se refiere a la
secuencia en que se realizan las operaciones o acciones para resolver el
problema; esas estructuras pueden ser: secuenciales, de decisión y de ciclo o
repetición, las cuales se analizarán en su momento.
Debe tenerse presente que la solución de un problema dado
mediante el uso de una computadora es un sistema, el cual debe tener una
entrada de datos, los cuales serán procesados para obtener una salida, que es
la solución o información que se busca.
Entrada→Proceso→Salida
Estructuras
secuenciales
En este tipo de estructura las instrucciones se realizan o
se ejecutan una después de la otra y, por lo general, se espera que se
proporcione uno o varios datos, los cuales son asignados a variables para que
con ellos se produzcan los resultados que representen la solución del problema
que se planteó.
Los algoritmos tienen como fin actuar sobre los datos
proporcionados por el usuario, a los que se les aplican procesos con el fin de
generar la información o un resultado. El algoritmo es realmente la
representación funcional de un sistema.
Se desea implementar un algoritmo para obtener la suma de
dos números cualesquiera. Se debe partir de que para poder obtener la suma es
necesario contar con dos números, pues el proceso que debemos realizar es
precisamente la suma de éstos, la cual se asigna a una variable que se reporta como
resultado del proceso.
1. Inicio
2. Leer A, B
3. Hacer S = A + B
4. Escribir S
5. Fin
Solución de problemas con Estructura Selectiva
Estructuras selectivas
En los algoritmos para la solución de problemas donde se
utilizan estructuras selectivas se emplean frases que están estructuradas de
forma adecuada dentro del pseudocódigo. En el caso del diagrama de flujo,
también se estructura de una forma semejante.
Se puede establecer que la lectura del pseudocódigo o del
diagrama de flujo debe ser de la siguiente forma:
Leer A y B, comparar si A es mayor que B, de ser verdad
asignar el valor de A en la variable M, escribir M y fin. Éste sería el seguimiento
que se daría en caso de ser verdad la comparación de variables, pero en caso de
ser falso el proceso cambia, dado que el valor que tomaría la variable M es el
de B para escribir este valor y finalizar el proceso. Como se puede ver,
primeramente se debe seguir el camino de afirmación hasta llegar al fin, y
después se recorre el de negación, esto es sólo para verificar la funcionalidad
del algoritmo.
Comentarios
Publicar un comentario