Documente Academic
Documente Profesional
Documente Cultură
Programación Estructurada
Hora: V1-V3
Matricula: 1828218
Carrera: IME
Tiempo secuencial. Un algoritmo funciona en tiempo discretizado paso a paso, definiendo así una
secuencia de estados computacionales por cada entrada válida.
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando
una estructura de primer orden y cada algoritmo es independiente de su implementación (los
algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden
son invariantes bajo isomorfismo.
Un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin
ambigüedad y sin hacer referencia a una computadora en particular, y además tiene un límite fijo
en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia
definición abarca tanto a algoritmos prácticos como aquellos que solo funcionan en teoría, por
ejemplo el método de Newton y la eliminación de Gauss-Jordan funcionan, al menos en principio,
con números de precisión infinita; sin embargo no es posible programar la precisión infinita en una
computadora, y no por ello dejan de ser algoritmos. En particular es posible considerar una cuarta
propiedad que puede ser usada para validar la tesis de Church-Turing de que toda función
calculable se puede programar en una máquina de Turing (o equivalentemente, en un lenguaje de
programación suficientemente general); Aritmetizabilidad, solamente operaciones innegablemente
calculables están disponibles en el paso inicial.
Características:
Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea
especifica, como la solución de un problema. Los algoritmos son independientes tanto del lenguaje
de programación en que se expresan como de la computadora que los ejecuta. En cada problema
Por ejemplo en una analogía con la vida diaria, una receta de un plato de cocina se puede
expresar en español, ingles o francés, pero cualquiera que sea el lenguaje, los pasos para la
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea
Los pasos de un algoritmo deben ser simples y exentos de ambigüedades, deben seguir un orden
cuidadosamente prescrito, deben ser efectivos y deben de resolver el problema en un número finito
de pasos.
Precisión
Las instrucciones y los pasos contenidos en un algoritmo deben ser precisos, es decir, no deben
Esto se debe a que sus instrucciones deben poder seguirse y comprenderse a cabalidad, o
de lo contrario el diagrama de flujo en el que se inscribe no arrojará el resultado correcto.
Definición
Todo algoritmo debe estar perfectamente definido, es decir, se lo debe seguir cuantas veces
sea necesario obteniendo cada vez siempre el mismo resultado.
Finitud
Los algoritmos deben ser finitos: deben terminar en algún momento o arrojar un resultado al
final de sus pasos.
Legibilidad
Partes de un algoritmo
Entrada. La instrucción inicial que da pie al algoritmo y que motiva su lectura. Puede llamarse también
inicio, cabecera o punto de partida.
Proceso. Se trata de la elaboración puntual ofrecida por el algoritmo, el cuerpo de sus claves para
formular una instrucción. También puede llamarse declaraciones.
Salida. Por último, están las instrucciones puntuales dictaminadas por el algoritmo, es decir, sus
resoluciones o comandos. También puede llamarse cuerpo, pie o fin.
Tipos de algoritmo
Según su sistema de signos. Conforme a la manera en que describen los pasos a seguir,
podemos hablar de:
Algoritmos cualitativos. Emplean texto y caracteres verbales para impartir sus instrucciones. Por
ejemplo, una receta de cocina.
Algoritmos cuantitativos. Emplean cálculos numéricos y operaciones algebraicas. Por ejemplo, una
multiplicación.
Según sus funciones. De acuerdo a las funciones del algoritmo, podemos hablar de:
Algoritmos de ordenamiento. Establecen una secuencia de algún tipo para el ingreso de algún tipo
de datos.
Algoritmos de búsqueda. Como su nombre lo indica, permite recuperar de una lista específica una
serie de elementos determinados.
Algoritmos de encaminamiento. Determinan qué proceso seguirá una instrucción o cómo deberá
transmitirse un conjunto de datos. Pueden ser adaptativos (se adaptan al problema) o estáticos
(siempre operan igual).
Según su estrategia. Conforme al método empleado para arrojar sus resultados, podemos estar
en presencia de:
Algoritmos probabilísticos. Ofrecen un margen de probabilidad como resultado, de modo que no hay
total certeza de su precisión.
Algoritmos heurísticos. Se emplean cuando los métodos tradicionales fallan en arrojar una solución ya
que abandonan algún objetivo para alcanzar un resultado posible.
Algoritmos cotidianos. Aquellos usados en la toma cotidiana de decisiones y que pertenecen al ámbito
de los más sencillos.
Algoritmos de escalada. Modifican el proceso a medida que la solución es insatisfactoria (no cumple con
la entrada y salida) hasta aproximarse a lo buscado.
Algoritmos deterministas. Operan de manera lineal, de modo que sus resultados pueden ser predichos y
pueden aplicarse a procesos controlados.
Ventajas de un algoritmo:
Los algoritmos son la esencia de la informática, son uno de los centros de interés de
muchas, si no todas, de las áreas del campo de la informática.
Desventajas de un algoritmo:
Hay textos que desarrollan los algoritmos, mediante diversos tipos de programas, por
ejemplo: el lenguaje de programación C++, pero para comprender las letras deben poseer
al menos un año de experiencia en ese lenguaje de programación de alto y bajo nivel.
Muchos algoritmos interesantes llevan implícitos complicados métodos de organización de
los datos utilizados en el calendo.
Con frecuencia sucede que muchos de los algoritmos que se van a utilizar son fáciles de
implementan una vez que se ha descompuesto el programa, sin embargo, en la mayor
parte de los casos, existen unos pocos algoritmos cuya elección es crítica porque su
ejecución ocupara la mayoría de los recursos del sistema.
La elección del mayor algoritmo para una tarea particular puede ser un proceso muy
complicado y con frecuencia conllevara un análisis matemático sofisticado.
El cerebro y motor de estos aplicativos analíticos y de optimización son los algoritmos, que
convierten datos desestructurados en conocimiento y son los responsables de muchos de los
avances más relevantes en el campo de la ciencia y de la economía.
Está demostrado que para modelizar escenarios complejos que incorporan un alto número de
variables, el cerebro no es el instrumento más eficaz para realizar este tipo de previsiones, las
empresas invierten cada vez más en los algoritmos. La disponibilidad de grandes volúmenes de big
data a coste razonable y capacidad de procesarlos a gran velocidad ha originado que un gran
número de empresas utilicen ya algoritmos para sus previsiones y sus procesos de toma de
decisiones.
La supercomputación tiene aplicaciones que ya están resultando fundamentales para el desarrollo
de todos los sectores empresariales (red de distribución eléctrica, finanzas, gestión de riesgos,
robótica, coches autónomos con conectividad... y en el campo de los videojuegos donde los
superordenadores son imbatibles) y su incidencia en el mercado laboral de esta nueva revolución
industrial (la revolución 4.0) para que nuestra sociedad sepa adaptarse a la disponibilidad de
autómatas y ante la irrupción de la inteligencia artificial.
Técnicamente todo problema susceptible de ser analizado mediante una secuencia lógica de
operaciones es susceptible de ser modelizada a través de un algoritmo. Otra cuestión es la
capacidad humana para traducir a lenguaje matemático al comportamiento que describe un
determinado fenómeno y las decisiones a adoptar.
La cruz de los algoritmos es que pueden suponer un riesgo empresarial. El ejemplo más reciente
se recuerda en Wall Street, con el nombre de flash crash. Fue el 6 de mayo de 2010, cuando el
cambio de estado simultáneo de una serie de variables provocó que se desencadenase una
secuencia controlada por algoritmos que se retroalimentaban. En 14 segundos los operadores HFT
negociaron cerca de 27.000 operaciones y la bolsa estadounidense perdió el 13% de su valor de
capitalización en tan solo 5 minutos.
Genere un algoritmo que determine cuándo una persona puede casarse; es decir, solo si se es
mayor de edad y soltero.
INICIO
1- Escribir «¿Cuál es su edad?»
2- Leer edad
3- Escribir «¿Cuál es su estado civil?»
4- Leer estado civil
5- Si (edad >= 18 y estado civil= soltero) entonces
6- Escribir «Puede casarse»
7- Si no
8- Escribir «No puede casarse»
9- Fin (del si)
FIN
Ejemplo algoritmo gráfico:
Ejemplo de algoritmo resuelto
Genere un algoritmo que determine cuándo una persona puede casarse; es decir, solo si se es
mayor de edad y soltero.
INICIO
1- Escribir «¿Cuál es su edad?»
2- Leer edad
3- Escribir «¿Cuál es su estado civil?»
4- Leer estado civil
5- Si (edad >= 18 y estado civil= soltero) entonces
6- Escribir «Puede casarse»
7- Si no
8- Escribir «No puede casarse»
9- Fin (del si)
FIN
A partir de los siguientes datos, desarrolla un algoritmo para llenar un vaso de agua:
– Un vaso
– Un grifo
INICIO
1- Tomar el vaso
2- Abrir el grifo
3- Colocar el vaso bajo el grifo
4- Esperar que el vaso se llene
5- Retirar el vaso
6- Cerrar el grifo
FIN
INICIO
1- Quite la tapa de la ranura de la tarjeta SIM
2- Inserte la tarjeta SIM en la ranura
3- Verifique el área de contacto de la tarjeta y su correcta ubicación
4- Presione la tarjeta
5- Coloque la tapa de la ranura de la tarjeta SIM
FIN
Ejemplo de algoritmo matemático