RMarK0

Untitled

Dec 7th, 2021
639
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import tkinter as tk
  2. from tkinter import messagebox
  3. import tkinter.ttk as ttk
  4.  
  5. def calcFirst():
  6.     print("Введите сумму денег")
  7.     money = int(sumField.get())
  8.     pocket = []  # карман в который будем класть разменянные деньги
  9.     for i in [500, 100, 10, 2]:
  10.         while (money - i) >= 0 and money != 1:
  11.             pocket.append(str(i))
  12.             money -= i
  13.     if not money:
  14.         tk.messagebox.showinfo(title="Вывод результата", message=('+'.join(pocket)))
  15.     else:
  16.         tk.messagebox.showinfo(title="Вывод результата", message="Разменять невозможно")
  17.  
  18. def calcSecond():
  19.     C = A[0]
  20.     for i in range(0, len(A)-1):
  21.         A[i] = A[i + 1]
  22.     A[3] = C
  23.     tk.messagebox.showinfo(title="Вывод результата", message=A)
  24.  
  25. def calcThird():
  26.     if (nField.get().upper().isupper()):
  27.         tk.messagebox.showerror(title="Ошибка", message="Вы написали буквы!")
  28.     else:
  29.         n = int(nField.get())
  30.         sum = 0
  31.         two = 2
  32.         for i in range(1, n+1):
  33.             if (i % 2 != 0):
  34.                 sum += 1 / two
  35.             else:
  36.                 sum -= 1 / two
  37.             two *= two
  38.         tk.messagebox.showinfo(title="Вывод результата", message=sum)
  39.  
  40. def calcFourth():
  41.     q = 9
  42.     u = q
  43.     D = [0]*9
  44.     D[0] = q
  45.     for i in range(1, 9):
  46.         q -= 1
  47.         u *= 10
  48.         u += q
  49.         D[i] = u
  50.     output = ""
  51.     output += "\n{:10d}{:10d}{:10d}".format(D[0], D[1], D[2])
  52.     output += "\n{:10d}{:10d}{:10d}".format(D[3], D[4], D[5])
  53.     output += "\n{:10d}{:10d}{:10d}".format(D[6], D[7], D[8])
  54.     tk.messagebox.showinfo(title="Вывод результата", message=output)
  55.  
  56. window = tk.Tk()
  57. window.geometry("630x300")
  58. window.title("Dmitry Rybalko")
  59.  
  60. nb = ttk.Notebook(window)
  61. nb.pack(fill="both", expand="yes")
  62.  
  63. tab1 = ttk.Frame(window)
  64. tab2 = ttk.Frame(window)
  65. tab3 = ttk.Frame(window)
  66. tab4 = ttk.Frame(window)
  67.  
  68. nb.add(tab1, text="Задание 1")
  69. nb.add(tab2, text="Задание 2")
  70. nb.add(tab3, text="Задание 3")
  71. nb.add(tab4, text="Задание 4")
  72.  
  73. tk.Label(text="Известна денежная сумма. Разменять её купюрами ", master=tab1).pack()
  74. tk.Label(text="500, 100, 10 и монетой 2 руб., если это возможно.", master=tab1).pack()
  75. tk.Label(text="Введите сумму:", master=tab1).pack()
  76. sumField = tk.Entry(master=tab1)
  77. sumField.pack()
  78.  
  79. button = tk.Button(
  80.     text="Рассчитать",
  81.     width=20,
  82.     height=3,
  83.     master=tab1,
  84.     command=calcFirst
  85. )
  86. button.pack()
  87.  
  88. A = [1, 2, 3, 4]
  89. tk.Label(text=A, master=tab2).pack()
  90. button2 = tk.Button(
  91.     text="Выполнить циклический сдвиг влево",
  92.     width=30,
  93.     height=3,
  94.     master=tab2,
  95.     command=calcSecond
  96. )
  97. button2.pack()
  98.  
  99. tk.Label(text="Вычислить (-1)^n+1*1/(2^n) при n = [1; n]", master=tab3).pack()
  100. tk.Label(text="Введите n:", master=tab3).pack()
  101. nField = tk.Entry(master=tab3)
  102. nField.pack()
  103.  
  104. button3 = tk.Button(
  105.     text="Рассчитать",
  106.     width=20,
  107.     height=3,
  108.     master=tab3,
  109.     command=calcThird
  110. )
  111. button3.pack()
  112.  
  113. tk.Label(text="Вывести на экран элементы следующей последовательности", master=tab4).pack()
  114. tk.Label(text="9; 98; 987; 9876; 98765; 987654; 9876543", master=tab4).pack()
  115.  
  116. button4 = tk.Button(
  117.     text="Рассчитать",
  118.     width=20,
  119.     height=3,
  120.     master=tab4,
  121.     command=calcFourth
  122. )
  123. button4.pack()
  124.  
  125. window.mainloop()
RAW Paste Data