Skip to content

SongToSoft/Calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

Calculator

Console calculator based on lexical expression parsing.

Calculator supports operations:

  1. binary: +, -, *, /, (, ), ^(degree must be in brackets)
  2. unary: +, -

Run

Go to directory and write smt like:

ruby Calculator.rb "(38+2*14-(21 / 7 +(23 - 1))*(4) + (((11 * 14*100 - 1 - (3) * 11-3))))^(2)"
234978241.0

Use -i for show all operation:

ruby Calculator.rb "(3*(11)^(2)-3)" -i
(3*(11)^(2)-3)
["(", "3", "*", "(", "11", ")", "^", "(", "2", ")", "-", "3", ")"]
Brackets values: 3*(11)^(2)-3
3*(11)^(2)-3
["3", "*", "(", "11", ")", "^", "(", "2", ")", "-", "3"]
Brackets values: 11
11
["11"]
Brackets values: 2
2
["2"]
11 ^ 2 = 121.0
["3", "*", 121.0, "-", "3"]
3 * 121.0 = 363.0
[363.0, "-", "3"]
363.0 - 3 = 360.0
360.0

Calculator works with floating point numbers:

ruby Calculator.rb "-4.123*(-1)/(-10*(-2.1)^(-2))"
-1.818243

About

Console calculator based on lexical expression parsing

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published