Converted Document
Download 408.46 Kb.
|
doc1683868906353
Uslubiy qo‘llanma 1
Chust - 2020 2
Mazkur uslubiy qo‘llanma Chust tuman metodika kabineti qoshidagi metodika kengashining 2020- yil ―__‖ ________dagi № ____ - sonli qarori bilan foydalanishga tavsiya etilgan. Ushbu uslubiy qo„llanmada 9-sinf “Informatika va axborot texnologiyalari” darsligi (Toshkent-2020) ning II bob (Dasturlash asoslari)da berilgan masalalarning yechimlari (Python dasturlash tilida) keltirilgan. Darsda foydalanishga qulay bo„lishi uchun qo„llanmadagi mavzular va masalalar tartib raqamlari 9-sinf darsligidagi tartib raqamlariga mos holda berildi. Qo„llanma oxirida sinfdan tashqari mashg„ulotlarda foydalanish uchun qo„shimcha masalalar yechimlari bilan birga berildi. Qo„llanmadan barcha turdagi umumiy o„rta ta‟lim maktablarining informatika o„qituvchilari dars va to„garak mashg„ulotlarida ijodiy foydalanishlari mumkin. Muallif: M. Tashov – Chust tumanidagi 52-umumiy o‗rta ta‘lim maktabi matematika-informatika o‗qituvchisi. Muharrir: E. Nurmatov – Chust TXTB aniq fanlar metodisti. Taqrizchilar: T. Jo‘raev – Nam MQI ―Informatika va axborot texnologiyalari‖ kafedrasi dotsenti, texnika fanlari nomzodi. X. Abdukarimov – Chust tumanidagi 12-maktab oliy toifali matematika- informatika o‗qituvchisi. J. G‘oziyev – Chust tumanidagi 52-IDUM oliy toifali matematika o‗qituvchisi. 3
―=‖ belgisidan so‗ng son yoziladi. Satrli qiymat berilganda esa ―=‖ belgisidan so‗ng bittalik (' '), ikkitalik (― ‖) qo‗shtirnoq ichida satr yoziladi. O‘zgaruvchi qiymatini o‘zgartirish. 28-dars. PYTHONDA O‘ZGARUVCHILARNI TAVSIFLASH Har bir tilning alifbosi bo‗lgani kabi dasturlash tilining ham o‗z alifbosi mavjud. Python dasturlash tilining alifbosi katta va kichik lotin harflari, arab raqamlari, maxsus belgilar va xizmatchi so‗zlardan tarkib topgan. O‗zgaruvchi qiymatini o‗zgartirish uchun unga yangi qiymat berish kifoya. • Katta va kichik lotina va kichik lotin harflari: A,B,C, …, X,Y,Z,a,b,c,…,x,y,z. • Arab raqamlari:0, 1, 2, 3, 4, 5, 6, 7, 8, 9 • Maxsus belgilar: 1. Arifmetik amallar +, –, *, /, ; 2. qavslar, tinish belgilari va boshqalar. • Xizmatchi so‗zlar: if, for, print, input, class va boshqalar. Tayanch tushunchalar O‗zgaruvchilar – o„z qiymati va turiga ega kattalik, o„zida qiymatlarni saqlaydigan kompyuter xotirasidagi yacheyka nomi. O„zgaruvchining qiymatlari dastur davomida o„zgarib turishi mumkin. Doimiy (o„zgarmas) – faqat o„qish uchun mo„ljallangan qiymatlarni saqlovchi kompyuter xotirasidagi yacheyka nomi. Doimiylar o„zgaruvchilar kabi o„z qiymati va turiga ega. Identifikatorlar – o„zgaruvchilar, doimiylar, funksiyalar, protseduralar, modullar, dasturlarning umumiy nomi. Eslab qoling! O‗zgaruvchilarni e‘lon qilish qoidalari: o„zgaruvchi nomida ixtiyoriy harf yoki raqamdan foydalanish mumkin; katta va kichik harflar bir-biridan farqlanadi. belgi5, Belgi5, BELGI5 nomli o„zgaruvchilar har xil o„zgaruvchi nomlaridir, shu sababli kichik harflardan foydalangan ma‟qul; o„zgaruvchi nomlarida probellar ishlatish mumkin emas, uning o„rniga so„zlar („_‟) tagchiziq belgisi yordamida bir-biriga bog„lanadi; o„zgaruvchining nomi raqamdan boshlanishi mumkin emas; –, /, # yoki @ belgilarni ishlatish mumkin emas; maxsus buyruq nomlarini ishlatish mumkin emas; and, as, assert, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, print, raise, return, try, while, with, yield kabi xizmatchi so‗zlarni o„zgaruvchi nomi sifatida ishlatish 4
mumkin emas. O‘zgaruvchini e’lon qilish. O‗zgaruvchi ―=‖ belgisi yordamida satr yoki sonni o‗zlashtirishi mumkin va bu o„zgaruvchining qiymati deb ataladi. O‗zgaruvchiga sonli qiymat berish uchun print(t2," soatdan so'ng ular orasidagi masofa 12 km bo'ladi.") O‘zgaruvchilarni o‘zaro ishlatish. Ikkita o‗zgaruvchida birining qiymatini ikkinchisiga o‗zlashtirish uchun «=» belgisidan foydalaniladi. 28.1. Darvozaning eni 4 metr, bo‗yi esa 3 metr: 1) darvoza yuzasi (S)ni hisoblash dasturini tuzing; 2) darvoza qirrasining uzunligi (P)ni hisoblash dasturini tuzing. Yechilishi: Darvoza enini a harfi bilan, bo‗ini b harfi bilan nomlaymiz. Blok sxema Dastur: a=4
b=3
S=a*b
P=2*(a+b)
print('Yuzi S=',S,' kvadrat metr') print('Perimetri P=',P,' metr') 28.2. Ikkita qayiq turg‗un suvda bir-biriga tomon 4 km/soat va 2 km/soat tezlik bilan suzmoqda. Ular orasidagi masofa 24 km bo‗lsa: 1) ular qancha vaqtdan keyin uchrashadi? 2) qancha vaqtdan keyin ular orasidagi masofa 12 km ni tashkil etadi? Yechilishi: v1-birinchi qayiqning tezligi v2-ikkinchi qayiqning tezligi t1- ushrashguncha o'tgan vaqt; t2-oralarida masofa 12 km qolgucha o'tgan vaqt. Blok sxema Dastur: v1=4
v2=2
S=24
5
t1=S/(v1+v2) t2=(S-12)/(v1+v2) print(t1," soatdan so'ng uchrashadi.") input() operatori yordamida kiritilgan ma‘lumotlar satrli ko‗rinishda bo‗ladi. Butun son turidagi ma‘lumotlarni kiritish uchun int(input()) ko‗rinishida ishlatish lozim yoki kiritilgan ma‘lumot turini int() funksiyasi yordamida o‗zgartirish kerak.
28.3. Doiraning radiusi 4 metrga teng (PI=3.14):
1) doira yuzini hisoblang; 2) aylana uzunligini hisoblang. Yechilishi: R-doira radiusi. Blok sxema Dastur: R=4
PI=3.14
S=PI*R*R C=2*PI*R print('Yuzi S=',S) print('Uzunligi C=',C) 30-dars. PYTHONDA MA’LUMOT TURLARI Ma’lumotlar turi – kompyuter xotirasidagi yacheykada saqlanadigan ma‟lumotlar shakli. Ma’lu-
motlar Ma’lumotlar turi tavsifi Misol
turi
int() Butun sonlar, masalan, o‗quvchilar sonini yoshi = 15
ifodalash uchun. float() Haqiqiy sonlar, masalan, pul miqdorini ifodalash narxi = 20.45 uchun.
str() Satrli, masalan, so‗z yoki gaplarni ifodalash name = 'Ahmad'
uchun.
bool() Маntiqiy, rost yoki yolg‗on ekanligini ifodalash a= True
uchun b= False 6
Eslab qoling! O‗zgaruvchi qabul qilgan qiymat turini type() funksiyasi yordamida aniqlash mumkin. foydalanuvchi tomonidan kiritiladi. Dastur:
a=float(input('1-qayiqning tezligi= '))
b=float(input('2-qayiqning tezligi= ')) Haqiqiy son turidagi ma‘lumotlarni kiritish uchun float(input()) ko‗rinishida ishlatish lozim yoki kiritilgan ma‘lumot turini float() funksiyasi yordamida o‗zgartirish kerak. 30.1. Darvozaning eni va bo‗yi foydalanuvchi tomonidan kiritiladi: 1) darvoza yuzasini hisoblash dasturini tuzing; 2) darvoza qirrasining uzunligini hisoblash dasturini tuzing. Blok sxema Dastur: a=int(input("Darvoza bo'yini kiriting a=")) b=int(input("Darvoza enini kiriring b=")) S=float(input('Qayiqlar orasidagi masofa= ')) S=0
P=0
S=a*b
P=2*(a+b) print('Yuzi S=',S,' kvadrat metr') print('Perimetri P=',P,' metr') 30.3. O‗zgaruvchi uchun qiymat kiritilganda, uning turini aniqlovchi dastur tuzing.
Dastur:
a=input('Qiymat kiriritng =') print(type(a)) a=int(input('Qiymat kiriritng =')) print(type(a)) a=bool(input('Qiymat kiriritng =')) print(type(a)) 31-dars. AMALIY MASHG‘ULOT Agar o‗zgaruvchiga butun son yuklansa – int, haqiqiy son yuklansa – float, bittalik yoki ikkitalik qo‘shtirnoq yordamida satr yuklansa – str turiga ega bo‗ladi. 7
31.2. Ikkita qayiq turg‗un suvda bir-biriga tomon a km/soat va b km/soat tezlik bilan suzmoqda. Ular orasidagi masofa S km bo‗lsa, ular qancha vaqtda uchrashadi? a va b t=S/(a+b) print(t," soatdan so'ng uchrashadi.") 31.3. Xonaning bo‗yi (x) va eni (y) metr foydalanuvchi tomonidan kiritiladi. Xonaning yuzasi (S) va perimetri (P)ni topish dasturini tuzing. Blok sxema Dastur: x=float(input("Xonaning bo'yi= ")) y=float(input('Xonaning eni= ')) S=x*y
P=2*(x+y)
print("Xonaning yuzi=",S," kv.m") print("Xonaning perimeti=",P," m") 31.4. Uchburchak asosining uzunligi (c) va balandligi (h) foydalanuvchi tomonidan kiritiladi. Uchburchak yuzasi (S)ni hisoblash dasturini tuzing. Blok sxema Dastur: c=float(input('Uchburchak asosining uzunligi= ')) h=float(input('Uchburchakning balandligi= ')) S=0.5*c*h print('Uchburchakning yuzi S=',S,' yuza birligi.') 31.5. Avtomobilning o‗rtacha tezligi v (km/soat) va bosib o‗tgan yo‗li s (km) foydalanuvchi tomonidan kiritiladi. Avtomobilning yurgan vaqti t (soat)ni hisoblash dasturini tuzing. Blok sxema Dastur: v=float(input("O'rtacha tezlik= ")) S=float(input("Bosib o'tilgan yo'l= ")) 8
t=S/v print('Yurgan vaqti=',t,' soat.') Ayirish – x – y print(7–5) 2 Ko‗paytirish * x * y print(7*5) 35 Bo‗lish / x / y print(7/5) 1.4 31.6. Doiraning radiusi r ga teng. Doiraning yuzi (s) va aylana uzunligi (L) ni Bo‗linmaning butun qiymatini hisoblash // x // y print(7//5) 1 topish dasturini tuzing. Doiraning radiusi foydalanuvchi tomonidan kiritiladi (PI=3.14). Blok sxema Dastur: r=float(input("Doira radiusini kiriting r= ")) PI=3.14
S=PI*r*r
L=2*PI*r print('S=',S,' yuza birligi.') print('L=',L,' uzunlik birligi.') Bo‗linmaning qoldig‗ini hisoblash % x%y print(7%5) 2 32-dars. NAZORAT ISHI 10-masala. Boshlang‗ich tezligi v bo‗lib, a tezlanish bilan tekis harakat • qilayotgan moddiy nuqtaning t vaqt ichida bosib o‗tadigan yo‗lini aniqlash • dasturini tuzing (yo‗llanma: S = vt + at / 2). • Blok sxema Dastur: v0=float(input("Boshlang'ich tezlik v0= ")) a=float(input("Tezllanush a= ")) t=float(input("Harakatlangan vaqti t= ")) S=v0*t+v0*t*t/2 print("Bosib o'tilgan yo'l S=",S,' uzunlik birligi.') 33–34-darslar. PYTHONDA ARIFMETIK AMALLARNI BAJARISH 9
Arifmetik amallar Amal belgisi Мisol Amal nomi Belgi Yozuvda Operatorda Natija Qo‗shish + x + y print(7+5) 12 a) Hovuz ichiga kafel qoplash uchun qancha kvadrat metr kafel kerak bo‗ladi? b) Hovuzni to‗ldirish uchun qancha litr suv kerak bo‗ladi (1 l = • Darajaga ko‗tarish (x) ** x**y print(5**2) 25 33-34.1. Berilgan a va b sonlari yig‗indisi, ko‗paytmasini toping. Yig‗indi va 1000 cm)? ko‗paytma oxirgi raqamlarining ko‗paytmasini topish dasturini tuzing. Blok sxema Dastur:
a=int(input("a sonni kiriting= "))
b=int(input("b sonni kiriting= ")) d=a+b
print("a+b=",d)
c=a*b
print("a*b=",c)
d=d%10
c=c%10
P=c*d
print("P=",P) 33-34.2. Berilgan ikki xonali son xonalarining yig‗indisini hisoblash dasturini tuzing.
Blok sxema Dastur: a=int(input("Ikki xonali son kiriting= ")) a1=a//10 a2=a%10
S=a1+a2
print("Raqamlar yig'indisi=",S) 35-dars. AMALIY MASHG‘ULOT 10
5.1. Hovuzning bo‗yi 6 metr, eni 4 metr va chuqurligi 3
meBerilganlar asosida quyidagi topshiriqlar uchun dastur tuzing:
Dastur:
a=6; b=4;h=3 s=2*(a+b)*h+a*b print(s,' kv.m kafel kerak') 1b. Blok sxema Dastur: a=6
b=4
h=3
V=1000*a*b*h
print(V,' litr suv kerak') 35.2. Yuqoridagi masalada hovuz bo‗yi, eni va chuqurligi kattaliklari foydalanuvchi tomonidan kiritiladigan hol uchun dastur tuzing. Blok sxema Dastur: a=float(input("Hovuzning bo'yi a=")) b=float(input("Hovuzning enii b=")) h=float(input("Hovuzning chuqurligi h=")) S=2*(a+b)*h+a*b V=a*b*h
V*=1000
print(S,' kv.m kafel kerak') print(V,' litr suv kerak') 11
P=a1*a2*a3 print('Raqamlar',a1,'; ',a2,'; ',a3) print("Raqamlar yig'ndisi ",S) 35.3. 10 288 sekundni soat, minut va sekundlarda ifodalang. Blok sxema Dastur: a=10288
asoat=a//3600
print("Raqamlar ko'paytmasi ",P) a–=asoat*3600 aminut=a//60 a-=aminut*60 print(asoat,' soat',aminut,' minut',a,' sekund') 35.4. Berilgan ikki xonali son xonalarining ko‗paytmasini hisoblash dasturini tuzing.
Blok sxema Dastur:
a=int(input('Ikki xonali son kiriting =')) a1=a%10
a2=a//10
P=a1*a2
print("Raqamlar ko'paytmasi ",P)
35.5. Berilgan uch xonali son xonalarining yig‗indisi va ko‗paytmasini hisoblash dasturini tuzing. Dastur:
a=int(input('Uch xonali son kiriting ='))
12
a1=a//100
a2=(a%100)//10 a3=a%10
S=a1+a2+a3 belgilar ketma-ketligini qirqib oladi. 1-masala. ―gul‖, ―is‖, ―ton‖ qism so‗zlaridan so‗z yasang. Dastur:
35.6. Qisqartirilgan amallarni qo‗llagan holda, quyidagi dastur natijasini
chiqaring(a=8, b=5, c=9.) a=int(input()) b=int(input()) c=int(input()) a-=b
a*=c
a+=(b*c+b) print(a) Dastur natijasi: 77. • xy
35.7. Quyidagi ifodani Python tilida yozing: • 1xx
Yechilishi: y=7/(x**2+x+1)+x**2 36-dars. PYTHONDA SATRLAR BILAN ISHLASH Satr – harf, son va belgilar hamda probeldan tarkib topgan belgilar ketma-ketligi. Satrlar – qo‗shtirnoq ichiga olingan Unicode kodidagi belgilar ketma-ketligi. Pythonda satrlar bittalik va ikkitalik qo‗shtirnoqlar orqali beriladi. Satrlar ustida keng bajariladigan amallardan biri bu – birlashtirish amali. Satrlarni birlashtirish uchun ―+‖ (qo‗shish belgisi) amali qo‗llaniladi. Satr uzunligini len() funksiyasi yordamida aniqlash mumkin. Phyton barcha belgi va probellar sonini o‗zi hisoblab chiqaradi. Qism satrlarni belgilash. Pythonda satrdagi belgilarni raqamlash 0 dan boshlanadi va bu raqam indeks deb ataladi. a[n] – a satrdagi n-o‗rinda turgan belgini qirqib oladi. a[:m] – a satrdan 0 indeksdan boshlab m indeksgacha bo‗lgan belgilar ketma- ketligini qirqib oladi; a[m:n] – a satrdan m indeksdan boshlab n indeksgacha bo‗lgan belgilar ketma-ketligini qirqib oladi; 13
a[m:] – a satrdan m indeksdan boshlab oxirigacha bo‗lgan belgilar ketma-ketligini
qirqib oladi; a[m:n:q] – a satrdan q qadam bilan m indeksdan boshlab n indeksgacha bo‗lgan 37.2-masala. TUZAMAN, PYTHON, DASTUR, TILIDA, MEN. Ushbu so‗zlardan jumla tuzuvchi dastur tuzing. Dastur:
a='gul'
b='is'
c='ton'
natija=a+b+c print(natija) 36.2-masala. Ismingizni ekranga 5 marta chiqarish dasturini tuzing. Dastur:
a='Anvar '
print(a*5) 36.3-masala. Sinf (masalan, 9) vа ism (masalan, Dilshod) foydalanuvchi tomonidan kiritiladi. ―Меn 9-sinf o‗quvchisi – Dilshodman‖ satrini chiqaruvchi dastur chizing. a=input ("Ismingiz=") b=input("Nechanchi sinfda o'qiysiz=") print("Men "+b+"-sinf o'quvchisi - "+a+"man.") 37-dars. AMALIY MASHG‘ULOT Maxsus belgilar: Pythonda boshqa tillardagi kabi quyidagi maxsus belgilar mavjud:
\t – tabulyatsiya belgisi;
\n – yangi satrga o‗tish belgisi; \‘ – apostrof (tirnoq) belgisi; \‖ – qo‗shtirnoq belgisi. 37.1-masala. ―GULTOJIXO‗ROZ‖ so‗zidan qism so‗zlar ajratuvchi dastur tuzing.
Dastur:
a="GULTOJIXO‗ROZ" print(a[:3]) GUL 14
print(a[3:7]) TOJI
print(a[7:]) XO‗ROZ print(a*4) ++++ 37.6-masala. Belgilar yordamida pingvin yasang. a='TUZAMAN' b='PYTHON' c='DASTUR' d='TILIDA' e='MEN'
f=e+' '+b+' '+d+' '+c+' '+a
print(f) 37.3-masala. Foydalanuvchi tomonidan kiritilgan matn uzunligini aniqlovchi dastur tuzing. Dastur:
a=input('Matnni kiriting=')
b=len(a) print(b) 37.4-masala. ―*‖ lar yordamida uchburchak yasang. Dastur:
a=' '
b='*'
print(a*3,b)
print(a*2,b,b) print(a,b,b,b) 37.5-masala. ―+‖ yordamida kvadrat yasang. Dastur: Natija: a='+'
15
print(a*4) ++++ print(a*4) ++++ print(a*4) ++++ Dastur:
print(' ~')
print(' --') print(' (O O)') print(' /V\ ') print(' /(-)\ ') print(' ^^ ^^') 38-dars. PYTHONDA OPERATOR VA IFODALAR input() va print() operatorlarining qo‗shimcha imkoniyatlari. split() usuli input() operatori orqali kiritilgan satrli ma‘lumotlarni ajratuvchi belgi yordamida qismlarga ajratadi. Odatda, probel ajratuvchi belgi vazifasini bajaradi. Agar satr tarkibidagi qismlarni ajratish uchun boshqa belgi ishlatilgan bo‗lsa, u holda bu belgini split() qavslari ichida ko‗rsatish kerak bo‗ladi. end= ‘ ‘ Natijaviy satr qanday belgi bilan tugashini belgilaydi. 38.1-masala. Kutubxonaga ikkita kitob do‗konidan kitoblar keltirildi. Birinchi o‗kondan n dona kitob keltirildi. Ikkinchi do‗kondan esa birinchi do‗konga qaraganda k dona ko‗p kitob keltirildi. Kutubxonaga jami qancha kitob keltirildi? Masalani yechish dasturini tuzing. n va k kattaliklar foydalanuvchi tomonidan kiritiladi. Dastur:
n=int(input('1-kutubxonadan keltirilgan kitoblar soni n='))
k=int(input("2-kutubxonadan keltirilgan nechta ko'p k=")) jami=2*n+k print('Jami keltirildi=',jami) 16
38.2-masala. Komilaga 854*89657*4587*425 amalini dasturga kiritib, hisoblash
topshiriq berildi. U qanday dastur tuzishi lozim? Dastur:
y=n//25
o=n%25
print(y,' ta yashikka uzum solingan,',o,' kilogram uzum ortib qolgan') a=input('Ifodani kiriring=').split('*') a1=int(a[0]) a2=int(a[1]) a3=int(a[2]) a4=int(a[3]) b=a1*a2*a3*a4 print(a1,a2, a3, a4, sep='*',end=‘=‘) print(b) 39-dars. AMALIY MASHG‘ULOT 39.1-masala. Bog‗dagi olma daraxtidan Anvar a dona, Dilshod b dona va Mahmud c dona olma terdi. Bolalar tergan olmalarini o‗zaro teng taqsimlashsa, har biriga qanchadan olma to‗g‗ri keladi? Qancha olma ortib qoladi? Har bir bolaning tergan olmasi soni foydalanuvchi tomonidan kiritiladi. Masala dasturini tuzing.
a=int(input('Anvar tergan olmalar soni='))
d=int(input('Dilshod tergan olmalar soni=')) m=int(input('Mahmud tergan olmalar soni=')) jami=a+d+m hb=jami//3 q=jami%3 print('Har bir bolaga ',hb,' tadan olma tegdi.') print(q,' ta olma ortib qoldi.') 39.3(1,2)-masala. Bog‗bon o‗z bog‗idan n kg hosil oldi. Berilganlar asosida quyidagi topshiriqlar uchun dastur tuzing: 1) bog‗bon hosilini tonna, sentner va kilogrammlarda ifodalang; 2) agar har bir yashikga 25 kg dan uzum solinsa, jami qancha yashikga uzum solingan bo‗ladi? n=int(input('Uzum miqdorini kiriring(kg)=')) t=n//1000 s=(n%1000)//100 17
k=n%100
print(t,' tonna ',s,' sentner ',k,' kilogram') print()
Dastur:
39.4-masala. split() usulidan foydalanib, ―5746+4186+8426+8266‖ satrini dasturga kiritib va berilgan ifodani hisoblash dasturini tuzing. Dastur:
a=input('Ifodani kiriting=').split('+')
n1=int(a[0]) n2=int(a[1]) n3=int(a[2]) n4=int(a[3]) s=n1+n2+n3+n4 print(n1, n2, n3, n4,sep='+',end'=') print(s) 39.5-masala. F kuch ta‘sirida jism a tezlanish oldi. Agar F va a ning qiymatlari quyidagicha bo‗lsa, jism massasini hisoblash dasturini tuzing (m=F/a): Dastur:
F=float(input("Ta'sir etuvchi kuchni kiriting="))
a=float(input('Tezlanishni kiriting=')) print('Jismning massasi=',F/a) 39.6(a,b)-masala. Quyidagi ifodalarni Python tilida yozib, ular natijasini hisoblash dasturini tuzing, bu yerda: a = 14, b = 8, c = 452, r = 41. a) S = a + b + ac; b) P = Pi*r**2 + ac. Dastur:
a=14; b=8; c=452; r=41
S=a+b+a*c P=pi*r*r+a*c print('S=',S,'; P=', P) 40-dars. PYTHONDA SODDA MASALALARNI DASTURLASH 18
40.1-masala. Trapetsiyaning ikkita asosi (a va b) hamda asosiga tushirilgan
balandligi h berilgan. Trapetsiyaning yuzi s ni hisoblash dasturini tuzing. a, b va h foydalanuvchi tomonidan kiritiladi. 41.1-masala. Tomoni a ga teng kvadrat ichiga doira chizilgan. Bo‗yalgan soha yuzi s ni topish dasturini tuzing. Dastur:
a=float(input('Ifodani kiriting a='))
a=float(input('1-asosni kiriting a=')) b=float(input('2-asosni kiriting b=')) h=float(input('balandlikni kiriting h=')) s=(a+b)*h/2 print('S=',s) 40.2-masala. Teng tomonli uchburchakning tomoni a ga teng. Uning yuzi s ni sk=a*a
hisoblash dasturini tuzing.
Dastur:
from math import*
a=float(input('Uchburchak tomonini kiriting a=')) s=(a**2)*sqrt(3)/4 print('S=', s) 40.3-masala. Kvadratning tomoni n ga teng. Uning yuzini hisoblash dasturini tuzing.
Dastur:
a=float(input('Kvadrat tomonini kiriting a=')) s=a**2
print('S=', s) 40.4-masala. split() usulidan foydalanib, ―5489*245*58*69*142*4587*54‖ satrini dasturga kiriting va berilgan ifodani hisoblang. Dastur:
a=input('Ifodani kiriting a=').split('*')
n0=int(a[0]); n1=int(a[1]); n2=int(a[2]) n3=int(a[3]); n4=int(a[4]); n5=int(a[5]) n6=int(a[6]) p=n0*n1*n2*n3*n4*n5*n6 print(n0,n1,n2,n3,n4,n5,n6,sep='*',end='=') print(p) 19
41-dars. AMALIY MASHG‘ULOT
41.5-masala. Avtobus bir kunda n kilometr yo‗l yuradi. m kilometr masofani bosib o‗tishi uchun avtobus necha kun yurishi kerak? n va m kattaliklar foydalanuvchi tomonidan kiritiladi. Masalani yechish dasturini tuzing. sd=pi*(a/2)**2 bs=sk-sd print("Bo'yalgan soha yuzi=", bs) Dastur:
41.2-masala. Foydalanuvchi tomonidan kiritilgan sondan avval va keyin keluvchi sonni ekranga chiqaruvchi dastur tuzing. Dastur:
a=int(input('sonni kiriting a='))
a1=a-1
a2=a+1
print(a1,'; ',a2) 41.3-masala. n nafar o‗quvchi k dona olma terdi va olmalar ular o‗rtasida teng taqsimlandi. Qoldiq olmalar savatchaga solindi. a) Har bir o‗quvchi qanchadan olma olgan? b) Savatchaga qancha olma solingan? d) n va k kattaliklar foydalanuvchi tomonidan kiritiladigan hol uchun dastur tuzing.
Dastur:
n=int(input("O'quvchilar sonini kiriting n=")) k=int(input("Terilgan olmalar soni k=")) m=k//n
s=k%n
print("Har bir o'quvchi ",m," tadan olma olgan.") print("Savatchaga ",s," ta olma soligan.") 41.4-masala. Foydalanuvchi tomonidan kiritilgan ikki xonalidan katta natural sonning oxirgi ikki raqamini topish dasturini tuzing. Dastur:
n=int(input("Sonini kiriting (n>99) n="))
20
m=n%100
print(m) Dastur:
n=int(input("Avtobusning bir kunda bosib o'tadigan yo'li (km) n="))
m=int(input("Avtobusning bosib o'tishi kerak bo'lgan masofa m=")) kun=m/n
print(kun) 41.6-masala. Chumolining bosib o‗tgan yo‗li millimetrlarda berilgan. Uni metr, santimetr va millimetrlarda ifodalang (masalan, 45 786 = 45 metr 78 cm 6 mm). Dastur:
s=int(input("Cumoli bosib otgan yo'l (mm) S="))
s1=s//1000 s2=(s%1000)//10 s3=s%10
print(s1,' m',s2,' sm',s3,' mm') 41.7-masala. Kubning tomoni a ga teng. Kubning hajmini topish dasturini tuzing. Dastur:
a=int(input("Kubning tomoni a="))
v=a**3
print('V=',v,' hajm birligi') 41.8-masala. a, b, c, d sonlari berilgan. Ularning o‗rta arifmetigini topish dasturini tuzing. Dastur:
a=float(input("a="))
b=float(input("b=")) c=float(input("c=")) ua=(a+b+c)/3 print('Natija: ',ua) 41.9-masala. Maktab ma‘muriyati 3 ta sinf uchun yangi matematika xonasi tashkil etishga qaror qildi. Mashg‗ulotlar bir vaqtda o‗tkazilganligi sababli, har bir xonaga alohida parta sotib olinishi kerak. Bitta partada ikkitadan ortiq o‗quvchi 21
o‗tira olmaydi. Har bir sinf o‗quvchilari soni ma‘lum bo‗lsa, qancha parta sotib
olish kerak? Foydalanuvchi tomonidan uchta qiymat – uchta sinf o‗quvchilari soni kiritiladi. s1=int(input("s1=")) s2=int(input("s2=")) s3=int(input("s3=")) p1=(s1+1)//2 p2=(s2+1)//2 p3=(s3+1)//2 print(p1+p2+p3,' ta' ) 45-dars. TARMOQLANUVCHI ALGORITMLARNI DASTURLASH. IF…ELSE OPERATORI if operatori– faqat berilgan shart rost bo‗lgandagina muayyan buyruqlar to‗plamini bajaradigan shartli operator. if operatori tarkibidagi shart True (rost) qiymat qaytarsa, buyruqlar_bloki bajariladi. Agar yolg‗on qiymat qaytarsa, buyruqlar_bloki bajarilmaydi. buyruqlar_bloki if operatoridan keyingi satrda xat boshidan 4 ta probel qoldirib, keyin yoziladi. buyruqlar_bloki dagi buyruqlar alohida qatorda yoki bitta qatorda nuqta, vergul bilan ajratilgan holda yozilishi mumkin. if operatori bilan birga else buyrug‗ini ham qo‗llash mumkin. Agar shart True (rost) qiymat qaytarsa, 1-buyruqlar_bloki bajariladi, aks holda 2-buyruqlar_bloki bajariladi. 45.1-masala. Kiritilgan a soni musbat yoki manfiy ekanligini aniqlovchi dastur tuzing.
Dastur:
a=float(input("son=")) if a>0: print('musbat') elif a<0: print('manfiy') else: print('nolga teng') 22
45.2-masala. Kiritilgan a soni toq yoki juft ekanligini aniqlovchi dastur tuzing.
Dastur:
a=int(input("son="))
if a%2==0: print('juft') else: print('toq') 45.3-masala. Tomonlari a va b ga teng to‗g‗ri to‗rtburchak kvadrat ekanligini aniqlovchi dastur tuzing. Dastur:
a=input("a=")
b=input("b=") if a==b: print("Kvadrat bo'ladi.") else: print("Kvadrat bo'lmaydi.") 45.4-masala. Kiritilgan a soni to‗rt xonali son ekanligini aniqlovchi dastur tuzing. Dastur:
a=input("a=")
if len(a)==4: print("Son to'rt xonali.") else: print("Son to'rt xonali emas.") 46-dars. AMALIY MASHG‘ULOT 46.1-masala. Ikkita a va b son berilgan. Agar b son a sondan kichik bo‗lsa, u holda b ni nol bilan almashtiruvchi, aks holda b ni o‗zgarishsiz qoldiruvchi dastur tuzing.
Dastur:
a=float(input('a=')) b=float(input('b=')) if b b=0
print('a=',a,' b=',b) 46.2-masala. Berilgan a butun son noldan farqli b butun songa qoldiqsiz bo‗linishi yoki bo‗linmasligini aniqlovchi dastur tuzing. 23
Dastur:
so‗zlarining kombinatsiyasi bo‗lib, ―aks holda agar” ma‘nosini anglatadi.
shart True (rost) bo‗lsa, buyruqlar_bloki bajariladi, aks holda ikkinchi shart – shart1 tekshiriladi. shart1 True (rost) bo‗lsa, buyruqlar_ bloki1, aks holda buyruqlar_bloki2 bajariladi. b=int(input('b=')) if a%b==0: print('a+b=',a+b) else: print('a*b=',a*b) 222
46.4-masala. Uchta a, b va c son berilgan. Agar a–b=c shart bajarilsa, ularning
ko‗paytmasini, aks holda yig‗indisini hisoblovchi dastur tuzing. Dastur:
a=float(input('a='))
b=float(input('b=')) c=float(input('c=')) if a*a–b*b==c*c: print('a*b*b=',a*b*c) else: print('a+b+c=',a+b+c) 46.5-masala. Butun son berilgan. Agar u musbat bo‗lsa, unga 1 sonini qo‗shish, aks holda o‗zini chiqarish dasturini tuzing. Dastur:
a=int(input('a='))
if a>0:
print('a+1=',a+1)
else: print('a=',a) 46.6-masala. Kiritilgan butun son musbat bo‗lsa, uning 10 ga ko‗paytmasini, aks holda o‗zini chiqaruvchi dastur tuzing. Dastur:
a=int(input('a='))
if a>0:
print('10*a=',10*a)
else: print('a=',a) 47-dars. TARMOQLANUVCHI ALGORITMLARNI DASTURLASH. ELIF OPERATORI 24
Pythonda CASE tanlash operatori mavjud emasligi sababli, ko‗p shartli
masalalarni yechish uchun elif operatori dan foydalaniladi. elif – else va if Dastur:
a=int(input('a='))
b=int(input('b=')) c=int(input('c=')) 47.1-masala. Ikki xonali sonning raqamlari toq ekanligini aniqlovchi dastur tuzing.
Dastur:
a=input('Ikki xonali son kiriting a=') a1=int(a[0]) a2=int(a[1]) if (a1%2==1) and (a2%2==1): print('Toq') if a%2==0: print(a,' juf son.') else: print('Toq emas') 47.2-masala. Uch xonali sonda bir xil raqamlar mavjudligini aniqlovchi dastur tuzing.
Dastur:
a=input('Uch xonali son kiriting a=') a1=int(a[0]) a2=int(a[1]) a3=int(a[2]) if (a1==a2) or (a2==a3) or (a1==a3): print('Bir xil raqamlar mavjud') else: print('Bir xil raqamlar mavjud emas') 47.3-masala. a va b sondan qaysi biri juft ekanligini aniqlovchi dastur tuzing. Dastur:
a=int(input('a='))
b=int(input('b=')) if a%2==0: print(a,' juf son.') if b%2==0: print(b,' juft son.') if not((a%2==0)or(b%2==0)): print('Juft sonlar mavjud emas.') 25
47.4-masala. 3 ta butun son kiritildi. Qaysi biri juft ekanligini aniqlovchi dastur
tuzing.
Dastur:
katta=0
kichik=0 if b%2==0: print(b,' juft son.') if c%2==0: print(b,' juft son.') if not((a%2==0)or(b%2==0)or (c%2==0)): print('Juft sonlar mavjud emas.') a=int(input('a sonni kiriting =')) 48-dars. AMALIY MASHG‘ULOT 48.1-masala. Uchta a, b va c butun son berilgan. Ular orasidan musbatlari sonini topish dasturini tuzing. Dastur:
s=0
for i in range(1,4): a=int(input('sonni kiriting =')) if a>0: s+=1 if s==0: print('Musbat sonlar mavjud emas.') else: print('Musbat sonlar ',s,' ta') 48.2-masala. Uchta a, b va c butun son berilgan. Ular orasidan musbat va manfiylari sonini topish dasturini tuzing. Dastur:
s1=0
s2=0
for i in range(1,4):
a=int(input('sonni kiriting =')) if a>0: s1+=1 if a<0: s2+=1 if s1==0: print('Musbat sonlar mavjud emas.') else: print('Musbat sonlar ',s1,' ta') if s2==0: print('Manfiy sonlar mavjud emas.') else: print('Manfiy sonlar ',s2,' ta') 26
48.3-masala. Ikkita a va b son berilgan. Dastlab kattasini, keyin esa kichigini
chiqaruvchi dastur tuzing. if n==2: print('Haftaning 2–kuni Seshanba.') if n==3: print('Haftaning 3–kuni Chorshanba.') if n==4: print('Haftaning 4–kuni Payshanba.') b=int(input('bsonni kiriting =')) if a>b: katta=a; kichik=b else:
katta=b
if n==5: print('Haftaning 5–kuni Juma.') kichik=a print(katta,'; ',kichik) 48.4-masala. Uchta a, b va c butun son berilgan. Ulardan faqat musbatlari kvadratini hisoblab chiquvchi dastur tuzing. Dastur:
a=int(input('1-Sonni kiriting ='))
b=int(input('2-Sonni kiriting =')) c=int(input('3-Sonni kiriting =')) if a>0: print(a*a,'; ') if b>0: print(b*b,'; ') if c>0: print(c*c,'; ') 48.5-masala. Kvadrat tenglamani yechish dasturini tuzing. Dastur:
from math import*
a=int(input('a koeffitsiyentnikiriting =')) b=int(input('b koeffitsiyentnikiriting =')) c=int(input('c koeffitsiyentnikiriting =')) D=b*b–4*a*c if D<0: print('Tenglama haqiqiy ildizlarga ega emas.') elif D==0: print('x=',–b/(2*a)) else:
print('x1=',(–b+sqrt(D))/(2*a))
print('x2=',(–b–sqrt(D))/(2*a)) 48.6-masala. Hafta raqami 1–7 oraliqda kiritilganda, hafta kunini ekranga chiqaruvchi dastur tuzing. 27
Dastur:
n=int(input('Hafta kuning tartib raqamini kirirting =')) if n==1: print('Haftaning 1–kuni Dushanba.') a=int(input('a=')) b=int(input('b=')) if a for i in range (a,b+1): print(i)
if n==6: print('Haftaning 6–kuni Shanba.') if n==7: print('Haftaning 7–kuni Yakshanba.') 48.7-masala. a va b sonlar berilgan. Agar ular musbat va yig‗indisi 100 dan katta bo‗lsa, a sonining b songa nisbatini, ular musbat va yig‗indisi 100 dan katta bo‗lmasa, a ning b ga ko‗paytmasini hisoblash dasturini tuzing. Dastur:
a=int(input('a sonnni kirirting ='))
if a>b:
b=int(input('b sonnni kirirting ='))
if (a>0)and(b>0)and(a+b>100): print('a/b=',a/b) if (a>0)and(b>0)and(a+b<=100): print('a*b=',a*b) 48.8-masala. Ikkita son berilgan. Agar birinchi son ikkinchisidan katta bo‗lsa, 1 ni, agar ikkinchi son birinchisidan katta bo‗lsa, 2 ni, agar ikkalasi teng bo‗lsa, 0 ni chiqaruvchi dastur tuzing. Dastur:
a=int(input('a sonnni kirirting ='))
b=int(input('b sonnni kirirting =')) if a>b: print(1) if b>a: print(2) if a==b: print(0) 49–50-darslar. TAKRORLANUVCHI ALGORITMLARNI DASTURLASH. FOR OPERATORI 49-50.1-masala. a va b sonlar berilgan. a dan b gacha bo‗lgan barcha sonlarni chiqaruvchi dastur tuzing. Bu yerda a <= b. Dastur:
a=int(input('a='))
b=int(input('b=')) for i in range (a,b+1): print(i) 28
49-50.2-masala. a va b sonlar berilgan. Agar a < b bo‗lsa, a dan b gacha bo‗lgan
sonlarni o‗sish tartibida, aks holda kamayish tartibida chiqaring. Dastur:
51.2-masala. 1 dan n gacha bo‗lgan natural sonlar kvadratlari yig‗indisini
aniqlovchi dastur yozing. Dastur:
for i in range (a,b–1,–1): print(i)
49-50.3-masala. 1 dan 10 gacha bo‗lgan natural sonlar kvadratlarini chiqaruvchi dastur tuzing. Dastur:
for i in range (1,11):
print(i,'*',i,'=',i*i) 49-50.4-masala. 1 dan 10 gacha bо‗lgan natural sonlar yig‗indisini chiqaruvchi dastur tuzing. Dastur:
s=0
s+=i
print('S=',s) 51-dars. AMALIY MASHG‘ULOT 51.1-masala. Quyidagi dasturiy koddagi iteratsiyalar (takrorlashlar) sonini aniqlang. 1. for i in range(487): cms='Salom' Yechilishi: 487 – 0=487. Javob: 487 marta. 2. for i in range(2,89): cms=12 Yechilishi: 89 – 2+1=. Javob: 88 marta. 3. for i in range(-17,15,4): cms='dastur' Yechilishi: [(15–(–17)+1):4]=[33:4]=8. Javob: 8 marta 4. for i in range(-58,0): cms=4789 Yechilishi: 0–(–58)=58. Javob: 58 marta. 5. for i in range(73,161,2): cms=2020 Yechilishi: [(161–73+1):2]=[89:2]=44. Javob: 44 marta 6. for i in range(100,1982): cms='UZB' Yechilishi: 1982–100+1=1882. Javob: 1882 marta. 7. for i in range(1874,21): cms='4782' Yechilishi: 1874>21 bo‗lgani ushcun, biror marta hambajarilmaydi. Javob: 0 29
marta.
8. for i in range(-21,21,5): cms='4782' Yechilishi: [(21–(–21)+1):5]=8. Javob: 8 marta. Dastur:
s=0
n=int(input('n ning qiymatini kiriting=')) for i in range (1,n+1): s+=i*i print('S=',s) 51.3-masala. n>=2 shartni qanoatlantiruvchi n soni berilgan. Ushbu ifodani hisoblovchi dastur tuzing. d=1*2+2*3+...+(n–1)*n Dastur:
d=0
n=int(input('n ning qiymatini kiriting=')) for i in range (1,n+1): d+=i*(i+1) print('d=',d) 51.4-masala. Bir nechta son berilgan. Ular orasida qancha 2 soni bor ekanligini aniqlovchi dastur tuzing. Dastur:
s=0
n=int(input('n ning qiymatini kiriting=')) for i in range (1,n+1): a=float(input('Sonni kiriting=')) if a==2: s+=1 if s==0: print('2 soni kiritilmagan.') else: print(s,' ta 2 soni bor') 51.5-masala. S=11+13+15+ . . . +49 yig‗indini hisoblash dasturini tuzing. Dastur:
s=0
for i in range (11,50,2): s+=i
print('s=',s) 30
51.6-masala. n ta uchburchakni ekranga chiqaruvchi dastur tuzing. n o'zgaruvchi
–1 dan 9 gacha bo‗lgan natural sonlarni qabul qiladi. for i in range (–1, 9): print((' ')*(9–i),('* ')*(i+2)) 52-dars. NAZORAT ISHI 52.1-masala. Butun son kiritilgan vaqtda sondan avval va keyin keluvchi sonni chiqaruvchi dastur tuzing. Dastur:
a=int(input('sonni kiriting='))
print(a,' dan oldingi son bu: ',a–1) print(a,' dan keyingi son bu: ',a+1) 52.2-masala. Natural son berilgan. Shu son oxirgi raqamini topish dasturini tuzing.
Dastur:
a=int(input('sonni kiriting=')) print(a,' sonining oxirgi raqami bu: ',a%10) 52.3-masala. Sutkaning n sekundi berilgan. Sutka boshlanganidan beri qancha soat (h), minut (min) va sekund (s) o‗tganini aniqlash dasturini tuzing, masalan, n=13257=3*3600+40*60+57; h = 3 va min = 40. Dastur:
n=int(input('Sekundlar sonini kiriting='))
soat=n//3600 minut=(n-(3600*soat))//60 sekund=n-soat*3600-minut*60 print(n,'=',soat,'*',3600,'+',minut,'*',60,'+',sekund) print('h=',soat,'; min=',minut,'; sek=',sekund) 52.4-masala. Mahsulotning narxi s so‗m. Ushbu mahsulotdan n ta sotib olish uchun qancha so‗m sarflash kerak? Dastur:
31
53.3-masala. a va b natural sonlar berilgan. a dan b gacha bо‗lgan sonlar orasidan
faqat juftlarini chiqaruvchi dastur tuzing. Bu yerda a <= b. n=int(input('Musbat butun sonni kiriting=')) n1=n%100 n2=n1//10 print("O'nlar xonasidagi raqam=> ",n2) Dastur:
52.6-masala. Ismingizni kiritganda quyidagi xabarni chiqaruvchi dasturni tuzing.
Dastur tuzishda print() operatorining end() usulidan foydalaning. Dastur:
n=input('Ismingizni kiriting=')
print('Xush kelibsiz, ',n,end='!') 53-dars. TAKRORLANUVCHI ALGORITMLARNI DASTURLASH. WHILE OPERATORI 53.1-masala. 0 dan 20 gacha bo‗lgan juft sonlarni ekranga chiqaruvchi dastur tuzing.
Dastur:
i=0
while i<=20:
print(i,'; ') i+=2
53.2-masala. n va k butun manfiy bo‗lmagan sonlar berilgan. n va k qatnashgan
ushbu ifodani hisoblang: n!/(k!*(n-k)!) i=1; j=1; m=1; p1=1; p2=1; p3=1 n=int(input('n=')) k=int(input('k=')) while i<=n: p1*=i; i+=1 while j<=k: p2*=i; j+=1 while m<=n–k: 32
p3*=i; m+=1
natija=p1/(p2*p3) print('Natija=',natija) 54.3-masala. Kiritilgan n soni qancha raqamdan iborat ekanligini aniqlovchi dastur tuzing (ko‗rsatma: n=n//10 ko‗satma n=0 bo‗lguncha bajariladi). a=int(input('a=')) b=int(input('b=')) while a<=b: if a%2==0: print(a,'; ') a+=1
53.4-masala. n natural soni berilgan. Kvadrati n dan kichik bo‗lgan barcha natural
sonlarni chiqaruvchi dastur tuzing. Dastur:
Dastur:
n=int(input('n=')) i=1
while i*i<=n:
print(i,'; ') i+=1
54-dars. AMALIY MASHG‘ULOT
54.1-masala. S=0,5+1,5+2,5+…+98,5+99,5 ifodani hisoblash dasturini tuzing. Dastur:
s=0
i=0.5
while i<=100:
s+=i
i+=1
print('S=',s) 54.2-masala. n natural sonining barcha bo‗luvchilarini chiqaruvchi dastur tuzing. n=int(input('n natural sonni kiriting =')) Dastur:
i=1
while i<=n/2: if n%i==0: 33
print(i,'; ')
i+=1
print(n,‘.‘) 55-dars. SIKLLARNI BOSHQARISH: CONTINUE, BREAK OPERATORLARI n=int(input('n natural sonni kiriting =')) i=0
while not(n==0):
n=n//10
i+=1
print(i,'; ') 54.4-masala. Kiritilgan n soni raqamlari yig‗indisini hisoblovchi dastur tuzing. Dastur:
n=int(input('n natural sonni kiriting ='))
i=0; s=0 while not(n==0): s+=n%10; n=n//10 print(s) 54.5-masala. Kiritilgan n soni juft raqamlari sonini hisoblovchi dastur tuzing. Dastur:
n=int(input('n natural sonni kiriting ='))
i=0; s=0 while not(n==0): r=n%10;
if r%2==0: i+=1
n=n//10
print(i,' ta') 54.6-masala. n natural soni berilgan. 1 dan n gacha bo‗lgan natural sonlar ichida oxirgi raqami 3 gа karrali sonlarni chiqaruvchi dastur tuzing. Dastur:
i=1
n=int(input('n natural sonni kiriting =')) while i 34
r=i%10
if r%3==0: print(i) i+=1
n=int(input('n sonini kiriting: '))
chiziq(n) 58-dars. AMALIY MASHG‘ULOT 58.1-masala. ‗*‘ belgisidan tomoni n ga teng kvadrat chizuvchi dastur tuzing. 55.2-masala. Foydalanuvchi tomonidan kiritilgan sonlar yig‗indisini hisoblash dasturini tuzing. Agar manfiy son kiritilsa, sikl o‗z ishini to‗xtatishi lozim. Dastur:
s=0
for i in range(1,11): print(i,'-sonni kiriting=') Protseduradan foydalaning. son=float(input()) if son>=0: s+=son else: break print('s=',s) 56–57-darslar. QISM DASTURLAR: FUNKSIYALAR VA PROTSEDURALAR 56-57.1-masala. n va k butun musbat sonlar berilgan. n va k qatnashgan ushbu ifodani hisoblang: n!/(k!(n-k)!). Funksiyadan foydalaning. Dastur:
def factor(n):
if n==0: return 1 else:
res= n*factor(n-1)
return res n=int(input('n sonini kiriting: ')) k=int(input('k sonini kiriting: ')) nf=factor(n) kf=factor(k) nkf=factor(n-k) print('Natija=',nf/(kf*nkf)) 56-57.3-masala. Bir birlik uzunlik ‗-‘ ga teng. Berilgan n uzunlikdagi ‗-‘ belgidan iborat chiziq chizuvchi dastur tuzing. Protseduradan foydalaning. 35
Dastur:
def chiziq(n): print(('_')*n) if 1<=n1<+5: satr+='C'*n1 if 10**(k-i)==10: if n1==5: satr+='L' if n1==6: satr+='LX' Dastur:
def kvadrat(n):
for i in range(n): print(('*')*n) n=int(input('n sonini kiriting: ')) kvadrat(n) if n1==7: satr+='LXX' 58.2-masala. Berilgan n sonining bo‗luvchilarini bitta qatorda probel orqali ajratib chiqaruvchi dastur tuzing. Protseduradan foydalaning. Dastur:
def buluvchi(n):
satr=''
for i in range(1,n+1):
if n%i==0: satr+=str(i)+' ' print(satr) n=int(input('n sonini kiriting: ')) buluvchi(n) 58.3-masala. Berilgan n sonini rim raqamlarida ifodalovchi dastur tuzing. Protseduradan foydalaning. Dastur:
satr=''
def rim(n): satr=''
for i in range(1,k):
n1=n//(10**(k-i)) n=n-n1*(10**(k-i)) if 10**(k-i)==1000: satr+='M'*n1 if 10**(k-i)==100: if n1==5: satr+='D' if n1==6: satr+='DC' 36
if n1==7: satr+='DCC'
if n1==8: satr+='DCCC' if n1==9: satr+='CM' Dastur:
def hisob():
global b global katta if n1==8: satr+='LXXX' if n1==9: satr+='XC' elif 1<=n1<5: satr+='X'*n1 if n==9: satr+='IX' if n==8: satr+='VIII' if n==7: satr+='VII' global kichik if n==6: satr+='VI' if n==5: satr+='V' if n==4: satr+='IV' if n==3: satr+='III' if n==2: satr+='II' if n==1: satr+='I' print(satr) n=int(input('n sonini kiriting: ')) k=len(str(n)) rim(n)
58.4-masala. Berilgan n soni xonalarining yig‗indisini hisoblash dasturini tuzing.
Protseduradan foydalaning. Dastur:
def summa():
s=0
i=0
ns=str(n) lenn=len(ns) for i in range(0,lenn): s=s+int(ns[i]) print(s) n=int(input('n sonini kiriting: ')) summa()
58.5-masala. Sport musobaqasida sportchilarning chiqishlari hakamlar tomonidan
ballik tizimda baholandi. Yakuniy ballni olish uchun eng yuqori va eng past ball 37
chiqarib tashlandi va qolgan uchta ballning o‗rtacha arifmetik qiymati hisoblandi.
5 nafar hakam tomonidan berilgan eng yuqori va eng past ballni hamda sportchi olgan ballni chiqaradigan dastur tuzing. Funksiyadan foydalaning. xatolik ro‗y bergani haqida xabar chiqariladi. Global o‘zgaruvchilar – butun dastur davomida faol bo‗ladigan o‗zgaruvchilar. Global o‗zgaruvchilar butun dastur davomida faol bo‗ladigan o‗zgaruvchilardir. Ular qism dasturdan tashqarida, ya‘ni asosiy dasturda e‘lon global jami jami=jami+b if kichik>b: kichik=b if katta katta=1
kichik=10
jami=0
qilinadi. Odatda, ularni modullarni import qilgandan keyin, kodning
b=1
print('Sportchi 10 balli sistemada baholanadi!')
for i in range(1,6): print(i,'-hakam bergan ball=') b=int(input()) hisob()
print('eng kichik ball=',kichik,', eng katta
ball=',katta) print('Sportchi olgan ball=',(jami-kichik-katta)/3) 58.6-masala. Berilgan n soni xonalari raqamlarining sonini chiqaruvchi dastur tuzing.
Dastur:
n=int(input('Natural son kiriting= ')) bsatr=str(n) m=len(bsatr) print(n,' sonidagi raqamlar soni: ',m,' ta.') 59–60-darslar. FUNKSIYALAR VA O‘ZGARUVCHILAR Har bir o‗zgaruvchi e‘lon qilinganda, u dasturda qandaydir muhim vazifani bajaradi va dasturning qaysidir elementlari bilan bog‗lanadi. Funksiya ichida e‘lon qilingan o‗zgaruvchilar (lokal o‘zgaruvchilar) va funksiya tashqarisida e‘lon qilingan o‗zgaruvchilar (global o‘zgaruvchilar) ning ahamiyatlari ham turlicha. Lokal o‘zgaruvchilar – faqat o‗zlari eʼlon qilingan qism dasturda faol 38
bo‗ladigan o‗zgaruvchilar. Lokal o‗zgaruvchilar faqatgina funksiya ichida
ahamiyatga ega bo‗lib, asosiy dastur va boshqa funksiyalar ichida ishlamaydi. Shuning uchun funksiya tashqarisida lokal o‗zgaruvchiga murojaat etilganda, def MIN4(a,b,c,d): if a else: k1=b if c boshlanishida eʼlon qilish kerak. Ularni odatiy o‗zgaruvchilar kabi chaqirish mumkin. Agar funksiyadа global o‗zgaruvchining qiymatini o‗zgartirishgа to‗g‗ri kelsa, u holda funksiyada ―global‖ kalit so‗zi yordamida o‗zgaruvchini yana qayta eʼlon qilish zarur. 59-60.1-masala. n natural soni berilgan. S=1*5+2*6+3*7+. . . +n*(n+4) ifodani hisoblash dasturini protsedura yordamida tuzing. Dastur:
else: k2=d
def summa(a): s=0
for i in range(1,n+1):
s+=i*(i+4) print('S=',s) n=int(input('Natural son kiriting= ')) summa(n) 59-60.2-masala. a va b natural sonlari berilgan. a va b sonlaridan kattasini topish funksiyasini tuzing. Funksiyadan foydalanib, a, b va c sonlari ichidan kattasini topish dasturini tuzing. Dastur:
def IKT(a,b):
#global kattasi if a>b: kattasi=a else: kattasi=b return kattasi kattasi=0 m=int(input('Birinchi sonni kiriting= ')) n=int(input('Ikkinchi sonni kiriting= ')) k=int(input('Uchinchi sonni kiriting= ')) l=IKT(m,n) IKT(l,k) print('Kattasi=',IKT(l,k)) 61-dars. AMALIY MASHG‘ULOT 39
61.1-masala. Berilgan to‗rtta sonning eng kichigini topuvchi dastur tuzing.
Buning uchun min4 (a, b, c, d) funksiyasini yarating. Dastur:
b=''
a1=str(a) for i in range(len(a1)): b=a1[i]+b if k1 else: kichik=k2 return kichik a=int(input('Birinchi sonni kiriting= ')) b=int(input('Ikkinchi sonni kiriting= ')) c=int(input('Uchinchi sonni kiriting= ')) d=int(input("To'rtinchi sonni kiriting= ")) return b print('Kichigi: ',MIN4(a,b,c,d)) 61.2-masala. Berilgan a (haqiqiy) sonining k (butun) darajasini topuvchi dastur tuzing. Buning uchun daraja (a, k) funksiyasini yarating. Dastur:
def daraja(a,k):
nat=1
for i in range(k): nat*=a
return nat a=float(input('Daraja asosinini kiriting= ')) k=int(input("Daraja ko'rsatkichini kiriting= ")) print('Natija: ',daraja(a,k)) 61.3-masala. Inglizcha harf va raqamlardan iborat satr berilgan. Ushbu satr qancha raqamdan iboratligini hisoblovchi dastur tuzing. Dastur:
def raqam(a):
s=0
for i in range(len(a)):
s1=a[i]
if s1.isdigit(): s=s+1
return s a=input('Satrni kiriting= ') print('Raqamlar: ',raqam(a),' ta.') 61.4-masala. Berilgan sonni akslantiruvchi dastur tuzing. Masalan, 123 dan 321 40
ni hosil qiling. Funksiyadan foydalaning.
Dastur:
def aks(a): locale Modul sonlarni formatlashda belgilangan tartibni aniqlash muammosini hal qilish uchun qo‗llaniladi. decimal Modul o‗nli kasr sonlari bilan ishlash va ularni yaxlitlash uchun qo‗llaniladi. a=int(input('Sonni kiriting= ')) print(aks(a)) 61.6-masala. Tonna, kilogramm va grammlarda berilgan birlikni grammga aylantirish funksiyasini yozing. Dastur:
def tkg(t,k,g):
global gr gloabal: gr=float() gr=t*10**6+k*10**3+g os Modul katalog va fayllar bilan ishlash uchun bir qancha return gr t=int(input('Tonna=')) k=int(input('Kilogram=')) g=int(input('Gramm=')) print(t,'t',k,'kg',g,'g =',tkg(t,k,g),'gramm.') 62–63-darslar. PYTHON DASTURLASH TILI KUTUBXONASI Python dasturlash tilining standart kutubxonasi ko‗plab tayyor kod fragmentlari (modullar, standart funksiyalar va b.) dan tarkib topgan. Python dasturlash tilini yanada takomillashtirish uchun foydalanuvchi tomonidan yozilgan modullarni kutubxonaning alohida qismiga yuklash ham mumkin. Modul nomi Modul tavsifi math Modul murakkab matematik ifodalarni hisoblash uchun qo‗llaniladi. random Modul tasodifiy sonlarni tanlab oladi yoki ro‗yxat elementlarini tasodifiy tartibda joylashtiradi tkinter Modul foydalanuvchi va dastur o‗rtasida o‗zaro aloq o‗rnatish uchun oyna, tugmacha va boshqa grafik elementlardan foydalanish imkonini beradi. datetime Modul joriy sana va vaqtni ko‗rsatish hamda sanalarni hisoblash, sanalar ustida amallar bajarish imkonini beradi. 41
socket Modul kompyuterlarni internet orqali birbiriga ulash uchun
qo‗llaniladi. turtle Modul ekranda chiziq va figuralarni chizish uchun qo‗llaniladi. 62-63.3-masala. 10 va 10000 ning oraligвЂidan 5 ta tasodifiy sonni chiqarish dasturini tuzing. Dastur:
from random import randint
imkoniyatlarni beradi. copy Modul nusxalash bilan bog‗liq masalalarni hal qilishga mo‗ljallangan. sys Python interpretatorida dasturni bajaruvchi muhit hisoblanadi random Modul tasodifiy sonlarni generatsiya qilishni boshqaradi. Modullarni dasturga yuklashning uch xil usuli mavjud. 1-usul. Modul funksiyalarini yuklab olishning bu usulida murojaat etilayotgan kod fragmentidan oldin modulning nomi ko‗rsatilishi lozim. Bunday dasturlarni o‗qish juda oson, chunki kod qaysi modulga tegishli ekanligini tez aniqlash mumkin.
for i in range(5):
Sintaksisi: import modul fayli nomi. (import — modulni yuklovchi kalit so‗z) 2-usul. Modul funksiyalarini yuklab olishning bu usuli uncha katta bo‗lmagan dasturlar uchun qulay. Katta dasturlarda esa dasturni tushunish qiyin kechadi, ya‘ni funksiya qaysi modulga taalluqli ekanligini aniqlash uchun biroz urinish kerak bo‗ladi. Sintaksisi: from modul fayli nomi import * (from ... import * – modulni yuklovchi kalit so‗z) 3-usul. Moduldan faqat funksiyalarning o‗zini yuklab olish ham mumkin. Agar dasturdan faqat bitta funksiya kerak bo‗lsa, u holda funksiyalarning barchasini emas, kerakli funksiyaning o‗zinigina yuklab olgan ma‘qul. Sintaksisi: from modul fayli nomi import funksiya nomi random modulining funksiyalari Funksiyalar Tavsifi random(x) 0 dan 1 gacha tasodifiy sonlarni hosil qiladi. randint(start, stop) startdan stopgacha bo‗lgan oraliqdagi tasodifiy sonlarni hosil qiladi. randrange(start,stop,step) qandaydir sonlar to‗plamidan startdan stopgacha bo‗lgan oraliqda step qadami bilan tasodifiy sonlarni hosil qiladi. 62-63.1-masala. 0 va 1 ning oraligвЂidan 10 ta tasodifiy sonni chiqarish dasturini tuzing. Dastur:
from random import random
42
for i in range(10):
print(random()) from math import* r=float(input('Radiusni kiriting=')) alfa=float(input('Burchak kattaligini kiriting=')) print(randint(10,10000)) 62-63.4-masala. 20 va 50 ning oralig‗idan 2 qadam bilan 7 ta tasodifiy sonni chiqarish dasturini tuzing. L=pi*r*alfa/180 from random import randrange for i in range(7): print(randrange(20,50,2)) 64-dars. AMALIY MASHG‘ULOT math modulining funksyalari Funksiyalar Tavsifi ceil(x) Eng yaqin katta butun songacha yaxlitlaydi. Ceil(1.5)==2, ceil(–1.5)==–1 round(x, n) x sonini nuqtadan keyin n ta belgi qolgunga qadar yaxlitlaydi. floor(x) Eng yaqin kichik butun songacha yaxlitlaydi. Floor(1.5)==1, floor(–1.5)== –2 round(x) x sonini yaxlitlaydi. log(a, b) b asosga ko‗ra a logarifmini hisoblaydi. log10(x) x sonining o‗nli logarifmini hisoblaydi. sqrt(x) x ning kvadrat ildizini hisoblaydi. pow(x, n) x ning n-darajasini hisoblaydi. factorial(x) x faktorialni hisoblaydi. abs(x) x ning modulini hisoblaydi. cos(x) x ning kosinusini hisoblaydi. sin(x) x ning sinusini hisoblaydi. tan(x) x ning tangensini hisoblaydi. acos(x) x ning arkkosinusini hisoblaydi. asin(x) x ning arksinusini hisoblaydi. atan(x) x ning arktangensini hisoblaydi. degrees(x) Radiandan gradusga o‗tkazadi. radians(x) Gradusdan radianga o‗tkazadi. 43
64.1-masala. Berilgan burchak yoyining uzunligini hisoblovchi dastur tuzing.
Yoyning burchagi (gradusda) hamda radiusi foydalanuvchi tomonidan kiritiladi. Dastur:
ilovam‖ nomli GUI oynasini yaratuvchi dastur kodini yozing. Oynada ―Salom
O‗zbekiston‖ xabarini chiqaruvchi tugmachasini joylashtiring. Dastur:
print('Yoy uzunligi=',L)
64.2-masala. y = x * cos x funksiyasi qiymatini hisoblovchi dastur tuzing. x foydalanuvchi tomonidan kiritiladi. Dastur:
from math import*
x=float(input('x kiriting=')) y=x*cos(x) from tkinter import * print('y=',y) 64.3-masala. Kvadrat tenglamaning ildizlarini hisoblash dasturini tuzing. a, b, c foydalanuvchi tomonidan kiritiladi. Dastur:
from math import*
a=float(input('a=')); b=float(input('b=')); c=float(input('c=')); d=b*b-4*a*c if d==0: x=-b/2
print('x=',x)
elif d>0: x1=(-b+sqrt(d))/2; x2=(-b-sqrt(d))/2; print('x1=',x1); print('x2=',x2) else:
print('Yechimi yo`q')
64.5-masala. Doira sektorining yuzasini hisoblash dasturini tuzing. Doiraning radiusi hamda sektorning burchagi (gradusda) foydalanuvchi tomonidan kiritiladi. Dastur:
from math import*
r=float(input('Radiusni kiriting=')) alfa=float(input('Burchakni kiriting=')) S=pi*pow(r,2)*radians(alfa)/2 print('S=',S) 65–66-darslar. PYTHONDA FOYDALANUVCHI 44
GRAFIK INTERFEYSI BILAN ISHLASH
65-66.1-masala. Rangi yashil, o‗lchami 100x100 bo‗lgan ―Mening birinchi radio4=Radiobutton(window, text='Limon', variable=meva, value='limon') radio4.grid(row=9, column=0, sticky=W) radio4.configure(background='yellow') window = Tk() window.title('Mening birinchi dasturim') window.geometry('300x200') window.configure(background='green') my_label=Label(window, width=40, radio4.select() height=5, bg='Green', text='') my_label.grid(row=0, column=0) def change_text(): my_label.config(text="Salom O;zbekiston ") my_button=Button(window,text="Tugmani bos", width=10, command=change_text) my_button.grid(row=2, column=0) window.mainloop() 65-66.2-masala. Rangi pushti, o‗lchami 250x150 bo‗lgan ―Mevalar‖ nomli GUI oynasini yaratuvchi dastur kodini yozing. Oynada berilgan 4 ta mevadan birini tanlash imkonini beruvchi vijetni joylashtiring. Dastur:
from tkinter import *
window = Tk() window.title('Mevalar') window.geometry('250x250') window.configure(background='') meva=StringVar() radio1=Radiobutton(window, text='Anor', variable=meva, value='anor') radio1.grid(row=3, column=0, sticky=W) radio1.configure(background='red') radio1.select() radio2=Radiobutton(window, text='Olma', variable=meva, value='olma') radio2.grid(row=5, column=0, sticky=W) radio2.configure(background='green') radio2.select() 45
radio3=Radiobutton(window, text='Mandarin', variable=meva, value='mandarin')
radio3.grid(row=7, column=0, sticky=W) radio3.configure(background='red') radio3.select() foydalanuvchi tomonidan kiritiladi. Dastur:
from tkinter import *
Checkbutton() window.mainloop() 67-dars. AMALIY MASHG‘ULOT from random import randint 67.1-masala. GUIdan foydalanib, berilgan songa karrali 10 ta sonni chiqaruvchi dastur tuzing. Berilgan son foydalanuvchi tomonidan kiritiladi. Dastur:
from tkinter import *
from random import randint def tasodifiy(): number=int(textbox_input.get()) textbox_output.delete(0.0,END) for i in range (1,11): t_son=randint(1, 10); t_son=t_son*number; t_son=str(t_son)+'\n' textbox_output.insert(END,t_son) window=Tk() window.title('Karrali sonlar') window.geometry('250x300') window.configure(background='yellow') input_label=Label (window, text='Sonni kiriting: ', bg='yellow') input_label.grid (row=0, column=0) output_label=Label(window, text='\nNatija', bg='yellow') output_label.grid(row=3, column=1) textbox_input=Entry (window, width=5) textbox_input.grid (row=0, column=1) textbox_output=Text(window,height=10, width=6) textbox_output.grid(row=4, column=1) kubik_button=Button(window,text='Karrali sonlarni chiqarish',command=tasodifiy) kubik_button.grid(row=3,column=1) window.mainloop() 46
67.2-masala. GUIdan foydalanib, berilgan
songa karrali sonlarni chiqaruvchi dastur tuzing. Berilgan son va karrali sonlarning soni 1-masala. O‗nli sanoq sistemasidagi butun sonni boshqa sanoq sistemasiga o‗tkazadigan dastur tuzing. Dastur kodi: def tasodifiy(): number1=int(textbox_input1.get()) number2=int(textbox_input2.get()) textbox_output.delete(0.0,END) for i in range (1,number2+1): n=int(input('N natural sonni kirirting=')) t_son=randint(1, 10) t_son=t_son*number1 t_son=str(t_son)+'\n' textbox_output.insert(END,t_son) window=Tk() window.title('Karrali sonlar') window.geometry('350x300') window.configure(background='yellow') input_label=Label (window, text='Sonni kiriting: ', bg='yellow') input_label.grid (row=0, column=0) input_label=Label (window, text='Karrali sonlar miqdori: ', bg='yellow') input_label.grid (row=1, column=0) output_label=Label(window, text='\nNatija', bg='yellow') output_label.grid(row=3, column=1) textbox_input1=Entry (window, width=5) textbox_input1.grid (row=0, column=1) textbox_input2=Entry (window, width=5) textbox_input2.grid (row=1, column=1) textbox_output=Text(window,height=10, width=6) textbox_output.grid(row=4, column=1) kubik_button=Button(window,text='Karrali sonlarni chiqarish',command=tasodifiy) kubik_button.grid(row=3,column=1) window.mainloop() 47
Ilovalar
I. Olimpiada masalalaridan namunalar Dastur kodi: for a in range(1,10): for b in range(1,10): for c in range(1,10): k=int(input("Berilgan sonni o'tkazish kerak bo'lgan sanoq sistemasining asosi=")) s=''; s1='' while n>=k: q=n%k
if n if q==13: s1='D'; if q==14: s1='E'; if q==15: s1='F' s=s1+s; n=n//k; s=str(n)+s print()
if 11*(a+b)==101*c+10*b: print('A=',a,'; B=',b,'; C=',c)
print('Kiritilgan sonning ',k,' lik sanoq sistemasidagi ifodasi: ',s) 2-masala. Kiritilgan so‗zning polindrom yoki polindram emasligini aniqlovchi dastur tuzing. Dastur kodi: a=input('Matnni kiriting=') n=len(a); s=" " for i in range(0,n): s=a[i]+s print("Teskarilangan so'z=",s) if a==s: print(a," so'zi polindrom") else:
print(a," so'zi polindrom emas")
3-masala. Berilgan [A; B] kesmadagi barcha tub sonlarni aniqlovchi dastur tuzing.
Dastur kodi:
from math import* a=int(input('A sonini kiriting A=')); b=int(input('B sonini kiriting B=')) for i in range(a,b+1): k=0; if i==2: print(2); if i==3: print(3); n1=int(sqrt(i))+1 for j in range(2,n1): if i%j==0: k=0; break else: k=1 if k==1: print(i,'; ') 48
CBCCBC
4-masala. += (bunda, va—ikki xonali sonlar, esa AABBAABB
uch xonali son) bo‗lsa, A, B, C raqamlarni toping. if 89 if 1<=n<=3: print(n1+'I'*n) if n==4: print(n1+'IV') 5-masala. *m= (bunda, m — bir xonali son, —to‗rt xonali son, mateatikamate if n==5: print(n1+'V') esa besh xonali son) bo‗lsa, a,i,e,k,m,t raqamlarni toping. atika
Dastur kodi:
for a in range(1,10): for i in range(0,10): for e in range(0,10): for k in range(0,10): for m in range(1,10): for t in range(0,10): if (1000*m+100*a+10*t+e)*m==10001*a+1000*t+100*i+10*k: if 5 print('a=',a,'; i=',i,'; e=',e,'; k=',k,'; m=',m,'; t=',t) 6-masala. Kiritilgan satrdagi lotin alifbosi harflaridan boshqa barcha belgilarni o‗chirib chiqaruvchi dastur tuzilsin. Dastur kodi: a=input('Satr=') s=''
k=len(a)
for i in range(0,k): if ('a'<=a[i]<='z') or ('A'<=a[i]<='Z'): s+=a[i] print(s) 7-masala. Kiritilgan 1 dan 99 gacha bo‗lgan natural sonlarni rim raqamlarida tasvirlab beruvchi dastur tuzing. Dastur kodi: n=int(input('n(1 dan 99 gacha)=')) n1=''
if 9 if 19 if 29 if 39 if 49 49
if 59 if 69 if 79 print('Max='+str(max), '; Min='+str(min)) 2-usul.
if n==9: print(n1+'IX')
8-masala. Quyidagicha to‗plamlar ketma-ketligi berilgan: {1},{2;3},{4;5;6};{7;8;9;10}, … . a=[]
n-to‗plamdagi sonlar yig‗indisini hisoblash dasturini tuzing.
Dastur kodi: n=int(input('N ning qiymatini kiriting=')) s=0
n1=int((n-1)*n/2+1)
for i in range(n1,n1+n): s=s+i print('S=',s) 9-masala: Berilgan haqiqiy x soni uchun quyidagi A butun qiymat qabul qiluvchi funksiya qiymatini hisoblaydigan dastur tuzing. n=int(input('Elementlar soni='))
• ;'...),15;12[),9;6[),3;0[,2lsabotegishlioraliqqasonixagarA • ;'...),18;15[),12;9[),6;3[,2lsabotegishlioraliqqasonixagar • Dastur kodi: x=float(input('x=')) if x<0: y=19 elif x//3%2==0: y=2 else: y=-2 print('y=',y) 10-masala. A(N) massivning eng katta va eng kicik elementlarini aniqlovchi dastur tuzilsin. Dastur kodi: 1-usul.
a=[]
n=int(input('Elementlar soni=')) for i in range(0,n): a.append(int(input('element='))) max=a[0]; min=a[0]; 50
for k in range(1,n):
if a[k]>max: max=a[k]; if a[k] print('Dastlabki massiv') for i in range(n): for j in range(n): for i in range(0,n): a.append(int(input(str(i)+'-elementni kiriting='))) max=max(a); min=min(a) print('max='+str(max),'; min='+str(min)) print(c[i][j],end=' ') 11-masala. A(N) chiziqli massiv elementlarini o‗sish yo‗nalishida tartiblovchi dastur tuzilsin. Dastur kodi: 1-usul.
a=[]
n=int(input('Elementlar soni=')) for i in range(0,n): a.append(int(input('element='))) k=1; m=0 while k==1: k=0
for i in range(1,n):
if a[i-1]>a[i]: m=a[i-1]; a[i-1]=a[i]; a[i]=m; k=1 for i in range(0,n): print(a[i],'; ') 2-usul.
a=[]
n=int(input('Elementlar soni=')) for i in range(0,n): a.append(int(input(str(i)+'-elementni kiriting='))) a.sort() print(a) 12-masala. A[N,N] jadval elementlari 0 va 7 raqamlaridan iborat. Undagi 0 larni 7 ga va 7 larni 0 ga almashtiruvchi dastur tuzing. Eslatma. Shartdan foydalanish mumkin emas!!! Dastur kodi: 51
from random import*
n=int(input('satrlar va ustunlar soni N=')) c=[[7*randint(0,1) for i in range(n)] for j in range(n)] print()
satr faqat raqamlardan iboratligini tekshiradi.
S.isdigit() satr faqat harflardan iboratligini tekshiradi. S.isalpha() satr faqat raqamlar va harflardan iboratligini S.isalnum() print()
print()
print("O'zgartirilgan massiv") for i in range(n): for j in range(n): c[i][j]=abs(c[i][j]-7) tekshiradi. print(c[i][j],end=' ') print()
II. Ba’zi standart funksiya va protseduralar
–х Ishorani almashtirish; +х Ishora o‗zgarmaydi; abs(x) x ning moduli; int(x) Butun turga almashtirish; long (х) Butun (uzun) turga almashtirish; float(x) Qo‗zg‗aluvchi vergulli turga almashtirish; divmod (х, у) (х / у, х % у) juftlikni aniqlash; х in s 1 ga teng, agar x • s, 0 ga teng, agar x • s;
х not in s 1 ga teng, agar x
• s, 0 ga teng, x • s;
min (s) Eng kichik elementni aniqlaydi;
max(s) Eng katta elementni aniqlaydi; III. Satrlar bilan ishlash funksiya metodlari S.find(str, [start],[end]) satrdan satr ostini izlash. Birinchi uchragan raqamni yoki –1 ni qaytaradi. S.rfind(str, [start],[end]) satrdan satr ostini izlash. Oxirgi uchragan raqamni yoki –1 ni qaytaradi. S.index(str, [start],[end]) satrdan satr ostini izlash. Birinchi uchragan raqamni yoki ValueErrorni qaytaradi. S.rindex(str, [start],[end]) satrdan satr ostini izlash. Oxirgi uchragan raqamni 52
yoki ValueErrorni qaytaradi.
S.replace(shablon, o‗rniga) shablonni almashtirish. S.split(simvol) bo‗linish belgisi bo‗yicha satrni bo‗lish. Rejim Ma’nosi 'r' O‗qish uchun ochish (boshqa holat ko‗rsatilmasa, odatiy hol hisoblanadi) satr faqat quyi registrdagi belgilardan iboratligini S.islower() tekshiradi. satr faqat yuqori registrdagi belgilardan iboratligini S.isupper() 'w' Yozish uchun ochish, faylning tarkibi o‗chiriladi, agar bunday fayl mavjud tekshiradi. satr aks ettirilmaydigan simvollardan iboratligini S.isspace() tekshirish (bo‗sh joy, sahifa o‗tkazish belgisi (‗f‘), ―yangi satr‖ (‗\n‘), ―karetkani ko‗chirish‖ (‗\r‘), ―gorizontal tabulyatsiya‖ ‗\t‘ hamda ―vertikal tabulyatsiya‖ ‗\v‘ ). satrdagi so‗zlarning bosh harflardan S.istitle() boshlanganligini bo‗lmasa, yangisi yaratiladi tekshiradi. satrni yuqori registrga aylantirish. S.upper() satrni quyi registrga aylantirish. S.lower() lstrip([chars]) satr boshidagi bo‗sh joylarni o‗chirish. S.rstrip([chars]) satr oxiridagi bo‗sh joylarni o‗chirish. S.strip([chars]) satr boshidagi va oxiridagi bo‗sh joylarni o‗chirish. quyi registr simvollarini yuqori registrga va swapcase() aksincha, yuqori registr simvollarini quyi registrga aylantiradi. har bir so‗zning birinchi harfini yuqori registrga, S.title() qol- ganlarini esa quyi registrga o‗tkazadi. S.z1ll(width) satrning uzunligini satr boshiga keraklicha nollar bilan to‗ldirilgan holda widthdan kalta bo‗lmagan holatga o‗tkazadi. S.ljust(width, fillchar=‛ ‛) satrning uzunligini satr oxirida keraklicha fillchar bel- gilari bilan to‗ldirilgan holda widthdan kalta bo‗lmagan holatga o‗tkazadi. S.rjust(width, fillchar=‛ ‛) satrning uzunligini satr boshida keraklicha fillchar belgilari bilan to‗ldirilgan holda widthdan kalta bo‗lmagan holatga o‗tkazadi. 53
IV. Pythonda fayllar bilan ishlash
Faylni ochish: f = open('fayl nomi', 'rejim'); Faylni yopish: f.close() • KeyError – mavjud bo‗lmagan kalit (lug‗at, obyekt yoki boshqa to‗plamda). * MemoryError – xotira yetishmovchiligi. * NameError – ko‗rsatilgan nomdagi o‗zgaruvchi topilmadi. • UnboundLocalError – funksiyadagi lokal o‗zgaruvchiga murojaat qilingan, ammo bu 'x' Yozish uchun ochish, agar bunday fayl mavjud bo‗lmasa, noodatiy holat yuzaga keladi 'a' Qo‗shimcha yozish uchun ochish. Qo‗shilayotgan ma‘lumot faylning oxiriga qo‗shiladi 'b' Ikkilik rejimda ochish 't' Matnli rejimda ochish(boshqa holat ko‗rsatilmasa, odatiy hol hisoblanadi) '+' O‗qish va yozish uchun ochish o‗zgaruvchi oldindan e‘lon qilinmagan. V. Pythonda xatolik xabarlari • BaseException – barcha boshqa noodatiy holatlarning asosi bo‗lgan bazaviy noodatiy holat.
— SystemExit – dasturdan chiqish paytida sys.exit funksiyasi tomonidan yuzaga keltiril-
adigan noodatiy holat. — KeyboardInterrupt – foydalanuvchi tomonidan dastur ishi to‗xtatilganda (odatda, Ctrl+C kombinatsiyasi orqali) yuzaga keladi. — GeneratorExit – generator obyektining close metodiga murojaat qilinganda yuzaga keladi.
— Exception – mana bu yerda esa sistemaning noodatiy holatlari yakuniga yetdi (ularga
yaxshisi tegmagan ma‘qul) hamda ular bilan ishlash mumkin bo‗lgan oddiylari boshla- nadi.
* StopIteration – agar iteratorda boshqa element qolmagan bo‗lsa, u holda next ichki
funksiyasi tomonidan yuzaga keltiriladi. * ArithmeticError – arifmetik xatolik • FloatingPointError – suzivchi vergul ustida xato amal bajarilganda yuzaga keladi. Amaliyotda juda kam uchraydi. • OverflowError – arifmetik amalning natijasini ko‗rsatish uchun haddan tash- qari katta bo‗lib ketganda yuzaga keladi. Butun sonlar bilan ishlash kabi oddiy holatlarda yuzaga kelmaydi, chunki Python uzun sonlar bilan ishlash imkoniyatiga ega. Ammo ba‘zi boshqa holatlarda yuzaga kelishi mumkin. • ZeroDivisionError – nolga bo‗lish. * AssertionError – assert funksiyasidagi iborat yolg‗on. * AttributeError – obyekt ko‗rsatilgan atribut (qiymat yoki metod)ga ega emas. * BufferError – bufer bilan bog‗liq operatsiyani bajarishning imkoni yo‗q. * EOFError – funksiya faylning oxiriga taqalib qoldi va izlagan ma‘lumotini o‗qiy 54
olmadi.
* ImportError – modul yoki uning atributini import qilib bo‗lmadi. * LookupError – noto‗g‗ri indeks yoki kalit. • IndexError – index elementlar diapazoniga kirmaydi. And del for is raise assert elif from lairbda return break else global not try class except if or while * OSError – sistema bilan bog‗liq xatolik. • BlockingIOError – kiritish-chiqarish bilan bog‗liq xatolik. • ChildProcessError – quyi darajadagi jarayon bilan bog‗liq xatolik. • ConnectionError – aloqa bilan bog‗liq noodatiy holatlar uchun bazaviy klass. • BrokenPipeError – kanalga yozishga urinish vaqtida kanalning ikkinchi uchi yopiq bo‗lgan hollarda yuzaga keladi. • ConnectionAbortedError – aloqa tuguni tomonidan yakunlanish vaqtida yuzaga keladi.
• ConnectionRefusedError – tugunning aloqani rad etishi natijasida yuzaga keladi.
• ConnectionResetError – tugun tomonidan ulanish uzib qo‗yilganda yuzaga keladi. • FileExistsError – oldindan mavjud bo‗lgan fayl yoki papkani yaratishga urinish davrida yuzaga keladi. • FileNotFoundError – fayl yoki papka mavjud emas. • InterruptedError – tizim so‗rovi kiruvchi signal tomonidan uzib qo‗yilgan. • IsADirectoryError – fayl kutilayotganda, papka kelganda yuzaga keladi. • NotADirectoryError – papka kutilayotganda, fayl kelganda yuzaga keladi. • PermissionError – boshqarish huquqlari yetishmaydi. • ProcessLookupError – ko‗rsatilgan jarayon mavjud emas.. • TimeoutError – kutish vaqti nihoyasiga yetdi. * ReferenceError – kuchsiz havolali atributga murojaat qilishga urinish. * RuntimeError – noodatiy holat boshqa birorta ham shunday holatlarga mos kel- maganda yuzaga keladi. * NotImplementedError – klassning abstrakt metodlar o‗z bo‗ysinuvidagi boshqa klasslarda qayta aniqlashni talab qilganda yuzaga keladi. * SyntaxError – sintaktik xatolik. • IndentationError – xato bo‗sh joy tashlashdan iborat (siljishlar). • TabError – siljishlarda bo‗sh joy tashlash hamda tabulyatsiya belgilarining aralashtirilishi. * SystemError – ichki xatolik. * TypeError – amal mos kelmaydigan tipli obyektga nisbatan qo‗llanilgan. * ValueError – funksiya to‗g‗ri tipli, lekin xato qiymatli argument olganda yuzaga keladi.
* UnicodeError – unikod satrlarning xato kodlanishi/dekodlanisi bilan bog‗liq xato- lik.
• UnicodeEncodeError – unikod kodlash bilan bog‗liq xatolik. • UnicodeDecodeError – inikod dekodlash bilan bog‗liq xatolik. • UnicodeTranslateError – unikod tarjimasi bilan bog‗liq xatolik. * Warning – ogohlantirish. 55
VI. Pythonda foydalanish mumkin bo‘lmagan nom (identifikator) lar Pythonda ma‘lumot turlari ……………………………………………………….. 5 Amaliy mashg‗ulot ……………………………………………………………….. 6 Nazorat ishi ……………………………………………………………………….. 8 Pythonda arifmetik amallarni bajarish …………………………………………… 8 Amaliy mashg‗ulot ……………………………………………………………….. 9 Foydalanilgan adabiyotlar 1. Informatika va axborot texnologiyalari: Umumiy o‗rta ta‘lim maktablarining 9-sinfi uchun darslik: M. R. Fayziyeva, D. M. Sayfurov, N. S. Xaytullayeva – Тoshkent-2020. 2. Python dasturlash tili. Saidov D.Yu. – Toshkent-2019 3. Python. Наиболее полное руководство. Сузи Р.А. – Петербург-2002 4. Изучаем Python. Лутц М. Санкт-Петербург-2009 5. Python на примерах. Васильев А.Н. Санкт-Петербург-2016 6. Глубокое обучение на Python. Шолле Ф. Санкт-Петербург-2018 7. Viloyat va tuman fan olimpiadalari materillari (2010-2018). Internet manbalari: 1. PDFDrive.com 2. ZiyoNET.uz 3. Python.org 56
Mundaruja
I. DASTURLASH ASOSLARI Pythonda o‗zgaruvchilarni tavsiflash …………………………………………….. 3 ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ Pythonda satrlar bilan ishlash …………………………………………………….. 12 Amaliy mashg‗ulot ……………………………………………………………….. 13 Pythonda operator va ifodalar ……………………………………………………. 15 Amaliy mashg‗ulot ……………………………………………………………….. 16 Pythonda sodda masalalarni dasturlash …………………………………………... 17 Amaliy mashg‗ulot ……………………………………………………………….. 18 Tarmoqlanuvchi algoritmlarni dasturlash. If…Else operatori …………………… 21 Amaliy mashg‗ulot ……………………………………………………………….. 22 ____________________________________________________________ Tarmoqlanuvchi algoritmlarni dasturlash. Elif operatori ………………………… 23 Amaliy mashg‗ulot ……………………………………………………………….. 24 Takrorlanuvchi algoritmlarni dasturlash. For operatori …………………………... 27 Amaliy mashg‗ulot ……………………………………………………………….. 28 Nazorat ishi ……………………………………………………………………….. 29 Takrorlanuvchi algoritmlarni dasturlash. While operatori ……………………….. 31 Amaliy mashg‗ulot ………………………………………………………………. 32 Sikllarni boshqarish: Continue, Break operatorlari ……………………………….. 33 Qism dasturlar: Funksiyalar va Protseduralar …………………………………….. 34 Amaliy mashg‗ulot ………………………………………………………………... 34 Funksiyalar va o‗zgaruvchilar …………………………………………………….. 37 Amaliy mashg‗ulot ……………………………………………………………… 38 Python dasturlash tili kutubxonasi ………………………………………………... 40 Amaliy mashg‗ulot ………………………………………………………………... 42 Pythonda foydalanuvchi grafik interfeysi bilan ishlash …………………………... 43 Amaliy mashg‗ulot ………………………………………………………………... 44 II. ILOVALAR Olimpiada masalalaridan namunalar ……………………………………………… 47 Ba‘zi standart funksiya va protseduralar ………………………………………….. 52 Satrlar bilan ishlash funksiya metodlari …………………………………………... 52 Pythonda fayllar bilan ishlash …………………………………………………… 53 Pythonda xatolik xabarlari ……………………………………………………….. 54 Pythonda foydalanish mumkin bo‗lmagan nom (identifikator) lar ……………… 55 Qaydlar uchun 57
____________________________________________________________
____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ 58
59
Chust-2020 © Tashov M.J 60
60,1,58,3,56,5,54,7,52,9,50,11,48,13,46,15,44,17,42,19,40,21,38,23,36,25,34,27,32,29
30,31,28,33,26,35,24,37,22,39,20,41,18,43,16,45,14,47,12,49,10,51,8,53,6,55,4,57,2,59 |
ma'muriyatiga murojaat qiling