Advertisement
Guest User

Untitled

a guest
Nov 17th, 2018
640
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. ''' Напишите программу, которая вычисляет значение арифметического выражения, записанного в виде символьной строки. В выражении используются целые числа, знаки арифметических операций, круглые скобки и вызовы функций ( sin , cos , abs , sqrt ). Результат операции деления – вещественное число.
  2.  
  3. Входные данные
  4. На вход программы поступает символьная строка, содержащая правильную запись арифметического выражения.
  5.  
  6. Выходные данные
  7. Программа должна вывести значение переданного ей выражения как вещественное число. При выводе результата нужно оставить 3 знака в дробной части числа.
  8.  
  9. Примеры
  10. входные данные
  11. 12+cos(sqrt(12+sin(2)))
  12. выходные данные
  13. 11.100 '''
  14.  
  15. '''for x in a[::-1]:
  16. # слева строка
  17. 'sqrt' if 'cos':
  18. cos(int('2'))
  19. # слева список
  20. [-1] if 'cos':
  21. cos(int('2'))'''
  22.  
  23. import math
  24.  
  25. def del_empty_str(strings)
  26. return [x for x in strings if x]
  27.  
  28. def function (f, n): #f(n)
  29. if f=='sin':
  30. return(math.sin(n))
  31. if f=='cos':
  32. return(math.cos(n))
  33. if f=='sqrt':
  34. return(math.sqrt(n))
  35. if f=='abs':
  36. return(math.abs(n))
  37.  
  38.  
  39. a = str(input()).replace('(', '.').replace(')', '.').split('.')
  40.  
  41. print(a)
  42. # a = ['12+c', 's', '', '12s', '2']
  43.  
  44. b = ['+','-','*','/']
  45.  
  46.  
  47. for i, x in enumerate(a):
  48. for j in b:
  49. if j in x:
  50. a[i]=a[i].split(j) # ['12', 'cos'] -> ['12', 'cos', '+']
  51. a[i].insert(1, j)
  52. print(a)
  53. # [['12', '+','cos'], 'sqrt', ['12', '+', 'cos'], '2', '', '', '']
  54.  
  55. a = del_empty_str(a)
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62. #for x in a:
  63. # for i in x:
  64. # if i in ('+','-','*','/'):
  65. # for j in a:
  66. # a=a.split(i)
  67. # b.append(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement