Professional Documents
Culture Documents
Apuntes de
INDICE
Pgina
Agosto 2009
1
Diseo Estructurado de Algoritmos Armando Lpez Cisea
UNIDAD I
CONCEPTOS BSICOS
ALGORITMO
Es una secuencia ordenada de pasos, exenta de ambigedades, que lleva a la
solucin de un problema determinado. Estos pasos deben ser simples y seguir un
orden cuidadosamente prescrito; adems deben ser efectivos, para resolver
siempre el problema en un nmero finito de pasos.
LENGUAJE ALGORITMICO
Es un lenguaje especial para expresar la solucin de un problema en base a un
algoritmo. El lenguaje algortmico est situado entre el lenguaje humano y el
lenguaje de programacin. Con esto se pretende eliminar la imprecisin del
primero y la estricta sintaxis y variedad de instrucciones del segundo. De esta
manera el diseador se concentre en el algoritmo, es decir, en la solucin del
problema.
A los lenguajes algortmicos tambin se les conoce como herramienta para diseo
de algoritmos o herramientas de programacin, y se pueden clasificar como sigue:
Diagramas de Flujo
Lenguajes Grficas Diagramas de Flujo Estructurado
Diagramas de Nassi-Schnneiderman (N-S)
Algortmicos
Texto Lenguaje narrativo
Pseudocdigo
ENTIDADES PRIMITIVAS
DATOS
Es la expresin general que describe los objetos con los cuales opera un
algoritmo. Existen ciertos tipos de datos simples o bsicos, los cuales se
observan en la tabla mostrada a continuacin:
2
Diseo Estructurado de Algoritmos Armando Lpez Cisea
3
Diseo Estructurado de Algoritmos Armando Lpez Cisea
CONSTANTE
Es un objeto que permanece sin cambio en el desarrollo de un algoritmo.
VARIABLE
Es un objeto que posee un valor que puede cambiar en el transcurso de un
algoritmo, y es conocido dentro del mismo con un nombre.
Deben respetarse estas reglas generales para asignarles nombres a las variables:
4
Diseo Estructurado de Algoritmos Armando Lpez Cisea
EXPRESIONES
Es un conjunto de constantes y/o variables asociados mediante operadores, que
evaluado representa un determinado valor.
EXPRESIONES NUMRICAS
Estas expresiones son anlogas a las expresiones algebricas de matemticas.
Las variables y constantes son numricas y las operaciones son aritmticas.
a) Toda la expresin debe ser escrita en una sola lnea de instruccin del
algoritmo, por lo que puede ser necesario el uso de ms parntesis para lograr
el agrupamiento correcto.
TIPOS DE TIPO DE
OPERADOR SIGNIFICADO
OPERANDOS RESULTADO
, ^ , ** , $ Potencia Entero o Real Entero o Real
* Multiplicacin Entero o Real Entero o Real
/ Divisin Real Real
+ Suma Entero o Real Entero o Real
- Resta Entero o Real Entero o Real
5
Diseo Estructurado de Algoritmos Armando Lpez Cisea
FUNCIONES INTERNAS
En muchas ocasiones, adems de las operaciones aritmticas bsicas de la tabla
anterior, las expresiones que se requieren en los algoritmos necesitan de algunos
operadores especiales que se conocen como funciones internas o estndar, pues
normalmente vienen incorporadas en el lenguaje (algortmico o de programacin)
que se est utilizando.
TIPO DE TIPO DE
FUNCIN SIGNIFICADO
ARGUMENTO RESULTADO
ABS(x) Valor Absoluto de x Entero o Real Entero o Real
ARCTAN(x) ** Arcotangente de x Entero o Real Entero o Real
COS(x) * Coseno de x Entero o Real Entero o Real
Exponencial de x
EXP(x) Entero o Real Entero o Real
(ex )
Logaritmo Natural
LN(x) Entero o Real Entero o Real
de x
SENO(x) * Seno de x Entero o Real Entero o Real
CUADRADO(x) Cuadrado de x Entero o Real Entero o Real
Raz Cuadrada de
RAIZCUA(x) Entero o Real Entero o Real
x
REGLAS DE PRIORIDAD
Las expresiones que tienen dos o ms operandos requieren de unas reglas que
permitan determinar el orden de las operaciones. A dichas reglas se les conoce
como reglas de prioridad o de precedencia, y son las siguientes:
6
Diseo Estructurado de Algoritmos Armando Lpez Cisea
EXPRESIONES LGICAS
Tambin llamadas booleanas en honor al matemtico britnico George Boole, son
las que combinan constantes lgicas, variables lgicas y otras expresiones lgicas
utilizando los operadores de relacin y los operadores lgicos.
OPERADORES DE RELACIN
Estos operadores permiten realizar comparaciones de valores de tipo numrico o
alfanumrico. Dicha comparacin derivar en un valor falso o verdadero.
Los operadores de relacin nos permiten expresar condiciones simples en los
algoritmos. Dichos operadores estn agrupados en la siguiente tabla:
OPERADOR SIGNIFICADO
< Menor que
> Mayor que
= Igual que
<= Menor o igual que
>= Mayor o igual que
<> Diferente de
OPERADORES LGICOS
Cuando no es suficiente una sola comparacin para indicar una condicin dentro
de un algoritmo, se utilizan los operadores lgicos, los cuales permiten combinar
dos o ms comparaciones en una sola expresin lgica.
Aunque existen ms, los siguientes son los tres operadores lgicos bsicos:
7
Diseo Estructurado de Algoritmos Armando Lpez Cisea
a b aOb
V V V
Disyuncin O OR Unin V F V
F V V
F F F
a b aYb
V V V
Conjuncin Y AND Interseccin V F F
F V F
F F F
a NO a
Negacin NO NOT Complemento V F
F V
Del mismo modo que en una expresin numrica, cuando existen dos o ms
operadores lgicos en una expresin lgica, es necesario establecer la prioridad
de dichas operaciones. La precedencia se da en este orden:
1- () Parntesis
2- NO Negacin
3- Y Conjuncin
4- O Disyuncin
LA OPERACIN DE ASIGNACIN
La operacin de asignacin es el modo de darle valores a una variable dentro de
un algoritmo. Esta operacin se representa con el siguiente smbolo:
variable expresin
8
Diseo Estructurado de Algoritmos Armando Lpez Cisea
Ntese como una asignacin NO es lo mismo que una igualdad, pues la siguiente
asignacin:
xx+1
x=x+1
En general, deben considerarse estos puntos para definir los datos de entrada:
2) No debe existir ningn dato de entrada que pueda calcularse o inferirse a partir
de otro u otros datos de entrada, pues generar inconsistencia en la
informacin que procesa el algoritmo.
3) Los datos de entrada no son los que nos parezcan ms cmodos o los que
nosotros quisiramos pedir para resolver un problema. Aunque en contadas
ocasiones s podramos definirlos con ese criterio, los datos de entrada
9
Diseo Estructurado de Algoritmos Armando Lpez Cisea
EL ALGORITMO BSICO
Cualquier algoritmo, por elemental que sea, contiene la siguiente secuencia de
acciones:
REPRESENTACIN DE ALGORITMOS
Como se vio anteriormente, existen herramientas para representar algoritmos, que
son los denominados lenguajes algortmicos. A continuacin se definen los tres
que utilizaremos.
Diagrama de Flujo
Esta herramienta de programacin es una de las tcnicas de representacin de
algoritmos ms antigua y todava utilizada. Con la aparicin de los lenguajes de
programacin estructurados se vio disminuida su aplicacin porque los diagramas
de flujo originalmente no estuvieron diseados para programacin estructurada.
Sin embargo, para aprovechar sus innegables ventajas, se le hicieron
adecuaciones para poder representar las estructuras de control de la
programacin estructurada, dando como resultado el llamado diagrama de flujo
estructurado, que es el que se utiliza en este curso.
10
Diseo Estructurado de Algoritmos Armando Lpez Cisea
Subprograma,
Inicio / Fin subrutina o
subproceso
Accin, proceso o
Conector
clculo
Conector en pgina
Salida de Datos
diferente
Existen algunas reglas prcticas que son altamente recomendables para construir
diagramas de flujo lo ms estructurado posible:
11
Diseo Estructurado de Algoritmos Armando Lpez Cisea
Proceso o clculo
Pseudocdigo
El objetivo del pseudocdigo es obtener un algoritmo muy similar al cdigo que se
obtiene con un lenguaje de programacin, de tal manera que se realiza casi
directamente la etapa de codificacin. Sin embargo, utiliza slo unas cuantas
palabras reservadas del lenguaje humano (espaol por ejemplo) para representar
las acciones comunes y las estructuras de control bsicas utilizadas en la
construccin de algoritmos, sin adentrarse en la rgida sintaxis de un lenguaje de
programacin. La idea es que el desarrollador se concentre en el diseo de la
solucin de un problema (o sea el algoritmo), en vez de preocuparse por
cuestiones particulares de los estrictos lenguajes de programacin.
12
Diseo Estructurado de Algoritmos Armando Lpez Cisea
ALGORITMO nombre
INICIO
Instruccin 1
Instruccin 2
instruccin n
FIN
13
Diseo Estructurado de Algoritmos Armando Lpez Cisea
UNIDAD II
ESTRUCTURAS SELECTIVAS
En muchas ocasiones, para resolver un problema por medio de un algoritmo, es
necesario escoger un camino a seguir de entre dos o ms posibilidades. Para
representar esta situacin tenemos las estructuras selectivas.
V
Condicin
Condicin
V F
Proceso
Proceso
SI condicin
ENTONCES proceso
FIN_SI
Pseudo Cdigo
14
Diseo Estructurado de Algoritmos Armando Lpez Cisea
V F
Condicin
Proceso 1 Proceso 2
Diagrama de Flujo
Condicin
V F
Proceso 1 Proceso 1
Diagrama NS
SI condicin
ENTONCES prceso1
SINO proceso 2
FIN_SI
Pseudo Cdigo
15
Diseo Estructurado de Algoritmos Armando Lpez Cisea
Todo lo que se puede realizar con una estructura selectiva mltiple es posible
hacerlo con estructuras selectivas secuenciales y/o anidadas, pero es preferible
utilizar la selectiva mltiple porque establece de manera ms clara y compacta las
distintas opciones disponibles. Su representacin es:
Diagrama de Flujo
expresin
Otros
V1 V2 Vn valores
Expresin
Otros
valores
Diagrama N-S
Otros
Proceso 1 Proceso 2 Proceso n Procesos
UNIDAD III
ESTRUCTURAS REPETITIVAS
En la solucin de problemas por medio de algoritmos, existen muchas situaciones
en las que es necesario repetir una accin o proceso una cantidad definida o
indeterminada de veces.
17
Diseo Estructurado de Algoritmos Armando Lpez Cisea
expresin F
lgica
Diagrama de Flujo
V
Proceso
Expresin lgica
Diagrama N-S
Proceso
FIN_MIENTRAS
18
Diseo Estructurado de Algoritmos Armando Lpez Cisea
Ntese que en esta estructura, el proceso a repetir se ejecuta por lo menos una
vez, y debe tenerse cuidado que la variable o variables que intervienen en la
condicin se modifiquen en alguna iteracin del proceso de tal forma que la
condicin sea verdadera cuando sea necesario salirse de la estructura (es decir,
cuando ya no se requiera otra repeticin). Si no ocurre esto, la estructura entrar,
como ya se vio anteriormente, en un ciclo infinito.
Proceso
Proceso
Expresin lgica
F expresin
lgica
V Diagrama de N-S
Diagrama de Flujo
REPETIR
HASTA_QUE condicin
19
Diseo Estructurado de Algoritmos Armando Lpez Cisea
variable de control =
valor inicial
incremento
o decremento de
la variable de control
Proceso
Diagrama de Flujo
20
Diseo Estructurado de Algoritmos Armando Lpez Cisea
Proceso
incremento o decremento de
la variable de control
Diagrama N-S
DESDE variable de control = valor inicial HASTA variable de control > valor final (DECREMENTANDO) HACER
Proceso
FIN_DESDE
Pseudo Cdigo
21