Salom qadrli blogimning o’quvchilari! Dasturlashda (har qanday dasturlash tilida bo’lsin) tuzmoqchi bo’layotgan dasturning oldin algarotmini tuzish juda muhim, shunda dasturni kodlash ya’ni biron dasturlash tilida dastur uchun kod yozish osonlashadi.
Ushbu maqola ham dastur uchun algoritm yozish to’g’risida ya’ni dastur uchun mos algoritm tuzishning ba’zi bosqichlarini na’munalar bilan uygu’nlashtirgan holda ko’rib chiqamiz.
DIQQAT E’LON! Java dasturlash tillari bo’yisha video kurs tayyor. Video kurs haqidagi ma’lumotni quyidagi rasm ustiga bosib o’qishingiz mumkin:
Algoritm tuzishni o’rganishga kirisharkanmiz shuni eslatmoqchi edim, bundan oldingi maqolada ma’lumotlar tuzilishi va algoritmlar bilan oz muncha tanishib chiqqandik, hozirgi maqolaga aloqasi bo’lgani uchun uni ham o’qib chiqishni tavsiya qilaman. Maqolaga o’tish uchun manabu ssilkaga bosing!
Algoritm va uning xususiyatlari to’g’risida oldingi maqolada aytilgan bo’lsada, bu yerda ham eslatma qilmoqchiman.
Algoritm haqida!
Algoritm matematika va kompyuter sohasida ishlatiladigan bosqichma-bosqich ko’rsatmalar top’lami (kolleksiyasi). Kompyuter dasturchilari sodda vazifalar va hisoblashlarni amalga oshirish uchun algoritmdan foydalanishadi. Hatto eng chigal kompyuter dasturlari ham algoritmlar manbaining tarkibi asosida quriladi.
Bir muammoni yechish uchun bir necha algoritm o’ylab topilishi mumkin, lekin ularning eng yaxshisini ya’ni dasturchiga keragini quyidagi asosiy sifatlarga ko’ra aniqlash mumkin.
Yaxshi algoritmning sifati
1. Kirish va chiqish (natija) to’g’ri aniqlangan bo’lishi lozim.
2. Algoritmdagi har qaysi bosqich aniq va bir ma’noli bo’lishi kerak.
3. Algoritm masalani yechish uchun ko’plab turli xil yechimlar ichidan eng samarali bolishi lozim.
4. Algoritmda kompyuter kodi ishtirok etmasligi kerak. O’rniga, algoritm o’xshash dasturlash tillarida ishlatilishi mumkin bo’lgan yo’nalishda yozilgan bo’lishi lozim.
Algoritm tuzish!
Algoritm yozish uchun bir real hayot holatini namuna qilib olaylik va shundan keyin aniqroq bosqichlar ko’rinishiga to’xtalamiz. Quyida ruchka sotib olishda marketga borish uchun algoritm keltirilgan.
1. Marketga ketish uchun kiyinib olish.
2. Hamyonda pul bor yo’qligi tekshirish.
3. Agar hamyonda pul bo’lmasa, uni to’ldirish.
4. Marketga borish.
5. Sizga yoqadigan ruchka brendini so’rash.
6. Agar ruchka mavjud bo’lmasa, 10-bosqichga bor, aks holda 7- bosqichga bor.
7. Do’kondorga pulni berish.
8. Sotib olingan ruchkani ishonchli qilib cho’ntakka qo’yish.
9. Uyga qaytish.
10. Boshqa brenddagi ruchkani so’rash.
11. 7- bosqichga borish.
Yuqoridagi algoritmga yana turli xil vazifalar qo’shib kengaytirish mumkin, masalan 4-bosqichning o’ziga butunlay alohida algoritm tuzish mumkin.
Endi, algoritm tuzishni boshlaydigan bo’lsak, taxminan quyidagi bosqichlarni bosib o’tamiz.
1 – Bosqich. Algoritm kirishini (inputni) aniqlang! Ko’p algoritmlar ishlov berilishi uchun ma’lumot qabul qilib olishadi. Bu ma’lumot kompyuter ma’lumotining biron o’lchov birligi shaklida bo’lishi mumkin.
Ko’plab dasturlash tillari sizdan qancha miqdorda kirish (input) qabul qilib olishingizga va bu kirish (input) qanday ma’lumot turidaligiga aniqlik kiritishingizni so’raydi. Masalan, agar siz kvadrat yuzini hisoblash uchun algoritm yozadigan bo’lsangiz, sizning kirish (input) kvadratning eni va balandligi bo’lishi mumkin.
2 – Bosqich. O’zgaruvchilarni aniqlang! Algoritmning o’zgaruvchilari faqat bir tenglamadan ko’ra ko’proq tenglama uchun shu algoritmdan foydalanish imkonini beradi.
Yana bir bor yuqoridagi kvadratni namuna sifatida oladigan bo’lsak, kvadratning eni va balandligi uchun kiritishlar (inputlar) sifatida ikkita o’zgaruvchi yaratish har qanday kvadratga o’sha bitta algoritmni mos tushadigan qiladi.
Boshqa so’z bilan aytganda, siz bu algoritmdan eni va balandligini kiritish orqali har qanday kvadratning yuzini aniqlashingiz mumkin.
3 – Bosqich. Algoritm operatsiyalarining qolipini chizing! Bu kirish (input) o’zgaruvchilarining qiymatini o’zgartiradi. Yuqoridagi namunadan yana foydalanamiz, algoritm kiritilgan o’zgaruvchilarning eni va balandligini ko’paytiradi, bu bir oddiy namuna.
Umuman, algoritmning operatsiyalari ko’plab bosqich shakllarini olishi mumkin, bu input o’zgaruvchilari qiymatlariga, soniga bog’liq.
4 – Bosqich. Algoritmingiz operatsiyalarining natijasini chiqarish ya’ni ko’rsatish. Misol uchun, agar kvadratning o’zgaruvchilari eni va balandligi mos ravishda 2 va 3 qiymatini qabul qilib olsa, algoritm 6 qiymatini chiqaradi.
Dasturlashda algoritmlarning namunalari:
1. Foydalanuvchi kiritgan ikkita sonni qo’shish uchun algoritm yozing!
1 – bosqich: Boshlang
2 – bosqich: son1, son2 va yig’indi nomli o’zgaruvchilarni e’lon qiling!
3 – bosqich: son1 va son2 qiymatlarini o’qing!
4 – bosqich: son1 va son2 qiymatlarini bir-biriga qo’shing va natijani yig’indi o’zgaruvchisiga tenglashtiring!
yig’indi <- son1+son25 – bosqich: yig’indini chiqaring (ko’rsating)!
6 – bosqich: To’xtang!
2. Foydalanuvchi tomonidan kiritilgan uchta raqamdan eng kattasini topish uchun algoritm yozing.
1-qadam: Boshlash
2-qadam: a, b va c o’zgaruvchilarini e’lon qiling.
3-qadam: a, b va c o’zgaruvchilarini o’qing.
4-qadam: Agar a> b
Agar a> c
a eng katta sonligini ko’rsatish.
Aks holda
c – eng katta son.
Aks hohda
Agar b> c
b – eng katta son.
Aks holda
c – eng katta son.5-qadam: to’xtating.
3. Foydalanuvchi tomonidan kiritilgan raqamlarning faktoriyasini topish uchun algoritm yozing.
1-qadam: Boshlash
2-qadam: n, factorial va i o’zgaruvchilarini e’lon qiling.
3-qadam: o’zgaruvchilarni ishga tushiring, boshlang’ich qiymat bering
factorial← 1
i ← 1
4-qadam: n qiymatini o’qing
5-qadam: qadamlarni i = n gacha takrorlang
5.1: faktorial ← faktorial * i
5.2: i ← i + 1
6-qadam: Faktorialni ko’rsating
7-qadam: To’xtating!
4. Foydalanuvchi tomonidan kiritilgan raqam tub yoki tub emasligini tekshirish uchun algoritmni yozing.
1-qadam: Boshlash
2-qadam: n, i, bayroq o’zgaruvchilarini e’lon qilish.
3-qadam: o’zgaruvchilarni ishga tushiring, qiymat bering
bayroq ←1
i ← 2
4-qadam: foydalanuvchidan n o’zgaruvchisini o’qing.
5-qadam: Amallarni i <(n / 2) ga qadar takrorlang
5.1 Agar n ÷ i ning qoldig’i 0 ga teng bo’lsa
bayroq ← 0
6-bosqichga o’ting
5.2 i ← i + 1
6-qadam: agar bayroq = 0 bo’lsa
n – tub son emasligini ko’rsating.
Aks holsa
n – tub son ekanligini ko’rsating!
7-qadam: To’xtating
Xullas algoritm manashunday ko’rinishlarda yoziladi. Algoritm qandaydir dasturlash kodi emas. Algoritm kod yozish uchun sizga aniq g’oyalar beradigan ko’rsatmalardir.
Ushbu maqolada algoritm va uni yozish to’g’risida berishni istagan ma’lumotlarim shulardan iborat edi. Maqola yuzasidan savollaringiz bo’lsa kommentariyada qoldiring!
Sizlarga sog’lik va omonlik tilab, sizlar bilan xayrlashaman.
Muallif: Oxunjon G’aybullayev