Ir para conteúdo
Entre para seguir isso  
shoeei

Matematica + LUA.

Recommended Posts

shoeei    3
shoeei

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 bool, strings e numeros.

 

== significa dizer que é equivalente a tal string, number ou bool. Você está afirmando tal valor é igual a outro valor.
~= quer dizer que é diferente de tal string, number ou bool.

Atenção, = não é igual a ==

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”.

 

 

Biblioteca 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 bibliotecas 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

 

Espero que este tutorial possa ajudar alguem.

Editado por shoeei

Compartilhar este post


Link para o post
iuniX    4
iuniX

Você arrumou o que eu tinha te falado e está até que muito bom o tutorial. Como não temos um tutorial parecido como esse, estarei fixando o mesmo.

Compartilhar este post


Link para o post
shoeei    3
shoeei

Valeu, espero que ajude alguem issoae ;]

Compartilhar este post


Link para o post
Ramza    11
Ramza

Muito bom, gostei, explicou algumas coisas que pouca gente sabe =)

Compartilhar este post


Link para o post
xuvilel    0
xuvilel

isso mim ajudo vlw awe

Compartilhar este post


Link para o post
luishtfs    1
luishtfs

Realmente belo tutorial, mas pra ser sincero, isso não vai me ajudar em nada, sou muito burro pra programação. mas vlww

Compartilhar este post


Link para o post
daaud    0
daaud

Um pouco confuso , muito Math. mas ficou muito bom . Parabéns

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×