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} цаг өнгөрсөн байна.')


Tuesday, June 29, 2021

Нийлбэр олох бодлогуудын бодолт

 


bod1 = "1+2+3+...+n тооны нийлбэрийг ол"
bod2 = "2+4+6+...+2*n нийлбэрийг ол"
bod3 = '1*2 + 2*3 + 3*4 + 4*5 + 5*6 + ... + n*(n+1) нийлбэрийг ол'

print(bod1)
n = 1000
sum1 = 0
for i in range(1, n+1):
    sum1 += i

print("1+2+3+...+n =", sum1)
print('\n')

print(bod2)
n = 1000
sum2 = 0
for i in range(2, n+12):
    sum2 += i

print("2+4+6+...+2*n =", sum2)
print('\n')

print(bod3)
n = 1000
sum3 = 0
for i in range(1, n+1):
    sum3 += i*(i + 1

print("1*2 + 2*3 + 3*4 + 4*5 + 5*6 + ... + n*(n+1) =", sum3)



фибоначийн дараалал ба тогтмол

 


# Fibonacci дараалал, Дараалсан хоёр гишүүний харьцаа нь Фибоначийн тоо юм. 
a, b = 11
while a < 100000:
    print(a)
    a, b = b, a+b
    print('Фибоначийн тоо = ', b/a)



Monday, June 28, 2021

100 хүртлэх анхны /энгийн/ тоонуудыг олох

 


# 100 хүртлэх анхны тоонууд
print(2)
k = 3
while k < 100:
    if all(k % i != 0 for i in range(2, k)):
        print(k)
    k += 2



Лист дэх тоонуудыг эрэмбэлэх давталтын ба метод арга

 


num = [4226,
        91513,
        35137]
print(num)
for i in range(9):
    for j in range(8-i):
        n, p = num[j+1], num[j]
        if p > n:
            num[j], num[j+1] =n, p

print(num)
print('\n')

# илүү хялбар буюу sort() метод ашиглах
num = [4226,
        91513,
        35137]
print(num)        
num.sort()
print(num)



Функц зохиох дасгал, бодолтууд

 


"""Дасгал ажил:
01. '1 - 20' хүртэлх тооны 2 зэргийг агуулсан List ийг 
                        А. хэвлэх үйлдэл хийнэ үү,
                        Б. буцаах функц бичнэ үү, 

02. Өгөгдсөн List -ээс 50 аас их хэдэн тоо байгааг 
                        А. хэвлэх үйлдэл хийнэ үү,
                        Б. буцаах функц бичнэ үү,
                                                   
    var_list = [10, '11', 55, '78', 120, '152', '2', 78, 49, '42']
    
03. Гараас өгсөн string ийн эхний болон сүүлийн 2 тэмдэгтийг залгуулж 
                        А. хэвлэх үйлдэл хийнэ үү,
                        Б. буцаах функц бичнэ үү, 
    (Жич:: Хэрвээ 2 оос бага тэмдэгт оруулбал хоосон буцаана.)

04. Гараас өгсөн string ийн уртыг 
                        А. хэвлэх үйлдэл хийнэ үү,
                        Б. буцаах функц бичнэ үү, 
    (Жич:: len() method ашиглахгүй)
    """
txt1 = """
01. '1 - 20' хүртэлх тооны 2 зэргийг агуулсан List ийг 
                        А. хэвлэх үйлдэл хийнэ үү,
                        Б. буцаах функц бичнэ үү,"""
print(txt1)
def SquareFunc():
    SqList = []
    for i in range(121):
        SqList +=[i ** 2]
    return SqList

ListSq = SquareFunc()
print("Kvadratuudiin list:", ListSq)

txt2 = """
02. Өгөгдсөн List -ээс 50 аас их хэдэн тоо байгааг А. хэвлэх үйлдэл хийнэ үү,
                                                   Б. буцаах функц бичнэ үү,
                                                   
    var_list = [10, '11', 55, '78', 120, '152', '2', 78, 49, '42']
"""
print(txt2)
var_list = [10'11'55'78'120'152''2'7849'42']
def List_50ih(Par):
    count = 0
    for item in Par:
        if type(item) == int:
            if item > 50:
                count += 1
    return count

numbers = List_50ih(var_list)
print("50-ias ih too : ", numbers)

txt3 = """
03. Гараас өгсөн string ийн эхний болон сүүлийн 2 тэмдэгтийг залгуулж 
                                А. хэвлэх үйлдэл хийнэ үү,
                                Б. буцаах функц бичнэ үү, 
    (Жич:: Хэрвээ 2 оос бага тэмдэгт оруулбал хоосон буцаана.)
"""
print(txt3)
def String2(par3):
    new_str = ""
    n = len(par3)
    if n > 2:
        new_str = par3[0] + par3[n-2:n]
    return new_str

str_input = input("bichber oruul:")
Str_1 = String2(str_input)
print("03-r bodlogo:", Str_1)

txt4 = """
04. Гараас өгсөн string ийн уртыг А. хэвлэх үйлдэл хийнэ үү,
                                  Б. буцаах функц бичнэ үү, 
    (Жич:: len() method ашиглахгүй)
"""
print(txt4)
def Str_Len(par4):
    k = 0
    for item in par4:
        k += 1
    return k

Str_4 = input("string oruul:")
Num = Str_Len(Str_4)
print("String-iin urt:", Num)        

Saturday, June 26, 2021

Программчлалын энгийн бодлогуудын бодолт

 


"""
1. Гараас өгсөн 3 тооны хамгийн ихийг буцаах функц бичнэ үү.
2. Өгөгдсөн List дэх тоонуудын нийлбэрийг буцаах функц бичнэ үү. 
3. Өгөгдсөн тооны factorial - ыг олох функц бичнэ үү.
4. Өгөгдсөн текстэд том үсэг болон жижиг үсэг тус тус хэд байгааг 
    олоод dictionary байдлаар үр дүнг буцаах функц бичнэ үү.
5. Өгөгдсөн List-ээс давхардсан элементүүдийг арилгасан элемент
тус бүр нэг удаа орсон шинэ  list буцаах функц бичнэ үү.
6. Өгөгдсөн тоо анхны тоо мөн эсэхийг шалгах функц бичнэ үү.
7. Өгөгдсөн тоо төгс тоо мөн эсэхийг шалгах функц бичнэ үү.
    Төгс тоо гэж өөрөөс нь бусад бүх хуваагчдынх нь нийлбэр өөртэй нь
    тэнцүү тоог хэлнэ.
    (жич: 6 гэсэн тооны өөрөөс нь бусад бүх хуваагч нар нь 1, 2, 3 юм.
    Тэдгээрийн нийлбэр нь 1 + 2 + 3 = 6)     
"""
print("1. Гараас өгсөн 3 тооны хамгийн ихийг буцаах функц бичнэ үү.")
def MaxFunc(a, b, c):
    a = int(a)
    b = int(b)
    c = int(c) 
    if a >= b and a >= c:
        return a
    elif b >= a and b >= c:
        return b
    elif c >= b and c >= a:
        return c 

a = input("а too =")
b = input("b too =")
c = input("c too =")
Max1 = MaxFunc(a, b, c)
print("uh ni =", Max1)

print("2. Өгөгдсөн List дэх тоонуудын нийлбэрийг буцаах функц бичнэ үү.")
myList = [85698]
def SumFunc(parL):
    sumaa = 0
    for item in parL:
        sumaa += item
    return sumaa 

var1 = SumFunc(myList)
print("niilber = ", var1)

print("3. Өгөгдсөн тооны factorial - ыг олох функц бичнэ үү.")
def myfactorial(num):
    Factor = 1
    for i in range(1, num+1):
        Factor *= i
    return Factor    

numb = int(input("too oruul ="))
FactNum = myfactorial(numb)
print("factorial=", FactNum)

a="""
4. Өгөгдсөн текстэд том үсэг болон жижиг үсэг тус тус хэд байгааг 
    олоод dictionary байдлаар үр дүнг буцаах функц бичнэ үү.
    """
print(a)

def uplower(text1):
    sumUp = 0
    sumLow = 0
    for s in text1:
        if s == s.upper():
            sumUp += 1
        elif s == s.lower():
            sumLow += 1
    uplow_dic = {'Upcase':sumUp, 'Lowercase':sumLow}
    return uplow_dic

txt = input("tom jijig useg bich:")
print(uplower(txt))

print("5.a. Өгөгдсөн List-ээс давхардсан элементүүдийг арилгасан элемент")

def clear_list(par3):
    n_set = set(par3)
    sec_List = list(n_set)
    return sec_List

new_List = [1"asd""ert"24"asd"2"seven""seven"]
s_List = clear_list(new_List)
print("ehnii List:", new_List)
print("daraagiin List:", s_List)

txt = """
5.b. Өгөгдсөн List-ээс давхардсан элементүүдийг арилгасан элемент
тус бүр нэг удаа орсон шинэ  list буцаах функц бичнэ үү.
"""
print(txt)
def duplicat_clear(par4):
    clear_list =[]
    for i in range(0, len(par4)):
        for j in range(0, i+1):
            if i != j and par4[i] == par4[j]:
                clear_list.append(par4[i])
    for k in clear_list:            
        par4.remove(k)
    return par4

list_dup = [1"asd""ert"24"asd"2"seven""seven"]
print("ehnii List:", list_dup)

nonDu_list = duplicat_clear(list_dup)
print("ustgasan list:", nonDu_list)

print("6. Өгөгдсөн тоо анхны тоо мөн эсэхийг шалгах функц бичнэ үү.")
def firstNum(par5):
    num = int(par5)
    cre = True
    for i in range(2, num):
        if num % i == 0:
            print("ankhnii too:", i)
            cre = False
    if cre :
        firstN = "ankhnii too mun"
    else:
        firstN = "ankhnii too bish"
    return firstN

number1 = input("anhnii too mun eseh =")
out1 = firstNum(number1)
print(out1)

p = """
7. Өгөгдсөн тоо төгс тоо мөн эсэхийг шалгах функц бичнэ үү.
    Төгс тоо гэж өөрөөс нь бусад бүх хуваагчдынх нь нийлбэр өөртэй нь
    тэнцүү тоог хэлнэ.
    (жич: 6 гэсэн тооны өөрөөс нь бусад бүх хуваагч нар нь 1, 2, 3 юм.
    Тэдгээрийн нийлбэр нь 1 + 2 + 3 = 6)     
"""
print(p)
def perfectNumber(par7):
    num = int(par7)
    listNum = []
    sum7 = 0
    for i in range(1, num):
        if num % i == 0:
            listNum += [i]
    for itm in listNum:
        sum7 += itm
    if num == sum7:
        perfectNum = "Tugs too mun"
    else:
        perfectNum = "Tugs too bish"
    return perfectNum

number7 = input("tugs too mun eseh =")
list_of_Func = perfectNumber(number7)
print("tugs too: ", list_of_Func)

Тоог үгээр солих

# 03. 1-50 хүртэлх тоон цувааг эхнээс нь хэвлэнэ. Ингэхдээ 5-д хуваагддаг 
# тоонуудын оронд 'FIVE', 3-д хуваагддаг тоонуудын оронд 'THREE' гэж бичнэ.
print("1-50 хүртэлх тоон цувааг эхнээс нь хэвлэнэ. Ингэхдээ 5-д хуваагддаг 
тоонуудын оронд 'FIVE', 3-д хуваагддаг тоонуудын оронд 'THREE' гэж сольж бичнэ.")
for i in range(151):
    print(i, end=' ')

print("\r")

for i in range(151):
    if i % 5 == 0:
        print("FIVE", end=' ')
    elif i % 3 ==0:
        print("THREE", end=' ')
    else:
        print(i, end=' ')            

LOOP ашиглан, тоонуудыг гурвалжин хэлбэрээр хэвлэх

 # Loop ашиглан Гурвалжин хэлбэрээр тоонуудыг хэвлэнэ үү!

print("01. Loop ашиглаж, тоог гурвалжин хэлбэрт, нэмэгдүүлэн хэвлэх")
for i in range(06):
    for j in range(1, i + 1):
        print(i, end=' ')
    print("\r")

print('\n')
print("02. Дараалсан тоонуудыг гурвалжин хэлбэрт хэвлэх")
for i in range(06):
    for j in range(1, i + 1):
        print(j, end=' ')
    print("\r")



Палиндром мөн эсэхийг шалгах функ

 Бодлого:


print("""
Гараас өгсөн string хувьсагч palindrome мөн эсэхийг буцаах функц 
бичнэ үү!
    palindrome гэж ард урдаасаа адилхан уншигдах хувьсагчийг хэлнэ. 
    palindrome мөн эсэхийг шалгахдаа давталт ашиглана.
    Жишээ нь:: aDa, 151 гэх мэт
""")
def check_palindrome(var):
    l = len(var) // 2
    checker = True
    for n in range(l):
        if var[n] != var[-(n +1)]:
            checker = False
    return checker

var_str = '12345654321' # input('Палиндром эсэхийг шалгах хувьсагч оруул ::')
result_bool = check_palindrome(var_str)
print(f'{var_str} нь палиндром мөн гэдэг нь {result_bool} байна.'
print('\r')

# дээрх бодлогыг илүү хялбараар бодох арга

var1 = input('Тоо эсвэл үг оруул :')

def palind(var2):
return var2 == var2[::-1]

print('Палиндром мөн :', palind(var1))


Лист дэх тооноос ихийг буцаах функц

 Бодлого:

print("""
Өгөгдсөн list дэх тоонуудын хамгийн их тоог буцаах функц бичнэ үү!
(List-д тоо байна уу шалгана, байвал хамгийн их тоог буцаах функц 
бичнэ үү.)
""")
def list_max(var):
    max_num = 0
    for item in var:
        if (type(item) is int) or (type(item) is float):
            if item >= max_num:
                max_num = item
    return max_num

var_list1 = ['12'201021.4'57'21525'2'8.5'5'89.1]
print('var_list1 = ', var_list1)
var_max = list_max(var_list1)
print(f'"var_list1" лист дэх тоонуудын хамгийн их нь {var_max} -тай тэнцүү')
print('\r')

Лист дэх тоонуудын үржвэрийг буцаах функц

 Бодлого: 

print("""
Өгөгдсөн list дэх тоонуудын үржвэрийг буцаах функц бичнэ үү!
(List-д тоо байна уу шалгана, байвал бүх тооны үржвэрийг буцаах
функц бичнэ)
""")
def num_multiplication(var):
    multiplication = 1
    for item in var:
        if (type(item) is int) or (type(item) is float):
            multiplication *= item
    return multiplication

var_list = ['12''Hello'10'Python'21.252'2''5']
print('var_list = ', var_list)
var_num = num_multiplication(var_list)
print(f'"var_list" лист дэх тоонуудын үржвэр нь {var_num} -тай тэнцүү')
print('\r')

Гараас өгсөн 3 тооны хамгийн багыг буцаах функц бичнэ үү!

 Гараас өгсөн 3-н тооны хамгийн багыг буцаах функц бичих бодлогын бодолт:

print("Гараас өгсөн 3 тооны хамгийн багагийг буцаах функц бичнэ үү!")
def min_func(num1, num2, num3):
    if num1 <= num2 and num1 <= num3:
        return num1
    elif num2 <= num1 and num2 <= num3:
        return num2
    else:
        return num3

a = 45 # int(input('a = '))
b = 34 # int(input('b = '))
c = 67 # int(input('c = '))
min_num = min_func(a, b, c)
print(f'{a}{b}{c} гурван тооны хамгийн бага нь {min_num} байна.')
print('\r')




Пайтон дээр QR код хийх

# cmd.exe 
# pip install pyqrcode
# pip install pypng

import pyqrcode
import png
from pyqrcode import QRCode

QRstring = "http://esurgalt.itpd.mn" 
url = pyqrcode.create(QRstring)
url.png('d:\\qr.png', scale = 8



Тооны жагсаалт, Пайтон дээр

row = 6
for i in range(0, row):
    for j in range(row - 1, i, -1):
        print(j, '', end='')
    for l in range(i):
        print('    ', end=''# 4-н хоосон зай авсан
    for k in range(i + 1, row):
        print(k, '', end='')
    print('\n')


Sunday, June 20, 2021

Пайтон хэлний арифметик үйлдлүүд

 txt = """ Пайтон хэлний арифметик үйлдлүүд:
+------+------------+-----------------+
|Үйлдэл|Үйлдлийн нэр|  Жишээ          |
+------+------------+-----------------+
|  +   |Нэмэх үйлдэл|  15 + 21 --> 63 |
+------+------------+-----------------+
|  -   |Хасах үйлдэл|  21 - 15 --> 6  |
+------+------------+-----------------+
|  *   |Үржих үйлдэл|  13 * 10 --> 130|
+------+------------+-----------------+
|  /   |Хуваах      |  13 / 10 --> 1.3|
+------+------------+-----------------+
|  //  |Бүхэл хуваах|  13 // 10 --> 1 |
+------+------------+-----------------+
|  %   |Модуль      |  13 % 10 --> 3  |
+------+------------+-----------------+
|  **  |Зэрэг       |  3 ** 5 --> 243 |
+------+------------+-----------------+
"""
print(txt)
# Нэмэх үйлдэл
num1 = 15
num2 = 21
print("num1 =", num1,"; num2 =", num2, "; num1 + num2 =", num1 + num2)
# Хасах үйлдэл
num1 = 21
num2 = 15
print("num1 =", num1,"; num2 =", num2, "; num1 - num2 =", num1 - num2)
# Үржих үйлдэл
num1 = 13
num2 = 10
print("num1 =", num1,"; num2 =", num2, "; num1 * num2 =", num1 * num2)
# Хуваах үйлдэл
num1 = 13
num2 = 10
print("num1 =", num1,"; num2 =", num2, "; num1 / num2 =", num1 / num2)
# Бүхлээр хуваах үйлдэл буюу хуваагаад бүхэл хэсгийг буцаах
num1 = 13
num2 = 10
print("num1 =", num1,"; num2 =", num2, "; num1 // num2 =", num1 // num2)
# Модуль буюу хуваагаад үлдэгдлийг буцаах
num1 = 13
num2 = 10
print("num1 =", num1,"; num2 =", num2, "; num1 % num2 =", num1 % num2)
#  Зэрэг дэвшүүлэх үйлдэл
num1 = 3
num2 = 5
print("num1 =", num1,"; num2 =", num2, "; num1 ** num2 =", num1 ** num2)

Thursday, June 17, 2021

Үсгийн код

 print('Кирилл үсгийн chr кодыг While ашиглаад бичвэл')


n = ord('А')

while n <= ord('ү'):

    print(chr(n), ' = ', n)

    n += 1