Sei sulla pagina 1di 11

UNIVERSIDAD AUTONOMA DE NUEVO LEON

FACULTAD DE INGENIERIA MECANICA Y ELECTRICA

Programación Estructurada

Actividad #1: Algoritmos

Hora: V1-V3

Instructor: “Ing. Antonio Juárez Covarrubias”


Nombre: Josafat Juárez López

Matricula: 1828218

Carrera: IME

Fecha de entrega: 30/08/2019


Definición:

En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo.


Muchos autores los señalan como listas de instrucciones para resolver un cálculo o un problema
abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada)
en una solución (salida).123456 Sin embargo cabe notar que algunos algoritmos no necesariamente
tienen que terminar o resolver un problema en particular. Por ejemplo, una versión modificada de
la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un
algoritmo.7
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando
modelos matemáticos. Esto fue realizado por Alonzo Church en 1936 con el concepto de
"calculabilidad efectiva" basada en su cálculo lambda y por Alan Turing basándose en la máquina
de Turing. Los dos enfoques son equivalentes, en el sentido en que se pueden resolver
exactamente los mismos problemas con ambos enfoques. Sin embargo, estos modelos están
sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en
general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.31 En general,
la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades
siempre y cuando no consideremos algoritmos paralelos:7

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.

Exploración acotada. La transición de un estado al siguiente queda completamente determinada


por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede
tomar en cuenta una cantidad fija y limitada de términos del estado actual.

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

el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una

computadora distinta; sin embargo el algoritmo será siempre el mismo.

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

elaboración del plato se realizaran sin importar el cocinero.

Los pasos a seguir en la solución de una ecuación de segundo grado.

Los pasos matemáticos para la solución de un número factorial.

Las instrucciones para la liquidación de una nomina.

Las acciones que se deben seguir para la obtención de una estadística.

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de modo

que sin algoritmo no puede existir un programa.

Características de los algoritmos

Las características fundamentales que debe cumplir todo algoritmo son:

Un algoritmo debe ser preciso e 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. Si se sigue un algoritmo, se debe terminar en algún momento; o sea

debe de tener un número finito de pasos.

La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.

En el algoritmo citado anteriormente se tendrá:

Entrada ingredientes y utensilios empleados

Proceso elaboración de la receta de cocina

Salida terminación del plato

Un algoritmo exige que se tengan varias propiedades importantes:

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

dejar margen para ningún tipo de ambigüedad.

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.

De lo contrario, el algoritmo no será fiable y no servirá como guía en la toma de decisiones.

Finitud

Los algoritmos deben ser finitos: deben terminar en algún momento o arrojar un resultado al
final de sus pasos.

Si el algoritmo se prolonga indefinidamente, regresando a algún punto inicial sin poderse


resolver jamás, estaremos en presencia de una paradoja o un “loop” de repeticiones.

Legibilidad

La legibilidad de los algoritmos es clave, pues si su contenido es incomprensible no podrán


seguirse las instrucciones adecuadas. Esto implica una redacción directa, clara y concisa del
texto contenido en cada uno.

Partes de un algoritmo

Todo algoritmo presenta tres partes distintas: entrada, proceso y salida.

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

Existen diversas clasificaciones de los algoritmos, en base a distintas características. Algunos


pueden ser:

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.

 Puedes trabajar en orden.

 Te redacta en orden paso a paso lo que hay que hacer.

 Ayuda a resolver más fácil y rápido los problemas.

 Disminuye sensiblemente el riesgo de errores.

 Favorece el obtener el máximo de información.

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.

 Actualmente se está estudiando en la informática, como seleccionar el algoritmo que


conduzca a la mejor implementación pues para la mayoría de los problemas existen varios
algoritmos diferentes.

Aplicación en una empresa:

La supercomputación tiene ya aplicaciones que están resultando fundamentales en el desarrollo y


evolución en todos los sectores y, en nuestro caso, en el ámbito empresarial.

En la informática convencional los sistemas analizan de manera retrospectiva la información


recogida previamente en una base de datos. Por el contrario la supercomputación -y nos lo
confirma Amparo Moraleda, expresidenta de IBM-España-, está diseñada con nuevas soluciones
de software capaces de analizar de forma continua y en tiempo real, y extraer volúmenes masivos
de datos (big data) que se generan de manera permanente en bases tradicionales y en formatos
no estructurados, como redes sociales, sensores, etc., en un mundo cada vez más interconectado,
y que permiten extraer valor y conocimiento y tomar decisiones en tiempo real.

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.

La implementación de los algoritmos es irreversible, pero el ritmo de cambio y sus consecuencias


en el mundo empresarial son una incógnita. Los nuevos paradigmas serán más eficientes y mejor
gestionables en el sentido de que serán capaces de soportar la evolución de los modelos de
negocio. El futuro siempre trae cosas nuevas, y siempre alguien se queda anticuado.

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.

Datos: Edad, estado civil

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.

Datos: Edad, estado civil

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 de algoritmo cotidiano

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

Ejemplo de algoritmo cuantitativo

1- Desarrollar un algoritmo para insertar una tarjeta SIM en un teléfono móvil.

Datos: teléfono móvil, tarjeta SIM

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

1- Desarrollar un algoritmo para calcular el promedio de 3 calificaciones.

Variables: ENTERO: N1, N2, N3 REAL: Prom


INICIO
1- Leer N1, N2, N3
2- Prom= (N1 + N2 + N3)/3
3- Escribir Prom
FIN

Potrebbero piacerti anche