Ir para conteúdo

Matemática + Lua


Posts Recomendados

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!

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

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.

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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.

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

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.

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

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.

Link para o comentário
Compartilhar em outros sites

  • 5 months later...

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+

Link para o comentário
Compartilhar em outros sites

  • 4 months later...
  • 2 weeks later...
×
×
  • Criar Novo...