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

Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria EstaticaJ M
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamicagusolis93
 
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
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programaDavid Tuarez
 
Problemas de diseño de base de datos
Problemas de diseño de base de datosProblemas de diseño de base de datos
Problemas de diseño de base de datosgonzalopomboza
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura linealesEnrique2194
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
Máquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y AplicacionesMáquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y AplicacionesRosviannis Barreiro
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 

What's hot (20)

Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Colas
ColasColas
Colas
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
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
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Pilas estáticas. IESIT
Pilas estáticas. IESITPilas estáticas. IESIT
Pilas estáticas. IESIT
 
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
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programa
 
Problemas de diseño de base de datos
Problemas de diseño de base de datosProblemas de diseño de base de datos
Problemas de diseño de base de datos
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura lineales
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Máquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y AplicacionesMáquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y Aplicaciones
 
Recursividad
RecursividadRecursividad
Recursividad
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 

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