BLOCO VARIABLE O bloco variável (variable block) escreve dados numéricos, textuais ou lógicos em variáveis – zonas na memória do NXT – e lê dados de variáveis. A Figura 1 mostra o bloco variável por defeito e os seus respectivos data wires. Apenas tem um símbolo do lado direito que indica se o bloco está a ler ou a escrever dados. No canto inferior esquerdo tem o nome da variável que o bloco escreve/lê. Figura 1 – Bloco variável (standard) DEFINIR VARIÁVEIS Antes de um bloco variável poder usar uma variável, primeiro esta deve ser definida. Cada variável tem o seu próprio nome, um tipo de dados e um valor. Seleccionando Edit -> Define Variables do menu principal aparece a caixa de diálogo Edit Variables (Figura 2). Existem sempre três tipos de variáveis por defeito, a Logic 1 (para dados lógicos), a Number 1 (para dados numéricos) e a Text 1 (para dados textuais). Se desejar criar uma nova variável sua, carregue no botão Create para adicioná-la à lista. Pode-se dar um nome a essa variável e definir o tipo de dados que esta contém. Quando se adiciona uma variável esta apenas está disponível para o programa onde é adicionada, sendo necessário definir as variáveis para cada programa que se faça. Após serem adicionadas novas variáveis, estas aparecerão na lista de variáveis dos parâmetros do bloco, que são descritos a seguir. Figura 2 – Caixa de diálogo Edit Variables PARÂMETROS DO BLOCO VARIÁVEL No bloco variável existem três parâmetros a ser configurados: Lista (List), Acção (Action) e Valor (Value). A Figura 3 mostra o painel de parâmetros do bloco variável por defeito. Figura 3 – Painel de parâmetros do bloco variável (por defeito) Lista (List): Neste parâmetro é seleccionada a variável que se deseja usar. Além das três variáveis por defeito, qualquer variável que tenha sido criada aparecerá também nesta lista. Acção (Action): No parâmetro acção é especificado se o bloco deve ler (usar dados já existentes numa variável) ou escrever dados numa variável (adicionar um novo dado à variável escolhida). Seleccionando ler (read) faz com que o bloco mostre no seu data hub um único output plug no qual se pode ligar um data wire de forma a transmitir os dados contidos nessa variável para outro bloco. Seleccionando escrever (write) faz com que o bloco mostre no seu data hub um input plug com o correspondente output plug. É preciso ter cuidado com o facto de ao escrever um dado numa variável, o dado contido anteriormente na mesma é apagado. Valor (Value): O parâmetro valor apenas é editável caso no parâmetro acção tenha sido seleccionada a opção escrever e permite definir o valor a escrever na variável. Este valor também pode ser introduzido através de um data wire. EXEMPLO DE UMA APLICAÇÃO DO BLOCO VARIÁVEL A Figura 4 mostra um exemplo prático de uma aplicação do bloco variável num programa. No loop superior, o número contido na variável Number 1 é utilizado para definir a quantidade e energia utilizada pelo bloco motor. No loop inferior, o bloco sensor de toque bloqueia o loop, apenas avançando para o seguinte bloco variável quando este é premido. O primeiro bloco variável deste loop apenas serve para enviar o valor contido na variável Number 1 ao bloco matemático seguinte, que vai adicionar 10 a esse número e depois enviar o valor dessa soma a um novo bloco variável que vai guardar o novo valor na variável Number 1. Desta forma, cada vez que o sensor de toque for premido a variável Number 1 aumenta o seu valor em 10 unidades e, consequentemente (pelo loop superior), a energia utilizada pelo bloco motor (para o motor conectado à porta A) vai aumentar em 10%. Figura 4 – Exemplo de uma aplicação de um bloco variável num programa