SlideShare a Scribd company logo
1 of 19
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

More Related Content

What's hot

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 ordenamientoJosé Antonio Sandoval Acosta
 
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 linealesJosé Antonio Sandoval Acosta
 
Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas yelizabeth_20
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUrban Skate House
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasJosé Antonio Sandoval Acosta
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Rubi Veronica Chimal Cuxin
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingJonathan Bastidas
 
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
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesIsrael Castillo Cruz
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionjorge severino
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoLutzo Guzmán
 

What's hot (20)

Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
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
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
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
 
Recursividad
RecursividadRecursividad
Recursividad
 
Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas 
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datos
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
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.
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamiento
 

Similar to Notación infija postfija

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
 
trabajo de matematicas
trabajo de matematicastrabajo de matematicas
trabajo de matematicassell123
 
TRABAJO DE MATE
TRABAJO DE MATETRABAJO DE MATE
TRABAJO DE MATEsell123
 
TRABAJO DE MATE
TRABAJO DE MATETRABAJO DE MATE
TRABAJO DE MATEsell123
 
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
 
Fórmulas en microsoft excel
Fórmulas en microsoft excelFórmulas en microsoft excel
Fórmulas en microsoft excelIngeniero Ipla
 
TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++KatherinBarrios17
 
Excel universidad de los andes
Excel universidad de los andesExcel universidad de los andes
Excel universidad de los andesCarolina Giraldo
 

Similar to 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 matematicas
trabajo de matematicastrabajo de matematicas
trabajo de matematicas
 
TRABAJO DE MATE
TRABAJO DE MATETRABAJO DE MATE
TRABAJO DE MATE
 
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