2. Concepto Algoritmo
• En matemáticas, ciencias de la
computación y otras doctrinas
relacionadas, el algoritmo se define
como un conjunto de preceptos
establecidos e inequívocos,
encontrados metódicamente y de
manera limitada que permiten efectuar
cómputos, procesar ciertas
informaciones, dar soluciones a
problemas y llevar a cabo diversas
actividades. Una vez que se parte de un
estado inicial y una entrada, siguiendo
los procedimientos requeridos, se llega
al estado final y se obtiene un resultado.
Los algoritmos son el objeto de
indagación de la algoritmia y aunque
muchos no lo crean, éstos también se
pueden usar en todos los aspectos de la
vida cotidiana.
Continuemos
3. Características de un algoritmo
• Un algoritmo debe ser preciso:
tiene que indicar el orden de
realización de cada paso.
• Un algoritmo debe estar
definido: Si se sigue un algoritmo
dos veces, se debe obtener el
mismo resultado cada vez.
• Un algoritmo debe ser finito: el
algoritmo se debe terminar en algún
momento; o sea, debe tener un
número finito de pasos.
• Un algoritmo debe ser legible: El
texto que lo describe debe ser
claro, tal que permita entenderlo y
leerlo fácilmente.
• Un algoritmo debe definir tres
partes: Entrada, Proceso y Salida.
Continuemos
4. Partes de un Algoritmo
• ENTRADA
• Corresponde al insumo, a los datos necesarios
que requiere el proceso para ofrecer los
resultados esperados.
• PROCESO
• Pasos necesarios para obtener la solución del
problema o la situación planteada.
• SALIDA
• Resultados arrojados por el proceso como
solución.
• En el ejemplo del algoritmo de la sumatoria de
los dos números, tenemos:
• ENTRADA
• Valores de las variables A y B.
• PROCESO
• Asignar a la variable Suma, el valor de a más el
valor de B.
• SALIDA
• Impresión del valor de la variable Suma, que
contiene la sumatoria de los valores de A y B.
Continuemos
5. Formas de representar un
Algoritmo
Continuemos
Los algoritmos pueden ser expresados de
muchas maneras, incluyendo al lenguaje
natural, pseudocódigo, diagramas de flujo
y lenguajes de programación entre otros.
Las descripciones en lenguaje natural
tienden a ser ambiguas y extensas. El usar
pseudocódigo y diagramas de flujo evita
muchas ambigüedades del lenguaje
natural. Dichas expresiones son formas
más estructuradas para representar
algoritmos; no obstante, se mantienen
independientes de un lenguaje de
programación específico.
6. Clasificación de algoritmos por
naturaleza
• Sustitución: En un cifrado por sustitución, cada letra o
grupo de letras se reemplaza por otra letra o grupo de
letras. Un ataque básico a este sistema de cifrado
aprovecha las propiedades y estadísticas del lenguaje
natural (por ejemplo en inglés la letra e es la más común,
por lo que el símbolo más repetido probablemente
simbolice la e). O Transposición: Los cifrados por
sustitución conservan el orden de los símbolos de texto
llano, pero los disfrazan. Los cifrados por transposición
reordenan las letras sin disfrazarlas. Para descifrarlo el
cripta analista debe estar consciente de que se
encuentra con un cifrado de este tipo (por ejemplo por
transposición de columnas), adivinar la cantidad de
columnas y ordenarlas lo cual es más complicado que la
sustitución. O Rellenos de una sola vez: Se escoge una
clave al azar, se convierte el texto plano en una cadena
de bits y se realiza un XOR entre la clave y el texto bit
por bit. Este método es inmune a cualquier ataque dado
que se rompe completamente con las propiedades y
estadísticas del lenguaje natural. El único problema es
que la clave no puede ser memorizada por lo que el
emisor y receptor deben cargar una copia con ellos (lo
cual es un peligro) junto con la sensibilidad del método a
algún carácter perdido. Continuemos
7. Propiedades de un
Algoritmo
• Como lo mencionamos en la entrada anterior,
un algoritmo es, básicamente, una secuencia
precisa de operaciones (pasos) que resuelven
un problema en un tiempo finito.
• Los algoritmos son independientes de
cualquier lenguaje de programación y del
ordenador que los ejecuta. Se pueden
expresar en multitud de lenguajes y ejecutarse
en distintos ordenadores.
• Entre las propiedades de los algoritmos
tenemos:
• a) Siempre debe terminar.
• b) Debe tener instrucciones concretas, es
decir, sin ninguna ambigüedad.
• c) Todos sus pasos deben ser simples y
tener un orden definido.
• d) Debe ser eficiente y rápido. Para un
problema existen múltiples soluciones, y
debemos escoger que consuma menos
tiempo y recursos.
• e) Debe funcionar sean cuales sean sus datos
de entrada.
• A partir de este punto trataremos de hacer
entradas cortas y un poco mas precisa, para
hacer mas cómoda la búsqueda de temas.
Finalizar