Está en la página 1de 15

lOMoARcPSD|21791242

UNIDAD 2. DESARROLLO DE LÓGICA ALGORITMICA.

2.1 Metodología para la solución de problemas

Metodología se define como el conjunto de acciones que se deben seguir para alcanzar
ciertos objetivos previamente teniendo algo de conocimiento sobre el tema.
En informática existen diversas metodologías para la resolución de problemas aplicando la
programación, de las fuentes consultadas se prefiere mencionar la del libro de Informática
II/Computer de Patricia Ibañez y Gerardo García que consta de los siguientes pasos:
Identificar el problema.- En esta fase se comprende el problema y se destacan los datos que
ayudan a entender el problema.
Sugerir (o plantear) alternativas de solución.- Apela al ingenio del desarrollador en la
propuesta de las posibles soluciones al problema.
Diseñar el algoritmo.- El resultado de esta etapa es crear una serie de pasos que servirán
para resolver el problema planteado.
Desarrollar la solución y comprobar los resultados.-En esta fase se comprueban los
resultados.
Pasos que en el temario serán tratados como Análisis del problema, Diseño del algoritmo y
Construcción y prueba del Algoritmo.
Consiste en entender de qué se trata el problema planteado y realizar su posible solución,
tomando en cuenta tres aspectos:
¿Qué es lo que se pide?
¿Cómo obtener lo que se pide?
¿Qué se necesita para obtener los resultados pedidos?
Consiste en estructurar la serie de pasos a seguir para la solución al problema, cuando se
llega a esta instancia hay que preguntarse:
¿Qué se consigue con eso?
¿Se puede ver claramente que cada paso es correcto?
Es la escritura del algoritmo resultante en la etapa de diseño en un lenguaje de
programación. El resultado de la codificación es un programa fuente.

La compilación y ejecución es el proceso de traducción del programa fuente al


lOMoARcPSD|21791242

lenguaje máquina. Este proceso se realiza con el compilador y el Sistema Operativo.

El resultado es la obtención de un programa objeto que todavía no es ejecutable


directamente. Después, mediante el Sistema Operativo se realiza la carga del programa
objeto con las librerías del programa compilador, resultando en un programa
ejecutable.

Cuando el programa ejecutable se ha creado, se puede ejecutar el programa desde el


Sistema Operativo generalmente con sólo teclear su nombre. Si no hay errores se obtiene
como salida el resultado del programa.

2.2 METODOLOGIA PARA EL DISEÑO DE SOFTWARE

La metodología top-down nos permite se basa en el paradigma “Divide y Vencerás", lo que


se traduce en dividir el problema en un conjunto de subproblemas menores, los cuales a su
vez pueden ser divididos aún más, y se continua con este proceso hasta obtener
subproblemas que puedan ser manejados y sencillos de resolver.
El uso de esta metodología nos brinda una forma de pensar que busca solucionar los
problemas menores, para luego conectarlos y de esta forma lograr solucionar el problema
principal.

Modularización
El uso de la metodología top-down nos ayuda a pensar el problema y empezar con un
diseño inicial de como debería resolverse. Esto nos puede ayudar a pensar de
lOMoARcPSD|21791242

antemano como debería estructurarse el código final, es decir, cuales son los módulos que
podrían realizarse para poder solucionar el problema.
Los módulos que se desarrollan deben tener una alta cohesión con los problemas que
buscan atacar, además de que tengan una baja interacción con el resto de los módulos, es
decir, que sean lo más independientes posibles.
Las metodologías de diseño de hardware denominadas Top-Down, basadas en la utilización
de lenguajes de descripción de hardware, han posibilitado la reducción de los costos en la
fabricación de circuitos integrados. Esta reducción se debe a la posibilidad de describir y
verificar el funcionamiento de un circuito mediante la simulación del mismo, sin necesidad
de implementar un prototipo físicamente. 2.1 Herramientas CAD La metodología de diseño
asistida por compuatdora (Computer Aided Design, CAD), emplea técnicas gráficas para
soportar el proceso de diseño. La introducción de dichas técnicas en el proceso de diseño
de circuitos electrónicos es fundamental, ya que mas allá de proveer interfaces gráficas para
asistir el proceso, brinda la posibilidad de simular y verificar la descripción antes de
llevar a cabo su implementación, minimizando el costo de elaborar circuitos
potencialmente defectuosos y acelerando el diseño global [20].
El diseño de hardware tiene un problema fundamental, que no existe en el diseño de
software. Este problema es el alto costo del ciclo de diseño-prototipación- verificación
(figura 2.1), ya que el costo del prototipo por lo general es bastante elevado.
Por lo tanto se busca minimizar el costo del ciclo anterior, incluyendo la fase de
prototipación únicamente al final del mismo. Esto se consigue mediante la inclusión de
una fase de simulación y verificación que elimina la necesidad de elaborar físicamente un
prototipo. En el ciclo de diseño hardware las herramientas CAD están presentes en todos
los pasos. En primer lugar en la fase de descripción de la idea, que será un sistema
eléctrico, un diagrama en bloques, etc. Luego en la fase de simulación y verificación en
donde las diversas herramientas permiten realizar simulación por eventos, funcional, digital
o eléctrica considerando el nivel de simulación requerido. La última etapa es comprendida
por herramientas especializadas en la fabricación del circuito propiamente dicho y se
orientan a la fabricación de circuitos impresos o Circuitos Integrados de Aplicación
Específica (Application Specific Integrated Circuits, ASIC). Estas herramientas permiten
realizar microcircuitos así como la programación de dispositivos que así lo requieran.
A continuación se enumeran y explican brevemente algunas de las posibles herramientas
que pueden utilizarse durante el diseño e implementación del hardware:
Descripción mediante esquemas: Consiste en describir el circuito mediante un esquema
que representa la estructura del sistema. Mas allá de un simple
lOMoARcPSD|21791242

diagrama de líneas puede incluir información sobre tiempos, referencias, cables,


conectores, etc.
Grafos y diagramas de flujo: La descripción se realiza por medio de grafos, autómatas o
redes de Petri. La diferencia con la captura de esquemas es que este tipo de descripción es
funcional o de comportamiento y no de estructura como sucede en el caso anterior.
Lenguajes de descripción: Son lenguajes de computadora especializados que permiten
describir un circuito digital. Esta descripción usualmente se puede llevar a cabo a
diferentes niveles. Puede ser estructural, en donde se muestra la arquitectura del diseño, o
bien de comportamiento, en donde se describe el comportamiento o funcionamiento del
circuito global y no de los componentes por los cuales está compuesto.
Simulación de sistemas: Estas herramientas se utilizan para la simulación global del
sistema. Los componentes que se simulan son de alto nivel, es decir del producto una vez
terminado.
Simulación funcional: Este tipo de simulación se utiliza para validar el funcionamiento de
un sistema digital a bajo nivel (nivel de compuertas), sin embargo no se toman en
consideración factores físicos de los componentes a simular como ser retrasos, problemas
eléctricos, etc. Unicamente de registra el comportamiento del circuito frente a ciertos
estímulos dados.
Simulación digital: Esta simulación es muy parecida a la simulación funcional, pero
considerando los retrasos y factores que no se consideran en la anterior. De esta forma se
garantiza el funcionamiento correcto del circuito digital a ser implementado.
Simulación eléctrica: Es la simulación de más bajo nivel ya que se realiza a nivel de
componentes básicos (transistores, resistencias, etc). El resultado de dicha simulación es
prácticamente el mismo que en la realidad. Se utiliza tanto para circuitos analógicos como
digitales.
Implementación de circuitos impresos: Con estas herramientas se realiza el trazado de
líneas e implementación posterior de los circuitos impresos en donde irán montados los
componentes.
Implementación de circuitos integrados: Son las herramientas que se emplean al final del
ciclo de implementación. Permiten la realización de diferentes máscaras que intervienen en
la implementación del circuito final.
Programación de dispositivos: Alternativamente a la implementación de los circuitos
mediante máscaras, se puede emplear lógica programable. Los dispositivos de lógica
programable permiten la implementación el circuito mediante la programación de los
mismos. Posteriormente pueden ser reutilizados en caso
lOMoARcPSD|21791242

de querer modificar el diseño o el circuito por completo. Ejemplos de dichos


dispositivos son: PAL (Programmable And Logic), FPGA (Field Programmable Gate
Arrays) y PLD (Programmable Logic Devices).
¿QUÉ ES LA PROGRAMACIÓN ESTRUCTURADA?
A medida que un programa aumenta de tamaño, aumenta a su vez la complejidad para
leerlo, su tiempo de desarrollo, de mantenimiento y disminuye su calidad si no se tiene
mantiene un correcto orden y estructura del programa.
Es por esto que surgió un paradigma de programación llamado Programación estructurada,
que consiste en mejorar la claridad, calidad y acelerar el tiempo de desarrollo, utilizando
únicamente subrutinas y 3 estructuras de control: Secuencial, de Selección (IF y SWITCH)
y de Iteración (ciclos FOR y WHILE), sustituyendo estas 3 estructuras a la instrucción de
transferencia incondicional (GOTO), que usándose de manera indiscriminada puede llevar
a un código muy difícil de leer y modificar (El llamado código espagueti).

2.3 ELEMENTOS Y REGLAS DE LOS LENGUAJES ALGORÍTMICOS.


La programación estructurada es una teoría de programación que consiste en construir
programas de fácil comprensión, es especialmente útil, cuando se necesitan realizar
correcciones o modificaciones después de haber concluido un programa o aplicación. Al
utilizar la programación estructurada, es mucho más sencillo entender la codificación del
programa, que se habrá hecho en diferentes secciones.
Se basa en una metodología de desarrollo de programas llamada refinamiento sucesivos: Se
plantea una operación como un todo y se divide en segmentos más sencillos o de menor
complejidad, una vez terminado todos los segmentos del programa, se procede a unificar
las aplicaciones realizadas por el grupo de programadores. Si se ha utilizado
adecuadamente la programación estructurada, esta integración debe ser sencilla y no
presentar problemas al integrar la misma, y de presentar algún problema, será rápidamente
detectable para su corrección.
La representación gráfica de la programación estructurada se realiza a través de diagramas
de flujo, el cual representa el programa con sus entradas, procesos y salidas.
La programación estructurada propone segregar los procesos en estructuras lo más simple
posibles, las cuales se conocen como secuencia, selección e interacción, que están
disponibles en todos los lenguajes modernos de programación imperativa en forma de
sentencias, combinando esquemas sencillos se pueden llegar a construir sistemas amplios y
complejos pero de fácil entendimiento.
lOMoARcPSD|21791242

La programación estructurada es un método disciplinado de escribir programas que sean


claros, que se demuestre que sean correctos y fáciles de modificar.
La programación estructurada consiste en dividir los programas en módulos y se basa en el
desarrollo de programas que van de lo general a lo particular, es decir, del conjunto al
elemento, es decir de un todo a lo específico.
Para la solución de un problema en particular, se inicia considerando las funciones que
tiene que cumplir el programa en general y después se va desmembrando estas funciones en
subfunciones más pequeñas hasta llegar al caso último o más particular y que ya no se
pueda subdividir en casos más pequeños. Una vez que ya se tiene el programa
desmembrado en de lo general a lo particular, se empieza a programar estas funciones
pequeñas, particulares o módulos, de esta manera, siempre podremos construir nuevos
módulos o unidades insertando el nombre del módulo donde corresponda y desarrollándolo
a parte.
la modificación de los módulos es más fácil y se pueden referenciar cuantas veces se
requiera, con lo que se ahorra tiempo en la programación, un programa tiene un diseño
estructurado si cumple las dos siguientes condiciones:
El teorema de Estructura.
Está debidamente documentado
El teorema de Estructura dice que “un programa cumple el teorema de estructura si y sólo
(ó) si es propio y contiene únicamente las tres estructuras básicas de control” que son la
secuencial, la alternativa y la repetitiva, un programa es propio si y sólo si cumple: que
tenga un solo punto de entrada y un solo punto de salida y que entre dos puntos de control
del programa exista al menos un camino.
La programación estructurada es un estilo con el cual él se busca que el programador
elabore programas sencillos y fáciles de entender, la programación estructurada hace uso de
tres estructuras básicas de control que son: Estructura Secuencial, Estructura Selectiva y la
Estructura Repetitiva (ó Iterativa)
La programación estructurada se basa un teorema fundamental, el cual afirma que cualquier
programa, no importa el tipo de trabajo que ejecute, puede ser elaborado utilizando
únicamente las tres estructuras básicas.
lOMoARcPSD|21791242

2.3.1 DIAGRAMS DE FLUJO.

Ventajas de la Programación Estructurada

Los programas son más fáciles de entender, pueden ser leídos de forma secuencial y no hay
necesidad de hacer engorrosos seguimientos en saltos de líneas (GOTO) dentro de los
bloques de código para intentar entender la lógica.
La estructura de los programas es clara, puesto que las instrucciones están más ligadas o
relacionadas entre sí.
Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los fallos o errores
del programa (debugging) se facilita debido a su estructura más sencilla y comprensible,
por lo que los errores se pueden detectar y corregir más fácilmente.
Reducción de los costos de mantenimiento. Análogamente a la depuración, durante la fase
de mantenimiento, modificar o extender los programas resulta más fácil.
Los programas son más sencillos y más rápidos de confeccionar. Se
incrementa el rendimiento de los programadores.
Desventajas de la Programación Estructurada.
Complejidad para adaptarse.
lOMoARcPSD|21791242

Mayor cantidad de código (aunque a la larga no, por la reutilización).

2.3.2 PSEUDOCÓDIGO

2.4 IMPLEMENTACIÓN DE ALGORITMOS.

Los algoritmos no se implementan sólo como programas, también en circuitos eléctricos, en


instalaciones industriales o maquinaria pesada. Se puede decir en pocas palabras que nuestra vida es
un ejemplo de algoritmo, pues al desarrollar nuestros quehacer diarios desarrollamos una serie de
pasos ordenados, obteniendo resultados.
Un algoritmo puede adoptar una de las estructuras siguientes o combinaciones de ellas:
Es aquel algoritmo en el que se establecen condiciones para poder realizar una acción específica, en
los lenguajes de programación se implementan las sentencias if o select case para llevar a cabo este
tipo de algoritmos. Se utilizan para tomar decisiones lógicas; de ahí que se suelan denominar
también estructuras de decisión o alternativas.

Un algoritmo repetitivo o cíclico es aquel en el que el programador establece un rango de


repetición para una acción dada o en el que se determina que una acción se repita de forma
cíclica mientras se cumpla alguna condición. En los lenguajes de programación se usan las
sentencias While y For para llevar a cabo este tipo de algoritmos.
¿Qué es un Algoritmo?
Es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver
un problema.
Características:
Preciso:
Indicar el orden de realización de cada paso.
Definido:

Descargado por 21690242 IMANOL HERNANDEZ GARCIA (21690242@tecvalles.mx)


lOMoARcPSD|21791242

Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.

Finito:
Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un
número finito de pasos.

Diseño del Algoritmo


Proceso que convierte los resultados del análisis del problema en un diseño modular con
refinamientos sucesivos que permitan una posterior traducción a un lenguaje. El diseño del
algoritmo es independiente del lenguaje de programación en el que se vaya a codificar
posteriormente. Existen dos herramientas utilizadas conceptualmente para diseñar
algoritmos: los diagramas de flujo y el pseudocódigo.
Ejemplo de Pseudocódigo y su Equivalente en Diagrama de Flujo y Algoritmo

Un algoritmo secuencial es aquel en el que se necesita que un paso anterior haya concluido
para continuar con otro. De esta forma, en este tipo de algoritmos se requiere de datos de la
etapa anterior, como una cadena o secuencia de información, se caracteriza porque todos
los pasos del algoritmo se realizan en secuencia, es decir, uno tras otro. Por ejemplo:
Algoritmo que lee cuatro números,
obtiene y muestra el producto,
suma y media de ellos.

2.4.1 SECUENCIALES

La estructura secuencial es aquella donde la acción (instrucción) sigue a otra secuencia, las
tareas
Se suceden de tal modo que la salida de una es la entrada de las siguiente y así
sucesivamente hasta el fin del proceso.

Descargado por 21690242 IMANOL HERNANDEZ GARCIA (21690242@tecvalles.mx)


lOMoARcPSD|21791242

2.4.2 SELECTIVOS.

Se utiliza en el desarrollo de la solución de un problema debemos tomar una decisión, para


establecer un proceso o señalar un camino alternativo a seguir.

▪ Estructura selectiva doble. "SI ENTONCES/SINO".


▪ Estructura selectiva múltiple. "SI MÚLTIPLE".
▪ Estructura selectiva anidada ( cascada).
▪ Estructura selectiva simple. “SI ENTONCES”

Descargado por 21690242 IMANOL HERNANDEZ GARCIA (21690242@tecvalles.mx)


lOMoARcPSD|21791242

2.4.3 REPETITIVOS.

Son operaciones que se deben ejecutar un numero repetido de veces. El conjunto de instrucciones
que se ejecuta repetidamente cierto número de veces, se llama ciclo, Bucle o Lazo.

Descargado por 21690242 IMANOL HERNANDEZ GARCIA (21690242@tecvalles.mx)


lOMoARcPSD|21791242

2.5 PRUEBA Y DEPURACIÓN.

Los errores humanos dentro de la programación de computadoras son


muchos y aumentan considerablemente con la complejidad del problema.
El proceso de identificar y eliminar errores, para dar paso a una solución
sin errores se le llama Depuración.

Descargado por 21690242 IMANOL HERNANDEZ GARCIA (21690242@tecvalles.mx)


lOMoARcPSD|21791242

La Depuración o prueba resulta una tarea tan creativa como el mismo


desarrollo de la solución, por ello se debe considerar con el mismo
interés y entusiasmo.

Resulta conveniente observar los siguientes principios al realizar una


depuración, ya que de este trabajo depende el éxito de nuestra solución.

a) Trate de iniciar la prueba de un programa con una mentalidad


saboteadora, casi disfrutando la tarea de encontrar algún error.

b) Sospeche de todos los resultados que le arroje la solución, con lo cual


deberá verificar todos.

c) Considerar todas las situaciones posibles normales y aún algunas de


las anormales.

Codificación.

La codificación es la operación de escribir la solución del problema (de


acuerdo a la lógica del diagrama de flujo o pseudocódigo), en una serie
de instrucciones detalladas en un código reconocible por la computadora,
la serie de instrucciones detalladas se le conoce como programa fuente,
el cual se escribe en un lenguaje de programación o lenguaje alto nivel.

Existen diversos tipos de lenguaje de alto nivel, de acuerdo al tipo de


problema que se desea resolver, clasificándose en problemas:
matemáticos, científicos, administrativos o comerciales.

Documentación.

Descargado por 21690242 IMANOL HERNANDEZ GARCIA (21690242@tecvalles.mx)


lOMoARcPSD|21791242

Es la guía o comunicación escrita en sus variadas formas, ya sean


en enunciados, procedimientos, dibujos o diagramas. A menudo un
programa escrito por una persona, es usado por muchas otras. Por ello la
documentación sirve para ayudar a comprender o usar un programa o
para facilitar futuras modificaciones (mantenimiento).

La documentación debe presentarse en tres formas, externa, interna y al


usuario final. La primera debe estar integrada por los siguientes
elementos:

a) Descripción del problema.

b) Nombre del autor.

c) Diagrama de flujo y/o pseudocódigo.

d) Lista de variables y constantes.

e) Codificación del programa.

En lo referente a la documentación interna, ésta lo constituyen los


comentarios o mensajes que agregan al código, para hacer más claro el
entendimiento del proceso. A la documentación para el usuario se le
conoce como manual del usuario. En este manual no existe
información de tipo técnico, sino la descripción del funcionamiento del
programa.

Descargado por 21690242 IMANOL HERNANDEZ GARCIA (21690242@tecvalles.mx)

También podría gustarte