Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Principios de Algoritmos PDF
Principios de Algoritmos PDF
ALGORITMOS
43
Tema 2
2.1 Introduccin
El objetivo principal de la materia es el de ensear a resolver problemas mediante una
computadora. Un programador de computadoras antes de nada es un resolvedor de
problemas.
Por lo que para llegar a ser un programador eficaz se necesita aprender a resolver
problemas de un modo riguroso y sistemtico.
Por esto la materia tiene como nombre Metodologa de la programacin.
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
2.2 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.
Metodologa de la Programacin I
Algoritmos
Entrada
Proceso
Salida
Modelo
Resultados
Anlisis
Secuenciales
Condicionales
Repetitivos
45
Tema 2
Metodologa de la Programacin I
Algoritmos
resultan inmediatos de resolver, otros son bastante complejos. la investigacin en esta rea
ha permitido descubrir un conjunto de mtodos y esquemas de diseo hacia los cuales
puede orientarse la realizacin de muchos algoritmos. Idear un algoritmo continua siendo
una labor bastante creativa donde los conocimientos y las experiencias del propio diseador
tiene un papel fundamental.
A* B =
A * B * COS
cos
( )
A* B
A * B
A = A =
Ax
+ Ay
+ Az
B = B =
Bx
+ By
+ Bz
2
2
N = A * B = Ax * Bx + Ay * By + Az * Bz
D = A* B
47
Tema 2
Determinar la solucin general.
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.
48
Metodologa de la Programacin I
Algoritmos
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.
Este diseo consiste en una serie de descomposiciones sucesivas del problema inicial, que
recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del
programa.
La utilizacin de la tcnica de diseo Top-Down tiene los siguientes objetivos bsicos:
Simplificacin del problema y de los subprogramas de cada descomposicin.
Las diferentes partes del problema pueden ser programadas de modo independiente e
incluso por diferentes personas.
El programa final queda estructurado en forma de bloque o mdulos lo que hace mas
sencilla su lectura y mantenimiento.
PRIMER
REFINAMIENTO
SEGUNDO
REFINAMIENTO
ULTIMO
REFINAMIENTO
Modulo 1
Sub problema
1.1
Sub Problema
1
Modulo 3
Sub problema
1.2
Problema
Inicial
Modulo 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
49
Tema 2
2.8.4 Bottom Up
El diseo ascendente se refiere a la identificacin de aquellos procesos que necesitan
computarizarse con forme vayan apareciendo, su anlisis como sistema y su codificacin, o
bien, la adquisicin de paquetes de software para satisfacer el problema inmediato.
Cuando la programacin se realiza internamente y haciendo un enfoque ascendente, es
difcil llegar a integrar los subsistemas al grado tal de que el desempeo global, sea fluido.
Los problemas de integracin entre los subsistemas son sumamente costosos y muchos de
ellos no se solucionan hasta que la programacin alcanza la fecha limite para la integracin
total del sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia
de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se
ignoran.
Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema
como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque
ascendente. Uno de ellos es la duplicacin de esfuerzos para accesar el software y ms aun
al introducir los datos. Otro es, que se introducen al sistema muchos datos carentes de
valor. Un tercero y tal vez l mas serio inconveniente del enfoque ascendente, es que los
objetivos globales de la organizacin no fueron considerados y en consecuencia no se
satisfacen.
50
Metodologa de la Programacin I
Algoritmos
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
Programa
Verificacin del
Algoritmo
Documentacin
Mantenimiento
51
Tema 2
Al comenzar a abordar un problema hay que tener en cuenta que para la mayora de ellos
hay muchas maneras de resolver y pueden existir muchas soluciones, se plantean algunos
criterios o estrategias generales que se deben tomar en cuenta, las cuales son tiles en el
anlisis del problema.
El propsito del anlisis del problema es ayudar al programador para llegar a una cierta
comprensin de la naturaleza del problema. Una buena definicin del problema junto con
una descripcin detallada de las especificaciones de entrada y de salida, son los requisitos
ms importantes para llegar a una solucin eficaz.
Anlisis del
problema
Definicin del
problema
Especificacin de
datos de Entrada
Especificacin de
datos de Salida
52
Metodologa de la Programacin I
Algoritmos
Definicin del problema.
Calcular la superficie de una circunferencia
Anlisis del problema
La entrada a este problema es el radio de la circunferencia y de tipo real.
La salida de este problema es la superficie que tambin es de tipo real.
Entrada de datos
Entrar el Radio
Calculo de la superficie
S = PI * R ^2
Salida de resultados
53
Tema 2
Diseo Descendente
Divide y vencers
Refinamiento por
pasos
Herramienta de representacin
Diagramas de flujo
Pseudocdigo
Diagramas Nassi/Shneiderman-S
(Chapin)
Mtodo Warnier
Mtodo Jackson
Mtodo Bertini
Mtodo Tabourier
2.9.6 Codificacin
La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la lgica
del diagrama de flujo o pseudocodigo), en una serie de instrucciones detalladas, en un
cdigo reconocible por la computadora, la serie de instrucciones detalladas se le conoce
como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto
nivel.
54
Metodologa de la Programacin I
Algoritmos
2.9.8 Documentacin
Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados,
procedimientos, dibujos o diagramas.
A menudo un programa escrito por una persona, es usado por otra. Por ello la
documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras
modificaciones (mantenimiento).
La documentacin se divide en tres partes:
Documentacin Interna
Documentacin Externa
Manual del Usuario
Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo fuente
para hacer mas claro el entendimiento de un proceso.
Documentacin Externa: Se define en un documento escrito los siguientes puntos:
Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin
de que el usuario obtenga el resultado deseado.
55
Tema 2
2.9.9 Mantenimiento
Se lleva acabo despus de terminado el programa, cuando se detecta que es necesario hacer
algn cambio, ajuste o complementacin al programa para que siga trabajando de manera
correcta. Para poder realizar este trabajo se requiere que el programa este correctamente
documentado.
Pseudocodigo
Diagrama de Flujo.
Diagramas Nassi/Shneiderman-S (Chapin)
Mtodo Warnier
Mtodo Jackson
Mtodo Bertini
Mtodo Tabourier
2.10.1 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.
Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a
un problema determinado. El pseudocodigo utiliza palabras que indican el proceso a
realizar.
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.
56
Metodologa de la Programacin I
Algoritmos
Inicio
Leer (lado)
A lado * lado
Imprimir( A)
Fin
Asignacin
expresin
Variable expresin
condicin
I1,I2,...,In
entonces
Fin_si
Si
condicin
entonces I1,I2,...,In
Sino J1, J2,..,Jn
Fin_si
57
Tema 2
Opcin
V1
V2
V3
...
VN
Otro
Fin_opcin
Expresin
de
Hacer I1,I2,...,In
Hacer J1,J2,...,In
Hacer K1,K2,...,Kn
Hacer L1,L2,...,Ln
Hacer M1,M2,...,Mn
58
Metodologa de la Programacin I
Algoritmos
2.10.2.1 Caractersticas
Toda representacin grfica, de cualquier tipo sea, debe cumplir las siguientes cualidades.
59
Tema 2
Smbolo de proceso y nos indica la asignacin
de un valor en la memoria y/o la ejecucin de
una operacin aritmtica.
No
Subrprogramas
comentarios
60
Metodologa de la Programacin I
si
Algoritmos
NO
SI
No
si
61
Tema 2
Ordinogramas diagramas de flujo del programa
62
Metodologa de la Programacin I
Algoritmos
Asignacin
expresin
63
Tema 2
False
Condicion
1
64
Metodologa de la Programacin I
Algoritmos
Repetir
repetir
Para
Para
De
La
Programacin
Tambin existen otros mtodos de representar los algoritmos y son los siguientes.
65
Tema 2
Asignacin
expresin
Variable expresin
I1
No
I2
Condicin
66
Expresin = V1
Expresin = V2
Expresin = V3
Expresin = Otros
Metodologa de la Programacin I
Algoritmos
Mientras
Proceso
Mientras condicin
Proceso
Hasta condicin
Proceso
N veces
Repetir
Para
67
Tema 2
Asignacin
expresin
Variable expresin
Si
No
68
Metodologa de la Programacin I
O
B
Algoritmos
Expresin
= V1
= V2
= V3
= VN
*
Condicin
Mientras
En el bloque condicin se escribe mientras condicin
Repetir
En el bloque condicin se escribe hasta condicin
Para
O
D
69
Tema 2
Asignacin
expresin
Variable expresin
70
Metodologa de la Programacin I
Algoritmos
COND
COND
EXPRESION
=V1
=V2
=V3
=OTROS
CONDICION
A
Mientras
En el bloque condicin se escribe mientras condicin
Repetir
En el bloque condicin se escribe hasta condicin
71
Tema 2
Para
En el bloque condicin se escribe N veces
Asignacin
expresin
Variable expresin
72
Metodologa de la Programacin I
Algoritmos
Boque
Condi.
Expresin
= V1
En caso de
= V2
A
= V3
B
= VN
C
73
Tema 2
Mientras
Mientras
Condi.
Repetir
Repetir
Condi.
Para
Para
Condi.
74
Diagramas de flujo
Pseudocodigo
Diagramas N-S
Metodologa de la Programacin I
Algoritmos
Instrucciones,
Pseudocodigo
acciones
Estructura
del Algoritmo Identificador
Algoritmo
{Seccin
de
declaracin
variables}
inicio
....
Diagrama de flujo
de
Diagrama N-S
Algoritmo Identificador
Inicio
Fin
Fin
fin
Declaracin
variables
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
Asignacin
Variable Expresin
Entrada de datos
Salida de datos
Variable Expresin
Variable Expresin
Leer
(lista de variables)
Leer
(lista de variables)
Escribir
(lista de variables)
Escribir
(lista de variables)
75
Tema 2
Instruccin
compuesta
S1
S2
S3
...
SN
S1
S1
S2
S2
...
...
Sn
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
76
Metodologa de la Programacin I
condicion
True
False
condicion
True
False
Algoritmos
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
Condicion
1
Repetitiva mientras
Mientras condicin
S1
S2
...
S3
Fin_Mientras
no
Mientras
Si
Repetitiva repetir
Repetir
S1
S2
...
S3
Hasta condicin
No
Si
Repetir
77
Tema 2
Repetitiva
(desde)
para
Para Var de ValInc Hasta ValFin
[incremento x] hacer
S1
S2
...
Sn
Fin_Para
Para V de
inic fin hacer
78
Metodologa de la Programacin I
Para