Вы находитесь на странице: 1из 17

CONCEPTOS BASICOS PARA LA FORMULACION DE

ALGORITMOS
El desarrollo de algoritmos es un tema fundamental en el diseo
de programas por lo cual el alumno debe tener buenas bases
que le sirvan para poder desarrollar de manera fcil y rpida sus
programas.
El uso de algoritmos, facilitar desarrollar la capacidad analtica
y creadora del alumno, para de esta manera mejorar su destreza
en la elaboracin de algoritmos que sirven como base para la
codificacin de los diferentes programas que tendr que
desarrollar a lo largo de la carrera.
Es primordial empezar definiendo lo que es la palabra, algoritmo
La palabra algoritmo se deriva de la traduccin al latn de la
palabra rabe Alkhowarizmi, nombre de un matemtico y
astrnomo rabe que escribi un tratado sobre la manipulacin
de nmeros y ecuaciones en el siglo IX.
Se define como una serie de pasos organizados que describen el
proceso que se debe seguir, para dar solucin a un problema
especfico.
TIPOS DE ALGORITMOS
Teniendo en cuenta la forma como describen el proceso, se
pueden clasificar en:
Cualitativos: Son aquellos en los que se describen los pasos
utilizando palabras.
Cuantitativos: Son aquellos en los que se utilizan clculos
numricos para definir los pasos del proceso.
Las principales caractersticas que debe tener un buen
algoritmo son:
1. Ser preciso: esto significa que las operaciones o pasos del
algoritmo deben desarrollarse en un orden estricto, ya que el
desarrollo de cada paso debe obedecer a un orden lgico.

2. Ser definido. Ya que en el rea de programacin, el algoritmo


es el paso previo fundamental para desarrollar un programa, es
necesario tener en cuenta que el computador solo desarrollar
las tareas programadas y con los datos suministrados; es decir,
no puede improvisar y tampoco inventar o adivinar el dato
que necesite para realizar un proceso. Por eso, el algoritmo debe
estar plenamente definido; esto es, que cuantas veces se
ejecute, el resultado depende estrictamente de los datos
suministrados. Si se ejecuta con un mismo conjunto de datos de
entrada, el resultado deber ser siempre el mismo.
3. Ser finito: esta caracterstica implica que el nmero de pasos
de un algoritmo, por grande y complicado que sea el problema
que soluciona, debe ser limitado. Todo algoritmo, sin importar el
nmero de pasos que incluya, debe llegar a un final. Para hacer
evidente esta caracterstica, en la representacin de un
algoritmo siempre se incluyen los pasos inicio y fin.
4. Presentacin formal: para que el algoritmo sea entendido por
cualquier persona interesada es necesario que se exprese en
alguna de las formas comnmente aceptadas; pues, si se
describe de cualquier forma puede no ser muy til ya que solo lo
entender quien lo dise. Las formas de presentacin de
algoritmos son: el pseudocdigo, diagrama de flujo y diagramas
de Nassi/Schneiderman, entre otras. En esta publicacin se
propondr una notacin algortmica y se darn las equivalencias
entre la propuesta y las existentes y tambin con las sentencias
de los lenguajes de programacin, en particular Pascal y C.
5. Correccin: el algoritmo debe ser correcto, es decir debe
satisfacer la necesidad o solucionar el problema para el cual fue
diseado. Para garantizar que el algoritmo logre el objetivo, es
necesario ponerlo a prueba; a esto se le llama verificacin o
prueba de escritorio.
6. Eficiencia: hablar de eficiencia o complejidad de un algoritmo
es evaluar los recursos de cmputo que requiere para almacenar
datos y para ejecutar operaciones frente al beneficio que ofrece.
En cuanto menos recursos requieren ser ms eficiente el
algoritmo. La vida cotidiana est llena de soluciones

algortmicas, algunas de ellas son tan comunes que no se


requiere pensar en los pasos que incluye la solucin.
La mayora de las actividades que se realizan diariamente estn
compuestas por tareas ms simples que se ejecutan en un orden
determinado, lo cual genera un algoritmo. Muchos de los
procedimientos utilizados para desarrollar tareas cotidianas son
algortmicos, sin embargo, esto no significa que todo lo que se
hace est determinado por un algoritmo. El primer paso en el
diseo de un algoritmo es conocer la temtica a tratar, el
segundo ser pensar en las actividades a realizar y el orden en
que deben ejecutarse para lograr el objetivo, el tercero y no
menos importante es la presentacin formal.
Propiedades de los algoritmos
1. Especificacin precisa de la entrada: El algoritmo debe
dejar claro el nmero y tipo de datos de entrada y las
condiciones iniciales que deben cumplir esos valores de
entrada para conseguir que las operaciones tengan xito.
2. Especificacin precisa de cada instruccin: cada etapa del
algoritmo debe estar definida con precisin, no debe haber
ambigedades sobre las acciones que se deben ejecutar en
cada momento.
3. Un algoritmo debe ser exacto y correcto: Un algoritmo se
espera que resuelva un problema y se debe poder demostrar
que eso ocurre. Si las condiciones de entrada se cumplen y se
ejecutan todos los pasos el algoritmo entonces debe producir
la salida deseada.
4. Un algoritmo debe tener etapas bien definidas y concretas,
un nmero finito de pasos, debe terminar y debe estar claro la
tarea que el algoritmo debe ejecutar.
5. Debe ser fcil de entender, codificar y depurar.
6. Debe hacer uso eficiente de los recursos de la computadora
Finitud: en longitud y duracin. Precisin: Determinar sin
ambigedad las operaciones que se deben ejecutar.

Efectividad: las reglas pueden ejecutarse sin el ordenador


obtenindose el mismo resultado. Generalidad: Resolver una
clase de problema y no un problema particular.
Entradas y salidas: puede tener varias entradas pero una sola
salida, el resultado que se debe obtener.
LENGUAJE ALGORTMICO (Lxico)
Es una serie de smbolos y reglas que se utilizan para describir
de manera explcita un proceso, que servirn de apoyo para
describir las soluciones que aqu se plantean.
Teniendo en cuenta la forma en que describen el proceso,
existen dos tipos de lenguajes algortmicos:
Grficos: Es la representacin grfica de las operaciones que
realiza un algoritmo (diagrama de flujo).
No Grficos: Representa en forma descriptiva las
operaciones que debe realizar un algoritmo (pseudocdigo).
Para escribir un algoritmo deben seguirse un conjunto de
pasos bsicos
1. Comprender el problema
2. Identificar los elementos a incluir en el lxico: constantes,
tipos, variables y acciones.
3. Encontrar la forma de secuenciar las acciones para obtener
el resultado, esto es, alcanzar las poscondiciones a partir de
un estado inicial que cumple con la precondicin. Para
establecer el orden de las acciones los lenguajes de
programacin proporcionan mecanismos de composicin:
Secuenciacin, anlisis de casos, iteracin y recursin.
4. Al organizar las acciones en el tercer paso puede ocurrir
que se detecte que faltan elementos en el lxico o que algn
aspecto del problema no ha sido bien comprendido lo cual
requerira volver a los pasos anteriores.
5. Nunca la solucin aparece en el primer intento, en general
aparece en un proceso cclico, entonces se debe:

6. Escribir el lxico,
a. escribir la primera versin,
b. incluir en el lxico nuevos elementos que faltaban,
c. escribir la nueva versin del algoritmo y as sucesivamente
Estructura de un algoritmo
LEXICO {Lxico Global del algoritmo}
{Declaracin de tipos, constantes, variables y acciones}
Accin 1
PRE {Precondicin de la accin 1}
POS {Poscondicin de la accin 1}
LEXICO {Lxico local, propio de la accin 1}

Declaraciones locales
ALGORITMO {Implementacin de la accin 1} {Secuencia de
instrucciones de la accin 1}
FIN {Fin implementacin algoritmo de la accin 1}
ALGORITMO
PRE {Precondicin del algoritmo principal}
POS {Poscondicin del algoritmo principal} {Secuencia de
instrucciones del algoritmo principal}
FIN {Fin del algoritmo principal}

VENTAJAS Y DESVENTAJAS PARA LA


FORMULACION DE ALGORITMOS
Ventajas
Los algoritmos son la esencia de la informtica, son uno
de los centros de inters de muchas, si no todas, de las
reas del campo de la informtica.
Mejora la claridad de la solucin de un problema.
Favorecen la compresin de un proceso
Puedes trabajar en orden.
Te redacta en orden paso a paso lo que hay que hacer.
Ayuda a resolver ms fcil y rpido los problemas.
Disminuye sensiblemente el riesgo de errores.
Favorece el obtener el mximo de informacin.

Desventajas
Hay textos que desarrollan los algoritmos, mediante
diversos tipos de programas, por ejemplo: el lenguaje de
programacin C++, pero para comprender las letras
deben poseer al menos un ao de experiencia en ese
lenguaje de programacin de alto y bajo nivel.
Muchos algoritmos interesantes llevan implcitos
complicados mtodos de organizacin de los datos
utilizados en el calendo.
Con frecuencia sucede que muchos de los algoritmos que
se van a utilizar son fciles de implementan una vez que
se ha descompuesto el programa, sin embargo, en la
mayor parte de los casos, existen unos pocos algoritmos
cuya eleccin es crtica porque su ejecucin ocupara la
mayora de los recursos del sistema.
La eleccin del mayor algoritmo para una tarea particular
puede ser un proceso muy complicado y con frecuencia
conllevara un anlisis matemtico sofisticado.
Actualmente se est estudiando en la informtica, como
seleccionar el algoritmo que conduzca a la mejor

implementacin pues para la mayora de los problemas


existen varios algoritmos diferentes.
Seguiras siempre un mismo patrn.
Se perdera la autenticidad de cada quien.

DIFERENTES METODOS PARA


REPRESENTAR UN ALGORITMO
As como en nuestra vida cotidiana podemos expresar una
misma idea de diversas maneras, de igual forma puedes
construir los Algoritmos.
Los algoritmos pueden ser expresados de muchas maneras,
incluyendo al lenguaje natural, pseudocdigo, diagramas de
flujo y lenguajes de programacin entre otros. Las
descripciones en lenguaje natural tienden a ser ambiguas y
extensas. El usar pseudocdigo y diagramas de flujo evita
muchas ambigedades del lenguaje natural. Dichas
expresiones son formas ms estructuradas para representar
algoritmos; no obstante, se mantienen independientes de un
lenguaje de programacin especfico.
La descripcin de un algoritmo usualmente se hace en tres
niveles:

1. Descripcin de alto nivel. Se establece el problema, se


selecciona un modelo matemtico y se explica el algoritmo de
manera verbal, posiblemente con ilustraciones y omitiendo
detalles.
2. Descripcin formal. Se usa pseudocdigo para describir la
secuencia de pasos que encuentran la solucin.
3. Implementacin. Se muestra el algoritmo expresado en un
lenguaje de programacin especfico o algn objeto capaz de
llevar a cabo instrucciones.
Tambin es posible incluir un teorema que demuestre que el
algoritmo es correcto, un anlisis de complejidad o ambos.
Los algoritmos pueden ser creados de dos formas:
1) Seudocdigo.- Es un conjunto pequeo y claro de
instrucciones; en secuencia, que permite llevar a cabo una
tarea.
2) Diagrama de flujo.- Es la representacin de la secuencia, a
travs de smbolos, de la tarea que se va a realizar.

PSEUDOCODIGO
Definicin
En pseudocdigo se describen los algoritmos utilizando una
mezcla
de
lenguaje
comn,
con
instrucciones
de
programacin, palabras claves, etc. El objetivo es que el
programador se centre en la solucin lgica del algoritmo y no
en la implementacin en un lenguaje de programacin
concreto (con las posibles complicaciones en las reglas
sintcticas), o en otras palabras, slo ayudan a "pensar" un
programa antes de escribirlo en un lenguaje de programacin
formal.

Mucho se habla del pseudocdigo en las carreras de Analista


de Sistemas y Programacin. Pero no existe mucha
bibliografa al respecto.
Comencemos aclarando que no es una forma de
programacin. Se trata de una herramienta que los analistas
de sistemas utilizan para comunicar a los programadores la
estructura del programa que van a realizar, de forma de tener
una idea bien clara de lo que se necesita programar.
Digamos que el pseudocdigo es una forma de diagramar un
algoritmo para resolver un determinado problema, sin
atenerse a ningn lenguaje de programacin en especial.
Un algoritmo es un conjunto de procedimientos que permiten
resolver un problema.
En vez de escribir el programa directamente en un lenguaje
de programacin determinado (C, Basic, etc.), crearemos un
borrador entendible para todos, para luego de tener bien en
claro lo que se debe hacer, pasar a la programacin
propiamente dicha.

El pseudocdigo se refiere a crear un cdigo para orientar a


los programadores, pero sin la sintaxis ni la estructura propia
de ningn lenguaje.
El principal objetivo del pseudocdigo es el de representar la
solucin a un algoritmo de la forma ms detallada posible, y a
su vez lo ms parecida posible al lenguaje que posteriormente
se utilizara para la codificacin del mismo.
Las principales caractersticas de este lenguaje son:
Se puede ejecutar en un ordenador

Es una forma de representacin sencilla de utilizar y de


manipular.
Facilita el paso del programa al lenguaje de programacin.
Es independiente del lenguaje de programacin que se vaya a
utilizar.
Es un mtodo que facilita la programacin y solucin al
algoritmo del programa.
Todo documento en pseudocdigo debe permitir la descripcin
de:
Instrucciones primitivas
Instrucciones de proceso
Instrucciones de control
Instrucciones compuestas
Instrucciones de descripcin
Estructura a seguir en su realizacin:
Cabecera:
Programa:
Modulo:
Tipos de datos:
Constantes
Variables
Cuerpo:
Inicio
Instrucciones
Fin

Para comentar en pseudocdigo se le antepone al comentario


dos asteriscos (*)
EJEMPLO DE PSEUDOCODIGO

DIAGRAMA DE FLUJO
DIAGRAMA DE FLUJO
Es un esquema para representar grficamente un algoritmo.
Se basan en la utilizacin de diversos smbolos para
representar operaciones especficas, es decir, es la
representacin grfica de las distintas operaciones que se
tienen que realizar para resolver un problema, con indicacin
expresa el orden lgico en que deben realizarse.

Se les llama diagramas de flujo porque los smbolos utilizados


se conectan por medio de flechas para indicar la secuencia de
operacin. Para hacer comprensibles los diagramas a todas
las personas, los smbolos se someten a una normalizacin; es
decir, se hicieron smbolos casi universales, ya que, en un
principio cada usuario podra tener sus propios smbolos para
representar sus procesos en forma de Diagrama de flujo. Esto
trajo como consecuencia que slo aquel que conoca sus
smbolos, los poda interpretar. La simbologa utilizada para la
elaboracin de diagramas de flujo es variable y debe ajustarse
a un patrn definido previamente.
El diagrama de flujo representa la forma ms tradicional y
duradera para especificar los detalles algortmicos de un
proceso. Se utiliza principalmente en programacin, economa
y procesos industriales.
Para realizar los diagramas de flujo utilizamos distintas figuras
geomtricas en forma de caja de texto, que sirven para
distinguir el tipo de tareas que se ejecutan, las flechas indican
el flujo del proceso y se valen de determinada simbologa
especfica para facilitar su comprensin
Las siguientes son acciones previas a la realizacin del
diagrama de flujo:
Identificar las ideas principales al ser incluidas en el
diagrama de flujo. Deben estar presentes el autor o
responsable del proceso, los autores o responsables del
proceso anterior y posterior y de otros procesos
interrelacionados, as como las terceras partes
interesadas.
Definir qu se espera obtener del diagrama de flujo.
Identificar quin lo emplear y cmo.
Establecer el nivel de detalle requerido.
Determinar los lmites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo
son:

Establecer el alcance del proceso a describir. De esta


manera quedar fijado el comienzo y el final del
diagrama. Frecuentemente el comienzo es la salida del
proceso previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos
que estn incluidos en el proceso a describir y su orden
cronolgico.
Si el nivel de detalle definido incluye actividades
menores, listarlas tambin.
Identificar y listar los puntos de decisin.
Construir el diagrama respetando la secuencia
cronolgica y asignando los correspondientes smbolos.
Asignar un ttulo al diagrama y verificar que est
completo y describa con exactitud el proceso elegido.
Tipos de diagramas de flujo
Formato vertical: En l, el flujo y la secuencia de las
operaciones, va de arriba hacia abajo. Es una lista ordenada
de las operaciones de un proceso con toda la informacin que
se considere necesaria, segn su propsito.
Formato horizontal: En l, el flujo o la secuencia de las
operaciones, va de izquierda a derecha.
Formato panormico: El proceso entero est representado en
una sola carta y puede apreciarse de una sola mirada mucho
ms rpido que leyendo el texto, lo que facilita su
comprensin, aun para personas no familiarizadas. Registra
no solo en lnea vertical, sino tambin horizontal, distintas
acciones simultneas y la participacin de ms de un puesto o
departamento que el formato vertical no registra.
Formato Arquitectnico: Describe el itinerario de ruta de una
forma o persona sobre el plano arquitectnico del rea de
trabajo. El primero de los flujogramas es eminentemente
descriptivo, mientras que los utilizados son
fundamentalmente representativos.

SIMBOLOGIA DEL DIAGRAMA DE FUJO

REFERENCIAS
http://algoritmos021415.blogspot.mx/2012/04/repr
esentacion-de-un-algoritmo.html
https://www.google.com.mx/search?
q=simbologia+del+diagrama+de+flujo&newwindo
w=1&source=lnms&tbm=isch&sa=X&ei=pH1VPGzI4zpoATek4CwDw&ved=0CAcQ_AUoAQ&biw
=1366&bih=667#imgdii=_&imgrc=jTh3tDAI85w4G
M%253A%3BiG54stlDYXBJ7M%3Bhttps%253A
%252F%252Fjorge613.files.wordpress.com
%252F2012%252F09%252Fsimbologia.png
%3Bhttps%253A%252F
%252Fjorge613.wordpress.com%252Ftag
%252Fdiagrama-de-flujo-de-datos%252F
%3B1040%3B976
http://es.wikipedia.org/wiki/Diagrama_de_flujo
http://www.virtual.unal.edu.co/cursos/sedes/maniz
ales/4060024/Lecciones/Capitulo
%20I/conceptos.htm
http://es.slideshare.net/csandovalrivera/unidad-4tcnicas-para-la-formulacin-de-algoritmos
https://quice85.wordpress.com/asignaturasimpartidas/algoritmos-computacionales/
http://html.rincondelvago.com/disenoestructurado-de-algoritmos_1.html

Вам также может понравиться