Ir para conteúdo

Posts Recomendados

Bhaskara e um formula matematica capaz de resolver uma equação de segunda grau(ax^2+bx+c) ela é muito abordada no 6°~9° do ensino fundamental chegando também no ensino medio.

 

Eu fiz uma versão com ultlização simples basta colocar a equação de 2 grau numa string que ele irá resolver a sua equação.

 function string.explode(e, sep)
        local result = {}     
  e:gsub("[^".. sep .."]+", function(s) table.insert(result, s:match("^%s*(.-)%s*$")) end)
 
        return result[1] and result or 0
end
 
function executeFormBashakara(bash)
 
local function validateZero(x)
local x = tostring(x)
if string.sub(x, 1, 1) == "-" and string.sub(x, 2, 2) == "0" or not tonumber(x) then
return 0
end
return x
end
 
local function adptBhaskSing(bask)
bask = string.gsub(bask, " ", "")
bask = string.gsub(bask, "-", "+-")
return bask
end
 
local function stringToNumber(str)
for i =1, #str do
local y = string.sub(str, 1, i)
if y ~= "-" and y ~= "+" then
if not tonumber(y) then
return tonumber(x) 
end
end
x = y
end
return y  
end
 
bash = adptBhaskSing(bash)
 
a = string.explode(bash, "+")[1] 
b = string.explode(bash, "+")[2] 
c = string.explode(bash, "+")[3] 
delta = (stringToNumber(b)^2)+(-4*stringToNumber(a)*stringToNumber(c))
if delta < 0 then
return false,delta
end
bhask1 = validateZero((stringToNumber(b)+math.sqrt(delta))/(2*stringToNumber(a)))
bhash2 = validateZero((stringToNumber(b)-math.sqrt(delta))/(2*stringToNumber(a)))
 
return bhask1,bhash2
end
 
x,y = executeFormBashakara("4x2 = 0 ")
 
print(x)
print(y)
Editado por caotic
Link para o comentário
https://xtibia.com/forum/topic/226712-formula-de-bhaskara/
Compartilhar em outros sites

funciona direito n...

 

 

x,y = executeFormBashakara("4x2 + 1x -5 = 0 ")

print(x)
print(y)

 

deu:

false
-16

 

tentei coloca o expoente 1 do segundo x, mas ainda sim n foi.

 

x,y = executeFormBashakara("4x2 = 4 ")

print(x)
print(y)

 

deu

0
0

sem coments

 

x,y = executeFormBashakara("1x2 - 2x - 63 = 0 ")

print(x)
print(y)

 

deu

 

1.4142135623731
-1.4142135623731
what the fuck, da onde saiu esse resultado escroto?? o correto seria -7 e 9...

 

tenta fazer menor e de forma simples, fica mais facil de achar os erros, e geralmente da da mais certo.

 



Link para o comentário
https://xtibia.com/forum/topic/226712-formula-de-bhaskara/#findComment-1602352
Compartilhar em outros sites

  Em 13/01/2014 em 15:17, lordbug99 disse:

funciona direito n...

 

 

 

  Em 13/01/2014 em 15:17, lordbug99 disse:

funciona direito n...

 

 

x,y = executeFormBashakara("4x2 + 1x -5 = 0 ")

 

print(x)

print(y)

 

deu:

false

-16

 

tentei coloca o expoente 1 do segundo x, mas ainda sim n foi.

 

x,y = executeFormBashakara("4x2 = 4 ")

 

print(x)

print(y)

 

deu

0

0

sem coments

 

x,y = executeFormBashakara("1x2 - 2x - 63 = 0 ")

 

print(x)

print(y)

 

deu

 

1.4142135623731

-1.4142135623731

what the fuck, da onde saiu esse resultado escroto?? o correto seria -7 e 9...

 

tenta fazer menor e de forma simples, fica mais facil de achar os erros, e geralmente da da mais certo.

 

 

 

x,y = executeFormBashakara("4x2 + 1x -5 = 0 ")

 

print(x)

print(y)

 

deu:

false

-16

 

tentei coloca o expoente 1 do segundo x, mas ainda sim n foi.

 

x,y = executeFormBashakara("4x2 = 4 ")

 

print(x)

print(y)

 

deu

0

0

sem coments

 

x,y = executeFormBashakara("1x2 - 2x - 63 = 0 ")

 

print(x)

print(y)

 

deu

 

1.4142135623731

-1.4142135623731

what the fuck, da onde saiu esse resultado escroto?? o correto seria -7 e 9...

 

tenta fazer menor e de forma simples, fica mais facil de achar os erros, e geralmente da da mais certo.

 

 

 

Da erro e por causa da função adptBhaskUnknownsNumbers(bash)

Foda que quando fui conferir ela tava colocando zeros em valores de b ou c que ja existiam mais to resolvendo o problema.

Vou pensar uma maneira de reduzir memoria.

 

Se você retirar vai estar totalmente normal.

Acabei de ver também que tinha colocado um (-) na formula final de bashkara ja concertei.

Editado por caotic
Link para o comentário
https://xtibia.com/forum/topic/226712-formula-de-bhaskara/#findComment-1602452
Compartilhar em outros sites

  Em 19/01/2014 em 13:35, Oneshot disse:

Ah, Thiago, como eu amo seus POGs, mas eu prometi para mim mesmo que não vou refazer funções alheias para alimentar meu ego...

Não cara.

Adoro as suas versões diretas.

 

Chega a um ponto ser engraçado rs.

Editado por caotic
Link para o comentário
https://xtibia.com/forum/topic/226712-formula-de-bhaskara/#findComment-1605278
Compartilhar em outros sites

  • 2 weeks later...

Eu faria algo assim:

 

local equation = "1x2+2x+1"
pattern = "(%d-)x2[+]?[-]?(%d-)x[+]?[-]?(%d-)$"
local a, b, c = string.match(equation, pattern)
local delta = b^2 - 4 * a * c
if delta >= 0 and a ~= 0 then
 x1 = (- b + math.sqrt(delta))/ (2 * a)
 x2 = (- b - math.sqrt(delta))/ (2 * a)
  print(x1, x2)
else
 print("error")
end
Link para o comentário
https://xtibia.com/forum/topic/226712-formula-de-bhaskara/#findComment-1610308
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...