Mavzu: algoritmlash va dasturlash faniga kirish



Download 18,16 Kb.
Sana14.07.2021
Hajmi18,16 Kb.
#119024
Bog'liq
Algoritmlash№1


Mavzu: ALGORITMLASH VA DASTURLASH FANIGA KIRISH

REJA:


  1. Algoritm va aloritmlash tushunchasi

  2. Algoritmning xossalari

  3. Algoritmning yozish usullari

  1. Algoritm quyidagi xossalarga ega bo’lishi kerak:

- bir qiymatlilik, ya’ni hamma narsa oldindan aniqlangach va hech qanday ixtiyoriylikka joy yo’q;

- ommaviylikligi, ya’ni keng masalalar sinfining boshlang’ich malumotlarini turli variantlarda va ixtiyoriy mashinada ishlatilishi;

- natijaviyligi, ya’ni oxirgi natijani olishga majburligidir.

Algoritm deganda ijrochiga ko’rsatilgan maqsadga erishish yoki quyilgan masalani echishga qaratilgan amallar ketma-ketligini bajarish uchun tushunarli va aniq ko’rsatmalarni berish tushuniladi.

Algoritm so’zi arifmetik amallarni bajarish qoidalarini bayon qilgan IX asrning buyuk matematigi Al-Xorazmiy nomini lotincha shaklidir. Dastavval algoritmlar deganda ko’p xonali sonlar bilan to’rt arifmetik amal bajariladigan qoida tushunilar edi. Keyinchalik bu tushuncha qo’yilgan masalani echishga olib keladigan qoida va amallarni ketma-ketligini belgilash uchun qo’llanila boshlandi. Algoritmni yozishning bir qancha usullari bor. Jarayonlarni algoritmlashni so’z bilan ifoda qilish, grafik usulda hamda jadval usulida yozish mumkin. Algoritmlarni yozishning eng ko’p tarqalgan usullaridan biri-uni bloksxema tarzida ifodalashdan iboratdir. Bloklarning geometrik shakllari, sxemalar tuzish qoidalari davlat standartiga mos ravishda belgilangandir. SHartli bloklarning mavjudligi va ularning boshqa bloklar bilan bog’liqligiga qarab chiziqli, tarmoqlanuvchi, takrorlanuvchi blok-sxemalar, shuningdek ularning kombinatsiyalari bo’lishi mumkin.

Algoritmlar blok-sxemalari har bir amalga mos tarzda (boshlang’ich ma’lumotlarni kiritish, hisoblash, tekshirish, takrorlashni boshqarish, natijalarni chiqarish, hisoblashlarni tugatish) har xil geometrik shakllardan iborat bloklardan tashkil topadi. Bloklar bajarilish tartibi bo’yicha, yuqoridan pastga, chapdan o’ngga tomon chiziqlar bilan tutashtiriladi.

Ko'pincha "Dasturchi algoritmlarga muhtojmi" kabi savollar mavjud va ularning barchasi taxminan bir xil shablonga ega. Maqolaning muallifi odatda shunday yozadi: "Men N yil davomida 1C da saytlar / skriptlar bilan shug'ullanaman va hech qachon algoritmlardan yoki ma'lumot tizimlaridan foydalanmadim. To'g'ri, qizil-qora daraxtlar yoki boshqa ekzotik tuzilmalar misollari mavjud, ular muallif ishlaydigan hududda umuman ko'rinmaydi. Bunday maqolalar ma'lum bir sohada dasturchilar murakkab ma'lumotlar tuzilmalaridan foydalanmasliklari va NP muammolarini hal qilmasliklari bilan yakunlanadi.

Bunday savolning juda to'g'ri shakllanishi umuman noto'g'ri. Ushbu sohadagi mutaxassisliklar soni doimiy ravishda o'sib bormoqda va .net saytlarini yozadigan kishi ekzotik OS ostida ARM arxitekturasida sensorlar uchun drayverlarni yozadigan odamga qaraganda mutlaqo boshqacha ish qiladi. Avval algoritm nima ekanligini aniqlaymiz. Norasmiy ravishda Cormen algoritmni bir yoki bir nechta qiymatlarni kirish sifatida qabul qiladigan va natijada bir yoki bir nechta qiymatlarni qaytaradigan aniqlangan protsedura sifatida belgilaydi. Rasmiy ravishda algoritm turli xil hisoblash modellarida aniqlanadi: Turing mashinasida yoki lambda hisobidan foydalanib bajarilishi mumkin bo'lgan operatsiyalar. Shunday qilib, biron bir narsani bajaradigan deyarli har qanday kod algoritmdir. Aniqlanishicha, "dasturchiga algoritm kerakmi" degan savolni "dasturchi kod yoza olishi kerakmi" deb tarjima qilish mumkin. To'g'ri bunday savol quyidagicha eshitilishi kerak: "X sanoatidagi dasturchi ilg'or algoritmlarni va hisoblash nazariyasining tafsilotlarini bilishi kerakmi?"

Agar siz ushbu maqolalarning barchasiga nazar tashlasangiz, ularni yozadigan odamlar haqiqatan ham universitetlar tomonidan juda ko'p murakkab materiallarni - algoritmik tahlil, murakkab algoritmlar va ma'lumotlar tuzilmalarini o'rganishga majbur bo'lganliklari uchun foydasiz bo'lib tuyulganidan xafa bo'lishlarini sezasiz. ... Aslida, maqolalar mualliflari universitetlarning g'azabiga uchraydilar, chunki ular kelgusida ishlash sohasini oldindan aytib bera olmadilar va ularga minimal zarur ko'nikmalar to'plamini berdilar. Darhaqiqat, oddiy veb-saytlar va skriptlarni yozish uchun sizga algoritmlar va ma'lumotlar tuzilmalari to'g'risida maxsus bilim kerak emas. Yoki hali ham kerakmi?

Muvaffaqiyatli martaba uchun zarur ko'nikmalarni egallash uchun dasturchi universitetda nimani o'qitishi kerakligi haqida o'ylab ko'raylik. Kutubxonalarmi? Ramkalar? Ular eskirmoqda, interfeyslar o'zgarmoqda, ularning barchasi ko'pincha bitta tilda yozilgan bo'lib, talabalar bu sohada hech qachon foydalana olmaydilar. Hammaga veb-saytlarni yozishni o'rgatish kerakmi? Yoki barchaga OS yozishni o'rgatasizmi? Ta'lim imkon qadar ko'proq auditoriyani qamrab olishi va eng keng ko'nikmalar to'plamini taqdim etishi kerak. Dasturchi birinchi navbatda muammolarni tahlil qila va hal qila olishi kerak - bu kompyuter fanlari bitiruvchilari egallashi kerak bo'lgan asosiy mahoratdir. Kodni yozish shunchaki muammolarni hal qilish uchun ishlatiladigan zarur vositadir. Kelajakda qanday ko'nikmalarga ega bo'lishingizni kim bilishi mumkin? Shunday qilib, o'qitish nazariyasi ta'lim nuqtai nazaridan eng maqbuldir. Olingan ko'nikmalarni har qanday sohada qo'llash mumkin, va yaxshi bilim bazasiga ega bo'lgan kutubxona yoki doirani o'rganish qiyin bo'lmaydi. Algoritmlarning zarurligi haqida savol beradigan odamlar, qoida tariqasida, ushbu sohada ma'lum bilimlarga ega bo'lishlari paradoksaldir. Hisoblash nazariyasi sohasida hech qanday ma'lumotga ega bo'lmagan va bu haqda kerak emasligini da'vo qilib, baqirib baqirgan bitta odamni eslay olmayman.

Shunday qilib, siz vakuumda mavhum dasturchisiz, siz o'n yildan ortiq vaqt davomida veb-saytlarni aylanib chiqasiz va mijozlar / kompaniyalar uchun bir xil turdagi oddiy vazifalarni hal qilasiz. Siz o'z uyingizda yaxshi va qulay his etasiz va faqat hisoblash nazariyasi va algoritmik tahlil darslarida behuda vaqtni behuda o'tkazadigan og'riqli bo'lib, sizga hech narsa bermadi. Ertalab bir piyola kofe ustiga sigaretni yoqib, hayotning nochorligi haqidagi falsafiy mulohazalarni chuqurroq tushunarsiz, nega murakkab muammolarni hal qilmaydigan dasturchilar algoritmlar va tahlil asoslarini bilishlari kerak deb o'ylaysiz. Qisqa javob - bu malakali bo'lish va mavjud vositalardan, shu jumladan siz yozadigan tildan unumli foydalanish. Algoritmlar va tahlillar nazariyasi nafaqat ekzotik algoritmlar va AVL va qizil-qora daraxtlar shaklidagi ma'lumotlar tuzilmalarini o'rgatadi. Shuningdek, u ma'lumotlarni qanday qilib samarali tashkil qilish, maksimal ishlash uchun kodni qanday yozish kerakligi, tizimda qiyinchiliklar mavjudligi va uni qanday hal qilish haqida tushunchalarni beradi. Siz velosiped yozmasligingiz uchun va Google-ga har safar arzimas ishlarni bajarmasligingiz uchun tayyor echimlar bilan tanishasiz.

Tahlil nazariyasi va algoritmlari haqidagi bilimlar aslida har kuni barcha dasturchilar tomonidan qo'llaniladi, shunchaki biz bu narsalarga o'rganib qolganmiz va bu haqda xayolimizga ham kelmaydi. Qaysi vazifani hal qilsangiz ham - bu ma'lumotlar bazasidan ma'lumotlarni olib keladigan oddiy sayt yoki serverdagi bosh skript bo'lsin, siz biron-bir ma'lumot strukturasidan foydalanasiz. Hech bo'lmaganda ibtidoiy qator va, ehtimol, yanada murakkab narsa. Tillar bizga bir-birining o'rnini bosadigan turli xil tuzilmalarni beradi. Bizda ko'pincha bir xil mavhum tipdagi turli xil amalga oshirishlar mavjud. Masalan, C ++ vektorli va ro'yxatdagi ma'lumotlar tuzilmalariga ega. Ular qanday farq qilishadi va ulardan birini yoki boshqasini qo'llashning afzalliklari va kamchiliklari qanday? Xaritalar C ++ da qanday amalga oshiriladi va u multimapdan nimasi bilan farq qiladi? Pythonda ro'yxat qanday amalga oshiriladi - massiv yoki bog'langan ro'yxat orqali va u bilan ishlashning eng yaxshi usuli qanday? Nega C # da ArrayList dan foydalanish va uning o'rniga List-ni ishlatish mumkin emas? SortedDordam qanday amalga oshiriladi va lug'at o'rniga ishlatilsa dastur bajarilishiga qanday ta'sir qiladi? Davom etish qanday ishlaydi, uni qachon ishlatish kerak va uni ishlatishda biron bir yon ta'siri bo'ladimi? Siz deyarli barcha tillarda mavjud bo'lgan jingalak funktsiyalarni oxirgi marta qachon ishlatgansiz? Agar C ++ tilidagi xarita xesh-jadval sifatida amalga oshirilgan deb o'ylasangiz, siz yanglishyapsiz. U qizil-qora daraxtlarda, va xesh jadvali tartibsiz_mapda amalga oshiriladi. Dinamik dasturlash haqida ham aytib o'tish kerak. Bu nima ekanligini, qanday qilib rekursiv funktsiyalarni optimallashtirishingiz va eslab qolishning nima ekanligini tushunish, ko'pincha oyoqqa urilishdan saqlanishingizga yordam beradi. Shunday qilib, siz yozadigan tilni to'liq va samarali ishlatish uchun siz hech bo'lmaganda ma'lumotlar tuzilmalari, ularning holati va ular dasturingizning ishlashiga qanday ta'sir qilishi mumkinligi haqida yuzaki bilimga ega bo'lishingiz kerak.


https://widoc.ru/uz/nastrojjka/14-ponyatie-o-programmirovanii-algoritm-programma-algoritmizaciya/ manba
Download 18,16 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish