Programação Sequencial


A variável é a região da memória principal de um computador, que tem a missão de armazenar um valor por certo espaço de tempo. Uma variável possui a capacidade de armazenar apenas um valor por vez.

É considerado valor um conteúdo alfanumérico, numérico, alfabético ou lógico.

O nome de uma variável é utilizado para a identificação e uso dentro do programa, portanto é necessário estabelecer algumas regras para a definição do nome de uma variável:

• Nomes podem ter um ou mais caracteres;

• O primeiro caractere não pode ser um número; sempre deve ser um caractere alfabético ou “_” (underline);

• Não pode ter espaços em branco;

• Não pode ser uma palavra reservada da linguagem;

Todo computador tem a missão de processar os dados e transformá-los em informações que sejam úteis para seus usuários. A linguagem Lua fornece um conjunto de tipos de dados dinâmicos, ou seja, dados que não necessitam ser identificados antes de seu uso. Desta forma Lua funciona com os seguintes tipos de dados dinâmicos:

• nil – usado para valores indefinidos;

• boolean – usado para valores do tipo falso (false) ou verdadeiro (true);

• number – usado para valores numéricos, real ou inteiro;

• string – usado para valores alfanuméricos entre aspas duplas (“ “), aspas simples (‘ ’), colchetes duplos ([[ ]]);

• function – usado para definição de valores do tipo função;

• userdata – usado para definição de valores do tipo ponteiro quando associada Lua com a linguagem C;

• thread – usado para definição de fluxos de execução independentes quando de aplicações com suporte a co-rotinas;

• table – usado para definição de tabelas de valores (listas, matrizes ou vetores).

O tipo number pode ser representado como: A = 7; A = 7.0; A = 0.7e1; A = 70e-1.

O tipo string pode ter o uso de escapes dentro da cadeia de caracteres que causam alguns efeitos na seqüência:

• n new line (nova linha)

• t tab (tabulação horizontal)

• r carriage return (retorno de carro)

• v vertical tab (tabulação vertical)

• a bell (campainha)

• b backspace (retorno de espaço)

• " aspas duplas (")

• ' apóstrofo (')

• \ barra invertida (\)

O tipo userdata permite que ocorra o armazenamento em uma variável Lua em um ponteiro definido num código de programa escrito na linguagem C. Assim sendo, userdata corresponde ao tipo ponteiro void* da linguagem C, podendo ser utilizado apenas para comparação de igualdade ou atribuição entre valores do mesmo tipo tanto em C quanto em Lua. No entanto, este tipo de dado não pode ser utilizado em programas escritos apenas com código em linguagem Lua.

O tipo table é usado para a definição de variáveis compostas que permitem o uso de elementos indexados em listas, matrizes ou vetores de uma ou mais dimensões.

Uma constante é associada à definição de valores pré-existentes como valores que dão peso e equilíbrio a uma fórmula matemática ou expressões matemáticas.

Uma entrada e uma saída podem ocorrer de várias formas como, por exemplo, uma entrada pode ser feita via teclado, modem, leitores ópticos, disco, scanners entre outros e uma saída pode ser feita via monitor de vídeo, impressora, disco, entre outras formas.

Com esta variedade, os programas apresentados neste curso utilizarão as instruções io.read (entrada de dados) e io.write() ou print (saída de dados).

As instruções io.read() e io.write() são escritas em dois segmentos separados por um ponto. Observe que o primeiro segmento é formado pelo componente io (input/output) que informa que os métodos read e write pertencem a uma biblioteca denominada io (biblioteca padrão de entrada e saída).

Para colocar em prática, faça um programa que efetue a leitura de dois valores numéricos, efetue em seguida a adição dos valores lidos e apresente como saída o resultado obtido. Para isso, considere o seguinte código:

Em seguida escreva o código de programa anterior em um editor de texto de sua preferência, gravando-o com o nome ex01.lua dentro da pasta lua. Após efetuar a gravação do programa ex01.lua proceda com sua execução a partir da seguinte linha de comando.

Lua5 ex01.lua

Forneça o primeiro valor numérico e tecle enter, depois o segundo valor. Perceba em seguida a apresentação do resultado.

No sentido de exemplificar o uso do comando print() proceda com a alteração do código seguinte e grave a nova versão do programa como o nome ex02.lua nas pasta lua5.

Após a execução do programa, note a apresentação da mensagem de saída por meio do comando print() que efetua o salto automático da linha e mostra alguns espaços em branco antes do valor de saída.

Dentro do escopo de operação com entrada, processamento e saída pode-se efetuar além de operações aritméticas operações com concatenação de sequências de caracteres.

As operações com concatenações são feitas exclusivamente com dados do tipo strings. Neste caso, se algum valor numérico for utilizado, será este automaticamente considerado caractere, como pode ser constatado no programa seguinte:

Escreva o código de programa em um editor de texto, gravando-o com o nome concatena.lua e faça sua execução como orientado.

O programa fará a apresentação das cadeias: Linguagem Lua, 12 e Lua 2013 em três linhas de texto distintas.

São responsáveis pela elaboração e execução de cálculos matemáticos em conjunto com o uso de variáveis e constantes. O estabelecimento de cálculos matemáticos são definidos por meio de expressões aritméticas.

A tabela seguinte apresenta os operadores aritméticos e algumas funções de apoio:

As operações de atribuições estão relacionadas ao fato de transferir um valor a uma variável, podendo esta atribuição ocorrer de duas formas: simples e múltipla.

As atribuições simples caracterizam-se por serem definidas de acordo com o formato VARIÁVEL = VALOR, onde VALOR está sendo atribuído a VARIÁVEL.

Já as atribuições múltiplas se caracterizam por serem definidas de acordo com o formato VARIÁVEL1, VARIÁVEL2, VARIÁVELN = VALOR1, VALOR2, VALORN; onde VALOR1 está sendo atribuído a VARIÁVEL1, VALOR2 está sendo atribuído a VARIÁVEL2 e VALORN está sendo atribuído a VARIÁVELN.

Caso ocorra a definição de um número de variáveis à esquerda do sinal de atribuição diferente do número de valores à direita do sinal ocorrerá uma de duas possibilidades, ou ocorrerá o preenchimento de valores das variáveis com o valor nil ou ocorrerá o descarte de valores quando a lista de variáveis for menor que a lista de valores.

O recurso de atribuições múltiplas da linguagem de programação Lua permite fazer a troca de valores entre variáveis em apenas uma linha de código.

Observe um exemplo comparativo de troca de valores nas linguagens PASCAL, C, e Lua.

Uma característica da linguagem Lua é o efeito de coerção. Lua é uma linguagem que define automaticamente para uma variável em uso o tipo de dado a ela associado. Não é preciso definir antes o tipo da variável em uso.

O efeito de coerção (conversão automática) tenta aplicar sobre uma operação aritmética a definição de dados do tipo numérico, mesmo quando está em uso um dado do tipo string. Por exemplo:

A = 35; B = "50"; C = A + B;

Observe que a variável C vai receber o valor numérico inteiro 85, sendo este a soma do valor numérico inteiro 35 da variável A com o valor caractere alfanumérico “50” da variável B que é convertido automaticamente para o seu valor numérico inteiro.

Outra possibilidade de uso de coerção é quando se deseja concatenar um valor numérico a um valor string definido. Por exemplo:

A = 35; B = "Resposta = "; C = A .. B;

Observe que a variável C vai receber o valor concatenado "35Resposta =", onde o conteúdo 35 da variável A será tratado como se fosse string “35” concatenando-o por meio do operador aritmético .. com o conteúdo “Resposta = ” da variável B.





© Acadêmico F.J.T.P da Unifenas - Todos os direitos reservados.