Class: Calculadora
- Inherits:
-
Object
- Object
- Calculadora
- Defined in:
- lib/calculadora.rb
Instance Method Summary collapse
- #divisao(dividir) ⇒ Object
- #indetificar_operadores(expressao) ⇒ Object
- #multiplicacao(multiplicar) ⇒ Object
- #pegar(expressao) ⇒ Object (also: #calcular)
- #soma(soma) ⇒ Object
- #subtracao(subtrair) ⇒ Object
Instance Method Details
#divisao(dividir) ⇒ Object
62 63 64 65 66 67 |
# File 'lib/calculadora.rb', line 62 def divisao(dividir) valores = dividir.first divisao = (valores[0].to_f / valores[1].to_f.round(2)) return divisao end |
#indetificar_operadores(expressao) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/calculadora.rb', line 8 def indetificar_operadores (expressao) while @expressao.include?("(") interno = @expressao[/\(([^()]+)\)/, 1] break if interno.nil? resultado = Calculadora.new.calcular(interno) @expressao.sub!(/\([^()]+\)/, resultado.to_s) end while @expressao.include?("+") || @expressao.include?("-") || @expressao.include?("*") || @expressao.include?("/") somar = @expressao.scan(/(-?\d+(?:\.\d+)?)\+(-?\d+(?:\.\d+)?)/) subtrair = @expressao.scan(/(-?\d+(?:\.\d+)?)\-(-?\d+(?:\.\d+)?)/) multiplicar = @expressao.scan(/(-?\d+(?:\.\d+)?)\*(-?\d+(?:\.\d+)?)/) dividir = @expressao.scan(/(-?\d+(?:\.\d+)?)\/(-?\d+(?:\.\d+)?)/) if dividir != [] resultado = divisao(dividir) @expressao.sub!(/(-?\d+(?:\.\d+)?)\/(-?\d+(?:\.\d+)?)/, resultado.to_s) elsif multiplicar != [] resultado = multiplicacao(multiplicar) @expressao.sub!(/(-?\d+(?:\.\d+)?)\*(-?\d+(?:\.\d+)?)/, resultado.to_s) elsif subtrair != [] resultado = subtracao(subtrair) @expressao.sub!(/(-?\d+(?:\.\d+)?)\-(-?\d+(?:\.\d+)?)/, resultado.to_s) elsif somar != [] resultado = soma(somar) @expressao.sub!(/(-?\d+(?:\.\d+)?)\+(-?\d+(?:\.\d+)?)/, resultado.to_s) else break end end return @expressao end |
#multiplicacao(multiplicar) ⇒ Object
56 57 58 59 60 |
# File 'lib/calculadora.rb', line 56 def multiplicacao(multiplicar) valores = multiplicar.first multiplicacao = (valores[0].to_f * valores[1].to_f.round(2)) return multiplicacao end |
#pegar(expressao) ⇒ Object Also known as: calcular
3 4 5 6 |
# File 'lib/calculadora.rb', line 3 def pegar (expressao) @expressao = expressao indetificar_operadores(@expressao) end |
#soma(soma) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/calculadora.rb', line 41 def soma (soma) valores = soma.first soma = valores[0].to_f + valores[1].to_f.round(2) return soma end |
#subtracao(subtrair) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/calculadora.rb', line 49 def subtracao(subtrair) valores = subtrair.first subtracao = valores[0].to_f - valores[1].to_f.round(2) return subtracao end |