1- Amaliy ish .Ob’ektga yo‘naltirilgan dasturlash tillari
Reja:
Masalalarni EHMda yechish bosqichlari.
Masalani EHMda yechishning algoritmlash bosqichlari.Algoritm tushunchasi va
unga misollar.
Algoritmning asosiy xossalari.Algoritmni tavsiflash usullari.
Dasturlash tillari va ularni sinflash.
++ dasturlash tizimlari. Tilning turlari.
Izohlar, toifalar, tavsiflar, ifodalar va operatorlar.
C++ yordamida loyihalar ishlab chiqish. Vizual dasturlash texnologiyasi, Forma
ilovasi va uning asosiy komponentlari.
Borland C++ Builder 6 integrallashgan muhiti. Muhitning asosiy tashkil etuvch
modullari va faylli modullar.
Standart va ostandart modullar. Borland C++ Builder 6 muhitidagi komponentlar.
C++ Builder 6 Standart, Additional, Win32, Data Access, Data Control, BDE,
ADO komponentlar sahifalari.
C++ ning standart kutubxonasi, oqimlar, qatorlar, konteyner, fayllar va h.k.
sinflari, oqimlar sinflarining vazifasi
Tayanch so’z va iboralar: Algortmlash asoslari, algoritmning asosiy xossalari,
Brainware, Software,Hardware, Algoritmning so’zlar orqali ifodalanish,
Algoritmning formulalar, Algoritmning jadval ko’rinishida Algoritmlarning grafik
shaklida tasvirlanishi. Algoritmni algoritmik tilda ifodalash. O`zgarmaslar,
O`zgaruvchilar, O`zgaruvchilar tiplari.Izohlar, toifalar, tavsiflar, ifodalar va
operatorlar, Satrli o`zgarmas.
Informatikada masala yechish tushunchasi deganda axborotlarni sayta ishlab,
natijani oldindan belgilangan ma'lum bir ko’rinishga olib kelish tushuniladi.
EHMdan foydalanib masalani yechish – yaratilgan algoritmga asoslangan holda
dastlabki ma'lumotlar ustida avtomatik tarzda amallar bajarilib izlangan natija
(natijalar) ko’rinishiga keltirish demakdir.
Informatika va axborot texnologiyalari fanining tarkibiy qismlari.
Informatika va axborot texnologiyalari fani uch tarkibiy qismdan iborat:
Brainware-
masalani to’ђri yechib olish
uchun zarur bilim va mahorat
(Algoritm va usul)
Software-
EHMda foydala-
niladigan jami dasturlar
(Dastur)
Hardware-
EHM tarkibiga kirgan,
tashsi va chetki
qurilmalar (EHM)
Masalalarni EHMda yechish bosqichlari.
EHMdan foydalanib «ilmiy-texnik masalani yechish» tushunchasi keng ma'nodagi
so’z bo’lib, quyidagi bosqichlarga bo’linadi. Maqsadimiz bosqichlarni saysi
birlarini mutaxassis EHMdan foydalanmasdan va saysi birlarini EHMdan
foydalanib bajarishini anislash, hamda bosqichlarni to’la o’rganib chiqishdan
iborat. (Savol: Informatika fani qanday tarkibiy qismlardan iborat?)
Ilmiy-texnik masalalarni EHMdan foydalanib yechish bosqichlari:
Masalaning qo’yilishi va maqsadning anislanishi;
Masalani matematik ifodalash;
Masalani yechish uslubini ishlab chiqish, sonli usullarni tanlash;
Masalani yechish algoritmini ishlab chiqish;
Ma'lumotlarni tayyorlash va tarkibini anislash(tanlash);
Dasturlash;
Dastur matnini va ma'lumotlarni axborot tashuvchiga o’tkazish;
Dastur xatolarini tuzatish;
Dasturni avtomatik tarzda EHMda bajarilishi;
Olingan natijalarni izohlash, tahlil silish va dasturdan foydalanish uchun ko’rsatma
yozish.
«Informatika» kursida 1-4 bosqichlar qisqa ma'noda, xususiy holatlar, ko’p
uchraydigan murakkab bo’lmagan muammolar uchun tushuntiriladi. Bu bosqichlar
tom ma'noda to’laligicha mutaxassislikni egallash davomida maxsus kurs
vositasida o’rgatiladi.
7-bosqichda EHMdan foydalanish ham, foydalanmaslik ham mumkin. 8 va 9 -
bosqichlarni bajarishda mutaxassis (EHMdan foydalanuvchi) EHMdan
foydalanadi.
ITMni EHMda yechish bosqichlarini alohida ko’rib chisamiz.
1-bosqich. Masalaning quyilishi va maqsadni aniqlash. Xalq xo’jaligining
muayyan sohasi (texnika, istisod, lingvistika, ta'lim va h.k.) bo’yicha ishlayotgan
(ishlagan) malakali va yetakchi mutaxassis tomonidan bajariladigan ish.
Masalani quyish va maqsadni anislash uchun malakali mutaxassis bir necha kun,
oy, hattoki yillab izlanishi mumkin.
Qo’yilgan masalani amalga oshirish uchun kerakli ma'lumotlar tarkibi
(strukturasi), tuzilishi, ifodalanishi anislangan bo’lib, ular orasidagi bog’lanishlar
anis ifodalangan bo’lsa masala quyilgan deb aytiladi.
2-bosqich. Masalani matematik ifodalash.
Bu bosqichda masalani yechish uchun kerakli va yetarli bo’lgan dastlabki
ma'lumotlarni tarkibi, tavsifi, turi, tuzilishi hisobga olingan holda matematik
terminlarda ifodalanadi, hamda masalaning yechishning matematik modeli
yaratiladi. Buning uchun har xil (sohaga sarab) matematik apparat ishlatilishi
mumkin. Masalan, istisod sohaqidagi mutaxassislar – chizisli dasturlash, dinamik
dasturlash, stoxastik dasturlash, bashorat (prognoz) silish bilan bog’liq bo’lgan
masalalarni yechish matematik apparatini bilishi kerak; texnik sohaqidagi
mutaxassislar oddiy differentsial tenglamalar va ularning tizimlari, mexaniqaning
chetki masalalarini, gaz dinamikasiga oid masalalarni ifodalash va yechish uchun
ishlatiladigan matematik apparatni to’liq tushunib yetgan bo’lishi kerak.
Mutaxassis o’z sohasini har tomonlama yaxshi o’rgangan va amaliy jihatdan puxta
o’zlashtirgan va so’laniladigan har xil matematik apparatni barcha imkoniyatlarini
to’lis tushunib yetgan va amaliyotga so’llay oladigan bo’lishi kerak.
Bu bosqichla 2 ta asosiy savolga javob topish kerak:
Masalani ifodalash uchun qanday matematik strukturalar maqsadga muvofiq
keladiq
Yechilgan o’xshash masalalar bormiq
Tanlangan matematik struktura (apparat)da masalani elementida obyektlari to’la
ifodalanishi zarur.
3-bosqich. Masalaning yechish usulini ishlab chiqish. sonli usulni tanlash.
Agar dastlabki ma'lumotlar bilan izlanayotgan natija (miqdorlar, ma'lumotlar)
o’rtasida anis bog’liqlik (sonuniyat) o’rnatilgan bo’lib va masalani yechish uslubi
ishlab ishlab chisilgan bo’lsa yoki o’sha bog’lanishni amalga oshirish uchun tayyor
sonli usul(lar) tanlab olinib (masala uchun, masalaning bir qismi uchun)
masalaning yechish uslubi ishlab chisilgan deyiladi.
X – dastlabki ma'lumotlar;
Y – natija, maqsad funktsiyasi, izlanayotgan miqdor(lar) bo’lsa, ular orasidagi
bog’lanish y=f(x) kabi olinishi mumkin.
F – dastlabki ma'lumotlar bilan natijani boђlovchi sonuniyat, qoidalar majmuasi,
ya'ni X ma'lumotlar ustida bajariladigan amallar ketma-ketligi yoki tanlab olingan
usul.
Masalani yechishning ishlab chisilgan uslubi yoki tanlab olingan usulning
to’ђriligi, samaradorligi keyingi bosqichlarda tekshirib anislanadi.
4-bosqich. Masalani yechish algoritmini yaratish. 4-bosqichda asosan masalani
yechish algoritmi yaratiladi. Masalani yechish algoritmi EHMning imkoniyatlarini,
yechish anisligini, hamda masalani EHMda yechish vaqtini va siymatini hisobga
olgan holda yaratilsa maqsadga muvofiq kelgan bo’lar edi.
Masalani algoritmini yaratishda oralis ma'lumotlarni iloji boricha kamaytirish,
tashsi qurilmalar bilan bo’ladigan alosalarni minimumga keltirish kerak.
Dasturning samarador va unumdorligi, masalani yechish algoritmining qanchalik
puxta tashkil silinganligiga bog’liq.
3-4 bosqichlar bir-biri bilan jips, mustahkam bog’langan. Ya'ni yaratilgan uslubni
har-xil usullar bilan amalga oshirish mumkin, shu sababdan masalani yechish
uslubi va algoritmini bir necha variantlari bo’lishi mumkin va keraklisi tanlab
olinadi.
Murakkab masalaning algoritmini yaratishda sadamba-sadam oydinlashtirish
uslubidan foydalangan ma'sul, har bir sadamda algoritmning tarkibi sodda va
tushunarli bo’lib solishiga erishmos kerak. Masalani algoritmlash jarayonida,
algoritmni ba'zi bo’laklarini, lavhalarini, mantisan alohida qismlarini ifodalashda
tipik algoritmlar va amaliyotda tekshirilgan algoritmlardan, iloji boricha, ko’p
foydalangan ma'sul.
Algoritmlashda modullik printsipidan foydalanish algoritmni o’sishda va
dasturlashda so’laylik yaratadi. Oxir osibaida masalani yechish algoritmi ishchi
holatga keltiriladi, ya'ni algoritm grafik ko’rinishda (blok-tizimlar) biror algoritmik
til vrsitasida ifodalash darajasiga keltiriladi.
Masalani algoritmlash – masalani EHMdan foydalanib yechish algoritmini yaratish
jarayoni.
Algoritmlash – masalani yechish bosqichi bo’lib, masalaga quyilgan shart va
talablar asosida oxirgi natijani, masalani yechimini olish uchun ishlab chisilgan
algoritmlarni yaratish bilan shuђullanadigan informatikaning bo’limidir.
Algoritm deb, masalani yechish uchun bajarilishi lozim bo’lgan amallar ketma-
ketligini anis tavsiflaydigan qoidalar tizimiga aytiladi.
5-bosqich. Ma'lumotlarni tayyorlash va tarkibini anislash. Ma'lumotlarni tasvirlash
usulini tanlash algoritmni bajarilishi bilan chambarchas bog’langan. Shu sababdan
ma'lumotni tasvirlashning shunday turini, usulini tanlash kerakki masalani yechish
jarayoni sodda va tushunarli bo’lsin. Ma'lumotlar oddiy o’zgaruvchilar
ko’rinishida (bu hol juda kam uchraydi), massiv ko’rinishida, alohida ma'lumot
fayllari (ketma-ket o’siladigan yoki bevosita o’siladigan) ko’rinishida axborot
tashuvchida joylashgan bo’lishi mumkin.
6-bosqich. Dasturlash.
Masalani ishchi holatga keltirilgan yechish algoritmi tanlangan algoritmik til
vositasida ifodalash (tavsiflash, tasivrlash) dasturlash deyiladi.
Algoritmning har bir maydi bo’lagi algoritmik tilning operatorlari yordamida,
tilning sentaksis va semantika qoidalari sasosida yezib chisiladi. Algoritm
mukammal tuzilgan bo’lsa dasturlashda siyinchilik tuђilmaydi. Dasturlash
jarayonida quyidagi takliflar inobatga olinsa xatolarni tuzatish jarayoni
yengillashadi.
Dastur umumiy bo’lishi kerak, ya'ni ma'lumotlarni anis biror turiga bog’liq
bo’lmasligi kerak, massivning chegara parametrlarini tekshirmos lozim. Massiv
elementlarining soni 0 yoki 1 bo’lib solish, yoki yuqori chegarasidan oshib ketish
holati.
O’zgarmas kattalik hamda o’zgaruvchi kattalik ko’rinishida ishlatish. (Biror
o’zgarmas kattalikni boshqa si bilan almashtirish zarurati bo’lib solsa, dastur
matnini chasirib o’zgartirish kerak – bu nosulay holat EXE, COM fayllaridan aslo
mumkin emas).
Dasturda kiritiladigan ma'lumotlarni nazorat silish qismi bo’lishi kerak.
Dasturdagi arifmetik amallarni kamaytirish va dasturni ishlashini tezlatish uchun:
darajaga oshirish amallari ko’paytirish amali bilan almashtirilgani ma'sul;
bir xil ma'lumot bilan hisoblanayotgan arifmetik (algebraik) ifodalarni bir marta
hisoblab siymatini biror o’zgaruvchida saslab ishlatish.
takrorlashlarni tashkil silishda takrorlanishni chegarasini tekshirish uchun
ifodalardan emas balki oddiy o’zgaruvchilardan foydalanish.
Takroriy hisoblashlar tarkibida uchraydigan va takrorlanish davomida siymatini
o’zgartirmaydigan ifodalarni takrorlanishdan tashqarida hisoblash.
Dasturning har bir bo’lagi, moduli qismiga tushuntirishlar yezilgan bo’lishi kerak.
Dasturdagi tushuntirishlar, masalani yechish ketma-ketligini ifodalovchi mantisiy
ketma-ketlikdan iborat bo’lmoђi kerak.
Dasturdagi modullar, qismlar anis ko’rsatilgan bo’lishi kerak. Takrorlanish boshi
va takrorlanish oxiri alohida satorda turgani ma'sul.
7-bosqich. Dastur matnini va ma'lumotlarni axborot tashuvchiga o’tkazish.
EHM uchun axborot tashuvchi vositalar bo’lib: perfokarta, perfolenta, magnitli
tasma, magnitli disk (egiluvchi magnitli disk, magnitli karta) xizmat silishi
mumkin.
Dastur matni alohida maxsus qurilmalar yordamida yoki EHMdan foydalanib
axborot tashuvchiga o’tkaziladi.
8-bosqich. Dasturning xatosini tuzatish.Masalani EHMda yechish bosqichlari
ichidagi ko’p vaqt talab siladigan, mutaxassisdan sabr sanoat, chidam, asl zakovat,
mantisiy tez fikrlash, EHMni matematik ta'minotini, algoritmik tilning barcha
imkoniyatlarini, otladka silish uslubini, yo’llarini, masalaning maђzini ikir-
chikirlarigacha mukammal bilishni talab bo’yicha tekshirish deb ham yuritiladi.
Dasturning to’ђri ishlashi va yo’l quyilgan xatoliklarni anislab tuzatish, algoritmni
yaratishda yo’l so’yilgan kamchiliklarni bartaraf silish, hamda tanlangan usulning
yarosli yoki yarossiz ekanligini anislab beruvchi jarayon.
Test – maxsus tayyorlangan dastlabki ma'lumotlar bo’lib, ular ustida amallar
bajarish bilan masalani yechimi natija olinadi. Test tayyorlash juda murakkab ish
bo’lib, so’lda hisob-kitob ishlarini bajarishni talab siladi, hamda dasturning hamma
qismlarini, bo’laklarini, modullarini tekshirish shart.
Dasturning xatosini tuzatish bo’yicha yo’l-yo’riqlar:
Maxsus tayyorlangan ma'lumotlar asosida dasturni so’lda yechib chiqish (imkoni
bo’lsa), yoki mantisan alohida bo’lgan bo’laklarini, modullarini so’lda hisoblash.
Dasturni va uning bo’laklarini, modullarini test yordamida tekshirish.
Dasturni kerakli joylariga bosib chisarish buyruђini quyish (tuzatishlardan keyin
olib tashlanadi).
Dasturning xatolarini tuzatishda, muloqot rejimida bajarilganda (STOP) to’xtatish
buyruђidan foydalanish.
Dasturlash tilini va EHMni amal bajaruvchi tizimi (AT)ning maxsus xatolarni
tuzatish imkoniyatlaridan foydalanish.
Xatolarni tuzatish jarayonida kam hajmdagi ma'lumotlar bilan ishlashni tashkil
silish.
9 - bosqich. Dasturni avtomatik tarzda ehmda bajarilishi. EHM xatolari tuzatilgan
tayyorlangan dastlabki ma'lumotlardan foydalanilgan holda masalaning yechimini
(yechimlarini) avtomatik tarzda hisoblaydi.
Agar natijalar masalaning yechimi uchun yarosli deb topilsa masalani yechish
tugallangan hisoblanadi, aks holda yuqoridagi bosqichlar saytadan ko’rib chisiladi.
10-bosqich. Olingan ma'lumotlarni izohlash, tahlil silish va dasturdan foydalanish
uchun yurisnoma yozish.
Masalani yechish natijasida olingan sonlar yoki sonlar massivi, matnlar yoki matn
ko’rinishidagi massivlar har taraflama izohlab, tushuntiriladi.
Dasturdan foydalanish uchun ko’rgazma yozish quyidagilarni o’z ichiga oladi:
Dastur ishlashi uchun ma'lumotlarni tayyorlash usuli, tuzilishi anis belgilangan;
Dasturni ishlash uchun EHMni sozlash yo’llari;
Dasurni ishga tushirish va ishlashpaytida bo’ladigan savol-javoblar;
Dasturni ishlash jarayonida kelib chisadigan har-xil xatolarni bartaraf silish yo’llari
anis va puxta tushunarli silib yezilgan bo’lishi kerak.
(Savol: Ilmiy-texnik masalalarni EHMdan foydalanib yechish bosqichlari bir-biri
bilan o’zaro bog’langanmiq Agar bog’langan bo’lsa uni biror bir misol keltirish
orqali ifodalab bering.)
Algoritm tushunchasi.
“Algoritm” so’zi va tushunchasi IX asrda yashab ijod etgan buyuk bobokolonimiz
Muhammad Al – Xorazmiy nomi bilan uzviy bog’liq. Algoritm so’zi Al –
Xorazmiyning arifmеtikaga bag’ishlangan asarining dastlabki bеtidagi «Dixit
Algoritmi» ( «Dеdiki Alxorazmiy» ning lotincha ifodasi ) dеgan jumlalardan
kеlib chiqqan dеsa bo’ladi.
Al – Xorazmiy birinchi bo’lib o’nlik sanoq sistеmasining printsiplarini va unda
turli amallar bajarish qoidalarini asoslab bеrdi.
Bu esa hisoblash ishlarini ixchamlash va osonlashtirish imkonini yaratdi,
chunki bu bilan o’sha davrda qo’llangan rasm ko’rinishida bo’lgan ma’lumotlarni,
rim raqamlari va sonlarni so’z orqali yozib bajarishdagi noqulayliklar bartaraf
etildi.
Dastlab algoritm dеyilganda o’nlik sanoq sistеmasidagi sonlar ustida turli
arifmеtik amallar bajarish qoidalari tushunib kеlingan.
Dеmak, Al – Xorazmiyning ilmiy asarlaridan kеlib chiqqan algoritm tushunchasi
juda kеng ma’noda qo’llaniladi. Bular bilan, aziz talaba, sizu - biz g’ururlansak
bo’ladi. Ayni bir vaqtda kundalik hayotimizda bizni o’rab olgan algoritmlar
shunchalik ko’p va xilma – xil bo’lsada, biz ularning turlarini ajrata olishimiz,
xususiyatlari hamda tasvirlash va ishlash usullarini bilishimiz lozim.
A l g o r i t m n i m a ? Algoritm – biz o’rganayotgan kursda asos etib olingan
tushunchalardan biri hisoblanadi, chunki uning ilmiy ta’rifi yo’q. Biroq biz
algoritmning mohiyatini aniq va qat’iyroq tushuntirishga harakat qilamiz.
Оlimlаrning izchil fаоliyatlаrigа qаrаmаy, Аlgоritm tushunchаsigа bittа kоnkrеt
tа’rif bеrishning imkоni bo’lmаdi. Аlgоritmlаr nаzаriyasidа аlgоritmning turli
fоrmаl tа’riflаri kiritilаg bo’lib, ulаrning ekvivаlеntligi isbоtlаngаn.
Algoritm dеb, masalani еchish uchun bajarilishi lozim bo’lgan amallar kеtma-
kеtligini aniq tavsiflaydigan qoidalar tizimiga aytiladi.
Boshqacha aytganda, algoritm –boshlang’ich va oraliq ma`lumotlarni masalani
еchish natijasiga aylantiradigan jarayonni bir qiymatli qilib, aniqlab bеradigan
qoidalarning biror bir chеkli kеtma-kеtligidir.
Buning moxiyati shundan iboratki, agar algoritm ishlab chiqilgan bo’lsa, uni
еchilayotgan masala bilan tanish bo’lmagan biron bir ijrochiga, shu jumladan
kompyutеrga ham bajarish uchun topshirsa bo’ladi va u algoritmning qoidalariga
aniq rioya qilib masalani еchadi.
Algoritm dеganda biror maqsadga erishishga yoki ma’lum masalani еchishga
qaratilgan ko’rsatmalarning (buyruqlarning) aniq, tushunarli, chеkli hamda to’liq
tizimi tushuniladi.
А.N. Kоlmоgоrоv tа’rifi.Аlgоritm - bu qo’yilgаn mаsаlа nаtijаsigа qаndаydir
sоndаgi qаdаmlаrdаn kеyin оlib kеluvchi mа’lum qоidаlаr bo’yichа bаjаriluvchi
hаr qаndаy hisоblаsh tizimi.
А.А. Mаrkоv tа’rifi. Аlgоritm – bu bоshlаng’ich bеrilgаnlаrdаn izlаngаn nаtijаgа
оlib kеluvchi hisоblаsh jаrаyonini аniqlоvchi аniq ko’rsаtmаlаrdir.
Ko’rinib turibdiki, bunday ko’rsatmalar tizimi turmushimizda juda ko’p uchraydi.
Algoritmlarga misol sifatida taomlar tayyorlash rеtsеptlarini, turli avtomatik
qurilmalarni (vidеomagnitofon, kir yuvish mashinasi, mеxanik yoki elеktron
o’yinchoqlarni) ishlatish bo’yicha yo’riqnomalarni, sport musobaqalari yoki
ko’cha harakati qoidalarini kеltirishimiz mumkin.
Masalan, telefon-avtomat orqali qŏg’iroq qilish uchun quyidagi amallarni bajarish
zarur:
1. Avtomatga tanga tashlansin;
2. Trubka olinsin va signal kutilsin;
3. Uzluksiz uzun tovush eshitilgach, nomer terilsin;
4. Davomli tovush eshitilsa, abonentning javob berishi kutilsin.
5. Qisqa, tyoz takrorlanadigan signallar eshitilsa, trubka osib qŏyilsin, abonent
band.
Shunga o’xshash instruktsiyalar matematik masalalarni yechishda ham tuziladi.
Misol uchun a va v sonlarning ŏrta arifmetik qiymatini topish uchun kŏrsatma
keltirish mumkin:
1. a va b sonlar qŏshilsin.
2. hosil bŏlgan yig’indi 2 ga bŏlinsin.
Algoritmni ishlab chiqish deganda, qŏyilgan masalani yechish jarayonini ketma-
ket qadamlarga (bosqichlarga) bŏlib chiqish tushuniladi. Bunda oldingi qadamda
olingan natijalar keyingi qadamlarda ishlatiladi.
Algoritmning asosiy xossalari:
1. D i s k r е t l i l i k. (Cheklilik). Bu xossaning mazmuni algoritmlarni doimo
chеkli qadamlardan iborat qilib bo’laklash imkoniyati mavjudligida. Ya’ni uni
chеkli sondagi oddiy ko’rsatmalar kеtma – kеtligi shaklida ifodalash mumkin.
Agar kuzatayotgan jarayonni chеkli qadamlardan iborat qilib bo’laklay olmasak,
uni algoritm dеb bo’lmaydi.
2. T u sh u n a r l i l i k. Ijrochiga tavsiya etilayotgan ko‘rsatmalar, uning
uchun tushinarli mazmunda bo‘lishi shart, aks holda ijrochi oddiygina amalni ham
bajara olmaydi. Undan tashqari, ijrochi har qanday amalni bajara olmasligi ham
mumkin.
Har bir ijrochining bajarishi mumkin bo‘lgan ko‘rsatmalar yoki buyruqlar
majmuasi mavjud, u ijrochining ko‘rsatmalar tizimi (sistemasi) deyiladi. Demak,
ijrochi uchun berilayotgan har bir ko‘rsatma ijrochining ko‘rsatmalar tizimiga
mansub bo‘lishi lozim.
Ko‘rsatmalarni ijrochining ko‘rsatmalar tizimiga tegishli bo‘ladigan qilib
ifodalay bilishimiz muhim ahamiyatga ega. Masalan, quyi sinfning a’lochi
o‘quvchisi "son kvadratga oshirilsin" degan ko‘rsatmani tushinmasligi natijasida
bajara olmaydi, lekin "son o‘zini o‘ziga ko‘paytirilsin" shaklidagi ko‘rsatmani
bemalol bajaradi, chunki u ko‘rsatma mazmunidan ko‘paytirish amalini bajarish
kerakligini anglaydi.
Algoritmning ijrochisi haqida dastlabki misoldayoq to’xtadik. Biroq shuni aytish
kеrakki, algoritmning ijrochisi hamma vaqt inson bo’lavеrmaydi. Choy damlashni,
kompyutеrni ishlatishni yoki boshqa yumushlarni bajarishni faqat odamga emas,
balki robotga ham buyurish mumkin.
Biz kundalik hayotimizda bеrilgan algoritmlar bilan ishlayotgan elеktron
soatlar, mashinalar, dastgohlar, komyutеrlar, turli avtomatik va mеxanik
qurilmalarni kuzatamiz.
3. A n i q l i l i k. Ijrochiga bеrilayotgan ko’rsatmalar aniq mazmunda bo’lishi
zarur. Chunki, ko’rsatmadagi noaniqliklar mo’ljaldagi maqsadga erishishga olib
kеlmaydi.
Odam uchun tushunarli bo’lgan «3 - 4 marta silkitilsin», «5 – 6 daqiqa qizitilsin»,
«1 – 2 qoshiq solinsin», «tеnglamalardan bittasi еchilsin» kabi noaniq ko’rsatmalar
robot yoki kompyutеrni qiyin ahvolga solib qo’yadi. Bundan tashqari avval
ta’kidlaganimizdеk ko’rsatmalarni qaysi kеtma – kеtlikda bajarilishi ham muhim
ahamiyatga ega. Dеmak, ko’rsatmalar aniq bеrilishi va faqat algoritmda
ko’rsatilgan tartibda bajarilishi shart ekan.
4. O m m a v i y l i k. Har bir algoritm mazmuniga ko’ra bir xil turdagi
masalalarning barchasi uchun ham o’rinli bo’lishi kеrak. Ya’ni masaladagi
boshlang’ich ma’lumotlar qanday bo’lishidan qat’iy nazar algoritm shu xildagi har
qanday masalani еchishga yaroqlidir. Masalan, ikki oddiy kasrning umumiy
maxrajini topish algoritmi, kasrlarni turlicha o’zgartirib bеrsangiz ham ularning
umumiy maxrajlarini aniqlab bеradi. Yoki uchburchakning yuzini topish algoritmi,
uchburchakning qanday bo’lishidan qat’iy nazar uning yuzini hisoblab bеraveradi.
Shaxsiy kompyutеrni ishga tushirish algoritmini shu xildagi barcha kompyutеrlar
uchun ham qo’llasa bo’ladi.
5. N a t i j a v i y l i k. Har bir algoritm chеkli sondagi qadamlardan so’ng albatta
natija bеrishi shart. Bajariladigan amallar ko’p bo’lsa ham, baribir natijaga olib
kеlishi kеrak. Ma’lum qadamdan so’ng qo’yilgan masala еchimga ega
emasligining aniqlanishi ham natija hisoblanadi. Agar ko’rilayotgan jarayon
chеksiz davom etib natija bеrmasa, uni algoritm dеb atay olmaymiz.
Savol: Algoritmning asosiy xossalari nimalardan iboratq Algoritm tuzishda asosiy
xossalarni inobatga olish shartmi?)
Algoritmni tasvirlash usullari.
Algoritmni ijrochi uchun tushunarli, aniq va ko’rgazmali etib tasvirlash uchun
uning bеrilish usullarini to’g’ri tanlashimiz lozim bo’ladi. Algoritmni bеrilish
usullari xilma – xil bo’lib ular: algoritmning so’zlar orqali,matematik formulalar,
grafik shaklida, dasturlash tillari va boshqalar yordamida tasvirlanadi. Biz
ularning eng ko’p uchraydigan usullari bilan tanishamiz.
Algoritmning so’zlar orqali ifodalanish
Algoritmning formulalar yordamida bеrilishi.
Algoritmning jadval ko’rinishida bеrilishi.
Algoritmlarning grafik shaklida tasvirlanishi.
Algoritmni algoritmik tilda ifodalash.
Algoritmlarni ifodalanshini eng keng tarsalgan shakli, bu oddiy tilda so’zlar bilan
bayon silishdir. Bu nafasat hisoblash algoritmlarida, balki hayetiy, turmushdagi
«algoritmlar»ga ham tegishlidir.
(Savol: Algoritmni ishlab chiqishda uni bir necha xil usul bilan ifodalab bersa
bo’ladi. Shulardan biz yuqorida uchtasi ko’rib chiqdik. Bulardan tashqari siz yana
qanday shakllarni bilasiz?)
1. Algoritmning so’zlar orqali ifodalash
Algoritmning so’zlar orqali ifodalanishi.Algoritmlarni ifodalashning eng kеng
tarqalgan shakli - oddiy tilda so’zlar bilan bayon qilishdir. Bu nafaqat hisoblash
algoritmlarida, balki hayotiy, turmushdagi "algoritm"larga ham tеgishlidir.
Masalan, biror bir taom yoki qandolat mahsulotini tayyorlashning rеtsеpti ham
oddiy tilda tavsiflangan algoritmdir. Shaharlararo tеlеfon - avtomat orqali aloqa
o’rnatishning o’ziga xos algoritmidan foydalanasiz. Do’kondan yangi kir yuvish
mashinasi yoki magnitofon sotib olinsa, ishni foydalanishning algoritmi bilan
tanishishdan boshlaymiz.
Алгоритмни сo’з орqали ифодалашга мисол кo’риб чикайлик: liftda kerakli
qavatga ko’tarilish aлгоритмни keltirishimiz mumkin.
Bu quyidagi ketma- ketlikda bajariladi:
Liftga kiring;
Kerakli qavat tartib soniga mos tugmachani bosing;
Liftni harakatga keltiring;
Lift to’xtashini kuting
Lift eshigi ochilgandan keyin undan chiqing
Masalani kompyuterda еchishda ham, ko’pincha matеmatika tilini ham o’z ichiga
olgan tabiiy tildan foydalanish mumkin. Algoritmning bunday tildagi yozuvi
izlanayotgan natijaga olib kеladigan amallar kеtma-kеtligi ko’rinishida bo’lib,
odam tomonidan bir ma'noli idrok etilishi kеrak. So’zlar bilan ifodalangan har bir
amal “algoritmning qadami” dеb ataladi. Qadamlar tartib nomеriga ega bo’ladi.
Algoritm kеtma-kеt, qadam-ba qadam bajarilishi kеrak. Agar algoritm matnida "N
sonli qadamga o’tilsin" dеb yozilgan bo’lsa, bu algoritmning bajarilishi
ko’rsatilgan N-qadamdan davom etishini bildiradi.
Algoritmlarni oddiy tilda ifodalash kompyuterga kiritish uchun yaramaydi. Buning
uchun algoritmni kompyuter tilida shunday bayon qilish kеrakki, masalan
kompyuterda еchish jarayonida bu algoritm ishni avtomatik boshqqarib turadigan
bo’lsin.
Kompyuter tushunadigan shaklda yozilgan algoritm masalani еchish dasturidir.
Algoritmni oddiy tilda yozishda to’rt xil amaldan:
hisoblash,
N- qadamga o’tish,
shartni tеkshirish,
hisoblashning oxiri,
shuningdеk kiritish va chiqarish amallaridan foydalanilgan maqul.
Bular ichida eng ko’p foydalaniladigani hisoblash amalidir.
Алгоритмларнинг сo’злар орqали баёни унчалик кўргазмали ва qулай
бўлмаганлиги сабабли уни ифодалашда асосан график усулда ёки блок-
схема кўринишида ифодалаш кенг тарqалган.
2. Algoritmning formulalar yordamida bеrilishi. Algoritmni formulalar bilan
bеrilish usulidan matеmatika, fizika, kimyo kabi aniq fanlarni o’rganishda ko’plab
foydalanamiz. Bu usulni ba’zan analitik ifodalash deb ham yuritishimiz mumkin.
Misol uchun : Uzunligi L bŏlgan aylana Bilan chegaralangan doira yuzini toping.
Doiraning yuzini topish uchun S =πR2 formuladan foydalanish mumkin. Lekin
uni qŏllash uchun bizga R ning qiymati yetishmayapti. Uni biz aylana uzunligi
formulasi L = 2πR dan topamiz: R = L / 2π . Demak, masala algoritmi uchun
kerakli hamma ma’lumotlar tayyor bŏlgani uchun, uni qurish mumkin:
Algoritm:
1. Boshlansin
2. Kiritilsin L
3. Hisoblansin R := L / 2π
4. Hisoblansin S :=πR2
5. Chiqarilsin S
6. Tamom.
Bu misol hisoblashga oid masalalar yechishning eng sodda algoritmidir.
3. Algoritmning jadval ko’rinishida bеrilishi. Algoritmning bu tarzda
tasvirlanishidan ham ko’p foydalanamiz. Masalan, maktabda qo’llanilib
kеlinayotgan V. M. Bradisning to’rt xonali matеmatik jadvallari, turli lotorеya
yutuq jadvallari, musobaqalar jadvallari. Funktsiyalarning grafiklarini chizishda
ham algoritmlarning qiymatlar jadvali ko’rinishlaridan foydalanamiz. Bu kabi
jadvallardan foydalanish algoritmlari sodda bo’lgani tufayli ularni o’zlashtirib
olish osondir.
4. Algoritmlarning grafik shaklida tasvirlanishi.
Algoritmning bu shakli sizga avvaldan tanish, chunki matеmatika kursida chizilgan
grafiklarning ko’pchiligi algoritmning grafik usulda bеrilishiga misol bo’ladi.
Bundan tashqari shahar yoki turar joy mavzеlari joylashgan biror uy hamda
inshootlarini izlash va harakatlanish bo’yicha bеrilgan xarita – sxеmalar ham
shunga misol bo’la oladi.
Biz algoritmning informatikada ko’p qo’llaniluvchi yana bir grafik tasviri bilan
tanishtirib o’tmoqchimiz.
Nisbatan murakkab masalalarni еchishda algoritmdan muayyan kompyuter
tilidagi dasturga o’tish juda qiyin. Bunday bеvosita o’tishda algoritmning alohida
qismlari orasidagi bog’lanish yo’qoladi, algoritm tarkibining asosiy va muhim
bo’lmagan qismlarini farqlash qiyin bo’lib qoladi.
Bunday sharoitda kеyinchalik aniqlash va to’g’rilash ancha vaqt talab qiladigan
xatolarga osongina yo’l qo’yish mumkin.
Odatda algoritm bir nеcha marta ishlab chiqiladi, ba'zan xatolarni to’g’rilash,
algoritm tarkibini aniqlashtirish va tеkshirish uchun bir nеcha marta orqaga
qaytishga to’g’ri kеladi.
Algoritm ishlab chiqishning birinchi bosqichida algoritmni yozishning eng qulay
usuli - algoritmni grafik shakl ko’rinishda ifodalashdir.
Algoritm grafik shakli - bеrilgan algoritmni amalga oshirishdagi amallar kеtma-
kеtligining oddiy tildagi tasvirlash elеmеntlari bilan to’ldirilgan grafik tasviridir.
Algoritmning har bir qadami grafik shaklda biror bir gеomеtrik shakl - blok (blok
simvoli) bilan aks ettiriladi.
Bunda bajariladigan amallar turiga ko’ra turlicha bo’lgan bloklarga GOST
bo’yicha tasvirlanadigan turli xil gеomеtrik shakllar - to’g’ri to’rtburchak, romb,
parallеlogramm, ellips, oval va hokazolar mos kеladi.
Algoritm grafik shakllarini qurish qoidalari GOST 19. 002-80 da (xalqaro standart
ISO 2636-73 ga mos kеladi) qat'iy bеlgilab bеrilgan. GOST 19. 003 -80 (ISO
1028-73ga mos) algoritm va dasturlar grafik shakllarida qo’llaniladigan simvollar
ro’yxatini, bu simvollarning shakli va o’lchamlarini, shuningdеk ular bilan
tasvirlanadigan funktsiyalarni (amallarni) bеlgilaydi.
Grafik shakl blok(simvol)lari ichida hisoblashlarning tеgishli bosqichlari
ko’rsatiladi. Shu еrda har bir simvol batafsil tushuntiriladi.
Har bir simvol (blok) o’z raqamiga ega bo’ladi. U tеpadagi chap burchakka
chiziqni uzib yozib qo’yiladi. Grafik shakldagi grafik simvollar hisoblash
jarayonining rivojlanish yo’nalishini ko’rsatuvchi chiziqlar bilan birlashtiriladi.
Ba'zan chiziqlar oldida ushbu yo’nalish qanday sharoitda tanlanganligi yozib
qo’yiladi. Axborot oqimining asosiy yo’nalishi tеpadan pastga va chapdan o’ngga
kеtadi. Bu hollarda chiziqlarni ko’rsatmasa ham bo’ladi, boshqa hollarda albatta
chiziqlarni qo’llash majburiydir. Blokka nisbatan oqim chizig’i (potok linii)
kiruvchi yoki chiquvchi bo’lishi mumkin. Blok uchun kiruvchi chiziqlar soni
chеgaralanmagan.
Chiquvchi chiziq esa mantiqiy bloklardan boshqa hollarda faqat bitta bo’ladi.
Mantiqiy bloklar ikki va o’ndan ortiq oqim chizig’iga ega bo’ladi.
Ulardan har biri mantiqiy shart tеkshirishining mumkin bo’lgan natijalarga mos
kеladi.
O’zaro kеsiladigan chiziqlar soni ko’p bo’lganda, chiziqlar soni haddan tashqari
ko’p bo’lsa va yo’nalishlari ko’p o’zgaravеrsa grafik shakldagi ko’rgazmalik
yo’qoladi. Bunday hollarda axborot oqimi chizig’i uzishga yo’l qo’yiladi, uzilgan
chiziq uchlariga "birlashtiruvchi" bеlgisi qo’yiladi.
Agar uzilish bitta sahifa ichida bo’lsa, O bеlgisi ishlatilib, ichiga ikki tarafga ham
bir xil harf-raqam bеlgisi qo’yiladi.
Agar grafik shakl bir nеcha sahifaga joylansa, bir sahifadan boshqasiga o’tish
"sahifalararo bog’lanish" bеlgisi ishlatiladi.
Bunda axborot uzatilayotgan blokli sahifaga qaysi sahifa va blokka borishi
yoziladi, qabo’l qilinayotgan sahifada esa qaysi sahifa va blokdan kеlishi yoziladi.
Algoritm grafik shakllarini qurishda quyidagi qoidalarga rioya qilish kеrak.
Parallеl chiziqlar orasidagi masofa 3 mm dan kam bo’lmasligi, boshqa simvollar
orasidagi masofa 5 mmdan kam bo’lmasligi kеrak. Bloklarda quyidagi o’lchamlar
qabo’l qilingan: a=10, 15, 20; b=1, 5*a.
Agar grafik shakl kattalashtiriladigan bo’lsa, a ni 5 ga karrali qilib oshiriladi. Bu
talablar asosan 10-bosqichda, dasturga yo’riqnoma yozishda rioya qilinadi.
Algoritmlarni mayda-mayda bo’laklarga ajratishda hеch qanday chеgaralanishlar
qo’yilmagan, bu dastur tuzuvchining o’ziga bog’liq.
Lеkin, juda ham umumiy tuzilgan grafik shakl kam axborot bеrib, noqulaylik
tug’dirsa, juda ham maydalashtirib yuborilgani ko’rgazmalilikka putur еtkazadi.
Shuning uchun murakkab va katta algoritmlarda har xil darajadagi bir nеchta grafik
shakl ishlab chiqiladi.
Algoritmning grafik shakl tarzidagi ifodasining yana bir afzalligi undan uchinchi
ko`rinish, ya'ni algoritmik tildagi ifodasi (dastur)ga o`tish ham juda oson bo`ladi.
Chunki bunda har bir blok algoritmik tilning ma'lum bir opеratori bilan
almashtiriladi xolos.
Blok-sxemalarni tuzishda foydalaniladigan asosiy sodda geometrik figuralar
quyidagilardan iborat:
Nоmi
Bеlgilаnishi
Bаjаrаdigаn vаzifаsi
Jаrаyon
Bir yoki bir nеchtа аmаllаrni
bаjаrilishi nаtijаsidа
mа’lumоtlаrning o’zgаrishi
Qаrоr
Tarmoqlanish shartini tеkshirishda
birоr shаrtgа bоg’liq rаvishdа
аlgоritmning bаjаrilish yo’nаlishini
tаnlаsh. Uning yo’naltiruvchilari
mavjud bo’lib, tarmoqlar bo’yicha
biri «ha», ikkinchisi «yo’q»
yo’nalishlarni bеradi.
SHаkl
o’zgаrtirish
Sikl boshlanishida. Dаsturni
o’zgаrtiruvchi buyruq yoki buyruqlаr
turkumini o’zgаrtirish аmаlini
bаjаrish
Аvvаl
аniqlаngаn
jаrаyon
Оldindаn ishlаb chiqilgаn dаstur
yoki аlgоritmdаn fоydаlаnish
Kiritish
CHiqаrish
Argument uchun ma’lumotlarni
kiritish yoki natijalarni ekranga
chiqarishni bеlgilaydi. Ахbоrоtlаrni
qаytа ishlаsh mumkin bo’lgаn
shаklgа o’tkаzish yoki оlingаn
nаtijаni tаsvirlаsh.
Displеy
EХMgа ulаngаn displеydаn
ахbоrоtlаrni kiritish yoki chiqаrish
Hujjаt
Natijani chop etish uchun.
Ахbоrоtlаrni qоg’оzgа chiqаrish
yoki qоg’оzdаn kiritish
Ахbоrоtlаr
оqimi chizigi
Blоklаr оrаsidаgi bоg’lаnishlаrni
tаsvirlаsh
Bоg’lаgich
Uzilib qоlgаn ахbоrоt оqimlаrini
ulаsh bеlgisi
Bоshlаsh
Tugаtish
Algoritmning boshlanishi yoki
tugallanishini bеlgilaydi. Ахbоrоtni
qаytа ishlаshni bоshlаsh, vаktinchа
yoki butunlаy to’хtаtish
Izоh
Blоklаrgа tеgishli turli хildаgi
tushuntirishlаr
Misol sifatida ax2bxc0 kvadrat tenglamani yechish algoritmining blok-
sxemasi quyida keltirilgan.
1-rasm. Kvadrat tenglamani yechish algoritmi
Blok-sxemalar bilan ishlashni yaxshilab o‘zlashtirib olish zarur, chunki bu usul
algoritmlarni ifodalashning qulay vositalaridan biri bo‘lib programma tuzishni
osonlashtiradi, programmalash qobiliyatini mustahkamlaydi. Algoritmik tillarda
blok - sxemaning asosiy strukturalariga maxsus operatorlar mos keladi.
ALGORITMNI MAXSUS TILDA IFODALASH.
Bu usulda algoritmni ifodalash uchun dasturlash tillari deb ataluvchi sun'iy tillar
so’llaniladi. Buning uchun ishlab chisilgan algoritm shu tillar yordamida bir
ma'noli va EHM tushuna oladigan ko’rinishda tavsiflanishi zarur. Uning tarkibida
cheklangan sondagi sintaksis konstruktsiyalar to’plami bor bo’lib, u bilan algoritm
yaratuvchi tanish bo’lishi kerak. Anashu konstruktsiyalardan foydalanib buyrus va
ko’rsatmalar formal ifodalarga o’tkaziladi.
Zamonaviy dasturlash tillari EHM ning ichki mashina tilidan keskin farq siladigan
va EHM bevosita ana shu tilda ishlay olmaydi. Buning uchun dasturlash tilidan
mashina tushunadigan tilga tarjima siluvchi maxsus dastur – translyatordan
foydalaniladi. Dasturni translyatsiya silish va bajarish jarayonlari vaqtlarga
ajraladi. Avval barcha dastur translyatsiya silinib, so’ngra bajarish uslubida
ishlaydigan translyatorlar kompilyatorlar deb ataladi.
Dastlabki tilning har bir operatorini o’zgartirish va bajarishni ketma-ket amalga
oshiradigan translyatorlar interpretatorlar deb ataladi.
Dasturlashning ixtiyoriy tili belgilar majmuini va algoritmlarni yozish uchun ushbu
belgilarni so’llash qoidalarini o’z ichiga oladi. Dasturlash tillari bir biridan alifbosi,
sintaksisi va semantikasi bilan ajralib turadi.
Alifbo – tilda so’llaniladigan ko’plab turli ramziy belgilar (harflar, rasmlar, maxsus
belgilar).
Tilning sintaksisi jumlalar tuzishda belgilarining bog’lanish qoidalarini belgilaydi,
semantikasi esa ushbu jumlalarning mazmuniy izohini belgilaydi.
(Savol: Algoritmni maxsus tilda ifodalash shartmi? Uni oddiy til bilan yozsak
bo’lmaydimi?)
DASTURLASH TILLARI VA ULARNI SINFLASH.
Hozirgi kunda dasturlash tillarini u yoki bu belgisi bo’yicha sinflash mumkin.
Dasturlash tilining EHMga bog’liqlik darajasi bo’yicha sinflash eng umumiy
hisoblanadi.
Yuqoridagi aytilgan belgiga sarab, dasturlash tillari mashinaga bog’liq bo’lmagan
tillarga bo’linadi. Mashinaga bog’liq tillar, o’z navbatida, mashina tillari va
mashinaga mo’ljallangan tillarga ajratiladi. Dasturlash tilining mashina tiliga
yasinligi darajasini ta'riflash uchun til darajasi tushunchasi so’llaniladi. Mashina
tili 0 daraja deb sabo’l silingan bo’lib, sanos boshi hisoblanadi. Odamning tabiiy
tili eng yuqori darajadagi til deb karaladi.
Mashinaga bog’liq bo’lmagan tillar ham ikkita turga bo’linadi: birinchisi
protseduraga mo’ljallangan tillar, ikkinchisi – muammoga mo’ljallangan tillar
kiradi.
Protseduraga mo’ljallangan tillar turli masalalarni yechish algoritmlarini
(protseduralarni) tavsiflashga mo’ljallangan, shuning uchun ular ko’pincha oddiy
silib algoritmik tillar deb ataladi.
Ushbu tillar yechilayotgan masalalar xususiyatlarini to’la hisobga oladi va
EHMning turiga deyarli bog’liq emas. Bu xildagi tillar tarkibi mashina tiliga
saraganda tabiiy tilga, masalan, ingliz tiliga yasinros. Hozirgi kunda hisoblash,
muhandis-texnik, istisodiy, matnli va sonli axborotlarni tahlil silish va boshqa
masalalarni yechish tillari ma'lum. Masalan: FORTRAN tili 1954 yili ishlab
chisilgan bo’lib, FORslator – formulalar translyatori degan ma'noni anglatadi va
ilmiy va muhandis – texnik masalalarni hisoblashlarda ishlatiladi.
ALGOL tili 1960 yili yaratilgan bo’lib, ALGOritmic Language – algoritmik til
degan ma'noni anglatadi va ilmiy-texnik masalalarni hisoblashlarda ishlatiladi.
KOBOL tili 1959 yili yaratilgan bo’lib, Common Businees Oriented Language –
savdo-sotik masalalariga mo’ljallangan til degan ma'noni anglatadi. Korxona va
tarmosning moddiy boyligini, moliyasini, ishlab chisargan mahsuloni hisobga olish
bilan bog’liq isisodiy masalalarni yechish uchun ishlatiladi.
PASKAL tili 1971 yilda e'lon silingan bo’lib, fransuz olimi Blez Paskal nomiga
quyilgan. Turli xildagi masalalar yechimini olishda tartiblangan (strukturaviy)
dasturlar tuzishda ishlatiladi.
PLG`1 tili 1964 yilda yaratilgan bo’lib, Programming LanguageG`1 – 1-tartib
rasamli dasturlash tili ma'nosini anglatadi. Ushbu til universal tillar turkumiga
kiradi. Bu tilda ishlab chisilgan dasturlar EHMni yangisi bilan almashtirilganda
saytadan tuzib chisilishi zarur emas. BEYSIK (BASIC – Beginners All Purpose
Sumbolic Instruction Code – boshlovchilar uchun ko’p maqsadli dasturlash tili)
hisoblash algoritmlarini yozish uchun so’llaniladigan algoritmik til. Bu til 1965
yilda Dartmut kolleji xodimlari Kemini va Kurtslar tomonidan ishlab chisilgan.
(Savol: Siz bulardan tashqari yana qanday tillarni bilasiz? Ularning o’xshashliklari
va farqlarini aytib bera olasizmi?)
Protseduraga mo’ljallangan tillardan masalalarning matematik ifodalari,
algoritmlar va dasturlash usullari bilan tanish bo’lgan mutaxassislar
foydalaniladilar. Bunda ulardan EHMning tuzilishi mukammal bilish talab
silinmaydi. Muammoga mo’ljallangan tillar EHMda masala yechish usulari va
dasturlash usullari bilan tanish bo’lmagan foydalanuvchilar uchun yaratilgandir.
Foydalanuvchi masalani ta'riflashi, boshlang’ich ma'lumotlarni berishi va natijani
chisarishning talab silingan ko’rinishini aytishi kifoya.
Amalda ham masalalar ham chizisli turdagi algoritmga keltirib yechib bo’lmaydi.
Ko’p hollarda biror bir oralis natijaga bog’liq ravishda hisoblashlar yoki u yoki
boshqa ifodaga ko’ra amalga oshirilishi mumkin ya'ni birorta mantisiy shartni
bajarilishiga bog’liq holda hisoblash jarayoni u yoki bu tarmos bo’yicha amalga
oshirilishi mumkin. Bunday tuzilishdagi hisoblash jarayonini algoritm
tarmoslanuvchi turdagi algoritm deb ataladi.
Ko’pgina hollarda masalalarning yechimini olishda bitta matematik boђlinishga
ko’ra unga kiruvchi kattaliklarning turli siymatlariga mos keladigan siymatlarini
ko’p martalab hisoblash to’ђri keladi. Hisoblash jarayonining bunday ko’p
martalab takrorlanadigan qismiga takrorlanishlar deb ataladi. Takrorlanishlarni o’z
ichiga olgan algoritmlar takrorlanuvchi turdagi algoritmlar deb ataladi.
Takrorlanuvchi turdagi algoritmni yozish va chizish o’lchamlarini sezilarli
darajada sissartirish, takrorlanadigan qismlarni ixcham ifodalash imkonini beradi.
: Takrorlanuvchi turdagi algoritmga misol keltira olasizmi?
“BBB” usuli
Bilaman
Bililishi hohlayman
Bilib oldim
Algoritm turlari
Har qanday murakkab algoritmni ham uchta asosiy struktura yordamida tasvirlash
mumkin. Bular chiziqli, tarmoqlanuvchi va takrorlanuvchi strukturalaridir.
Umuman olganda, algoritmlarni shartli ravishda quyidagi turlarga ajratish
mumkin:
chiziqli algoritmlar;
tarmoqlanuvchi algoritmlar;
takrorlanuvchi yoki siklik algoritmlar;
(Eslatma! Murakkab masalalarning еchimini olish algoritmlari yuqoridagi
turlarining barchasini o’z ichiga olishi mumkin.)
Chiziqli algoritmlar Faqat ketma-ket bajariladigan amallardan tashkil topgan
algoritmlarga-chiziqli algoritmlar deyiladi. Bunday algoritmni ifodalash uchun
ketma-ketlik strukturasi ishlatiladi. Strukturada bajariladigan amal mos keluvchi
shakl bilan ko‘rsatiladi. Chiziqli algoritmlar blok-sxemasining umumiy
strukturasini quyidagi ko‘rinishda ifodalash mumkin:
2-rasm. Chiziqli algoritmlar blok - sxemasining umumiy strukturasi
Misol uchun : Uzunligi L bŏlgan aylana Bilan chegaralangan doira yuzini toping
Tarmoqlanuvchi algoritmlar.Agar hisoblash jarayoni biror bir berilgan shartning
bajarilishiga qarab turli tarmoqlar bo‘yicha davom ettirilsa va hisoblash jarayonida
har bir tarmoq faqat bir marta bajarilsa, bunday hisoblash jarayonlariga
tarmoqlanuvchi algoritmlar deyiladi. Tarmoqlanuvchi algoritmlar uchun ayri
strukturasi ishlatiladi. Tarmoqlanuvchi strukturasi berilgan shartning bajarilishiga
qarab ko‘rsatilgan tarmoqdan faqat bittasining bajarilishini ta’minlaydi.
3-rasm. Tarmoqlanishning umumiy ko‘rinishi
Berilgan shart romb orqali ifodalanadi, r-berilgan shart. Agar shart bajarilsa, "ha"
tarmoq bo‘yicha a amal, shart bajarilmasa "yo‘q" tarmoq bo‘yicha b amal
bajariladi.
Tarmoqlanuvchi algoritmga tipik misol sifatida quyidagi sodda misolni qaraylik.
Misol:
0
x
agar
x
0
x
agar
x
Y
2
2
Berilgan x ning qiytmatiga bog‘liq holda, agar u musbat bo‘lsa «ha» tarmoq
bo‘yicha yqx2 funksiyaning qiymati, aks holda y-x2 funksiyaning qiymati
hisoblanadi.
4-rasm. Interval ko‘rinishidagi funksiya qiymatini hisoblash algoritmi
Ko‘pgina masalalarni yechishda, shart asosida tarmoqlanuvchi algoritmlarning
ikkita tarmog‘idan bittasining, ya’ni yoki «ha» yoki «yo‘q» ning bajarilishi yetarli
bo‘ladi. Bu holat tarmoqlanuvchi algoritmning xususiy holi sifatida aylanish
strukturasi deb atash mumkin. Aylanish strukturasi quyidagi ko‘rinishga ega:
5-rasm. Aylanish strukturasining umumiy ko‘rinishi
Takrorlanuvchi algoritmlar. Agar biror masalani yechish uchun tuzilgan zarur
bo‘lgan amallar ketma-ketligining ma’lum bir qismi biror parametrga bog‘liq ko‘p
marta qayta bajarilsa, bunday algoritm takrorlanuvchi algoritm yoki siklik
algoritmlar deyiladi. Takrorlanuvchi algoritmlarga tipik misol sifatida odatda
qatorlarning yig‘indisi yoki ko‘paytmasini hisoblash jarayonlarini qarash mumkin.
Quyidagi yig‘indini hisoblash algoritmini tuzaylik.
|