Peregrinación
Se o tema anterior era unha transición, este será unha peregrinación, na que aprenderemos uns conpceptos que precisamos para avanzar e sen os cales no poderiamos facer grandes cousas nos futuros temas. E por eso estudaremos parialmente dous novos bloques de operacións que nos serán de utilidade.
Eses marabillosos espazos de memoria
Dentro de programas ou "tipo de programas", iremos sobre o bloque de "Datos y bloques".| Sección de "datos y bloques" |
Para seguir deixando cousas a medias, desta sección imos a traballar con datos (de aquí para adiante nos chamarémoslle variables), os bloques deixarémolos para bastante máis adiante.
Pero qué é unha variable? Unha variable non e máis que unha posición de memoria (unha caixiña como lle digo eu aos meus alumnos) que ten un nome e que pode conter algún tipo de dato (números, datas, caracteres...)
Co mBlock podemos xerar dun xeito rápido unha variable premendo en crear nova variable, tras cubrir o nome da varaible (ímoslle permitir a visibilidade a todos os obxetos do proxecto) prememos en ok. Ollo, tenta de poñer nomes a esas "caixiñas" ou variables que describan que e o que van a gardar, neste caso imos gardar uns valores de velocidade.
| Fiestra emerxente que solicita o nome da variable e a súa visibilidade dentro do programa |
| Sección de "datos y bloques" tras crear unha variable. |
Unha vez que temos a variable creada, aparécennos 5 opcións sobre a mesma, unha en formato "redondo" que ao igual que os sensores/encoders, permite recoller un valor, no caso da variable, o valor que ten a mesma (o número que hai dentro da caixiña).
| Bloque para asignar o valor da variable velocidade |
| Bloques de xestión de valores da variable |
Seguro que te sona o bloque de mover o robot a unha velocidade, esa velocidade ven predefinida nunha caixa de selección (e decir, podes escoller 255, 100, 50...). Ainda que tamén se lle pode dar valor "a pelo"
| Bloque de "correr adelante" co valor de velocidade despregado |
| Bloque de "correr adelante" con valor introducido dende teclado |
Ese mesmo valor se lle pode dar mediante unha variable deste xeito
| Bloque de "correr adelante" xestionado polo valor dunha variable |
Seguro que estás pensando "bueno, vale, consigo facer o de antes pero cunha sentenza máis..", a potencia das variables poderemos velas despois ao combinalas con estruturas de control, pero aínda así podemos refacer uns retos e comprobaremos que ten as súas ventaxas (neste punto pido perdón aos programadores puros xa que estamos ausar as variables como constantes, pero para o exemplo vale...):
Por exemplo no seguinte programa temos 3 variables (vermello, verde e azul) que son as que lle dan os valores ós leds.
| Adaptación do programa do reto 1.1 no que se poñen todos os leds pares en cor azul e os impares en vermello. |
A primeira vista non resulta moi eficiente, pero tan só a primeira vista, esto trátase dun pequeno baile e iremos bailando lentamente co fin de realizar o reto 1.1 de maneira óptima. Podemos ver que no primeiro paso asignamos á caixiña "vermello" o valor 0, e a caixiña "verde" o valor da de vermello (e decir un 0). Por último azul toma o valor 255 (Lembra que podes consultar a entrada de Xogando coas luces neste mesmo blogue, de momento quedamos en que o 255 e o valor máis alto de azul).
Os distintos leds encéndense cos valores que teñen as caixiñas variables, o que fai que un cambio nas mesmas automáticamente muda a cor da luz de cada led.
No medio do código veremos que vermello toma o valor 255 (tomando o valor de azul) e o azul pasa a valer 0.
![]() |
| Reto 3.1 |
Operadores
Si, claro, teño uns valores en caixiñas, pero igual era interesante o poder sumalos, restalos, dividilos,, comparalos, traballar con conxunto de caracteres.. e para todo eso están os operadores, benvidos a unha clase de matemáticas de primaria ;)Para estudar este apartado de operadores, teremos que ir o bloque de operacións de operadores, que e o seguinte:
| Bloque de operadores do mBlock |
Operadores que devolven un valor numérico
Podemos ver que os operadores están agrupados segundo a función (bueno, mais ou menos), os catro primeiros seguro que os sabedes recoñecer á primeira, e son os aritméticos, nos que ben podemos operar con variables, números, sensores ou enconders. (habería que meter dentro do círculo redondo un bloque que sexa redondeado). O seguinte operador sería o de número aleatorio, que permite xerar un valor entre dous indicados.A continuación temos uns exemplos de uso de operadores e variables.
No primeiro conxunto de bloques vemos que lle asignamos á variable azul o valor que tiña máis 5.
Na segunda non temos unha orde final propiamente dita (fíxate que acabamos obtendo un valor xa que o bloque que engloba todo é redondeado nas beiras). O que obteríamos sería o valor resultante de restarte un número ao azar entre 1 e 10 ao valor que devolve o sensor de temperatura que ten a placa.
Na terceira podemos ver o resultado de sumarlle a 5 o valor da variable azul, e todo eso dividilo entre o valor que devolve o valor de sonido.
Por último estamos a apagar ao azar un dos leds do anel de leds.
Agora imos a empezar a traballar un pouco..
![]() |
| Reto 3.2 |
![]() |
| Reto 3.3 |
![]() |
| Reto 3.4 |
| Resto de operadores que devolven valor |
Os primeiros 5 traballan con cadeas de texto (palabras), básicamente servirán para unir caracteres, averiguar a posición dun determinado caracter dentro dun conxunto deles, o número de caracteres que ten unha frase ou palabra....
De tólolos xeitos estes operadores non son moi útiles se traballamos co robot como autónomo, a utilidade pasa a ser maior cando se usa como un "laboratorio electrónico". Sería posible se mercamos ao robot unha pantalla de leds que si lle permitirá amosar texto por ela, pero non e o caso do kit que arestora temos nos centros.
O derradeiro permitiranos realizar unha operación máis complexa sobre o número que lle pasemos, podemos ver a continuación as operacións que poderemos realizar.
| Operacións que pode realizar este operador |
Operadores que devolven valor positivo ou negativo
Outro tipo de operadores son os de compraración e os lóxicos, que devolven un valor positivo ou negativo tras realizar unha operación, como se pode observar o formato do bloque remata cun vértice en cada un dos laterais (ao igual que os sensores/encoders que tiñan ese mesmo formato).
| Operadores de comparación e lóxicos |
| Conxunto de bloques de operadores de comparación e lóxicos |
Descarga os retos deste tema na seguinte ligazón.





No hay comentarios:
Publicar un comentario