Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algebra Discreta
Profesor:
Realizado por:
Omar Azuaje
Introducción ………………………………….. 3
Algoritmo …………………………………. 4
Tipos de datos …………………………………. 4
informáticos
Análisis del …………………………………. 5
problema
Diseño del …………………………………. 5
algoritmo
Medios de expresión …………………………………. 7
de un algoritmo
Pseudocódigo ………………………………….. 7
Diagrama de Flujo ………………………………….. 8
Variables ………………………………….. 9
Constantes ………………………………….. 10
Proceso ………………………………….. 10
Estructura de control ………………………………….. 11
Estructuras ………………………………….. 12
Secuenciales
Estructura Selectiva …………………………………… 12
Selectiva Doble …………………………………… 13
Selectiva Múltiple …………………………………… 13
Selectiva Múltiple- …………………………………… 13
Casos
Estructura Iterativas …………………………………… 13
Bucle mientras …………………………………… 13
Bucle Repetir
Bucle hacer bucle …………………………………… 13
para
Bucle para cada …………………………………… 13
Algoritmo de …………………………………… 14
Búsqueda
Algoritmo de …………………………………… 14
Ordenación
Conclusión …………………………………… 15
Bibliografía …………………………………… 16
Introducción
En la vida cotidiana las personas, emplean instrucciones para resolver problemas
comunes, a estas instrucciones se les conoce como algoritmos. Los algoritmos también
pueden ser utilizados por las computadoras, más específicamente en la programación.
A las mismas se les dan instrucciones detalladas que pueden ser representadas de varias
maneras, siendo los más comunes el diagrama de flujo y el pseudocódigo, para así
posteriormente implementar una estructura detallada en la que se ve representada el
proceso. En el presente trabajo, se plantean los conceptos básicos sobre el algoritmo y
sus medios de expresión, seguido como sus diversas estructuras y elementos que lo
compongan.
3
Algoritmo
Tipos de datos
4
Caracteres Unicode: Unicode es un estándar de codificación que permite
representar más eficazmente los datos, permitiendo así hasta 65535 caracteres
diferentes.
Numéricos: Pueden ser números reales o enteros, dependiendo de lo necesario.
Booleanos: Representan valores lógicos (verdadero o falso).
Ejemplo:
Árbol del problema; Un árbol del problema sirve para visualizar las causas y
los efectos del tema de la campaña.
Diseño de un algoritmo
5
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.
6
Vuelta Atrás (Backtracking): se construye el espacio de soluciones del
problema en un árbol que se examina completamente, almacenando las soluciones
menos costosas.
7
los algoritmos descritos en pseudocódigo requieren menos espacio para representar
instrucciones complejas. Ejemplo
8
Por ejemplo, el siguiente es un diagrama que corresponde a un algoritmo para
determinar qué valor introducido ( A,B o C) es mayor
Variables
Ejemplo:
begin
...
i:=1;
readln(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
...
end.
9
Constantes
Una constante es un dato cuyo valor no puede cambiar durante la ejecución del
programa. Recibe un valor en el momento de la compilación y este permanece
inalterado durante todo el programa.
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 del
programa. Tienen varios usos: ser miembro en una expresion, en una comparación,
asignar su valor a una variable, etc.
En el siguiente ejemplo se contemplan varios casos:
const
Min = 0;
Max = 100;
Sep = 10;
var
i : integer;
begin
i := Min;
while i < Max do begin
writeln(i);
i := i + Sep
end
end.
Procesos
Es un conjunto de actividades, debidamente ordenadas, que tienen por objetivo
obtener una circunstancia u acto específico.
Un proceso se puede aplicar a infinidad de ciencias y circunstancias.
Ejemplo:
Proceso 1.- Selección y adquisición del material.
En este proceso se buscará el material idóneo y se seleccionará el proveedor
más adecuado.
Proceso 2.- Selección del modelo y corte a realizar.
10
Se selecciona el modelo a fabricar, con el mejor corte y distribución más
adecuada del corte, se marca y corta.
Proceso 3.- Armado de la Pala.
Se unen el forro, refuerzos y corte para formar una sola pieza, (“Pala” es el
nombre del corte cosido).
Proceso 4.- Montado.
En este proceso es cuando se fija la pala en la horma, se monta en la palmilla y
se fija con la entre suela.
Proceso 5.- Desmontado.
En este proceso se retira la horma del zapato y se cosen la suela y la entresuela.
Proceso 6.- terminado.
Aquí se coloca el tacón, se rebajan los sobrantes, se introduce la platilla, se
tiñen, pulen y enceran los zapatos.
Proceso 7.- Empaquetado y distribución.
Se pone la marca del zapato, se marca la talla, se embalan y se envían a la
sección de venta o distribución.
Estructuras de control
En lenguajes de programación, las estructuras de control permiten modificar el
flujo de ejecución de las instrucciones de un programa.
Con las estructuras de control se puede:
De acuerdo con una condición, ejecutar un grupo o otro de sentencias (If-
Then-Else)
De acuerdo con el valor de una variable, ejecutar un grupo u otro de
sentencias (Switch-Case)
Ejecutar un grupo de sentencias solo cuando se cumpla una condición (Do-
While)
Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-
Until)
Ejecutar un grupo de sentencias un número determinado de veces (For-Next)
Todas las estructuras de control tienen un único punto de entrada. Las
estructuras de control se pueden clasificar en: secuenciales, iterativas y de control
11
avanzadas. Esta es una de las cosas que permiten que la programación se rija por los
principios de la programación estructurada.
Estructuras Secuenciales
La estructura secuencial es aquella en la que una acción (instrucción) sigue a
otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada
de la siguiente y así sucesivamente hasta el fin del proceso.
Una estructura de programa es secuencial si se ejecutan una tras otra a modo de
secuencia, es decir que una instrucción no se ejecuta hasta que finaliza la anterior.
Ejemplo:
INPUT x
INPUT y
auxiliar= x
x= y
y= auxiliar
PRINT x
PRINT y
Estructura Selectiva
La especificación formal de algoritmos es realmente útil cuando se requiere
una descripción más complicada que una lista sencilla de instrucciones. Este es el caso
cuando existen un número de posibles alternativas resultantes de la evaluación de una
determinada condición.
Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que
también se conocen como estructuras de decisión o alternativas.
12
En las estructuras selectivas se evalúa una condición, y en función del
resultado de la misma se toma un camino u otro.
Selectiva doble
Son estructuras lógicas que permiten controlar la ejecución de varias acciones
y se utilizan cuando se tienen dos opciones de acción, por la naturaleza de estas se debe
ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes.
Selectivas múltiples
Con frecuencia es necesario que existan más de dos elecciones posibles. Este
problema se podría resolver por estructuras selectivas simples o dobles, anidadas o en
cascada, pero si el número de alternativas es grande puede plantear serios problemas
de escritura y de legibilidad.
Selectiva múltiples-casos
La estructura selectiva si múltiple permite que el flujo del diagrama se
bifurque por varias ramas en el punto de la toma de decisión(es), esto en función del
valor que tome el selector.
Estructura iterativa
También conocidas como estructuras de repetición (bucles o ciclos) se utilizan
para realizar varias veces el mismo conjunto de operaciones.
Bucle mientras bucle repetir
Un bucle while permite repetir la ejecución de un grupo de instrucciones mientras
se cumpla una condición (es decir, mientras la condición tenga el valor True).
Bucle hacer bucle para:
Se utiliza generalmente cuando no sabemos cuántas veces se habrá de ejecutar
el bucle, igual que el bucle WHILE, con la diferencia de que sabemos seguro que el
bucle por lo menos se ejecutará una vez.
Bucle para cada
Se utiliza para recorrer estructuras repetitivas de datos de forma más simple y
ágil.
13
Algoritmo de búsqueda
Un algoritmo de búsqueda es un conjunto de instrucciones que están diseñadas
para localizar un elemento con ciertas propiedades dentro de una estructura de datos;
por ejemplo, ubicar el registro correspondiente a cierta persona en una base de datos, o
el mejor movimiento en una partida de ajedrez.
La variante más simple del problema es la búsqueda de un número en un
vector.
Ejemplo:
Desarrollar un programa que
posea una función que reciba
como parámetro un arreglo de
10 enteros, y un entero, y
retorne la posición del entero
si es que se encuentra, de lo
Algoritmo de Ordenación
En computación y matemáticas un algoritmo de ordenamiento es un algoritmo
que pone elementos de una lista o un vector en una secuencia dada por una relación de
orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento—
de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más
usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son
importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión)
que requieren listas ordenadas para una ejecución rápida. También es útil para poner
datos en forma canónica y para generar resultados legibles por humanos.
14
Conclusión
Los algoritmos son instrucciones detalladas que se le dan a el computador para
que este sea capaz de realizar una tarea. Los mismos pueden ser expresados de manera
gráfica como lo son los diagramas de flujo o de manera no gráfica, como lo sería el
pseudocódigo. Estos poseen distintos procesos, variables y constantes dependiendo de
lo que se pida y su estructura puede variar ya sea entre una de control, selectiva o
secuencial. Los algoritmos pueden ser expresados en distintos tipos de lenguajes y en
distintos tipos de programa, los mismo a también pueden ser catalogados como
algoritmos de búsqueda o algoritmos de ordenación, sin embargo, los algoritmos en su
totalidad son importantes, pues son la base para cualquier programa que se utilice y les
permiten a las computadoras realizar trabajos tareas variadas, con instrucciones
detalladas, creando diversos programas que faciliten trabajosa los seres humanos.
15
Bibliografía
Wikipedia (2019) Algoritmo de búsqueda. Disponible en:
https://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda
Wikipedia (2019) Algoritmo de Ordenamiento. Disponible en:
https://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento
Jorge Villarreal (2016) Estructura Iterativa. Disponible en:
https://sites.google.com/site/programacionlogicajv/estructuras-iterativas
Estructura Selectiva. Disponible en:
https://sites.google.com/site/fprogati/estructuras-selectivas
Wikipedia (2019). Estructuras de control. Disponible en:
https://es.wikipedia.org/wiki/Estructuras_de_control
Benito Santos Feijoo (2001) Variables y Constantes. Disponible en:
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/vars.htm
Elvia Sauceda (2012) Diseño de algoritmos en la programación de
computadoras. Disponible en:
https://www.monografias.com/trabajos94/diseno-algoritmos-programacion-
computadoras/diseno-algoritmos-programacion-computadoras.shtml
Veronica (2015) Medios De Expresión De Un Algoritmo. Disponible en:
http://ladinopaola.blogspot.com/p/medios-de-expresion-de-un-algoritmo.html
Wikipedia (2017) Tipo de Dato. Disponible en:
https://es.wikipedia.org/wiki/Tipo_de_dato
Wikipedia (2020) Algoritmo. Disponible en:
https://es.wikipedia.org/wiki/Algoritmo
16