Ir para conteúdo

Featured Replies

Postado

<< Aula 3 - Primeiros Passos

 

 

 

 

Operadores Aritméticos e Bibliotecas

 

 

 

 

Aula 4

 

 

 

Na aula anterior vimos como chamar funções e conhecemos as funções print e type. Nesta aula apenas vou reforçar a aula anterior ensinando as funções mais básicas e usadas que são nativas da linguagem Lua, ou seja, não são funções criadas para Open Tibia Server, e sim funções prontas que já estão incluídas na linguagem Lua, e vou ensinar também os operadores aritméticos. Vamos começar com eles.

 

Os Operadores Aritméticos

 

OBS: Você pode fazer seus testes no editor e interpretador Lua usando a função print para exibir os resultados.

 

Enquanto você quiser mecher em Lua (Ou em qualquer outra linguagem de programação), você vai precisar fazer contas matemáticas, sejam elas contas simples como uma adição, ou até mesmo contas complexas, incluindo fórmulas e etc...

 

Os operadores aritméticos funcionam exatamente como na matemática que você está acostumado na escola. Os operadores aritméticos que você provavelmente conhece (A não ser que esteja usando fraldas) são:

 

  • Adição (+)
  • Subtração (-)
  • Multiplicação (*)
  • Divisão (/)

 

O resultado será:

 

Citar

 

5

1

6

1.5

 

OBS: Se este não for o resultado, procure a assistência técnica pois seu sistema operacional só pode ser pirateado.

 

Existem mais 3 operadores aritméticos que você talvez não conheça. São eles:

 

  • Módulo (%)
  • Exponencição (^)
  • Unário (-)

 

Vamos ver um por um:

 

O Operador de Módulo (%):

Este operador vai lhe dar o resto de uma divisão, por exemplo, o módulo de 3 por 2 é 1, pois 3 dividido por 2 dá 2 e sobra 1.

 

print(3%2)

 

Resultado: 1

 

 O Operador de Exponencição (^):

Este operador vai lhe dar o valor de uma potência, por exemplo, a potência de 3 por 2 é 9, pois 3 elevado a 2 dá 9.

 

print(3^2)

 

Resultado: 9

 

  O Operador Unário (-):

Este operador vai lhe dar o inverso de um valor, por exemplo, o inverso de 3 é -3, pois 3 vezes -1 dá -3.

 

print(-3)

 

Resultado: -3

 

 Prioridades Aritméticas (( e )):

Existem também as prioridades aritméticas, que devem ser definidas com ( para iniciar e ) para finalizar. Por exemplo:

 

print(3+3*3)
print((3+3)*3)

 

 

Resultado:
12
18 

 

As Bibliotecas

 

Vimos na aula anterior que existem vários tipos de dados, como por exemplo, strings e números. Assim como estes tipos, existem bibliotecas (Conjuntos de funções) para manipular estes tipos. Vamos conhecer as funções mais básicas das bibliotecas mais usadas.

 

A Biblioteca Padrão:

A biblioteca padrão não contém funções para manipular especificamente um tipo de dado, e sim o ambiente de programação. Suas funções mais básica, importantes e mais usadas são:

 

Sintaxe: Modo correto de escrever o código.

OBS: O que estiver entre [ e ] são argumentos opcionais, ou seja, você pode defini-los ou não. Quando houver três pontos (...) significa que você pode enviar quantos argumentos desejar.

 

dofile(filename)

Abre o arquivo e o executa como um bloco de código Lua. Ótima função para carregar bibliotecas criadas em Lua.

 

print(···)

Escreve uma ou mais frases no interpretador. Ótima para fazer testes. A função suporta todos os tipos de dados.

 

tonumber(value [, base])

Transforma um valor em número. Se não for possível converter, retorna 'nil'.

 

tostring(value)

Transforma um valor em string.

 

type(value)

Retorna o tipo de um valor.

 

Todas as funções da biblioteca padrão!

 

Spoiler

assert(v [, message])
collectgarbage(opt [, arg])
dofile(filename)
error(message [, level])
getfenv([f])
getmetatable(object)
ipairs(t)
load(func [, chunkname])
loadfile([filename])
loadstring(string [, chunkname])
next(table [, index])
pairs(t)
pcall(f, arg1, ···)
print(...)
rawequal(v1, v2)
rawget(table, index)
rawset(table, index, value)
select(index, ···)
setfenv(f, table)
setmetatable(table, metatable)
tonumber(e [, base])
tostring(e)
type(v)
unpack(list [, i [, j]])
xpcall(f, err)
module(name [, ···])
require(modname)

 

 

 

A Biblioteca Math:

A biblioteca Math serve para manipular operações aritméticas, números, etc...

 

math.ceil(x)

Retorna um valor inteiro maior que x mais próximo de x. (Em outras palavras, arredonda para cima.)

 

math.floor(x)

Retorna um valor inteiro menor que x mais próximo de x. (Em outras palavras, arredonda para baixo.)

 

math.random([m [, n]])

Retorna um valor pseudo-randômico entre m e n baseado em uma semente (Um número que determina a sequência).

 

math.randomseed(value)

Altera a semente do pseudo-randomismo.

 

Todas as funções da biblioteca math!

Spoiler

math.abs(x)
math.acos(x)
math.asin(x)
math.atan(x)
math.atan2(y, x)
math.ceil(x)
math.cos(x)
math.cosh(x)
math.deg(x)
math.exp(x)
math.floor(x)
math.fmod(x, y)
math.frexp(x)
math.ldexp(m, e)
math.log(x)
math.log10(x)
math.max(x, ···)
math.min(x, ···)
math.modf(x)
math.pow(x, y)
math.rad(x)
math.random([m [, n]])
math.randomseed(x)
math.sin(x)
math.sinh(x)
math.sqrt(x)
math.tan(x)
math.tanh(x)

 

 

A Biblioteca String:

A biblioteca string manipula strings... :slap:

 

string.gsub(s, pattern, repl [, n])

Procura na string 's' por valores iguais à string 'pattern' e substitui pela string 'repl'.

 

string.len(s)

Esta função retorna o tamanho da string 's'.

 

string.lower(s)

Retorna a string 's' com as letras em minúsculas.

 

string.upper(s)

Retorna a string 's' com as letras em maiúsculas.

 

string.rep(s, n)

Retorna a string 's' repetida 'n' vezes.

 

string.reverse(s)

Retorna a string 's' ao contrário.

 

string.sub(s, i [, j])

Retorna a parte da string 's' entre as posições i e j.

 

Todas as funções da biblioteca string!

Spoiler

string.byte(s [, i [, j]])
string.char(···)
string.dump(function)
string.find(s, pattern [, init [, plain]])
string.format(formatstring, ···)
string.gmatch(s, pattern)
string.gsub(s, pattern, repl [, n])
string.len(s)
string.lower(s)
string.match(s, pattern [, init])
string.rep(s, n)
string.reverse(s)
string.sub(s, i [, j])
string.upper(s)

 

 

A Biblioteca OS:

Esta biblioteca serve para pegar valores ou manipular o sistema operacional, como por exemplo, pegar a data.

 

os.clock()

Retorna o tempo de execução do script, em segundos...

 

os.date([format [, time]])

Retorna a data baseada no formato 'format'.

 

os.time([table])

Retorna um número correspondente à hora atual.

 

Todas as funções da biblioteca OS!

Spoiler

os.clock()
os.date([format [, time]])
os.difftime(t2, t1)
os.execute([command])
os.exit()
os.getenv(varname)
os.remove(filename)
os.rename(oldname, newname)
os.setlocale(locale [, category])
os.time([table])
os.tmpname()

 

 

Outras Bibliotecas: (Avançado)

 

Todas as funções da biblioteca Coroutine!

Spoiler

coroutine.create(f)
coroutine.resume(co [, val1, ···])
coroutine.running()
coroutine.status(co)
coroutine.wrap(f)
coroutine.yield(···)

 

Todas as funções da biblioteca Debug!

Spoiler

debug.debug()
debug.getfenv(o)
debug.gethook([thread])
debug.getinfo([thread,] function [, what])
debug.getlocal([thread,] level, local)
debug.getmetatable(object)
debug.getregistry()
debug.getupvalue(func, up)
debug.setfenv(object, table)
debug.sethook([thread,] hook, mask [, count])
debug.setlocal([thread,] level, local, value)
debug.setmetatable(object, table)
debug.setupvalue(func, up, value)
debug.traceback([thread,] [message] [, level])

 

Todas as funções da biblioteca Input/Output!

Spoiler

io.close([file])
io.flush()
io.input([file])
io.lines([filename])
io.open(filename [, mode])
io.output([file])
io.popen(prog [, mode])
io.read(···)
io.tmpfile()
io.type(obj)
io.write(···)
file:close()
file:flush()
file:lines()
file:read (···)
file:seek([whence] [, offset])
file:setvbuf(mode [, size])
file:write(···)
package.loadlib(libname, funcname)
package.seeall(module)

 

Todas as funções da biblioteca Table!

Spoiler

table.concat(table [, sep [, i [, j]]])
table.insert(table, [pos,] value)
table.maxn(table)
table.remove(table [, pos])
table.sort(table [, comp])

 

 

Exercícios:

Pratique o uso das funções das bibliotecas math e string. (Y)

 

Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos são dele.

 

 

 

 

 

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo