Matemática + Lua

  • 1
  • 2

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Matemática + LUA

 

 

Faaaala galera! Tudo bem? Espero que sim, pois precisarão de muita atenção para entender algumas partes deste tutorial.

 

A matemática é algo que nos acompanha no dia-a-dia, realmente muito importante, principalmente na programação. É indiscutível e concordável entre todos os programadores que um dos fatores de um bom profissional da área é o domínio da matemática!

 

Bom, este tutorial vai ser para mostrar um pouco apenas da importância desta na linguagem LUA, ainda que se você tem experiência, provavelmente já percebeu isto.

 

 

Sinais matemáticos simples

 

 

Começando com os sinais matemáticos, o básico de lua e da matemática, são eles:

 

+ Soma
- Subtração
* Multiplicação
/ Divisão
^ Exponenciação
% Módulo

 

Onde o módulo é definido como: x % y = x – math.floor(x/y)*y

 

A raiz quadrada pode ser definida como: x^(1/2).

Pode-se chegar ao valor da raiz cúbica deste jeito: x^(1/3) .

E assim por diante.

 

Os sinais de comparação também são básicos em lua, ainda sim, são bem importantes e são usados para comparar dois valores numéricos (exceto == e ~= que podem comparar qualquer valor).

 

 

Porcentagem

 

 

Porcentagem é bastante usada em lua, pois é um artifício a ser usado em várias funções que envolvem valores numéricos.

 

A porcentagem não é nada mais que regra de três, exemplo:

 

100% - 200

25% - x

 

Neste caso, temos o valor de cem por cento e queremos o valor de vinte cinco por cento. Para isso, cruzamos os valores.

 

Então a seguinte conta é feita:

 

100x = 5000

x = 5000/100

x = 50

 

Logo, 25% de 200 é 50.

 

 

tonumber

 

 

Existe uma função em lua, que tenta fazer a conversão de alguma string para valor numérico, esta função é chamada de tonumber.

É uma função clássica de lua, onde ela faz a conversão, de uma string, para um valor numérico, por exemplo: tonumber(“2”), ela converte para 2.

 

Simples, no entanto útil. Vamos usar dando um exemplo de Ot Server. Em um comando de talkaction, os parâmetros são strings, mesmo se forem números, assim, para compará-los com outros números, é necessário esta conversão.

 

Para curiosidade, a função tostring faz o inverso, exemplo: tostring(2), retorna “2”.

 

 

Funções math

 

 

Para mostrar a importância da matemática em lua e em outras programações, existem as funções math que são funções matemáticas ou diretamente relacionadas a ela.

 

Sinceramente eu não domino todas, então vou explicar as mais importantes por agora, são elas:

 

Math.ceil
Math.deg
Math.exp
Math.floor
Math.ldexp
Math.log
Math.log10
Math.modf
Math.pi
Math.pow
Math.rad
Math.random

 

Bom, estas serão as funções explicadas neste tutorial, onde eu não explicarei as funções de seno, cosseno e tangente para não deixar o tutorial uma apostila.

 

Primeiro, antes de começar a explicar estas funções, vou explicar o que seria um logaritmo, explicando como resolver-lo por definição, explicar o Número de Euler e explicar o que é um radiano.

 

Logaritmo:

 

Logaritmo é um conteúdo do ensino médio considerado um tanto complicado. Portanto, ensinarei apenas o método da resolução pela definição, vamos lá:

 

Um logaritmo contém três partes, são elas a base, o expoente e o próprio logaritmo. Dado o logaritmo abaixo:

 

Log100 = x
  10

 

A base é 10, x é o expoente e o logaritmo é log100. A conta deve ser feita deste jeito:

 

Base elevada ao expoente é igual a logaritmo.

 

Ou seja

 

  x
10 = 100

x = 2

 

Pronto, o logaritmo de 100 na base 10 é 2. Esse é o método da definição do logaritmo.

 

 

Número de Euler:

 

 

O número de Euler é um número dado em homenagem a um matemático chamado Leonard Euler, suíço, nascido no século XIII.

 

É um número irracional, aproximadamente é 2,718281828459045, ou, às vezes apenas 2,718281828459.

 

O número de Euler é comum ser chamado de e.

 

Também é à base do logaritmo natural.

 

 

Radiano:

 

 

Um radiano é a unidade de medida no Sistema Internacional de Unidades de um ângulo plano.

 

Usando um circulo como exemplo, nós teríamos o eixo da circunferência, sendo a circunferência a linha traçada em volta do circulo. A distancia desde o eixo deste circulo até a circunferência é o raio.

 

Quando a distancia entre duas linhas traçadas a partir do eixo até a circunferência for igual ao raio, o ângulo entre estas duas linhas vai ser 1 radiano.

 

É importante saber que 1 radiano é, aproximadamente, 57.295779513082º.

 

 

Math.ceil

 

 

Explicado como funcionam os logaritmos, um radiano e o número de Euler, vamos começar explicando as funções matemáticas.

 

O math.ceil faz uma abreviação de qualquer número decimal, arredondando este para o próximo numero inteiro maior que ele.

 

Usamos assim: math.ceil(1.5), ele retornará 2. Portanto, o math.ceil retorna o inteiro maior que o número decimal em seu parâmetro.

 

Exemplos:

 

Math.ceil(7/2) - 4

Math.ceil(16/3) – 6

 

 

Math.deg

 

 

O math.deg faz a conversão de um ângulo dado em radianos para grau.

 

Por exemplo, 1 radiano é, aproximadamente, 57.295779513082º.

 

Exemplos:

 

Math.deg(2) - 114.59155902616º

Math.deg(4) - 229.18311805233º

 

 

Math.exp

 

 

Considerando que o número de Euler é chamado de e, esta função faz o número de Euler elevado a um expoente x.

 

Usando o math.exp(x), ele eleva o e na potencia de x. Por exemplo, math.exp(x) faz a seguinte operação:

 

 x
e

 

Exemplos:

 

Math.exp(2) - 7.3890560989307

Math.exp(10) - 22026.465794807

 

 

Math.floor

 

 

O math.floor é semelhante ao math.ceil, ele ignora os valores fracionários de números decimais e considera apenas o valor integral.

 

No entanto, esta função arredonda o número para um valor menor, inteiro, que este. Por exemplo: math.floor(1.5), retorna 1.

 

Exemplos:

 

Math.floor(20/3) – 6

Math.floor(9/2) – 4

 

 

Math.ldexp

 

 

Esta função é originada de uma fórmula, contendo dois parâmetros.

 

A função eleva o número 2 a potencia do segundo parâmetro, feito isso, o multiplica pelo primeiro parâmetro.

 

Por exemplo, math.ldexp(5, 3), primeiro é elevado 2 na potencia 3 e depois multiplicado por 5.

 

2³ = 8

8*5 = 40

Math.ldexp(5, 3) = 40

 

Exemplos:

 

Math.ldexp(10, 7) = 1280

Math.ldexp(40, 2) = 160

 

 

Math.log

 

 

Ao contrário do que o senso comum diz, esta função não lhe permite escolher um logaritmo e retornar o expoente a qual sua base deve ser elevado para ser igual e ele, no entanto, retorna a quanto o número de Euler deve ser elevado para que resulte no seu logaritmo.

 

Por exemplo, math.log(148.41315910258), retornará 5, pois 2,718281828459045 elevado na 5º potencia é igual a 148.41315910258.

 

Definição do logaritmo acima:

 

Log148.41315910258  = x
  2,718281828459045  

                x
2,718281828459045     =  148.41315910258  

x = 5

 

Math.log10

 

 

Esta função é uma função relativamente simples comparada com a de cima. Pois ao invés de assumir o número de Euler como base do logaritmo, ela assume 10 como esta.

 

Por exemplo: math.log10(100), seria processado assim:

 

Log100 = x
  10

 x
10  = 100

x = 2

 

Exemplos:

 

Math.log10(1000) – 3

Math.log10(0.1) – (-1)

 

 

Math.modf

 

 

Esta é outra função simples de se compreender, ela retorna dois valores, o primeiro é a parte intregal do parâmetro e o segundo é a parte fracionária.

 

Dado o exemplo: math.modf(1.5), ele retorna primeiro 1 e depois 0,5 pois 1 é a parte integral do número e 0,5 é a parte fracionária.

 

Exemplos:

 

Math.modf(7.5) - 7 & 0,5

Math.modf(92.8) – 92 & 0,8

 

 

Math.pi

 

 

A função retorna o valor de PI é um número como o número de Euler, ou seja, um número importante e único na matemática. É usado para medir várias figuras geométricas.

 

É referente a letra p no alfabeto grego, e tem o valor aproximado de: 3,14159265

 

 

Math.pow

 

 

A função representa a seguinte conta:

 

 y
x

 

Ou seja, x elevado na potencia y, onde x é o primeiro parâmetro e y o segundo.

 

Por exemplo, math.pow(2, 3) resulta 8.

 

Exemplos:

 

Math.pow(3, 2) - 9

Math.pow(5, 3) – 125

 

 

 

Math.rad

 

 

É a função contrária de math.deg, faz a conversão de um ângulo dado em graus para radianos.

 

Por exemplo, 1º é aproximadamente, 0.01745329 radianos.

 

Exemplos:

 

Math.rad(30) - 0.5235987755983

Math.rad(360) - 6.2831853071796

 

 

Math.random

 

 

Para finalizar, a função math.random escolhe um número inteiro entre o arredondamento do primeiro parâmetro e o arredondamento do segundo. Sendo este arredondamento semelhante ao math.floor.

 

Por exemplo, math.random(1, 5), processaria o seguinte:

 

20% - 1
20% - 2
20% - 3
20% - 4
20% - 5

 

É importante ressaltar que lua é uma linguagem semi-randomica.

 

Exemplos:

 

Math.random(1, 100)

Math.random(5, 18)

 

 

 

Fontes:

 

Vou colocar aqui as fontes de onde eu recorri para escrever tudo isso acima:

 

Manual Lua

Wikipédia Logaritmo

Wikipédia Radiano

Wikipédia Número de Euler

 

 

 

Tutorial exclusivo XTIBIA

 

 

 

Bom, é isso, o tutorial foi feito inteiramente por mim, espero que gostem e aproveitem, até mais.

 

Este tópico recebeu destaque em nosso portal!

Oie :D

Kimoszin

Aprendendo Script~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/01/11Posts: 81

Graaande Demonbholder.

Realmente a matematica é essencial para todos.

E esta em nosso dia a dia, e com esse tutorial deixa mais facil fazer script, usando variaveis matematicas

 

O topico ficou claro e da para todos entenderem.

Continue assim.

Assinatura fora das regras.

pablo361

;D
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/04/08Posts: 24

Muuito boom Demon *--*

isso ira ajudar muitos

inclusive eu >.<

Obrigado , e Parabéens =)

 

REP+

Att.

Pablo Schuab

Fernandinand

draedni
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 22/01/11Posts: 691

Muito bom rapaz, eu sou excelente em matemática (pelo menos é o que minha média me diz), mas em lua eu sou horrível (quebrei meu computador uma vez por causa disso). Cala boca consciência, está me fazendo passar vergonha! (oka então, eu vou embora). Não! Por favor fique, sem você não sou nada :{ (me chama de mestre que eu fico). Aaan, não sei. (tchau). Meu mestre, fica por favor! (oka meu discípulo).

 

Viu gente, até nossa consciência nos diz que precisamos da matemática, mesmo não gostando dela, temos usado ela nossa vida toda, então não digam uma coisa como isso: "eu nunca fiz uma conta de matemática". Estão errados, só para contar um grão de areia, já é matemática.

 

Enfim, minha consciência me detonou, tadinho de mim D;

 

Muito bom bholder. Abraços gente, HAIL matemática. ;p

pesadelos__nightmare__book_1__morte__death__by_fernandol-d4sicv0.png

 

kk0Fg.png

tinfer3

Normaly they are the same.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/04/11Posts: 34

você poderia ao invéz de ensinar sobre raiz quadrada ou cúbica que é pouco usado em lua,ensinar é porcentagem...

The Joker



Eu não quero fazer o que eu posso,eu posso fazer o que eu quero.

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

você poderia ao invéz de ensinar sobre raiz quadrada ou cúbica que é pouco usado em lua,ensinar é porcentagem...

 

Porcentagem, sabia que tinha esquecido algo, logo editarei, porém, raiz quadrada é sim bastante utilizada em lua pura amigo. Raiz cúbica é usada, porém coloquei mais para curiosidade mesmo.

 

Fora que raiz quadrada não é mais do que uma potência, até.

 

Edição: Pronto, agora ensina porcentagem também.

Oie :D

Oneshot

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 05/07/09Posts: 1347

Nada mal o tutorial, agora explique também como usar essas funções todas em um script para Open Tibia.

Há também um erro básico:

 

número virgular

 

É número decimal.

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Oh, é mesmo, tinha esquecido o termo e usei virgular, pois se não me engano, virgular é qualquer coisa que tenha virgula.

 

Poots, se fosse explicar dando exemplos em Open Tibia ia virar quase uma apostila de tão grande, demorei bastante pra fazer ele, mas vamos ver, de repente no futuro.

 

Até mais.

Oie :D

fsg

Felipe Sartori
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 16/05/10Posts: 1510Char no Tibia: Alia Dori

Nossa Demonbholder, sou meio leigo na área, mas excelente conteúdo!

Fixado e Rep +.

Guarani da minha vida, a razão do meu viver, se ele jogasse lá no céu eu morreria só pra te ver! 1911 - 2015 ♥ 

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Opa, valeu cara, é bom ficar fixado pois até eu mesmo quando esqueço algumas funções venho olhar aqui.

 

Espero que comentem e postem dúvidas caso as tenham. Até mais.

Oie :D

satan666

Antichrist Superstar
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 07/05/08Posts: 612Char no Tibia: leviana luciferiana

belo tutorial bem explicado e objetivo.

 

Gostei muito das explicações, um belo aprofundamento em matemática coisa que poucos gostam.

 

traga mais desse tipo de tutorial e quem sabe o xt não fica tão sedentário.

creationb.jpg

"Um Deus que usasse seu poder para criar seres humanos que de antemão sabia que seriam atormentados eternamente, e que os predestinasse a isso,



não poderia ser sábio, nem justo e tampouco amoroso.

Além de nos submeter a isso vim a nos julgar e condenar por nossos atos aos tormentos do inferno.

pra minha pessoa isso não é um Deus Pai amoroso e bondoso como o chaman, seu padrão seria muito mais inferior do que o de muitos homens."

141831

Good For You
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/09/11Posts: 44Char no Tibia: Bielzin Ziika

Deve ter dado muito trabalho pra fazer ! MUITO BOM E ORGANIZADO Demonbholder !

Parabens pela paciencia de fazer e por postar e trazer para o XTibia ... acho que eh muito importante a matematica nos scripts !

 

APROVADISSIMOOO !!!!

REP+

Att,

StremeMakky

wigflip-ds.gif

wigflip-ds.gif

8ae65c69e4924e66af4fc3e44743c7e6.0.gif

Comecei Agora A Participar Do Forum Dia 13/10/11 . _____________________________________MSN : strememakky@hotmail.com

Meus Trabalhos

Nova Magia De Trap

Tente A Sorte 2

exorcist

Nossos dias nunca voltarão
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 14/06/11Posts: 172

nossa nunca vo se scripter

251899_278013482304915_1728848852_n.jpg

evairloko

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/10/11Posts: 21

oi não sei se é errado postar aqui mais é que presiso de uma action = a usada para atirar com arma no tibia gta

Godvinih

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/01/12Posts: 11Char no Tibia: Sou mapper e scripter

Bom tutorial,vai me ajudar nos Scripts vou fazer as contas certas agora sem erro =)

REP+

  • 1
  • 2