{"id":146,"date":"2015-12-02T00:36:04","date_gmt":"2015-12-02T00:36:04","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/rvivanco\/?p=146"},"modified":"2015-12-02T01:16:35","modified_gmt":"2015-12-02T01:16:35","slug":"convertir-una-expresion-infix-a-postfix","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/rvivanco\/2015\/12\/02\/convertir-una-expresion-infix-a-postfix\/","title":{"rendered":"Convertir una expresion Infix a Postfix"},"content":{"rendered":"<p style=\"text-align: justify\">Es es un ejercicio muy \u00fatil para entender el concepto de pilas en java, recordemos que una pila funciona como LIFO en este ejercicio consta de 3 clases\u00a0\u00a0muy importantes, las cuales las detallare a continuaci\u00f3n<\/p>\n<p><strong><span style=\"color: #000000\">Clase Principal(Deber2)<\/span><\/strong><\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/rvivanco\/files\/2015\/12\/Deber21.pdf\">Deber2<\/a><\/p>\n<ul>\n<li>Pedimos una expresi\u00f3n por teclado, esta expresi\u00f3n debe estar en Infix(Normalmente una expresi\u00f3n) ejm A+B*D<\/li>\n<li>Realizamos una clase para determinar si la expresi\u00f3n es correcta( Si los par\u00e9ntesis est\u00e1n correctamente)<\/li>\n<li>Si la expresi\u00f3n es correcta la transformamos a PostFix<\/li>\n<li>Preguntamos al usuario si quiere evaluar la expresi\u00f3n convertida o quiera evaluar una expresi\u00f3n nueva<\/li>\n<li>Se pide al usuario que ingrese los valores de las variables usadas en la expresi\u00f3n<\/li>\n<li>Nos muestra por pantalla la expresi\u00f3n convertida a PostFix y cuanto es valor numerico equivalente de la expresi\u00f3n<\/li>\n<\/ul>\n<p><strong><span style=\"color: #000000\">Clase Variable<\/span><\/strong><\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/rvivanco\/files\/2015\/12\/Variable1.pdf\">Variable<\/a><\/p>\n<ul>\n<li>Utilizamos 2 par\u00e1metros(Character nombre, int \u00a0valor)<\/li>\n<li>\u00a02 M\u00e9todos Constructores (1. con par\u00e1metros, 2.sin par\u00e1metros)<\/li>\n<li>Invocamos los m\u00e9todos get y set<\/li>\n<li>Override Metodo ToString (sobrescribimos ToString)<\/li>\n<\/ul>\n<p><strong><span style=\"color: #000000\">Clase\u00a0<\/span>Expresi\u00f3n<span style=\"color: #000000\">\u00a0<\/span><\/strong><\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/rvivanco\/files\/2015\/12\/Expresion1.pdf\">Expresion<\/a><\/p>\n<ul>\n<li>M\u00e9todo constructor sin par\u00e1metros<\/li>\n<li>M\u00e9todo\u00a0VerificarParentesis<\/li>\n<\/ul>\n<blockquote>\n<p style=\"text-align: justify\"><em>En este metodo utilizamos una pila la cual a\u00f1ade un elemento si la expresion tiene el parentesis\"(\" y remueve un elemento si tiene el parentesis \")\" finalmente la expresion retornara true si la pila esta vacia y false si esta llena<\/em><\/p>\n<\/blockquote>\n<ul>\n<li style=\"text-align: justify\">M\u00e9todo InFixToPostFix<\/li>\n<\/ul>\n<blockquote>\n<p style=\"text-align: justify\">Este m\u00e9todo trabaja de dos maneras diferentes, dependiendo si la\u00a0<span style=\"font-style: normal\">expresi\u00f3n<\/span>\u00a0tiene par\u00e9ntesis o no<\/p>\n<p style=\"text-align: justify\">Si tiene par\u00e9ntesis creamos 3 pilas, la primera pila me funciona para los operadores, segunda para los par\u00e9ntesis, la tercera para los multiplicandos de las expresiones ejem<\/p>\n<p style=\"text-align: justify\">(a+b)*(a-b)\u00a0!= a+b*a-b<\/p>\n<p style=\"text-align: justify\">Por esta raz\u00f3n trabajamos este m\u00e9todo dependiendo de la expresi\u00f3n<\/p>\n<\/blockquote>\n<ul>\n<li style=\"text-align: justify\">M\u00e9todo evaluar<\/li>\n<\/ul>\n<blockquote>\n<p style=\"text-align: justify\">Este m\u00e9todo eval\u00faa una expresi\u00f3n en PostFix, Utilizamos una pila la cual agrega y remueve los operadores, la l\u00f3gica que utilizamos fue agregar variables\u00a0en una pila asta que encuentre un operador al momento de encontrar un\u00a0operador\u00a0removemos\u00a0las dos ultimas variables ingresadas ala pila y realizamos la operaci\u00f3n, y esta operaci\u00f3n la volvemos agregar ala pila, asta recorrer toda la expresi\u00f3n<\/p>\n<p style=\"text-align: justify\">AB*V+=A*B+V<\/p>\n<\/blockquote>\n<ul>\n<li style=\"text-align: justify\">M\u00e9todo Variables<\/li>\n<\/ul>\n<blockquote><p>Este m\u00e9todo realiza la funci\u00f3n de sacar todas las variables de la expresi\u00f3n y gu\u00e1rdalas en una lista, las variables no pueden ser repetidas y a!=A respetando las may\u00fasculas y min\u00fasculas<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/rvivanco\/files\/2015\/12\/AA.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-156\" src=\"http:\/\/blog.espol.edu.ec\/rvivanco\/files\/2015\/12\/AA-300x229.png\" alt=\"AA\" width=\"300\" height=\"229\" srcset=\"https:\/\/blog.espol.edu.ec\/rvivanco\/files\/2015\/12\/AA-300x229.png 300w, https:\/\/blog.espol.edu.ec\/rvivanco\/files\/2015\/12\/AA.png 575w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: center\">ESPERO QUE LES GUSTE CUALQUIER INQUIETUD CONT\u00c1CTENME POR FACEBOOK SUERTE ESPERO QUE LES SIRVA DE AYUDA \ud83d\ude42<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Es es un ejercicio muy \u00fatil para entender el concepto de pilas en java, recordemos que una pila funciona como LIFO en este ejercicio consta de 3 clases\u00a0\u00a0muy importantes, las cuales las detallare a continuaci\u00f3n Clase Principal(Deber2) Deber2 Pedimos una expresi\u00f3n por teclado, esta expresi\u00f3n debe estar en Infix(Normalmente una expresi\u00f3n) ejm A+B*D Realizamos una [&hellip;]<\/p>\n","protected":false},"author":9427,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[818],"tags":[],"class_list":["post-146","post","type-post","status-publish","format-standard","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/rvivanco\/wp-json\/wp\/v2\/posts\/146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/rvivanco\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/rvivanco\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/rvivanco\/wp-json\/wp\/v2\/users\/9427"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/rvivanco\/wp-json\/wp\/v2\/comments?post=146"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/rvivanco\/wp-json\/wp\/v2\/posts\/146\/revisions"}],"predecessor-version":[{"id":157,"href":"https:\/\/blog.espol.edu.ec\/rvivanco\/wp-json\/wp\/v2\/posts\/146\/revisions\/157"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/rvivanco\/wp-json\/wp\/v2\/media?parent=146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/rvivanco\/wp-json\/wp\/v2\/categories?post=146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/rvivanco\/wp-json\/wp\/v2\/tags?post=146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}