C va Py- - Dasturlash 0-qadam: matematika

C va Py-
thon dasturlash tillaridagi yozilishi quyidagicha:
printf("%d", 7 * (4 - 5 * 2) + 11 * (20 * 2 - 44));
// -86
print(7 * (4 - 5 * 2) + 11 * (20 * 2 - 44)) # -86
Faqat esdan chiqarmaslik lozim,
C dasturlash tilida ifoda
qiymati «Musbat va manfiy sonlar» mavzusidagi berilgan che-
garadan chiqib ketib qolsa, javob noto‘g‘ri chiqadi.
Python
dasturlash tilida chegara mavjud emas.
Mavzuga doir masalalar:
Butun sonlarni boʻlish
Sonlarni bo‘lish amali aslida sonlarni ko‘paytirish amaliga
teskari amal bo‘lib, bo‘lish birorta bir narsani teng qismlarga
yoki guruhlarga ajratishni anglatadi. Masalan, 15 ta olmani 5
ta bolaga teng taqsimlasak har bir bolada 3 tadan olma bo‘ladi
va matematik ifodasi quyidagicha:
46
15 :5 3
=
:
bo‘lish belgisi bo‘lib, ba’zi manbalarda
÷
belgisi bilan
keladi. Yozma shaklda odatda
15 / 5
ko‘rinishida ham yoziladi.
Endi
15 :5
ifodani hisoblashni o‘rgansak. Buning uchun
5 ta bolani ketma-ket qilib joylashtiramiz va 15 ta olmani har
bir bolaga 1 tadan berishni boshlaymiz:
1-bola
2-bola
3-bola
4-bola
5-bola
1-qadamda 1 ta olma 1 ta olma
1 ta olma
1 ta olma
1 ta olma
2-qadamda 2 ta olma 2 ta olma
2 ta olma
2 ta olma
2 ta olma
3-qadamda 3 ta olma 3 ta olma
3 ta olma
3 ta olma
3 ta olma
Ko‘rib turganingizdek 1-qadamda har bir bolada 1 tadan
olma bo‘ladi. 2-qadamda 2-tadan, 3-qadamda 3 tadan. Shu
bilan olmalar tugaydi. Demak, 15 ta olmani beshta bola teng
taqsimlab olsa, har bir bolaga 3 tadan olma tegarkan.
Yuqoridagi masalani teskarisini tuzsak ham bo‘ladi. Ya’ni
beshta bolaning har birida 3 tadan olma bor bo‘lsa, ularda jami
15 ta olma mavjud bo‘ladi:
5 3 5 5 5 15
⋅ = + + =
Mavzu boshida yozganimizdek, bo‘lish amali ko‘paytirish
amaliga teskari amal ekan, xuddi qo‘shish va ayirish amal-
lari kabi. Umumiy qoida esa quyidagicha:
a
sonini
b
soniga
bo‘lganda, shunda
c
sonni topish kerakki, topilgan
c
sonining
b
soniga ko‘paytmasi
a
sonini hosil qilsin. Ya‘ni:
:
a b c
=
yoki
b c a
⋅ =
Ushbu ifoda barcha sonlar uchun o‘rinli qoida, lekin
c
sonini qanday topamiz? Har bitta sonni
b
soniga ko‘paytirib
chiqish juda ko‘p vaqtni oladi. Agar sonlar juda katta bo‘lsa
buning deyarli imkoni yo‘q.
Shu yerda sizga bitta kichik sirni ochamiz. Agar siz
xohlagan katta sonni 1, 2, 3, 4, 5, 6, 7, 8 va 9 sonlariga ko‘pay-
47
tira olsangiz, bilingki ikkita sonni bemalol bo‘la olasiz. Qan-
day deysizmi, quyidagi misolga e’tibor bering:
141248775 :5649951 ?
=
Bir qarashda murakkabga o‘xshaydi, lekin shu murakkab
ifodani ham sodda usul bilan hisoblash mumkin. Buning uchun
quyidagi ketma-ketlikni barajamiz:
1) Birinchi sonda chapdan boshlab to
5649951
sonidan
katta son hosil bo‘lguncha raqamlarni ajratib olamiz.
Bizni holatda
141248775
sonida chapdan boshlab,
5649951
sonidan katta son hosil qilish uchun 14124877
sonini olishimiz kerak bo‘ladi. Qolib ketgan 5 raqami
hozircha hisob-kitoblarda ishtirok etmaydi.
2) Endi 1 va 9 orasidan shunday ketma-ket ikkita son to-
pishimiz kerak. Agar birinchi sonni
5649951
soniga
ko‘paytirsak, yangi hosil bo‘lgan 14124877 sonidan
kichik bo‘lishi kerak, agar ikkinchi songa ko‘paytirsak
14124877 sonidan katta bo‘lishi kerak. Bizni holatda 2
va 3 sonlari bo‘ladi.
2 5649951 11299902
⋅
=
va natija
14124877 dan kichik
3 5649951 16949853
⋅
=
va natija
14124877 dan katta.
3) Topilgan 2 va 3 sonidan biz umumiy javobga 2 raqamini
yozib turamiz, ya’ni kichik sonni. Hozircha javob 2.
Endi yangi hosil qilingan 14124877 sonidan
2 5649951
⋅
ifodaning qiymatini ayiramiz:
14124877 2 5649951 14124877 11299902 2824975
− ⋅
=
−
=
4) Endi hosil bo‘lgan
2824975
soniga yuqorida qolib
ketgan 5 raqamini oxiriga yozamiz va
28249755
sonini hosil qilamiz. Xuddi 2-qadamdagiday
ketma-ket ikkita sonni topishimiz kerak. Bizning
48
holatda 5 sonining o‘zi yetarli bo‘ladi, chunki:
5 5649951 28249755
⋅
=
5) Topilgan 5 sonini javob oxiriga yozamiz. Javob 25.
6) Birinchi sonimizda raqamlar tugadi demak:
141248775 :5649951 25
=
yoki
5649951 25 141248775
⋅
=
Ko‘rib turganingizdek ikkita sonni bo‘lish uchun biz faqat
sonni 1 dan 9 gacha ko‘paytirish va ayirish amallaridan foy-
dalandik.
Yuqoridagi misol yordamida bo‘lish amali qanday qili-
nishini qisqacha ko‘rsatdik. Aslida bo‘lish amalida
bir qancha qo‘shimcha shartlar ham mavjud.
Shuning uchun quyidagi havolaga o‘tib video
materiallarini yaxshilab
o‘rganing
.
Qiziq fakt: Bo‘lish belgisi sifatida / belgisini Otred Uilyam,
÷
(lotincha «obelus») belgisini Rahn Iogann (nemischa Jo-
hann Heinrich Rahn, 1659-yilda) qo‘llashni taklif qilgan.
«Butun sonlarni ko‘paytirish» mavzusida o‘rgangan barcha
qonuniyatlarimiz va qavslarni ochish bo‘lish amali uchun ham
o‘rinlidir, faqat ko‘paytirish belgisi o‘rniga bo‘lish amalini
qo‘yib o‘rganamiz.
Yuqoridagi qonuniyatlarga bitta istisno mavjud, ya’ni sonni
0 ga bo‘lib bo‘lmaydi:
: 0
'
a
noma lum son
=
Lekin 0 sonini xohlagan songa bo‘lish mumkin va natija
har doim 0 ga teng:
0 :
0; 0
a
a
=
≠
.
≠
teng emasligini bildi-
radigan belgi.
Agar ifodalarda ko‘paytirish va bo‘lish amali ketma-ket
kelsa, ifodani chapdan boshlab o‘ngga qarab hisoblaymiz.
Masalan quyidagi ifodaga e’tibor bering:
49
(
)
6 : 2 1 2
⋅ +
Ushbu ifoda internet tarmog‘ida juda mashhur. Ayrimlar
javobni 9 chiqarsa ayrimlar 1 javobini chiqaradi. Aslida ikka-
lasi ham to‘g‘ri, lekin hozirgi kunda 9 javobi to‘g‘ri bo‘ladi.
Chunki oldinlari ko‘paytirish amali bo‘lish amalidan oldin
hisoblangan.
Ifoda esa quyidagicha hisoblanadi:
(
)
( )
6 : 2 1 2
6 : 2 3 6 : 2 3 3 3 9
⋅ +
=
⋅
=
⋅ = ⋅ =
|