3.4. Variables con texto

 

Glosario

Carácter

Imaxe con diferentes caracteres: o número 4, o número 3, a letra S...

Definición:

Unidade mínima de información e escritura; cada unha das letras, números e símbolos que pode escribir un teclado en informática.

Exemplo:

As cadeas de texto teñen un ou máis caracteres.

Traballar con texto en variables

Imaxe dunha cadea con elosNas variables pódense gardar datos simples como texto: letras, caracteres, símbolos  (# ou !) e frases. A este tipo de datos chámaselles cadeas (string en inglés) porque son a unión de varios elementos, como os elos dunha cadea.

O máis importante dunha cadea adoita ser cantos elementos ten, é dicir, a súa lonxitude. En xeral usamos a instrución de saída "Dicir" para mostrar o valor da variable de texto ou a súa lonxitude. MicroBlocks amosa o resultado desta orde ao inicio do programa no que estea inserida.

Crear unha cadea

É o mesmo que crear unha variable numérica: primeiro indicas o nome da variable e despois asignas o seu valor inicial coa orde correspondente. O nome da variable aparece dentro dunha elipse (fíxate en "cadea" na imaxe inferior") que podes usar nas instrucións que necesites.

Ordes en MicroBlocks para crear cadeas

Lonxitude da cadea

A orde "lonxitude da cadea", que podes atopar no bloque de "Datos", permite saber o número de elementos dunha cadea. Nunha variable de texto indica o número de caracteres, incluídos os espazos en branco. É unha orde moi usada en programación e convén coñecela.

Programa para mostrar a lonxitude dunha cadea

Lectura facilitada

Nunha variable tamén se pode gardar texto.

Ese texto pode ter letras, símbolos ou frases.

A este tipo de dato chámaselle "cadea".

Nunha cadea é importante saber cantos elementos ten.

Iso chámase "lonxitude".

MicroBlocks pode mostrar o texto ou a súa lonxitude.

Crear unha cadea

Crear unha cadea é parecido a crear unha variable numérica.

Primeiro escolles o nome da variable.

Despois gardas nela un valor.

Ordes en MicroBlocks para crear cadeas

Lonxitude da cadea

A orde "lonxitude da cadea" indica cantos caracteres ten un texto.

Nesa conta tamén entran os espazos en branco.

Programa para mostrar a lonxitude dunha cadea

Transcrición das infografías

Crear unha cadea

No menú "Variábeis" podes crear unha nova variábel.

Preme en "Crear unha variábel" e escribe o nome. Por exemplo, cadea.

Unha variábel pode gardar diferentes valores.

  • Podes asignarlle un valor inicial.
  • Podes cambiar o seu valor durante o programa.
  • Podes usar a variábel noutras instrucións.

Existen bloques para traballar coas variábeis:

  • asignar cadea a 0 cambia o valor da variábel.
  • aumenta cadea en 1 incrementa o valor.

Unha variábel tamén pode gardar texto.

No exemplo, ao comezar o programa:

  • asígnase á variábel "cadea" o texto "Ola mundo".
  • despois úsase o bloque "dicir cadea" para mostrar ese texto.

Lonxitude da cadea

No menú "Datos" atopas o bloque "lonxitude de".

Este bloque permite saber cantos caracteres ten un texto.

No exemplo úsase unha variábel chamada "cadea".

Ao comezar o programa:

  • asígnase á variábel "cadea" o texto "Ola mundo"
  • despois úsase o bloque "dicir lonxitude de cadea"

O resultado é 9, porque o texto ten 9 caracteres.

Operacións con texto en variables

Cos textos pódense facer operacións distintas ás dos números. Algunhas son as seguintes:

Unir

Para escribir unha frase usando o valor dunha variable (tanto se é numérica como de texto) debes usar unha operación chamada "unir" ou "concatenar" (verbo que significa unir elos nunha cadea).

Programa para mostrar a unión de texto e variable

Identificar

Para saber que letra ou carácter hai nunha posición determinada dunha cadea podes usar a instrución "elemento" e indicar o número de orde.

Programa para indicar distintos elementos dunha variable textual

Modificar

Unha cadea non se pode modificar por partes. Non podes cambiar só un elemento. Pero si podes asignarlle un novo valor completo cando o precises.

Programa para modificar unha variable de texto

Converter

En ocasións tes datos numéricos en formato de texto, pero precisas convertelos en números para poder facer operacións matemáticas con eles. Tamén pode pasar ao revés: ter un número e querer pasalo a texto para traballar con el como cadea.

Neste exemplo, a secuencia 123 aparece primeiro como texto e despois convértese en número. Ao multiplicalo por 2, o resultado é 246. Para realizar estas operacións empregarás novas ordes que se atopan ao final no menú de operadores: 

Programa para converter números nunha cadea en números

Atopar

A orde "atopa" permite buscar caracteres dentro dunha cadea. Indica a posición na que aparece ese carácter ou grupo de caracteres. Se non o atopa, devolve -1. Se aparece varias veces, indica só a primeira posición. Tamén permite buscar máis dun carácter á vez, por exemplo “mu”.

Programa que busca unha letra nunha cadea

Dividir

Ás veces pode interesarche separar unha frase nas palabras que a forman para identificar a posición concreta de unha delas. Para iso úsase a orde "dividir".

Programa para dividir cadeas en elementos

Lectura facilitada

Cos textos pódense facer operacións distintas ás dos números.

Unir

Podes unir textos e variables nunha mesma frase.

Esta operación chámase "unir" ou "concatenar".

Programa para mostrar a unión de texto e variable

Identificar

Podes saber que letra hai nunha posición dunha cadea.

Para iso úsase a instrución "elemento".

Programa para indicar distintos elementos dunha variable textual

Modificar

Unha cadea non se cambia por partes.

Podes poñerlle un valor novo completo.

Programa para modificar unha variable de texto

Converter

Podes converter texto en número.

Tamén podes converter número en texto.

Programa para converter números nunha cadea en números

Atopar

A orde "atopa" busca letras ou grupos de letras nun texto.

Se o texto aparece, indica a posición.

Se non aparece, devolve -1.

Programa que busca unha letra nunha cadea

Dividir

A orde "dividir" separa unha frase nas súas palabras.

Así podes traballar con cada palabra por separado.

Programa para dividir cadeas en elementos

Transcrición das infografías

Unir

Ao comezar.

Asignar "cadea" a "mundo".

Dicir une Ola cadea.

Resultado mostrado: "Ola mundo".

Podes unir varios une MicroBlocks.

Ao comezar.

Asignar "cadea" a "Adeus".

Dicir une cadea une ríos cadea fontes.

Resultado mostrado: "Adeus ríos, Adeus fontes".

Identificar

Neste exemplo aprendes a obter caracteres concretos dunha cadea de texto.

Ao comezar.

Asignar cadea a "Ola mundo".

Dicir elemento 1 de cadea.

Dicir elemento 5 de cadea.

Dicir elemento último de cadea.

Modificar

Neste exemplo aprendes a cambiar o valor dunha variábel.

Ao comezar.

Asignar cadea a "Ola mundo".

Dicir cadea.

Asignar cadea a "Adeus mundo".

Dicir cadea.

Converter

Operadores:

  • "123".
  • 123 é un número.
  • 123 convertido en número.

Converter número en cadea.

Converter cadea en número.

Ao comezar.

Asignar cadea a "123".

Dicir une "Eu son" o número cadea.

Asignar cadea a cadea convertido en número.

Dicir une "Eu tamén son" o número cadea * 2.

Atopar

Datos:

  • Atopa a en gato.

Ao comezar.

Asignar cadea a "ola mundo".

Dicir "atopa m" en cadea.

Resultado mostrado: 5.

A letra "m" na cadea "ola mundo" está na posición 5.

Ao comezar.

Asignar cadea a "ola mundo".

Dicir atopa z en cadea.

Resultado mostrado: -1.

A letra z na cadea "ola mundo" non está.

Dividir

Datos:

  • Divide A,B,123 entre espazo en branco.
  • Elemento 1 de Rosa.

Ao comezar.

Asignar canción a divide "Teño tres pitas brancas e un galo negro" entre espazo en branco.

Dicir elemento 7 de canción.

Resultado mostrado: "galo".

Aquí hai un espazo en branco.

O espazo en branco serve para dividir en elementos a cadea.

Identifico que elemento está na posición 7.

As cadeas en Adafruit PCE e micro:bit

Agora vas aprender a aproveitar as operacións con cadeas mediante exemplos prácticos coas placas Adafruit PCE e micro:bit.

Inclinación da placa

Se empregas a placa Adafruit PCE, podes usar a orde "Dicir" para que informe do valor cualitativo dun sensor. Por exemplo, o sensor de inclinación do eixo Z pode indicar se a placa está cara arriba (valor positivo) ou cara abaixo (valor negativo) con seguinte programa. Se empregas micro:bit, podes usar a pantalla LED para ver o resultado.

Programa que mostra o valor da inclinación do eixo Z

Luminosidade sobre a placa

Co sensor de luminosidade, a placa pode dicir se está iluminada ou a escuras (por exemplo, tapada coa man).

Fíxate que o seguinte programa é igual que o anterior, agás que o valor de referencia para distinguir luz de escuridade fixouse en 50.

Programa que mostra a saída do sensor de luz en forma de texto

Tocar unha canción

Na fase 2 viches que para tocar unha canción precisabas poñer unha a unha as notas da partitura. Porén, en partituras sinxelas, nas que a duración das notas é similar, podes aforrar este paso se copias as notas seguidas e despois convertes cada nota nun elemento da cadea. Neste exemplo podes ver como tocar a popular canción infantil “Frei Felipe”.

Programa que selecciona as notas musicais dunha cadea e permite reproducilas

Lectura facilitada

Agora vas practicar coas cadeas.

Faralo con exemplos nas placas Adafruit PCE e micro:bit.

Inclinación da placa

A placa pode indicar se está cara arriba ou cara abaixo.

Na Adafruit PCE pódese usar a orde "Dicir".

Na micro:bit pódese usar a pantalla LED.

Programa que mostra o valor da inclinación do eixo Z

Luminosidade sobre a placa

A placa tamén pode indicar se hai luz ou escuridade.

Neste caso o valor de referencia é 50.

Programa que mostra a saída do sensor de luz en forma de texto

Tocar unha canción

As notas dunha canción poden gardarse nunha cadea.

Despois pódense tocar unha a unha.

Neste exemplo úsase a canción “Frei Felipe”.

Programa que selecciona as notas musicais dunha cadea e permite reproducilas

Transcrición dos programas

Inclinación da placa

Programa para Adafruit Circuit Playground Express:

Ao comezar.

Por sempre.

Se inclinación z menor que 0.

Asignar texto a "ABAIXO".

Se non.

Asignar texto a "ARRIBA".

Agardar 500 milisegundos.

Anima o texto texto.

Programa para micro:bit:

Ao comezar.

Por sempre.

Se inclinación z menor que 0.

Asignar texto a "ABAIXO".

Se non.

Asignar texto a "ARRIBA".

Agardar 500 milisegundos.

Anima o texto texto.

Luminosidade sobre a placa

Programa para Adafruit Circuit Playground Express:

Ao comezar.

Por sempre.

Se 50 menor que nivel de luz.

Asignar texto a "Iluminado".

Se non.

Asignar texto a "Escuro".

Agardar 500 milisegundos.

Dicir texto.

Programa para micro:bit:

Ao comezar.

Por sempre.

Se 50 menor que nivel de luz.

Asignar texto a "Iluminado".

Se non.

Asignar texto a "Escuro".

Agardar 500 milisegundos.

Anima o texto texto.

Tocar unha canción

Ao comezar.

Asignar texto a dó, re, mi, dó, dó, re, mi, dó, mi, fa, sol, mi, fa, sol, sol, la, sol, fa, mi, dó, sol, la, sol, fa, mi, dó, dó, sol, dó, dó, sol, dó.

Asignar posición a 1.

Creo unha variable que indique a posición dos elementos na cadea.

Asignar texto a divide texto entre coma.

Divido o texto nas notas da canción, que están separadas por comas.

Repetir lonxitude de texto veces.

A lonxitude do texto é o número de notas.

Tocar a nota elemento posición de texto na oitava 0 durante 500 ms.

Toco a nota da posición 1.

Aumenta posición en 1.

Cambio á seguinte posición (a medida que repita posicións irei á seguintes notas).

Atrévete a programar

Cada opción corresponde a un nivel de dificultade diferente. Escolle o nivel que prefiras e pon a proba as túas habilidades de programación. Ata onde queres chegar?

Opción A: Tocar unha canción

Robot Ada con placa Adafruit e placa micro:bit nas mans

Modifica o seguinte código para tocar unha nova canción. Proba con cancións moi sinxelas, como "Parabéns para ti", "Estreliña do lugar"...

Programa para reproducir as notas da canción Frei Felipe en MicroBlocks

Opción B: Canto tempo tardas en cansar?

Robot Ada con placa Adafruit e placa micro:bit nas mans

Realiza un programa no que teñas que axitar a placa ata que te canses. Mentres axitas con forza, o programa animarate indicando “segue así de rápido”. Cando deixes de axitar con tanta intensidade, o programa deterase e indicarache canto tempo tardaches en cansar. Se non sabes como empezar, segue estas indicacións:

Instrucións

1. Explica en que consiste o xogo

Empeza por indicar na pantalla en que consiste o xogo. En micro:bit tamén podes mostralo na pantalla LED.

Ao comezar, o programa mostra unha mensaxe para explicar o xogo

2. Agarda ata detectar axitación

Despois, indica que o programa debe agardar ata que haxa axitación. Isto ocorre cando a aceleración é maior de 100. Nese momento, dálle un pouco de tempo á persoa xogadora para coller folgos e pon o cronómetro a 0.

Programa que amosa as seguintes instrucións: agardar ata que a aceleración sexa maior de 100, agardar un intre e poñer o cronómetro a 0

3. Repite a mensaxe ata que te canses

Agora empeza a parte principal do programa. Emprega a orde "repetir ata que a aceleración sexa menor que 100". Mentres a aceleración sexa alta, o programa repetirá a frase "segue así de rápido". Cando a aceleración baixe de 100, o programa dirá canto tempo tardaches en cansar.

Programa en MicroBlocks coas seguintes instrucións: repetir ata que a aceleración sexa menor que 100 e ao final indicar o tempo medido co cronómetro

Lectura facilitada

Robot con placa Adafruit PCE na man

Fai un programa para axitar a placa.

O xogo remata cando te cansas.

Mentres axitas forte, o programa anima.

Cando deixas de axitar forte, o programa para.

Ao final indica o tempo.

Instrucións

1. Explica en que consiste o xogo

Primeiro, explica o xogo na pantalla.

En micro:bit tamén podes usar a pantalla LED.

Ao comezar, o programa mostra unha mensaxe para explicar o xogo

2. Agarda ata detectar axitación

Despois, o programa espera ata detectar axitación.

Isto pasa cando a aceleración é maior de 100.

Nese momento, pon o cronómetro a 0.

Programa que amosa as seguintes instrucións: agardar ata que a aceleración sexa maior de 100, agardar un intre e poñer o cronómetro a 0

3. Repite a mensaxe ata que te canses

Agora comeza a parte principal.

O programa repite a mensaxe mentres a aceleración é alta.

Cando a aceleración baixa de 100, o programa para.

Ao final di canto tempo tardaches en cansar.

Programa en MicroBlocks coas seguintes instrucións: repetir ata que a aceleración sexa menor que 100 e ao final indicar o tempo medido co cronómetro

Opción C: Programa que reacciona ante os múltiplos de 3

Robot Ada con placa Adafruit e placa micro:bit nas mans

Fai un no programa que, logo de introducirlle unha lista de números, sexa quen de reaccionar ante os múltiplos de 3. Se traballas con Adafruit PCE, fai que se modifique a cor dos LEDs. Se traballas con micro:bit pon cara contenta. Se non sabes como comezar, emprega estas indicacións:

Instrucións

1. Introduce a secuencia e sepáraa en elementos

Introduce a secuencia de números nunha variable de texto separados por comas. Despois divide a secuencia en elementos para poder traballar con cada número por separado.

Código que converte unha cadea de números en elementos separados

2. Percorre toda a lista cun contador

Agora usa un bucle cunha variable contadora. Neste caso, a variable vai dende 1 ata a lonxitude da cadea, que vale 10. Así, o programa vai pasando por todos os números: 1, 2, 3... ata 10. Engade tamén unha orde de agardar 1 segundo (ou 1000 milisegundos) para que dea tempo a ver cada número.

Orde que permite percorrer unha cadea usando unha variable contadora

3. Comproba se cada número é múltiplo de 3

Agora calcula se cada número é múltiplo de 3. Se é múltiplo de 3, en Adafruit PCE acenderase a luz vermella e en micro:bit mostrarase unha cara contenta. Se non é múltiplo de 3, en Adafruit PCE acenderase a luz verde. Lembra que, para saber se un número é múltiplo doutro, basta dividilo e comprobar que o resto é cero.

Código que usa o módulo nun condicional para seleccionar un número múltiplo doutro

Con isto xa tes case todo o programa. Mellórao para que, cando aparezan dous números seguidos que acenden a mesma cor, haxa unha pequena pausa entre eles para poder distinguilos e saber que son dous.

Lectura facilitada

Fai un programa cunha lista de números.

O programa debe reaccionar aos múltiplos de 3.

Na Adafruit PCE cambia a cor dos LEDs.

Na micro:bit aparece unha cara contenta.

Instrucións

1. Introduce a secuencia e sepáraa en elementos

Escribe os números nunha variable de texto.

Separa os números con comas.

Despois divide a secuencia en elementos.

Código que converte unha cadea de números en elementos separados

2. Percorre toda a lista cun contador

Usa un bucle cunha variable contadora.

Así o programa revisa todos os números.

Engade unha espera de 1 segundo.

Orde que permite percorrer unha cadea usando unha variable contadora

3. Comproba se cada número é múltiplo de 3

Agora comproba cada número.

Se é múltiplo de 3, a placa reacciona.

Na Adafruit PCE acéndese a luz vermella.

Na micro:bit aparece unha cara contenta.

Se non é múltiplo de 3, na Adafruit PCE acéndese a luz verde.

Código que usa o módulo nun condicional para seleccionar un número múltiplo doutro

Ao final, mellora o programa.

Pon unha pequena pausa cando saian dous números seguidos coa mesma cor.

Paréceche pouca complicación?

Se che pareceu doado o exercicio, podes complicalo e facer un xogo de habilidade. Cando o número non é múltiplo de 3 (1, 2, 4, 5, 7, 8...), tes que premer no botón B. Cando é múltiplo de 3 (3, 6, 9), tes que premer no botón A. Se non o fas a tempo, perdes porque o programa se detén.

Lectura facilitada

Se o exercicio che pareceu doado, podes facelo máis difícil.

Podes crear un xogo de habilidade.

Se o número non é múltiplo de 3, preme o botón B.

Se o número é múltiplo de 3, preme o botón A.

Se non respondes a tempo, perdes.

Nese caso, o programa detense.

Páxina 17 de 27

Licenciado baixo a Licenza Creative Commons Atribución Non-comercial Compartir igual 4.0

Feito con eXeLearning (Nova xanela)