Advertisement
edward4324

Laba5

Jun 8th, 2021
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.45 KB | None | 0 0
  1. import sys
  2. import math as m
  3. from tkinter import *
  4.  
  5. types = [("cos", 1), ("sin", 2), ("tan", 3), ("ctg", 4)]
  6. GR = [("Rad", 1), ("Grad", 2)]
  7.  
  8. class windowCalc:
  9.     def __init__(self):
  10.         self.window = Tk()
  11.         self.window.title("Calculator example")
  12.         self.row = 0
  13.  
  14.         self.entryValue = StringVar()
  15.         self.entryValue.set("")        
  16.         self.inputType = IntVar()
  17.         self.funType = IntVar()
  18.         self.result = StringVar()
  19.         self.entryValue.set("")
  20.  
  21.         Label(text = "Введите число:")\
  22.             .grid(row = self.row, column = 0, sticky = "w")
  23.         Entry(text = 0, textvariable = self.entryValue)\
  24.             .grid(row = self.row, column = 1, sticky = "w")
  25.         self.row +=1
  26.  
  27.         i = 0
  28.         for type, value_type in GR:
  29.             Radiobutton(text = type, value = value_type, variable = self.inputType)\
  30.                 .grid(row = self.row, column = i)
  31.             i+=1
  32.         self.row +=1
  33.  
  34.         i = 0
  35.         for fun_type, fun_value_type in types:
  36.             Radiobutton(text = fun_type, value = fun_value_type, variable = self.funType)\
  37.                 .grid(row = self.row, column = i)  
  38.             i+=1
  39.         self.row +=1
  40.  
  41.         Button(text = "Решить", command = self.eval)\
  42.             .grid(row = self.row)
  43.         self.row += 1
  44.  
  45.         Label(text = "Результат = ")\
  46.             .grid(row = self.row, column = 0)
  47.         Label(textvariable = self.result)\
  48.             .grid(row = self.row, column = 1)
  49.         self.row+=1
  50.  
  51.     def eval(self):
  52.         value:float = self.getValue()
  53.         type = self.funType.get()
  54.         if type == 1:
  55.             self.result.set(m.cos(value))
  56.         elif type == 2:
  57.             self.result.set(m.sin(value))
  58.         elif type == 3:
  59.             self.result.set(m.tan(value))
  60.         elif type == 4:
  61.               if (m.tan(value) != 0.0):
  62.                   self.result.set(m.tan(value) ** -1)
  63.               else:
  64.                   self.result.set(m.inf)
  65.  
  66.     def getValue(self) -> float:
  67.         if self.entryValue.get() == '':
  68.             return 0
  69.         elif self.inputType.get() == 2:
  70.             return float(m.radians(float(self.entryValue.get())))
  71.         else:
  72.             return float(self.entryValue.get())
  73.     def draw(self):
  74.         self.window.mainloop()
  75.  
  76. def main(sysv):
  77.     mainWindow = windowCalc()
  78.     mainWindow.draw()
  79. if __name__ == "__main__":
  80.     main(sys.argv)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement