You are on page 1of 23

CAPÍTULO 2 ALGORITMOS

Algoritmos
Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con
base en un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la
solución o indicar la falta de ésta a un problema en un tiempo determinado
Los algoritmos son la base de todo proceso metódico, formal o informal, y se encuentran por todas
partes con múltiples nombres: proceso, método, técnica, procedimiento, fórmula, rutina. Un
diccionario común lo describirá como un conjunto de símbolos y procedimientos usados en la
realización de un cálculo.
An algorithm is said to be correct if, for every input instance, it halts with the correct output.
We say that a correct algorithm solves the given computational problem. An incorrect algorithm
might not halt at all on some input instances, or it might halt with an answer other than the desired
one. Contrary to what one might expect, incorrect algorithms can sometimes be useful, if their error
rate can be controlled

What kinds of problems are solved by algorithms?


The Human Genome Project has the goals of identifying all the 100,000 genes in human DNA,
determining the sequences of the 3 billion chemical base pairs that make up human DNA, storing
this information in databases, and developing tools for data analysis. Each of these steps requires
sophisticated algorithms.
The Internet enables people all around the world to quickly access and retrieve large amounts of
information. In order to do so, clever algorithms are employed to manage and manipulate this large
volume of data.
Electronic commerce enables goods and services to be negotiated and exchanged electronically.
The ability to keep information such as credit card numbers, passwords, and bank statements private
is essential if electronic commerce is to be used widely In manufacturing and other commercial
settings, it is often important to allocate scarce resources in the most beneficial way.

Data structures
A data structure is a way to store and organize data in order to facilitate access and modifications.
No single data structure works well for all purposes, and so it is important to know the strengths and
limitations of several of them.

Algorithms as a technology
Suppose computers were infinitely fast and computer memory was free. Would you have any
reason to study algorithms? The answer is yes, if for no other reason than that you would still like to
demonstrate that your solution method terminates and does so with the correct answer.
Of course, computers may be fast, but they are not infinitely fast. And memory may be cheap, but it
is not free. Computing time is therefore a bounded resource, and so is space in memory.
CAPÍTULO 2 ALGORITMOS

 
These resources should be used wisely, and algorithms that are efficient in terms of time or space
will help you do so

Efficiency
Algorithms devised to solve the same problem often differ dramatically in their efficiency.
Algorithms and other technologies
You might wonder whether algorithms are truly that important on contemporary computers in light
of other advanced technologies, such as
• Hardware with high clock rates, pipelining, and superscalar architectures,
• Easy-to-use, intuitive graphical user interfaces (GUIs),
• Object-oriented systems, and
• Local-area and wide-area networking.
The answer is yes. Although there are some applications that do not explicitly require
Algorithmic content at the application level (e.g., some simple web-based applications), most also
require a degree of algorithmic content on their own. For example, consider a web-based service
that determines how to travel from one location to another.

Características de un algoritmo
Ser definido.- Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin
criterios de interpretación.
Ser finito.- Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá
finalizar al completarlos.
Tener cero o más entradas.- Datos son proporcionados a un algoritmo como insumo (o estos son
generados de alguna forma) para llevar a cabo las operaciones que comprende.
Tener una o más salidas.- Debe siempre devolver un resultado; de nada sirve un algoritmo que
hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como
únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras.
Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de
resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es
posible apreciar los efectos de las acciones del algoritmo.
Efectividad.- El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni
nada menos que aquello que se requiera para y en su ejecución.

 
CAPÍTULO 2 ALGORITMOS

 
Pasos para desarrollo de algoritmos
1. Declaración del problema.
2. Desarrollo de un modelo.
3. Diseño del procedimiento de solución.
4. Validación.
5. Implementación.
6. Análisis y complejidad.
7. Pruebas.
8. Documentación.

Alternativamente
1. COMPRENDER EL PROBLEMA.
Leer el problema varias veces
Establecer los datos del problema
Aclarar lo que se va a resolver (¿Cuál es la pregunta?)
Precisar el resultado que se desea lograr
Determinar la incógnita del problema
Organizar la información
Agrupar los datos en categorías
Trazar una figura o diagrama.
2. HACER EL PLAN.
Escoger y decidir las operaciones a efectuar.
Eliminar los datos inútiles.
Descomponer el problema en otros más pequeños.
3. EJECUTAR EL PLAN (Resolver).
Ejecutar en detalle cada operación.
Simplificar antes de calcular.
Realizar un dibujo o diagrama
4. ANALIZAR LA SOLUCIÓN (Revisar).
Dar una respuesta completa
Hallar el mismo resultado de otra manera.
Verificar por apreciación que la respuesta es adecuada
CAPÍTULO 2 ALGORITMOS

 
EJEMPLO
Un procedimiento que realizamos varias veces al día consiste en lavarnos los dientes. Veamos la
forma de expresar este procedimiento como un Algoritmo:
1. Tomar la crema dental
2. Destapar la crema dental
3. Tomar el cepillo de dientes
4. Aplicar crema dental al cepillo
5. Tapar la crema dental
6. Abrir la llave del lavamanos
7. Remojar el cepillo con la crema dental
8. Cerrar la llave del lavamanos
9. Frotar los dientes con el cepillo
10. Abrir la llave del lavamanos
11. Enjuagarse la boca
12. Enjuagar el cepillo
13. Cerrar la llave del lavamanos
14. Secarse la cara y las manos con una toalla
Three Categories of Algorithmic Operations:
1. sequential operations - instructions are executed in order
2. conditional ("question asking") operations - a control structure that asks a true/false
question and then selects the next instruction based on the answer
3. iterative operations (loops) - a control structure that repeats the execution of a block of
instructions
Validación de un algoritmo
Una vez formulado el algoritmo es necesario llevar a cabo su verificación. No existe un
procedimiento para llevar a cabo dicha verificación, esto es, no existe un algoritmo capaz de indicar
si el algoritmo es correcto o no, de la misma forma que no hay un algoritmo para la elaboración de
algoritmos.
La determinación de la validez de un programa se logra con una elaboración metódica, que es la que
se ofrece con el seguimiento de estos ocho pasos.
La validación de un algoritmo, esencialmente, se realiza a través de lo que se conoce como prueba
de escritorio; en esta prueba, paso a paso, el verificador observa las acciones del algoritmo, los
valores de cada variable, cada cambio en estos valores y el flujo de las acciones a lo largo de todo el
conjunto.
CAPÍTULO 2 ALGORITMOS

 
En términos generales, un Algoritmo debe ser:
Realizable: El proceso algorítmico debe terminar después de una cantidad finita de pasos. Se dice
que un algoritmo es inaplicable cuando se ejecuta con un conjunto de datos iniciales y el proceso
resulta infinito o durante la ejecución se encuentra con un obstáculo insuperable sin arrojar un
resultado.
Comprensible: Debe ser claro lo que hace, de forma que quien ejecute los pasos (ser humano o
máquina) sepa qué, cómo y cuándo hacerlo. Debe existir un procedimiento que determine el
proceso de ejecución.
Preciso: El orden de ejecución de las instrucciones debe estar perfectamente indicado. Cuando se
ejecuta varias veces, con los mismos datos iniciales, el resultado debe ser el mismo siempre. La
precisión implica determinismo.

 
CAPÍTULO 2 ALGORITMOS

Representación de un algoritmo
Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo, el cual muestra
gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Su correcta
construcción es sumamente importante porque, a partir del mismo se escribe un programa en algún
Lenguaje de Programación. Si el Diagrama de Flujo está completo y correcto, el paso del mismo a
un Lenguaje de Programación es relativamente simple y directo.
Es importante resaltar que el Diagrama de Flujo muestra el sistema como una red de procesos
funcionales conectados entre sí por "Tuberías" y "Depósitos" de datos que permite describir el
movimiento de los datos a través del Sistema. Este describirá: Lugares de Origen y Destino de los
datos, Transformaciones a las que son sometidos los datos, Lugares en los que se almacenan los
datos dentro del sistema, Los canales por donde circulan los datos. Además de esto podemos decir
que este es una representación particular de un Sistema, el cual lo contempla en términos de sus
componentes indicando el enlace entre los mismos.
Se basan en la utilización de diversos símbolos para representar operaciones específicas, es decir, es
la representación grafica de las distintas operaciones que se tienen que realizar para resolver un
problema, con indicación expresa el orden lógico en que deben realizarse.
Los símbolos se someten a una normalización; es decir, se hicieron símbolos casi universales, ya
que, en un principio cada usuario podría tener sus propios símbolos para representar sus procesos en
forma de Diagrama de flujo. Esto trajo como consecuencia que sólo aquel que conocía sus
símbolos, los podía interpretar.
Se utiliza principalmente en programación, economía y procesos industriales.
IMPORTANCIA DE LOS DIAGRAMAS DE FLUJO
Los diagramas de flujo son importantes porque nos facilita la manera de representar visualmente el
flujo de datos por medio de un sistema de tratamiento de información, en este realizamos un
análisis de los procesos o procedimientos que requerimos para realizar un programa o un objetivo.

SÍMBOLOS UTILIZADOS EN LOS DIAGRAMAS DE FLUJO

Nombre Símbolo Función

Representa el inicio y fin de un programa.


También puede representar una parada o
Terminal
interrupción programada que sea
necesaria realizar en un programa.

Cualquier tipo de introducción de datos


Entrada / salida en la memoria desde los periféricos o
registro de información procesada en un
CAPÍTULO 2 ALGORITMOS

periférico.

Cualquier tipo de operación que pueda


originar cambio de valor, formato o
posición de la información almacenada
Proceso en memoria, operaciones aritméticas, de
transformaciones, etc.

Indica operaciones lógicas o de


comparación entre datos (normalmente
dos) y en función del resultado de la
Decisión misma determina (normalmente si y no)
cual de los distintos caminos alternativos
del programa se debe seguir

Sirve para enlazar dos partes


cualesquiera de un diagrama a través de
Conector Misma
un conector en la salida y otro conector
Página
en la entrada. Se refiere a la conexión en
la misma página del diagrama

Indicador de
Indica el sentido de la ejecución de las
dirección o línea
operaciones
de flujo

Se utiliza en ocasiones en lugar del


símbolo de salida. El dibujo representa
Salida
un pedazo de hoja. Es usado para
mostrar datos o resultados.

Características
 Sintética: La representación que se haga de un sistema o un proceso deberá quedar
resumido en pocas hojas, de preferencia en una sola. Los diagramas extensivos dificultan su
comprensión y asimilación, por tanto dejan de ser prácticos.
 Simbolizada: La aplicación de la simbología adecuada a los diagramas de sistemas y
procedimientos evita a los analistas anotaciones excesivas, repetitivas y confusas en su
interpretación.
CAPÍTULO 2 ALGORITMOS

 
 De forma visible a un sistema o un proceso: Los diagramas nos permiten observar todos
los pasos de un sistema o proceso sin necesidad de leer notas extensas. Un diagrama es
comparable, en cierta forma, con una fotografía aérea que contiene los rasgos principales de
una región, y que a su vez permite observar estos rasgos o detalles principales.
 Permitir al analista asegurarse que ha desarrollado todos los aspectos del procedimiento.
 Dar las bases para escribir un informe claro y lógico.
 Es un medio para establecer un enlace con el personal que eventualmente operará el nuevo
procedimiento.

Como se construye
 Debe de indicar claramente dónde inicia y dónde termina el diagrama.
 Cualquier camino del diagrama debe de llevarte siempre a la terminal de fin.
 Organizar los símbolos de tal forma que siga visualmente el flujo de arriba hacia abajo y de
izquierda a derecha.
 No usar lenguaje de programación dentro de los símbolos.
 Centrar el diagrama en la página.
 Las líneas deben ser verticales u horizontales, nunca diagonales.

 No cruzar las líneas de flujo empleando los conectores adecuados sin hacer uso excesivo de
ellos.
CAPÍTULO 2 ALGORITMOS

 No fraccionar el diagrama con el uso excesivo de conectores.


 Solo debe llegar una sola línea de flujo a un símbolo. Pero pueden llegar muchas líneas de
flujo a otras líneas.

 Las líneas de flujo deben de entrar a un símbolo pro la parte superior y/o izquierda y salir
de él por la parte inferior y/o derecha.
 Evitar que el diagrama sobrepase una página; de no ser posible, enumerar y emplear los
conectores correspondientes.
 Usar lógica positiva, es decir, realizar procesos cuando es verdadera la condición y expresar
las condiciones de manera clara (por ej., "no es a =/= de b" ==> "a=b").
 Comentar al margen únicamente cuando sea necesario.
CAPÍTULO 2 ALGORITMOS

 
PROBLEMAS RESUELTOS CON DIAGRAMAS DE FLUJO
Determinar si 2 números son iguales o diferentes, si son diferentes determinar cual de los 2 es el
mayor.
CAPÍTULO 2 ALGORITMOS

 
Cambiar un neumático desinflado de un Automóvil.

   
CAPÍTULO 2 ALGORITMOS

 
Pseudocódigo
Mezcla de lenguaje de programación y español (o inglés o cualquier otro idioma) que se emplea,
dentro de la programación estructurada, para realizar el diseño de un programa. En esencia, el
Pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la
representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema
determinado. El Pseudocódigo utiliza palabras que indican el proceso a realizar.
It allows the designer to focus on the logic of the algorithm without being distracted by details of
language syntax. At the same time, the pseudocode needs to be complete. It describe the entire
logic of the algorithm so that implementation becomes a rote mechanical task of translating line by
line into source code
El pseudocódigo no es programable sino facilita la programación.

Objetivo
El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma
más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizara
para la codificación del mismo
Características y partes
Las principales características de este lenguaje son:
1. Se puede ejecutar en una computadora traduciéndolo a un lenguaje de alto nivel
2. Es una forma de representación sencilla de utilizar y de manipular.
3. Facilita el paso del programa al lenguaje de programación.
4. Es independiente del lenguaje de programación que se vaya a utilizar.
5. Es un método que facilita la programación y solución al algoritmo del programa.
Todo documento en pseudocódigo debe permitir la descripción de:
1. Instrucciones primitivas.
2. Instrucciones de proceso.
3. Instrucciones de control.
4. Instrucciones compuestas.
5. Instrucciones de descripción.
CAPÍTULO 2 ALGORITMOS

 
Three Categories of Algorithmic Operations:
1. sequential operations - instructions are executed in order
2. conditional ("question asking") operations - a control structure that asks a true/false
question and then selects the next instruction based on the answer
3. iterative operations (loops) - a control structure that repeats the execution of a block of
instructions
Estructura a seguir en su realización:
1. Cabecera.
1. Programa.
2. Modulo.
3. Tipos de datos.
4. Constantes.
5. Variables.
2. Cuerpo.
1. Inicio.
2. Instrucciones.
3. Fin.
Utilización en la práctica
En el trabajo de un analista de sistemas, una de las partes más trabajosas es la de determinar qué es
lo que necesitan de un sistema los usuarios finales. Se dedican muchas horas a hacer un
relevamiento de los datos que serán necesarios, los tipos de procesamientos, las salidas, etc. Y debe
existir una realimentación entre el diseño y el usuario, para garantizar que el sistema cumpla con los
requisitos del usuario.
Cuando se determina el uso de varios lenguajes durante el proceso de realización del sistema, es de
suma utilidad el pseudocódigo debido a su independencia de lenguaje de implementación
CAPÍTULO 2 ALGORITMOS

 
Ventajas del pseudocódigo sobre los diagramas de flujo
1. Ocupan mucho menos espacio en el desarrollo del problema.
2. Permite representar de forma fácil operaciones repetitivas complejas.
3. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal.
4. Si se siguen las reglas de identación se puede observar claramente los niveles en la
estructura del programa.
5. En los procesos de aprendizaje de los alumnos de programación, estos están más cerca del
paso siguiente (codificación en un lenguaje determinado, que los que se inician en esto con
la modalidad Diagramas de Flujo).
6. Mejora la claridad de la solución de un problema.
Definición de datos del pseudocódigo
La definición de datos se da por supuesta, sobre todo en las variables sencillas, si se emplea
formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del algoritmo, y
naturalmente cuando empleemos el pseudocódigo para definir estructuras de datos, esta parte la
desarrollaremos adecuadamente.
Funciones y operaciones
Cada autor usa su propio pseudocódigo con sus respectivas convenciones. Por ejemplo, la
instrucción "reemplace el valor de la variable x por el valor de la variable y" puede ser representado
como:

 asigne a el valor de

Las operaciones aritméticas se representan de la forma usual en matemáticas.

Estructuras de control
En la redacción del pseudocódigo se utiliza tres tipos de estructuras de control: las secuenciales, las
selectivas y las iterativas
Normally, statements in a program are executed one after the other in the order in which they are
written. This process is called sequential execution. Various Java statements, which we will soon
discuss, enable the programmer to specify that the next statement to execute is not necessarily the
CAPÍTULO 2 ALGORITMOS

 
next one in sequence. This is called transfer of control.
During the 1960s, it became clear that the indiscriminate use of transfers of control was the root of
much difficulty experienced by software development groups. The blame was pointed at the goto
statement (used in most programming languages of the time), which allows the programmer to
specify a transfer of control to one of a very wide range of possible destinations in a program. The
notion of so-called structured programming became almost synonymous with “goto elimination.”
Bohm and Jacopini’s work demonstrated that all programs could be written in terms of only three
control structures—the sequence structure, the selection structure and the repetition structure.
Estructuras secuenciales
Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el número de
renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo. Las instrucciones se
ejecutan dependiendo de la condición dada dentro del algoritmo.

Estructuras selectivas
Las instrucciones selectivas representan instrucciones que pueden o no ejecutarse, según el
cumplimiento de una condición.

 
CAPÍTULO 2 ALGORITMOS

 
Diagrama de flujo que muestra el funcionamiento de la instrucción condicional.

La condición es una expresión booleana. Instrucciones es ejecutada sólo si la condición es


verdadera.
Selectiva doble (alternativa)
La instrucción selectiva realiza una instrucción de dos posibles, según el cumplimiento de una
condición.

Diagrama de flujo que muestra el funcionamiento de la instrucción condicional.

La condición es una variable booleana o una función reducible a booleana (lógica,


Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si no es así, entonces se
ejecuta Instrucciones2.
 
CAPÍTULO 2 ALGORITMOS

 
Selectiva múltiple
También es común el uso de una selección múltiple que equivaldría a anidar varias funciones de
selección.

En este caso hay una serie de condiciones que tienen que ser mutuamente excluyentes, si una de
ellas se cumple las demás tienen que ser falsas necesariamente, hay un caso si no que será cierto
cuando las demás condiciones sean falsas.
En esta estructura si Condición1 es cierta, entonces se ejecuta sólo Instrucciones1. En general, si
Condicióni es verdadera, entonces sólo se ejecuta Instruccionesi
Selectiva múltiple-Casos
Una construcción similar a la anterior (equivalente en algunos casos) es la que se muestra a
continuación.

En este caso hay un Indicador es una variable o una función cuyo valor es comparado en cada caso
con los valores "Valori", si en algún caso coinciden ambos valores, entonces se ejecutarán las
Instruccionesi correspondientes. La sección en otro caso es análoga a la sección si no del ejemplo
anterior.
 
CAPÍTULO 2 ALGORITMOS

 
Estructuras iterativas
Las instrucciones iterativas representan la ejecución de instrucciones en más de una vez.
Bucle mientras
El bucle se repite mientras la condición sea cierta, si al llegar por primera vez al bucle mientras la
condición es falsa, el cuerpo del bucle no se ejecuta ninguna vez.

Diagrama de flujo que muestra el funcionamiento de la instrucción mientras

Bucle repetir
Existen otras variantes que se derivan a partir de la anterior. La estructura de control repetir se
utiliza cuando es necesario que el cuerpo del bucle se ejecuten al menos una vez y hasta que se
cumpla la condición:

La estructura anterior equivaldría a escribir:


CAPÍTULO 2 ALGORITMOS

 
Bucle para
Una estructura de control muy común es el ciclo para, la cual se usa cuando se desea iterar un
número conocido de veces, empleando como índice una variable que se incrementa (o decrementa):

la cual se define como:

Bucle para cada


Por último, también es común usar la estructura de control para cada. Esta sentencia se usa cuando
se tiene una lista o un conjunto L y se quiere iterar por cada uno de sus elementos:

Si asumimos que los elementos de L son , entonces esta sentencia equivaldría a:

Sin embargo, en la práctica existen mejores formas de implementar esta instrucción dependiendo
del problema.
Es importante recalcar que el pseudocódigo no es un lenguaje estandarizado. Eso significa que
diferentes autores podrían dar otras estructuras de control o bien usar estas mismas estructuras, pero
con una notación diferente. Sin embargo, las funciones matemáticas y lógicas toman el significado
usual que tienen en matemática y lógica, con las mismas expresiones.
El anidamiento
Cualquier instrucción puede ser sustituida por una estructura de control. El siguiente ejemplo
muestra el pseudocódigo del ordenamiento de burbuja, que tiene varias estructuras anidadas. Este
algoritmo ordena de menor a mayor los elementos de una lista L.
CAPÍTULO 2 ALGORITMOS

En general, las estructuras anidadas se muestran indentadas, para hacer más sencilla su
identificación a simple vista. En el ejemplo, además de la indentación, se ha conectado con flechas
los pares de delimitadores de cada nivel de anidamiento.
Vectores y Matrices
Data structures consisting of related data items of the same type. Arrays are fixed-length entities
they remain the same length once they are created.
Recall that types are divided into two categories primitive types and reference types. Arrays are
objects, so they are considered reference types. una matriz o vector (llamados en inglés arrays) es
una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo, los
elementos de la matriz. Desde el punto de vista lógico una matriz se puede ver como un conjunto de
elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones).
Índices
Todo vector se compone de un determinado número de elementos. Cada elemento es referenciado
por la posición que ocupa dentro del vector. Dichas posiciones son llamadas índice y siempre son
correlativos.
Notación
La representación de un elemento en un vector se suele hacer mediante el identificador del vector
seguido del índice entre corchetes, paréntesis o llaves
Vector[indice]

Aunque muchas veces en pseudocódigo y en libros de matemática se representan como letras


acompañadas de un subíndice numérico que indica la posición a la que se quiere acceder. Por
ejemplo, para un vector "A"
CAPÍTULO 2 ALGORITMOS

 
 
A0,A1,A2,... (vector unidimensional)
Matrices:
En programación, una matriz o vector (llamados en inglés arrays) es una zona de almacenamiento
contiguo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el
punto de vista lógico una matriz se puede ver como un conjunto de elementos ordenados en fila (o
filas y columnas si tuviera dos dimensiones). En principio, se puede considerar que todas las
matrices son de una dimensión, la dimensión principal, pero los elementos de dicha fila pueden ser
a su vez matrices (un proceso que puede ser recursivo), lo que nos permite hablar de la existencia de
matrices multidimensionales, aunque las más fáciles de imaginar son los de una, dos y tres
dimensiones.
Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se realice
Funciones y procedimientos
Muchas personas prefieren distinguir entre funciones y procedimientos. Una función, al igual que
una función matemática, recibe uno o varios valores de entrada y regresa una salida mientras que un
procedimiento recibe una entrada y no genera ninguna salida aunque en algún caso podría devolver
resultados a través de sus parámetros de entrada si estos se han declarado por referencia (ver formas
de pasar argumentos a una función o procedimiento).
En ambos casos es necesario dejar en claro cuáles son las entradas para el algoritmo, esto se hace
comúnmente colocando estos valores entre paréntesis al principio o bien declarándolo
explícitamente con un enunciado. En el caso de las funciones, es necesario colocar una palabra
como regresar o devolver para indicar cuál es la salida generada por el algoritmo. Por ejemplo, el
pseudocódigo de una función que permite calcular an (un número a elevado a potencia n).

 
CAPÍTULO 2 ALGORITMOS

 
Un ejemplo de procedimiento seria el algoritmo de Ordenamiento de burbuja, por el que partiendo
de una lista de valores estos se ordenan, nótese que en un procedimiento, no se calcula el valor de
una función, sino que se realiza una acción, en este caso ordenar la lista.
CAPÍTULO 2 ALGORITMOS

Software para construir algoritmos


 Smartdraw
 Microsoft Visio
 Erwin
 Dfd

You might also like