Está en la página 1de 22

Fundamentos de diseño de algoritmos Armando López Ciseña

INSTITUTO TECNOLÓGICO DE LA LAGUNA


DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN

Apuntes de

FUNDAMENTOS DE DISEÑO DE ALGORITMOS

INDICE

Página

Unidad I Conceptos básicos 2

Unidad II Estructuras Selectivas 15

Unidad III Estructuras Repetitivas 18

Agosto 2017

1
Fundamentos de diseño de algoritmos Armando López Ciseña

UNIDAD I

CONCEPTOS BÁSICOS

METODOLOGÍA DE SOLUCION DE PROBLEMAS

De manera muy general y simplificada, la metodología utilizada para la solución de


problemas por medio de la computadora viene dada en la siguiente figura.

Estos apuntes están más enfocados a la parte del diseño de algoritmos, por lo que
los conceptos abordados en el resto del documento se refieren a este aspecto. El
análisis de problemas se tratará en las sesiones de clase, y posteriormente se
trasladará la resolución del problema a la computadora mediante un lenguaje de
programación.

2
Fundamentos de diseño de algoritmos Armando López Ciseña

ALGORITMO
Es una secuencia ordenada de pasos, exenta de ambigüedades, que lleva a la
solución de un problema determinado. Estos pasos deben ser simples y seguir un
orden cuidadosamente prescrito; además deben ser efectivos, para resolver
siempre el problema en un número finito de pasos.

LENGUAJE ALGORITMICO
Es un lenguaje especial para expresar la solución de un problema en base a un
algoritmo. El lenguaje algorítmico está situado entre el lenguaje humano y el
lenguaje de programación. Con esto se pretende eliminar la imprecisión del
primero y la estricta sintaxis y variedad de instrucciones del segundo. De esta
manera el diseñador se concentre en el algoritmo, es decir, en la solución del
problema.

A los lenguajes algorítmicos también se les conoce como herramienta para diseño
de algoritmos o herramientas de programación, y se pueden clasificar como sigue:

Diagramas de Flujo
Lenguajes Gráficas Diagramas de Flujo Estructurado
Diagramas de Nassi-Schnneiderman (N-S)
Algorítmicos
Texto Lenguaje narrativo
Pseudocódigo

ENTIDADES PRIMITIVAS

Para poder diseñar algoritmos es necesario conocer, además de un lenguaje


algorítmico, una serie de conceptos que permitan expresar la solución de un
problema. Estos conceptos, llamados también entidades primitivas, son los
siguientes:

DATO
Es un valor concreto sobre algún hecho o elemento, el cual es representado con
un símbolo. En algoritmos, los datos permiten la entrada, proceso y salida de
información acerca de un problema. Existen ciertos tipos de datos simples o
básicos, los cuales se observan en la tabla mostrada a continuación:

3
Fundamentos de diseño de algoritmos Armando López Ciseña

CLASIFICACIÓN DE LOS TIPOS DE DATOS SIMPLES

Es un subconjunto finito de los


números enteros. Estos números son
Enteros completos, es decir, no tienen
componentes fraccionarios o decimales
y pueden ser positivos o negativos
Numéricos Es un subconjunto de los números
reales. Estos números siempre tienen
un punto decimal y pueden ser
Reales
positivos o negativos. Un número 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 carácter
Caracteres
contiene un solo carácter, y es
representado entre delimitadores,
Alfanuméricos
generalmente apóstrofos ( ‘ )
Es una sucesión de uno o más
Cadenas de
caracteres, los cuales se encuentran
Caracteres
delimitados, generalmente por el
(string)
carácter doble comilla ( “ )
Este tipo de dato sólo puede tener uno de dos
Lógicos 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 permite almacenar un dato, el cual puede cambiar de valor en el
transcurso de un algoritmo. En un lenguaje de programación, una variable
representa la dirección de memoria en la que físicamente se almacena el dato, por
lo que el nombre que se da a la variable está asociado a dicha dirección de
memoria.

Deben respetarse estas reglas generales para asignarles nombres a las variables:

1- Deben iniciar con una letra.


2- Si se desean separar dos o más componentes del nombre de la variable debe
utilizarse el carácter guión bajo ( _ ), no el espacio o el guión.
3- No se admiten caracteres de operadores (+ , - , $ , / , * , %), ni otros caracteres
especiales.
4- No se admiten nombres que estén reservados para las instrucciones y
funciones del lenguaje que se esté utilizando.

4
Fundamentos de diseño de algoritmos Armando López Ciseña

5- El número máximo de caracteres del nombre de la variable dependerá del


lenguaje que se esté usando.

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


pues incide de manera directa en la lógica de un algoritmo. Por esta razón 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 clasificación 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 clasificación de expresiones es la misma que la clasificación de


tipos de datos, es decir: expresiones numéricas, expresiones alfanuméricas y
expresiones lógicas.

EXPRESIONES NUMÉRICAS
Estas expresiones son análogas a las expresiones algebráicas de matemáticas.
Las variables y constantes son numéricas y las operaciones son aritméticas.

Para representar una expresión algebráica en su versión algorítmica, deben


considerarse estos dos aspectos:

a) Toda la expresión debe ser escrita en una sola línea de instrucción del
algoritmo, por lo que puede ser necesario el uso de más paréntesis para lograr
el agrupamiento correcto.

b) Todas las operaciones de la expresión han de ser explícitas, es decir, no se


debe omitir la escritura de ningún operador, lo que en álgebra sí es permitido.
.

Los operadores básicos para escribir expresiones numéricas están dadas en esta
tabla:

5
Fundamentos de diseño de algoritmos Armando López Ciseña

TABLA DE OPERADORES ARITMËTICOS

TIPOS DE TIPO DE
OPERADOR SIGNIFICADO
OPERANDOS RESULTADO
 , ^ , ** , $ Potencia Entero o Real Entero o Real
* Multiplicación Entero o Real Entero o Real
/ División Real Real
+ Suma Entero o Real Entero o Real
- Resta Entero o Real Entero o Real
DIV División entera Entero Entero
Módulo, Resto o
MOD Entero Entero
Residuo

FUNCIONES INTERNAS
En muchas ocasiones, además de las operaciones aritméticas básicas de la tabla
anterior, las expresiones que se requieren en los algoritmos necesitan de algunos
operadores especiales que se conocen como funciones internas o estándar, pues
normalmente vienen incorporadas en el lenguaje (algortímico o de programación)
que se esté utilizando.

La siguiente tabla resume las funciones internas más comunes:

TABLA DE FUNCIONES INTERNAS

TIPO DE TIPO DE
FUNCIÓN 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
Raíz Cuadrada de
RAIZCUA(x) Entero o Real Entero o Real
x

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

6
Fundamentos de diseño de algoritmos Armando López Ciseña

REGLAS DE PRIORIDAD
Las expresiones que tienen dos o más 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 están encerradas entre paréntesis se evalúan primero. Si


existen diferentes paréntesis anidados (interiores unos a otros), las
expresiones más internas se evalúan primero.

b) Las operaciones aritméticas dentro de una expresión tienen el siguiente orden


de prioridad:
1- Operador Potencia (  )
2- Operadores Multiplicación y división ( * , / )
3- Operadores suma y resta ( + , - )
4- Operadores DIV y MOD

c) En caso de coincidir varios operadores de igual prioridad en una expresión o


subexpresión encerrada entre paréntesis, el orden de prioridad se establece de
izquierda a derecha.

EXPRESIONES LÓGICAS
También llamadas booleanas en honor al matemático británico George Boole, son
las que combinan constantes lógicas, variables lógicas y otras expresiones lógicas
utilizando los operadores de relación y los operadores lógicos.

Una expresión lógica dará como resultado de su evaluación un valor lógico, es


decir, sólo verdadero o falso.

OPERADORES DE RELACIÖN
Estos operadores permiten realizar comparaciones de valores de tipo numérico o
alfanumérico. Dicha comparación derivará en un valor falso o verdadero.
Los operadores de relación nos permiten expresar condiciones simples en los
algoritmos. Dichos operadores están agrupados en la siguiente tabla:

7
Fundamentos de diseño de algoritmos Armando López Ciseña

TABLA DE LOS OPERADORES DE RELACIÓN

OPERADOR SIGNIFICADO
< Menor que
> Mayor que
= Igual que
<= Menor o igual que
>= Mayor o igual que
<> Diferente de

OPERADORES LÓGICOS
Cuando no es suficiente una sola comparación para indicar una condición dentro
de un algoritmo, se utilizan los operadores lógicos, los cuales permiten combinar
dos o más comparaciones en una sola expresión lógica.

Aunque existen más, los siguientes son los tres operadores lógicos básicos:

TABLA DE LOS OPERADORES LÓGICOS

OPERADOR EN OPERADOR EN OPERACIÓN DE TABLA DE VERDAD


DESCRIPCIÓN
ESPAÑOL INGLËS CONJUNTOS (a y b son valores lógicos)

a b aOb
V V V
Disyunción O OR Unión V F V
F V V
F F F

a b aYb
V V V
Conjunción Y AND Intersección V F F
F V F
F F F

a NO a
Negación NO NOT Complemento V F
F V

8
Fundamentos de diseño de algoritmos Armando López Ciseña

Del mismo modo que en una expresión numérica, cuando existen dos o más
operadores lógicos en una expresión lógica, es necesario establecer la prioridad
de dichas operaciones. La precedencia se da en este orden:

1- () Paréntesis
2- NO Negación
3- Y Conjunción
4- O Disyunción

LA OPERACIÓN DE ASIGNACIÓN
La operación de asignación es el modo de darle valores a una variable dentro de
un algoritmo. Esta operación se representa con el siguiente símbolo:

El formato general de una operación de asignación es:

variable  expresión

lo que significa que el valor de la expresión se asignará a la variable. Debe


cuidarse que el resultado de la expresión sea del mismo tipo de dato que la
variable a la que se asignará dicho resultado.

Nótese como una asignación NO es lo mismo que una igualdad, pues la siguiente
asignación:
xx+1

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


tenía esa misma variable más una unidad. En cambio, la igualdad algebráica

x=x+1

no tiene sentido. Entonces, la operación de asignación se aplica en algoritmos y


programación, pero no en álgebra.

ENTRADA Y SALIDA DE INFORMACIÓN


Los cálculos que se realizan en los algoritmos requieren, para ser útiles, la entrada
de los datos necesarios para ejecutar las operaciones que posteriormente se
convertirán en resultados, es decir, en la salida

9
Fundamentos de diseño de algoritmos Armando López Ciseña

Las operaciones de entrada permiten leer determinados valores y asignarlos a


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

Al diseñar un algoritmo para solucionar un problema, es relativamente fácil


identificar los datos de salida, pues casi siempre coinciden con los resultados que
explícitamente nos están solicitando. En cambio, los datos de entrada no siempre
son fáciles 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 operación de lectura (entrada de datos).

2) No debe existir ningún dato de entrada que pueda calcularse o inferirse a partir
de otro u otros datos de entrada, pues generará inconsistencia en la
información que procesa el algoritmo.

3) Los datos de entrada no son los que nos parezcan más cómodos o los que
nosotros quisiéramos pedir para resolver un problema. Aunque en contadas
ocasiones sí podríamos definirlos con ese criterio, los datos de entrada
siempre deben ajustarse al contexto del problema, es decir, a las
circunstancias, requisitos y necesidades que marca el enunciado del problema.

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

Entrada de Datos Proceso o Cálculo Salida de Datos

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


desarrollaremos serán bajo este esquema, que obedece a una estructura
secuencial.

Un algoritmo que sólo utiliza estructuras secuenciales, no necesariamente


resuelve problemas “muy fáciles”, pues por un lado, los datos de entrada pueden
no ser tan obvios, y por otro, el proceso de cálculo quizá requiera de una o varias
expresiones que no siempre serán sencillas de determinar.

10
Fundamentos de diseño de algoritmos Armando López Ciseña

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 operación de asignación previa o por una operación de entrada de datos
anterior a la expresión.

REPRESENTACIÓN DE ALGORITMOS
Como se vio anteriormente, existen herramientas para representar algoritmos, que
son los denominados lenguajes algorítmicos. A continuación se definen los tres
que utilizaremos.

Diagrama de Flujo
Esta herramienta de programación es una de las técnicas de representación de
algoritmos más antigua y todavía utilizada. Con la aparición de los lenguajes de
programación estructurados se vio disminuida su aplicación porque los diagramas
de flujo originalmente no estuvieron diseñados para programación estructurada.
Sin embargo, para aprovechar sus innegables ventajas, se le hicieron
adecuaciones para poder representar las estructuras de control de la
programación 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 gráfico la secuencia


lógica de un algoritmo. Para ello utiliza un reducido conjunto de símbolos estándar,
los cuales se unen por medio de líneas de flujo, en el orden necesario para
representar los pasos de solución de un problema, es decir, el algoritmo. Dentro
de cada símbolo se indica palabras, textos, variables, expresiones o condiciones,
según sea el paso a aplicar y el símbolo utilizado para ello.

Los símbolos básicos de un Diagrama de Flujo son los siguientes:

Subprograma,
Inicio / Fin subrutina o
subproceso

Entrada de Datos Líneas de Flujo

Acción, proceso o
Conector
cálculo

Conector en página
Salida de Datos
diferente

11
Fundamentos de diseño de algoritmos Armando López Ciseña

Existen algunas reglas prácticas que son altamente recomendables para construir
diagramas de flujo lo más estructurado posible:

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


b) Las líneas de flujo deben ser siempre rectas, horizontales o verticales.
c) Dibujar los símbolos de tal manera que el diagrama de flujo pueda leerse de
arriba abajo y de izquierda a derecha.
d) La entrada a cada símbolo 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)


También conocidos como Diagramas de Chapin, constan de cajas (rectángulos)
consecutivas, donde cada caja es una estructura básica. Carece de líneas y
flechas, por lo que la única manera de leer el diagrama N-S es de arriba hacia
abajo.

Este sistema de representación permite tener una visión mucho más estructurada
de los algoritmos que con el diagrama de flujo. Esto hecho no es circunstancial,
pues el diagrama N-S fue diseñado específicamente para la programación
estructurada.

La simbología básica 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 cálculo

12
Fundamentos de diseño de algoritmos Armando López Ciseña

Pseudocódigo
El objetivo del pseudocódigo es obtener un algoritmo muy similar al código que se
obtiene con un lenguaje de programación, de tal manera que se realiza casi
directamente la etapa de codificación. Sin embargo, utiliza sólo unas cuantas
palabras reservadas del lenguaje humano (español por ejemplo) para representar
las acciones comunes y las estructuras de control básicas utilizadas en la
construcción de algoritmos, sin adentrarse en la rígida sintaxis de un lenguaje de
programación. La idea es que el desarrollador se concentre en el diseño de la
solución de un problema (o sea el algoritmo), en vez de preocuparse por
cuestiones particulares de los estrictos lenguajes de programación.

Las instrucciones básicas del Pseudocódigo 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

Como el Pseudocódigo tiene influencia también de los lenguajes de programación,


un algoritmo representado en pseudocódigo tiene una apariencia similar al código
de un programa. El siguiente es el formato que normalmente tiene un algoritmo
escrito en Pseudocódigo:

ALGORITMO nombre

CONST lista de constantes


VAR lista de variables

INICIO
Instrucción 1
Instrucción 2


instrucción n
FIN

13
Fundamentos de diseño de algoritmos Armando López Ciseña

También, para obtener un algoritmo lo más legible posible, es muy conveniente


seguir estas reglas prácticas al momento de escribir un algoritmo en
Pseudocódigo:

a) Escribir las palabras reservadas con mayúsculas y lo demás con minúsculas, o


bien, utilizar colores diferentes para distinguir ambas cosas.

b) Indentar las estructuras, es decir, la acción o proceso de cualquier estructura


debe escribirse en un margen más a la derecha que las palabras reservadas
que inician y terminan dicha estructura. A esto también se le conoce como
sangría.

Con la simbología básica de cualquiera de las tres herramientas de programación


vistas, se pueden escribir algoritmos con estructura secuencial. El resto de los
símbolos se verán cuando se traten las estructuras algorítmicas correspondientes.

14
Fundamentos de diseño de algoritmos Armando López Ciseña

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 más posibilidades. Para
representar esta situación tenemos las estructuras selectivas.

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


decisión y basándose en ella se ejecutan ciertas acciones o procesos. Es decir, se
ejecuta una determinada secuencia de acciones dependiendo del valor de una
determinada condición.

Existen tres tipos de estructuras selectivas:

Estructura Selectiva Simple

En esta estructura, se evalúa una expresión lógica. Si la condición (resultado de la


expresión lógica) es verdadera, se ejecutan una o más acciones. Si la condición
resulta falsa no se ejerce ninguna acción. Su representación es como sigue:

V
Condición

Condición

V F
Proceso

Proceso

Diagrama de Flujo Diagrama NS

SI condición
ENTONCES proceso
FIN_SI

Pseudo Código

15
Fundamentos de diseño de algoritmos Armando López Ciseña

Estructura Selectiva Doble

En esta estructura, también se evalúa una expresión lógica. Si la condición es


verdadera, se ejecutan una acción o acciones; si es falsa, se ejecutan otras
acciones. Su representación es la siguiente:

V F
Condición

Proceso 1 Proceso 2

Diagrama de Flujo

Condición

V F

Proceso 1 Proceso 1

Diagrama NS

SI condición
ENTONCES prceso1
SINO proceso 2
FIN_SI

Pseudo Código
16
Fundamentos de diseño de algoritmos Armando López Ciseña

Estructura Selectiva Múltiple

A la entrada de esta estructura, se evalúa una expresión cuyo resultado es un


número entero o un carácter (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 también es posible agrupar en una sola alternativa varios resultados con
los que se vayan a realizar las mismas acciones. Los diferentes valores de la
expresión no tienen que definirse de manera consecutiva en la estructura.

Todo lo que se puede realizar con una estructura selectiva múltiple es posible
hacerlo con estructuras selectivas secuenciales y/o anidadas, pero es preferible
utilizar la selectiva múltiple porque establece de manera más clara y compacta las
distintas opciones disponibles. Su representación es:

Diagrama de Flujo

expresión

Otros
V1 V2 Vn valores

Proceso 1 Proceso 2 Proceso n Otro proceso

Expresión

Otros
valores
Diagrama N-S

Otros
Proceso 1 Proceso 2 …… Proceso n Procesos

SEGÚN_SEA expresión HACER


ES valor 1: proceso 1
ES valor 2: proceso 2
… Pseudo Código
ES valor n: proceso n
NO_ES_NINGUNO otros procesos
FIN_SEGUN
17
Fundamentos de diseño de algoritmos Armando López Ciseña

UNIDAD III

ESTRUCTURAS REPETITIVAS
En la solución de problemas por medio de algoritmos, existen muchas situaciones
en las que es necesario repetir una acción o proceso una cantidad definida o
indeterminada de veces.

Las estructuras que hacen posible esto se denominan estructuras repetitivas,


también conocidas como ciclos, bucles o lazos. Una iteración se refiere al hecho
de repetir la ejecución de una secuencia de acciones.

Se consideran tres tipos de estructuras repetitivas:

Estructura Repetitiva MIENTRAS (condición al inicio)

Al entrar a esta estructura, lo primero que se realiza es la evaluación de una


condición (expresión lógica). Si resulta verdadera ejecuta un proceso (acción o
acciones) y al terminar se regresa al inicio, es decir, a evaluar nuevamente la
condición. Esto se repite mientras la condición sea verdadera, saliendo de la
estructura cuando la condición es falsa.

Existen dos situaciones que deben cuidarse en esta estructura:

a) Como la primera acción de la estructura es la evaluación de la condición, las


variables de ésta expresión lógica deben tener un valor incluso antes de que
inicie la estructura, para que pueda llevarse a efecto la evaluación inicial. Si de
entrada la condición se evalúa 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 válido para el problema que estemos resolviendo. Sin
embargo, debe asegurarse que no es un error de diseño el hecho de que la
estructura no ejecute ni la primera ocasión las acciones repetitivas.

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


variables que intervienen en la condición hagan que ésta sea falsa cuando ya
no deba repetir el proceso indicado en la estructura. De no ser así, la condición
siempre sería verdadera y nunca saldría de la estructura, por lo que las
iteraciones se repetirían indefinidamente. En este caso se dice que el algoritmo
se “cicló”. y es desde luego una situación indeseable, pues en teoría 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 acción que está
enseguida de la estructura mientras. A una estructura repetitiva con estas
características se le conoce como un ciclo infinito.

18
Fundamentos de diseño de algoritmos Armando López Ciseña

La representación de la estructura repetitiva mientras es como sigue:

expresión F
lógica

Diagrama de Flujo
V

Proceso

Expresión lógica

Diagrama N-S
Proceso

MIENTRAS condición HACER


Pseudo Código
Proceso

FIN_MIENTRAS

19
Fundamentos de diseño de algoritmos Armando López Ciseña

Estructura Repetitiva REPETIR-HASTA (condición al final)

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


al final se evalúa la condición (expresión lógica). Si ésta resulta falsa se ejecuta
nuevamente el proceso, es decir, va a repetir las acciones hasta que la condición
sea verdadera, en cuyo caso se sale de la estructura.

Nótese 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
condición se modifiquen en alguna iteración del proceso de tal forma que la
condición sea verdadera cuando sea necesario salirse de la estructura (es decir,
cuando ya no se requiera otra repetición). Si no ocurre esto, la estructura entrará,
como ya se vio anteriormente, en un ciclo infinito.

Proceso

Proceso

Expresión lógica

F expresión
lógica

V Diagrama de N-S

Diagrama de Flujo

REPETIR

Proceso Pseudo Código

HASTA_QUE condición

20
Fundamentos de diseño de algoritmos Armando López Ciseña

Estructura Repetitiva DESDE-HASTA (incondicional o contada)

Esta estructura se aplica cuando el proceso a repetir se ejecutará un número


determinado de veces. En este caso, existe una variable que controla el número
de iteraciones de manera automática. 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 automática 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 explícito el incremento. Un decremento se escribe con un
número negativo.

La representación 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

21
Fundamentos de diseño de algoritmos Armando López Ciseña

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 Código

22

También podría gustarte