Está en la página 1de 16

República Bolivariana de Venezuela

Ministerio del poder popular para la Educación

Algebra Discreta

Profesor:

Julian Eloy Carneiro

Realizado por:

Omar Azuaje

Porlamar, marzo de 2020


Índice N.pag

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

En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas,


un algoritmo es un conjunto de instrucciones o reglas definidas y no-ambiguas,
ordenadas y finitas que permite, típicamente, solucionar un problema, realizar un
cómputo, procesar datos y llevar a cabo otras tareas o actividades. Dados un estado
inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se
obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.

En la vida cotidiana, se emplean algoritmos frecuentemente para resolver


problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos
para usar un aparato, o las instrucciones que recibe un trabajador de su patrón. Algunos
ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto,
el algoritmo de la división para calcular el cociente de dos números, el algoritmo de
Euclides para obtener el máximo común divisor de dos enteros positivos, o el método
de Gauss para resolver un sistema de ecuaciones lineales.

En términos de programación, un algoritmo es una secuencia de pasos lógicos


que permiten solucionar un problema. Los derechos de autor otorgan al propietario el
derecho exclusivo sobre el uso de la obra, con algunas excepciones. Cuando alguien
crea una obra original fija en un medio tangible, automáticamente se convierte en el
propietario de los derechos de autor de dicha obra.

Tipos de datos

En la informática, cuando hablamos de tipos de datos (o simplemente “tipo”) nos


referimos a un atributo que se indica al computador respecto a la naturaleza de los datos
que se dispone a procesar. Esto incluye delimitar o restringir los datos, definir los
valores que pueden tomar, qué operaciones se puede realizar con ellos, etc.

Algunos tipos de datos son:

 Caracteres: Dígitos individuales que se pueden representar mediante datos


numéricos (0-9), letras (a-z) u otros símbolos.

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).

Análisis del problema

El análisis del problema define la naturaleza, el alcance, las causas y las


consecuencias específicos del tema de la campaña para determinar el mejor modo de
abordar esa cuestión y qué que puede cambiarse. Las pruebas fácticas, pertinentes y
decisivas brindan una base sólida para cualquier estrategia de campaña, poniendo de
manifiesto las formas en que puede lograrse el cambio previsto.

Ejemplo:

Mapa conceptual: Un mapa conceptual sirve para visualizar las nociones


generadas en un proceso de intercambio de ideas.

Á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

En ciencias de la computación, 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.

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


solución al problema planteado, algunas de ellas son

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.

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.

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 de
pasos inmediatamente posteriores, además todas las ramas se ejecutan
simultáneamente.

Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a


problemas basándose en un conocimiento anterior (a veces llamado experiencia)
de los mismos.

Programación dinámica: intenta resolver problemas disminuyendo su coste


computacional aumentando el coste espacial.

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.

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.

Medios de expresión de un algoritmo

Los algoritmos pueden ser expresados de muchas maneras, incluyendo al


lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre
otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. La
descripción de un algoritmo usualmente se hace en tres niveles:

Descripción de alto nivel. Se establece el problema, se selecciona un modelo


matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones
y omitiendo detalles.

Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos


que encuentran la solución.

Implementación. Se muestra el algoritmo expresado en un lenguaje de


programación específico o algún objeto capaz de llevar a cabo instrucciones.

También es posible incluir un teorema que demuestre que el algoritmo es correcto, un


análisis de complejidad o ambos.

Pseudocódigo: El pseudocódigo (falso lenguaje, el prefijo pseudo significa


falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de
lenguaje natural con algunas convenciones sintácticas propias de lenguajes de
programación, como asignaciones, ciclos y condicionales, aunque no está regido por
ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones
científicas, y como producto intermedio durante el desarrollo de un algoritmo, como
los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que

7
los algoritmos descritos en pseudocódigo requieren menos espacio para representar
instrucciones complejas. Ejemplo

Diagramas de flujo: El diagrama de flujo es la representación gráfica de un algoritmo;


para ello se utiliza un conjunto de símbolos estándares mundialmente utilizados y
desarrollados por organizaciones tales como ANSI (American National Institute) e ISO
(International Standard Organization para la elaboración de diagramas de flujo. En el
diagrama cada símbolo representa una acción en concreto; y cada instrucción del
algoritmo se visualiza dentro del símbolo adecuado. Los símbolos se conectan con
flechas para indicar el orden en que se ejecutan las instrucciones

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

Son elementos que toman valores específicos de un tipo de datos concreto. La


declaración de una variable puede realizarse comenzando con var. Principalmente,
existen dos maneras de otorgar valores iníciales a variables:

 Mediante una sentencia de asignación.


 Mediante un procedimiento de entrada de datos

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

Esta secuencia de instrucciones permuta los valores de x e y, con ayuda de


una variable auxiliar, intermedia.
1º Se guarda una copia del valor de x en auxiliar.
2º Se guarda el valor de y en x, perdiendo su valor anterior, pero se mantiene
una copia del contenido en auxiliar.
3º Se copia a y el valor de auxiliar, que es el valor inicial de x.
El resultado es el intercambio de los valores entre x e y, en tres operaciones
secuenciales

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

contrario devolver –1.

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

También podría gustarte