You are on page 1of 33

ALGORITMO:

1.- Es una secuencia de pasos o procesos lgicamente relacionados entre s a fin


de obtener la solucin a un problema planteado.
2.- Es una lista de instrucciones para efectuar paso a paso un proceso.
3.- Conjunto FINITO de pasos o instrucciones, seguidas en un orden lgico, los
cuales nos llevan a la solucin de un problema especfico.
4.- Una serie de instrucciones colocadas en cierta secuencia, necesarias para la
descripcin de las operaciones que llevan a la solucin de un problema.
5.- Es un procedimiento completo para resolver un problema especfico en un
nmero FINITO de pasos.
6.- Es un mtodo para resolver un problema mediante una serie de datos precisos,
definidos y finitos.

PASOS PARA PLANTEAR LA SOLUCIN A UN


PROBLEMA:
1.- Anlisis del problema.
2.- Identificar las entradas, procesos y salidas del problema, declaracin de
variables.
3.- Diseo del Algoritmo: Describe la secuencia ordenada de los pasos, sin
ambigedad, es decir, siendo preciso y veraz en la bsqueda de la solucin al
problema.
4.- Codificacin del Algoritmo: Es la expresin en un lenguaje de programacin de
los pasos definidos en el algoritmo.
5.- Ejecucin y validacin del programa por el computador.
CARACTERSTICAS DE ALGORITMOS:
Las caractersticas fundamentales que debe cumplir todo algoritmo son:
1.- Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.
2.- Un algoritmo debe estar bien definido, es decir, si se sigue la ejecucin dos
veces del mismo se debe obtener la misma secuencia lgica. El algoritmo debe
definirse de forma precisa para cada paso, es decir, hay que evitar toda
ambigedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los
algoritmos se expresan mediante un lenguaje formal, ya sea matemtico o de
programacin para un computador.
3.- Un algoritmo debe ser FINITO, Si se sigue un algoritmo se debe terminar en
algn momento; o sea, debe tener un numero finito de pasos.
4.- Entrada: El algoritmo tendr cero o ms entradas, es decir, cantidades dadas
antes de empezar el algoritmo. Estas cantidades pertenecen adems a conjuntos

especificados de objetos. Por ejemplo, pueden ser cadenas de caracteres, enteros,


naturales, fraccionarios, etc. Se trata siempre de cantidades representativas del
mundo real expresadas de tal forma que sean aptas para su interpretacin por el
computador.
5.- Salida: El algoritmo tiene una o ms salidas, en relacin con las entradas.

CLASIFICACIN DE LOS ALGORITMOS:

Directos: Son aquellos que permiten encontrar la solucin al problema de manera


instantnea o directa, en un nmero determinado de pasos.
Ejemplo: 23 = 2*2*2 = 8

Indirecto:
Se ignora el nmero de pasos.
Son aquellos donde se desconocen el nmero de pasos para lograr la solucin
de un problema.
Estos a su vez, se clasifican en:
Finito: El nmero de pasos a realizar son conocidos as como la factibilidad de
solucin al problema planteado, o sea, que va a ver una respuesta al proceso.
Ejemplo: Medir distancia
AB
Es factible que algn da pueda saber la distancia entre la Sede antigua del
IUTEPAL (Av. Constitucin) y la Sede Nueva del IUTEPAL (Urb. Caa de Azcar).
Infinito:
Se desconoce el nmero de pasos a realizar, as como la imposibilidad de
encontrar la solucin al problema planteado.
Cuando realmente es imposible lograr la solucin, por ms vueltas que le demos al
problema.
Ejemplo: 20 ; +" ; -2
3 -"
Ejemplos de Algoritmos:
Podemos idear un algoritmo para un determinado proceso, as como tambin
hacerlo en diferentes formas.
Por ejemplo: Cmo podramos encontrar el promedio de un conjunto de nmeros?.
Una posible solucin sera:
1.- Sumar los nmeros dados.
2.- Contar dichos nmeros.

3.- Dividir el resultado obtenido en el punto 1 entre el resultado obtenido en el


punto 2.
Otra clase de ejemplo de Algoritmos, sera el de una llamada telefnica, o el
proceso para efectuar un viaje en el Metro de Caracas, o la obtencin de la licencia
para conducir o el cambio de un caucho que est bajo de aire, etc.; en fin, hay
muchas formas de aplicar los algoritmos en cuestiones cotidianas descomponiendo
la accin en pasos lgicos, como es el caso de una llamada desde una cabina de
un telfono pblico:
1.- Inicio
2.- Descolgar el telfono
3.- Esperar la seal digital.
4.- Preguntamos si est daado. Si lo est: Vamos al paso 5.
Si no lo est: Vamos al paso 8.
5.- Vociferar una palabra de mal gusto y fruncir el ceo.
6.- Colgar.
7.- Fin.
8.- Digitar los nmeros.
9.- Verificamos si suena ocupado. Si suena ocupado: Vamos al paso 11.
Si no lo est: Vamos al paso 13.
10.-Insistir digitando los nmeros.
11.- Ir al paso 8.
12.- Verificamos si contestan. Si contestan: Vamos al paso 14
Si no contestan: Vamos al paso 21.
13.- Preguntamos si se encuentra la persona.
Si se encuentra: Vamos al paso 14.
Si no se encuentra: Vamos al paso 17.
14.- Hablar lo deseado.
15.- Colgar.
16.- Fin.
17.- Pensar algo malo.
18.- Tomar un caf y tranquilizarse.
19.- Ir al paso 15.

A continuacin, presentamos un ejemplo de algoritmo para el proceso de cambiar


un caucho que est bajo de aire.
1.- Levantar el carro con el gato hidrulico.
2.- Quitar los tornillos del rin.
3.- Quitar el caucho daado.
4.- Poner el caucho de repuesto.
5.- Apretar los tornillos.
6.- Bajar el carro con el gato.
A los anteriores pasos, podramos agregar muchos ms detalles como por ejemplo,
abrir la maleta, aflojar tornillos antes de levantar el carro, etc. Presentamos a
continuacin, dos versiones mas amplias del algoritmo anterior:
Versin N 1
1.- Sacar el caucho de repuesto y herramientas de la maletera.
2.- Verificamos si est daado el caucho de repuesto.
Si lo est vamos al punto 3.
Si no lo est vamos al punto 4.
3.- Vociferamos ruidosamente algo.
Nos vamos caminando a buscar ayuda telefoneamos alguien para que ayude.
Vamos al punto 14.
4.- Verificamos si el caucho bajo de aire es el caucho delantero. Si lo es:
4.1.- Quitamos la tapa del centro de la rueda delantera.
4.2.- Aflojamos los tornillos.
4.3.- Levantamos el carro por delante, junto al caucho daado.
4.4.- Vamos al punto 5.
Si no lo es:
4.1.- Quitamos la tapa del centro de la rueda trasera.
4.2.- Aflojamos los tornillos.
4.3.- Levantamos el carro por detrs, junto al caucho daado.
5.- Quitamos los tornillos.
6.- Quitamos el caucho daado.
7.- Ponemos el caucho de repuesto.
8.- Colocamos los tornillos y las tapas.

9.- Bajamos el carro con el gato hidrulico.


10.- Guardamos el caucho daado, el gato y las herramientas en la maletera.
11.- Nos limpiamos con estopa las manos.
12.- Encendemos el vehculo.
13.- Continuamos manejando.
14.- Fin.
Versin N 2
1.- Observamos si el caucho de repuesto est vaco.
Si lo est vamos al punto 2.
Si no lo est vamos al punto 3.
2.- Llamamos a un taller.
Vamos al punto 12.
3.- Levantamos el carro con el gato hidrulico.
4.- Quitamos un tornillo.
5.- Observamos si hemos quitado todos los tornillos.
Si lo hemos quitado vamos al punto 6.
Si no lo hemos quitado vamos al punto 4.
6.- Quitamos el caucho daado.
7.- Ponemos el caucho de repuesto.
8.- Apretamos un tornillo.
9.- Verificamos si se han apretado todos los tornillos.
10.- Si lo hemos apretado, vamos al punto 11.
Si no lo hemos apretado vamos al punto 8.
11.- Bajamos el carro con el gato hidrulico.
12.- Fin.
Descripcin de un algoritmo en forma grfica:
Cuando una secuencia de actividades que definen un problema es muy simple en
su naturaleza, es decir que slo implique seguir una serie de pasos, uno despus
de otro, y que no tenga decisiones lgicas ni alternativas a tomar, es muy fcil
describirlo en palabras. Pero si esta secuencia de actividades se hace ms
compleja ser no slo difcil describirlo en palabras sino tambin retener todas las
alternativas.

Para ilustrar lo anterior, analicemos la secuencia de eventos que tienen lugar todas
las maanas para un estudiante de Universidad que tiene clase los lunes y los
mircoles a las 08:00 am y los martes y jueves a las 09:00 am.
Una vez que el estudiante se despierta mira el reloj y si no son an las 06:30 am,
contina durmiendo. Los lunes y los mircoles, procura levantarse entre las 06:30
am y las 07:30 am. Si llegara a despertarse despus de la hora como
frecuentemente ocurre, pensar nuevamente en la falta que le hace el reloj
despertador, pero toma la decisin de no ir a clases en esa maana, sin embargo,
despus de esta decisin, se baa, se desayuna y se dedica a estudiar.
Si se despierta entre las 06:30 am y las 07:30 am, los lunes o los mircoles se
baa, se desayuna y se dedica a leer el peridico hasta que sean ms de las 07:30
am, luego toma el bus y llega a la Universidad. Entra a clase solamente si han
transcurrido menos de 15 minutos desde su comienzo, de otra manera, no entra a
clase y se dedica a leer las carteleras y a esperar la prxima clase.
Los martes y los jueves, procura levantarse entre las 07:30 am y las 08:30 am; si
se despierta despus de las 08:30 am realizar las mismas actividades que
tendran lugar si se levantara los lunes o los mircoles despus de las 07:30 am.
De otra forma se baa, se desayuna y lee el peridico hasta que sean ms de las
08:30 am, luego realiza las mismas actividades que tienen lugar los lunes o lo
mircoles cuando sale de su casa.
Los dems das de la semana, procura dormir hasta las 08:30 am, despus de esta
hora se baa, se desayuna y se dedica a estudiar.
Es dudoso que quien lea por primera vez lo anterior est en capacidad de seguir y
mantener fielmente en su memoria la cantidad de actividades, secuencias,
decisiones y alternativas que tiene el ejemplo. Su respuesta obvia para remediar lo
anterior ser dibujar un grfico, y aun sin conocer todas las tcnicas de los
diagramas de flujo ser mucho ms fcil para una persona seguir las actividades a
travs de un grfico.
Algoritmos computacionales
Es importante el estudio y conocimiento de lo que hoy conocemos como
Algoritmos Computacionales, que desde su aparicin hasta nuestros das es, y
seguir siendo; vital para el desarrollo de aplicaciones para computadoras y el
manejo y dominio de la lgica de programacin para resolver problemas.
Marco Histrico
Un algoritmo es un conjunto de operaciones y procedimientos que deben seguirse
para resolver un problema. La palabra algoritmo se deriva del nombre latinizado
del gran Matemtico rabe Mohamed Ibn Al Kow Rizmi, el cual escribi sobre los
aos 800 y 825 su obra Quitad Al Mugabala, donde se recoga el sistema de
numeracin hind y el concepto del cero. Fue Fibinacci, el que tradujo la obra al
latn y el inicio con la palabra: Algoritmi Dicit.
El lenguaje algortmico es aquel por medio al cual se realiza un anlisis previo del
problema a resolver y encontrar un mtodo que permita resolverlo. El conjunto de

todas las operaciones a realizar y e orden en que se deben efectuarse, se le


denomina algoritmo.

Generalidades
El programador de computadoras es ante que nada una persona que resuelve
problemas, por lo que para llegar a ser un programador eficaz se necesita aprender
a resolver problemas de un modo riguroso y sistemtico. A la metodologa
necesaria para resolver problemas mediante programas se denomina Metodologa
de la Programacin. El eje central de esta metodologa es el concepto, ya tratado,
de algoritmo.
Un algoritmo es un mtodo para resolver un problema. Aunque la popularizacin
del trmino ha llegado con el advenimiento de la era informtica, algoritmo
proviene de Mohammed al-Khowarizmi, matemtico persa que vivi durante el
siglo IX y alcanzo gran reputacin por el enunciado de las reglas para sumar,
restar, multiplicar y dividir nmeros decimales; la traduccin al latn del apellido de
la palabra algorismus derivo posteriormente en algoritmo. Euclides, el gran
matemtico griego (del siglo IV antes de Cristo) que invento un mtodo para
encontrar el mximo comn divisor de dos nmeros, se considera con AlKhowarizmi el otro gran padre de la algoritmia (ciencia que trata de los
algoritmos).
El profesor Niklaus Wirth, inventor de Pascal, Modula-2 y Oberon, titulo uno de sus
ms famosos libros, Algoritmos + Estructuras de Datos = Programas,
significndonos que solo se puede llegar a realizar un buen programa con el diseo
de un algoritmo y una correcta estructura de datos. Esta ecuacin ser de una de
las hiptesis fundamentales consideradas en esta obra.
La resolucin de un problema exige el diseo de un algoritmo que resuelva el
problema propuesto.
Los pasos para la resolucin de un problema son:
Diseo de algoritmo, que describe la secuencia ordenada de pasos que
conducen a la solucin de un problema dado. (Anlisis del problema y desarrollo
del algoritmo).
Expresar el algoritmo como un programa de lenguaje de programacin
adecuado. (Fase de codificacin.)
Ejecucin y validacin del programa por la computadora.
Para llegar a la realizacin de un programa es necesario el diseo previo de
algoritmo, de modo que sin algoritmo no puede existir un programa.
Los algoritmos son independientes tanto del lenguaje de programacin en que se
expresan como de la computadora que lo ejecuta. En cada problema el algoritmo
se puede expresar en un lenguaje diferente de programacin y ejecutarse en una
computadora distinta; sin embargo, el algoritmo ser siempre el mismo. As, por
ejemplo, en una analoga con la vida diaria, una receta de un plato de cocina se

puede expresar en espaol, ingls o francs, pero cualquiera que sea el lenguaje,
los pasos para la elaboracin del plato se realizaran sin importar el idioma del
cocinero.
En la ciencia de la computacin y en la programacin, los algoritmos son ms
importantes que los lenguajes de programacin o las computadoras. Un lenguaje
de programacin es tan solo un medio para expresar un algoritmo y una
computadora es solo un procesador para ejecutarlo. Tanto el lenguaje de
programacin como la computadora son los medios para obtener un fin: conseguir
que el algoritmo se ejecute y se efecte el proceso correspondiente.
Dada la importancia del algoritmo en la ciencia de la computacin, un aspecto muy
importante ser el diseo de algoritmos. El diseo de la mayora de los algoritmos
requiere creatividad y conocimientos profundos de la tcnica de la programacin.
En esencia, la solucin de un problema se puede expresar mediante un algoritmo.
La definicin de un algoritmo debe definir tres partes: Entrada, Proceso y Salida. En
el algoritmo de receta de cocina citado anteriormente se tendr:
Entrada: ingrediente y utensilios empleados.
Proceso: elaboracin de la receta en la cocina.
Salida: terminacin del plato (por ejemplo, cordero).
Ejemplo de Algoritmo:
Un cliente ejecuta un pedido a una fbrica. Esta examina en su banco de datos la
ficha del cliente; si el cliente es solvente entonces la empresa acepta el pedido; en
caso contrario rechazara el pedido. Redactar el algoritmo correspondiente.
Los pasos del algoritmo son:
inicio
leer el pedido
examinar la ficha del cliente
Si el cliente es solvente aceptar pedido; en caso contrario, rechazar pedido
Fin
Diseo del Algoritmo:
En la etapa de anlisis del proceso de programacin se determina que hace el
programa. En la etapa de diseo se determina como hace el programa la tarea
solicitada. Los mtodos ms eficaces para el proceso de diseo se basan en el
conocido por Divide y Vencers, es decir, la resolucin de un problema complejo se
realiza dividiendo el problema en sub problemas y a continuacin dividir estos sub
problemas en otros de nivel ms bajo, hasta que pueda ser implementada una
solucin en la computadora. Este mtodo se conoce tcnicamente como diseo
descendente (Top Down) o modular. El proceso de romper el problema en cada

etapa y expresar cada paso en forma ms detallada se denomina refinamiento


sucesivo.
Cada sub programa es resuelto mediante un mdulo (sub programa) que tiene un
solo punto de entrada y un solo punto de salida.
Cualquier programa bien diseado consta de un programa principal (el mdulo de
nivel ms alto) que llama a sub programas (mdulos de nivel ms bajo) que a su
vez pueden llamar a otros sub programas. Los programas estructurados de esta
forma se dice que tienen un diseo modular y el mtodo de romper el programa en
mdulos ms pequeo se llama Programacin Modular. Los mdulos pueden ser
planeados, codificados, comprobados y depurados independientemente (incluso
por diferentes programadores) y a continuacin combinarlos entre s. El proceso
implica la ejecucin de los siguientes pasos hasta que el programa se termina:

Programar mdulo.

Comprobar el mdulo.

Si es necesario, depurar el modulo.

Combinar el modulo con los mdulos anteriores.


El proceso que convierte los resultados del anlisis del problema en un diseo
modular con refinamiento sucesivo que permitan una posterior traduccin al
lenguaje se denomina diseo de algoritmo.
El diseo del algoritmo es independiente del lenguaje de programacin en el que
se vaya a codificar posteriormente.
5. Tcnica de diseo de algoritmos
Diseo de Algoritmos:
Hasta ahora se han realizado algunos comentarios respecto a la necesidad de
disear algoritmos correctos y eficientes utilizando los elementos de un lenguaje
de programacin .Es necesario en este momento mencionar algo sobre cmo
hacerlo. El acto de disear un algoritmo puede considerarse como una tarea que
difcilmente podr ser del todo automatizada.
Todo problema algortmico es un reto para su diseador, algunos resultan
inmediatos de resolver, otros son bastante complejos. La investigacin en esta
rea ha permitido descubrir un conjunto de mtodos o esquemas de diseo hacia
los cuales puede orientarse la realizacin de muchos algoritmos.
No obstante, y a pesar de que resulta ms adecuado en bastantes casos utilizar
alguno de estos esquemas que realizar un diseo desde cero, idear un algoritmo
continua siendo una labor bastante creativa donde los conocimientos y la
experiencia del propio diseador tiene un papel fundamental.
El diseo de un algoritmo que resuelva un problema es, en general, una tarea
difcil. Una forma de facilitar esta labor consiste en recurrir a tcnicas conocidas de

diseo de algoritmos, se decir, a esquemas muy generales que pueden adaptarse


a un problema particular al detallar las partes generales del esquema.
Muchos problemas pueden resolverse buscando una solucin fcil y directa pero, a
la vez bastante ineficiente. Este mtodo, llamado de fuerza bruta, puede ser muy
directo, pero con un poco de anlisis puede encontrarse algoritmos ms eficientes.
El esquema ms sencillo quizs sea el llamado divide y vencers, basado en la
descomposicin de un problema en subproblemas.
Otros esquemas requieren un anlisis minucioso del problema de forma que la
solucin se vaya construyendo en etapas. Si puede preverse que decisin conviene
en cada etapa para producir cierto tipo de mejor resultado, tenemos una solucin
voraz, si la decisin en una etapa, solo puede tomarse tras considerar varias
soluciones de otras etapas ms simples, la solucin es dinmica. Aun as, hay
problemas cuya solucin no puede hallarse sino mediante un proceso de
bsqueda, a pesar de lo complejas que son las operaciones de bsqueda, su uso
adecuado mediante el esquema de bsqueda con retroceso (o backtracking)
permite ganar gran eficiencia respecto a soluciones de fuerza bruta.
Por ltimo, conviene conocer otros mtodos de diseo de algoritmos que tambin
resultan de utilidad prctica. Nos estamos refiriendo a mtodos basados en la
mejora de la eficiencia (por ejemplo, el uso de parmetros de acumulacin al
resolver problemas utilizando divide y vencers, y el empleo de tablas como
estructura auxiliar para la resolucin eficiente de problemas donde se aplica
programacin dinmica), y a mtodos basados en transformaciones del dominio
para encontrar una solucin ms fcilmente a un problema en un dominio
transformado, siendo dicha solucin finalmente adaptada al dominio original.
Consideraciones generales:
Si el hbil programador dispone de un recetario de algoritmos de donde poder
seleccionar el ms adecuado para cada problema, su tarea se simplifica.
Supongamos que disponemos de una especificacin precisa, completa y
consistente del problema a resolver y queremos obtener un algoritmo en el que,
dados uno datos de entrada valido, se produzca cierto resultado. Si no nos importa
la eficiencia del algoritmo, podramos utilizar un algoritmo general llamado
algoritmo del museo britnico. Se programa un computador de manera que parta
de un conjunto de axioma matemticos y los que use para reducir aleatoriamente
teoremas validos.
Aprender los principios bsicos del diseo de algoritmos podemos preguntarnos
por un mtodo aceptable. El ms entendido, y quizs el mejor, es organizar el
diseo sobre un esquema de algoritmo o una tcnica de diseo que haya
demostrado su utilidad para otros problemas. Este mtodo de trabajo es
practicable, puesto que existe un nmero reducido de esquema y tcnicas de
diseo.
El conocimiento de tcnicas de diseo es solo un primer paso para el diseador,
que debe completarse con otros conocimientos y, sobre todo, con la experiencia.

A menudo los algoritmos requieren una organizacin bastante compleja de los


datos, y es por tanto necesario un estudio previo de las estructuras de datos
fundamentales. Dichas estructuras pueden implementarse de diferentes maneras,
y es ms, existen algoritmos para implementar dichas estructuras. El uso de
estructuras de datos adecuadas pueden hacer trivial el diseo de un algoritmo, o
un algoritmo muy complejo puede usar estructuras de datos muy simples.
Uno de los algoritmos ms antiguos conocidos es el algoritmo de Euclides. El
trmino algoritmo proviene del matemtico Muhammad ibn Musa al-Khwarizmi,
que vivi aproximadamente entre los aos 780 y 850 d.C. en la actual nacin Iran.
El describi la realizacin de operaciones elementales en el sistema de numeracin
decimal. De al-Khwarizmi se obtuvo la derivacin algoritmo.
- Clasificacin de algoritmos
* Algoritmo determinista: en cada paso del algoritmo se determina de forma
nica el siguiente paso.
* Algoritmo no determinista: deben decidir en cada paso de la ejecucin entre
varias alternativas y agotarlas todas antes de encontrar la solucin.
Todo algoritmo tiene una serie de caractersticas, entre otras que requiere una
serie de recursos, algo que es fundamental considerar a la hora de implementarlos
en una mquina.
Estos recursos son principalmente:
El tiempo: perodo transcurrido entre el inicio y la finalizacin del algoritmo.
La memoria: la cantidad (la medida vara segn la mquina) que necesita el
algoritmo para su ejecucin.
Obviamente, la capacidad y el diseo de la mquina pueden afectar al diseo del
algoritmo.
En general, la mayora de los problemas tienen un parmetro de entrada que es el
nmero de datos que hay que tratar, esto es, N. La cantidad de recursos del
algoritmo es tratada como una funcin de N. De esta manera puede establecerse
un tiempo de ejecucin del algoritmo que suele ser proporcional a una de las
siguientes funciones:

1 : Tiempo de ejecucin constante. Significa que la mayora de las instrucciones se


ejecutan una vez o muy pocas.

logN : Tiempo de ejecucin logartmico. Se puede considerar como una gran


constante. La base del logaritmo (en informtica la ms comn es la base 2) cambia
la constante, pero no demasiado. El programa es ms lento cuanto ms crezca N,
pero es inapreciable, pues logN no se duplica hasta que N llegue a N2.

N : Tiempo de ejecucin lineal. Un caso en el que N valga 40, tardar el doble que
otro en que N valga 20. Un ejemplo sera un algoritmo que lee N nmeros enteros y
devuelve la media aritmtica.

NlogN : El tiempo de ejecucin es NlogN. Es comn encontrarlo en algoritmos


como Quick Sort y otros del estilo divide y vencers. Si N se duplica, el tiempo de
ejecucin es ligeramente mayor del doble.

N2 : Tiempo de ejecucin cuadrtico. Suele ser habitual cuando se tratan pares de


elementos de datos, como por ejemplo un bucle anidado doble. Si N se duplica, el
tiempo de ejecucin aumenta cuatro veces. El peor caso de entrada del algoritmo
Quick Sort se ejecuta en este tiempo.

N3 : Tiempo de ejecucin cbico. Como ejemplo se puede dar el de un bucle


anidado triple. Si N se duplica, el tiempo de ejecucin se multiplica por ocho.

2N : Tiempo de ejecucin exponencial. No suelen ser muy tiles en la prctica por


el elevadsimo tiempo de ejecucin. El problema de la mochila resuelto por un
algoritmo de fuerza bruta -simple vuelta atrs- es un ejemplo. Si N se duplica, el
tiempo de ejecucin se eleva al cuadrado.
* Algoritmos polinomiales: aquellos que son proporcionales a Nk. Son en general
factibles.
* Algoritmos exponenciales: aquellos que son proporcionales a kN. En general son
infactibles salvo un tamao de entrada muy reducido.
- Notacin O-grande
En general, el tiempo de ejecucin es proporcional, esto es, multiplica por una
constante a alguno de los tiempos de ejecucin anteriormente propuestos, adems
de la suma de algunos trminos ms pequeos. As, un algoritmo cuyo tiempo de
ejecucin sea T = 3N2 + 6N se puede considerar proporcional a N2. En este caso
se dira que el algoritmo es del orden de N2, y se escribe O(N2). Los grafos
definidos por matriz de adyacencia ocupan un espacio O(N2), siendo N el nmero
de vrtices de ste.
La notacin O-grande ignora los factores constantes, es decir, ignora si se hace
una mejor o peor implementacin del algoritmo, adems de ser independiente de
los datos de entrada del algoritmo. Es decir, la utilidad de aplicar esta notacin a
un algoritmo es encontrar un lmite superior del tiempo de ejecucin, es decir, el
peor caso.
A veces ocurre que no hay que prestar demasiada atencin a esto. Conviene
diferenciar entre el peor caso y el esperado. Por ejemplo, el tiempo de ejecucin
del algoritmo Quick Sort es de O(N2). Sin embargo, en la prctica este caso no se
da casi nunca y la mayora de los casos son proporcionales a NlogN. Es por ello
que se utiliza esta ltima expresin para este mtodo de ordenacin.
Una definicin rigurosa de esta notacin es la siguiente:
Una funcin g(N) pertenece a O(f(N)) si y slo si existen las constantes c0 y
N0 tales que:
|g(N)| <= |c0f(N)| , para todo N >= N0.
- Clasificacin de problemas

Los problemas matemticos se pueden dividir en primera instancia en dos grupos:


* Problemas indecidibles: aquellos que no se pueden resolver mediante un
algoritmo.
* Problemas decidibles: aquellos que cuentan al menos con un algoritmo para
su cmputo. Sin embargo, que un problema sea decidible no implica que se pueda
encontrar su solucin, pues muchos problemas que disponen de algoritmos para su
resolucin son inabordables para un computador por el elevado nmero de
operaciones que hay que realizar para resolverlos. Esto permite separar los
problemas decidibles en dos:
* intratables: aquellos para los que no es factible obtener su solucin.
* tratables: aquellos para los que existe al menos un algoritmo capaz de
resolverlo en un tiempo razonable.
Los problemas pueden clasificarse tambin atendiendo a su complejidad.
Aquellos problemas para los que se conoce un algoritmo polinmico que los
resuelve se denominan clase P. Los algoritmos que los resuelven son
deterministas. Para otros problemas, sus mejores algoritmos conocidos son no
deterministas. Esta clase de problemas se denomina clase NP. Por tanto, los
problemas de la clase P son un subconjunto de los de la clase NP, pues slo
cuentan con una alternativa en cada paso.
DIAGRAMAS DE FLUJO:
Los diagramas de flujo son esquemas que representan grficamente un algoritmo
por medio de los pasos de un proceso, que se realizan para entender mejor al
mismo y son utilizados en programacin, economa y procesos industriales. Utilizan
unas series de smbolos con significados especiales.
Un diagrama de flujo u organigrama es una representacin diagramtico que
ilustra la secuencia de las operaciones que se realizan para conseguir la solucin
de un problema y son usados normalmente para seguir la secuencia lgicas de las
acciones en el diseo de problemas de computadoras y se dibujan generalmente
antes de comenzar a programar el cdigo frente a la computadora y una que se
dibuja el diagrama de flujo, llega hacer fcil escribir el programa en cualquier
idioma de alto nivel.
1.- Lgica dibujada.
2.- Es la representacin grfica de la solucin a un problema utilizando smbolos
predefinidos para su interpretacin.
3.- Es la representacin grfica del algoritmo.
4.- A nivel de programacin es la representacin grfica de lo que se desea que la
computadora realice.

5.- Son representaciones graficas de un algoritmo el cual muestra los pasos o


procesos a seguir para alcanzar la solucin de un problema. Es llamado diagramas
de flujo porque los smbolos utilizados se conectan por medio de flechas para
indicar la secuencia de una operacin y son tambin llamados flujo gramas.
Utilizan diversos smbolos para representar operaciones especficas.
Importancia de los Diagramas de Flujo:
Es importante ya que ayuda a designar cualquier representacin grfica de un
procedimiento o parte de ese, como su nombre lo indica representa el flujo de
informacin de un proceso.
Tipos de Diagramas:
Diagrama de Programa: Representa grficamente un mtodo propuesto para la
solucin de un problema determinado.
Diagrama de Sistema: Representa la integracin; interaccin lgicas de los
elementos dentro de un sistema propuesto.
Diagrama de Procedimiento: Representa grficamente una operacin o flujo de
datos dentro de un sistema.
Diagrama de flujo sencillo con los pasos a seguir si una lmpara no funciona.
Un diagrama de flujo es la forma ms tradicional de especificar los detalles
algortmicos de un proceso. Se utiliza principalmente en programacin, economa y
procesos industriales; estos diagramas utilizan una serie de smbolos con
significados especiales. Son la representacin grfica de los pasos de un proceso,
que se realiza para entenderlo mejor. Son modelos tecnolgicos utilizados para
comprender los rudimentos de la programacin lineal.
Definicin
Es un esquema para representar grficamente un algoritmo. Se basan en la
utilizacin de diversos smbolos para representar operaciones especficas. Se les
llama diagramas de flujo porque los smbolos utilizados se conectan por medio de
flechas para indicar la secuencia de operacin.
Smbolos utilizados
Para poder 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.
En teora, no es necesario usar un tipo especial de smbolos para crear un
diagrama de flujo, pero existen algunos ampliamente utilizados por lo que es
adecuado conocerlos y utilizarlos, ampliando as las posibilidades de crear un
diagrama ms claro y comprensible para crear un proceso lgico y con opciones

mltiples adecuadas. Se utilizan los smbolos indicados a continuacin,


estandarizados segn la norma ISO 5807:

Flecha. Indica el sentido y trayectoria del proceso de informacin o tarea.

Rectngulo. Se usa para representar un evento o proceso determinado. ste es


controlado dentro del diagrama de flujo en que se encuentra. Es el smbolo ms
comnmente utilizado. Se usa para representar un evento que ocurre de forma
automtica y del cual generalmente se sigue una secuencia determinada.

Rectngulo redondeado: Se usa para representar un evento que ocurre de


forma automtica del cul generalmente se sigue una secuencia determinada.

Rombo. Se utiliza para representar una condicin. Normalmente el flujo de


informacin entra por arriba y sale por un lado si la condicin se cumple o sale por el
lado opuesto si la condicin no se cumple. El rombo adems especifica que hay una
bifurcacin.

Crculo. Representa un punto de conexin entre procesos. Se utiliza cuando es


necesario dividir un diagrama de flujo en varias partes, por ejemplo por razones de
espacio o simplicidad. Una referencia debe darse dentro para distinguirlo de otros. La
mayora de las veces se utilizan nmeros en los mismos.

DOCUMENTO DATOS ALMACENADOS CONECTOR TERMINADOR


Existen adems un sin fin de formas especiales para denotar las entradas, las
salidas, los almacenamientos, etctera.
De acuerdo al estndar ISO, los smbolos e incluso las flechas deben tener ciertas
caractersticas para permanecer dentro de sus lineamientos y ser considerados
sintcticamente correctos. En el caso del crculo de conexin, se debe procurar
usarlo slo cuando se conecta con un proceso contenido dentro de la misma hoja.
Existen tambin conectores de pgina, que asemejan a una "rectngulo oblicuo" y
se utilizan para unir actividades que se encuentran en otra hoja.
Caractersticas que debe cumplir un diagrama de flujo
En los diagramas de flujo se presuponen los siguientes aspectos:

Existe siempre un camino que permite llegar a una solucin (finalizacin del
algoritmo).
Existe un nico inicio del proceso.
Existe un nico punto de fin para el proceso de flujo (salvo del rombo que indica
una comparacin con dos caminos posibles).
Recomendaciones
A su vez, es importante que al construir diagramas de flujo, se observen las
siguientes recomendaciones:

Evitar sumideros infinitos, burbujas que tienen entradas pero no salidas.

Evitar las burbujas de generacin espontnea, que tienen salidas sin tener
entradas, porque son sumamente sospechosas y generalmente incorrectas.

Tener cuidado con los flujos y procesos no etiquetados. Esto suele ser un indicio de
falta de esmero, pero puede esconder un error an ms grave: a veces el analista no
etiqueta un flujo o un proceso porque simplemente no se le ocurre algn nombre
razonable.
VARIABLE: Es un valor no fijo que permanece almacenado en la memoria del
computador y que es identificado con un nombre nico y irrepetible.
Podemos definirlo como cualquier cantidad o valor al cual hacemos referencia
asignndole un nombre, clave (casi siempre abreviada) y que tomar diferentes
valores durante el proceso.
Ejemplo: Nombres y Apellidos, Sueldo, Nmero de Cdula de Identidad.
Fsicamente, una variable es un espacio o direccin en la memoria del computador.
A= 0
A= B
Sueldo= SDO
Nombre= NOMBS
CARACTERSTICAS DE LAS VARIABLES:

El nombre de una variable puede ir formado por una o ms letras, nmeros o la


combinacin de ambas.
A COD COD01

Los nombres de las variables siempre debern comenzar por una letra.
FAC001 Nunca: 01COD
COD01 Nunca: 001FAC

Los nombres de las variables no debern ir separados por espacios en blanco.

Debe ser memotcnica.


Cdigo Empleado = CODEMP
Cdula= CED
Sueldo= SDO
Impuesto sobre la Renta= ISLR
Seguro Social Obligatorio= SS0
Monto= MTO
TIPOS DE VARIABLES:

Alfanumricas: Son aquellas que pueden almacenar cualquier carcter, letras (AZ); nmeros (0-9), espacios en blanco, o caracteres especiales ( , %, *, + , /, $, &,
etc)
Ejemplos:
ISLR= 10%
CED$= V- &&.&&&.&&&
FEC= (__/__/__)

Numricas: Son aquellas que almacenan slo nmeros (Dgitos) de (0-9).


A= 0
SDO=
CED= En nmeros.
TOT=
MTO=
CONSTANTE:
Es un valor que no vara, definido con un nombre nico y irrepetible que no va a
cambiar durante todo el algoritmo (Programa).
Es cualquier cantidad, la cual puede aparecer en forma LITERAL y permanecer
invariable durante el proceso (Va a almacenar un valor inalterable).
Ejemplos:
C= 5 Valor Fijo
C= C+1
C= (5)+1
CONTADOR:
Es un valor que se incrementa o decrementa, segn sea el caso, un contador en
trminos constante es un valor fijo que se va a ir contando, es decir cumpliendo
una funcin cuantitativa.
Es un campo en memoria, el cual sirve (como su nombre lo indica) para contar,
ste incrementa en el valor de 1 y nos muestra el nmero de veces que el proceso
ha detectado una ocurrencia determinada y siempre deberemos expresarlo en
forma cuantitativa.
C= 0
Ejemplo: C= C + 1
C= Variable contador
C + 1= Se incrementa cuantitativamente.

PR= Promedio de Notas.


TNOT= Total Notas
C= Cantidad de alumnos.
C= 100 hasta C= 0 (Decrementa)
1 2= Nmero de veces que se incrementa Nmero o decrementa el contador.
Incremento Decremento
C=0 C=100
ACUMULADOR:
Es un campo de memoria, un valor que se incrementa en forma no definida esto
por la suma de otro valor a dicho campo.
Es un campo en memoria, pero que su incremento no es de 1, sino que viene
alterndose por la suma de un valor a dicho campo.
Ejemplo= TSDO= 0
TSDO= TSDO + SDO
0 + 14000
14000 + 20000
34000 + 2000
36000
Todos los totales implica Acumulador, posiblemente se puede utilizar sumatoria.
DECISIN:
Es una evaluacin o determinacin que va arrojar un valor verdadero o falso.
Ejemplo: Determinar cul de dos nmeros es el mayor en forma de Algoritmo.
1.- Inicio
2.- Declarar: N1= 0; N2= 0
3.- Primer nmero: N1
4.-Segundo nmero: N2
5.-Preguntar: SI N1 > N2 *Decisin*
5.1.- Entonces El N mayor es: N1
5.2.- De lo contrario mostrar
5.3.- EL N mayor es:N2
6.- Fin
OPERADORES RELACIONALES:

> = Mayor que (Q)


< = Menor que (Q)
" = Mayor o igual (Q)
" = Menor o igual (Q)
< > = Diferente desigual
= Igual
OPERADORES LGICOS:
AND=
NOT=
OR=
OPERADORES ARITMETICOS:
+ = Suma
- = Resta
* = Multiplicacin
/ = Divisin
^ = Exponente o potencia
Ejemplos:
TASG = TASG + ASD
NETO = TASG - TDED
ISLR = SDO * 2%
PROM = TNOTAS / N ALUMNOS
1.- Diagrama de Flujo que calcule el 13,5% de cualquier nmero; lo muestre por
impresora.
- Identificacin de variables y anlisis de proceso.
N= 0
C= 13,5%
R= N * 13,5% R= N*C
1.- Algoritmo y Diagrama de Flujo para calcular la masa de un objeto que se mueve
con una fuerza y una aceleracin, donde: F= m.a, Imprimir el resultado con su
respectivo mensaje.
- Identificacin de variables y anlisis de proceso.
F= m * a

m= f / a
1.- Algoritmo y Diagrama de Flujo para calcular el rea de un crculo donde: a= *
r2
- Identificacin de variables y anlisis de proceso.
a= 0
r= 0
= 3,14
A.- Algoritmo que describe el proceso de verificar el Por qu?, de tu solvencia de
examen dice: No puede presentar.
1.- Inicio.
2.- Leer solvencia.
3.- Verificar la causa del problema.
4.- Si el problema es falta de pago.
5.- Cancelo la mensualidad.
6.- Entonces, puedo presentar.
7.- Si el problema es falta de nota
8.- Entonces, no puedo presentar
9.- Error en el Departamento de Control de Estudios.
10.- Soluciono el problema.
11.- Entonces, puedo presentar.
12.- Fin.
B.- Algoritmo que ayude a verificar porqu el torniquete del Metro de Caracas, me
impide salir.
1.- Inicio
2.- Si el torniquete est DAADO.
3.- Entonces, voy a otro torniquete, puedo salir.
4.- Si el importe del ticket es menor.
5.- Entonces, pago la diferencia.
6.- Si el ticket est deteriorado.
7.- Entonces, me dirijo al Operador, puedo salir.
8.- Fin.

c.- Algoritmo que descarte Por qu , el CPU del computador que se te asign en el
Laboratorio no enciende.
1.- Inicio
2.- Verifico la causa del problema.
3.- Si el problema es falta de energa elctrica.
4.- Entonces, no puedo utilizar el computador, fin.
5.- Si el problema es porque no est enchufado.
6.- Enchufo el cable soluciono el problema.
7.- Si el problema es de carcter tcnico.
8.- Entonces no puedo utilizar el computador, fin.
9.- Si el problema es que el computador est Daado.
10.- Entonces, utilizo otro computador.
11.- Fin.
Variables Lgicas:
Existe una clase de variables que solamente pueden tomar dos valores. Para estas
variables slo existen dos estados posibles; a cada uno de estos estados se le
asigna un valor.
Se acostumbra representar a estas variables con letras maysculas: U, V, W, X, Y,
Z. Uno De los estados se representa con la letra mayscula, y el otro con la misma
letra con una barra encima: U, V, W, X, Y, Z.
Si bien se usan los valores cierto y falso para los dos estados de este tipo de
variables, lo ms comn es el uso de los dgitos del sistema binario, 1 y 0, para
distinguir los dos estados posibles.
Abierto Abierta
X0X
Abierto Abierta
X1X
(b)
Ejemplo:
En la figura se presentan diversos componentes, que solamente pueden alcanzar
dos estados.
En (a) aparece un contacto elctrico, que puede estar abierto o cerrado. En (b), se
presenta una llave de paso de agua que puede estar abierta o cerrada.

Para el estado cerrado se asigna a la variable X el valor de 1; cuando est abierto


se le asigna el valor de 0.
Sobra decir que la asignacin de valores a los dos estados es totalmente arbitraria,
pudiendo haberlo hecho al contrario.
OPERACIONES LGICAS:
Las operaciones que se encuentran definidas sobre las variables lgicas son las
que siguen.
SUMA LGICA (Or)
La suma lgica de las variables X, Y, Z se indica
X+Y+Z
Usndose el operador + para indicar la operacin. Tambin se usa con mucha
frecuencia el operador (la letra o con acento), y con mayor frecuencia an se
emplea el trmino ingls (or).
El resultado de la suma lgica es 1 cuando al menos uno de los sumandos es 1; en
caso contrario el resultado es cero.
Ejemplo:
Sean las variables lgicas X, Y, Z, que en determinado momento tienen los valores
siguientes: X = 1; Y = 0; Z = 1.
La suma lgica ser:
1 + 0 +1 = 1
o101=1
o 1 or 0 or 1 =1
Ejemplo:
En algunos recintos se puede encender una luz usando interruptores localizados en
diferentes sitios. Por ejemplo, en la figura 3.2., se presenta una sala que tiene dos
puertas de entrada. Al lado de cada puerta existe un interruptor, que permite
apagar o encender la luz. Si las variables X, e Y indican el estado de esos
interruptores, adoptndose 1 cuando estn en On y 0 cuando en Off, la condicin
para que se encuentre la luz encendida es que, al menos uno de ellos, se
encuentre en On. Es decir, que
X+Y
D como resultado 1.
Y
X
Figura 3.2

PRODUCTO LGICO (And)


El producto lgico de varias variables X, Y, Z se indica as
X*Y*Z
Usndose el operador * para indicar la operacin. Tambin se usa con mucha
frecuencia el operador y, o su versin inglesa (And).
El resultado de un producto lgico vale 1 slo cuando todas las variables valen 1. Si
alguna de las variables tiene como valor 0, el problema valdr o.
Ejemplo:
Considrense las variables U, V, W cuyos valores son:
U = 0, V = 1 , W = 0.
El producto lgico U * V * W es igual a
U*V*W=0*1*0=0
El producto lgico U * V es igual a
U*V=0*1=0
Ejemplo:
Para asegurarse que todas las puertas de un Jumbo se encuentren
convenientemente aseguradas y que no ocurrir ninguna descomprensin cuando
se encuentre volando, se colocan micro interruptores en cada una de dichas
puertas. Si alguna puerta no cierra, el respectivo interruptor queda abierto. Cuando
se cierra, el interruptor queda cerrado.
Si se asigna el valor 1 a un interruptor cerrado, y 0 a uno que est abierto, slo
cuando todos se encuentren cerrados (todos en 1) recibir el piloto el permiso para
despegar. Es decir, si hay 5 puertas, con cinco interruptores denominados U, V, W,
X, Z, es necesario que U * V * W * X * Z sea 1 para que se d la condicin de vuelo.
COMPLEMENTO LGICO (Not)
El complemento lgico de una variable X se indica como X. Representa el otro
estado de la variable. El complemento de 1 es o; el de o es 1.
Adems de la superbarra ( ) colocada sobre la variable, tambin se acostumbra
anteponer la negacin no, como NO X, aunque con ms frecuencia se antepone la
negacin inglesa NOT; as: NOT X. Para facilidad de la escritura, en algunos textos
se coloca un apstrofe en lugar de la barra. Por ejemplo, H`.
Las anteriores son las operaciones lgicas bsicas, a partir de las cuales se pueden
definir otras ms complejas. Una manera grfica de visualizar rpidamente el
modo de ejecutarse las operaciones descritas es mediante el uso de contactos
elctricos.
FUNCIONES LGICAS:

La combinacin de variables lgicas, mediante el uso de los operadores lgicos, da


lugar a expresiones ms complejas, que pueden llamarse Funciones Lgicas. Estas,
como las variables que la forman, pueden alcanzar dos valores: cierto o falso, 1
0.
Las funciones lgicas tambin se representan mediante letras maysculas: A, B, C,
D, etc., procurando que no exista confusin entre las letras asignadas a las
variables y a las funciones.
Ejemplo
Como ejemplos de funciones lgicas se pueden dar los siguientes:
A = X * Y + Z * ( U + W)
B = Z + Z * ( W * Y + U)
Ejemplo:
Sea la funcin A= X * Y + Z * ( U + W )
En la que los valores de las variables son los siguientes:
X= 1; Y = 0; Z= 1; U= 1; W= 0
La evaluacin de la funcin es muy simple, se reemplazan las variables por sus
valores, se aplican las reglas de las operaciones lgicas y se obtiene el resultado.
Efectuando esto se obtiene,
A= 1 * 0 + 1 * (1 + 0)
A= 0 + 1 * ( 1 + 1)
A= 0 + 1 = 1
El resultado de la funcin A es 1.
TABLAS DE VERDAD:
Si se tabulan todas las posibles combinaciones de los valores de las variables de
una expresin, junto con el valor resultante de la misma, se obtiene lo que se
conoce como tabla de verdad de la funcin.
Las tablas de verdad son muy tiles para describir el comportamiento de los
sistemas, que pueden ser descritos mediante funciones lgicas. Para aclarar bien
la forma de obtenerlas se van a resolver algunos ejemplos.
Ejemplo:
Sea la funcin F= X + Y * X
La tabla de verdad para esta funcin se encuentra en la figura 3.5. Las dos
primeras columnas corresponden a las 4 posibles combinaciones de las variables X
e Y. En la tercera columna aparece el valor de F.
Para cada combinacin de X, Y se reemplazan sus valores en la funcin y se
obtiene el valor, tal como se hizo en el ejemplo anterior.

TABLAS DE VERDAD
X

Fig. 3.5
Ejemplo
Sea la funcin F= (P + Q) * R
En este caso, las posibles combinaciones de las tres variables son 8. Para cada tro
de valores de las variables, se reemplazan en la expresin de la funcin y se
obtiene el valor de F. En la figura 3.6. Aparece la tabla de la verdad para esta
funcin.
TABLAS DE VERDAD
P

Fig. 3.6
PR= TNOT/C
C= C-2
Fin

R= N * 13,5%
R
N
N=0 R=0
r
Inicio
Declarar variables
Leer N
Proceso / Calcular
Imprimir Resultado
Fin
Inicio
Inicio
Inicio
Declarar variables
m=0 f= 0 a=0
r
Leer N
af
f
Fin
Imprimir Resultado
Proceso / Calcular
La masa es:
Fin
m= f / a
Inicio
Inicio
Declarar variables
a=0 Pi= 3,14 r=0
r

Leer N
r
Fin
Imprimir Resultado
Proceso / Calcular
El rea es:
Fin
a= * r2
X

Partes y elementos para la construccin de


un algoritmo
1.1. PARTES DE UN ALGORITMO
Todo algoritmo debe obedecer a la estructura bsica de un sistema, es
decir: entrada, proceso y salida.
Donde:
ENTRADA
Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los
resultados esperados.
PROCESO
Pasos necesarios para obtener la solucin del problema o la situacin planteada.
SALIDA
Resultados arrojados por el proceso como solucin.

En el ejemplo del algoritmo de la sumatoria de los dos nmeros, tenemos:


ENTRADA
Valores de de las variables A y B.
PROCESO

Asignar a la variable Suma, el valor de A ms el valor de B.


SALIDA
Impresin del valor de la variable Suma, que contiene la sumatoria
De los valores de A y B.

1.2. CARACTERSTICAS DE LOS ALGORITMOS


Las caractersticas fundamentales que debe cumplir un algoritmo son:
PRECISIN
Indica el orden de realizacin de cada paso dentro del proceso.
DEFINICION
Indica la exactitud y consistencia de los pasos descritos en el proceso,
Si el algoritmo se prueba dos veces, en estas dos pruebas, se debe
Obtener el mismo resultado.
FINITUD
Indica el nmero razonable de pasos, los cuales deben conllevar a la finalizacin del
proceso y producir un resultado en un tiempo finito.

Al disear un algoritmo se debe tener presente las caractersticas de


precisin, definicin y finitud.
Visualicemos estas caractersticas a travs del siguiente ejemplo:
Ejemplo: Algoritmo para hacer una torta
Entrada: Harina de trigo, mantequilla, huevos, sal, azcar
Proceso: 1.- Unir la mantequilla con el azcar
2.- Batir hasta lograr consistencia cremosa
3.- Agregar harina de trigo, huevos, sal y azcar
4.- Batir hasta que esponje
5.- Precalentar el horno, en 250 , y enmantequillar tortera
6.- Una vez logre la consistencia de esponjado, colocar en la tortera

7.- Introducir en el horno por espacio de 45 minutos


Salida:
Torta
Siguiendo el ejemplo recuerde determinar las instrucciones de Entrada, Proceso y Salida.

Segn el ejercicio anterior, se puede determinar que el algoritmo para


hacer torta, cumple con las caractersticas fundamentales de los
algoritmos. Es decir, Es preciso?, Es definido?, Es finito?, razona tus
respuestas.
Ejercicio: Realice un algoritmo para la elaboracin de pan

1.3. ELEMENTOS PARA LA CONSTRUCCIN DE UN ALGORITMO


Definamos algoritmo como un conjunto de pasos conducentes a resolver
un problema, cada uno de esos pasos, corresponde a lo que se denomina
en el programa, una instruccin, aunque pudiera darse que, en una
instruccin se junten dos o ms pasos.
Aprender a realizar un algoritmo se fundamenta en lo que se persigue
lograr con su desarrollo; debido a que no existe un mtodo nico para
resolver problemas se estudian diferentes mtodos de resolucin o modelos
de construccin para lograr la generacin del resultado deseado.
Esto nos lleva a reestructurar el concepto de algoritmo, como un conjunto
de instrucciones o pasos en los que se describe su inicio, desarrollo o
proceso y salida o resultado del algoritmo; elaborados para lograr resolver
un problema.
Dado que un algoritmo es un conjunto de instrucciones elaboradas con la
finalidad de resolver un problema, a continuacin se describen los
elementos que se utilizan en la construccin de una instruccin.
Instruccin o sentencia
Dependiendo del origen del material instruccional se habla de instruccin o
sentencia; sta, define una accin o un mandato que se debe realizar, esa
accin o mandato se representa a travs de un comando o lo que es lo
mismopalabras reservadas de un lenguaje de programacin en particular.
Una instruccin est compuesta por uno o ms comandos (accin), datos,
smbolos, variables o constantes y expresiones, que en conjunto
representan una instruccin o sentencia.
Ejemplo de instruccin: En la construccin de los programas se estila utilizar una

instruccin por lnea. As mismo, se utiliza la identacin, que no es ms que la alineacin de

aquellas instrucciones dentro de las estructuras que las contienen de manera ordenada que
permita visualizar el inicio y fin de cada bloque de instrucciones.
Si ASISTIO =SI Entonces
Leer Sueldo,
Asignar Sueldo = Sueldo + Hora Extra
Fin Si
Donde:
SI
Representa una estructura condicional utilizada para establecer preguntas
O programar ciertas condiciones
ASISTIO
Nombre de una Variable lgica que puede obtener slo dos valores SI
O NO. En el ejemplo se programa la condicin de las variables cuando
Es SI
ENTONCES
Parte de la instruccin o estructura condicional
LEER SUELDO
Instruccin utilizando el comando cuya accin es la lectura de un campo
o dato
Asignar SUELDO=
SUELDO+HORAEXTRA

Instruccin de asignacin, permite asignar o calcular el valor que adquirir


Una variable
Fin SI
Cierra la estructura condicional Si Entonces Fin Si

Comandos o palabras reservadas

Todos los lenguajes, naturales o computacionales, tienen palabras que


denotan una accin. Los comandos no son ms que acciones que debe
interpretar y ejecutar el computador. Cada comando conserva una sintaxis
determinada, es decir la forma de utilizarlo. Los lenguajes computacionales
tienen en su repertorio comandos dirigidos al procesamiento de archivos y
datos, entre ellos: Leer, Calcular, Asignar, Clasificar, Imprimir.
Datos
Los datos son smbolos que se convierten en condiciones, hechos,
situaciones o valores. Un dato puede significar un nmero, una letra, un
signo ortogrfico o cualquier smbolo que represente una cantidad, una
medida, una palabra o una descripcin. La importancia de los datos est en
su capacidad de asociarse dentro de un contexto para convertirse en
informacin. Es decir, por si mismos los datos no tienen capacidad
de comunicar un significado y por tanto no pueden afectar el
comportamiento de quien los recibe. Para ser tiles, los datos deben
convertirse en informacin que ofrezca un significado, conocimiento, ideas
o conclusiones.
TIPOS DE DATOS
Como se describi anteriormente, un dato es un campo que puede
convertirse en informacin.
Existen datos simples (sin estructura) y compuestos (estructurados).
Los datos simples son los siguientes
Numricos (Reales, Enteros)
Lgicos
Carcter (Char, String)
Los tipos de datos simples son:
Tipos de datos
Numricos Lgicos Carcter
Reales Enteros Char String
Ejemplo. Ejemplos de tipos de datos simples

Tipo de datos Caractersticas

Ejemplos
Numricos Enteros
Los nmeros enteros son los nmeros naturales positivos y negativos que conocemos.
1
2
25
146
-456
Numricos Reales
Los nmeros reales, son los nmeros que tienen
Parte decimal.
0.56
1.00
25.13
148.45
-456.23
Lgicos o bolanos
Son aquellos datos cuyos nicos valores slo pueden
Ser: Verdadero (V) o Falso (F), puede encontrarse,
Verdadero (True) o Falso (False). Se utiliza
Para representar las opciones (si/no) a determinadas
Condiciones.
Nacionalidad = Venezolano
(S/N)?
Carcter o Char
Su valor lo comprenden todos los caracteres alfabticos,

Maysculas y minsculas (A Z), numricos


(0 9) y smbolos especiales (#,@,%,&).
Carcter String o
Cadena
Su valor est representado por un conjunto de caracteres.
Abril
Reporte Anual de Fallas
Tcnicas
1 de mayo, Da del
Trabajador
Ejercicio. Identifique en la tabla a continuacin los tipos de datos simples (numricos,
lgicos y carcter)

You might also like