Ir para conteúdo

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
https://xtibia.com/forum/topic/225596-em-breve-turma-2/
Compartilhar em outros sites

  • 2 weeks later...

Humm... Cara eu quero participar, tipo eu tenho um otserver mas não sei mexer muito com os arquivos lua dele ai tenho que procurar em sites etc... então por favor guarda minha vaga mdr.gifmdr.gifmdr.gif

Link para o comentário
https://xtibia.com/forum/topic/225596-em-breve-turma-2/#findComment-1597618
Compartilhar em outros sites

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