You are on page 1of 21

Diseo Estructurado de Algoritmos Armando Lpez Cisea

INSTITUTO TECNOLGICO DE LA LAGUNA

Apuntes de

DISEO ESTRUCTURADO DE ALGORITMOS

INDICE

Pgina

Unidad I Conceptos bsicos 2

Unidad II Estructuras Selectivas 14

Unidad III Estructuras Repetitivas 17

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

METODOLOGA DE SOLUCION DE PROBLEMAS

La metodologa utilizada para la solucin de problemas por medio de la


computadora viene dada en la figura de la siguiente pgina.

ENTIDADES PRIMITIVAS

Para poder escribir algoritmos es necesario conocer, adems de un lenguaje


algortmico, una serie de conceptos que permitan expresar la solucin de un
problema. Estos conceptos, llamados tambin entidades primitivas, son los
siguientes:

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

CLASIFICACIN DE LOS TIPOS DE DATOS SIMPLES

Es un subconjunto finito de los


nmeros enteros. Estos nmeros son
Enteros completos, es decir, no tienen
componentes fraccionarios o decimales
y pueden ser positivos o negativos
Numricos Es un subconjunto de los nmeros
reales. Estos nmeros siempre tienen
un punto decimal y pueden ser
Reales
positivos o negativos. Un nmero real
consta de una parte entera y una parte
decimal
Es el conjunto finito y ordenado de
caracteres que la computadora
reconoce. Un dato tipo carcter
Caracteres
contiene un solo carcter, y es
representado entre delimitadores,
Alfanumricos
generalmente apstrofos ( )
Es una sucesin de uno o ms
Cadenas de
caracteres, los cuales se encuentran
Caracteres
delimitados, generalmente por el
(string)
carcter doble comilla ( )
Este tipo de dato slo puede tener uno de dos
Lgicos o booleanos valores: verdadero o falso y se utiliza para establecer
condiciones dentro de los algoritmos.

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:

1- Deben iniciar con una letra.


2- Si se desean separar dos o ms componentes del nombre de la variable debe
utilizarse el carcter guin bajo ( _ ), no el espacio o el guin.
3- No se admiten caracteres de operadores (+ , - , $ , / , * , %), ni otros caracteres
especiales.
4- No se admiten nombres que estn reservados para las instrucciones y
funciones del lenguaje que se est utilizando.
5- El nmero mximo de caracteres del nombre de la variable depender del
lenguaje que se est usando.

4
Diseo Estructurado de Algoritmos Armando Lpez Cisea

Seleccionar el nombre de una variable no es algo que se deba tomar a la ligera,


pues incide de manera directa en la lgica de un algoritmo. Por esta razn se
sugiere ampliamente (puesto que no es obligatorio), que el nombre de la variable
est relacionado con el dato que representa.

TIPOS DE CONSTANTES Y TIPOS DE VARIABLES


Como a final de cuentas lo que se guarda en una constante o una variable es un
dato, la clasificacin de tipos de constantes y tipos de variables es la misma que la
de tipos de datos citada previamente.

EXPRESIONES
Es un conjunto de constantes y/o variables asociados mediante operadores, que
evaluado representa un determinado valor.

En general, la clasificacin de expresiones es la misma que la clasificacin de


tipos de datos, es decir: expresiones numricas, expresiones alfanumricas y
expresiones lgicas.

EXPRESIONES NUMRICAS
Estas expresiones son anlogas a las expresiones algebricas de matemticas.
Las variables y constantes son numricas y las operaciones son aritmticas.

Para representar una expresin algebrica en su versin algortmica, deben


considerarse estos dos aspectos:

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.

b) Todas las operaciones de la expresin han de ser explcitas, es decir, no se


debe omitir la escritura de ningn operador, lo que en lgebra s es permitido.
.
Los operadores bsicos para escribir expresiones numricas estn dadas en esta
tabla:

TABLA DE OPERADORES ARITMTICOS

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

DIV Divisin entera Entero Entero


Mdulo, Resto o
MOD Entero Entero
Residuo

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.

La siguiente tabla resume las funciones internas ms comunes:

TABLA DE FUNCIONES INTERNAS

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

* El argumento x debe estar en radianes ** El resultado es en radianes

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:

a) Las operaciones que estn encerradas entre parntesis se evalan primero. Si


existen diferentes parntesis anidados (interiores unos a otros), las
expresiones ms internas se evalan primero.

6
Diseo Estructurado de Algoritmos Armando Lpez Cisea

b) Las operaciones aritmticas dentro de una expresin tienen el siguiente orden


de prioridad:
1- Operador Potencia ( )
2- Operadores Multiplicacin y divisin ( * , / )
3- Operadores suma y resta ( + , - )
4- Operadores DIV y MOD

c) En caso de coincidir varios operadores de igual prioridad en una expresin o


subexpresin encerrada entre parntesis, el orden de prioridad se establece de
izquierda a derecha.

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.

Una expresin lgica dar como resultado de su evaluacin un valor lgico, es


decir, slo verdadero o falso.

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:

TABLA DE LOS OPERADORES DE RELACIN

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

TABLA DE LOS OPERADORES LGICOS

OPERADOR EN OPERADOR EN OPERACIN DE TABLA DE VERDAD


DESCRIPCIN
ESPAOL INGLS CONJUNTOS (a y b son valores lgicos)

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:

El formato general de una operacin de asignacin es:

variable expresin

8
Diseo Estructurado de Algoritmos Armando Lpez Cisea

lo que significa que el valor de la expresin se asignar a la variable. Debe


cuidarse que el resultado de la expresin sea del mismo tipo de dato que la
variable a la que se asignar dicho resultado.

Ntese como una asignacin NO es lo mismo que una igualdad, pues la siguiente
asignacin:
xx+1

es correcta, e indica que a la variable x se le asigne el valor que resulte de lo que


tena esa misma variable ms una unidad. En cambio, la igualdad algebrica

x=x+1

no tiene sentido. Entonces, la operacin de asignacin se aplica en algoritmos y


programacin, pero no en lgebra.

ENTRADA Y SALIDA DE INFORMACIN


Los clculos que se realizan en los algoritmos requieren, para ser tiles, la entrada
de los datos necesarios para ejecutar las operaciones que posteriormente se
convertirn en resultados, es decir, en la salida

Las operaciones de entrada permiten leer determinados valores y asignarlos a


determinadas variables, por lo que a la operacin de entrada de datos tambin se
le conoce como lectura. La salida permite escribir los resultados, es decir, conocer
los valores de las variables, por lo que a la operacin de salida de datos se le
conoce tambin como escritura.

Al disear un algoritmo para solucionar un problema, es relativamente fcil


identificar los datos de salida, pues casi siempre coinciden con los resultados que
explcitamente nos estn solicitando. En cambio, los datos de entrada no siempre
son fciles de determinar.

En general, deben considerarse estos puntos para definir los datos de entrada:

1) Un dato de entrada es aquel que no podemos calcular dentro del proceso de


un algoritmo, y como tampoco podemos suponerlo o inventarlo, entonces
debemos solicitarlo como una operacin de lectura (entrada de datos).

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

siempre deben ajustarse al contexto del problema, es decir, a las


circunstancias, requisitos y necesidades que marca el enunciado del problema.

EL ALGORITMO BSICO
Cualquier algoritmo, por elemental que sea, contiene la siguiente secuencia de
acciones:

Entrada de Datos Proceso o Clculo Salida de Datos

En tanto no se vean otras estructuras de control, los algoritmos que


desarrollaremos sern bajo este esquema, que obedece a una estructura
secuencial.

Un algoritmo que slo utiliza estructuras secuenciales, no necesariamente


resuelve problemas muy fciles, pues por un lado, los datos de entrada pueden
no ser tan obvios, y por otro, el proceso de clculo quiz requiera de una o varias
expresiones que no siempre sern sencillas de determinar.

Respecto a las expresiones que intervienen en un algoritmo, debe asegurarse que


TODAS las variables que aparecen en ella tengan un valor al momento de que se
ejecuten. Las formas en que dichas variables pueden obtener sus valores son:
por una operacin de asignacin previa o por una operacin de entrada de datos
anterior a la expresin.

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.

La finalidad de un diagrama de flujo es describir de modo grfico la secuencia


lgica de un algoritmo. Para ello utiliza un reducido conjunto de smbolos estndar,
los cuales se unen por medio de lneas de flujo, en el orden necesario para
representar los pasos de solucin de un problema, es decir, el algoritmo. Dentro

10
Diseo Estructurado de Algoritmos Armando Lpez Cisea

de cada smbolo se indica palabras, textos, variables, expresiones o condiciones,


segn sea el paso a aplicar y el smbolo utilizado para ello.

Los smbolos bsicos de un Diagrama de Flujo son los siguientes:

Subprograma,
Inicio / Fin subrutina o
subproceso

Entrada de Datos Lneas de Flujo

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:

a) Todo Diagrama de Flujo debe tener un inicio y un fin.


b) Las lneas de flujo deben ser siempre rectas, horizontales o verticales.
c) Dibujar los smbolos de tal manera que el diagrama de flujo pueda leerse de
arriba abajo y de izquierda a derecha.
d) La entrada a cada smbolo debe ser por arriba o por la izquierda y la salida
debe ser por abajo o por la derecha.
e) Indicar los comentarios que se consideren necesarios, al margen del diagrama.
f) Siempre que sea posible es conveniente que el diagrama no sobrepase una
hoja.

Diagrama de Nassi-Schneiderman (N-S)


Tambin conocidos como Diagramas de Chapin, constan de cajas (rectngulos)
consecutivas, donde cada caja es una estructura bsica. Carece de lneas y
flechas, por lo que la nica manera de leer el diagrama N-S es de arriba hacia
abajo.

Este sistema de representacin permite tener una visin mucho ms estructurada


de los algoritmos que con el diagrama de flujo. Esto hecho no es circunstancial,

11
Diseo Estructurado de Algoritmos Armando Lpez Cisea

pues el diagrama N-S fue diseado especficamente para la programacin


estructurada.

La simbologa bsica del Diagrama N-S es la siguiente:

INICIO / FIN Inicio o Fin del algoritmo

LEER(Lista de variables) Entrada de Datos

ESCRIBIR(Lista constantes y/o variables) Salida de Datos

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.

Las instrucciones bsicas del Pseudocdigo son las siguientes:

INICIO / FIN Inicio o Fin del algoritmo

LEER(Lista de variables) Entrada de Datos

ESCRIBIR(Lista de constantes y/o variables) Salida de Datos

12
Diseo Estructurado de Algoritmos Armando Lpez Cisea

Como el Pseudocdigo tiene influencia tambin de los lenguajes de programacin,


un algoritmo representado en pseudocdigo tiene una apariencia similar al cdigo
de un programa. El siguiente es el formato que normalmente tiene un algoritmo
escrito en Pseudocdigo:

ALGORITMO nombre

CONST lista de constantes


VAR lista de variables

INICIO
Instruccin 1
Instruccin 2


instruccin n
FIN

Tambin, para obtener un algoritmo lo ms legible posible, es muy conveniente


seguir estas reglas prcticas al momento de escribir un algoritmo en
Pseudocdigo:

a) Escribir las palabras reservadas con maysculas y lo dems con minsculas, o


bien, utilizar colores diferentes para distinguir ambas cosas.
b) Indentar las estructuras, es decir, la accin o proceso de cualquier estructura
debe escribirse en un margen ms a la derecha que las palabras reservadas
que inician y terminan dicha estructura. A esto tambin se le conoce como
sangra.

Con la simbologa bsica de cualquiera de las tres herramientas de programacin


vistas, se pueden escribir algoritmos con estructura secuencial. El resto de los
smbolos se vern cuando se traten las estructuras algortmicas correspondientes.

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.

Una estructura selectiva es aquella en la que se presenta una alternativa o


decisin y basndose en ella se ejecutan ciertas acciones o procesos. Es decir, se
ejecuta una determinada secuencia de acciones dependiendo del valor de una
determinada condicin.

Existen tres tipos de estructuras selectivas:

Estructura Selectiva Simple

En esta estructura, se evala una expresin lgica. Si la condicin (resultado de la


expresin lgica) es verdadera, se ejecutan una o ms acciones. Si la condicin
resulta falsa no se ejerce ninguna accin. Su representacin es como sigue:

V
Condicin

Condicin

V F
Proceso

Proceso

Diagrama de Flujo Diagrama NS

SI condicin
ENTONCES proceso
FIN_SI

Pseudo Cdigo

14
Diseo Estructurado de Algoritmos Armando Lpez Cisea

Estructura Selectiva Doble

En esta estructura, tambin se evala una expresin lgica. Si la condicin es


verdadera, se ejecutan una accin o acciones; si es falsa, se ejecutan otras
acciones. Su representacin es la siguiente:

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

Estructura Selectiva Mltiple

A la entrada de esta estructura, se evala una expresin cuyo resultado es un


nmero entero o un carcter (es decir, no debe ser real ni cadena de caracteres).
Dependiendo de este resultado se ejecutan determinada acciones o procesos. Por
cada resultado distinto puede existir un camino a seguir dentro de la estructura,
aunque tambin es posible agrupar en una sola alternativa varios resultados con
los que se vayan a realizar las mismas acciones. Los diferentes valores de la
expresin no tienen que definirse de manera consecutiva en la estructura.

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

Proceso 1 Proceso 2 Proceso n Otro proceso

Expresin

Otros
valores
Diagrama N-S

Otros
Proceso 1 Proceso 2 Proceso n Procesos

SEGN_SEA expresin HACER


ES valor 1: proceso 1
ES valor 2: proceso 2
Pseudo Cdigo
ES valor n: proceso n
NO_ES_NINGUNO otros procesos
FIN_SEGUN
16
Diseo Estructurado de Algoritmos Armando Lpez Cisea

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.

Las estructuras que hacen posible esto se denominan estructuras repetitivas,


tambin conocidas como ciclos, bucles o lazos. Una iteracin se refiere al hecho
de repetir la ejecucin de una secuencia de acciones.

Se consideran tres tipos de estructuras repetitivas:

Estructura Repetitiva MIENTRAS (condicin al inicio)

Al entrar a esta estructura, lo primero que se realiza es la evaluacin de una


condicin (expresin lgica). Si resulta verdadera ejecuta un proceso (accin o
acciones) y al terminar se regresa al inicio, es decir, a evaluar nuevamente la
condicin. Esto se repite mientras la condicin sea verdadera, saliendo de la
estructura cuando la condicin es falsa.

Existen dos situaciones que deben cuidarse en esta estructura:

a) Como la primera accin de la estructura es la evaluacin de la condicin, las


variables de sta expresin lgica deben tener un valor incluso antes de que
inicie la estructura, para que pueda llevarse a efecto la evaluacin inicial. Si de
entrada la condicin se evala falsa, entonces la estructura no repetir ni una
sola vez el proceso indicado en ella. Esto no es necesariamente un error, pues
puede ser un caso vlido para el problema que estemos resolviendo. Sin
embargo, debe asegurarse que no es un error de diseo el hecho de que la
estructura no ejecute ni la primera ocasin las acciones repetitivas.

b) Una vez dentro de la estructura, es necesario que los valores de la variable o


variables que intervienen en la condicin hagan que sta sea falsa cuando ya
no deba repetir el proceso indicado en la estructura. De no ser as, la condicin
siempre sera verdadera y nunca saldra de la estructura, por lo que las
iteraciones se repetiran indefinidamente. En este caso se dice que el algoritmo
se cicl. y es desde luego una situacin indeseable, pues en teora quiere
decir que el algoritmo quedar atrapado en la estructura y nunca va a terminar
de ejecutarse. De hecho, ni siquiera llega a ejecutar la accin que est
enseguida de la estructura mientras. A una estructura repetitiva con estas
caractersticas se le conoce como un ciclo infinito.

17
Diseo Estructurado de Algoritmos Armando Lpez Cisea

La representacin de la estructura repetitiva mientras es como sigue:

expresin F
lgica

Diagrama de Flujo
V

Proceso

Expresin lgica

Diagrama N-S
Proceso

MIENTRAS condicin HACER


Pseudo Cdigo
Proceso

FIN_MIENTRAS

18
Diseo Estructurado de Algoritmos Armando Lpez Cisea

Estructura Repetitiva REPETIR-HASTA (condicin al final)

En esta estructura, lo primero que se ejecuta es el proceso (accin o acciones) y


al final se evala la condicin (expresin lgica). Si sta resulta falsa se ejecuta
nuevamente el proceso, es decir, va a repetir las acciones hasta que la condicin
sea verdadera, en cuyo caso se sale de la estructura.

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

Proceso Pseudo Cdigo

HASTA_QUE condicin

19
Diseo Estructurado de Algoritmos Armando Lpez Cisea

Estructura Repetitiva DESDE-HASTA (incondicional o contada)

Esta estructura se aplica cuando el proceso a repetir se ejecutar un nmero


determinado de veces. En este caso, existe una variable que controla el nmero
de iteraciones de manera automtica. Dicha variable se le llama variable de
control o variable ndice, la cual se incrementa o decrementa dentro de la
estructura. La variable de control, que normalmente es de tipo entero, recibe al
inicio de la estructura un valor inicial y un valor final, ya sea como constantes o
como asignaciones de otras variables o expresiones. El proceso se repetir desde
que la variable de control tome el valor inicial indicado, hasta que dicha variable de
control alcance el valor final asignado. El valor de la variable de control se
incrementa o decrementa de manera automtica dentro de la estructura, desde el
valor inicial hasta el valor final. Si el valor inicial es menor que el valor final,
entonces debe haber un incremento de la variable de control. Por el contrario, si el
valor inicial es mayor que el valor final, entonces la variable de control se debe
decrementar. En todos los casos es necesario poner en la estructura el valor que
se incrementa o decrementa la variable de control, excepto cuando la variable se
incrementa de 1 en 1 (lo cual sucede con mucha frecuencia) , en cuyo caso no se
acostumbra hacer explcito el incremento. Un decremento se escribe con un
nmero negativo.

La representacin de la estructura repetitiva DESDE-HASTA es como sigue:

variable de control =
valor inicial

variable de control > valor final

incremento
o decremento de
la variable de control

Proceso

Diagrama de Flujo

20
Diseo Estructurado de Algoritmos Armando Lpez Cisea

DESDE variable de control = valor inicial


HASTA variable de control > valor final

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

You might also like