Ir para conteúdo

[Em breve...] Turma #2


Omega

Posts Recomendados

i6z61u.jpg


A primeira turma da escolinha de scripting terminou, mas outras turmas ainda serão formadas! Venho aqui avisar que, mesmo já tendo preparado um pouco do material para o início, preferi adiar seu começo para o início de 2014, para evitar transtornos causados pelas costumeiras viagens de fim de ano. E ela vem com algumas novidades que ainda não revelarei aqui he.gif

 

Vou, entretanto, divulgar o primeiro capítulo do material que venho preparando:

 

 

 

Capítulo 1 – Lógica da Programação, Tipos de Valores e Estruturas de Controle

Quando se programa, você está dizendo para o computador o que fazer através de um código, no caso, uma linguagem de programação. Assim, existe somente uma interpretação possível de um mesmo código. Um programa não passa de vários comandos repassados e interpretados pelo computador. Para começar, não vamos quebrar uma antiga tradição: o primeiro programa quando se aprende uma nova linguagem deve imprimir “hello world”.

  1. Abra o arquivo aprendendo.lua

  2. Escreva: print(“Hello World”)

  3. Salve. Abra o cmd e digite lua aprendendo.lua e veja o que seu primeiro programa faz.

Pronto, seu primeiro programa em LUA foi executado. Print é o verbo imprimir em inglês. No caso, o que nosso programa disse ao computador para fazer foi:

Imprima hello world

E foi isso que ele fez: imprimiu na tela do computador a frase digitada. As aspas (“”) devem ser usadas para diferenciar um comando (print) de uma string (texto). Isso acontece porque o computador entende que existem vários tipos de valores. Por exemplo, se alguém lhe pedir para somar 5 + limão, o que você responderia? Bom, a resposta é óbvia:

“5 é um valor numérico, enquanto limão é uma fruta, logo é impossível realizar a operação.”

Ok, ok, talvez não seja tão óbvia assim. Mas tente executar o seguinte código:

print(5 + “limão”)

Ocorrerá um erro que, resumindo, diz:

“Tentativa de realizar uma operação aritmética entre um número e um texto.”

O que, agora naturalmente, não é possível. Em lua, temos os seguintes tipos de valores:

  1. number (números)

  2. string (textos)

  3. nil (valor nulo)

  4. boolean (falso/verdadeiro – em homenagem à George Boole)

  5. table (tabelas)

  6. function (funções)

  7. userdata

  8. thread

Os dois últimos não são usados comumente e não são do nosso interesse por enquanto.

Com os números são realizadas operações aritméticas como soma, subtração, divisão, etc; strings são textos, como as mensagens recebidas no jogo; nil é definido como um valor diferente de todos os outros. É nulo, significa algo como “vazio”; booleanos são os valores binários falso e verdadeiro, em homenagem à George Boole, seu inventor; tabelas são valores que armazenam um conjunto de outros valores quaisquer. Cada elemento de uma tabela tem um índice e um valor; funções são sequências de comandos, como a função soma(a1, a2) que retornará a soma de a1 + a2. Voltaremos a todos esses tipos de valores mais tarde, o importante agora é saber de sua existência.

Além disso, também devemos aprender quais símbolos podemos usar para “conversar” com o computador. A lista abaixo mostra alguns deles:

  • + (Soma)

  • - (Subtração)

  • * (Multiplicação)

  • / (Divisão)

  • ^ (Exponenciação)

  • > (Comparação – maior)

  • < (Comparação – menor)

  • >= <= (Comparação – maior ou igual e menor ou igual)

  • == (Comparação – igualdade)

  • ~= (Comparação – diferente)

Agora que sabemos o básico da linguagem, podemos executar mais alguns comandos simples:

print(5 + 3) → 8
print(3 >= 2) → true
print(3 <= 2) → false
print(3 == 3) → trueprint(3 ~= 3) → false

Com isso ainda não podemos executar comandos mais complexos, como um comando condicionado, por exemplo: “se 3 > 4, então imprima maior, se não, imprima menor”. Para fazer isso, precisamos entender o que são as estruturas de controle. São elas: if, for, while e repeat.
Por enquanto, vamos nos ater ao if, a estrutura mais simples e intuitiva. Ela significa “se” e nos permite criar condições ao longo do nosso código:

    if 3 > 4 then
        print(“maior”)
    else
        print(“menor”)
    end

Importante: TODA estrutura de controle e TODA função precisa de um end para sinalizar seu término.

Esse código traduz para o computador o comando citado acima. Executando-o, temos como resultado → menor.
A estrutura do if é:

if condição then ... [elseif condição2 then … ] [else ...]


Que significa:

se a condição for satisfeita, então …; se não for, mas a condição2 for, então …; se nenhuma das duas for satisfeita, então …

Podemos então criar diversas condições em apenas um if e um outro comando para ser executado se nenhuma condição for satisfeita. Exemplificando:

    if 3 == 5 then
        print(“igual”)
    elseif 3 > 5 then
        print(“maior”)
    else
        print(“menor ou igual”)
    end

Você já consegue prever qual será o resultado? Teste depurando esse código.

Passo-a-passo da interpretação do código:

  1. se 3 é igual a 5, então → falso (3 é diferente de 5) - condição não satisfeita
  2. se 3 é maior que 5, então → falso (3 é menor ou igual a 5) – condição não satisfeita
  3. como nenhuma das condições anteriores foi satisfeita, imprima “menor ou igual” (pois foi a única alternativa que sobrou)

Note que poderíamos substituir o else por elseif 3 <= 5 then, tendo o mesmo resultado.

 

O capítulo 2 foca na utilização do if (elseif e else) e o 3 iniciará variáveis e identação.

 

Esse conteúdo vem com uma introdução ensinando a usar ferramentas e depurar códigos, além de uma pequena lista de exercícios e tutoriais de apoio.

 

Os requisitos básicos para se candidatar a escolinha serão: linguagem escrita inteligível (que dá pra entender), conhecimento intermediário de inglês e disponibilidade razoável durante a semana. Também é necessário ressaltar que a escolinha foca em iniciantes que queiram aprender Lua, não em aprimorar o conhecimento dos que já conhecem a linguagem.

 

Gostaria de comentários e sugestões sobre quais devem ser os temas abordados, dicas para ensinar, tópicos que não podem ficar de fora, etc.

Editado por Omega
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...