[Música] Hola estamos desarrollando esta app que se llama calculadora de tendencias bueno esta app lo que hace es calcular moda mediana y media en el video anterior expliqué Cómo diseñar esta aplicación y cómo se va a nombrar cada elemento que vamos a utilizar es bueno que lo vean para que sepan cómo se llama y no tengan dudas cuando la estemos desarrollando lo que vamos a hacer va a ser hacer el programa para que calcule la moda esta Va a calcular si hay una moda hay dos modas tres modas cuatro modas cinco modas las modas que sean este mismo algoritmo les sirve si usan algún otro lenguaje de programación les va a funcionar igual Bueno nos vamos a nuestro app inventor Ya estamos en la parte de lo que es en bloques acá y lo que vamos a hacer va a ser empezar con la ación en el botón de Añadir bueno el botón de Añadir lo que va a hacer es Añadir el nuevo dato que se escribió en el textbox y agregarlo a una lista en la cual vamos a estar revisando los datos y vamos a generar el cálculo de la moda la mediana y la media pero en este caso vamos a ver Cómo calcular la moda vamos a inicializar una variable que la vamos a llamar números y la cual vamos a la lista vamos a haar un elemento de lista que va a crear una lista vacía Bueno cuando hagamos esto lo que vamos a hacer va a ser en el botón de en la lista de números vamos a Añadir elementos entonces para eso tenemos que usar un elemento que se llama Añadir ems a la lista A la lista que vamos a Añadir va a ser a la lista números el em tenemos que usar un esem va a ser lo que contenga el Box pero vamos a reemplazar esos elementos este bloque reemplaza ciertos segmentos que se encuentran en el texto por algo en este caso va a ser el texto va a ser lo que contenga el textbox números en su atributo punto text que va a ser lo que vamos a recuperar de lo que escribe el usuario lo que vamos a hacer para evitarnos problemas de de cálculos Así vamos a eliminar los espacios por si algún motivo el usuario escribe alguno porque no podemos calcular espacios lo que va a hacer es que el segmento que va a eliminar vamos a duplicar esta antes el elemento que vamos a el segmento que va a eliminar va a ser los espacios si encuentra un espacio lo va a eliminar por nada lo va a dejar vacío Entonces ya no más vamos a guardar el número ahora lo que vamos a hacer es a al textbox Label de lista de números vamos a agregarle este nuevo elemento lo que vamos a hacer va a ser agregar toda la lista pero para eso vamos a poner un set de de text de la lista de números vamos a crear un proceso que va a eliminar lo que son los los paréntesis y lo que son las comas las comas las va a reemplazar Por quiénes Bueno les voy a explicar un poquito Cómo almacenan los datos una lista una lista almacena los datos de esta forma pone el nombre y Poner este Mario por ejemplo Mario coma Valentín coma este 5 coma Hola va a almacenar los datos de esta forma lo que vamos a hacer nosotros va a eliminar los paréntesis y solo Vamos a dejar lo que son las comas lo vamos a cambiar por guion citos con con su espacio de esta forma todos los datos se van a ver así para eso vamos a usar un proceso que que haga eso okay Entonces vamos a usar el proceso que vamos hacer va a ser este que devuelve un resultado lo que va a serc el proceso va a ser reemplazar texto vamos a usar este mismo mismo elemento pero lo que vas a reemplazar va a ser de lo que tenga la lista números ent para eso usamos un get bueno Esto va a reemplazar lo que va a ser las comas por lo que son los guiones por lo que son esto que son los que son los guiones que va a ser espacio gu espacio Bueno vamos a ocupar un segundo de reemplazar el cual va a eliminar los paréntesis y vamos a eliminar estes en este caso lo que vamos a eliminar van a ser el paréntesis de bueno pensando bien Vamos a dejar lo que es el paréntesis en muchas partes lo que son los números versiones de App inventor este s agregan comillas en cada dato entonces para esto vamos a eliminarlas por si algún motivo aparecen y vamos a dejar que apare los datos entre paréntesis bueno y vamos a reemplazarlo por nada Ok y vamos a ponerlo este aquí Esto va lo primero que va a hacer va a ser reemplazar el el String de la variable números para de lo que tenga la lista números lo cinar por lo que es cómo se llama por lo que es nás la lista con los con los datos Pero bueno Esto nos funcionaría en caso solamente de de ahorita para la lista Pero cuando devolvamos la la moda la vamos a devolver de la misma manera como pudieron ver en la aplicación del video anterior donde les expliqué Cómo funcionaba la aplicación ent lo que vamos a hacer va a ser que esto va a funcionar con varios elementos lo que le envíe lo va lo va a generar vamos a agregar esta variable x a la cual vamos a llamar elementos elementos Ok y a esto este lo vamos a cambiar por la variable elementos Bueno ahora nos vamos a procesos y vamos a llamar este proceso al proceso le podemos cambiar el nombre aquí y le podemos poner limpiar lista as digamos y Bueno aquí te pide una variable el dato que vamos a enviarle para para poder eliminar los paréntesis más rápido y que tenga una forma más agradable lo que vamos a hacer va a ser usar este bloque que se llama list C R lo que hace esta y le vamos a enviar el elemento en es caso va a ser la lista números lo que hace este bloque es convertir los datos que están escrit en este caso va a ser 4 coma 3 coma dos coma Esto es lo que va a hacer va a generar esta lista entonces de este modo nosotros las comas los vamos a cambiar por guiones y las comillas las vamos a eliminar de esta forma ya nos ahorramos todo ese procedimiento y cualquier lista que le enviemos nos va a dar el mismo resultado ahora lo que es el textbox donde escrib el número vamos a dejarlo vacío para que agreguen el siguiente y nos vamos aquí y ponemos lo que es un un text vacío bueno en Sí eso es todo lo que lo que vamos a ocupar También tenemos que agregar lo que es el botón de de limpiar tenemos que usarlo en este caso nos vamos a ir aquí donde dice espérenme espérenme el botón click el elemento clic lo que va a hacer va a agarrar lo que es la lista de números y le vamos a poner lo que tiene en su en su text que era lista de números la agregamos y esperamos a que cargue el bloque Bueno aquí le ponemos lista de Ah no estoy escribiendo lista de números bueno Además de eso tenemos que limpiar lo que es la la lista donde almacenamos los datos vamos a eliminar y vamos a como a reiniciarlo Y a lo que es el Label moda y a los demás tenemos que ponerles lo que es el guion normal de esta forma ya también tenemos lo que es el botón limpiar hecho lo cambiamos y vamos a a copiarlo dos veces para los demás elementos que sería mediana y media mediana y media y bueno de esta forma ya tenemos lo que es la aplicación que va a limpiar los datos Si queremos verlo un poquito más có vamos a irnos a aquí y vamos a probarla vamos a agregar un elemento un dos por ejemplo y Añadir y como ven ya la escribió en la lista de números vamos a agregar otro 5d por ejemplo y le damos Añadir y apareció si ven ya lo converti la coma por un guion igual 6 le damos a añadir y las va escribiendo bueno no más si le damos en el botón de limpiar Ya nos vuelve lista de números y todos los demás los pone solamente con su guc ito Bueno vamos a pasar a la parte de lo que es la programación de de la lista de números en este caso no es algo muy un poco complicado es calcular la moda es de las cosas de moda mediana y media lo más difícil es calcular la moda para eso vamos a ocupar un nuevo proceso too lo vamos a ir generando por procesos para no confundirnos en el aspecto é se va a llamar cálculo moda Ah me equivoqué cálculo moda y vamos a hacer que cuando le den al botón Añadir se llame este y genere el cálculo va a ser en tiempo real como vayan agregando números nos vamos a la parte de acá y vamos a empezar con el cálculo de la moda bueno para este vamos a ocupar varias variables ya como les comenté que esto va a calcular sea una moda dos modas la cantidad de modas va a poder calcular modas múltiples lo primero vamos a crear variables todas las variables que vamos a ocupar vamos a inicializar y vamos a iniciar cinco variables ocupamos ponerles un de valor un cero las vamos a inicializar en cero para agregar más modas lo que vamos a hacer es ir más variables vamos a ir agregando esto hasta que llegamos a un total de cinco variables que vamos a utilizar cada una va a guardar cierta cantidad de datos unos van a ser en forma de lista y otros van a ser en en en valores vamos a empezar con el primer vamos a renombrar en el caso este se va a llamar número que va a ser el número que vamos a ir escogiendo de lo que es la lista de la lista de números número vamos a ocupar otro que se va a llamar que va a ser la lista de los números que ya vimos para que esos ya no los revise no los vuelva a contar Vamos a ponerle lista de números de [Música] números y vamos a ocupar otro que va a llamarse va a ser el número máximo de de números que se repit digamos que el dos tiene hay cinco en la lista Pero cuando vuelve calcule el oo hay 12 números del 8o Entonces tenemos que tener un antecesor y cuál es el el nuevo número que Se repitió más veces entonces para eso vamos a ponerle ant Max repetido de esa forma V a ver que ser el número anterior que más Se repitió que va a ser la cantidad y otro va a ser el actual que va a ser Max repetidos repetido Ah me equivoqué aquí repetidos Y por último vamos a calcular lo que va a ser la lista la moda que va para va a generar una lista donde se van a guardar las modas que se encontraron Bueno lo que es para la lista de números vistos va a ser una Entonces tenemos que usar este elemento que cree una lista vacía para el anterior de números y el el máximo repetidos esos son este ceros vamos a inicializar en ceros y lo que es la moda también va a ser una lista porque pueden ser varios elementos Bueno lo que vamos a empezar va a ser calculando un for que va a revisar cada uno de los números que están en en la lista números que fueron agregados por el usuario para eso vamos a ir a control y vamos a escoger el cicl for Esta es la variable que va ir es el contador Entonces lo vamos a llamar a contador bueno va va a empezar del uno y va a ir avanzando en uno en uno hasta que llegue al total de elementos de la lista números entonces por eso Tenemos que irnos a list y escoger este que dice length of list que nos va a devolver el total de elementos de la lista en este caso va a ser de la lista números y ya la tenemos aquí global números que es donde se van guardando cada número que escribe el usuario Bueno ahora lo que vamos a hacer es que en número vamos a guardar el número que se escogió entonces para eso vamos a hacer un Select a la lista vamos a seleccionar el elemento que va a ir corriendo en el contador en este caso de la lista va a ser de la lista números y el Index va a ser el contador va a ser el número que traiga corriendo el contador vamos a escoger el primer elemento va a ser porque va a contener el uno cuando avance vamos a escoger el número eh de la posición dos y así consecutivamente hasta que llegue al total de números Bueno lo que es Max repetidos como esto lo tenemos que ir reiniciando cada vez que se vuelve a ejecutar el ciclo cada vez que encuentre un nuevo número o revisemos un nuevo número debemos inicializar en cero Bueno ahora vamos a hacer otro pequeño ciclo for el que va a analizar el número que escojamos va va a contar Cuántos números iguales hay en toda la lista de números digamos que escogimos el primer elemento es un dos lo va Lo va Lo va a agregar a números va a entrar en el ciclo y va a revisar con cada un número va a decir va hay cinco números ocho números repetidos del número dos entonces para eso vamos a usar otro FL otro for Bueno este va a ser muy parecido a lo que ya tenemos arriba igual va a revisar toda la lista de números Entonces vamos a duplicar este este vamos a dejarle la la variable como number las cambio para que no se vayan a encontrar porque si este terminara ya no se ejecutar este ciclo porque su variable contador ya llegó al final Bueno lo que debe hacer como ya les había comentado lo que tenemos que ir es agregando cada número que ya vio lo vamos a ir a haciendo que ya no lo revise si Ya revisó el dos si lo vuelve a escoger ya no lo va ya no lo va a contar entonces para esto vamos a Añadir un ítem aquí abajo abajo del ciclo donde la lista va a ser la lista de números vistos es get y el em va a ser lo que es el número va a ser ese número ya lo revisamos Entonces ya no tenemos que volver a revisar en lo que es en la en el conteo de los elementos Entonces vamos a agregar un If dentro de aquí Bueno Dentro de este If vamos a poner un logic de de igual y bueno en este vamos a irnos a list y vamos a escoger un elemento que se llama list esto lo que hace Envía un un true si el número que se escogió ya se encuentra en la lista en caso de que no Envía un false entonces lo que vamos a hacer va a ser que vamos a escoger el número que se va a escoger en este for por ejemplo en este debe estar corriendo en la variable number que es esta y si ya se encuentra en la lista de números ese número Ya no lo vamos a revisar por eso en caso de que esto devuelva false significa que este número jamás lo hemos revisado Entonces si lo puede contar en este caso ya entraría en este If Dentro de este lo que vamos a comparar es que si el número que estamos revisando es igual a este número Este significa que ya se encuentra dos otra vez en la lista y así consecutivamente entonces para eso vamos a ocupar otro If bueno en este caso el If lo que vamos a hacer es un logic de igual la misma forma pero en este caso vamos a hacer un Select de la misma forma del número que estamos revisando si es igual al número de acá que es el número que estamos que estamos revisando para eso vamos a vamos a duplicar este que ya tiene la variable y bueno una vez que si se haga eso cada vez que encontremos un número el número de Máximo repetidos va a aumentar una vez para eso tenemos que hacer un set variables set y va a ser el máximo de repetidos va a aumentar una vez Recuerden que este lo reiniciamos en cero cada vez que cambiamos de número nos vamos a match y usamos un más Y va a ser vamos a a duplicar este vamos este y va a ser el total que ya tengamos de Max repetidos más otro número entonces ponemos más un ponemos un más uno en caso de esto Esto se va a repetir hasta que revise todos los de la lista si estaba el número dos va a revisar tods cada vez que encuentro otro dos va a aumentar el más repetidos Ahora hay que comparar si esta este número número que revisamos fue más grande que que el número digamos que en la lista hay revisamos el dos y hubo cuatro números iguales ahora Estamos revisando el ocho y hubo siete repetidos entonces este es más grande entonces significa que el anterior número ya fue sustituido hay uno que tiene más repetidos para eso vamos a ocupar hacer un ciclo If en el cual vamos a calcular eso nos vamos a control If y bueno dentro de aquí lo que vamos a hacer va a usar un un logic de un match de mayor recuerdan que les pusimos uno que era anterior de máximos repetidos entonces en caso de que más repetidos sea más grande que el anterior de máximos repetidos significa que el nuevo número este que que estamos revisando tiene más existen más números de ese mismo en toda la lista Entonces nos vamos a anterior de máximos repetidos si más repetidos es mayor a anterior de máximos repetidos el anterior de máximos va a ser en este caso este va a ser anterior de máximos repetidos este va a ser igual a máximo de repetidos Entonces ya vamos a guardar el nuevo valor de número repetido si el número repetido más veces es ocho veces el número repetido más veces se va a guardar el anterior si encontramos uno que sea 12 igual va a ser sustituido ahora tenemos que guardar el número que Se repitió más veces en la lista moda entonces para eso vamos a hacer lo mismo vamos a hacer un variable un set de la de la lista moda que va guardando todos los datos bueno en este caso en caso de que encontremos uno vamos a hacer una lista no importa si la lista ya tenía más elementos se va re iniciar en cero y vamos a agregar solo un elemento que va a ser el número que estamos revisando de esta forma si habíamos encontrado al principio cuando empezamos a el dos hay cu en el c también hay cuatro números pero 7 hay 12 números repetidos significa que es es el más grande y las otras dos modas que habíamos encontrado Son son inferiores ent de esa forma las va a eliminar y solo va a dejar el nuevo número encontrado bueno en caso de que más repetidos y anterior sea igual significa que es una moda una moda múltiple significa que hay dos o más modas entonces para eso vamos a poner un un Else If y vamos a hacer el mismo cálculo como les comenté vamos a duplicar este y vamos a hacerlo en caso de que esto sea igual lo que vamos a hacer es que vamos a Añadir un ítem a la lista de moda si ya se había encontrado aquí el cuatro pero encontramos que el ocho también se repite 12 veces Entonces vamos a agregarlo a la lista entonces para eso vamos a usar un Añadir ítem a la lista de esta forma lo que vamos a hacer es que va a ser a la misma lista a la vamos a agregar el ítem del número que estamos encontramos o estamos usando lo estamos revisando como ustedes lo quieran ver a la a la lista de moda de esta forma si se había encontrado que el cco era el máximo repetidos pero también el se tiene la misma cantidad de repetidos lo va a Añadir bueno en este caso ya una vez completado completado el el elemento vamos a a continuar Bueno ahora tenemos que hacer todos los elementos que encontramos tenemos que escribirlos en moda en el Label moda en este caso no más tenemos que abrir Label y usamos este deex se acuerdan que habíamos hecho vez que ya acabaron todos los ciclos un un proceso que elimina lo que son los los paréntesis y todo eso Entonces para eso vamos a escoger el mismo procedimiento va a ha serer limpiar lista en el caso vamos a usar el mismo elemento que usamos la vez pasada que se llama que va a convertir en list s Row y le vamos a enviar lo que es moda que contendría todos los elementos y le escogemos moda Bueno ahora nos vamos a la a la parte de emulando la aplicación vamos a ver si funciona si no tuvimos ningún error bueno en este caso vamos a ir añadiendo unos cuantos elementos va a ser el dos Añadir y bueno la moda que más se repite es el dos ahora el TR el dos y el TR es la moda que más se repite ahora si agregamos otros dos la moda que más se repite debe ser el dos correcto ahora vamos a agregar un seis vamos a Añadir igual el dos sigue siendo el más que se repite ahora agregamos un tres y ahora hay dos modas que se repiten agregamos otro se y ya el dos el tres y el se son los que más se repiten por ejemplo ahora si agregamos otro tres solamente el TR debe ser el número que más se repite y como ven la moda ya funciona Bueno ese es el algoritmo para resolver la moda para resolver moda única o modas múltiples bueno en siguientes videos vemos Cómo calcular la mediana y en otro Cómo calcular la media no olviden ver el primer video de cómo diseñé la aplicación para que sepan cómo está Armada Bueno eso es todo amigos [Música] Bye foreign