Tuesday, July 20, 2021

tkinter Тооны машин хийх код

# Тооны машин хийх код 

# https://www.studytonight.com/tkinter/calculator-application-using-tkinter

from tkinter import *

win = Tk() # Үндсэн цонхыг үүсгэнэ
win.geometry("312x324")  # Цонхныхоо хэмжээг зааж өгнө 
win.resizable(00)  # Уг цонхны хэмжээ өөрчлөгдөхөөс сэргийлнэ
win.title("Тооны машин")

################### Функц эхлэх хэсэг ####################
# 'btn_click' Функц : 
# Энэ функц нь тооны машинд тоог оруулах бүрд  
# тасралтгүй шинэчлэгдэх юм 

def btn_click(item):
    global expression
    expression = expression + str(item)
    input_text.set(expression)

# 'bt_clear' Функц : Энэ нь оролтын талбар дахь 
# илэрхийллийг цэвэрлэх юм

def bt_clear(): 
    global expression 
    expression = "" 
    input_text.set("")
 
# 'bt_equal': Энэ метод нь оролтын 
# талбар дахь илэрхийлэлийг тооцоолно
 
def bt_equal():
    global expression
    result = str(eval(expression)) # 'eval': илэрхийллийн мөрийг үнэлэх функц юм.
    input_text.set(result)
    expression = ""
 
expression = ""
 
# 'StringVar()' : Оролтын талбар дахь утгыг авч хэрэглэх юм.
input_text = StringVar()
 
# Оролтын талбарын фрэйм үүсгэх хэсэг
input_frame = Frame(win, width=312, height=50, bd=0, highlightbackground="black", highlightcolor="black", highlightthickness=2)
input_frame.pack(side=TOP)
 
#Оролтын талбарын 'Frame' дотор талын тохиргоог хийх хэсэг
input_field = Entry(input_frame, font=('arial'18'bold'), textvariable=input_text, width=50, bg="#eee", bd=0, justify=RIGHT)
input_field.grid(row=0, column=0)
input_field.pack(ipady=10# 'ipady' нь оролтын талбарын дотор талаас өндрийн зай авах хэмжээг заана
 
#'Input_frame' доор байрлах товчлууруудын бусад 'Frame'-үүдээ бүтээе.
btns_frame = Frame(win, width=312, height=272.5, bg="grey")
btns_frame.pack()
 
# Эхний мөр
clear = Button(btns_frame, text = "C", fg = "black", width = 32, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: bt_clear()).grid(row = 0, column = 0, columnspan = 3, padx = 1, pady = 1)
divide = Button(btns_frame, text = "/", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click("/")).grid(row = 0, column = 3, padx = 1, pady = 1)
 
# Хоёр дахь мөр
seven = Button(btns_frame, text = "7", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(7)).grid(row = 1, column = 0, padx = 1, pady = 1)
eight = Button(btns_frame, text = "8", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(8)).grid(row = 1, column = 1, padx = 1, pady = 1)
nine = Button(btns_frame, text = "9", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(9)).grid(row = 1, column = 2, padx = 1, pady = 1)
multiply = Button(btns_frame, text = "*", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click("*")).grid(row = 1, column = 3, padx = 1, pady = 1)
 
# Гурав дахь мөр
four = Button(btns_frame, text = "4", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(4)).grid(row = 2, column = 0, padx = 1, pady = 1)
five = Button(btns_frame, text = "5", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(5)).grid(row = 2, column = 1, padx = 1, pady = 1)
six = Button(btns_frame, text = "6", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(6)).grid(row = 2, column = 2, padx = 1, pady = 1)
minus = Button(btns_frame, text = "-", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click("-")).grid(row = 2, column = 3, padx = 1, pady = 1)
 
# Дөрөв дэх мөр
one = Button(btns_frame, text = "1", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(1)).grid(row = 3, column = 0, padx = 1, pady = 1)
two = Button(btns_frame, text = "2", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(2)).grid(row = 3, column = 1, padx = 1, pady = 1)
three = Button(btns_frame, text = "3", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(3)).grid(row = 3, column = 2, padx = 1, pady = 1)
plus = Button(btns_frame, text = "+", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click("+")).grid(row = 3, column = 3, padx = 1, pady = 1)
 
# Дөрөв дэх мөр
zero = Button(btns_frame, text = "0", fg = "black", width = 21, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(0)).grid(row = 4, column = 0, columnspan = 2, padx = 1, pady = 1)
point = Button(btns_frame, text = ".", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click(".")).grid(row = 4, column = 2, padx = 1, pady = 1)
equals = Button(btns_frame, text = "=", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: bt_equal()).grid(row = 4, column = 3, padx = 1, pady = 1)

win.mainloop()



Tkinter, tk интерфэйс буюу Цонхны хэлбэрийн график горимд программчилна

Tkinter багц ("Tk interface") нь Tk GUI хэрэгслийн стандарт Python интерфэйс юм. Tk ба tkinter зэрэг нь Unix платформууд, мөн Windows системүүд дээр цонх хэлбэрийн график горимд программ бичихэд зориулагдана. (Tk нь Python-ийн хэсэг биш бөгөөд үүнийг ActiveState дээр хадгалдаг.)

CMD эсвэл Терминал орчинд командын мөрөөс "python -m tkinter" гэж бичин ажиллуулаж, энгийн Tk интерфэйсийг харуулсан цонхыг нээж болно. Ингэснээр tkinter нь компьютерт зөв суурилагдсан эсэхийг шалгана, ингэснээр Tcl / Tk-ийн аль хувилбарыг суулгасан болохыг харуулах юм.

Үүний энгийн "Сайн уу, Ертөнцөө" гэсэн үг бичих кодыг үзүүлье.


import tkinter as tk

class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        self.create_widgets()

    def create_widgets(self):
        self.hi_there = tk.Button(self)
        self.hi_there["text"] = "Сайн уу, Ертөнцөө\n(энд дар)"
        self.hi_there["command"] = self.say_hi
        self.hi_there.pack(side="top")

        self.quit = tk.Button(self, text="ГАРАХ", fg="red",
                              command=self.master.destroy)
        self.quit.pack(side="bottom")

    def say_hi(self):
        print("Мэнд, үр дүнтэй байна!")

root = tk.Tk()
app = Application(master=root)
app.mainloop()



lambda функцийн жишээнүүд

 


# 10 дээр а аргумент нэмэх ламбда функц
x = lambda a : a +10
print(x(5))

x = lambda a, b : a * b
print(x(56))

def myfunc(n):
    return lambda a : a * n

mydoubler = myfunc(2)
mythipler = myfunc(3)

print(mydoubler(11))
print(mythipler(11))

def newfunc(k):
    return lambda a : a - k

new1 = newfunc(7)
new2 = newfunc(3)

print(new1(11))
print(new2(11))

list_01 = list(map(lambda x : x.capitalize(), ['cat''dog''cow''sheep''goat''horse''camel']))
print(list_01)

even = lambda x : x % 2 == 0
print(list(filter(even, range(11))))

full_name = lambda first, last : f'Бүтэн нэр : {first.title()} {last.title()}'
print(full_name('банзрагч''цогбадрах'))

ids = ['id1''id2''id30''id3''id22''id100']
print(sorted(ids)) # Lexicographic sort
sorted_ids = sorted(ids, key=lambda x: int(x[2:])) # Integer sort
print(sorted_ids)

Sunday, July 18, 2021

Хоёр хэмжээст массивийн диагналийн элементүүдийг хэвлэнэ үү.

bod = """
Хоёр хэмжээст массивийн диагналийн элементүүдийг хэвлэнэ үү.
"""
print(bod)
massib_n_n = [[*range(3)],[*range(0,6,2)],[*range(1,6,2)]]
print(massib_n_n)
for n in range(3):
    print(massib_n_n[n][n])



Friday, July 16, 2021

Массивын элемент бүрийг хөрвүүлэх


bod = """ Бодлого 43. Бүхэл тоо А(n) массивын элемент бүрийг
хөрвүүлээд А(n) массивт хийнэ үү. Жишээ нь: 12, 75, 83, 2, 15 
гэснийг хөрвүүлээд 21, 57, 38, 2, 51 болгоно.
"""
print(bod)
a_n = [127583215]
print("Эхний лист:", a_n)
a_n1 = []
for item in a_n:
    char_item = str(item)
    num_urvuu = int(char_item[::-1])
    a_n1.append(num_urvuu)
a_n = a_n1
print("хөрвүүлсэн лист", a_n)



Wednesday, July 14, 2021

Автомат машины хариулт өгөх бодлого

 


bodlogo = """
Автомат машин Coca Cola, Sprite, Fanta гурван төрлийн 
ундаа борлуулдаг. Харгалзах үнэ тус бүр өгөгдсөн бол 
худалдан авагч ундаагаа сонгоод М мөнгөн дэвсгэрт хийхэд
аль болох их дэвсгэртээр хариулт өгөх тооцоолол хийнэ үү.
/10, 20, 50, 100, 500, 1000, 5000, 10000, 20000 гэсэн 
дэвсгэртүүд хэрэглэнэ./
"""
print(bodlogo)
colas = {'Coca cola'1860'Sprite'1700'Fanta'1800}
banknotes = [102050100500,
            100050001000020000]
cola = input("'Coca cola', 'Sprite', 'Fanta' гэж бичнэ үү :")
m = int(input('Мөнгөн дэвсгэртээ оруулна уу /5000-таас дээш/ :'))
hariult = m - colas[cola]
print(hariult)
hariu = {100000500001000050001000,
         500200100}
for note_num in hariu.keys():
    while note_num <= hariult and hariult - note_num >= 0:
        hariult = hariult - note_num
        hariu[note_num] += 1

print(hariu)
sum = 0
for note1, value1 in hariu.items():
    sum += note1 * value1
print(sum)




Monday, July 5, 2021

Программчлалын бодлогууд ба бодолтууд 16 - 23

 


print("Бодлого 16.")
num = 10
sum = 1
n = 2
while n <= num:
    multiple = 1
    for i in range(1, n+1):
        multiple *= i
        print(multiple, end=',')

    sum += multiple
    print('\r')
    print(sum)
    n += 1

print('\n')
print("Бодлого 17.")
num = 10
x = 5
sum = 0
n = 1
while n <= num:
    multiple = 1
    for i in range(12*(n-1)+1):
        multiple *= i
        print(multiple, end=',')

    sum += ((-1)**(n-1) * (x**(2*(n-1))))/multiple
    print('\r')
    print(sum)
    n += 1

print('\n')
print("Бодлого 18. ((2^2 + 1)/2^2)*((3^2 + 1)/3^2)* ... *((n^2 + 1)/n^2)")
num = 10
n = 2
multiple = 1
while n <= num:
    multiple *= (n**2 + 1)/n**2
    print(multiple)
    n += 1

print('\n')
print("Бодлого 19.")
import math
n = 40
cos_n = math.cos(n)
while n >= 1:
    n -= 1
    cos_n = math.cos(n + cos_n)
    print(n, cos_n)

print('\n')
print("Бодлого 20.")
x = 0.5
a = 0.1 
num = 10
n = 1
polynomial = (x + a)**3
while n <= num:
    print(polynomial)
    polynomial = (polynomial + a)**3
    n += 1

print('\n')
print("Бодлого 21. Өгөгдсөн тоо 1, 2, 5, 12, 29, 70, ... дараалалд харьяалагдах эсэхийг тогтоо")
data_num = 169 # int(input('Тоо өгнө үү :'))
a, b = 12
print(a)
bool = 'Худал'
while b <= data_num:
    print(b)
    a, b = b, 2 * b + a
    if b == data_num:
        bool = 'Үнэн' 
print('Харьяалагдах нь :', bool)

print('\n')
print("Бодлого 22. 20-иос их, 3-т хуваагдах бөгөөд, 2, 4, 8-аар төгссөн эхний 5-н тооны нийлбэрийг ол.")
n = 20
sum = 0
k = 0
while k < 5:
    n += 1
    if (n % 3 == 0and ((n % 10 == 2or (n % 10 == 4or (n % 10 == 8)):
        sum += n
        print(n, sum)
        k += 1

print('\n')
print("""Бодлого 23. Хоёр оронтой тоон дээр түүний урвуу
эрэмбээр бичсэн тоог нэмээд ямар нэгэн бүхэл тооны 
квадрат гардаг бүх 2 оронтой тоог хэвлэ. Хичнээн байна вэ?""")
n = 10
sum = 0
while n <= 99:
    char_num = str(n)
    mun = int(char_num[::-1])
    if (n + mun)**(1/2) == int((n + mun)**(1/2)):
        print(n)
        sum += 1
    n += 1
print(f"Нийт {sum} ширхэг байна.")    

Saturday, July 3, 2021

Олон гишүүнтийн нийлбэрийн бодлого ба бодолт


 



"""Бодлого 11."""
num = 21
sum = 0
n = 0
while n <= num:
    sum += 1/(2*n+1)*(-1)**n
    print(sum)
    n += 1

print('\n')
"""Бодлого 12."""
num = 10
multiple = 1
n = 1
while n <= num:
    multiple *= (2*n)/(2*n-1) * (2*n)/(2*n+1)
    print(multiple)
    n += 1

print('\n')
"""Бодлого 13."""
num = 10
a = 5
n = 1
multiple = a
diff = 1 / multiple
while n <= num:
    multiple *= (a + n)
    diff -= 1 / multiple
    print(diff)
    n += 1

print('\n')
"""Бодлого 14."""
num = 10
n = 1
sum = 1 / (1 * (3)**(1/2))
while n <= num:
    sum += 1 / ((2*n + 1) * 3**n) * (-1)**n
    print(sum)
    n += 1

Язгуур бүхий бодлогууд ба бодолт

 



"""Бодлого 7."""
num = 26
sqrt = 2**(1/2)
n = 0
while n <= num:
    sqrt = (2 + sqrt)**(1/2)
    print(sqrt)
    n += 1

print('\n')
"""Бодлого 8."""
num = 40
sqrt = 2**(1/2)
n = 2
while n <= num:
    sqrt = (n * sqrt)**(1/2)
    print(n, sqrt)
    n += 2

print('\n')
"""Бодлого 9."""
num = 10
sqrt = 2**(1/2)
n = 0
multip = sqrt / 2
while n <= num:
    sqrt = (2 - sqrt)**(1/2)
    multip *= sqrt / 2
    print(multip)
    n += 1

"""Бодлого 10."""
num = 10
sum = 0
n = 1
while n <= num:
    sum += ((n + 1)/n)**(1/(n + 1))
    print(sum)
    n += 1

Friday, July 2, 2021

Бодлого ба бодолтууд


bod4 = """Шатрын талбарт 2 нүдний координат өгөв. 
(1 - 8 хүртэл бүхэл тоогоор) Морь нэг нүүдлээр 
нөгөөдөө хүрэх үү?"""
print(bod4)
x1 = 5 # int(input('Морь байрлах X1 координат (1-8) :'))
y1 = 5 # int(input('Морь байрлах Y1 координат (1-8) :'))
x2 = 4 # int(input('Морь хүрэх X2 координат (1-8) :'))
y2 = 6 # int(input('Морь хүрэх Y2 координат (1-8) :')) 
print(x1, y1, x2, y2)
x_list = [-2, -11221, -1, -1]
y_list = [-1, -2, -2, -11221]
urdun = "Хүрэхгүй"
for i in range(8):
    x = x1 + x_list[i]
    y = y1 + y_list[i]
    if x2 == x and y2 == y:
        urdun = 'Хүрнэ'
    
print(urdun)
print('\n')

bod5 = """ A) А, В, С талуудтай хайрцаг Х, Ү талуудтай
цонхоор багтах уу? 
В) А, В, С талуудтай хайрцаг Х, Y, Z талуудтай хайрцагт 
багтах уу?"""
print(bod5)
A = 5 # int(input('А тал :'))
B = 4 # int(input('B тал :'))
C = 3 # int(input('C тал :'))
X = 5 # int(input('X тал :'))
Y = 5 # int(input('Y тал :'))
Z = 5 # int(input('Z тал :'))
hairtsag = [A, B, C]
tsonh = [X, Y]
hairtsag2 = [X, Y, Z]
print('A) бодлогын хариу:')
if (A <= X and B <= Y) or (B <= X and C <= Y) or (C <= X and A <= Y):
    print('Цонхоор Багтана'
else:
    print('Цонхоор багтахгүй')

hairtsag3 = []
hairtsag3.append(A <= X and B <= Y and C <= Z)
hairtsag3.append(B <= X and A <= Y and C <= Z)
hairtsag3.append(C <= X and B <= Y and A <= Z)
hairtsag3.append(C <= X and A <= Y and B <= Z)
hairtsag3.append(A <= X and C <= Y and B <= Z)
hairtsag3.append(B <= X and C <= Y and A <= Z)
print('B) бодлогын хариу:')
if any(hairtsag3):
    print('Хайрцагт багтана')
else:
    print('Хайрцагт багтахгүй')

print('\n')
bod6 = """Тус бүр нь өгсөн бүхэл N тооноос хэтрэхгүй
Пифагорын гуравтуудыг хэвлэ. Хичнээн байна. Жишээ нь:
тэгш өнцөгт гурвалжны тал болох 3 бүхэл тоог Пифагорын
гуравт гэнэ. Өөрөөр хэлбэл A^2+B^2=C^2 нөхцөл хангах 
A, B, C бүхэл тоо юм."""
print(bod6)
N = int(input('Бүхэл тоо өг :'))
for i in range(1, N+1):
    for j in range(1, N+1):
        for k in range(1, N+1):
            if (i**2 + j**2) == k**2:
                print(f'{i}^2 + {j}^2 = {k}^2')