Algoitmlarni yaratish jarayoni birinchi navbatda bevosita qo‘yilgan masalaga va uni samarali, ixcham hamda qulay bo‘lishi esa dasturchining bilimi va m ahoratiga bog‘liq. Samarali algoritm yaratilishi uchun quyida keltirilgan omillar ham muhim o ‘rin tutadi:
• Algoritm yaratuvchining bilimlari hajmi;
• Intuitsiya, tasavvur va fikrlash darajasi;
• Yechimlarni mustaqil aniqlash tajribasi;
• Asosiy matematik amallardan foydalanish ko‘nikmalari;
• Tahlil, sintez, taqqoslash, moslik, umumlashtirish, analogiya kabi amallardan unumli foydalanish;
• Standart va nostandart masalalami yechimini aniqlay olish;
• Mantiqiy ko‘nikmalarni (gipotezalami ilgari surish, strukturalami tezlik bilan tuzish, xulosalar chiqarish) doimiy ravishda takomillashtirib borishi;
• Boshqalarning aniq masalaga keltirgan yechimini aniqlay olishi va uni baholay bilishi;
• Dasturlash tilining imkoniyatlaridan foydalana olish darajasi; Strukturaviy algoritmlar- faqat standart boshqaruvchi strukturalardan foydalaniladigan yetarli darajada oddiy, tushunarii va oson o'qiladigan masalalami yaratish metodi. Algoritmlashning strukturali tamoyillari -b u ularning bazaviy algoritmik birliklar asosida (chiziqli, tarmoqlanish, takrorlanish) yaratilishidir. Strukturali algoritm statik va dinamik holatlarda bo'lishi mumkin.
Bunday algoritmlarning to‘g ‘riligini ularning bajarilish va yaratilish jarayonining barcha bosqichlarida kuzatishmumkin. Har qanday algoritrnni strukturalashtirilgan -ekvivalent algoritm bilan ifodalanishi mumkin. Bu metodga quyidagi masalalarga algoritm tuzishni misol sifatida keltiramiz:
Kiritilgan sanaga ko‘ra navbatdagi sanani chop etuvchi algoritm tuzilsin. Asosiy holatlar:
• oy tarkibidagi kunlar sonini aniqlash;
• yilning kabisa yili yoki kabisa yili emasligini aniqlah;
• oyning ox.rgi kunu bo‘lsa, keyingi oyning 1 chi kunini belgilash; • fevral oyi kunlarini hisobga olish; Asosiy shart: ( (Y mod 4=0 ) and (Y mod 100<>0) ) or (Y mod 400=0 )
Algoritmlarni loyihalash va varatishning yana bir usuli moaulli usul hisoblanadi. Modul -b u nomga ega biror algoritm yoki uning bir qismi bo'lib, bu nom orqali uni faollashtirih mumkin. K o‘p holiarda modulni ham ixtiyoriy algoritmga xos bo'lgan yordamchi algoritm nomi bilan ham yuritishadi.
M odul xossalari:
• Funksional butunlik va tugatuvchanlik;
• Avtonom va boshqa modulga bog'liq bo‘lmaslik;
• Rivojlanuvchanlik;
• Yaratuvchi va foydalanuvchiga ochiqligi;
• Aniqlik va ishonarlilik;
• M oduldan fovdalanishda faqat uning nomiga m urojaat qilish orqali foydalanish; Algoritmlarni modulli loyihaiashning afzalliklari: . Katta hajmdgi algoritmlarni loyihalashda qulayligi;
• K o‘p foydalanadigan algoritm lar kutubxonasini yaratish;
• Loyihalash va moslashtirish jarayonini soddalashtirish; . Ulardan foydalanish jarayonini kuzatish imkoniyati;
1. Algoritmlarni konstruksivalash. Bu usulda yangi algoritm mavjud algoritmlardan tarkibiy qism lar sifatida foydalanib, birbiriga m oslab bir butunlik hosil qilish yo‘li bilan ishlab chiqiladi.
2. Algoritmlarni ekvivalent qayta ishlash. Ikki algoritm ekvivalent hisoblanishi uchun quyidagi shartlar bajarilish kerak: - Bittasi uchun mumkin bo‘Igan dastlabki berilganlar varianti, ikkinchisi uchun ham m umkin bo'lishi kerak. - Bir algoritmni qandaydir dastlabki m a’lumotga qo'llanilishi, ikkinchi algoritmni ham shu berilganga qo'llanilishiga kafolat beradi. - Bir xil dastlabki berilgan m a’lumot uchun ikkala algoritm ham bir xil natija berishi. Lekin bu algoritmni ikki xil shakllarini ekvivalent deb nom lash noto‘g‘ridir. Shunday qilib, algoritmni ekvivalent qayta ishlash deb, natijada dastlabki algoritm ga ekvivalent algoritmni paydo qiladigan o'zgartirilishlarga aytiladi.
Misol tariqasida, algoritmni bir tildan boshqa tilga o'tkazishni keltirish mumkin. Shu bilan birgalikda algoritmni ekvivalent qayta ishlash usuli bilan keskin o ‘zgartirish mumkin, lekin bu holda asosiy e ’tibom i dastlabki algoritmga nisbatan yahshi algoritmni yaratishga berish kerak.Toravtiruvchi o^zgartirishlar. Bunday o‘zgartirishlar natijasida dastlabki algoritmlar yechish kerak bo ‘lgan masalalaming xususiy holati yechimi algoritmlari ishlab chiqiladi. Odatda, bu usulda ekvivalent qayta ishlash jarayonida algoritmni ixchamlashtirish maqsadida foydalaniladi. Formal usulni matematikaga bog‘liq bo‘lmagan muammoga qo'llash. Bu yerda m atematik muammo matematik ko‘rinishga o'tkazilib, uning algoritmini ishlab chiqishga uriniladi. Agar o ‘xshash matematik m asala yechim ining algoritmi m a'lum bo'lsa, undan foydalaniladi.
Do'stlaringiz bilan baham: |