Sunteți pe pagina 1din 53

DISEO ESTRUCTURADO DE ALGORITMOS

TEMARIO
1. Conceptos bsicos
1.1. Introduccin 1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos 1.3. Metodologa para la solucin de problemas por medio de computadoras. 1.4. Entidades primitivas para el diseo de instrucciones. 1.5. Tcnicas para la formulacin de algoritmos.

TEMARIO
2. Estructuras algortmicas secuenciales
2.1. Asignacin 2.2. Entrada 2.3. Salida 2.4. Solucin de problemas

3. Rutas algortmicas condicionales


3.1. Si entonces 3.2. Si entonces sino 3.2. En caso de 3.4. Solucin de problemas

TEMARIO
4. Estructuras algortmicas repetitivas
4.1. Mientras hacer 4.2. Hacer mientras 4.3. Hacer para 4.4. Solucin de problemas

1. Conceptos bsicos
INTRODUCCIN La escritura de un programa de computadora consiste normalmente en implementar un mtodo de resolucin de un problema, que se ha diseado previamente. Con frecuencia este mtodo es independiente de la computadora utilizada: es igualmente vlido para muchas de ellas. En cualquier caso es el mtodo, no el programa, el que debe estudiarse para comprender cmo est siendo abordado el problema.

1. Conceptos bsicos
El objetivo del diseo 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 tambin sea fcil de mantener, que mejore su reutilizacin y se pueda probar y entender fcilmente.

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


Un Lenguaje de Programacin es aqul que es utilizado para escribir programas de computadoras que puedan ser entendidos por ellas. Estos lenguajes se clasifican en tres grandes categoras
Lenguajes de mquina Lenguajes de bajo nivel Lenguajes de alto nivel

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


Un algoritmo establece, de manera genrica e informal, la secuencia de pasos o acciones que resuelve un determinado problema. Los algoritmos constituyen la documentacin principal que se necesita para poder iniciar la fase de codificacin y, para representarlos, se utiliza, fundamentalmente, dos tipos de notacin: pseudocdigo y diagramas de flujo. El diseo de un algoritmo es independiente del lenguaje que despus se vaya a utilizar para codificarlo.

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


ALGORITMO: Conjunto de instrucciones que especifican la secuencia ordenada de operaciones a realizar para resolver un problema. En otras palabras, un algoritmo es un mtodo o frmula para la resolucin de un problema. Un algoritmo es independiente tanto del lenguaje de programacin en que se exprese como del ordenador en el que se ejecute.

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


ALGORITMO

Un algoritmo es un conjunto ordenado y finito de pasos usados en la solucin de un problema o realizacin de una tarea.

CURIOSIDAD:
El trmino algoritmo es muy anterior a la era informtica: proviene de Mohammed al-Khowrizm (apellido que se tradujo al latn empleando la palabra algoritmus), matemtico persa del siglo IX que enunci paso a paso las reglas para sumar, restar, multiplicar y dividir nmeros decimales.

Caractersticas de un algoritmo
Precisin Definitud o determinismo Finitud Si se sigue el algoritmo dos o ms El algoritmo debe El algoritmo debe veces con los mismos terminar en algn indicar el orden datos de entrada, se momento y debe exacto de ejecucin deben obtener los usar una cantidad de de cada tarea. mismos datos de recursos finita. salida.

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


Un algoritmo esta compuesto por:
La etapa de entrada indica los datos que son necesarios para la solucin del problema en cuestin. En la etapa de proceso o procesamiento, es donde se realizan las operaciones que tienen que ver con la solucin del problema. La etapa de salida es donde se mostrarn los resultados obtenidos en el procesamiento.

Algoritmos Cotidianos
Se refiere a todos aqullos algoritmos que nos ayudan a resolver problemas diarios, y que los hacemos casi sin darnos cuenta de que estamos siguiendo una metodologa para resolverlos.

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


Los lenguajes algortmicos nos proporcionan metodologas 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 programacin.

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle. La clasificacin de los lenguajes para algoritmos puede enunciarse de la siguiente manera : Lenguaje Natural Lenguaje de Diagramas de flujo Lenguaje Natural de Programacin. Lenguaje de Programacin de Algoritmos.

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


Lenguaje Natural

Es aqul que describe en espaol, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce como lenguaje jerga cuando se utilizan trminos especializados de una determinada ciencia, profesin o grupo.

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


Lenguaje de Diagramas de flujo

Es aqul que se vale de diversos smbolos 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 cmputo.

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


Lenguaje Natural de Programacin. Son aqullos que estn orientados a la solucin de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboracin de frmulas o mtodos cientficos. Tiene las siguientes caractersticas : Evita la ambigedad (algo confuso que se puede interpretar de varias maneras). Son precisos y bien definidos. Utilizan trminos familiares al sentido comn. Elimina instrucciones innecesarias.

1.2. Definicin de lenguaje, algoritmo y lenguajes algortmicos


Lenguaje de Programacin de Algoritmos.

Es aqul que se utiliza para introducir en la computadora un algoritmo especfico. Se les conoce tambin como Lenguaje de Programacin.

1.3. Metodologa para la solucin de problemas por medio de computadoras.


A fin de resolver un problema utilizando sistemas de cmputo, debe seguirse una serie de pasos que permiten avanzar por etapas bien definidas hacia la solucin:

1. 2. 3. 4. 5. 6. 7.

Definicin de Problema Anlisis de los Datos Diseo de la Solucin Codificacin Prueba y Depuracin Documentacin Mantenimiento

Definicin 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.

Anlisis de los datos


Para poder definir con precisin el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solucin eficaz. Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes aspectos :

Anlisis de los datos


Los resultados esperados. Los datos de entrada disponibles. Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado (frmulas, tablas, accesorios diversos).

Diseo de la solucin
Una computadora no tiene capacidad para solucionar problemas ms que cuando se le proporcionan los sucesivos pasos a realizar, esto se refiere a la obtencin 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 descripcin del algoritmo resultante en un lenguaje natural, de diagrama de flujo o natural de programacin. Como puede verse, solo se establece la metodologa para alcanzar la solucin en forma conceptual, es decir ; sin alcanzar la implementacin en el sistema de cmputo.

Codificacin
Se refiere a la obtencin de un programa definitivo que pueda ser comprensible para la mquina. Incluye una etapa que se reconoce como compilacin. Si la codificacin original se realiz en papel, previo a la compilacin deber existir un paso conocido como transcripcin.

Prueba y depuracin
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. Comnmente se inicia la prueba de un programa introduciendo datos vlidos, invlidos e incongruentes y observando como reacciona en cada ocasin. El proceso de depuracin consiste en localizar los errores y corregirlos en caso de que estos existan. Si no existen errores, puede entenderse la depuracin como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempeo del programa.

Documentacin
Debido a que el programa resultante en esta etapa se encuentra totalmente depurado (sin errores), se procede a la utilizacin para resolver problemas del tipo que dio origen a su diseo. En vista de que esta utilizacin no podr ser supervisada en todas las ocasiones por el programador, debe crearse un manual o gua de operacin que indique los pasos a seguir para utilizar el programa.

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 operacin.

Cualquier actualizacin o cambio en el programa deber reflejarse en su documentacin.

1.4. Entidades primitivas para el diseo de instrucciones.


Tipos de Datos Operadores y operandos Expresiones

Tipos de Datos
Un dato se define como la expresin general que describe los objetos con los cuales opera una computadora. Los datos de entrada se transforman por el programa, despus de las etapas intermedias, en datos de salida.

Tipos de Datos
Los datos se clasifican en diversas categoras, segn el tipo de mquina o del lenguaje en uso. Generalmente podemos encontrar las siguientes categoras :

Numricos Lgicos Cadenas

Datos numricos
Son aqullos que representan una cantidad o valor determinado.
Su representacin se lleva a cabo en los formatos ya conocidos (enteros, punto y fracciones decimales si estas existen).

Tipo entero (Integer)

Tipo Real

Tipo de Dato Cadena o Carcter


Son los datos que representan informacin textual (palabras, frases, smbolos, etc).
No representan valor alguno para efectos numricos.

Pueden distinguirse porque son delimitados por apstrofes o comillas.

Datos de Tipo Carcter (Char) Datos de Tipo Cadena (String)

Tipos de Datos Lgicos

Booleano
Falso Verdadero

Se 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, segn sea.

Datos Simples y Compuestos


Un dato simple es indivisible (atmico), es decir, no se puede descomponer.

Ejemplo 1: Un ao es un dato simple.


Ao...:2006

Un ao se expresa con un nmero entero, el cual no se puede descomponer.

Datos Simples y Compuestos


Un dato compuesto est formado por otros datos.

Ejemplo 2: una fecha es un dato compuesto por tres datos simples (da, mes, ao).
Fecha: da...: 30 mes...: 11 ao...: 2006

Constantes y variables
Una Constante es aqulla que no cambia de valor durante la ejecucin de un programa (o comprobacin de un algoritmo en este caso). Se representa en la forma descrita para cada categora. Las Variables son aqullas que pueden modificar su valor durante la ejecucin de un programa (idem). Su representacin se da a travs de letras y smbolos generalmente numricos a los que se

Operadores y Operandos
OPERADORES

Un operador es el smbolo que determina el tipo de operacin o relacin que habr de establecerse entre los operandos para alcanzar un resultado.

Operadores y Operandos
Los operadores se clasifican en tres grupos: Aritmticos Relacionales Lgicos

Operadores Aritmticos
Son aqullos que permiten la realizacin de clculos aritmticos. Utilizan operandos numricos y proporcionan resultados numricos.
Operador
+ * / Div Mod ^ Operacin Suma Resta Multiplicaci n Divisin real Divisin entera Residuo Exponenciaci n

Operadores Relacionales
Permiten realizar comparaciones de valores de tipo numrico o carcter. Estos operadores sirven para expresar las condiciones en los algoritmos. Proporcionan resultados lgicos.
Operador < > Significado Menor que Mayor que

=
<=

Igual que
Menor o igual que Mayor o igual que Diferente de

>=
<>

Operadores Lgicos
Son aqullos que permiten la combinacin de condiciones para formar una sola expresin lgica. Utilizan operandos lgicos y proporcionan resultados lgicos tambin.
Oper ador
not and

Relacin
Negacin (No) Conjuncin (Y)

or
xor

Disyuncin (O)
Disyuncin Exclusiva (O/SOLO)

Prioridad de los operadores aritmticos

Prioridad de los operadores lgicos y relacionales

Asignacin
Una instruccin de asignacin (o simplemente asignacin) consiste en asignar el resultado de la evaluacin de una expresin a una variable. Ejemplo 1: Dadas las declaraciones

PI = 3.141592
real area, longitud, radio = 5.78

Entrada
Una instruccin de entrada (o simplemente entrada) consiste en asignar a una o ms variables, uno o ms valores (datos) recibidos desde el exterior. Normalmente, los datos son recogidos desde la entrada estndar (el teclado), pero, tambin existen otros dispositivos de entrada (el ratn, el escner,...).

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

Salida
Una instruccin de salida (o simplemente salida) consiste en llevar hacia el exterior los valores (datos) obtenidos de la evaluacin de una lista de expresiones. Normalmente, los datos son enviados a la salida estndar (la pantalla), pero, tambin existen otros dispositivos de salida (la impresora, el plotter,...).

Salida
escribir( <expresin_1>, ..., <expresin_n> ) escribir( <lista_de_expresiones> )

Expresiones
Las expresiones son combinaciones de constantes, variables, smbolos de operadores, parntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notacin matemtica tradicional ; por ejemplo :
a + b ( b+2) Aqu los parntesis indican el orden de clculo.

1.5. Tcnicas para la formulacin de algoritmos.


Las tres tcnicas de formulacin de algoritmos ms populares son : Diagrama de flujo Pseudocdigo Diagrama estructurado

REFERENCIAS
CASTILLO, Vctor. Lenguajes algortmicos. Recuperado el 10 de Julio de 2011 de http://docente.ucol.mx/abolio/tareas/Lenguaje.pdf INSTITUTO TECNOLOGICO DE LA PAZ. Tutorial de diseo estructruturado de algoritmos, recuperado el 10 de Julio de 2011 de http://sistemas.itlp.edu.mx/tutoriales/algoritmos/ RODRGUEZ, Sala Jess. (2003). Introduccin a la programacin: teora y prctica. 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_cz DDQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCgQ6AEwAA#v=onepage &q&f=false UNIVERSIDAD NACIONAL DE COLOMBIA, Diseo 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

S-ar putea să vă placă și