Demonbholder 420 Postado Abril 14, 2011 Share Postado Abril 14, 2011 (editado) 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 Abril 29, 2011 por Demonbholder Link para o comentário https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/ Compartilhar em outros sites More sharing options...
Kimoszin 32 Postado Abril 14, 2011 Share Postado Abril 14, 2011 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 https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1025129 Compartilhar em outros sites More sharing options...
pablo361 25 Postado Abril 14, 2011 Share Postado Abril 14, 2011 Muuito boom Demon *--* isso ira ajudar muitos inclusive eu >.< Obrigado , e Parabéens =) REP+ Link para o comentário https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1025134 Compartilhar em outros sites More sharing options...
Fernandinand 128 Postado Abril 14, 2011 Share Postado Abril 14, 2011 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 https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1025135 Compartilhar em outros sites More sharing options...
tinfer3 6 Postado Abril 14, 2011 Share Postado Abril 14, 2011 você poderia ao invéz de ensinar sobre raiz quadrada ou cúbica que é pouco usado em lua,ensinar é porcentagem... Link para o comentário https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1025139 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Abril 14, 2011 Autor Share Postado Abril 14, 2011 (editado) 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 Abril 15, 2011 por Demonbholder Link para o comentário https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1025143 Compartilhar em outros sites More sharing options...
Oneshot 732 Postado Abril 15, 2011 Share Postado Abril 15, 2011 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 https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1025241 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Abril 15, 2011 Autor Share Postado Abril 15, 2011 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 https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1025248 Compartilhar em outros sites More sharing options...
fsg 230 Postado Abril 15, 2011 Share Postado Abril 15, 2011 Nossa Demonbholder, sou meio leigo na área, mas excelente conteúdo! Fixado e Rep +. Link para o comentário https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1025324 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Abril 18, 2011 Autor Share Postado Abril 18, 2011 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. Link para o comentário https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1026245 Compartilhar em outros sites More sharing options...
satan666 12 Postado Maio 4, 2011 Share Postado Maio 4, 2011 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 https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1030715 Compartilhar em outros sites More sharing options...
141831 16 Postado Outubro 14, 2011 Share Postado Outubro 14, 2011 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 https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1115929 Compartilhar em outros sites More sharing options...
exorcist 6 Postado Fevereiro 29, 2012 Share Postado Fevereiro 29, 2012 nossa nunca vo se scripter Link para o comentário https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1208427 Compartilhar em outros sites More sharing options...
evairloko 0 Postado Março 7, 2012 Share Postado Março 7, 2012 oi não sei se é errado postar aqui mais é que presiso de uma action = a usada para atirar com arma no tibia gta Link para o comentário https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1212991 Compartilhar em outros sites More sharing options...
Godvinih 1 Postado Março 18, 2012 Share Postado Março 18, 2012 Bom tutorial,vai me ajudar nos Scripts vou fazer as contas certas agora sem erro =) REP+ Link para o comentário https://xtibia.com/forum/topic/155162-matem%C3%A1tica-lua/#findComment-1219921 Compartilhar em outros sites More sharing options...
Posts Recomendados