Está en la página 1de 10

Diseo de algoritmos

Jose Jesus Garca Rueda. Adaptado de El algoritmo,


una iniciacin a la programacin
(http://www.desarrolloweb.com/manuales/67/)
http://www.desarrolloweb.com/manuales/67/) y de
Diseo estructurado de algoritmos
(http://www.itver.edu.mx/comunidad/material/algoritmos/)

Introduccin
La principal razn para aprender a programar es utilizar
la computadora para resolver problemas.
Algoritmo: se deriva de la traduccin al latn de la
palabra rabe alkhowarizmi, nombre del matemtico
rabe que enunci reglas paso a paso para sumar,
restar, multiplicar y dividir nmeros decimales.
Un algoritmo es una serie de pasos organizados que
describe el proceso a seguir para solucionar un
problema especfico.
Dos tipos de algoritmos:

Cualitativos: Emplean palabras. Ej:


Ej: Receta de cocina, cambiar
una rueda, usar la gua telefnica.
Cuantitativos: Utilizan clculos numricos. Ej:
Ej: Resolver una
ecuacin de 2 grado.

Un algoritmo cotidiano
Algoritmo para leer las pginas de un libro:
1.
2.
3.
4.

Inicio.
Abrir el libro en la 1 pgina.
Leer la pgina.
Es la ltima que deseo leer?
S: Ve al paso 7.
No: Ve al paso 5

5.
6.
7.
8.

Pasar a la siguiente pgina.


Ve al paso 3.
Cerrar el libro.
Fin.

Lenguajes algortmicos
Un lenguaje algortmico es un
conjunto de smbolos y reglas
que permiten describir de
manera explcita un proceso.
Es independiente de cualquier
lenguaje de programacin.
Debe permitir una traduccin
clara del algoritmo al
programa.
Dos tipos de lenguajes
algortmicos:

Grficos:
Grficos: Por ejemplo, los
diagramas de flujo.
No grficos:
grficos: Por ejemplo, el
pseudocdigo.
pseudocdigo.

INICIO
Edad: Entero
ESCRIBE cul es tu edad?
Lee Edad
SI Edad >= 18 entonces
ESCRIBE Eres mayor de edad
FINSI
Escribe fin del algoritmo
FIN

Creacin de algoritmos
Proceso de programacin tpico:

Dado un determinado problema


el programador idea una solucin
y la expresa mediante un algoritmo.
Codificacin del algoritmo.
Ejecucin del programa.

Metodologa para la solucin de problemas por medio


de un ordenador:
1.

2.

Definicin del problema: clara y precisa. Es casi la mitad del


trabajo
Anlisis del problema: Colocarse en el lugar del ordenador y
analizar qu requeriramos para realizar la tarea.

3.

Datos de entrada.
Informacin a producir (salida)
Mtodos y frmulas para procesar los datos

Diseo del algoritmo.

Caractersticas de un buen
algoritmo
Debe tener un punto particular de inicio.
No debe ser ambiguo.
Debe ser general.
Debe ser finito en tamao y en tiempo de
ejecucin.
Prueba de escritorio: se toman datos
especficos como entrada y se sigue el
algoritmo hasta obtener un resultado.

Tcnicas de diseo
Top Down:
Down: Se descompone sucesivamente el problema
inicial en subproblemas.
subproblemas.

Con cada descomposicin, se simplifican los subproblemas.


subproblemas.
Las diferentes partes del problema pueden ser programadas de
forma independiente.
El programa final queda estructurado en forma de bloques o
mdulos.

Bottom Up:
Up: Se programa cada proceso segn vaya
apareciendo.

Difcil llegar a una integracin tal que el desempeo global sea


fluido.
Proclive a la duplicacin de esfuerzos.
Pueden no satisfacerse los requisitos globales de la aplicacin.

La creacin de algoritmos se basa en la tcnica


descendente.

Diagramas de flujo
Es una forma de
representar grficamente
un algoritmo.
Cada paso se escribe
dentro de un smbolo.
Los pasos se conectan
unos con otros mediante
lneas de flujo.
flujo.
Son fciles de disear,
pero difciles de
actualizar.
Los smbolos que utiliza
estn normalizados:

Inicio/Final
Entrada/ Salida
Proceso
Salida por
impresora
Conector dentro
pgina
Conector fuera
pgina
Salida por
pantalla

Diagramas de flujo (II)


Decisin
Seleccin
mltiple

Mientras

Diagramas de flujo (III)


Para

Repite hasta

Lneas de flujo

Ejemplo de diagrama de flujo


Disee un algoritmo
que lea 3 nmeros,
los sume e imprima el
resultado por
impresora.

Recomendaciones para los


diagramas de flujo
Emplear solamente lneas de flujo horizontales
y/o verticales.
Evitar el cruce de lneas (usando los conectores)
Usar los conectores slo cuando sea necesario.
No dejar lneas de flujo sin conectar.
Se deber poder leer de arriba abajo y de
izquierda a derecha.
Ser escuetos y claros con lo que se escriba
dentro de los smbolos.

Pseudocdigo
Mezcla de lenguaje de programacin y de
lenguaje natural.
Representacin narrativa de los pasos que debe
seguir un algoritmo.
Utiliza palabras, no grficos.
Ventajas:

Ocupa menos espacio.


Permite representar fcilmente operaciones
repetitivas complejas.
Es muy fcil pasar del pseudocdigo al lenguaje de
programacin.
Quedan claros los niveles que tiene cada operacin.

Principales caractersticas de los


pseudocdigos
Utilizan operadores aritmticos y lgicos.
Se pueden incluir comentarios.
Se debe respetar una indentacin en los
bloques de instrucciones.
Usan ciertas palabras clave: PSEUDOCDIGO,
VARIABLES, INICIO, FIN, LEE, ESCRIBE,
IMPRIME, IF_THEN_ELSE, CASE OF, FOR
DO, WHILE DO, REPEAT UNTIL, ARRAY
Comienzan con el nombre del pseudocdigo,
seguido de la declaracin de variables, y luego
el cuerpo del pseudocdigo.

Ejemplo de pseudocdigo
Algoritmo que lee 3 nmeros, los suma e
imprime su resultado.
PSEUDOCDIGO sumatorio
VARIABLES
eN1,
eN1, eN2,
eN2, 3N3, eSuma:
eSuma: Entero
INICIO
ESCRIBE Dame tres nmeros:
LEE eN1,
eN1, eN2,
eN2, eN3
eSuma = eN1 + eN2 + eN3
ESCRIBE El resultado de la suma es: , eSuma
FIN

Diagramas estructurados (NassiSchneiderman)


Como un diagrama
de flujo en el que se
omiten las flechas de
unin, y las cajas son
contiguas.
Son fciles de disear
y difciles de
actualizar.
Las acciones
sucesiva se escriben
en cajas sucesivas.

EJEMPLO
Disear un algoritmo que, dada una
operacin aritmtica expresada en el
formato habitual (y String), vaya leyndola
carcter a carcter, para as calcular su
resultado.
Respetar las reglas tpicas de precedencia
entre operaciones aritmticas (+ y - < * y /)

Paso 1: Anlisis
Datos de entrada: una cadena de caracteres
representando una operacin aritmtica.
Datos de salida: Un nmero, resultado de realizar la
operacin aritmtica.
Forma de operar: Emplearemos dos pilas, una de
operadores y otra de operandos.
operandos.

En la primera guardaremos los operadores que vayamos


leyendo, siempre que su precedencia sea mayor que los
operadores ya en la pila. De no ser as, se extraen los
operadores de precedencia mayor y se operan.
En la segunda iremos guardando los operandos que vayamos
leyendo, as como los resultados de las operaciones parciales.

Paso 2: Diseo del algoritmo


Desarrollo del algoritmo en pseudocdigo:

Paso 3: Prueba de escritorio


Qu tal funciona el algoritmo para
1*2*3+4*5*6+1*3*4?

10

También podría gustarte