ALGORITMO Y ESTRUCTURA DE DATOS II

 

 Algoritmos Lenguaje Programa Diagramas Ordenacion M.Busqueda Base Datos Volver

Procesamiento Automatizado De Información

Los actuales sistemas de información están basados en el uso de computadoras. Estas, son maquinas digitales (sincrónicas de múltiples propósitos) que ejecutan conjuntos o secuencias de operaciones matemáticas y lógicas, utilizando el sistema binario de numeración.  

Son herramientas poderosas para la automatización de la resolución de problemas, pero ello depende de la capacidad de su programa. Generalmente a los sistemas de procesamiento automatizado de información, los llamamos sistemas de información. 


Así, los sistemas de información son un conjunto de elementos relacionados que actúan como un todo, cuyo objetivo es la obtención de información y está compuesto por elementos de hardware y software. 


El hardware es el conjunto de componentes físicos que componen al sistema. El software es un conjunto de componentes lógicos que controlan el funcionamiento del hardware y otorgan a las computadoras la capacidad de ser maquinas con múltiples propósitos. 

 

Esto significa que para dotar a la maquina la capacidad de resolver múltiples problemas, es necesario escribir un programa (software) que los solucione de forma específica. Para ello existen pasos previos como ser: 


Definición del problema del mundo real; 


Análisis del problema; 


Diseño de la solución; 


Diseño de la solución informática. 

 

a. Definición del problema: Definir el problema significa comprenderlo, circunscribirlo, acotarlo (es imposible que hallemos una solución sino sabemos cuál es el problema). El proceso de analizar el mundo real para interpretar los aspectos esenciales de un problema y expresarlo en términos precisos se llama abstracción. 

 

b. Análisis del problema: Una vez que se definió el problema hay que analizarlo. Se busca determinar claramente el contexto (entorno) del problema y describir el estado futuro deseado una vez que se soluciono el problema. 


Se debe determinar qué datos son necesarios para solucionar el problema y que información debe proporcionar la solución. 

 

c. Solución del problema: La solución de todo problema lo constituye un algoritmo. Un algoritmo es un conjunto ordenado de pasos que conducen a la solución de un problema. 

 

d. Solución informática:  El algoritmo es la solución general sin tener en cuenta un lenguaje de programación ni una maquina en especial. Cuando un algoritmo se define en términos de un lenguaje de programación específico para una maquina específica, estamos en presencia de un programa. Este constituye la solución informática de un problema. 


La diferencia entre algoritmo y programa radica en el hecho de que los algoritmos se especifican en términos “ideales”; mientras que los programas se especifican bajo las limitaciones impuestas por lenguajes de programación y maquinas particulares.

 

Concepto de algoritmo

 

La solución de un problema exige el diseño del algoritmo. Un algoritmo es la especificación de la secuencia ordenada de pasos a realizar para solucionar un problema en un tiempo finito. 


Está vinculado a una maquina abstracta. Por lo tanto, los algoritmos son independientes de los lenguajes de programación y de las maquinas en las que se lo ejecutara. 


Está constituido por un conjunto de acciones. Una acción es un hecho o acontecimiento que sucede en un periodo de tiempo finito, es llevado a cabo por un ejecutante y tiene un objetivo. La unión de varias acciones organizadas que se ejecutan en un tiempo finito se denomina proceso. Tanto los procesos como las acciones son componentes de los algoritmos. 

 

a) Características de los algoritmos. 

 

   Todo algoritmo debe cumplir con tres características: 

1. Debe ser preciso. No debe existir acción alguna que presente ambigüedades en cuanto a su estado previo y su estado posterior. 

 

2. Debe estar definido. Si todas sus acciones son precisas y se sigue dos veces el mismo algoritmo con los mismos datos, se debe obtener el mismo resultado cada vez. 

 

3. Debe ser finito. Los resultados de la ejecución de un algoritmo se deben obtener en un tiempo finito. Todo algoritmo debe tener un inicio y un fin. 

 

b)  Diseño de algoritmos. 


En primer término, es necesario definir y analizar el problema a resolver. Una buena comprensión del problema, mas la descripción detallada de entradas (datos necesarios) y salidas requerida (datos requeridos del proceso) son los requisitos más importantes para hallar una solución del problema. Los datos proporcionados al algoritmo constituyen su entrada y los datos producidos por el su salida. 


Una buena estrategia para resolver problemas complejos es descomponer al problema en varios problemas menores más fáciles de solucionar. La descomposición del problema en otros más simples y así sucesivamente hasta hallar una solución a ellos, esto se denomina diseño descendente (top-down design). 

 

     Las principales ventajas del diseño descendente son: 


El problema se comprende más fácilmente al dividirse en partes mas simples denominadas módulos, Las modificaciones en módulos son mas fáciles;
La comprobación del problema se puede verificar fácilmente. 

 

c)  Representación e algoritmos. 

 

    La elección depende del uso futuro, del objetivo y la experiencia de quien lo escriba. Entre las alternativas se pueden encontrar: 


   Diagrama de flujo; 

        Diagrama N-S (Nassi-Scheiderman); 

        Lenguaje natural humano; 

        Pseudocódigo; 
   Formulas; 
   Lenguajes de programación. 

 

    Si bien los diagramas son mas cómodos para los inexpertos, es verdaderamente mas difícil codificarlo luego a un lenguaje de programación, ya que los diagramas no tienen en cuenta las limitaciones de los lenguajes de programación. 

 

d) Diagrama de flujo. 


Un diagrama de flujo es un diagrama basado en un conjunto de símbolos gráficos que muestran la secuencia de pasos del algoritmo a través de flechas denominadas líneas de flujo. 

 

Imagen relacionada


Algunos de los principales símbolos son: 

 

e)  Diagrama Naassi-Scheiderman. 

 

Estos diagramas omiten el uso de flechas de unión y los símbolos se utilizan en forma continua. Las acciones sucesivas se simbolizan en cajas contiguas. la dificultad en el uso de estos diagramas está en que ocupan mucho lugar en forma horizontal cuando varias estructuras se anidan una dentro de otra. 

 

 

f)  Lenguaje natural. 


Puede ser muy útil para una escritura inicial. Posee muchas limitaciones para la escritura de algoritmos que luego serán programados, ya que las estructuras de los lenguajes humanos son muy distintas a las de los lenguajes de programación. 

 

g)  Pseudocódigo. 

Es una alternativa intermedia entre los lenguajes naturales y los lenguajes de programación. Involucra un conjunto limitado de palabras, las reglas de utilización y unas pocas limitaciones similares a las de los lenguajes de programación, sin llegar a la escritura de programas. Con el pseudocódigo, el programador centra su atención en la lógica y la secuencia de las acciones sin la preocupación por las reglas propias de un lenguaje de programación particular. 

 

h)  Formulas. 

Una formula es una combinación de valores y símbolos, como por ejemplo una ecuación aritmética. Para ciertos tipos de problemas, las formulas suelen ser la alternativa más valida. 

 

 

i)  Lenguaje de programación. 

 

Una alternativa valida es escribir directamente la solución utilizando un lenguaje de programación. tiene la limitación de no poder utilizar el total del potencial de un algoritmo, ya que los lenguajes de programación tiene reglas que limitan la creatividad de la solución. 

 

 

 

 

 

 

Se recomienda realizar todos los trabajos prácticos hasta dominar las técnicas de pensamiento algorítmico. Presionando Aquí podrá bajar un archivo en Word que contiene todos los problemas para su resolución y que deberá realizarlos y entregarlos para su corrección.

 

También se podrán realizar consultas al profesor en clases en caso de no poder resolver alguno de ellos.

 

Se recomienda una vez realizado los diagramas de flujo o pseudo código se pasen al programa DFD que le permitirá simular su funcionamiento y comprobar si esta bien hecho el programa o no.

 

 

Volver