evaluación de expresiones - método divide y vencerás

15
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

Upload: lensen

Post on 13-Apr-2017

90 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Evaluación de expresiones - Método divide y vencerás

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

Page 2: Evaluación de expresiones - Método divide y vencerás

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

Page 3: Evaluación de expresiones - Método divide y vencerás

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

Page 4: Evaluación de expresiones - Método divide y vencerás

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

Page 5: Evaluación de expresiones - Método divide y vencerás

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

Page 6: Evaluación de expresiones - Método divide y vencerás

Operadores RelacionalesSímbolo Significado

> Mayor que< Menor que

== Igual que<> Diferente>= Mayor o igual que<= Menor o igual que

Operadores Relacionales

Page 7: Evaluación de expresiones - Método divide y vencerás

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

Page 8: Evaluación de expresiones - Método divide y vencerás

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. 

Page 9: Evaluación de expresiones - Método divide y vencerás

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.

Page 10: Evaluación de expresiones - Método divide y vencerás

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

Page 11: Evaluación de expresiones - Método divide y vencerás

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

Page 12: Evaluación de expresiones - Método 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.

Page 13: Evaluación de expresiones - Método divide y vencerás

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

Page 14: Evaluación de expresiones - Método divide y vencerás

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:

Page 15: Evaluación de expresiones - Método divide y vencerás

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