Dastur va algoritm

Endi bilamizki, kompyuter faqat berilgan buyruqlarni bajaradi. Xo'sh, bu buyruqlarni kim va qanday yozadi? Bu darsda dasturlashning eng muhim tushunchasi — algoritm bilan tanishamiz.

Bu darsda

  • Dastur va dasturlash nima
  • Algoritm nima va yaxshi algoritm qanday bo'ladi
  • «Algoritm» so'zi qayerdan kelib chiqqan
  • Har qanday dasturning uchta asosiy «g'ishti»
  • Blok-sxema yordamida algoritmni chizish

Dastur nima?

Dastur (inglizcha program) — kompyuter bajarishi uchun yozilgan buyruqlar ketma-ketligi. Telefoningizdagi har bir ilova — dastur. Kichik dastur bir necha qatordan iborat bo'lsa, katta dasturlar (masalan, Telegram yoki Windows) millionlab qator buyruqlardan tashkil topadi.

Bu buyruqlarni yozish jarayoni dasturlash, dastur yozadigan odam esa dasturchi deyiladi.

Algoritm — dasturning rejasi

Uy qurishdan oldin chizma tayyorlanganidek, dastur yozishdan oldin ham masalani qanday yechishni o'ylab olish kerak. Masalani yechish uchun bajariladigan aniq qadamlar ketma-ketligi algoritm deyiladi.

Choy damlash algoritmi:

  1. Choynakni chayib oling.
  2. Choynakka bir choy qoshiq quruq choy soling.
  3. Suvni qaynating.
  4. Qaynoq suvni choynakka quying.
  5. Choynakni yopib, 5 daqiqa kuting.
  6. Choyni piyolaga quying.

Agar 3- va 4-qadamlar o'rnini almashtirsak, choynakka sovuq suv quyilib, keyin qaynatilgan suv hech qayerga ishlatilmaydi. Algoritmda tartib juda muhim!

«Algoritm» so'zi qayerdan kelgan?

Bu so'zning tarixi biz uchun ayniqsa qiziq. U IX asrda yashagan buyuk xorazmlik olim Muhammad ibn Muso al-Xorazmiy nomidan kelib chiqqan. Al-Xorazmiyning hisoblash usullari haqidagi kitobi Yevropada lotin tiliga tarjima qilinganda, muallif nomi «Algoritmi» deb yozilgan. Vaqt o'tib, aniq qoidalar asosida hisoblash usuli shu nom bilan atala boshlagan.

«Algebra» so'zi ham al-Xorazmiyning «Al-kitob al-muxtasar fi hisob al-jabr va-l-muqobala» asaridagi «al-jabr» so'zidan olingan. Demak, dasturlashning eng asosiy tushunchasi ota-bobolarimizdan biri bilan bog'liq!

Yaxshi algoritmning xususiyatlari

XususiyatMa'nosiMisol
AniqlikHar bir qadam bir xil tushunilishi kerak«Ozgina tuz soling» — noaniq. «Yarim choy qoshiq tuz soling» — aniq.
TartiblilikQadamlar ma'lum tartibda bajariladiAvval suv qaynatiladi, keyin choynakka quyiladi.
CheklilikAlgoritm albatta tugashi kerak«Choy damlanguncha kut» — tugaydi. «Kutib turaver» — hech qachon tugamaydi.
NatijalilikOxirida kutilgan natija olinadiPiyolada tayyor choy.

Kompyuter uchun ayniqsa aniqlik muhim. Odam «ozgina» so'zini taxminan tushunadi, kompyuter esa yo'q. Unga hamma narsani aniq aytish kerak.

Dasturning uchta asosiy «g'ishti»

Hayotdagi algoritmlar doim to'g'ri chiziq bo'ylab ketmaydi. Ba'zan qaror qabul qilish yoki biror ishni takrorlash kerak bo'ladi. Qiziq fakt: har qanday dasturni faqat uch xil «g'isht»dan qurish mumkin:

  1. Ketma-ketlik — qadamlar birin-ketin bajariladi. «Choy sol, suv quy, kut.»
  2. Tanlash (shart) — vaziyatga qarab turli yo'ldan boriladi. «Agar yomg'ir yog'ayotgan bo'lsa, soyabon ol.»
  3. Takrorlash (sikl) — biror ish bir necha marta bajariladi. «Piyolalarning hammasi to'lguncha choy quy.»

Bu darslikda ularning har birini kodda yozishni o'rganamiz. Python kursida: ketma-ketlik — 2–7-darslar, shartlar — 8–9-darslar, takrorlash — 10–11-darslar. Veb kursida esa ularni JavaScript'da 14-darsda uchratasiz.

Blok-sxema: algoritmning rasmi

Algoritmni so'z bilan yozish mumkin, lekin ko'pincha uni rasm — blok-sxema shaklida chizish qulayroq. Blok-sxemada har bir shaklning o'z ma'nosi bor:

Blok-sxema: yomg'ir yog'sa soyabon olib, uydan chiqish algoritmi Boshlash Derazadan tashqariga qara Yomg'ir yog'yaptimi? Ha Soyabonni ol Yo'q Uydan chiq Tugash
Shartli algoritm: javobga qarab ikki xil yo'l tanlanadi, lekin ikkalasi ham bitta natijaga olib keladi.

Dasturchi qanday fikrlaydi?

Dasturchining asosiy ishi — kod terish emas, balki masalani tushunish va uni kichik qadamlarga bo'lish. Tajribali dasturchilar odatda shunday ishlaydi:

  1. Masalani tushunish. Nima berilgan? Nimani topish kerak?
  2. Bo'laklarga bo'lish. Katta masalani bir nechta kichik masalaga ajratish.
  3. Algoritm tuzish. Har bir bo'lak uchun aniq qadamlarni yozish.
  4. Kodga aylantirish. Algoritmni dasturlash tilida yozish.
  5. Tekshirish. Dasturni ishga tushirib, xatolarini tuzatish.

Masalan, «sinfdagi o'quvchilarning o'rtacha bahosini topish» masalasi uchun algoritm:

  1. Barcha baholarni yig'ib olish.
  2. Ularni qo'shib, yig'indini topish.
  3. Yig'indini baholar soniga bo'lish.
  4. Natijani ko'rsatish.

Hali Python'ni bilmasak ham, bu algoritm kodda qanday ko'rinishini ko'rib qo'yaylik. Tugmani bosing:

baholar = [5, 4, 5, 3, 4]               # 1. baholarni yig'amiz
yigindi = sum(baholar)                  # 2. qo'shamiz
ortacha = yigindi / len(baholar)        # 3. soniga bo'lamiz
print("O'rtacha baho:", ortacha)        # 4. natijani ko'rsatamiz
O'rtacha baho: 4.2

Har bir qator algoritmning bitta qadamiga to'g'ri kelyapti. Bu kod hozircha tushunarsiz bo'lsa — hechqisi yo'q, bir necha darsdan keyin uni o'zingiz yoza olasiz. Baholarni o'zgartirib, natija qanday o'zgarishini kuzatib ko'ring.

Mashqlar

1-mashq Qo'ng'iroq qilish algoritmi

Telefon orqali do'stingizga qo'ng'iroq qilish algoritmini 5–7 qadamda yozing. Do'stingiz javob bermasa nima qilish kerakligini ham o'ylang.

Namunaviy javob
  1. Telefonni qo'lga oling va ekranni yoqing.
  2. «Kontaktlar» ilovasini oching.
  3. Do'stingizning ismini toping.
  4. Qo'ng'iroq tugmasini bosing.
  5. Agar do'stingiz javob bersa — suhbatlashing.
  6. Aks holda — keyinroq qayta qo'ng'iroq qiling yoki xabar yozing.
  7. Suhbat tugagach, qo'ng'iroqni yakunlang.

5- va 6-qadamlar — bu shart. Sizning javobingiz boshqacha bo'lishi mumkin — asosiysi, qadamlar aniq va to'g'ri tartibda bo'lsin.

2-mashq Noaniqliklarni toping

Quyidagi «tuxum qovurish» algoritmida qanday kamchiliklar bor?

  1. Tovaga yog' soling.
  2. Tuxumni chaqing.
  3. Biroz kuting.
  4. Tayyor.
Javobni ko'rish
  • Olovni yoqish qadami yo'q — tova hech qachon qizimaydi.
  • Tuxumni qayerga chaqish aytilmagan (tovaga).
  • «Biroz» — noaniq. Aniqrog'i: «3–4 daqiqa kuting».
  • Olovni o'chirish va tuxumni likopchaga olish qadamlari yo'q.

Kompyuter uchun yozilgan algoritmlar ham xuddi shunday: bitta qadam tushib qolsa, natija chiqmaydi.

3-mashq Ikki sondan kattasi

Ikkita son berilgan. Ulardan kattasini topish algoritmini yozing. Algoritmda shart bo'lishi kerak. Istasangiz, uning blok-sxemasini qog'ozga chizing.

Javobni ko'rish
  1. Birinchi sonni (A) va ikkinchi sonni (B) oling.
  2. Agar A > B bo'lsa, A ni javob deb ko'rsating.
  3. Aks holda, B ni javob deb ko'rsating.
  4. Tugash.

Blok-sxemada 2-qadam romb bilan chiziladi: «A > B?». «Ha» yo'li «A ni ko'rsat», «Yo'q» yo'li esa «B ni ko'rsat» to'rtburchagiga olib boradi.

O'zingizni sinang

Algoritm nima?

  1. Kompyuterning bir qismi
  2. Dasturlash tilining nomi
  3. Masalani yechish uchun aniq qadamlar ketma-ketligi
  4. Kompyuter viruslarining bir turi

To'g'ri! Algoritm — reja, dastur esa shu rejaning kompyuter tushunadigan tildagi ko'rinishi.

«Algoritm» so'zi qaysi olim nomidan kelib chiqqan?

  1. Abu Ali ibn Sino
  2. Mirzo Ulug'bek
  3. Muhammad al-Xorazmiy
  4. Abu Rayhon Beruniy

To'g'ri. Al-Xorazmiy nomi lotincha tarjimada «Algoritmi» deb yozilgan va bu so'z keyinchalik butun dunyoga tarqalgan.

Quyidagilardan qaysi biri kompyuter uchun yaxshi (aniq) qadam?

  1. «Ozgina kut»
  2. «Suvni 100 °C gacha qizdir»
  3. «Mazali qilib pishir»
  4. «Kerakli miqdorda tuz sol»

To'g'ri. Faqat bu qadamda aniq o'lchov bor. Qolganlarini har kim har xil tushunadi.

Har qanday dasturni qaysi uchta asosiy qismdan qurish mumkin?

  1. Ketma-ketlik, shart (tanlash), takrorlash
  2. Protsessor, xotira, disk
  3. Kiritish, chiqarish, saqlash
  4. Matn, son, rasm

To'g'ri. Bu uchtasini o'rgansangiz, istalgan algoritmni dasturga aylantira olasiz.

Blok-sxemada shart (savol) qaysi shakl bilan chiziladi?

  1. Doira
  2. To'rtburchak
  3. Uchburchak
  4. Romb

To'g'ri. Rombdan ikki yo'l chiqadi: «Ha» va «Yo'q».

Xulosa

  • Dastur — kompyuter bajaradigan buyruqlar ketma-ketligi.
  • Algoritm — masalani yechish uchun aniq qadamlar rejasi. Bu so'z al-Xorazmiy nomidan kelib chiqqan.
  • Yaxshi algoritm aniq, tartibli, chekli va natijali bo'ladi.
  • Har qanday dastur ketma-ketlik, shart va takrorlashdan quriladi.
  • Dasturchining asosiy ishi — masalani tushunish va uni kichik qadamlarga bo'lish.