diseño estructurado de algoritmos

53
Instituto Tecnológico de Tuxtepec Diseño Estructurado de Algoritmos D.R.© SESIÓN 1 DISEÑO ESTRUCTURADO DE ALGORITMOS L.I. María de los Ángeles Martínez Morales.

Upload: mary-martinez-morales

Post on 13-Jun-2015

7.798 views

Category:

Education


2 download

DESCRIPTION

En estas diapositivas encontras, el material correspondiente a los conceptos básicos de la materia Diseño Estructurado de Algoritmos.

TRANSCRIPT

Page 1: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

SESIÓN 1

DISEÑO ESTRUCTURADO DE ALGORITMOS

L.I. María de los Ángeles Martínez Morales.

Page 2: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

TEMARIO

1. Conceptos básicos1.1. Introducción1.2. Definición de lenguaje, algoritmo y

lenguajes algorítmicos1.3. Metodología para la solución de problemas

por medio de computadoras.1.4. Entidades primitivas para el diseño de

instrucciones.1.5. Técnicas para la formulación de algoritmos.

Page 3: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

TEMARIO

2. Estructuras algorítmicas secuenciales2.1. Asignación2.2. Entrada2.3. Salida2.4. Solución de problemas

3. Rutas algorítmicas condicionales3.1. Si entonces3.2. Si entonces sino3.2. En caso de3.4. Solución de problemas

Page 4: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

TEMARIO

4. Estructuras algorítmicas repetitivas4.1. Mientras hacer4.2. Hacer mientras4.3. Hacer para4.4. Solución de problemas

Page 5: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1. Conceptos básicos• INTRODUCCIÓN

• La escritura de un programa de computadora consiste normalmente en implementar un método de resolución de un problema, que se ha diseñado previamente. Con frecuencia este método es independiente de la computadora utilizada: es igualmente válido para muchas de ellas. En cualquier caso es el método, no el programa, el que debe estudiarse para comprender cómo está siendo abordado el problema.

Page 6: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1. Conceptos básicos

• El objetivo del diseño estructurado de algoritmos es obtener la estructura modular y los detalles de proceso de un algoritmo. No se trata solamente de desarrollar un programa que “funcione”, sino que también sea fácil de mantener, que mejore su reutilización y se pueda probar y entender fácilmente.

Page 7: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• Un Lenguaje de Programación es aquél

que es  utilizado para escribir programas de computadoras que puedan ser entendidos por ellas. Estos lenguajes se clasifican en tres grandes categorías – Lenguajes de máquina– Lenguajes de bajo nivel– Lenguajes de alto nivel

Page 8: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• Un algoritmo establece, de manera genérica e

informal, la secuencia de pasos o acciones que resuelve un determinado problema. Los algoritmos constituyen la documentación principal que se necesita para poder iniciar la fase de codificación y, para representarlos, se utiliza, fundamentalmente, dos tipos de notación: pseudocódigo y diagramas de flujo. El diseño de un algoritmo es independiente del lenguaje que después se vaya a utilizar para codificarlo.

Page 9: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• ALGORITMO: Conjunto de instrucciones

que especifican la secuencia ordenada de operaciones a realizar para resolver un problema. En otras palabras, un algoritmo es un método o fórmula para la resolución de un problema. Un algoritmo es independiente tanto del lenguaje de programación en que se exprese como del ordenador en el que se ejecute.

Page 10: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• ALGORITMO

• Un algoritmo es un conjunto ordenado y finito de pasos usados en la solución de un problema o realización de una tarea.

Page 11: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

CURIOSIDAD: • El término algoritmo es

muy anterior a la era informática: proviene de Mohammed al-

Khowārizmī (apellido que se tradujo al latín

empleando la palabra “algoritmus”), matemático

persa del siglo IX que enunció paso a paso las

reglas para sumar, restar, multiplicar y dividir números decimales.

Page 12: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Características de un algoritmo

Precisión Definitud o determinismo Finitud

El algoritmo debe indicar el orden

exacto de ejecución de cada tarea.

Si se sigue el algoritmo dos o más veces con los mismos datos de entrada, se deben obtener los mismos datos de

salida.

El algoritmo debe terminar en algún momento y debe

usar una cantidad de recursos finita.

Page 13: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• Un algoritmo esta compuesto por:

• La etapa de entrada indica los datos que son necesarios para la solución del problema en cuestión.

• En la etapa de proceso o procesamiento, es donde se realizan las operaciones que tienen que ver con la solución del problema.

• La etapa de salida es donde se mostrarán los resultados obtenidos en el procesamiento.

Page 14: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Algoritmos Cotidianos

• Se refiere a todos aquéllos algoritmos que nos ayudan a resolver problemas diarios, y que los hacemos casi sin darnos cuenta de que estamos siguiendo una metodología para resolverlos.

Page 15: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• Los lenguajes algorítmicos nos

proporcionan metodologías que permiten representar cualquier problema (o casi cualquiera) para posteriormente expresarlo en un lenguaje de computadora. De lo anterior podemos concluir que, expresando correctamente un problema mediante un algoritmo, podemos representarlo en cualquier lenguaje de programación.

Page 16: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• Los algoritmos pueden describirse utilizando diversos

lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle.

• La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera :

– Lenguaje Natural– Lenguaje de Diagramas de flujo– Lenguaje Natural de Programación.– Lenguaje de Programación de Algoritmos.

Page 17: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• Lenguaje Natural

• Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce  como lenguaje  jerga cuando se utilizan términos especializados de una determinada ciencia, profesión o grupo.

Page 18: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• Lenguaje de Diagramas de flujo

• Es aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo.

Page 19: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• Lenguaje Natural de Programación.• Son aquéllos que están orientados a la solución de

problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboración de fórmulas o métodos científicos.

• Tiene las siguientes características :      – Evita la ambigüedad (algo confuso que se puede

interpretar de varias maneras).– Son precisos y bien definidos.– Utilizan términos familiares al sentido común.– Elimina instrucciones innecesarias.

Page 20: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.2. Definición de lenguaje, algoritmo y lenguajes

algorítmicos• Lenguaje de Programación de Algoritmos.

• Es aquél que se utiliza para introducir en la computadora un algoritmo específico. Se les conoce también como Lenguaje de Programación.

Page 21: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.3. Metodología para la solución de problemas por medio de

computadoras.A fin de resolver un problema utilizando sistemas de cómputo, debe seguirse una serie de pasos que permiten avanzar por etapas bien definidas hacia la solución:

1. Definición de Problema2. Análisis de los Datos3. Diseño de la Solución4. Codificación5. Prueba y Depuración6. Documentación7. Mantenimiento

Page 22: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Definición del problema

• Está dada en sí por el enunciado del problema, el cual debe ser claro y complejo. Es importante que conozcamos exactamente "que se desea obtener al final del proceso" ; mientras esto no se comprenda no puede pasarse a la siguiente etapa.

Page 23: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Análisis de los datos

• Para poder definir con precisión el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solución eficaz.

• Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes aspectos :

Page 24: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Análisis de los datos

• Los resultados esperados.• Los datos de entrada

disponibles.• Herramientas a nuestro

alcance para manipular los datos y alcanzar un resultado (fórmulas, tablas, accesorios diversos).

Page 25: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Diseño de la solución

• Una computadora no tiene capacidad para solucionar problemas más que cuando se le proporcionan los sucesivos pasos a realizar, esto se refiere a la obtención de un algoritmo que resuelva adecuadamente el problema. En caso de obtenerse varios algoritmos, seleccionar uno de ellos utilizando criterios ya conocidos.

• Esta etapa incluye la descripción del algoritmo resultante en un lenguaje natural, de diagrama de flujo o natural de programación.

• Como puede verse, solo se establece la metodología para alcanzar la solución en forma conceptual, es decir ; sin alcanzar la implementación en el sistema de cómputo.

Page 26: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Codificación

• Se refiere a la obtención de un programa definitivo que pueda ser comprensible para la máquina. Incluye una etapa que se reconoce como compilación.

• Si la codificación original se realizó en papel, previo a la compilación deberá existir un paso conocido como transcripción.

Page 27: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Prueba y depuración

• Una vez que se ha obtenido el programa ejecutable, este es sometido a prueba a fin de determinar si resuelve o no el problema planteado en forma satisfactoria.

• Las pruebas que se le aplican son de diversa índole y generalmente dependen del tipo de problema que se está resolviendo. Comúnmente se inicia la prueba de un programa introduciendo datos válidos, inválidos e incongruentes y observando como reacciona en cada ocasión.

• El proceso de depuración consiste en localizar los errores y corregirlos en caso de que estos existan. Si no existen errores, puede entenderse la depuración como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempeño del programa.

Page 28: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Documentación• Debido a que el programa

resultante en esta etapa se encuentra totalmente depurado (sin errores), se procede a la utilización para resolver problemas del tipo que dio origen a su diseño.

 • En vista de que esta utilización

no podrá ser supervisada en todas las ocasiones por el programador, debe crearse un manual o guía de operación que indique los pasos a seguir para utilizar el programa.

Page 29: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Mantenimiento

• Se refiere a las actualizaciones que deban aplicarse al programa cuando las circunstancias así lo requieran. Este programa deberá ser susceptible de ser modificado para adecuarlo a nuevas condiciones de operación.

• Cualquier actualización o cambio en el programa deberá reflejarse en su documentación.

Page 30: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.4. Entidades primitivas para el diseño de

instrucciones.

• Tipos de Datos• Operadores y operandos• Expresiones

Page 31: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Tipos de Datos

• Un dato se define como la expresión general que

describe los objetos con los cuales opera una

computadora. Los datos de entrada se transforman

por el programa, después de las etapas intermedias,

en datos de salida.

Page 32: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Tipos de Datos

• Los datos se clasifican en diversas categorías, según el tipo de máquina o del lenguaje en uso. Generalmente podemos encontrar las siguientes categorías :

• Numéricos• Lógicos• Cadenas

Page 33: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Datos numéricos

• Son aquéllos que representan una cantidad o valor determinado.

• Su representación se lleva a cabo en los

formatos ya conocidos (enteros, punto y

fracciones decimales si estas existen).

Tipo entero(Integer)

Tipo Real

Page 34: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Tipo de Dato Cadena o Carácter

Son los datos que representan información

textual (palabras, frases, símbolos,

etc).

Pueden distinguirse porque son delimitados

por apóstrofes o comillas.

No representan valor alguno para efectos numéricos.

Datos de Tipo Carácter (Char)

Datos de Tipo Cadena (String)

Page 35: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Tipos de Datos Lógicos

Booleano

Falso VerdaderoSe utiliza para representar las

alternativas (si/no) a determinadas condiciones.

Por ejemplo, cuando se pide si un valor entero sea primo, la respuesta será verdadera o

falsa, según sea.

Page 36: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Datos Simples y Compuestos

• Un dato simple es indivisible (atómico), es decir, no se puede descomponer.

• Ejemplo 1: Un año es un dato simple.

Año...:2006

Un año se expresa con un número entero, el cual no se puede descomponer.

Page 37: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Datos Simples y Compuestos

• Un dato compuesto está formado por otros datos.

Ejemplo 2: una fecha es un dato compuesto por tres datos simples (día, mes, año).

   Fecha:      día...: 30      mes...: 11

      año...: 2006

Page 38: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Constantes y variables

• Una Constante es aquélla que no cambia de valor durante la ejecución de un programa (o comprobación de un algoritmo en este  caso).  Se representa en la forma descrita para cada categoría.

• Las Variables son aquéllas que pueden modificar su valor durante la ejecución de un programa (idem).

• Su representación se da a través de letras y símbolos generalmente numéricos a los que se les asigna un valor.

Page 39: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Operadores y Operandos  

• OPERADORES

• Un operador es el símbolo que determina el tipo de operación o relación que habrá de establecerse entre los operandos para alcanzar un resultado.

Page 40: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Operadores y Operandos  

• Los operadores se clasifican en tres grupos:

• Aritméticos• Relacionales• Lógicos

Page 41: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Operadores Aritméticos

• Son aquéllos que permiten la

realización de cálculos

aritméticos. Utilizan

operandos numéricos y proporcionan

resultados numéricos.

Operador Operación

+ Suma

- Resta

*Multiplicaci

ón

/División

real

DivDivisión entera

Mod Residuo

^Exponencia

ción

Page 42: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Operadores Relacionales• Permiten realizar comparaciones de

valores de tipo numérico o

carácter. Estos operadores sirven para expresar las condiciones en los

algoritmos. Proporcionan

resultados lógicos.

Operador Significado

< Menor que

> Mayor que

= Igual que

<= Menor o igual que

>= Mayor o igual que

<> Diferente de

Page 43: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Operadores Lógicos

• Son aquéllos que permiten la

combinación de condiciones para formar

una sola expresión lógica. Utilizan

operandos lógicos y proporcionan resultados

lógicos también.

Operado

r

Relación

not Negación (No)

and Conjunción (Y)

or Disyunción (O)

xorDisyunción Exclusiva (O/SOLO)

Page 44: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Prioridad de los operadores aritméticos

Page 45: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Prioridad de los operadores lógicos y relacionales

Page 46: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Asignación

• Una instrucción de asignación (o simplemente asignación) consiste en asignar el resultado de la evaluación de una expresión a una variable.

• Ejemplo 1: Dadas las declaraciones

   PI = 3.141592

   real area, longitud, radio = 5.78

Page 47: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Entrada

• Una instrucción de entrada (o simplemente entrada) consiste en asignar a una o más variables, uno o más valores (datos) recibidos desde el exterior. Normalmente, los datos son recogidos desde la entrada estándar (el teclado), pero, también existen otros dispositivos de entrada (el ratón, el escáner,...).

Page 48: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Entrada

• leer( <nombre_de_la_variable_1>,         <nombre_de_la_variable_2>,          ...,         <nombre_de_la_variable_n>)

• leer( <lista_de_variables> )

Page 49: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Salida

• Una instrucción de salida (o simplemente salida) consiste en llevar hacia el exterior los valores (datos) obtenidos de la evaluación de una lista de expresiones. Normalmente, los datos son enviados a la salida estándar (la pantalla), pero, también existen otros dispositivos de salida (la impresora, el plotter,...).

Page 50: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Salida

• escribir( <expresión_1>, ..., <expresión_n> )

• escribir( <lista_de_expresiones> )

Page 51: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

Expresiones

• Las expresiones son combinaciones de constantes, variables, símbolos de operadores, paréntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notación matemática tradicional ; por ejemplo :

• a + b ( b+2)     Aquí los paréntesis indican el orden de cálculo.

Page 52: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

1.5. Técnicas para la formulación de algoritmos.• Las tres técnicas de formulación de

algoritmos más populares son :

• Diagrama de flujo• Pseudocódigo• Diagrama estructurado

Page 53: Diseño Estructurado de Algoritmos

Instituto Tecnológico de Tuxtepec

Diseño Estructurado de Algoritmos D.R.©

REFERENCIAS• CASTILLO, Víctor. Lenguajes algorítmicos. Recuperado el 10 de Julio de

2011 de http://docente.ucol.mx/abolio/tareas/Lenguaje.pdf

• INSTITUTO TECNOLOGICO DE LA PAZ. Tutorial de diseño estructruturado de algoritmos, recuperado el 10 de Julio de 2011 de http://sistemas.itlp.edu.mx/tutoriales/algoritmos/

• RODRÍGUEZ, Sala Jesús. (2003). Introducción a la programación: teoría y práctica. Recuperado el 10 de Julio de 2011 de http://books.google.com.mx/books?id=nLMJsInMyBwC&pg=PA38&dq=introduccion+al+dise%C3%B1o+estructurado+de+algoritmos&hl=es&ei=llMaToORKoLUtQOG_czDDQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCgQ6AEwAA#v=onepage&q&f=false

• UNIVERSIDAD NACIONAL DE COLOMBIA, Diseño estructurado de algoritmos, recuperado el 10 de Julio de 2011 de http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/modulo1/cap_02/leccion_1.htm