Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. import java.util.Map;
  2.  
  3.  
  4. public class Calculation {
  5. public Calculation(){
  6.  
  7. }
  8. //вычисляем приравнивание
  9. static void parseForEquating(String value, Map<String, String> treeMap) {
  10. String stringForEquating = treeMap.get(value);//=1A
  11. String valueOfCell = treeMap.get(value);//=1A
  12. String[] ValueOfEquating = stringForEquating.split("=");//[0] = 1A
  13. String keyForEquating = value;//1B
  14. String valueForKey = treeMap.get(ValueOfEquating[1]);//1
  15. treeMap.put(keyForEquating, valueForKey);
  16. }
  17.  
  18. //вычисляем сложение
  19. static void addition(String value, Map<String, String> treeMap, String[] formula) {
  20.  
  21. String[] s = formula[1].split("\\+"); // убираем знак +
  22. int result = 0;
  23. for (int i = 0; i < s.length; i++) {
  24. String f = treeMap.get(s[i]);//проверяем если в ячейке лежит ссылка
  25. char firstChar = f.charAt(0);
  26. if(firstChar == '=') {
  27. parseForEquating(s[i], treeMap); // выполняем ссылку
  28. }
  29. int x = Integer.parseInt(treeMap.get(s[i]));
  30.  
  31. result = result + x;
  32. }
  33. treeMap.put(value, String.valueOf(result));
  34. }
  35.  
  36.  
  37. //вычисляем умножение
  38. static void multiple(String value, Map<String, String> treeMap, String[] formula){
  39.  
  40. String[] s = formula[1].split("\\*"); // убираем знак +
  41. int result = 1;
  42. for (int i = 0; i < s.length; i++) {
  43. String f = treeMap.get(s[i]);//проверяем если в ячейке лежит ссылка
  44. char firstChar = f.charAt(0);
  45. if(firstChar == '=') {
  46. parseForEquating(s[i], treeMap); // выполняем ссылку
  47. }
  48. int x = Integer.parseInt(treeMap.get(s[i]));
  49.  
  50. result = result * x;
  51. }
  52. treeMap.put(value, String.valueOf(result));
  53. }
  54.  
  55. //вычисляем деление
  56. static void division(String value, Map<String, String> treeMap, String[] formula) {
  57.  
  58. String[] s = formula[1].split("/"); // убираем знак +
  59.  
  60. for (int i = 0; i < (s.length - 1); i++) {
  61. String f = treeMap.get(s[i]);//проверяем если в ячейке лежит ссылка
  62. char firstChar = f.charAt(0); //lenght 3 [0][1][2]
  63. if(firstChar == '=') {
  64. parseForEquating(s[i], treeMap); // выполняем ссылку
  65. }
  66. }
  67.  
  68. int result = Integer.parseInt(treeMap.get(s[0]));
  69. for (int i = 1; i < (s.length); i++) {
  70. result = result / Integer.parseInt(treeMap.get(s[i]));
  71. }
  72. treeMap.put(value, String.valueOf(result));
  73. }
  74.  
  75. static void subtraction(String value, Map<String, String> treeMap, String[] formula) {
  76.  
  77. String[] s = formula[1].split("-"); // убираем знак +
  78.  
  79. for (int i = 0; i < (s.length - 1); i++) {
  80. String f = treeMap.get(s[i]);//проверяем если в ячейке лежит ссылка
  81. char firstChar = f.charAt(0);
  82. if(firstChar == '=') {
  83. parseForEquating(s[i], treeMap); // выполняем ссылку
  84. }
  85. }
  86.  
  87. int result = Integer.parseInt(treeMap.get(s[0]));
  88. for (int i = 1; i < (s.length); i++) {
  89. result = result - Integer.parseInt(treeMap.get(s[i]));
  90. }
  91. treeMap.put(value, String.valueOf(result));
  92. }
  93. }
  94.  
  95.  
  96. // 1 2 3 =1c+1b+1a =1d =1a+2a =1a*1b*2b =2c*2b*2a =2d =3a+2b =3b+2c =2d/1d
  97. // =2b+3c 5 10 =1c/1b 15 =2a+1b 50 =2c-2b-2a =2a*2b*2c*2d 10 =3a/2c =3c+3b+3a
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement