El día 23 de enero de 2013 18:34, manuel <manuelcorte...@gmail.com> escribió:
> Otra de las cosas que quisiera preguntar, es si se podría conseguir un > resultado de un porcentaje, pero escrito de la siguiente forma: 25+50%. > > En GCalctool, esto se hace, pero no sé leer el código; no entiendo de muy > buena forma cómo lo hacen; se asume que el 50% debe ser del número 25, pero > cuando haces 25% se obtiene un 0.25, donde se asume no sé qué, se multiplica > 25*1/100, y se obtiene el resultado. Hay un modo sencillo de hacer la calculadora que es dar los resultados parciales a medida que se van aplicando los operadores. Por ejemplo, cuando sumas números, cada vez que se pulsa la tecla + se obtiene cada resultado parcial de la suma. Tal como lo planteas, tu idea es algo más complicada. Lo simple sería escribir la operación como si fuera una expresión python y dejar que la evalúe el intérprete. Si lo quieres hacer de otro modo, tendrás que empezar por distinguir qué operadores son totalizadores (cálculos parciales y totales) y en qué posición actúan (prefix/infix/sufix). Tal como creo que intuyes, no es nada fácil y necesitarás conocer algo de "teoría de máquinas de estados finitos" para entenderlo, algo que se sale bastante de un proyecto de final de curso. No tengo una recomendación clara que te pueda ayudar. Si sientes curiosidad, tal vez podría buscarte algo de código para hacer una calculadora. Sobre lo que preguntas del tanto por ciento, se suelen representan los números reales del 0 al 1 como factores multiplicativos, para lo que se muestran multiplicados por 100 o por 1000, añadiendo el sufijo % ó ‰ (unicode U+2030) respectivamente. Así, por ejemplo, el 50% representa al factor 0.5, más conocido por 1/2 En el caso de 25+50% se trataría de una operación de descuentos/incrementos, donde a 25 le sumas un 50% (de 25). El porqué el operador % funciona ahora así en lugar de limitarse a convertir 50% en 0.5 se debe a que la calculadora ha cambiado de estado al iniciarse la suma. En una suma, el 50% se toma como operación de incremento en lugar de factor multiplicativo. Es un ejemplo de funcionamiento de máquina de estados finitos. Por otra parte, no sé si conoces la Fundación ONCE española. Se dedica a adaptar dispositivos y aplicaciones a usuarios con deficiencia visual o motora (tiflotecnología) a través de su centro CIDAT (http://cidat.once.es). Mira en su FTP. Así mismo, existe una calculadora llamada ATCalc que se adapta a tus necesidades. Es programable (en pascal), lo que te puede dar ideas para tu calculadora: http://atcalc.sourceforge.net/indexESP.htm -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/