Saturday, December 11, 2021

Flask вэбийн жишээ

 


# pip install flask
# flask вэб ажиллуулах

from flask import Flask, render_template, request, redirect
import json
import random
import string

def get_random_string(length=3):
    letters = string.ascii_lowercase
    result_str = ''.join(random.choice(letters) for i in range(length))
    return result_str

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def home():
    if request.method == 'POST':
        student_name = request.form['lastName']
        print(f'student_name = {student_name}')
        Student_Class = request.form['Class']
        print(f'Student_Class = {Student_Class}')
        student_dob = request.form['Student_DoB']
        print(f'Student_DoB = {student_dob}')
        grade = request.form['Grade']
        print(f'Student_Grade = {grade}')
        # суралцагч утга авах хэсэг
        student = {
            'index': get_random_string(),
            'lastName': student_name,
            'Class': Student_Class,
            'Student_Dob': student_dob,
            'Grade': grade
        }
        # print('student =', student)
        students = read_info()['Students']
        # print('students =', students)
        students.append(student)
        # print('students =', students)

        teacher_fname = request.form['firstname']
        print(f'teacher_fname = {teacher_fname}')
        teacher_lname = request.form['lastname']
        print(f'teacher_lname = {teacher_lname}')
        teacher_dob = request.form['teacher_DoB']
        print(f'teacher_dob = {teacher_dob}')
        degree = request.form['Degree']
        print(f'degree = {degree}')
        experience = request.form['Experience']
        print(f'experience = {experience}')
        # багшийн мэдээлэл авах хэсэг
        teacher = {
            'index': get_random_string(),
            'firstname': teacher_fname,
            'lastname': teacher_lname,
            'teacher_DoB': teacher_dob,
            'Degree': degree,
            'Experience': experience
        }
        # print('teacher =', teacher)
        teachers = read_info()['Teachers']
        # print('teachers =', teachers)
        teachers.append(teacher)
        # print('teachers =', teachers)    
       
        create_enrol(students, teachers)
        return redirect('/')
    else:
        return render_template('index.html')

def create_enrol(student_info, teacher_info):
    info = {
        'Students': student_info,
        'Teachers': teacher_info
    }    # тусдаа хоёр утгуудаа нэгтгэж байгаа хэсэг тэгээд нэг файлд Датабаз хийнэ

    with open('db.txt', 'w') as db:
        json.dump({'Information': info}, db)

def read_info():
    with open('db.txt') as db:
        data = json.load(db)
        # print(f'data = {data}')
        info_data = data['Information']
        return info_data

@app.route('/list', methods=['GET'])
def info_list():
    return render_template('list.html', information_list = read_info())

@app.route('/update/<index>', methods=['GET', 'POST'])
def info_update(index):
    print('before index = ', index)
    stu = get_info(index)
    print('before info = ', stu)
   
    if stu is None:
        return redirect('/not-found')

    if request.method == 'POST':
        print("request.form['lastName'] =", request.form['lastName'])
        print("request.form['Class'] =", request.form['Class'])
        print("request.form['Student_Dob'] =", request.form['Student_Dob'])      
        print("request.form['Grade'] =", request.form['Grade'])
        stu['lastName'] = request.form['lastName']
        stu['Class'] = request.form['Class']
        stu['Student_Dob'] = request.form['Student_Dob']
        stu['Grade'] = request.form['Grade']
        update_student(stu)
        return redirect('/list')
    else:
        return render_template('update.html', stu = stu)

@app.route('/update_t/<index>', methods=['GET', 'POST'])
def info_update_t(index):
    print('before index = ', index)
    teacher = get_info_t(index)
    print('before info = ', teacher)

    if teacher is None:
        return redirect('/not-found')

    if request.method == 'POST':
        print("request.form['lastname'] =", request.form['lastname'])
        print("request.form['firstname'] =", request.form['firstname'])
        print("request.form['teacher_DoB'] =", request.form['teacher_DoB'])
        print("request.form['Degree'] =", request.form['Degree'])
        print("request.form['lastname'] =", request.form['Experience'])
        teacher['lastname'] = request.form['lastname']
        teacher['firstname'] = request.form['firstname']
        teacher['teacher_DoB'] = request.form['teacher_DoB']
        teacher['Degree'] = request.form['Degree']
        teacher['Experience'] = request.form['Experience']
        update_teachers(teacher)
        return redirect('/list')
    else:
        return render_template('update_t.html', teacher = teacher)

def get_info(get_par):
    info_datas = read_info()
    students = info_datas['Students']
    index_s = []
    for item in students:
        if item['index'] == get_par:
            index_s.append(item)
   
    if len(index_s) > 0:
        return index_s[0]

def get_info_t(get_par):
    info_datas = read_info()
    teachers = info_datas['Teachers']
    index_s = []
    for item in teachers:
        if item['index'] == get_par:
            index_s.append(item)

    if len(index_s) > 0:
        return index_s[0]

def update_student(up_Stu):
    students = read_info()['Students']
    teachers = read_info()['Teachers']
    for item in students:
        if item['index'] == up_Stu['index']:
            item['lastName'] = up_Stu['lastName']
            item['Student_Dob'] = up_Stu['Student_Dob']
            item['Class'] = up_Stu['Class']
            item['Grade'] = up_Stu['Grade']
            break
    info = {
        'Students': students,
        'Teachers': teachers
    }
    with open('db.txt', 'w') as db:
        json.dump({'Information':info}, db)

def update_teachers(up_Teacher):
    students = read_info()['Students']
    teachers = read_info()['Teachers']
    for item in teachers:
        if item['index'] == up_Teacher['index']:
            item['firstname'] = up_Teacher['firstname']
            item['lastname'] = up_Teacher['lastname']
            item['teacher_DoB'] = up_Teacher['teacher_DoB']
            item['Degree'] = up_Teacher['Degree']
            item['Experience'] = up_Teacher['Experience']
            break
    info = {
        'Students': students,
        'Teachers': teachers
    }
    with open('db.txt', 'w') as db:
        json.dump({'Information':info}, db)

@app.route('/list/<index>', methods=['GET', 'POST']) # устгах хэсэг
def delete_info(index):
    info_datas = read_info()
    students = info_datas['Students']
    teachers = info_datas['Teachers']
   
    if index is None:
        return redirect('/not-found')

    # if request.method == 'POST':
    index_s = []
    for item in students:
        index_s.append(item['index'])
    index_t = []
    for item in teachers:
        index_t.append(item['index'])
    print(index_s)
    print(index_t)

    if index in index_s:
        student_index = index_s.index(index)
        students.pop(student_index)
    if index in index_t:
        teacher_index = index_t.index(index)
        teachers.pop(teacher_index)
    info = {
        'Students': students,
        'Teachers': teachers
    }
    with open('db.txt', 'w') as db:
        json.dump({'Information':info}, db)    
        return redirect('/list')
   

@app.route('/not-found')
def not_found():
    return 'Хоосон байна, буцна уу!!!'  

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=8080)

# тус flask код ажиллуулахын тулд хэд хэдэн файлийн систем байх болно.
#Тиймээс уг файлуудыг энд зип файлаар оруулья. Энд дарж татаж авна уу.

Excel файлийн нүднүүдэд утга оруулах


# consol дээр дараах код бичиж excel файлтай ажиллах боломжтой болно
# pip install openpyxl
# sample1.xlsx файл үүсгэж, уг файлаа хаасан байгаараай.


from openpyxl import Workbook
import random

book = Workbook()
sheet1 = book.active
num = 1000
n = 4
m = 1
for n1 in range(num):
    var02 = random.randint(0, 10)
    if m > 20:
        m = 1
        n += 1
    sheet1.cell(row=m, column=n, value=var02)
    m += 1

sheet1.cell(row=4, column=2, value="Hello World!")
sheet1['A2'] = 43
sheet1['B2'] = "Hi, Python"

book.save("sample1.xlsx")

# дээрх кодыг excel_write.py гэсэн нэрээр хадгалаад
# consol дээр
# d:/>python excel_write.py
# гэж ажлуулаад дараа нь sample1.xlsx файлаа нээж үзвэл дараах байдалтай харагдах болно.



Excel файлаас утга авах


#!/usr/bin/env python
# consol дээр дараах код бичиж excel файлтай ажиллах боломжтой болно
# pip install openpyxl
# sample.xlsx файл үүсгэж B1, B2, B3 нүдэнд юм бичсэн байх хэрэгтэй.

import openpyxl

book = openpyxl.load_workbook('sample.xlsx')

sheet1 = book.active

a1 = sheet1['B1'] #sample.xlsx файл доторх B1 нүдний утгыг авна
a2 = sheet1['B2'] #sample.xlsx файл доторх B2 нүдний утгыг авна
a3 = sheet1.cell(row=3, column=2) #B3 нүдний утгыг авна

print(a1.value)
print(a2.value)
print(a3.value)

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')



Wednesday, June 30, 2021

Секундтэй холбоотой бодлогуудын бодолт

 


# Бодлого 1. Х секунд өгөв. Хэдэн цаг, хэдэн минут, хэдэн секунд өнгөрснийг ол.
print('Бодлого 1. Х секунд өгөв. Хэдэн цаг, хэдэн минут, хэдэн секунд өнгөрснийг ол.')
sec = int(input('секундыг бичнэ үү :'))
hours = sec // (60 * 60)
minuts = sec // 60 % 60
secunds = sec % 60
print("цаг:мин:сек = ", hours,':',minuts,':',secunds)
print('\n')

# Бодлого 2. Х цаг Ү минут Z секунд өгөөд D секундийн дараа хэдэн цаг, минут, секунд заах вэ.
print('Бодлого 2. Х цаг Ү минут Z секунд өгөөд D секундийн дараа хэдэн цаг, минут, секунд заах вэ.')
X = int(input('Х цаг :'))
Y = int(input('Y минут :'))
Z = int(input('Z секунд :'))
D = int(input('D секундын хугацаа :'))

hours = D // (60 * 60)
minuts = D // 60 % 60
secunds = D % 60
Z1 = (Z + secunds) % 60 
Y1 = (Y + minuts + (Z + secunds) // 60) % 60
X1 = X + hours + (Y + minuts + (Z + secunds) // 60) // 60
print("{}:{}:{} цагт эхлэж, {} секунд өнгөрсөн бол {}:{}:{} цаг болсон байна.". format(X, Y, Z, D, X1, Y1, Z1))
print('\n')
# Бодлого 3. Ажилчин h1, m1, s1 хугацаанаас h2, m2, s2 хугацаа хүртэл ажиллав.
# (Үүнд: h, m, s нь харгалзан цаг, минут, секунд болно) Хэдэн цаг, минут, секунд өнгөрсөн бэ?
print('Бодлого 3. Ажилчин h1, m1, s1 хугацаанаас h2, m2, s2 хугацаа хүртэл ажиллав. (Үүнд: h, m, s нь харгалзан цаг, минут, секунд болно) Хэдэн цаг, минут, секунд өнгөрсөн бэ?')
from datetime import time
from datetime import timedelta
h1 = int(input('Эхэлсэн цаг :'))
m1 = int(input('Эхэлсэн минут :'))
s1 = int(input('Эхэлсэн секунд :'))
t1 = time(h1, m1, s1)
print('\n')
h2 = int(input('Дууссан цаг :'))
m2 = int(input('Дууссан минут :'))
s2 = int(input('Дууссан секунд :'))
t2 = time(h2, m2, s2)
t_1 = h1 * 3600 + m1 * 60 + s1
t_2 = h2 * 3600 + m2 * 60 + s2
t_3 = t_2 - t_1
t3 = time(t_3 // 3600, t_3 // 60 % 60, t_3 % 60)  
print(f'Ажилчин ажлаа {t1} цагт эхэлж, {t2} хүртэл ажиллав. {t3} цаг өнгөрсөн байна.')