Equipo 4-Presentación AF1-Algoritmos Computacionales
Equipo 4-Presentación AF1-Algoritmos Computacionales
Equipo 4-Presentación AF1-Algoritmos Computacionales
Actividad Fundamental #1
Algoritmos simples y Fundamentos de la complejidad computacional
Semestre Enero-Junio 2022
En este sentido, los algoritmos computacionales pueden entenderse de una manera detallada y
escrita entre personas, pero en el caso de las computadoras es necesario desarrollar dichos
algoritmos en un lenguaje que estos lo puedan interpretar. A raíz de esto se desarrollan los
lenguajes de programación.
Por otra parte, se tiene al pseudocódigo, es un tipo de lenguaje abstracto que puede ser escrito e
interpretado con independencia del lenguaje de programación. Se utilizan para poder expresar de
Algoritmos cuantitativos
Este tipo de algoritmos utiliza solamente lenguaje matemático para expresar los
procesos y cuestiones dentro del algoritmo. Normalmente es utilizado para ordenar
procesos matemáticos de cálculo como ecuaciones largas o de resultado diverso.
Algoritmos computacionales:
Algoritmos no computacionales
Su principal función es la de
representar por pasos la solución a un
problema o algoritmo, de la forma más
detallada posible, utilizando un
lenguaje cercano al de programación.
Características del Pseudocódigo
2. Declaración: Cuando hablamos de cómo declarar una variable, nos referimos a asignarle un
nombre y un tipo; de esta manera, el sistema le podrá otorgar una abstracción de la memoria para
almacenar los datos y su valor.
3. Alcance: Según las características de las variables en programación, por medio del alcance se
podrá determinar hasta dónde se puede leer o manipular la información o el valor de una variable.
Tipos de variables
1. Numérica
Un ejemplo de variables de programación son las numéricas en las que, tal como su nombre lo indica, podemos almacenar
números. No necesitas agregar comillas, sólo el dígito. Asimismo, si quieres guardar números decimales, solo necesitas
utilizar el punto (.) entre los números enteros y los fraccionados, ya que hay lenguajes de programación en que las comas (,)
se usan para añadir otros datos a la variable.
2. Cadena de texto
En el caso de una variable en programación que almacena texto, este necesita estar entre comillas. Pueden ser comillas
simples o dobles, pero se recomienda el uso de las sencillas, porque hay momentos en los que las comillas dobles no se
pueden utilizar.
★ Existen dos tipos de cadena de texto: cadena de longitud fija y cadena de longitud variable. En la primera, se estipula
cuántos caracteres va a contener, mientras que la segunda no define la extensión.
3. Booleana
Este término se refiere a un valor lógico, que, en el caso de la programación, representa la dicotomía de verdadero y falso.
Usualmente, para representar este valor se coloca “true” o “false”, haciendo alusión en inglés a verdadero y falso,
respectivamente.
4. Elementos HTML
También, puedes utilizar una variable en programación para seleccionar elementos dentro del HTML de tu programa o
aplicación. Solo necesitas colocarles un identificador (id). Además, en el caso de Javascript, necesitas utilizar un selector
para asignar los elementos a la variable. Esto último, depende del lenguaje de programación y el software que utilices
5. Arreglos
Un arreglo es, básicamente, una variable donde puedes almacenar más de un elemento, incluyendo otras variables. Solo
necesitas redactar la lista entre corchetes [ ] y separar cada elemento con una coma..
6. Objetos
Es muy similar a la anterior; La diferencia es que se va a colocar entre llaves { } y dentro de esta se
pueden agregar propiedades y valores. Por ejemplo, {color: verde}, en el cual color corresponde a la
propiedad y verde al valor.
7. Funciones
Dentro de la disciplina de la programación web, una función se define como una forma en que los
algoritmos y expresiones se agrupan en códigos simbólicos para determinar acciones. En este caso,
para ejecutar la variable se necesita colocar la palabra reservada function(){}.
CONSTANTES
Una constante, en programación, se define como un valor fijo que un programa no puede modificar
mientras se está ejecutando. A estos valores fijos también se les conoce como literales. Se trata como
una variable común, excepto que su valor no puede alterarse después que se haya definido.
Las constantes pueden tener cualquiera de los tipos de datos básicos, como una constante entera,
Es igual a una variable en su declaración y en la capacidad de poder mirar el valor que tiene
almacenado dentro de ella. Sin embargo, no se puede cambiar su valor mientras el programa está en
ejecución.
Tipos de constantes
•– Boolean el tipo de datos booleano solo puede tener uno de los
dos valores siguientes: 0 (Falso) y 1 (Verdadero).
También conocido como estructura secuencial, es aquella en la que una instrucción o acción sigue a otra en
secuencia. En este tipo de programación se presentan operaciones de inicio a fin, inicialización de variables,
operaciones de asignación, cálculo, sumarización, entre otras.
Las sentencias de decisión o también llamadas de CONTROL DE FLUJO son estructuras de control que realizan
una pregunta la cual retorna verdadero o falso (evalúa una condicion) y selecciona la siguiente instrucción a ejecutar
dependiendo la respuesta o resultado.
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. En el contexto de las matemáticas o la informática, la
iteración (junto con la técnica relacionada de recursión) es un bloque de construcción estándar de algoritmos.
DIAGRAMAS DE FLUJO
➢ Inicio y final: Es la forma en la cual se indica el “inicio del proceso” y “final del proceso”. Su
icono suele ser un rectángulo con las esquinas redondeadas.
➢ Asignación/ definición: Permite asignar un valor o definir una variable, son los procesos o
actividades que se necesitan para resolver el problema. En este caso, suele estar
representado con un rectángulo.
➢ Decisión: Indica que des del punto que nos encontramos, puede haber más de un camino
para seguir, según la condición dada. En este caso se usa un rombo.
➢ Línea o flechas del flujo: Indica la instrucción que se va a realizar, o la dirección del flujo
del proceso.
Fundamentos de la complejidad
computacional
TÉCNICAS DE ANÁLISIS Y 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:
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.
Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría
Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma simultánea en varios
procesadores.
Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios
Algoritmos determinísticos: El comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro antecesor.
Algoritmos no determinísticos: El comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número
Diseño del algoritmo: que describe la secuencia ordenada de pasos que conduce a la solución de un problema
dado: algoritmo.
La teoría de la complejidad computacional es la rama de las Ciencias de la Computación que estudia y clasifica a los
problemas de acuerdo a su complejidad inherente.
El análisis de algoritmos busca determinar la cantidad de recursos que emplea un algoritmo, mientras que la Teoría de la
Complejidad intenta caracterizar a todos los posibles algoritmos para resolver un problema dado
· Clasificándolos por objetivo a cumplir identificamos al menos en tres tipos:
❏ De decisión: son aquellos que sólo admiten como resultado un valor de veracidad (true
o false, sí o no). suelen aparecer en cuestiones matemáticas
❏ Problemas funcionales o «Function problems» (búsqueda de resultados): son
aquellos que proponen encontrar una solución específica (si existe) para el planteo
dado. están estrechamente relacionados con problemas de funcionales.
❏ Problemas de optimización: A diferencia de los problemas de decisión, para los
cuales solo hay una respuesta correcta para cada entrada, los problemas de
optimización tienen que ver con encontrar la mejor respuesta para una entrada en
particular.
IMPLEMENTACIÓN HARDWARE/SOFTWARE
● En el contexto de software o aplicación de hardware, la implementación abarca todos los procesos de post – venta
que participan en algo y funcionan en su entorno, incluidos los requisitos de análisis, instalación, configuración,
personalización, hacer funcionar, pruebas, integraciones de sistemas, formación de usuarios, entrega y hacer los
cambios necesarios.
1. Inicio
2. Escribir “Ingresa un número”
3. Leer n1
4. Escribir “Ingresa otro numero”
5. Leer n2
6. Si n1>n2
7. Imprimir “El numero mayor es”+n1
8. Sí no
9. Imprimir “El numero mayor es”+n2
10. Fin
Algoritmo 3: Algoritmo que permita ingresar el número de partidos ganados, perdidos y
empatados, por algún equipo en el torneo de apertura, se debe de mostrar su puntaje total,
teniendo en cuenta que por cada partido ganado obtendrá 3 puntos, empatado 1 punto y
perdido 0 puntos.
1. Inicio
2. Escribir “Ingresa los partidos ganados”
3. Leer PG
4. Escribir “Ingresa los partidos empatados”
5. Leer PE
6. Escribir “Ingresa los partidos perdidos”
7. Leer PP
8. PPG= PG*3
9. PPE=PE*1
10. PT=PPG+PPE
11. Imprimir “El total de puntos es de”+PT
12. Fin
Algoritmo 4: Algoritmo que solicite la edad de 2 hermanos y muestre un mensaje
indicando la edad del mayor y cuantos años tiene de diferencia tiene con el menor.
1. Inicio
2. Escribir “Edad del primer hermano”
3. Leer E1
4. Escribir “Edad del segundo hermano”
5. Leer E2
6. Si E1>E2
7. DE=E1-E2
8. Imprimir “El primer hermano con edad de”+E1+ “es mayor por” +DE+ “años”
9. Sí no
10. DE=E2-E1
11. Imprimir “El segundo hermano con edad de”+E2+ “es mayor por”+DE+ “años”
12. Fin
CONCLUSIÓN
Los temas que presentamos son temas de los cuales hicimos
investigación y como lo pudimos notar el tema principal fue el algoritmo
donde se explicó que son los algoritmos y también vimos los tipos de
estos, así como también vimos cómo representar los algoritmos en un
lenguaje de programación y también en forma de diagramas. También
mencionamos las variables y constantes las cuales ayudan al algoritmo
a funcionar.
Prather, J. P. (2022). Learn X in Y Minutes: Scenic Programming Language Tours. Aprende X en Y minutos. Recuperado 17 de febrero de 2022, de
https://learnxinyminutes.com/docs/es-es/asymptotic-notation-es/#:%7E:text=Las%20notaciones%20asint%C3%B3ticas%20son%20lenguajes,de%20
crecimiento%20de%20un%20algoritmo
Computer, D. C. S., Cormen, T. C., & Balkcom, D. B. (s. f.). Notación asintótica (artículo) | Algoritmos. Khan Academy. Recuperado 17 de febrero de
2022, de https://es.khanacademy.org/computing/computer-science/algorithms/asymptotic-notation/a/asymptotic-notation
Epitech Escuela Superior de Informatica. (06 de Mayo de 2021). Diagrama de flujo en programacion