Está en la página 1de 20

Algoritmos

computacionaes
NOMBRE MATRICULA CARRERA
Angel Rey Santiago Quiroz 1897346 ITS
Camacho

Guadalupe Alfonso blanco 2082482 IAS


Saucedo
Andrea García Lozano 1979114 IAS

Gilberto Emiliano González 1992065 ITS


Sandoval
Definición: un algoritmo nos permite llevar a cabo una tarea o encontrar la solución a un determinado
problema a través de un flujo de instrucciones bien definidas y estructuradas, que además deben estar en orden, y ser
finitas, es decir tener una solución o varias soluciones posibles.
Los algoritmos pueden ser de distintos tipos, los de la vida. Básicamente podría considerarse como un algoritmo
cualquier tarea que deba ser llevada a cabo mediante instrucciones y reglas definidas para ellos

Tipos de algoritmos: existen 4 tipos de algoritmos


• Algoritmos computacionales.
• Algoritmos no computacionales: es un algoritmo que no requiere de una computadora para ser ejecutado. Ejemplo:
Instalación de un equipo de sonido.
• Algoritmos cualitativos: un algoritmo es cualitativo cuando en sus pasos o instrucciones no están involucrados
cálculos numéricos.
• Algoritmos cuantitativos: son representados por pasos o instrucciones que involucran cálculos numéricos en busca
de un resultado satisfactorio, como por ejemplo los pasos que se deben seguir para la resolución de la ecuación
cuadrática.
Alcance: los algoritmos están insertos en nuestra naturaleza humana y vida cotidiana.
Las ciencias de la computación adquirieron una relevancia nunca antes vista. Con el avance
de la era de la información, los algoritmos se apropian cada vez más de los procesos
tecnológicos y, por lo tanto, de nuestra vida diaria.

¿Nuestra vida cotidiana?


Una tarea tan simple como buscar una dirección en internet, así como procesos asociados a
las tarjetas de crédito basan su funcionamiento en algoritmos. En el siglo XXI, procesos como
trabajo, reconocer rostros, tomar fotos, construir -y manejar- autos y enviar emails, entre otros
servicios entregados por aplicaciones móviles, se basan también en su uso.

Aplicaciones: los algoritmos simples pueden tener distintas aplicaciones para resolver
distintos problemas, por ejemplo.
1) Traductores inteligentes: Los servicios de traducción online, como el de Google, las
herramientas de traducción aprenden de las traducciones corregidas para aplicarlas en
futuras consultas.
2) Sumatorio: Posibilita incluir cálculos muy útiles para el diseño de algunas escenas. Se usa
esta herramienta para calcular sumatorias entre ellas las integrales.
3) Visión computacional: Las máquinas hoy en día reconocen imágenes mejor que los
métodos tradicionales como se demuestra con las nuevas aplicaciones de Google.
Pseudocódigo: Es un lenguaje
de especificación de algoritmos basado en
un sistema notacional, con estructuras
sintácticas y semánticas, similares a los
leguajes procedurales, por lo que puede
ser ejecutado directamente por un
computador. Las ventajas del uso del
pseudocódigo se muestran adelante.
Su uso en la planificación de un programa;
permitiendo que el programador se pueda
concentrar en la lógica y en las estructuras
de control.
Aunque el pseudocódigo es independiente
del lenguaje de alto nivel que vaya a
utilizarse, un algoritmo expresado en
pseudocódigo puede ser traducido más
fácilmente a muchos de ellos.
Constantes:

def: Una constante es un dato cuyo valor no puede cambiar


durante la ejecución del programa. Recibe un valor en el
momento
Como ya se ha comentado en el tema sobre las partes de un
programa, las constantes se declaran en una sección que
comienza con la palabra reservada const. Después de declarar
una constante ya puedes usarla en el cuerpo principal de un
programa. Tienen varios usos: ser miembro en una expresión,
en una comparación, asignar su valor a una variable, etc.
Constantes literales
Son valores de cualquier tipo que se utilizan
directamente, no se declaran ya que no tienen
nombre. En el siguiente ejemplo tienes un par de
constantes literales (el 3, el 4, y el 3.1416):

Constantes declaradas
También llamadas “constantes con nombre”, son las
que se declaran en la sección “const” asignándoles
un valor directamente.

Constantes expresión
También se declaran en la sección const, pero a
estas no se les asigna un valor directamente, sino
que se les asigna una expresión. Esta expresión se
evalúa en tiempo de compilación y el resultado se le
asigna a la constante.
Estructuras de decisión ,secuencial y de
repetición en programación
Un programador se enfrenta al desarrollo de un
programa con recursos y experiencia. Vamos a tratar de Un algoritmo secuencial es la
abordar los distintos recursos disponibles en base a secuencia de pasos según el
una terminología. En el diseño de un algoritmo no es en problema planteado, consta de una
absoluto trascendente saber si lo que necesitamos es
una estructura o una herramienta, pero sí será decisivo entrada y salida de un inicio y un fin.
que conozcamos el recurso necesario, llámese como se
llame.

Llamaremos estructura a una instrucción o conjunto de


instrucciones que controlan el flujo del programa para
que éste sea secuencial, alternativo o repetitivo. De ahí
la denominación de estructura secuencial, estructura de
decisión o estructura de repetición, que gráficamente
podemos asociar a:
iteración: la iteración es el acto de repetir un proceso, para
generar una secuencia de resultados (posiblemente ilimitada), con el
objetivo de acercarse a un propósito o resultado deseado.
la iteración, también llamada con el término inglés loop, es una
estructura de control, dentro de un algoritmo que resuelve un problema
dado, que ordena a la computadora ejecutar repetidamente una
secuencia de instrucciones, generalmente hasta la ocurrencia de
condiciones lógicas específicas.
Es importante destacar que la secuencia y selección, conforman una de
las tres estructuras fundamentales para la resolución algorítmica de un
problema determinado
• Hay varias formas de iteración; los más conocidos son el MENTRE,
el REPEAT, y el PER.
El llamado «bucle infinito», es un caso de iteración debido a un error de
programación que detiene la ejecución del programa.
En el desarrollo de software, el iterativo se utiliza para describir un
proceso de planificación y desarrollo heurístico donde una aplicación se
desarrolla en pequeñas secciones llamadas iteraciones.
Diagrama de flujo
¿Qué es un diagrama de flujo?
Un diagrama de flujo es un diagrama que describe un
proceso, sistema o algoritmo informático. Se usan
ampliamente en numerosos campos para documentar,
estudiar, planificar, mejorar y comunicar procesos que
suelen ser complejos en diagramas claros y fáciles de
comprender.
Los diagramas de flujo emplean rectángulos, óvalos,
diamantes y otras numerosas figuras para definir el tipo de
paso, junto con flechas conectoras que establecen el flujo y
la secuencia.
¿QUÉ REPRESENTAN LAS DIFERENTES FORMAS QUE ENCONTRAMOS EN
UN DIAGRAMA DE FLUJO?
Si ya has visto antes algún ejemplo de diagrama de flujo es posible que
te hayas fijado en que se usan diferentes formas dentro de ellos. Aunque
puedan parecer arbitrarias, estas formas en realidad hacen referencia a
procesos y subprocesos predefinidos.

Símbolo de proceso o acción: se representa con un rectángulo y hace


referencia a un paso en el proceso. Es la forma de diagrama de flujo que
se utiliza con mayor frecuencia.
Símbolo inicio/fin o terminador: se trata de un rectángulo con bordes
redondeados que aparece tanto en los puntos inicial como final de un
diagrama de flujo.
Símbolo de decisión: con forma de diamante, indica una pregunta a
la que hay que responder, normalmente sí/no o verdadero/falso. A
continuación, el diagrama de flujo se divide en diferentes ramas que
proporcionan direcciones únicas para cada respuesta.
Símbolo de datos o de entrada/salida: con forma de paralelogramo,
representa los datos que entran o salen del proceso, es decir, los
recursos utilizados o generados.
Técnicas de análisis y diseño de
algoritmos
El análisis es la fase que requiere una clara definición, donde se contemple exactamente lo
que debe hacer el programa y el resultado o solución deseada, se precisan especificaciones
detalladas de entrada y salida.
• El programa debe funcionar
• La documentación
• La eficiencia
• La corrección
• La flexibilidad

Aunque en la solución de problemas sencillos parezca evidente la codificación en un lenguaje


de programación concreto, es aconsejable realizar el diseño del algoritmo, a partir del cual se
codifique el programa.
La soluciones a problemas más complejos pueden requerir muchos más pasos. Las
estrategias seguidas usualmente a la hora de encontrar algoritmos para problemas
complejos son:
En el diseño de estos existen varios y los que te presentaremos a continuación son algunos
de los que se usan en la elaboración de estos…….
Naturaleza de
problemas de
algoritmos
o Los problemas algorítmicos son clasificados de acuerdo con su naturaleza
intrínseca respecto a la posibilidad y dificultad de resolverlos.

o Los problemas de naturaleza algorítmica que no admiten solución por algoritmo


son llamados no-computables.

o Los problemas de decisión y no-computables son llamados indecidibles.

o Los problemas para los cuales existen algoritmos de complejidad polinomial para
resolverlos son llamados tratables.

o Los problemas que admiten solución y para los cuales comprobadamente no


pueden ser resueltos por algoritmos de complejidad polinomial son rotulados de
intratables.
Top-Down
Es una técnica para diseñar que consiste en tomar el problema en
forma inicial como una cuestión global y descomponerlo sucesivamente
en problemas más pequeños y por lo tanto, de solución más sencilla.
La descomposición del problema original (y de las etapas
subsecuentes), puede detenerse cuando los problemas resultantes
alcanzan un nivel de detalle que el programador o analista pueden
implementar fácilmente.

Bottom-Up
Esta técnica consiste en partir de los detalles más precisos del
algoritmo completando sucesivamente módulos de mayor complejidad,
se recomienda cuando ya se cuenta con experiencia y ya se sabe lo
que se va a hacer. Conforme se va alcanzando el desarrollo de
módulos más grandes se plantea como objetivo final la resolución
global del problema.
Este método es el inverso del anterior y es recomendable cuando se
tiene un modelo para seguir o se cuenta con amplia experiencia en la
resolución de problemas semejantes.
implementación del
hardware/software

software
Implementación de un algoritmo en software o lo que es lo mismo,
preparado para ejecutarse en el procesador: el software siempre se tiene
que ejecutarse en el hardware de la maquina donde este. Normalmente
siempre dispone de un procesador de propósito general, llamado así
porque está pensado para poder ejecutarse cualquier algoritmo.
Además, para ejecutar cada instrucción, el procesador de propósito
general tiene que realizar una secuencia de pasos, que son siempre los
mismos (no como en la implementación es hardware).
Hay que aclarar, que, en un ordenador, además del procesador, podemos
ejecutar parte del software en otros dispositivos, como por ejemplo en la
tarjeta gráfica, que usa instrucciones más específicas, pero cuando habla
de implementación software de un algoritmo es para referirse a que
solamente utiliza el procesador.
Hardware

Implementación de un algoritmo en hardware específico: un algoritmo


implementado directamente en el hardware puede ejecutarse más rápido,
porque la única instrucción que tiene que cumplir es “ejecuta el algoritmo”
La principal razón de que sea más rápido es que no está ligado a un conjuro
de instrucciones generales y hay más libertad para decidir la forma de
resolver el problema.
Lo que se hace para implementar el algoritmo, es juntar componentes
básicos del hardware (puerta lógica) para conseguir otros componentes más
complejos.
Para la implementación se puede usar distintas técnicas de optimización que
no se pueden usar en la implementación software. por ejemplo, dividir el
problema en partes para resolverlas al mismo tiempo (paralelizar).
notación complejidad asintótica
¿Qué es la notación asintótica?

La notación asintótica se utiliza para 'medir la eficiencia' (velocidad de ejecución) de un algoritmo, sin importar, la máquina, el software o
lenguaje de programación utilizado, esto se logra midiendo qué tan rápido crece una función con el tamaño de su entrada que se denomina n.

Para determinar la complejidad de un algoritmo, se siguen los siguientes pasos:


-Se analiza el algoritmo para determinar una función que represente el número de operaciones a realizar por el mismo.
-Se define en términos de funciones matemáticas, el orden de la función.
-Se clasifica de acuerdo con su complejidad.
Tipos de notación asintótica

En la primera sección de este documento hemos descrito como una notación asintótica identifica el comportamiento de un algoritmo ante los
cambios en el tamaño de la entrada.
Puedes etiquetar una función, o un
algoritmo, con una notación asintótica de
muchas maneras diferentes. Algunos
ejemplos son describir un algoritmo por
su mejor caso, su peor caso, o el caso
promedio. Lo más común es analizar un
algoritmo por su peor caso. Por lo
general, no se evalúa el mejor caso,
porque no planeas el algoritmo para
estas condiciones. Un muy buen ejemplo
de esto son los algoritmos de
ordenamiento; específicamente, añadir
elementos a un árbol.
EJERCICIOS
Bibliografías
• Apablaza, M. C. D. (s. f.). La omnipresencia de los algoritmos en la vida cotidiana y en los grandes saltos de la tecnología. Universidad de Chile.
Recuperado 25 de agosto de 2021, de https://www.uchile.cl/noticias/132454/la-presencia-de-los-algoritmos-en-la-vida-cotidiana

• Algoritmos Cuantitativos. (s. f.). calameo.com. Recuperado 25 de agosto de 2021, de


https://es.calameo.com/books/0025477318a412d351788#:%7E:text=Estos%20algoritmos%20son%20representados%20por,resoluci%C3%B3n%2
0de%20la%20ecuaci%C3%B3n%20cuadr%C3%A1tica.

• A (2018, 14 enero). Qué Es Iteracion - Significado, Concepto, Definición. Significado Concepto.


https://significadoconcepto.com/iteracion/

• Qué es un diagrama de flujo. (2020). Lucidchart. https://www.lucidchart.com/pages/es/que-es-un-diagrama-de-flujo

• http://zeus.inf.ucv.cl/~rsoto/cursos/INF245/Cap4_6ppt_INF245.pdf

También podría gustarte