maria reyes

19
REPÚBLICA BOLIVARIANA DE VENEZUELA INSTITUTO UNIVERSITARIO POLITECNICO “SANTIAGO MARIÑO” EXTENSIÓN PORLAMAR EXPRESIONES REGULARES Autor: Br. María Reyes Programación No Numérica II Porlamar, Julio, 2016

Upload: maria-reyes

Post on 13-Apr-2017

33 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Maria reyes

REPÚBLICA BOLIVARIANA DE VENEZUELAINSTITUTO UNIVERSITARIO POLITECNICO

“SANTIAGO MARIÑO”EXTENSIÓN PORLAMAR

    

EXPRESIONES REGULARES  

 

Autor: Br. María ReyesProgramación No Numérica II

 

 Porlamar, Julio, 2016

Page 2: Maria reyes

INTRODUCCIÓN

Las expresiones son otro de los conceptos básicos que surgen en los primeros lenguajes de programación, Una expresión es una combinación de valores y operaciones que, al ser evaluados, entregan un valor.

Cabe destacar que su objetivo principal es poder expresar con facilidad cálculos complejos, con una sintaxis inspirada en las matemáticas. Es por ello que para poder ejecutar su objetivo principal con facilidad suele utilizarse el Método Divide y Vencerás el cual consiste en Descomponer el problema en ciertos números de sub-problemas más pequeños pero del mismo tipo, para así poder Resolver de forma sucesiva e independiente todos estos sub-problemas Combinando las soluciones obtenidas para obtener la solución del problema que se desea resolver.

Page 3: Maria reyes

EXPRESIONES Una expresión es un trozo del texto de un programa que

denota un proceso de cálculo que produce como resultado un valor. El proceso de cálculo es llevado a cabo durante la ejecución del programa. El proceso de llevar a cabo este cálculo se denomina evaluar la expresión.

Una expresión se puede evaluar un número arbitrario de veces durante la ejecución de un programa. Cada vez puede producir un valor distinto como resultado.

Formalmente, una expresión es una aplicación que asigna un valor a cada estado de ejecución posible. (Un estado de ejecución es un conjunto finito de variables distintas, cada una con al menos un nombre, un tipo, y un valor del tipo.)

Page 4: Maria reyes

EXPRESIONES REGULARES El objetivo de las expresiones regulares es representar

todos los posibles lenguajes definidos sobre un alfabeto Σ, en base a una serie de lenguajes primitivos, y unos operadores de composición.

Lenguajes primitivos: el lenguaje vacío, el lenguaje formado por la palabra vacía, y los lenguajes correspondientes a los distintos símbolos del alfabeto.

Operadores de composición: la unión, la concatenación y el cierre. Ejemplo: 1. Lenguaje formado por las cadenas que terminan en 01:

{0,1}*.{01}= ({0}∪{1})*.{01}

⇒ Expresión regular: (0+1)*01 Lenguaje formado por palabras de longitud par sobre a’s y b’s:

{aa,ab,ba,bb}*= ({aa}∪{ab}∪{ba}∪{bb})*

⇒Expresión: (aa+ab+ba+bb)*

Page 5: Maria reyes

EXPRESIONES ARITMÉTICASSon expresiones analíticas que no contiene más

funciones que aquellas que pueden calcularse con las operaciones del álgebra, a saber:

Suma Resta Multiplicación División

Page 6: Maria reyes

EXPRESIONES LÓGICAS Los operadores son lógicos o relacionales. Los

resultados sólo pueden ser dos valores:

CiertoFalsto

EVALUACION EXPRESIONES

Las expresiones pueden ser evaluadas de forma secuencial

Page 7: Maria reyes

EVALUACION EXPRESIONES Para evaluar una expresión utilizando esta técnica deben tenerse en cuenta las siguientes reglas:

La prioridad de lo operadores de mayor a menor es * / + - Las operaciones con igual prioridad se evalúan de izquierda a derecha Al final de la operación se efectúan el resto de las operaciones pendientes hasta que el contenedor de los operadores quede vacio Cuando un paréntesis que cierra aparece se ejecutan todas las operaciones hasta que aparece un paréntesis que abre

Page 8: Maria reyes

EXPRESIÓN HACIENDO USO DE LA ESTRUCTURA PILA.

Una pila representa una estructura lineal de datos en que se puede agregar o quitar elementos únicamente por uno de los dos extremos. En consecuencia, los elementos de una pila se eliminan en el orden inverso al que se insertaron. Debido a está característica, se le conoce como estructura LIFO (last input, first output). 

Si deseamos representar las expresiones (2+(3*4)) = x y ((2+3)*4)= x en las tres notaciones mencionadas, el resultado sería:

(2+(3*4)) = x ((2+3)*4) = x

Notación prefija = + 2 * 3 4 x = * + 2 3 4 x

Notación infija 2+3*4 = x (2+3)*4 = x

Notación postfija 2 3 4 * + x = 2 3 + 4 * x =

Page 9: Maria reyes

EXPRESIÓN PREFIJALa Expresión o Notación PreFija nos indica que el operador va antes de los operandos sus características principales son:

Los operandos conservan el mismo orden que la notación infija equivalente.No requiere de paréntesis para indicar el orden de precedencia de operadores ya que el es una operación.Se evalúa de izquierda a derecha hasta que encontrémosle primer operador seguido inmediatamente de un par de operandos.Se evalúa la expresión binaria y el resultado se cambia como un nuevo operando. Se repite este hasta que nos quede un solo resultado.

Notación prefija: El orden es operador, primer operando, segundo operando

Page 10: Maria reyes

EXPRESIÓN INFIJA

La Expresión o Notación InFija es la forma mas común que utilizamos para escribir expresiones matemáticas, estas notaciones se refiere a que el operador esta entre los operandos. La notación infija puede estar completamente parentizada o puede basarse en un esquema de precedencia de operadores así como el uso de paréntesis para invalidar los arreglos al expresar el orden de evaluación de una expresión:

3*4=123*4+2=14

3*(4+2)=18

Notación infija: La notación habitual. El orden es primer operando, operador, segundo operando

Page 11: Maria reyes

EXPRESIÓN POSTFIJA

Como su nombre lo indica se refiere a que el operador ocupa la posición después de los operandos sus características principales son:

El orden de los operandos se conserva igual que la expresión infija equivalente no utiliza paréntesis ya que no es una operación ambigua.La operación posfija no es exactamente lo inverso a la operación prefija equivalente:

(A+B)*C AB+C*

Notación postfija: El orden es primer operando, segundo operando, operador.

Page 12: Maria reyes

EVALUACIÓN DE UNA NOTACIÓN POSTFIJA

Ejemplo: Expresión aritmética infija: A*B / (A+C) Expresión aritmética postfija: AB*AC+/ Valores A=4, B=5 y C=6: 45*46+/

Page 13: Maria reyes

Código:Precondición: La expresión postfija es correcta y consiste en un string donde cada carácter es o un operando o un operador. Utilizamos una pila que almacena valores reales

Page 14: Maria reyes

Utilizamos la función evalúa para realizar la operación indicada por el símbolo del operador

CONVERSIÓN DE INFIJA A POSTFIJA

Page 15: Maria reyes

NOTAS:La prioridad de la potencia es menor en la pila que en la expresión infija para evaluar varios operadores de potenciación de derecha a izquierda (se evalúa primero lo último encontrado)Esta variación no afecta a los otros operadores ya que la prioridad de la potencia siempre es mayorEl paréntesis izquierdo pasa a tener prioridad cero ya que sólo se extrae de la pila (para eliminarlo) cuando aparece un paréntesis derecho.La prioridad del paréntesis derecho no está definida porque nunca entre a formar parte de las comparaciones

Page 16: Maria reyes

EJEMPLO:Expresión aritmética infija: A*B / (A+C)Expresión aritmética postfija: AB*AC+/

Page 17: Maria reyes

CONVERSIÓN DE INFIJA A POSTFIJA

Page 18: Maria reyes
Page 19: Maria reyes

CONCLUSIÓN

Las expresiones son elementales en los distintos lenguajes de programación. Siendo utilizadas para llevar a cabo un objetivo principal como es resolver un problema de alta complejidad y así lograr el resultado requerido.

Suelen existir varios tipos de expresiones las cuales también son conocidas como notaciones, Estas son nombradas como prefija, infija y postfija. Cabe destacar que el ser humano por naturaleza utiliza la notación infija donde el operador va en medio de los operandos: "10/6*2" mientras que los procesadores utilizan la notación postfija donde primero van los operandos y luego el operador.