Está en la página 1de 16

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA

UNIVERSIDAD NACIONAL EXPERIMENTALDE LA FUERZA ARMADA


NACIONAL BOLIVARIANA

NÚCLEO MIRANDA - EXTENSIÓN SANTE TERESA DEL TUY

ALGORITMOS

Docente: Alumnos:
-Nirma Velazco -Evelyn Buenaño C.I.30.397.018

-Samuel Uztaris C.I. 27.703.385

Santa Teresa del Tuy 05 de Noviembre 2022


INDICE

PAG

Introducción………………………………………………… 3

El algoritmo.................................................................... 4

Tipos de Algoritmo………………………………………… 4;5;6;7;8

Diseños……………………………………………………… 8;9

Variables……………………………………………………. 10;11;12

Diagrama de flujo…………………………………………… 13;13;14

Conclusión…………………………………………………… 15

Referencia Bibliografía……………………………………… 16
INTRODUCCION

Este tema pretende mostrar al alumno cómo, a partir de unas


especificaciones de un problema del mundo real, diseñar una solución
para dicho problema (algoritmo) susceptible de ser codificada en un
lenguaje de programación. Con este objetivo se describirán las
propiedades básicas de cualquier algoritmo, un conjunto de bloques
básicos que permiten la construcción de algoritmos y diversas formas de
representación de los algoritmos. En el tema también se mostrarán las
distintas fases que se deben de seguir para buscar una solución a un
problema del mundo real.

Un diagrama de flujo u organigrama es una representación diagramática


que ilustra la secuencia de las operaciones que se realizarán para
conseguir la solución de un problema. Los diagramas de flujo se dibujan
generalmente antes de comenzar a programar el código frente a la
computadora. Los diagramas de flujo facilitan la comunicación entre los
Programadores y la gente del negocio
El Algoritmo

-Definición

Un algoritmo informático es un conjunto de instrucciones definidas,


ordenadas y acotadas para resolver un problema, realizar un cálculo o
desarrollar una tarea. Es decir, un algoritmo es un procedimiento paso a
paso para conseguir un fin. A partir de un estado e información iniciales,
se siguen una serie de pasos ordenados para llegar a la solución de una
situación.

En programación, un algoritmo supone el paso previo a ponerse a escribir


el código. Primero debemos encontrar la forma de obtener la solución al
problema (definir el algoritmo informático), para luego, a través del código,
poder indicarle a la máquina qué acciones queremos que lleve a cabo. De
este modo, un programa informático no sería más que un conjunto de
algoritmos ordenados y codificados en un lenguaje de programación para
poder ser ejecutados en un ordenador.

No obstante, los algoritmos no son algo exclusivo de los ámbitos de las


matemáticas, la lógica y la computación. Utilizamos numerosos algoritmos
para resolver problemas en nuestra vida cotidiana. Algunos de los
ejemplos más habituales son los manuales de instrucciones o las recetas
de cocina.

-Tipos de Algoritmo

Existen diversas clasificaciones de algoritmos, en función de diferentes


criterios. Según su sistema de signos (cómo describen los pasos a
seguir), se distingue entre algoritmos cuantitativos y cualitativos, si lo
hacen a través de cálculos matemáticos o secuencias lógicas. Asimismo,
si requieren o no el empleo de un ordenador para su resolución, se
clasifican en computacionales y no computacionales.
Pero, si nos fijamos en su función (qué hace) y su estrategia para llegar a
la solución (cómo lo hace), encontramos muchos más tipos de algoritmos.
Destacamos los siguientes cinco tipos de algoritmos informáticos:

*Algoritmos de búsqueda

Los algoritmos de búsqueda localizan uno o varios elementos que


presenten una serie de propiedades dentro de una estructura de datos.

Ejemplos de algoritmos de búsqueda

Existen diversos tipos de búsquedas, entre las que sobresalen:

o Búsqueda secuencial. En la que se compara el elemento a localizar


con cada elemento del conjunto hasta encontrarlo o hasta que
hayamos comparado todos.
o Búsqueda binaria. En un conjunto de elementos ordenados, hace
una comparación con el elemento ubicado en el medio y, si no son
iguales, continúa la búsqueda en la mitad donde puede estar. Y así
sucesivamente en intervalos cada vez más pequeños de
elementos.

*Algoritmos de ordenamiento

Reorganizan los elementos de un listado según una relación de orden.


Las más habituales son el orden numérico y el orden lexicográfico. Un
orden eficiente optimiza el uso de algoritmos como los de búsqueda y
facilitan la consecución de resultados legibles por personas y no solo
máquinas.

Ejemplos de algoritmos de ordenamiento

Algunos algoritmos de ordenamiento son:

o Ordenamiento de burbuja. Compara cada elemento de la lista a


ordenar con el siguiente e intercambia su posición si no están en el
orden adecuado. Se revisa varias veces toda la lista hasta que no
se necesiten más intercambios.
o Ordenamiento por selección. Vamos colocando el elemento más
pequeño disponible en cada una de las posiciones de la lista de
forma consecutiva.
o Ordenamiento rápido. Elegimos un elemento del conjunto (pivote) y
reubicamos el resto a cada uno de sus lados, en función de si son
mayores o menores que el elemento que estamos tomando como
referencia. Repetimos el procedimiento en cada subconjunto.

*Algoritmos voraces

Los algoritmos voraces consisten en una estrategia de búsqueda que


sigue una heurística en la que se elige la mejor opción óptima en cada
paso local con el objetivo de llegar a una solución general óptima. Es
decir, en cada paso del proceso escogen el mejor elemento (elemento
prometedor) y comprueban que pueda formar parte de una solución global
factible. Normalmente se utilizan para resolver problemas de optimización.

Ejemplos de algoritmos voraces

En ocasiones, estos algoritmos no encuentran la solución global óptima,


ya que al tomar una decisión solo tienen en cuenta la información de las
decisiones que han tomado hasta el momento y no las futuras que puede
adoptar. Algunos casos en los que los algoritmos voraces alcanzan
soluciones óptimas son:

o Problema de la mochila fraccional (KP). Disponemos de una


colección de objetos (cada uno de ellos con un valor y un peso
asociados) y debemos determinar cuáles colocar en la mochila
para lograr transportar el valor máximo sin superar el peso que
puede soportar.
o Algoritmo de Dijkstra. Utilizado para determinar el camino más
corto desde un vértice origen hasta los demás vértices de un grafo,
que tiene pesos en cada arista.
o Codificación Huffman. Método de compresión de datos sin perder
información, que analiza la frecuencia de aparición de caracteres
de un mensaje y les asigna un código de longitud variable. Cuanto
mayor sea la frecuencia le corresponderá un código más corto.

*Programación dinámica

La programación dinámica es un método de resolución de problemas en


el que dividimos un problema complejo en subproblemas y calculamos y
almacenamos sus soluciones, para que no haga falta volver a calcularlas
más adelante para llegar a la solución del problema. La programación
dinámica reduce el tiempo de ejecución de un algoritmo al optimizar la
recursión.

Eso sí, para poder aplicarse a un problema, éste debe tener


subestructuras óptimas y subproblemas superpuestos. Es decir, que en él
se puedan usar soluciones óptimas de subproblemas para encontrar la
solución óptima del problema en su conjunto y que el problema se pueda
dividir en subproblemas que se reutilizan para ofrecer el resultado global.

Usos de programación dinámica

Algunos casos en los que se utiliza son:

o La serie de Fibonacci. Sucesión de números que comienza con “0”


y “1” y, a partir de ellos, cada número es resultado de la suma de
los dos que le preceden. La relación de recurrencia la define.
o Problema de la mochila.

*Algoritmos probabilísticos

Es una técnica que usa una fuente de aleatoriedad como parte de su


lógica. Mediante un muestreo aleatorio de la entrada llega a una solución
que puede no ser totalmente óptima, pero que es adecuada para el
problema planteado.
Se utiliza en situaciones con limitaciones de tiempo o memoria y cuando
se puede aceptar una buena solución de media, ya que a partir de los
mismos datos se pueden obtener soluciones diferentes y algunas
erróneas. Para que sea más probable ofrecer una solución correcta, se
repite el algoritmo varias veces con diferentes submuestras aleatorias y
se comparan los resultados.

Tipos de algoritmos probabilísticos

Existen dos tipos principales de algoritmos probabilísticos:

o Algoritmo de Montecarlo. Dependiendo de la entrada, hay una


pequeña probabilidad de que no acierte o no llegue a una solución.
Se puede reducir la probabilidad de error aumentando el tiempo de
cálculo.
o Algoritmo de Las Vegas. Se ejecuta en un periodo de tiempo
concreto. Si encuentra una solución en ese tiempo ésta será
correcta, pero es posible que el tiempo se agote y no encuentre
ninguna solución.

-Diseños

El diseño de algoritmos es un método específico para poder crear un


modelo matemático ajustado a un problema específico para resolverlo. El
diseño de algoritmos o algorítmica es un área central de las ciencias de la
computación, también muy importante para la investigación de
operaciones (también conocida como investigación operativa), en
ingeniería del software y en otras disciplinas afines.

*Técnicas de Diseño de algoritmos:

Existen varias técnicas de diseño de algoritmos que permiten desarrollar


la solución al problema planteado, algunas de ellas son:
o Algoritmo divide y vencerás: El método está basado en la
resolución recursiva de un problema dividiéndolo en dos o más
subproblemas de igual tipo o similar.
o Algoritmos voraces (greedy): seleccionan los elementos más
prometedores del conjunto de candidatos hasta encontrar una
solución. En la mayoría de los casos la solución no es óptima.
o Algoritmos paralelos: permiten la división de un problema en
subproblemas de forma que se puedan ejecutar de forma
simultánea en varios procesadores.
o Algoritmos probabilísticos: algunos de los pasos de este tipo de
algoritmos están en función de valores pseudoaleatorios
o Algoritmos determinísticos: El comportamiento del algoritmo es
lineal: cada paso del algoritmo tiene únicamente un paso sucesor y
otro antecesor.
o Algoritmos no determinísticos: El comportamiento del algoritmo
tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a
cualquier número de pasos inmediatamente posteriores, además
todas las ramas se ejecutan simultáneamente.
o Metaheurísticas: encuentran soluciones aproximadas (no óptimas)
a problemas basándose en un conocimiento anterior (a veces
llamado experiencia) de los mismos.
o Programación dinámica: intenta resolver problemas disminuyendo
su coste computacional aumentando el coste espacial.
o Ramificación y acotación: se basa en la construcción de las
soluciones al problema mediante un árbol implícito que se recorre
de forma controlada encontrando las mejores soluciones.
o Vuelta Atrás (Backtracking): se construye el espacio de soluciones
del problema en un árbol que se examina completamente,
almacenando las soluciones menos costosas.
-Variables

Las variables son espacios reservados en la memoria que, como su


nombre indica, pueden cambiar de contenido a lo largo de la ejecución de
un programa. Una variable corresponde a un área reservada en la
memoria principal del ordenador.

Tipos de Datos

El tipo de dato informático es un atributo de una parte de los datos que


indica al ordenador (y/o al programador) algo sobre la clase de datos
sobre los que se va a procesar. Esto incluye imponer restricciones en los
datos, como qué valores pueden tomar y qué operaciones se pueden
realizar.

Tipos de datos comunes son:

o Enteros
o Cadenas alfanuméricas
o Fechas
o Horas
o Colores
o Coches o cualquier cosa que se nos ocurra.

Por ejemplo, el tipo "int" representa un conjunto de enteros. Éste es un


concepto propio de la informática, más específicamente de los lenguajes
de programación, aunque también se encuentra relacionado con nociones
similares de las matemáticas y la lógica.

Debido a que las variables contienen o apuntan a valores de tipos


determinados, las operaciones sobre las mismas y el dominio de sus
propios valores están determinadas por el tipo de datos en cuestión.

*Algunos tipos de datos usados:


Tipo de dato lógico

Tipo de dato entero

Tipo de dato carácter

Cadena de caracteres

*Tipo de dato lógico:

El tipo de dato lógico o booleano es en computación aquel que puede


representar valores de lógica binaria, esto es 2 valores, que normalmente
representan falso o verdadero. Se utiliza normalmente en la
programación, estadística, electrónica, matemáticas (álgebra booleana) y
otras.

Una vez que se dispone de uno o varios datos de tipo booleano, estos se
pueden combinar en expresiones lógicas mediante los operadores lógicos
(and, or, not). Un ejemplo de este tipo de expresiones serían:

verdadero AND falso --> falso

falso OR verdadero --> verdadero

NOT verdadero --> falso

*Tipo de dato entero:

El tipo de dato entero en computación se usa para representar un


subconjunto finito de los números enteros. El mayor número que se puede
representar depende del tamaño del espacio usado por el dato y la
posibilidad (o no) de representar números negativos. Los tipos de dato
entero disponibles y su tamaño dependen del lenguaje de programación
usado así como la arquitectura en cuestión.

*Tipo de dato carácter:

En terminología informática y de telecomunicaciones, un carácter es un


símbolo que representa cada carácter de un lenguaje natural. Un
ejemplo de carácter es una letra, un número o un signo de puntuación.

*Cadena de caracteres:

En programación, una cadena de caracteres o frase (string en inglés) es


una secuencia ordenada de longitud arbitraria (aunque finita) de
elementos que pertenecen a un cierto alfabeto. En general, una cadena
de caracteres es una sucesión de caracteres (letras, números u otros
signos o símbolos).

Desde el punto de vista de la programación, si no se ponen restricciones


al alfabeto, una cadena podrá estar formada por cualquier combinación
finita de todo el juego de caracteres disponibles (las letras de la 'a' a la 'z'
y de la 'A' a la 'Z', los números del '0' al '9', el espacio en blanco ' ',
símbolos diversos '!', '@', '%', entre otros). Un caso especial de cadena es
la que contiene cero caracteres, a esta cadena se le llama cadena vacía.

Algunas operaciones con cadenas de caracteres:

*Asignación: Consiste en asignarle una cadena a otra.

*Concatenación: Consiste en unir dos cadenas o más (o una cadena con


un carácter) para formar una cadena de mayor tamaño.

*Comparación: Se utiliza para comparar dos cadenas.

-Diagrama de flujo

Los diagramas de flujo son esquemas que representan gráficamente un


algoritmo por medio de los pasos de un proceso, que se realizan para
entender mejor al mismo y son utilizados en programación, economía y
procesos industriales. Utilizan una series de símbolos con significados
especiales.

Un diagrama de flujo u organigrama es una representación diagramático


que ilustra la secuencia de las operaciones que se realizan para
conseguir la solución de un problema y son usados normalmente para
seguir la secuencia lógicas de las acciones en el diseño de problemas de
computadoras y se dibujan generalmente antes de comenzar a programar
el código frente a la computadora y una que se dibuja el diagrama de
flujo, llega hacer fácil escribir el programa en cualquier idioma de alto
nivel.

1.- Lógica dibujada.

2.- Es la representación gráfica de la solución a un problema utilizando


símbolos predefinidos para su interpretación.

3.- Es la representación gráfica del algoritmo.

4.- A nivel de programación es la representación gráfica 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 solución de un problema. Es
llamado diagramas de flujo porque los símbolos utilizados se conectan por
medio de flechas para indicar la secuencia de una operación y son
también llamados flujogramas. Utilizan diversos símbolos para representar
operaciones específicas.

Es importante ya que ayuda a designar cualquier

representación gráfica de un procedimiento o parte

de ese, como su nombre lo indica representa el flujo de

información de un proceso.

Tipos de Diagramas:

Diagrama de Programa: Representa gráficamente un método propuesto


para la
Solución de un problema determinado.

Diagrama de Sistema: Representa la integración; interacción lógicas de


los

Elementos dentro de un sistema propuesto.

Diagrama de Procedimiento: Representa gráficamente una operación o


flujo de datos dentro de un sistema.

Son muy útiles ya que permiten incluir las distintas variables que entran
en juego en el proceso. Por ejemplo, ante la aparición de un problema
podríamos diseñar un diagrama de flujo con los recursos, coordinar las
acciones, definir responsabilidades,…y todo ello, a través de un método
que facilita la comprensión.

Otra de las cualidades de esta técnica es que puede aplicarse a


diferentes disciplinas.
CONCLUCION

Luego de realizar este trabajo hemos visto como los algoritmos son una
de las herramientas más complejas y aplicables en el área no solo de la
informática y el mundo de los computadores sino también en el mundo
empresarial y de trabajo. Pudimos comprobar que mientras más potente,
completo y eficiente es el computador o la aplicación que corre sobre el
mismo más grande, complejo y exacto es el algoritmo que utiliza. Las
técnicas de desarrollo de algoritmos nos permiten encontrar la mejor
solución a los problemas que se nos presentan y deben ser solucionados
por el computador, estas técnicas están orientadas para utilizarse en cada
uno de los niveles de complejidad y variedad o alternativas para las
cuales se aplican los algoritmos. Un algoritmo es el conjunto de
operaciones y procedimientos que deben seguirse para resolver un
problema, es por ellos que se deben implementar con más frecuencia.
REFERENCIAS BIBLIOGRAFICAS

o https://profile.es/blog/que-es-un-algoritmo-
informatico/#:~:text=Un%20algoritmo%20inform%C3%A1tico%20e
s%20un,paso%20para%20conseguir%20un%20fin.

o https://es.wikipedia.org/wiki/Dise%C3%B1o_de_algoritmos#:~:text=
En%20ciencias%20de%20la%20computaci%C3%B3n,un%20probl
ema%20espec%C3%ADfico%20para%20resolverlo.

o https://sites.google.com/site/jscalgoritmo/variables

o https://www.monografias.com/trabajos94/algoritmo-y-diagrama-
flujo/algoritmo-y-diagrama-flujo

También podría gustarte