FIZIKADAN MASALALAR YECHISHDA PYTHON TILIDAN FOYDALANISH
METODIKASI B. A. Olimov
Q.Niyosiy nomidaga O'Zpfiti, f. - m. f. n v.v.professor https://doi.org/10.5281/zenodo.10990574
Umumo'rta ta'limni axborotlashtirish o'quvchilarning kompyuter savodxonligini shakllantirish va o'quv jarayoni samaradorligini oshirish bilan bir vaqtda yanada murakkablashib borayotgan vazifalarini hal etishga qaratilishi lozim. Mana shu vazifalardan biri raqamli texnologiyalar, ya'ni boshqa fanlar bilan birgalikda olib borishdir.
Quyida keltirilgan fizik masalani yechishda tandem usulda ya'ni fizika va raqamli texnoloqiyalardan foydanilgan. Umum o'rta maktablarida Python dasturlash tilini o'rganishga nazariy va amaliy mashg'ulotlarga ham keraklicha vaqt ajratilgan[1,2]. Keltirilgan masalani tushunarli bo'lishi va umum o'rta ta'lim dasturlaridan chetda chiqmagan holda ifodalashga harakat qildik.
1. Massasi m = 100g va balandligi h = 10 cm bo'lgan silindr shaklidagi yupqa stakan ikkinchi bir idishning silliq tubiga ag'darib qo'yildi va shundan so'ng ikkinchi idishga asta sekin H = 20 cm balandlikkacha suv quyildi. Stakan suza boshlashi uchun suvni necha gradusgacha qizitish kerak. Stakanning diametri d=4 cm. Butun tizimning boshlang'ich temperaturasi T = 300 K, atmosfera bosimi po = 720 mm.sim.ust.ga teng.
Yechish:
Stakanga, u suza boshlagan paytdagi, ta'sir etuvchi kuch Fi = \Po + pg (H - h)]S (1) nd 2
bu yerda S = , po - atmosfera bosimi, p - suvning zichligi, S - stakan tubining yuzasi,
d - stakanning diametri; mg - stakanga ta'sir etuvchi og'irlik kuchi (stakandagi havo massasini hisobga olmasa ham bo'ladi);
stakandagi havoning bosim kuchi F2 = piS (2)
Stakan suzishi uchun quyidagi shart bajarilishi kerak: F2 >Fi +mg.
Vertikal o'qqa proyeksiyani muvozanatlik sharti: Fi -F2 + mg = 0 (3)
P P
Gaz o'zgarmas hajmda qizitiladi, shuning uchun = 7F
T Ti
T + AT
bu yerda Ti =T + AT, bundan p = po —+— (4)
ni olamiz. Bunga kuch va bosimni (1), (2) va (4) lardagi ifodalarini qo'yib quyidagini
olamiz:
[po +pg (H - h)] S - poT+ATS + mg = 0. (5) nd2
S = ekanigini inobatga olib, (5) dan AT uchun quyidagi ifodani olamiz:
p(h - h
AT = T ■ g n
P
Bunga son qiymatlarni qo'yamiz:
AT = 300 • 9,8
[l000(0,2 - 0,1)
+
4 • 0,1m 1 3,14 • 0,042J
= 5,5tf.
13600 • 9,8 • 0.72
Javob: AT = 5K
Bu Python tili yordamida yozilgan, tkinter kutubxonasi GUI (grafik foydalanuvchi interfeysi) yaratish uchun ishlatilgan. Dastur bir silindr shaklidagi ikki stakan orasidagi suvning qizitish temperaturasi ni hisoblash uchun yaratilgan.
Funksiyalar:
solution(): Bu asosiy funksiya dasturning barcha interfeysini yaratadi va dasturni ishga tushiradi.
count_result(): Bu funksiya kiritilgan qiymatlarni o'qib, ularni to'g'ri ko'rish uchun sinovlaydi. Agar kiritilgan qiymatlar to'g'ri bo'lsa, stakanning qizitish temperaturasini hisoblaydi va natijani ekranga chiqaradi. Agar kiritilgan qiymatlar noto'g'ri bo'lsa, foydalanuvchiga xabar beradi.
Dastur quyidagi funksiyalar va komponentlardan iborat:
Tk(): Asosiy oyna obyekti.
Label(): Matn oynasini yaratish uchun ishlatiladi.
Entry(): Matn kiritish maydonchasi.
Button(): Bosqich tugmasi.
Separator(): Ajratuvchi.
root.mainloop(): Dastur boshlash uchun ishlatiladi.
Dastur quyidagi qadam-lar bilan amalga oshiriladi:
Foydalanuvchi kiritilgan qiymatlarni kiritadi.
"Natijani ko'rish" tugmasini bosing yoki "Enter" tugmasini bosing.
Kiritilgan qiymatlar to'g'ri bo'lsa, dastur natijani hisoblaydi va uni ekranga chiqaradi.
Agar kiritilgan qiymatlar noto'g'ri bo'lsa, dastur foydalanuvchiga xabar beradi.
from tkinter import *
from tkinter.ttk import Separator
def solution():
"""Dasturning asosiy funksiyasi. Bunda m, h, H, d va T qiymatlar kiritiladi. Qo'yilgan masala yuzasidan hisob kitoblar amalga oshiriladi."""
def
""""Asosiy hisoblash uchun try:
massa = int(m.get())
high = int(h.get())
High = int(H.get())
diameter = int(d.get())
Temp =
result_1 = 1000 * (High - high) + (4 * massa) / (3.14
result_2 = (Temp * 9.8) * (result_1 / (13600
result['text'] = f'Stakanni {'{:.2f}'.format(result_2)} K
ga
count_result(): funksiya"""
0.001 0.01 0.01 0.01 int(T.get()) (diameter ** 2)) 9.8 * 0.72)) qizitish kerak."
except
ValueError:
*
*
*
*
*
*
result['text'] = f'Qiymatlarni kiritishda hatolik bor."
root = Tk() root.geometry("820x560")
root.title("Program 1.") root.configure(bg="#FFFFCC")
label_1 = Label(root,
text="Massasi m (g) va balandligi h (cm) bo'lgan silindr shaklidagi yupqa stakan \n" "ikkinchi bir idishning silliq tubiga ag'darib qo'yildi va shundan so'ng \n" "ikkinchi idishga asta sekin H (em) balandlikkacha suv quyildi. Stakan suza \n" "boshlashi uchun suvni necha gradusgacha qizitish kerak. Stakanning diametri \n" "d (cm). Butun tizimning boshlang'ich temperaturasi T (K), atmosfera bosimi \n" "po = 720 mm.sim.ust.ga teng.")
label_1.config(bg="#FFFFCC", font=('Helvetica', 14)) label_1.pack()
separator = Separator(root, orient='horizontal') separator.pack(fill='x')
label_s1 = Label(root, text="Birinchi stakanning massasi m(g)", font=('Helvetica', 14), bg="#FFFFCC") label_s1.pack()
m = Entry(root, font=("Helvetica", 14))
m.pack(padx=7, pady=5)
label_s2 = Label(root, text="Birinchi stakanning balandligi h(cm)", font=('Helvetica', 14), bg="#FFFFCC") label_s2.pack()
h = Entry(root, font=("Helvetica", 14))
h.pack(padx=7, pady=5)
label_s3 = Label(root, text="Ikkinchi stakandagi suv balandligi H(cm)", font=('Helvetica', 14), bg="#FFFFCC")
label_s3.pack ()
H = Entry(root, font=("Helvetica", 14))
H.pack (padx=7, pady=5)
label_s4 = Label(root, text="Stakanning diametri d(cm)", font=('Helvetica', 14), bg="#FFFFCC") label_s4.pack()
d = Entry(root, font=("Helvetica", 14))
d.pack(padx=7, pady=5)
label_s5 = Label(root, text="Tizimning dastlabki temperaturasi T(K)", font=('Helvetica', 14), bg="#FFFFCC")
label_s5.pack()
T = Entry(root, font=("Helvetica", 14))
T.pack(padx=7, pady=5)
result = Label(root, text="", font=('Helvetica', 14), bg="#FFFFCC") result.pack()
button_3 = Button(root, text="Natijani ko'rish", font=('Helvetica', 14), command=count_result) button_3.pack()
space_2 = Label(root, text="", bg="#FFFFCC") space_2.pack()
root.bind("<x>", count_result) root.mainloop()
if _name__== "_main_":
solution()
REFERENCES
1. O'zbekiston Respublikasi Prezidentining 2021yil 19-martdagi PQ-5032-son. "Fizika sohasidagi ta'lim sifatini oshirish va ilmiy tadqiqotlarni rivojlantirish chora -tadbirlari" to'g'risidagi qarori.
2. O'zbekiston Respublikasi Prezidentining 2019 yil 29 apreldagi PF-5712-son. "O'zbekiston Respublikasi xalq ta'limi tizimini 2030-yilgacha rivojlantirish kontsepsiyasini tasdiqlash to'g'risida" to'g'risidagi Farmoni.
3. Кузнесов А. А., Зенкина С. В. Учебник в составе новой информационно-коммуникационной образователной среды // Информатика и образование. - 2009. - № 6. - С. 71-79.
4. А.Боровский. Програмирование в Delphi 2005г.
5. Б.А. Олимов, "Ta'limda raqamli texnologiyalar" "Raqamli pedagogika: Holati va rivojlanish istiqbollari" mavzuda xalqaaro ilmiy-amaliy konferensiya materiallari. 10-may 2022yil. Toshkent. TDPU
6. Б.А. Олимов. Methodology for forming professional competencies in future teachers of physics with the assistance of practical assignment. "Science and innovation" xalqaro ilmiy jurnali №MG-2023-04-4378.