2 AlgoritmosComputacionales

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 75

2.8.

3 Top Down
También conocida como de arriba-abajo (diseño descendente) y consiste en establecer una serie
de niveles de mayor a menor complejidad (arriba-abajo) que den solución al

problema. Consiste en efectuar una relación entre las etapas de la estructuración de forma que
una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de
información.
Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial, que
recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del
programa.
La utilización de la técnica de diseño Top-Down tiene los siguientes objetivos básicos:
Simplificación del problema y de los subprogramas de cada descomposición.
Las diferentes partes del problema pueden ser programadas de modo independiente e
incluso por diferentes personas.
El programa final queda estructurado en forma de bloque o módulos lo que hace mas
sencilla su lectura y mantenimiento.
2.8.4 Bottom Up

El diseño ascendente se refiere a la identificación de aquellos procesos que


necesitan computarizarse con forme vayan apareciendo, su análisis como sistema y
su codificación, o bien, la adquisición de paquetes de software para satisfacer el
problema inmediato.
Cuando la programación se realiza internamente y haciendo un enfoque
ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el
desempeño global, sea fluido. Los problemas de integración entre los subsistemas
son sumamente costosos y muchos de ellos no se solucionan hasta que la
programación alcanza la fecha limite para la integración total del sistema. En esta
fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios,
como para corregir aquellas delicadas interfaces, que en un principio, se ignoran.
2.9 Metodología Para La Solución De Problemas Por
Medio De Computadora

La principal razón para que las personas aprendan lenguajes de programación es


utilizar la computadora como una herramienta para la resolución de problemas.
Dos fases pueden ser identificadas en el proceso de resolución de problemas.
• Fase de resolución del problema.
• Fase de implementación (realización) en un lenguaje de programación.
2.9 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR
MEDIO DE COMPUTADORA
2.9.1 Definición del Problema
Esta fase está dada por el enunciado del problema, el cual requiere una definición
clara y precisa.
Tomar en cuenta que la solución del problema debe estar en función de lo que el
problema requiera y no en función de lo que el programador quiera.
Es importante que se conozca lo que se desea que realice la computadora;
mientras esto no se conozca del todo no tiene mucho caso continuar con la
siguiente etapa.
2.9.2 Análisis del Problema
No existe un método general para la resolución de problemas, la resolución de un
problema es un proceso creativo donde el conocimiento, la habilidad y la experiencia tiene
un papel importante, el proceder de manera sistemática ayuda a resolver un problema.
Se plantean algunas estrategias generales, las cuales son útiles en el análisis del problema.
• Usar toda la información útil (no superficial) disponible en el enunciado del
problema.
• Hacer explícita las reglas y datos que aparezcan implícitos (en muchos
problemas numéricos se pueden utilizar reglas de la aritmética o álgebra)
• Profundizar en el problema considerado (emplear algún tipo de
notación).
• Dividir el problema complejo en subproblemas más simples. que se pueden
resolver independientemente y después combinar sus soluciones.
• Otra forma de abordar el problema consiste en trabajar “hacia atrás” es decir
partir de la solución e intentar llegar al estado inicial.
2.9.2 Análisis del Problema
El propósito del análisis del problema es ayudar al programador para llegar a una cierta
comprensión de la naturaleza del problema. Una buena definición del problema junto con una
descripción detallada de las especificaciones de entrada y de salida, son los requisitos más
importantes para llegar a una solución eficaz.
Una vez que se ha comprendido lo que se desea de la computadora, es necesario
definir:
• Los datos de entrada.
• Cual es la información que se desea producir (salida)
• Los métodos y fórmulas que se necesitan para procesar los datos.

Ejercicio.- Leer el radio de circulo y calcular e imprimir su superficie.

Definición del problema.


Calcular la superficie de una circunferencia
Análisis del problema
La entrada a este problema es el radio de la circunferencia y de tipo real.
La salida de este problema es la superficie que también es de tipo real.
2.9.3 Diseño del Algoritmo
Las instrucciones a ejecutar por la máquina se denomina algoritmo.
Las características de un buen algoritmo son:
• Debe tener un punto particular de inicio.
• Debe ser definido, no debe permitir dobles interpretaciones.
• Debe ser general, es decir, soportar la mayoría de las variantes que se puedan
presentar en la definición del problema.
• Debe ser finito en tamaño y tiempo de ejecución.

Se pueden utilizar cualquier técnica de diseño de algoritmos, diseño descendente, divide y


vencerás.
Normalmente los pasos diseñados en un primer esbozo del algoritmo son incompletos e indican
solo unos pocos pasos, tras esta primera descripción estos se amplían en una descripción más
detallada con pasos específicos este proceso se denomina refinamiento del algoritmo.
En el diseño de un algoritmo tomamos en cuenta el siguiente desarrollo.
2.9.4 Verificación del algoritmo

Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que


realiza las tareas para las que ha sido diseñado y produce el resultado correcto y
esperado.

El modo más normal de comprobar un algoritmo es mediante la ejecución manual


(prueba de escritorio), usando datos significativos que abarquen todo el posible rango
de valores y anotando en una hoja de papel las modificaciones que se producen en las
diferentes fases hasta la obtención de los resultados,
2.9.5 Fase de Implementación

Una vez que el algoritmo está diseñado, representado gráficamente


mediante una herramienta y verificado se debe pasar a la fase de codificación,
traducir el algoritmo a un determinado lenguaje de programación que deberá ser
completada con la ejecución y verificación de resultado en el computador.
2.9.6 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 pseudocodigo), en una serie de instrucciones
detalladas, en un código reconocible por la computadora, la serie de
instrucciones detalladas se le conoce como código fuente, el cual se escribe en un
lenguaje de programación o lenguaje de alto nivel.
2.9.7 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.

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.
2.9.8 Documentación

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


procedimientos, dibujos o diagramas.

A menudo un programa escrito por una persona, es usado por otra. Por ello
la documentación sirve para ayudar a comprender o usar un programa o para
facilitar futuras modificaciones (mantenimiento).

La documentación se divide en tres partes:

• Documentación Interna
• Documentación Externa
• Manual del Usuario

Documentación Interna: Son los comentarios o mensaje que se añaden al código


fuente para hacer mas claro el entendimiento de un proceso.
Documentación Externa: Se define en un documento escrito los siguientes
puntos:

• Descripción del Problema


• Nombre del Autor
• Algoritmo (diagrama de flujo o pseudocodigo)
• Diccionario de Datos
• Código Fuente (programa)

Manual del Usuario: Describe paso a paso la manera como funciona el programa,
con el fin de que el usuario obtenga el resultado deseado.
2.9.9 Mantenimiento

Se lleva a cabo después de terminado el programa, cuando se detecta que


es necesario hacer algún cambio, ajuste o complementación al programa
para que siga trabajando de manera correcta. Para poder realizar este
trabajo se requiere que el programa este correctamente documentado.
2.10 Tecnicas Para La Formulacion De Algoritmos
Para representar una algoritmo se debe utilizar algún método que permita independizar dicho
algoritmo del lenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser
codificado inmediatamente en cualquier lenguaje.
Las herramientas utilizadas comúnmente para diseñar algoritmos son:
• Pseudocodigo
• Diagrama de Flujo.
• Diagramas Nassi/Shneiderman-S (Chapin)
• Método Warnier
• Método Jackson
• Método Bertini
• Método Tabourier
2.10.1 Pseudocódigo

Mezcla de lenguaje de programación y español (o ingles o


cualquier otro idioma) que se emplea, dentro de la programación
estructurada, para realizar el diseño de un programa. En esencial, el
pseudocódigo se puede definir como un lenguaje de
especificaciones de algoritmos.

Es la representación narrativa de los pasos que debe seguir un


algoritmo para dar solución a un problema determinado. El
pseudocódigo utiliza palabras que indican el proceso a realizar.

El inicio de un algoritmo en pseudocódigo comienza con la palabra


Inicio y termina con la palabra fin. Las líneas que están entre llaves
({ }) se denomina comentario.
Un ejemplo aclaratorio es el siguiente. Calcular el área
de un cuadrado.
2.10.1.1 Acciones simples
Las acciones simples, también denominadas instrucciones primitivas, son aquellas que el
procesador ejecuta de forma inmediata.

• Asignación Almacena en una variable el resultado de evaluar una


expresión
Variable = expresión
• Entrada Toma un dato del dispositivo de entrada
Leer (Variable)
• Salida Devuelve un dato al dispositivo de salida
Imprimir (variable)
2.10.1.2 Sentencias de control
También se llaman sentencias estructuradas y controlan el flujo de ejecución de
otras instrucciones.
Repetición o bucles. En un bucle hay una o varias acciones que se han de
repetir y una condición que determina el número de veces que se repiten
las instrucciones.
2.10.2 Diagrama De Flujo

Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir


que es la representación detallada en forma gráfica de como deben realizarse los pasos en
la computadora para producir resultados.

Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos
en la computadora), se relacionan entre si mediante líneas que indican el orden en que se
deben ejecutar los procesos.
2.10.2.1 Características

Toda representación gráfica, de cualquier tipo sea, debe cumplir las siguientes cualidades.
• Sencillez. Un método gráfico de diseño de algoritmo debe permitir la construcción de
estos de manera fácil y sencilla
• Claridad. Cuando un algoritmo es representado por un método gráfico necesita ser
interpretado por otra persona distinta de la que lo diseñó, debe estar lo suficientemente
claro para su un fácil reconocimiento de todos los elementos.
• Normalización. Tanto los diseñadores de programas como los usuarios que necesitan
la documentación de estos deben utilizar las mismas normas de documentación.
• Flexibilidad. Todo método gráfico de representación debe permitir, sin grandes
dificultades, posteriores modificaciones de algunas partes de un algoritmo y la inserción
de alguna nueva.
2.10.2.2 Descripción de los bloques utilizados

Los símbolos utilizados han sido normalizados por el instituto norteamericano


de normalización (ANSI).
Diferencia entre organigrama y ordinograma (D.F.) OrganigramaÆ diagramas
de flujo del sistema.
Ordinogramas Æ diagramas de flujo del programa
2.10.2.3 Recomendaciones para el diseño de Diagramas de Flujo
Se deben se usar solamente líneas de flujo horizontales y/o verticales. Se debe
evitar el cruce de líneas utilizando los conectores.
Se deben usar conectores solo cuando sea necesario. No deben
quedar líneas de flujo sin conectar.
Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de
izquierda a derecha.
Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso
de muchas palabras.
2.10.2.4 Formato de todo tipo de Diagramas de Flujo
Todo diagrama de flujo, en general, consta de los siguientes pasos.

Fig. 2.6 Esquema de un diagrama de flujo


2.10.2.5 Ventajas De Utilizar Un Pseudocodigo A Un
Diagrama De Flujo

Ocupa menos espacio en una hoja de papel


Permite representar en forma fácil operaciones repetitivas complejas
Es muy fácil pasar de pseudocodigo a un programa en algún lenguaje de programación. Si
se siguen las reglas se puede observar claramente los niveles que tiene cada operación.
2.10.3 Diagramas Estructurados (Nassi-Schneiderman)

El diagrama estructurado N-S también conocido como diagrama de chapin es como un


diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las
acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo,
se pueden escribir diferentes acciones en una caja. Un algoritmo se represente en la sig.
forma:
2.10.3.1 Acciones simples

Las acciones simples, también denominadas instrucciones primitivas, son aquellas


que el procesador ejecuta de forma inmediata.
2.10.3.2 Sentencias de control

También se llaman sentencias estructuradas y controlan el flujo de ejecución de


otras instrucciones.
2.11 Otras Herramientas De La Programación
Estructurada

También existen otros métodos de representar los algoritmos y son los siguientes.
2.11.1 Método Warnier
El método se basa en el empleo de llaves de distintos tamaños que se relacionan entre sí.
La representación del algoritmo se basa en los siguientes puntos.
• U programa se representa por un solo diagrama en la cual se engloban todas las
operaciones, estas operaciones están colocadas a la derecha de la llave y en la
parte izquierda se encuentra el nombre.
• En la parte superior de la llave principal se coloca inicio
• En la parte inferior de la llave principal se coloca fin
2.11.1.2 Acciones simples
Las acciones simples, también denominadas instrucciones primitivas, son aquellas que el
procesador ejecuta de forma inmediata

• Asignación Almacena en una variable el resultado


de evaluar una expresión
Variable = expresión
• Entrada Toma un dato del dispositivo de entrada
Leer (Variable)
• Salida Devuelve un dato al dispositivo de salida
Imprimir (variable)
2.11.1.3 Sentencias de control

También se llaman sentencias estructuradas y controlan el flujo de ejecución de


otras instrucciones.
2.11.2 Método Jackson

Se trata de un método de representación de programa en forma de árbol denominado


diagrama arborescente de Jackson, un diagrama de Jackson consta de :

• Definición detallada de los datos de entrada y salida incluyendo los


archivos lógicos utilizados.
• Representación del proceso o algoritmo.

La simbología utilizada es la siguiente

O *

La lectura del árbol se realiza en preorden

• Situarse en la raíz (R)


• Recorrer el subarbol izquierdo (I)
• Recorrer el subarbol derecho (D)
2.11.2.1 Acciones simples
Las acciones simples, también denominadas instrucciones primitivas, son aquellas que el procesador ejecuta de forma inmediata.

• Asignación Almacena en una variable el resultado de evaluar una expresión

Variable Å expresión

• Entrada Toma un dato del dispositivo de entrada

Leer (Variable)

• Salida Devuelve un dato al dispositivo de salida

Imprimir (variable)
Mientras
En el bloque condición se escribe mientras condición

Repetir
En el bloque condición se escribe hasta condición
Para
En el bloque condición se escribe N veces
La lectura del árbol se realiza en postorden
• Situarse en la raíz (R)
• Recorrer el subarbol Derecho (D)
• Recorrer el subarbol Izquierdo (I)
Para
En el bloque condición se escribe N veces
2.11.4.1 Acciones simples
Las acciones simples, también denominadas instrucciones primitivas, son aquellas
que el procesador ejecuta de forma inmediata.

• Asignación Almacena en una variable el resultado de evaluar una


expresión
Variable Å expresión
• Entrada Toma un dato del dispositivo de entrada
Leer (Variable)
• Salida Devuelve un dato al dispositivo de salida
Imprimir (variable)
2.11.4.2 Sentencias de control
También se llaman sentencias estructuradas y controlan el flujo de
ejecución de otras instrucciones.
• Secuencia. Se ejecutan instrucciones de I1,I2,...,In en el mismo orden
en el que aparece
Repetición o bucles. En un bucle hay una o varias acciones que se han de repetir y
una condición que determina el número de veces que se repiten las instrucciones.
2.12 CONVERSIÓN DE ALGORITMOS
Se tiene las siguientes analogías entre las herramientas de presentación de algoritmos
• Diagramas de flujo
• Pseudocodigo
• Diagramas N-S

También podría gustarte