Post on 13-Apr-2017
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
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
Expresiones
Una expresión es una combinación de constantes, variables, signos de operación, paréntesis y nombres de funciones especialesDe 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éticasRelaciónalesLógicas
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 EnteraMOD Residuo de la División
Entera
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
Operadores RelacionalesSímbolo Significado
> Mayor que< Menor que
== Igual que<> Diferente>= Mayor o igual que<= Menor o igual que
Operadores Relacionales
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
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.
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.
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
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
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.
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
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:
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