Investigacion de Algoritmos
Investigacion de Algoritmos
Investigacion de Algoritmos
INVESTIGACION DE ALGORITMOS
Trabajo de informática
(marzo de 2024)
✓ Fuerza bruta
✓ Voraz
✓ Vuelta atrás
III. DIAGRAMA DE FLUJO EN PROGRAMACIÓN
Divide el problema en subproblemas que se pueden intentar
resolver uno tras otro. Si no se encuentra la solución, basta con Un diagrama de flujo es un dibujo que representa un proceso
retroceder en el problema hasta encontrar la manera de seguir detallando sus tareas y decisiones. Su finalidad es expresar de
avanzando. manera simple y visual lo que ocurre en un proceso o en un
programa, de manera que sea fácil de comprender.
✓ Programación directa
Los diagramas de flujo se pueden presentar al programador para
Permite descomponer un problema complejo en un conjunto de que éste comprenda mejor lo que el cliente quiere realizar.
subproblemas más sencillos. Todos estos subproblemas se Posteriormente el programador desarrolla el programa
resuelven una vez, y su solución se almacena para su uso futuro. basándose en los diagramas de flujo.
Esto evita tener que volver a calcular sus soluciones [1].
También se dibujan diagramas de flujo para documentar un
D) Ejemplos: programa de ordenador una vez terminado, para comunicar lo
que hace el programa de una manera visual y comprensible.
1. Edgerank
Los diagramas de flujo no se limitan a representar el
Edgerank es el nombre del algoritmo de Facebook y se encarga funcionamiento de los programas, también pueden informarnos
de determinar qué publicaciones ves cada vez que accedes a la de las tareas que debemos realizar en una situación determinada
red social, mostrándote aquellas que Edgerank cree que pueden [4].
ser de tu interés (Fig 1).
2. Netflix
• Línea de flujo: La línea de flujo muestra la dirección
del proceso y conecta a dos bloques entre sí.
El algoritmo de Netflix registra las búsquedas que se realizan de
todos los contenidos disponibles y con esto, conocen los
• Terminador o terminal: El terminador o terminal
intereses del usuario. Se registran incluso los días de la semana
representa los puntos de inicio o fin del proceso de un
en los que más se consumen productos de la plataforma o las
diagrama de flujo.
horas que se invierten en visionado (Fig 2).
3
• Proceso: El símbolo del proceso es el componente más • Símbolo de unión de invocación: Este símbolo se usa
común de un diagrama de flujo e indica un paso del para converger diversas ramas en un solo proceso.
proceso.
• Operación manual: Simboliza a una operación o ajuste
• Comentario o anotación: Puedes mencionar manual del proceso.
información extra acerca de un paso con un comentario
o anotación. • Conector (con otra página): Este símbolo se usa para
conectar otros dos símbolos que están en diferentes
páginas.
• Decisión: Este símbolo representa a una decisión que Fig 7. Símbolos del diagrama de flujo.
tu equipo o tú deben tomar para pasar al paso siguiente
del proceso. Por lo común, se trata de una decisión del
estilo “verdadero o falso” o de una pregunta que se • Preparación o inicialización: Este símbolo indica un
responde por sí o por no. paso de preparación o inicialización en el proceso.
• Datos almacenados: Simboliza a un archivo o base de • Proceso alternativo: Las líneas de este símbolo, por lo
datos. general, son líneas de puntos. El símbolo en sí mismo
indica una alternativa al paso normal del proceso en
• Símbolo “o”: Indica que el flujo del proceso continúa caso de ser necesaria.
en tres o más ramas.
• Proceso predeterminado: Este símbolo señala un
proceso que ya ha sido determinado en algún otro
lugar.
✓ Flujograma de trabajo
cargo, las labores específicas y las herramientas con las que la IV. COMPLICAR EN PROGRAMACIÓN
empresa cuenta para ejecutar cualquier actividad identificada.
La tarea de compilar se refiere al proceso de traducción del
✓ Diagramas de flujo de producto código fuente, entendiéndose por código fuente las líneas de
código que se han escrito en un lenguaje de programación, en
Funcionales durante el proceso de creación de un producto. este caso un lenguaje de programación de alto nivel. Por
ejemplo: C, Pascal, C++.
✓ Flujograma de proceso
Los compiladores son los programas encargados de hacer la
Con los cuales se muestran los resultados de un producto creado. traducción del código fuente de un programa, creado mediante
un lenguaje de programación, a lenguaje de máquina o código
✓ Diagrama de flujo de sistema objeto, el único tipo de lenguaje que entienden los procesadores
de las computadoras [8].
Esenciales para la programación web. Este tipo de flujogramas
se emplean durante las primeras etapas de construcción de
algoritmos, ayudando a describir la interacción y respuesta de
los programas computacionales, comunicativos, virtuales,
etcétera.
Fig 8. Diagrama de flujo sumar dos números leídos por teclado y escribir A) Fases de un compilador
el resultado.
• Generación de código intermedio: Este representa el programa de computadora consiste en una cadena de estas
programa de manera más abstracta y se puede instrucciones de lenguaje de máquina (más los datos).
optimizar antes de generar el código objeto. Normalmente estas instrucciones son ejecutadas en secuencia,
con eventuales cambios de flujo causados por el propio
• Optimización de código: Puede realizar una serie de programa o eventos externos.
optimizaciones en el código intermedio o en el código
objeto para mejorar su eficiencia, como la eliminación • Lenguaje de bajo nivel
de código redundante o la reorganización de las Un lenguaje de programación de bajo nivel es el que
instrucciones para minimizar la cantidad de ciclos de proporciona poca o ninguna abstracción del microprocesador de
procesador requeridos. una computadora. Consecuentemente, su trasladado al lenguaje
máquina es fácil. El término ensamblador se refiere a un tipo de
• Generación de código: El compilador finalmente programa informático encargado de traducir un archivo fuente,
genera el código objeto que se puede ejecutar en la escrito en un lenguaje ensamblador, a un archivo objeto que
computadora. contiene código máquina ejecutable directamente por la
máquina para la que se ha generado.
• Vinculación y carga: Si el programa utiliza bibliotecas
externas, el compilador puede vincularlas al código • Lenguaje de alto nivel
objeto generado y generar un archivo ejecutable que se
carga en la memoria de la computadora para su Los lenguajes de programación de alto nivel se caracterizan
ejecución [9]. porque su estructura semántica es muy similar a la forma como
escriben los humanos, lo que permite codificar los algoritmos
B) Ejemplos de manera más natural, en lugar de codificarlos en el lenguaje
binario de las máquinas, o a nivel de lenguaje ensamblador [11].
1. Single pass compilers (de una sola pasada)
B) Ejemplos
Este tipo de compiladores ofrecen la posibilidad de generar
código máquina con una sola lectura del código fuente. 1. PHYTHON
2. PYTHON
https://edu.gcfglobal.org/es/conceptos-basicos-de-programacion/tiposde-
diagramas-de-flujo/1/