Proyecto: Suma de fracciones

Proyecto: "Usando AppInventor para una aplicación educativa"

¡Bienvenidos!

En esta ultima oportunidad aprenderán a realizar una aplicación para que el estudiante aprenda a sumar fracciones heterogéneas, utilizando un método de bloques. 

Les dejare un link para que se interioricen acerca de lo que haremos a continuación 

Antes de comenzar con la programación vamos a especificar que es lo que realizará esta aplicación:

En la parte superior encontraran unos espacios en donde podrán escribir las fracciones que quieran sumar, y cuando ingresen los datos se mostrará el MCM entre los denominadores, mediante un notificador en la pantalla.

Cuando eso pase se "soltaran" 2 bloques que corresponden a una equivalencia de las fracciones ingresadas, ustedes podrán arrastrar estos bloques e irlos colocando por encima de bloques más pequeños para así tener el mismo denominador en ambas fracciones y la suma sea más sencilla.

Cuando tengas la suma podrás ingresar denominador y numerador al lado derecho de los bloques y puedes verificar si el resultado es el correcto, por ultimo, el botón de reiniciar, con este botón los bloques volverán a su posición inicial, los campos de texto se restablecerán quedando en blanco, y los botones para elegir un nuevo ejercicio de suma de fracciones se habilitarán.

Mostraré una propuesta de actividad para que realicen junto con la aplicación 

Actividad

¡Ayuda a los padres de María!

A María todas las semanas sus abuelos le dan una mesada, esta semana se ha gastado 1/3 del dinero  en comprar un libro de historia, y al día siguiente se ha gastado 1/4 del dinero que recibió en golosinas.



¿Puedes ayudar a los padres de María diciéndoles cuál fue la porción de  dinero que ha gastado?


Si el libro de historia costará el doble, ¿Cuál seria la porción de dinero gastado?


La idea es que al plantear este problema el estudiante pueda ayudarse de la aplicación que se va a programar a continuación


Comenzamos con la programación de la aplicación


Lo primero que haremos será hacer la parte que esta por encima de los bloques, para esto necesitaremos etiquetas, botones para ingresar los datos y reiniciar, además de dos disposiciónhorizontal.



Recordar cambiar el nombre en propiedades para no tener confusiones a la hora de programar

Lo que haremos ahora es la parte de los bloques y la verificación de la suma, para esto, utilizaremos las siguientes imágenes

Esta es la que usaremos como base


Estas las acomodaremos encima de la anterior, serán los bloques que se "suelten" cuando se ingresen los datos





Al lado derecho de la imagen base colocaremos un botón de verificar y dos etiquetas de texto para ingresar el resultado de la suma.

No olvidar colocar un notificador




¡Ahora a programar!

Lo primero que haremos será crear las variables, las cuales almacenarán a las fracciones que pone el usuario, y a la vez estarán encargadas de ser parte fundamental de los algoritmos que incluiremos dentro de nuestra aplicación. Estas variables quedarán de la siguiente forma, y las iremos explicando a medida de que aparezcan en el algoritmo:



Lo que queremos es que cuando se presione el botón Ingresar, se calcule el mínimo común denominador de ambas fracciones. Este algoritmo es bastante complicado, pues hay que tener en cuenta que es una versión de la clásica tabla que se usa para este objetivo, como esta:


Para esto, aplicaremos el siguiente algoritmo: tendremos un contador que parta del número 2. Si alguno de los denominadores es divisible por 2, se efectúa la división y se multiplicará ese 2 por una variable mínimo, la cual empezará en 1. Esto sucederá hasta que 2 ya no pueda seguir dividiendo a ninguno de los dos denominadores, y en ese caso, se sumará 1 a la variable contador, hasta llegar a 5. Esto porque los números primos mayores no comparten múltiplos con los demás que están en nuestra pantalla, y los bloques quedarán de la siguiente forma:



Luego de esto, el MCM saldrá a la pantalla mediante un notificador, el cual se llama con los siguientes bloques:



Por último, si los denominadores iniciales fueron 2,3,4,5 ó 6, se habilitará un bloque, dependiendo de cada denominador, el cual podrá ser arrastrado hacia los bloques que valen menos (con denominador 8, 10 ó  12) para lograr ver su equivalencia (por ejemplo, 1/2 equivale a 3/6 o 4/8), esto se hará así:


Como la imagen que usamos de base para nuestro programa solo llega hasta el 12, lo que haremos será que si el mínimo común denominador no es ninguno de esos, se mandará un mensaje como notificador, en donde se explicará lo anteriormente dicho.


Para poder mover las fracciones, se necesitarán bloques cuando imagen arrastrado, en donde se moverá la imagen a la posición actual del cursor o dedo. Como ejemplo les doy el siguiente, y ustedes deberán hacer el resto, los cuales son muy parecidos a este:


Si nos damos cuenta, también hay un botón reiniciar, cuyo objetivo es dejar todas las variables en su estado original y además dejar invisible a todas las imágenes, excepto el fondo. Este quedaría como a continuación:


Por último, queda el botón de verificar. Aquí tomaremos el numerador y denominador que nos da el estudiante y lo compararemos con la respuesta real, para saber si está correcto o no. Esto parece una cosa sencilla, simplemente sumar las fracciones originales y ver si el resultado calza con lo que entregó el estudiante, sin embargo, hay un pequeño problema. Los decimales en los lenguajes de programación son bastante imprecisos, por ejemplo hay ocasiones en que una división entera, como 6:2, da como resultado 3,00000001, por error en la forma en que el computador trata ese tipo de números. Para solucionar esto, haremos un bloque si, entonces, sino, en donde preguntaremos si la diferencia de las soluciones es menor que 0,0001, el resultado está correcto, y si no lo es, es incorrecto. Esto queda así:


Y el bloque azul del valor absoluto queda así, de forma bastante intuitiva: (hacer click para ver en mayor tamaño)


Y con todos estos bloques, podrán hacer la actividad propuesta al principio :) además, van a tener una herramienta con la que poder comparar fracciones equivalentes de bajo denominador, y si se animan, mejorar la herramienta, para que pueda tener mayores denominadores o más bloques posibles. ¡Saludos!

P.D.: Si quieren ver como podría quedar un ejemplo de la aplicación que hemos creado, puedes hacer click aquí para realizar una descarga :D

Comentarios