SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: leon627 en Martes 21 de Noviembre de 2006, 02:34
-
saludos a todos :hola: :
pues la verdad hago este post para que alguna persona que sepa me pueda colaborar con este algorismo que es un trabajo de final de semestre (segundo de ing informatica :comp: ), y ando bien barado con el.la verdad no pido tanto que me lo entregen hecho sino que de alguna manera me eseñen a construirlo,pero si lo tienen hecho no me enojo.
el algorismo pedido es:
elaborar una calculadora que evalue y muestre una exprsion dadaen una de las notaciones ya sea en infijo (n+m),prefijo (+nm),posfijo(nm+) y muestre las otras dos y el resultado,inplementado listas y sus manejos(colas,pilas y expesiones)
es mi primer post aqui espero que no sea el unico si alguien sabe algo se recive cualquier aporte.
muchisimas gracias :P
en sus manos estoy :smartass:
-
Pues esto a lo que te referís es a la notacion Polaca, si no estoy mal, de primero aclaranos algunas cosas, como por ejemplo si se va a manejar jerarquias de operaciones, y si se van a usar signos de agrupación, como parentesis, corchetes, llaves???,
Para empezar a darte una idea, cada operación como suma, resta multiplicacion y division tiene una prioridad, por ejemplo en una operacion 2+6*3, se hará de primero el seis por 3, y luego se le sumara el dos. es decir la multiplicacion tiene mas prioridad que la suma, eso lo podes manejar a base de banderas.
No se si te entendi bien tu pregunta.
-
Pues esto a lo que te referís es a la notacion Polaca, si no estoy mal, de primero aclaranos algunas cosas, como por ejemplo si se va a manejar jerarquias de operaciones, y si se van a usar signos de agrupación, como parentesis, corchetes, llaves???,
Para empezar a darte una idea, cada operación como suma, resta multiplicacion y division tiene una prioridad, por ejemplo en una operacion 2+6*3, se hará de primero el seis por 3, y luego se le sumara el dos. es decir la multiplicacion tiene mas prioridad que la suma, eso lo podes manejar a base de banderas.
No se si te entendi bien tu pregunta.
primero que todo coordial saludo para vos.
y la verdad es que si tiene que llevar la prioridad de signos y con signos de agrupacion cuando son largas . o de las banderas la verdad no se a que te referis.
y la notacion polaca(prefija) es una de las formas de notacion a el igual que la polaca inversa (posfija).
hermano cualquier ayuda me sirve gracias
-
me imagino que tu programa tiene que pedirle al usuario que ingrese la forma en que va a resolver la expresion ingresada, es decir va a preguntar si se quiere hacer en notacion prefija, posfija o infija, cierto?
la idea que tengo de como hacerlo es ir metiendo los valores en una pila, e ir comparando los signos que vas encontrando a lo largo de la expresion, por ejemplo si tenemos 2+3*9, lo primero que encontrara es un 2, luego eso lo mete a la pila, luego encuentra un +, lo mete a la pila otra vez, luego encuentra un 3 y lo mete a la pila
bueno y luego encontrara un *, este signo tiene más prioridad que el +, luego esto quiere decir que el 3 no se tiene que sumar con el 2, entonces metes el * a la pila, luego encontras un nueve y lo metes a la pila, luego encuentra el fin de la cadena y empezas a operar, el primer signo de operacion que encontrara es un *, multiplicas los dos numeros que estan a la par de él, el 3 y el 9, y te da un resultado y ese resultado lo pones en la posicion de la pila donde estaba el 3, luego efectuas la suma de 27 y 2.
ahora si tuvieras 2+2+3, cuando encuentre el segundo signo +, como tienen igual prioridad, operarias inmediatamente el 2+2, y en tu primera posicion de la pila estaria un 4, luego seguiria otro signo más, (lo ultimo que leiste), y luego se inserta el 3, y como se termino la cadena operas lo que esta adentro de la pila. lo mismo para los signos de agrupacion que uses.
Ojala te haya ayudado y no en lugar de eso confundirte. saludos
-
:lol: :D :D :D
Podeis probar leyendo lo que hay en este link:
http://articulos.conclase.net/calculadora/simple.html (http://articulos.conclase.net/calculadora/simple.html)
-
Bueno, lo que hay que hacer es crear un arbol binario ( por eso en el articulo habla de pos fijo e infijo) con operadores y con los valores, y luego vas recorriendo las rramas del arbol y resolviendo cada uno de sus nodos.
-
Por cierto... que es un algorismo?
He modificado el titulo :smartass:
-
me imagino que tu programa tiene que pedirle al usuario que ingrese la forma en que va a resolver la expresion ingresada, es decir va a preguntar si se quiere hacer en notacion prefija, posfija o infija, cierto?
la idea que tengo de como hacerlo es ir metiendo los valores en una pila, e ir comparando los signos que vas encontrando a lo largo de la expresion, por ejemplo si tenemos 2+3*9, lo primero que encontrara es un 2, luego eso lo mete a la pila, luego encuentra un +, lo mete a la pila otra vez, luego encuentra un 3 y lo mete a la pila
bueno y luego encontrara un *, este signo tiene más prioridad que el +, luego esto quiere decir que el 3 no se tiene que sumar con el 2, entonces metes el * a la pila, luego encontras un nueve y lo metes a la pila, luego encuentra el fin de la cadena y empezas a operar, el primer signo de operacion que encontrara es un *, multiplicas los dos numeros que estan a la par de él, el 3 y el 9, y te da un resultado y ese resultado lo pones en la posicion de la pila donde estaba el 3, luego efectuas la suma de 27 y 2.
ahora si tuvieras 2+2+3, cuando encuentre el segundo signo +, como tienen igual prioridad, operarias inmediatamente el 2+2, y en tu primera posicion de la pila estaria un 4, luego seguiria otro signo más, (lo ultimo que leiste), y luego se inserta el 3, y como se termino la cadena operas lo que esta adentro de la pila. lo mismo para los signos de agrupacion que uses.
Ojala te haya ayudado y no en lugar de eso confundirte. saludos
eso me parese buena idea el problema es pasarlo a seudocodigo o a lenguaje en c
si alguien me puede ayudar muchas gracias,y a vos por molestrte tanto.
pd: juank que son rramas? :whistling:
-
bueno veo que nadie se anima para que les quede mas facil que es:
que el progrma le ingresn la exprecion el usuario diga en que forma esta (no hay que verificar) y luego de el resultado
muchach@s por favor colaboren que esto es para el miercoles de la otra semana
-
Mi consejo es que no esperés a que alguien te mande el codigo de como hacer este programa, a demas aqui no se hacen tareas :P . porque no empezas a hacerlo y las dudas que te vayan surgiendo, las publicás.
-
:D :D :D
y bien aqui explica como lo puedes ir haciendo al menos ya lo leiste ????
http://articulos.conclase.net/calculadora/simple.html (http://articulos.conclase.net/calculadora/simple.html)
y si es asi que es lo que no entiendes cuales son tus dudas ???
-
que pena con ustedes si lo incomode con la tarea y ya mire el link que me regalron de hecho los otrso dos integrantes de mi grupo lo leyeron ademas de muchas otras paginas que siempre me muestran lo mismo o casi igual,ya veo que nadie sabe o conose una manera facil de hacerla pero gracias por la ayuda de todas maneras si encuentro el algoritmo lo postea de todas maneras para que otro que lo nesecite o quiera conocer lo tenga a la mano saludos.
y gracias
-
que pena con ustedes si lo incomode con la tarea y ya mire el link que me regalron de hecho los otrso dos integrantes de mi grupo lo leyeron ademas de muchas otras paginas que siempre me muestran lo mismo o casi igual,ya veo que nadie sabe o conose una manera facil de hacerla pero gracias por la ayuda de todas maneras si encuentro el algoritmo lo postea de todas maneras para que otro que lo nesecite o quiera conocer lo tenga a la mano saludos.
y gracias
HOlis, yo tambien estoy tratando de hacer una calculadora, tendras el codigo fuente?
espero tu respuesta
gracias
-
HOlis, yo tambien estoy tratando de hacer una calculadora, tendras el codigo fuente?
espero tu respuesta
gracias
:D :D
Lo siento pero no se hacen tareas, respondemos a preguntas concretas en caso de ya hayas intentado hacer la calculadora y estes atorada en algun punto.
Si acaso se hubieran tomado la molestia de buscar un poco en google o yahoo seguramente encontrarian el codigo de una calculadora si es eso lo que buscan.
-
que pena con ustedes si lo incomode con la tarea y ya mire el link que me regalron de hecho los otrso dos integrantes de mi grupo lo leyeron ademas de muchas otras paginas que siempre me muestran lo mismo o casi igual,ya veo que nadie sabe o conose una manera facil de hacerla pero gracias por la ayuda de todas maneras si encuentro el algoritmo lo postea de todas maneras para que otro que lo nesecite o quiera conocer lo tenga a la mano saludos.
y gracias
Hola Leon si tienes el codigo de la calculadora, me lo podrias pasar a mi correo pichi251281@yahoo.com
Me parese que si vamos hacer futuros colegas deberiamos ayudarnos unos a otros, no veo ningun problema en prestarnos los codigos, igual yo aqui he pasado varios uno de ellos un MS-DOS por aquello que alguien lo quiera
Gracias