El documento introduce las expresiones regulares y el algoritmo "divide y vencerás". Explica que las expresiones regulares son patrones que representan conjuntos de caracteres y que pueden usarse para buscar coincidencias. También describe las diferentes clasificaciones de expresiones y sus operadores. Finalmente, resume que "divide y vencerás" es una estrategia para resolver problemas grandes dividiéndolos en subproblemas más pequeños de forma recursiva o iterativa.
Novena de Pentecostés con textos de san Juan Eudes
Evaluación de expresiones - Método divide y vencerás
1. Expresiones Regulares
Instituto universitario politécnico Santiago Mariño
Ingeniería de sistemas
Programación numérica II
Ernesto Lenin Fonseca Almerida:
C.I: 20.324.428
Elaborado por:
Porlamar, Julio del 2016
2. Introducción
Las expresiones son el método fundamental que tiene un programador para
expresar computaciones, estás están compuestas de operadores, operandos,
paréntesis y llamadas a funciones; cuando hablamos de operadores decimos que
pueden ser unarios que es cuando tan solo tienen un operando, binarios que como su
nombre lo indica son 2 operandos y ternarios con 3 operandos.
Por otra parte vamos a mencionar una de las estrategias de diseño de
algoritmos más comunes que es la de "divide y vencerás", en la cual, un problema de
tamaño relativamente grande se divide en problemas más pequeños que son
resueltos de la misma manera hasta que se encuentre un tamaño de problema mínimo
que se resuelva de forma directa. Un ejemplo típico de problemas que pueden ser
resueltos con este enfoque es el algoritmo de ordenación rápida o QuickSort
3. Expresiones
Una expresión es una combinación de constantes, variables, signos de
operación, paréntesis y nombres de funciones especiales
De la evaluación de una expresión resulta un único valor o resultado se
determina tomando los valores de las variables y constantes implicadas y la
ejecución de las operaciones indicadas. Una expresión consta de operadores y
operandos.
Las expresiones se clasifican de acuerdo al tipo de datos que manipulan en:
Aritméticas
Relaciónales
Lógicas
4. La expresión numérica es una combinación de variables y constantes numéricas
con operadores aritméticos, que al evaluarlas devuelven un valor numérico
Expresiones numéricas
Operadores
Aritméticos
Significado
+ Suma
- Resta
* Multiplicación
/ División
^ Potencia
DIV División Entera
MOD Residuo de la División
Entera
5. Una expresión lógica es aquella que sólo puede devolver uno de dos
valores booleanos: Verdadero o Falso. Los operadores que pueden
aparecer en una expresión lógica son de dos tipos: lógicos y relacionales
Los operadores lógicos sólo trabajan sobre expresiones o datos que
retornan valores booleanos. Los operadores relacionales trabajan con
expresiones numéricas para realizar comparaciones que retornan un valor
booleano.
Las expresiones combinan operadores lógicos y relacionales.
Los operadores relacionales se utilizan para establecer una relación
entre dos valores, compara estos valores entre si y produce un resultado de
verdadero o falso también comparan valores del mismo tipo numéricos o
cadenas de caracteres. tienen el mismo nivel de prioridad en su evaluación.
Expresiones Lógicas y relacionales
7. Operadores Lógicos
Es un operador binario
con dos operandos.
La expresión es
verdadera cuando
ambos operandos son
verdaderos.
Es el operador lógico de
conjunción.
Ejemplo:
si es verano y hace calor
vamos a la playa
AND / Y
Es un operador binario con
dos operandos.
La expresión es
verdadera cuando al
menos uno de sus
operandos es verdadero.
Es un operador lógico de
disyunción
Ejemplo:
estudiamos o vamos al
estadio
OR / O
Es un operador unario de
un solo operando.
Cambia el estado lógico
de la expresión; si es
verdadero la transforma
en falso y si es falso en
verdadero
Ejemplo:
no es verano
NOT / NO
8. Expresiones Regulares
Las expresiones regulares son una serie de caracteres que forman
un patrón, y este representa a otro grupo de caracteres mayor, de tal
forma que podemos comparar el patrón con otro conjunto de
caracteres para ver las coincidencias.
Estas expresiones estan disponibles en casi cualquier lenguaje de
programación, pero aunque su sintaxis es relativamente uniforme,
cada lenguaje usa su propio dialecto.
9. Evaluación de Expresiones
La evaluación de expresiones explica que toda expresión regresa un valor, entonces
si hay más de un operador, se evalúan primero operadores de mayor precedencia, en
caso de empate, se aplica la regla asociatividad.
Para evaluar una expresión no hay que hacer nada del otro mundo, pues es bien
sencillo, sólo hay que saber sumar, restar, si un número es mayor que otro
Existe tres reglas de prioridad a seguir para evaluar una expresión:
•Primero, los paréntesis (si tiene)
•Después, seguir el orden de prioridad de operadores
•Por último, si aparecen dos o más operadores iguales, se evalúan de izquierda a
derecha.
10. Las expresiones son secuencias de constantes y/o variables separadas por
operadores válidos.
Se puede construir una expresión válida por medio de :
1. Una sola constante o variable, la cual puede estar precedida por un signo + ó –
.
2. Una secuencia de términos (constantes, variables, funciones) separados por
operadores.
Además debe considerarse que toda variable utilizada en una expresión debe
tener un valor almacenado para que la expresión, al ser evaluada, dé como
resultado un valor. Cualquier constante o variable puede ser reemplazada por una
llamada a una función.
Como en las expresiones matemáticas, una expresión en Pascal se evalúa de
acuerdo a la precedencia de operadores
Evaluación de Expresiones
11. El algoritmo Divide y Vencerás implica resolver un problema difícil,
dividiéndolo en partes más simples tantas veces como sea necesario,
hasta que la resolución de las partes se torna obvia. Ósea que; en
pocas palabras te ayuda a simplificar el resultado obtenido o que
obviamente queramos obtener
Esta técnica está concebida para resolver problemas de manera
eficiente, Una consideración importante a la hora de diseñar algoritmos
Divide y Vencerás es el reparto de la carga entre los subproblemas,
puesto que es importante que la división en subproblemas se haga de la
forma más equilibrada posible
Divide y vencerás
12. Divide y vencerás
Los algoritmos de “divide y vencerás” están naturalmente
implementados, como procesos recursivos. En ese caso, los
subproblemas parciales encabezados por aquel que ya ha sido
resuelto se almacenan en la pila de llamadas de procedimientos.
Los algoritmos de divide y vencerás también pueden ser implementados
por un programa no recursivo que almacena los subproblemas parciales
en alguna estructura de datos explícita, tales como una pila, una cola. Este
enfoque permite más libertad a la hora de elegir los subproblemas a
resolver después y es también la solución estándar en lenguajes de
programación que no permiten procedimientos recursivos.
13. Divide y vencerás
Divide y Vencerás es una técnica algorítmica la cual nos permite resolver
problemas dividiendo el problema original en subproblemas más
pequeños. Su estructura es la siguiente:
De forma similar a la estructura de la recursividad, DyV añade una fase más
de combinación en la cual se "combinan" los resultados obtenidos de los
subproblemas en los cuales se ha dividido el problema original
14. Ejemplo de la aplicación de Divide y
vencerás en un algoritmo
De forma similar a la estructura de la recursividad, divide y vencerás añade
una fase más de combinación en la cual se "combinan" los resultados
obtenidos de los subproblemas en los cuales se ha dividido el problema
original. El código de hoy es una implementación del algoritmo Merge Sort.
El Merge Sort es un algoritmo el cual utiliza la técnica divide y vencerás
para ordenar los elementos de un vector. Su algoritmo explicado es el
siguiente:
15. Conclusión
Divide y Vencerás es mucho más que una técnica de diseño de algoritmos. De
hecho, suele ser considerada una filosofía general para resolver problemas y de
aquí que su nombre no sólo forme parte del vocabulario informático, sino que
también se utiliza en muchos otros ámbitos