# Llançament de moneda i probabilitat ## Fitxa activitat ### Objectius matemàtics - Predicció de resultats en experiments aleatoris. - Proporcionalitat per assignar probabilitats a resultats d’experiments aleatoris. - Simulacions i comprovació de les prediccions. - Eines TAC per a les simulacions i el càlcul de probabilitats ### Objectius de programació - Aprendre el concepte de variable. - Assignar valors. - Fer comptadors. - Fer comparacions de valors. - Concatenar cadenes. - Aprendre l'ús de les instruccions condicionals. - Aprendre fer instruccions iteratives ### Curs: 2on ESO. ### Resum Creació del llançament d'una moneda per això poder practicar amb conceptes de probabilitat. Ampliacions: - crear una moneda trucada perquè surti el valor que ens interessa. - jugar amb les possibilitats del Snap! canviant tipus de monedes, simulant el moviment de la moneda. ### Temporització Hores: 4h Quan: Darrera setmana de curs a l'inici de la unitat didàctica 8. Planificació: | Hora | Tasca | Descripció | | -------- | -------- | -------- | | 1 | Introducció a Snap! | Professorat exlicarà a pissarra les parts de Snap! i es farà un exercici demo. Alumnat ho seguirà per parelles amb el seu ordinador | | 2 | Crear moneda i apuntar resultats | Exercicis 1 i 2 de la fitxa | | 3 | Simular múltiples llançaments. Calcular probabilitats( freqüències). Conclusions | Exercicis 3, 4 i 5 de la fitxa | | 4 | Ampliacions | Realitzar l'ampliació, personalizar el programa i ensenyar-ho als companys | ### Recursos - Treball per parelles. - [Fitxa per omplir](https://docs.google.com/document/d/1c6NHubqNMDmVhkTGHoz44lUO5uuccgQVBATz5I17q80/edit?usp=sharing) les respostes de l'activitat . Feu una còpia i compartiu-la amb el vostre professorat i el company d'activitat. - Programar en [Snap!](https://snap.berkeley.edu/) - Accedir al Snap! amb l'usuari de l'institut. - Reservar carro de portàtils (a poder ser 1 i 2, que tenen Linux) **No oblideu anar gravant quan aneu realitzant els diversos exercicis**. ![](https://i.imgur.com/5W5xx3p.png) ## Llançant la moneda ### Exercici 1. Com aneu d'intuïció? Imagineu-vos que llenceu 20 cops una moneda, ompliu *la taula de l'apartat (a) de l'exercici 1 de la fitxa d'alumne* amb els resultats que creieu que donarà cada llançament. ### Exercici 2. Esdeveniment real. Programem una moneda. Ara es tractaria de saber si heu endevinat o no, per això hauríem de llançar una moneda 20 cops. Però ara hem de trobar una moneda, llançar-la 20 cops, fer soroll, no perdre-la.... uf això és molt cansat... **I si ho fa l'ordinador per nosaltres?** Per això anem a fer: - Entreu [Snap!](https://snap.berkeley.edu/) - Creem un nou projecte de nom "Moneda" ##### Versió 1 - Numèrica Primer que farem és que llenci una moneda. La moneda pot tenir dos valors i perquè el programa ens triï una de les dues opcions per atzar heu de posar el següent codi: - Cliquem a control i seleccionem la bandera i l'arrosseguem a l'àrea programes. ![](https://i.imgur.com/uJpz78U.png) - Ara volem afegir que quan es cliqui sobre la moneda tiri la moneda. - Per començar des de control s'ha d'arrossegar l'event quan es cliqui.![](https://i.imgur.com/URMDc7w.png) - Ara definirem una variable, que ens serveix per guarda el resultat de la moneda. Anem al menú variabes, cliquem sobre "Crea una variable" i li posem de nom"Moneda" - Ara queda guardar en la moneda un nombre aleatori dels possibles que té la moneda. Els possibles valors són 1 (cara) i 2 (creu) i s'anomena **espai mostral**. Per guardar un valor s'agafa la instrucció assigna el valor, el primer camp es posar moneda i al segon camp l'aleatori. - L'aleatori es troba al menú operadors la instrucció *número a l'atzar*. S'ha de posar entre els dos nombres que es fa l'aleatori, en el nostre cas 1 i 2. - Només queda mostrar-la per pantalla. Per això anem a Aparença i escollim la instrucció digues, allà a text posem la variable moneda (arrossegant-la del menú variables) El codi ha de quedar així: ![](https://i.imgur.com/FEBzKWs.png) Fixeu-vos que per simular el comportament de llançar moneda, es posa un missatge durant 1 segon. **Comproveu que funciona prement la bandera verda**. ##### Versió 2 - Fem-ho més real mostrem imatge Segons el número aleatori que resulta mostrem cara o creu. Si el valor de moneda és 1 canviem el vestit per la imatge de cara, sinó canviem el vestit per la imatge de creu. - El primer a fer és agafar les imatges de les diverses monedes de la [carpeta](https://drive.google.com/drive/folders/1d1YiQy2AG3HrkHE565mk6e6F_DRBvN9m?usp=sharing) - Les carreguem com a possibles vestits. Aneu a la pestanya Vestits i les arrossegueu allà. Ha de quedar: ![](https://i.imgur.com/MnFP5vj.png) - Ara toca programar: - eliminem la instrucció digues, perquè ara es veurà una imatge. - sota la instrucció pensa, toca posar una instrucció condicional que ens permetrà fer una cosa o una altra depenent del valor de moneda. Aquesta instrucció és el si, que la trobeu sota el menú de control. - Al forat de si s'ha de posar la condició a comprovar. En aquest cas si la moneda=1. - Dins del forat de si, s'ha de canviar el vestit per la cara, en aquest cas bitcoinCara. **Aquest s'executa si la condició és certa**. - Dins del forat de si, s'ha de canviar el vestit per la creu, en aquest cas bitcoinCreu **Aquest s'executa si la condició no és correcta**. Ha de quedar un codi així: ![](https://i.imgur.com/wORkRF6.png) Comproveu el codi!!! ### Exercici 3. Llançaments múltiples d'una moneda Per ara només hem fet el llançament d'una moneda Però per simular l'exercici que hem fet s'ha de llançar 20 cops. Podem executar 20 cops seguit el programa (prement la bandera) però seria lent i cansat. Millor que ho faci el codi, epr això fem servir un **bucle**. - La instrucció que ens permet fer un bucle és la instrucció repeteix__vegades que es troba al menú control. - Al forat posem el número de vegades que volem que es repeteix. En aquest 20. - Dins el cos del bucle posem tot el codi que teniem fins ara, és el que volem repetir. - Afegim abans de tancar el bucle una pausa de 1 segon per poder veure el resultat. El codi ha de quedar: ![](https://i.imgur.com/YJpQoLU.png) Executeu el programa i *ompliu l'apartat b i c de l'exercici 2 amb les dades reals del llançament.* ### Exercici 4. Preguntar quants cops es vol llançar Si deixem així el programa sempre ens llançarà vint cops la moneda però pot ser que altres cops ens interessi llançar-la una vegada, cinc vegades, cent vegades... per això el millor és abans d'executar el programa preguntar a l'usuari quantes vegades vol llançar la moneda. - Primer s'ha de preguntar a l'usuari. La primera instrucció just clicar el personatge és demanar quantes vegades s'ha de llançar. - Creem una variable que es digui llançaments. - Posem la primera instrucció pregunta que està al menú sensors. - Guardem la resposta (varibale que està al menú sensors) a la variable llançaments. El codi ha de quedar: ![](https://i.imgur.com/GuHnY76.png) Executa la moneda i *realitzeu l'apartat (a),(b) i (c) de l'exercici 2 de la fitxa d'alumnat.* ### Exercici 5. Calcular les freqüències de cara o creu Ara volem que les freqüències ens la calculi l'ordinador i així ja ens estalviem tota la feina, que be! Per fer-ho les passes: - Afegim una variable cara que ens permeti anar comptant les cares que han sortit. - Crear variable cara. - Quan es clica la moneda el primer que s'ha de fer és posar les variables comptador - En el codi que s'executa si ha sortit cara (si moneda=1) s'ha de sumar un a la variable. Això ens permet anar comptant-les. - Feu els mateixos passos per la creu. - Mostrem la freqüència de cada resultat. - Al final del bucle mostrem els missatges. Per això farem el menú llapis. - Primer situarem on volem escriure en aquest cas des del menú Moviment la instrucció ves. - Situem a (x,y) (-220,-140) - Pintem amb l'opció escriu el càlcul de cares/llançaments, que indica la probabilitat. Per fer càlculs heu d¡anar al menú operadors. ![](https://i.imgur.com/qlKUkyT.png) - Ara fem el mateix per les creus, però situant-nos en la (-220,-160) Ha de quedar un codi com aquest: ![](https://i.imgur.com/W0wLgoR.png) Executeu i *realitzeu l'apartat (d) de l'exercici 2.* ## Què hem après? Un cop heu acabat realitzeu *l'exercici 3 de la fitxa*, les conclusions i veureu tot l'après. ## Ampliacions Realitzeu per **ordre** les següents ampliacions. Demaneu dubtes al professorat i feu les que us doni temps. ### Moneda trucada Ara programareu una moneda que us permetrà endevinar amb més probabilitat el resultat. **Així podreu guanyar sortejos amb els companys!!!** Heu de fer una moneda que tingui el 0,8 de probabilitat (el 80% de possibilitats) que sigui cara. Com ho feu? **Pistes:** - Augmenteu l'espai mostral al generar el nombre aleatori. Aleshores associeu a cara més valors. - Truc de programació quan mostreu si és cara o creu utilitzeu els comparadors > o <. Mireu aquest codi com exemple: ![](https://i.imgur.com/yOxJCxv.png) ### Simuleu el moviment de la moneda Abans de mostrar el resultat si és cara o creu, mostreu per pantalla cada x mil·lisegons la imatge de cara o imatge decreu. Quan passin dos segons ja mostreu el resultat final. **Pistes:** - Recordeu per canviar el vestit: ![](https://i.imgur.com/5vaJAIT.png) - Alterneu el vestit, si abans hem posat la cara després la creu i així fins que passins dos segons. Fixeu-vos amb el llenguatge diem si ... per tant tocar usar aquesta estructura de control. - Quan volem repetir unes instruccions unes certes vegades hem de fer servir els bucles. En aquest el bucle s'ha de repetir durant dos segons per tant heu de combinar el bucle i la instrucció d'espera. Per exemple: ![](https://i.imgur.com/tmNEkfX.png) Mou el personatge 10 passos, espera mig segon i així deu cops. Per tant el bucle trigarà a fer-se 5 segons (10 · 0'5 segons). Ara us toca canviar que enlloc de moure canviï de vestit i enlloc de durar 5 segons, duri 2 segons. ### Usuari pugui escollir la moneda Ara es tracta que l'usuari pugui escollir amb quina moneda pot jugar. Per això heu de carregar la resta de vestits de la [carpeta amb les imatges](https://drive.google.com/drive/folders/1d1YiQy2AG3HrkHE565mk6e6F_DRBvN9m?usp=sharing) Ara heu de: - Afegir tres nous personatges, han de dir a l'inciiar-se: Bitcoin, Euro i Dollar. Respectivament. ![](https://i.imgur.com/vNL9jgy.png) - Col·loqueu-los a l'esquerra i així serà un menú on l'usuari podrà triar amb quina moneda fer els llançaments. ![](https://i.imgur.com/goIR9pd.png) - Creeu una variable anomenada vestit. - Quan es cliqui a cada imatge heu de posar a la variable el nom de vestit: bitcoin, dollar o euro. - Ara heu de canviar el codi on canvieu els vestits, perquè ara dependrà del valor de la variable. ![](https://i.imgur.com/5vaJAIT.png) ## Lliurament - Pengeu la URL del vostre projecte a la tasca de Moodle corresponent. Això feu des de la fitxa del vostre projecte clicant a "Compartir" i seleccionant la URL que apareix. ![](https://i.imgur.com/OeOflUY.png) - Al clicar al botó compartir el projecte es fa públic.