Sessió 9. Potser sí, potser no

Pla de treball

  • Estructura condicional
  • Expressions lògiques
  • Sensors i operadors
  • Preguntes i respostes

Posem condicions als moviments

Anem a introduir una condició a una estructura iterativa que, inicialment no té límit.

Pas a pas Fem-ho pas a pas

  • Entrem al nostre compte de l’Scratch i obrim el projecte m1repte71 que vam fer fa un parell de sessions
  • Anem al menú Fitxer i triem l’opció Desa una còpia. D’aquesta manera en fem un duplicat per tal d’afegir-li avui noves funcionalitats sense modificar l’anterior:
    Menú fitxer
  • Hem obtingut un projecte que es diu m1repte71copy. Li hem de canviar el nom i dir-li m1repte91
  • Ara modifiquem el programa del drac. Anem a fer que augmenti la seva mida de forma indefinida:
    Drac creix
  • Hem vist anteriorment la categoria Control per utilitzar les estructures iteratives. Ara anem a veure les estructures condicionals:
    Estructures condicionals
  • Li afegim, doncs, una condició. Per fer-ho utilitzem el bloc si … llavors:
    Si ... llavors
  • Fixem-nos que el lloc on hem de posar la condició te els extrems punxeguts, per tant haurem de cercar on hi ha els blocs amb extrems punxeguts. Els blocs amb extrems punxeguts són expressions lògiques, que poden ser certes o falses, i que les podem trobar a les categories Operadors i Sensors
  • A la categoria Sensors trobem el bloc tocant que té un desplegable on podem triar els diferents personatges que hi ha al nostre projecte
  • Li afegirem al programa del drac un control inicial per tal que fixi la mida al 100% i dins del bucle li posarem una condició amb la què deixarà de créixer quan toqui el mag:
    Drac creix amb límit

Icona repte Repte 1

Modifiquem el projecte m1repte91 de manera que el drac deixi de créixer si toca el mag o si premem alguna tecla.

Icona pistaPista: Construïm una expressió lògica formada per les dues condicions que hi ha a l’enunciat. En aquest cas no cal que s’acompleixin les dues, sinó una o l’altre, per tant l’expressió lògica que hem d’utilitzar és aquesta, que trobarem a la categoria Operadors:
Expressió lògica o expressió lògica


Deixem que l’Scratch ens pregunti

Fem que l’Scratch ens faci una pregunta i que hi hagi dues possibles accions en funció de la resposta.

Pas a pas Fem-ho pas a pas

  • Seguim amb el projecte m1repte91
  • Dins de la categoria Control hi ha un altre bloc condicional. Aquest bloc ens permet definir què és el que hem de fer si s’acompleix la condició i també si no s’acompleix:
    Si ... llavors ... si no ...
  • Per veure en detall el seu funcionament anem a introduir també la manera que l’Scratch ens pot fer preguntes i com podem influir nosaltres en el desenvolupament de l’acció de la nostra postal
  • Triem el personatge del mag, que serà qui farà la pregunta i modifiquem el programa que hi ha actualment per afegir-li el que hi ha tot seguit.
  • Anem a la categoria Sensors i triem aquest bloc:
    Pregunta i espera
  • A l’espai que hi ha en aquest bloc escrivim: “Et rendeixes? Digues només S si és que Sí o N si és que No”.
  • Quan l’execució del programa arriba a aquest bloc, el personatge ens fa la pregunta que hi ha escrita i espera la nostra resposta. Quan escrivim la resposta l’Scratch es guarda el que hem escrit en un lloc que es diu resposta:
    Resposta
  • Per programar les dues possibles accions, primer construïm la comparació que serà l’expressió lògica que posarem dins del bloc condicional:
    Comparació
  • Després de col·locar la condició al seu lloc, programem les dues accions:
    Programa condicional amb si ... si no

Icona repte Repte 2

Tal i com hem gestionat la pregunta el programa ens permet contestar coses diferents de “S” o “N”. Si ens fixem bé el condicional només controla si la resposta és “S” i si la resposta és qualsevol altra executa la segona opció.

Modifiquem el programa m1repte91 per tal que, abans de fer aquest condicional, només ens permeti que la resposta sigui “S” o “N”.

Icona pistaPista: Hem de construir una expressió lògica on es validi que la resposta sigui una d’aquestes dues opcions, i mentre no ho sigui no ens deixi arribar al condicional. Hem de posar aquesta expressió lògica com a condició d’acabament d’aquest bucle:
Repeteix fins


Icona projecte El nostre projecte creix…

Amb els condicionals podem ampliar la nostra postal de manera que no sigui sempre igual. En funció de coses que passin a la pantalla o de preguntes que ens faci la postal podem fer-la créixer de manera que cada cop sigui diferent. Ens hi posem?


Icona glosari Com que som programadors i programadores parlem de…

  • Estructura condicional: punt on el programa on es pregunta si s’acompleix una expressió lògica i tria entre dues o més branques de codi en funció de la resposta.
  • Expressió lògica: també es pot dir expressió condicional. És una expressió que només pot ser Sí o No (Veritable o Fals) i que s’utilitza a les estructures condicionals.
  • Sensors: blocs que detecten quan existeix algun tipus d’interacció entre els personatges o quan l’usuari interactua amb el programa.
  • Bucle: és el mateix que una iteració.