Anda di halaman 1dari 18

Diseo de Algoritmos

Antes de comenzar con el tema vamos a considerar el significado de la palabra ALGORITMO esta palabra se deriva de la traduccin al latn de la palabra rabe ALKHWARZMI, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre la manipulacin de nmeros y ecuaciones en el siglo IX, titulado KITAB AL-JABR WALMUGALABA, la palabra lgebra se deriv por su semejanza sonora de AL-JABR. Etimolgicamente la palabra problema deriva del griego PROBALLEIN y significa algo lanzado hacia delante. Un problema es un asunto o conjunto de cuestiones que se plantean para ser resueltas, la naturaleza de los problemas varia con el mbito o con el contexto donde estn planteados: as existen problemas matemticos, fsicos, filosficos, etc.,
Problema Diseo del algoritmo Programa de computadora

Definicin
Un Algoritmo es una secuencia de operaciones detalladas y no ambiguas, que al ejecutarse paso a paso, conducen a la solucin de un problema. En otras palabras es un conjunto de reglas para resolver una cierta clase de problema. Algoritmo es un conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema especfico o clase de problema. Un Algoritmo es la aplicacin de pasos lgicos, secuenciales y metdicamente aplicados para dar solucin a un problema en cuestin. En otras palabras un algoritmo es una formula para resolver problemas. En otras palabras un algoritmo es una formula para la solucin de un problema. Todo problema se puede describir por medio de un algoritmo Todo algoritmo es independiente del lenguaje

SIS-1100

Dpl. Ing. Carlos Balderrama V.

Caractersticas De Los Algoritmos.


Las propiedades de un algoritmo son las siguientes: a) El algoritmo debe ser preciso e indicar el orden de realizacin de cada paso. b) El algoritmo debe ser definido, si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. c) El algoritmo debe ser finito, si se sigue un algoritmo se debe terminar en algn momento; o sea debe tener un nmero finito de pasos. El algoritmo debe ser planteado como un sistema de informacin.
Entrada Proceso Salida

Modelo

Resultados

Anlisis

Clasificacin De Los Algoritmos


Se puede clasificar tomando en cuenta dos aspectos. Secuenciales Condicionales SIS-1100

Dpl. Ing. Carlos Balderrama V.

Repetitivos

Tipos De Algoritmos
Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras. Cuantitativos: Son aquellos en los que se utilizan clculos numricos para definir los pasos del proceso.

Tipos De Lenguajes Algoritmicos


Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo). No Grficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).

Un algoritmo puede ser expresado de las siguientes formas. a) Lenguaje Natural : el uso de trminos del lenguaje natural, es una forma de representar un algoritmo. b) Lenguaje Simblico: es otra forma de representacin de un algoritmo, que adems permite una introduccin a la programacin estructural. c) Lenguaje Grfico : es una forma de escribir una secuencia de pasos en forma de diagrama, en la practica se denomina Diagramas de Flujo. Una receta de un plato de cocina se puede expresar en espaol, ingles o francs pero cualquiera sea el lenguaje los pasos para la elaboracin del plato se realizarn sin importar el cocinero.

Las Tcnicas De Diseo De Algoritmos Divide y vencers


Consiste en descomponer un problema en subproblemas, resolver independientemente soluciones y obtener una solucin del problema original. los subproblemas para luego combinar sus

Esta tcnica puede ser utilizada con xito en problemas como multiplicacin de matrices, ordenacin de vectores, etc.

SIS-1100

Dpl. Ing. Carlos Balderrama V.

Ejemplo. Encontrar el ngulo entre dos vectores A(x,y,z) y B(x,y,x). A =? B Determinar la ecuacin del ngulo entre dos vectores. del producto escalar se tiene

A* B =

A * B * COS

( )

cos

A* B A * B
2 2

Determinar las operaciones intermedias

A = A = B = B =

Ax Bx

+ Ay + By

2 2

+ Az + Bz

2 2

N = A * B = Ax * Bx + Ay * By + Az * Bz D = A* B
Determinar la solucin general.

ANG = cos 1 ( N / D ) = ARCCOS ( N / D )


SIS-1100 Dpl. Ing. Carlos Balderrama V.
4

Mtodo voraz
Este mtodo trata de producir algn tipo de mejor resultado a partir de un conjunto de opciones candidatas. Par ello se va procediendo paso a paso realizndose la mejor eleccin(utilizando un funcin objetivo que respeta un conjunto de restricciones) de entre las posibles. Puede emplearse en problemas de optimizacin, como el conocido de la mochila, en la bsqueda de caminos mnimos sobre grafos, la planificacin en la ejecucin de programas en un computador, etc.

Ejemplo Dar cambio utilizando el menor nmero de billetes. Conjunto de billetes = {"doscientos","cien","cincuenta","veinte","diez","cinco","dos","uno"}; Conjunto de cantidades ={200,100,50,20,10,5,2,1}; Cambiar (dato, posicin) si (dato es distinto de 0) entonces cuantos = dato DIV cantidades[posicin]; si (cuantos es distinto de 0) entonces imprimir ("hay , cuantos, billetes de , billetes [ posicin]); fin_si Cambiar (dato MOD cantidades[posicin], posicin+1); Fin_si Fin_cambiar inicio cambiar(1388,0); fin El estilo y calidad de los algoritmos van fuertemente unidos, ante la pregunta Cuales son las caractersticas de un buen algoritmo? la respuesta identifica los factores de calidad de los algoritmos. Correccin: el algoritmo debe funcionar. Eficiencia : el algoritmo no debe desaprovechar recursos. Claridad : el algoritmo debe estar bien documentado.

SIS-1100

Dpl. Ing. Carlos Balderrama V.

Top Down
Tambin conocida como de arriba-abajo (diseo descendente) y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solucin al problema. Consiste en efectuar una relacin entre las etapas de la estructuracin de forma que una etapa jerrquica y su inmediato inferior se relacionen mediante entradas y salidas de informacin.

PRIMER REFINAMIENTO

SEGUNDO REFINAMIENTO

ULTIMO REFINAMIENTO

Modulo 1

Sub problema 1.1


Sub Problema 1

Modulo 2 Modulo 3

Problema Inicial

Sub problema 1.2

Modulo 4

Modulo N-3

Sub problema M.1


Sub Problema M

Modulo N-2 Modulo N-1

Sub problema M.2

Modulo N

SIS-1100

Dpl. Ing. Carlos Balderrama V.

Metodologa Para La Solucin De Problemas Por Medio De Computadora


La principal razn para que las personas aprendan lenguajes de programacin es utilizar la computadora como una herramienta para la resolucin de problemas. Dos fases pueden ser identificadas en el proceso de resolucin de problemas. Fase de resolucin del problema. Fase de implementacin (realizacin) en un lenguaje de programacin. Fase de resolucin del Problema Fase de Implementacin

Definicin del problema

Codificacin del Algoritmo

Anlisis del problema

Ejecucin del programa

Diseo del Algoritmo Verificacin del Algoritmo

Verificacin del Programa

Documentacin

Mantenimiento

SIS-1100

Dpl. Ing. Carlos Balderrama V.

Tcnicas Para La Formulacin De Algoritmos


Para representar una algoritmo se debe utilizar algn mtodo que permita independizar dicho algoritmo del lenguaje de programacin elegido. Ello permitir que un algoritmo pueda ser codificado inmediatamente en cualquier lenguaje. Las herramientas utilizadas comnmente para disear algoritmos son: Pseudocodigo Diagrama de Flujo. Diagramas Nassi/Shneiderman-S (Chapin) Mtodo Warnier Mtodo Jackson Mtodo Bertini Mtodo Tabourier

Pseudocodigo
Mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro idioma) que se emplea, dentro de la programacin estructurada, para realizar el diseo de un programa. En esencial, el pseudocodigo se puede definir como un lenguaje de especificaciones de algoritmos. El inicio de un algoritmo en pseudocodigo comienza con la palabra Inicio y termina con la palabra fin. Las lneas que estn entre llaves ({ }) se denomina comentario. Un ejemplo aclaratorio es el siguiente. Calcular el rea de un cuadrado. Inicio Leer (lado) A lado * lado Imprimir( A) Fin SIS-1100 Dpl. Ing. Carlos Balderrama V.
8

Acciones simples
Las acciones simples, tambin denominadas instrucciones primitivas, son aquellas que el procesador ejecuta de forma inmediata. Asignacin Almacena en una variable el resultado de evaluar una expresin Entrada Toma un dato del dispositivo de entrada Salida Devuelve un dato al dispositivo de salida Variable expresin Leer (Variable) Imprimir (variable)

Sentencias de control
Tambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otras instrucciones. Secuencia. Se ejecutan instrucciones de I1,I2,...,In en el mismo orden en el que aparece Alternativa. En esta instruccin la condicin es booleana Si Si condicin entonces I1,I2,...,In Sino J1, J2,..,Jn Fin_si I1,I2,...,I3 condicin entonces I1,I2,...,In

Fin_si Repeticin o bucles. En un bucle hay una o varias acciones que se han de repetir y una condicin que determina el nmero de veces que se repiten las instrucciones. Repetir Repetir I1,I2,...,In Hasta condicin Para Para Variable de Valinc a ValFin hacer I1,I2,...,In Fin_para

Mientras Mientras condicin hacer I1,I2,...,In Fin_mientras

Diagrama De Flujo
Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de como deben realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da cuando varios SIS-1100 Dpl. Ing. Carlos Balderrama V.
9

smbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante lneas que indican el orden en que se deben ejecutar los procesos.

Caractersticas
Toda representacin grfica, de cualquier tipo sea, debe cumplir las siguientes cualidades. Sencillez. Un mtodo grfico de diseo de algoritmo debe permitir la construccin de estos de manera fcil y sencilla Claridad. Cuando un algoritmo es representado por un mtodo grfico necesita ser interpretado por otra persona distinta de la que lo dise, debe estar lo suficientemente claro para su un fcil reconocimiento de todos los elementos. Normalizacin. Tanto los diseadores de programas como los usuarios que necesitan la documentacin de estos deben utilizar las mismas normas de documentacin. Flexibilidad. Todo mtodo grfico de representacin debe permitir, sin grandes dificultades, posteriores modificaciones de algunas partes de un algoritmo y la insercin de alguna nueva.

Descripcin de los bloques utilizados


Los smbolos utilizados han sido normalizados por el instituto norteamericano de normalizacin (ANSI). Terminal. Indica el inicio y el final de nuestro diagrama de flujo.

Indica la entrada y salida de datos.

Indican la entrada de datos

Indican salida de Datos SIS-1100 Dpl. Ing. Carlos Balderrama V.


10

Smbolo de proceso y nos indica la asignacin de un valor en la memoria y/o la ejecucin de una operacin aritmtica.

Smbolo de decisin indica la realizacin de una comparacin de valores.

No

si

Subrprogramas

Conector dentro de pagina. Representa la continuidad del diagrama dentro de la misma pagina.

Conector de pagina. Representa la continuidad del diagrama en otra pagina.

Lneas de flujo o direccin. Indican la secuencia en que se realizan las operaciones.

Smbolo de decisin , con opciones mltiples

SIS-1100

Dpl. Ing. Carlos Balderrama V.

11

comentarios

Ciclo repetitivo para

Ciclo repetitivo Mientras

NO

SI

Ciclo repetitivo Repetir

No

si

Diagramas Estructurados (Nassi-Schneiderman)


SIS-1100 Dpl. Ing. Carlos Balderrama V.
12

El diagrama estructurado N-S tambin conocido como diagrama de chapin es como un diagrama de flujo en el que se omiten las flechas de unin 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:

Acciones simples
Las acciones simples, tambin denominadas instrucciones primitivas, son aquellas que el procesador ejecuta de forma inmediata. Asignacin Almacena en una variable el resultado de evaluar una expresin Entrada Toma un dato del dispositivo de entrada Salida Devuelve un dato al dispositivo de salida
Leer A,C Escribir a,b A = a+3

Sentencias de control
Tambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otras instrucciones. Secuencia. Se ejecutan instrucciones de I1,I2,...,In en el mismo orden en el que aparece
I1 I2 ... IN

Alternativa. En esta instruccin la condicin es booleana


condicion True False

Condicion 1 2 3 4 5 6 7 8

SIS-1100

Dpl. Ing. Carlos Balderrama V.

13

Repeticin o bucles. En un bucle hay una o varias acciones que se han de repetir y una condicin que determina el nmero de veces que se repiten las instrucciones. Mientras
MIentras

Repetri

repetir

Para
Para

SIS-1100

Dpl. Ing. Carlos Balderrama V.

14

Instrucciones, Pseudocodigo acciones Estructura del Algoritmo Identificador Algoritmo {Seccin de declaracin variables} inicio .... fin Declaracin variables

Diagrama de flujo

Diagrama N-S
Algoritmo Identificador

de

Inicio

Fin

Fin

de Descripcin de variables y tipos en Se escriben las variables y tipos Escritura de una tabla de variables la tabla de variables en la tabla de variables junto con el diagrama de flujo Variable Expresin Variable Expresin Variable Expresin

Asignacin

Entrada de datos

Leer (lista de variables) Leer (lista de variables) Leer (lista de variables)

Salida de datos

Escribir (lista de variables) Escribir (lista de variables) Escribir (lista de variables)

SIS-1100
75

Dpl. Ing. Carlos Balderrama V.

Instruccin compuesta S1 S2 S3 ... SN Comentarios { FASE DESCRIPTIVA DE COMENTARIO} Selectiva alternativa simple Si condicin entonces S1 S2 ... S3 Finsi Selectiva alternativa doble Si condicin entonces S1 S2 ... S3 Sino S1 S2 ... S3 Finsi

S1 S2 ... Sn

S1 S2 ... Sn

condicion True False

condicion True False

SIS-1100
76

Dpl. Ing. Carlos Balderrama V.

Selectiva alternativa mltiple Segn_sea expresin hacer E1 : S1,S2,...Sn E2 : S1,S2,...Sn E3 : S1,S2,...Sn ..... EN : S1,S2,...Sn En_otro_caso EN : S1,S2,...Sn Fin_segn_sea Repetitiva mientras Mientras condicin S1 S2 ... S3 Fin_Mientras no Si

Condicion 1 2 3 4 5 6 7 8

Mientras

Repetitiva repetir Repetir S1 S2 ... S3 Hasta condicin No Si Repetir

SIS-1100
77

Dpl. Ing. Carlos Balderrama V.

Repetitiva (desde)

para Para Var de ValInc Hasta ValFin [incremento x] hacer S1 S2 ... Sn Fin_Para Para V de inic fin hacer Para

SIS-1100
78

Dpl. Ing. Carlos Balderrama V.

Anda mungkin juga menyukai