SlideShare una empresa de Scribd logo
Evaluación de expresiones aritméticas mediante pilas Una expresión aritmética está formada por operandos y operadores. Así la expresión x *y-(a+b) consta de los operadores *, -, + y de los operandos x, y, a, b. Los operandos pueden ser valores constantes, variables o incluso, otra expresión. Los operadores son los símbolos conocidos de las operaciones matemáticas. La evaluación de una expresión aritmética da lugar a un valor numérico, se realiza sustituyendo los operandos que son variables por valores concretos y ejecutando las operaciones aritméticas representadas por los operadores.
Así, si los operandos de la expresión anterior toman los valores: x=5, y=2, a=3, b=4, el resultado de la evaluación es: 5*2 – (3+4) = 5*2 – 7 = 10 – 7 = 3 La forma habitual de escribir expresiones matemáticas es aquella en la que el operador está entre dos operandos. La expresión anterior escrita de esa forma, recibe el nombre de  notación infija. Esta forma de escribir las expresiones exige, en algunas ocaciones, el uso de paréntesis para encerrar subexpresiones con mayor prioridad, sin olvidar los niveles de prioridad y la asociatividad.
Notación prefija y notación postfija de una expresión aritmética Para nuestro problema una expresión aritmética será un medio que permite indicar el orden en que se deben realizar una serie de operaciones para obtener un resultado.  Las operaciones se indican mediante operadores, que en nuestro caso representan las operaciones suma, resta, producto, división e igualdad, todas ellas operaciones binarias (necesitan exactamente dos argumentos para poderse evaluar).
Existen varias notaciones para representar expresiones aritméticas, que se diferencian en el orden en que se escriben los argumentos (operandos) de los operadores. Las más relevantes son: Notación infija : La notación habitual. El orden es primer operando, operador, segundo operando.   Notación prefija : El orden es operador, primer operando, segundo operando.  Notación postfija : El orden es primer operando, segundo operando, operador.   Notación funcional : Se escribe el operador/función y despues, entre paréntesis, los operadores separados por comas.
La notación infija tiene el problema de que en expresiones con más de un operador existe ambiguedad sobre cual es el orden de evaluación. Por ejemplo, la expresión 8/4/2 se puede interpretar como (8/4)/2 o bien como 8/(4/2). Las otras notaciones no sufren este problema. Un problema interesante en computación es poder convertir expresiones en notación INFIJA a su equivalente en notacion POSTFIJA.  Dada la expresión A+B se dice que está en notación INFIJA, y su nombre se debe a que el operador (+) esta entre los operadores (A y B).
Dada la expresión AB+ se dice que está en notación POSTFIJA, y su nombre se debe a que el operador (+) esta después entre los operadores (A y B).  La ventaja de usar expresiones en notación polaca POSTFIJA radica en que no son necesarios los paréntesis para indicar orden de operación, ya que este queda establecido por ubicación de los operadores con respecto a los operandos.  Para convertir una expresión dada en notación INFIJA a una notación POSTFIJA, deberán establecerse previamente ciertas condiciones
Solamente se manejarán los siguientes operadores (Están dados ordenadamente de mayor a menor según su prioridad de ejecución):  operador prioridad dentro prioridad fuera de la pila de la pila ^ (potencia)   3   3  * , /    2   2 +,  -    1   1 (   0   4 Los operadores de mas alta prioridad se ejecutan primero. Si hubiera en una expresión dos o mas operadores de igual prioridad, entonces se procesarán de izquierda a derecha.
Las subexpresiones parentizadas tendrán más prioridad que cualquier operador. Obsérvese que no se trata el paréntesis derecho ya que este provoca sacar operadores de la pila hasta el paréntesis izquierdo.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Transformación de expresión infija a postfija Se parte de una expresión en notación infija que tiene operandos, operadores y puede tener paréntesis. Los operandos vienen representados pos letras y los operadores son: ^, *, /, *, - La transformación se realiza utilizando una pila en la cual se almacenan los operadores y los paréntesis izquierdos. La expresión aritmética se va leyendo desde el teclado de izquierda a derecha, carácter a carácter, los operandos pasan directamente a formar parte de la expresión en postfija la cual se guarda en un arreglo.
Los operadores se meten en la pila siempre que ésta esté vacía, o bien siempre que tengan mayor prioridad que el operador de la cima de la pila (o bien si es la máxima prioridad). Si la prioridad es menor o igual se saca el elemento cima de la pila  y se vuelve a hacer la comparación con el nuevo elemento cima. Los paréntesis izquierdos siempre se meten en la pila; dentro de la pila se les considera de mínima prioridad para que todo operador que se encuentra dentro del paréntesis entre en la pila.
Cuando se lee un paréntesis derecho hay que sacar todos los operadores de la pila pasando a formar parte de la expresión postfija, hasta llegar a un paréntesis izquierdo, el cual se elimina ya que los paréntesis no forman parte de la expresión postfija. El proceso termina cuando no hay más elementos de la expresión y la pila esté vacía.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evaluación de la expresión en notación postfija. Se almacena la expresión aritmética transformada a notación postfija en un vector, en la que los operandos están representados por variables de una sola letra. Antes de evaluar la expresión se requiere dar valores numéricos a los operandos. Una vez que se tiene los valores de los operandos, la expresión es evaluada. El algoritmo de evaluación utiliza una pila de operandos, en definitiva de números reales.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Notación prefija y notación postfija
Notación prefija y notación postfija

Más contenido relacionado

La actualidad más candente

Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
Angel Vázquez Patiño
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCristopher Morales Ruiz
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
Jose Guadalupe Couoh Dzul
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
José Antonio Sandoval Acosta
 
arboles avl con codigo en java
arboles avl con codigo en javaarboles avl con codigo en java
arboles avl con codigo en java
marhoz
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
Mariela Cabezas
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
Michael
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisiones
emiru48
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
José Antonio Sandoval Acosta
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalLuis Jherry
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
DĴäîřo Lêmä
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
Fernando Solis
 
Conversion de infija a postfija
Conversion de infija  a postfijaConversion de infija  a postfija
Conversion de infija a postfija
scotto4
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
Carlos Alberto Cuervo Cardenas
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
Daniel Gomez Jaramillo
 

La actualidad más candente (20)

Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busqueda
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
arboles avl con codigo en java
arboles avl con codigo en javaarboles avl con codigo en java
arboles avl con codigo en java
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisiones
 
Colas
ColasColas
Colas
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Conversion de infija a postfija
Conversion de infija  a postfijaConversion de infija  a postfija
Conversion de infija a postfija
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 

Similar a Notación infija postfija

Maria reyes
Maria reyesMaria reyes
Maria reyes
Maria Reyes
 
Postfija con Pilas
 Postfija con Pilas Postfija con Pilas
Postfija con Pilas
CESARHERNANPATRICIOP1
 
Grupo 03
Grupo 03Grupo 03
Grupo 03
luis torres
 
Trabajo De Matematicas
Trabajo De MatematicasTrabajo De Matematicas
Trabajo De Matematicasd16gl
 
Trabajo De Matematicas
Trabajo De MatematicasTrabajo De Matematicas
Trabajo De Matematicasd16gl
 
INTRODUCCIÓN ADSI - PARTE 2
INTRODUCCIÓN ADSI - PARTE 2INTRODUCCIÓN ADSI - PARTE 2
INTRODUCCIÓN ADSI - PARTE 2thefasp10
 
1390230107 194 _operadores
1390230107 194 _operadores1390230107 194 _operadores
1390230107 194 _operadoresJair BG
 
5 Expresiones
5 Expresiones5 Expresiones
5 Expresiones
Paulo Guerra Terán
 
TRABAJO DE MATE
TRABAJO DE MATETRABAJO DE MATE
TRABAJO DE MATE
sell123
 
trabajo de matematicas
trabajo de matematicastrabajo de matematicas
trabajo de matematicas
sell123
 
TRABAJO DE MATE
TRABAJO DE MATETRABAJO DE MATE
TRABAJO DE MATE
sell123
 
presentacion sobre operadores en java y su uso.
presentacion sobre operadores en java y su uso.presentacion sobre operadores en java y su uso.
presentacion sobre operadores en java y su uso.
Vectornavarro
 
Alguas ideas de estructura de datos
Alguas ideas de estructura de datosAlguas ideas de estructura de datos
Alguas ideas de estructura de datosWolphkens Leveille
 
Actividad N° 7 - Unidad 4
Actividad N° 7 - Unidad 4 Actividad N° 7 - Unidad 4
Actividad N° 7 - Unidad 4
Pablo Agustin Novillo Audicio
 
Fórmulas en microsoft excel
Fórmulas en microsoft excelFórmulas en microsoft excel
Fórmulas en microsoft excel
Ingeniero Ipla
 
TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++
KatherinBarrios17
 
TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++
ManuelHernandez480
 
Excel universidad de los andes
Excel universidad de los andesExcel universidad de los andes
Excel universidad de los andes
Carolina Giraldo
 
Operadores yahir
Operadores yahirOperadores yahir
Operadores yahir
Maztherprozh
 

Similar a Notación infija postfija (20)

Maria reyes
Maria reyesMaria reyes
Maria reyes
 
Postfija con Pilas
 Postfija con Pilas Postfija con Pilas
Postfija con Pilas
 
Grupo 03
Grupo 03Grupo 03
Grupo 03
 
Trabajo De Matematicas
Trabajo De MatematicasTrabajo De Matematicas
Trabajo De Matematicas
 
Trabajo De Matematicas
Trabajo De MatematicasTrabajo De Matematicas
Trabajo De Matematicas
 
INTRODUCCIÓN ADSI - PARTE 2
INTRODUCCIÓN ADSI - PARTE 2INTRODUCCIÓN ADSI - PARTE 2
INTRODUCCIÓN ADSI - PARTE 2
 
1390230107 194 _operadores
1390230107 194 _operadores1390230107 194 _operadores
1390230107 194 _operadores
 
5 Expresiones
5 Expresiones5 Expresiones
5 Expresiones
 
TRABAJO DE MATE
TRABAJO DE MATETRABAJO DE MATE
TRABAJO DE MATE
 
trabajo de matematicas
trabajo de matematicastrabajo de matematicas
trabajo de matematicas
 
TRABAJO DE MATE
TRABAJO DE MATETRABAJO DE MATE
TRABAJO DE MATE
 
presentacion sobre operadores en java y su uso.
presentacion sobre operadores en java y su uso.presentacion sobre operadores en java y su uso.
presentacion sobre operadores en java y su uso.
 
Alguas ideas de estructura de datos
Alguas ideas de estructura de datosAlguas ideas de estructura de datos
Alguas ideas de estructura de datos
 
Actividad N° 7 - Unidad 4
Actividad N° 7 - Unidad 4 Actividad N° 7 - Unidad 4
Actividad N° 7 - Unidad 4
 
Guia de cobol
Guia de cobolGuia de cobol
Guia de cobol
 
Fórmulas en microsoft excel
Fórmulas en microsoft excelFórmulas en microsoft excel
Fórmulas en microsoft excel
 
TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++
 
TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++
 
Excel universidad de los andes
Excel universidad de los andesExcel universidad de los andes
Excel universidad de los andes
 
Operadores yahir
Operadores yahirOperadores yahir
Operadores yahir
 

Notación infija postfija

  • 1. Evaluación de expresiones aritméticas mediante pilas Una expresión aritmética está formada por operandos y operadores. Así la expresión x *y-(a+b) consta de los operadores *, -, + y de los operandos x, y, a, b. Los operandos pueden ser valores constantes, variables o incluso, otra expresión. Los operadores son los símbolos conocidos de las operaciones matemáticas. La evaluación de una expresión aritmética da lugar a un valor numérico, se realiza sustituyendo los operandos que son variables por valores concretos y ejecutando las operaciones aritméticas representadas por los operadores.
  • 2. Así, si los operandos de la expresión anterior toman los valores: x=5, y=2, a=3, b=4, el resultado de la evaluación es: 5*2 – (3+4) = 5*2 – 7 = 10 – 7 = 3 La forma habitual de escribir expresiones matemáticas es aquella en la que el operador está entre dos operandos. La expresión anterior escrita de esa forma, recibe el nombre de notación infija. Esta forma de escribir las expresiones exige, en algunas ocaciones, el uso de paréntesis para encerrar subexpresiones con mayor prioridad, sin olvidar los niveles de prioridad y la asociatividad.
  • 3. Notación prefija y notación postfija de una expresión aritmética Para nuestro problema una expresión aritmética será un medio que permite indicar el orden en que se deben realizar una serie de operaciones para obtener un resultado. Las operaciones se indican mediante operadores, que en nuestro caso representan las operaciones suma, resta, producto, división e igualdad, todas ellas operaciones binarias (necesitan exactamente dos argumentos para poderse evaluar).
  • 4. Existen varias notaciones para representar expresiones aritméticas, que se diferencian en el orden en que se escriben los argumentos (operandos) de los operadores. Las más relevantes son: Notación infija : La notación habitual. El orden es primer operando, operador, segundo operando. Notación prefija : El orden es operador, primer operando, segundo operando. Notación postfija : El orden es primer operando, segundo operando, operador. Notación funcional : Se escribe el operador/función y despues, entre paréntesis, los operadores separados por comas.
  • 5. La notación infija tiene el problema de que en expresiones con más de un operador existe ambiguedad sobre cual es el orden de evaluación. Por ejemplo, la expresión 8/4/2 se puede interpretar como (8/4)/2 o bien como 8/(4/2). Las otras notaciones no sufren este problema. Un problema interesante en computación es poder convertir expresiones en notación INFIJA a su equivalente en notacion POSTFIJA. Dada la expresión A+B se dice que está en notación INFIJA, y su nombre se debe a que el operador (+) esta entre los operadores (A y B).
  • 6. Dada la expresión AB+ se dice que está en notación POSTFIJA, y su nombre se debe a que el operador (+) esta después entre los operadores (A y B). La ventaja de usar expresiones en notación polaca POSTFIJA radica en que no son necesarios los paréntesis para indicar orden de operación, ya que este queda establecido por ubicación de los operadores con respecto a los operandos. Para convertir una expresión dada en notación INFIJA a una notación POSTFIJA, deberán establecerse previamente ciertas condiciones
  • 7. Solamente se manejarán los siguientes operadores (Están dados ordenadamente de mayor a menor según su prioridad de ejecución): operador prioridad dentro prioridad fuera de la pila de la pila ^ (potencia) 3 3 * , / 2 2 +, - 1 1 ( 0 4 Los operadores de mas alta prioridad se ejecutan primero. Si hubiera en una expresión dos o mas operadores de igual prioridad, entonces se procesarán de izquierda a derecha.
  • 8. Las subexpresiones parentizadas tendrán más prioridad que cualquier operador. Obsérvese que no se trata el paréntesis derecho ya que este provoca sacar operadores de la pila hasta el paréntesis izquierdo.
  • 9.
  • 10.
  • 11. Transformación de expresión infija a postfija Se parte de una expresión en notación infija que tiene operandos, operadores y puede tener paréntesis. Los operandos vienen representados pos letras y los operadores son: ^, *, /, *, - La transformación se realiza utilizando una pila en la cual se almacenan los operadores y los paréntesis izquierdos. La expresión aritmética se va leyendo desde el teclado de izquierda a derecha, carácter a carácter, los operandos pasan directamente a formar parte de la expresión en postfija la cual se guarda en un arreglo.
  • 12. Los operadores se meten en la pila siempre que ésta esté vacía, o bien siempre que tengan mayor prioridad que el operador de la cima de la pila (o bien si es la máxima prioridad). Si la prioridad es menor o igual se saca el elemento cima de la pila y se vuelve a hacer la comparación con el nuevo elemento cima. Los paréntesis izquierdos siempre se meten en la pila; dentro de la pila se les considera de mínima prioridad para que todo operador que se encuentra dentro del paréntesis entre en la pila.
  • 13. Cuando se lee un paréntesis derecho hay que sacar todos los operadores de la pila pasando a formar parte de la expresión postfija, hasta llegar a un paréntesis izquierdo, el cual se elimina ya que los paréntesis no forman parte de la expresión postfija. El proceso termina cuando no hay más elementos de la expresión y la pila esté vacía.
  • 14.
  • 15.
  • 16. Evaluación de la expresión en notación postfija. Se almacena la expresión aritmética transformada a notación postfija en un vector, en la que los operandos están representados por variables de una sola letra. Antes de evaluar la expresión se requiere dar valores numéricos a los operandos. Una vez que se tiene los valores de los operandos, la expresión es evaluada. El algoritmo de evaluación utiliza una pila de operandos, en definitiva de números reales.
  • 17.
  • 18. Notación prefija y notación postfija
  • 19. Notación prefija y notación postfija