Dasturning o’lchanadigan xususiyatlari
Istalgan taqdim etilgan dastur(algoritm) ning o’lchanadigan xususiyati quyidagi tarkibiy qismlardan iborat bo’ladi:
n1 - berilgan dasturdagi oddiy operatorlar soni ;
n2 - berilgan dasturdagi oddiy(unikal) operandlar soni;
N1 - berilgan dasturdagi barcha operatorlarning umumiy soni;
N2- berilgan dasturdagi barcha operandlar soni;
f1j - dasturda j- operatorning paydo bo’lishlari soni, bu yerda j=1,2,3,..n1;
f2j - dasturda j- operandning paydo bo’lishlari soni, bu yerda j=1,2,3,..n1;
Dastur uchun bu asosiy metrik xususiyatlarni aniq bir vaziyat uchun tadbiq etganda dastur kodi uchun quyidagilar o’rinli bo’ladi:
lug’at n=n1+n2;
amaldagi dastur uzunligi N=N1+N2;
dastur uzunligi Ǹ=(n1*log2n1)+(n2*log2n2);
Shuni ta'kidlash kerakki, dasturning to'g'ridan-to'g'ri maqsadlaridan tashqari, dastur uzunligi va amalga oshirish uzunligi ko'rsatkichlari ham unchalik muvaffaqiyatli bo'lmagan dasturlash usullaridan foydalanish natijasi bo'lgan dasturiy kamchiliklarni aniqlash uchun ishlatilishi mumkin. Agar dastur uzunligi va amalga oshirish uzunligining hisoblangan qiymatlari 10% dan ortiqroq farq qilsa, demak, bu dasturda quyidagi oltita nomukammallik sinfining mavjudligini ko'rsatadi.
1. Bir xil operandga qo'shimcha operatorlarning ketma-ketligi borligi, masalan A + C - A. shunisi aniqki, bunday holatda ikkita o'zgaruvchini qarama-qarshi qiymat bilan olingan bir xil qiymat bilan to'ldiradigan ikkita keraksiz harakatlar bajariladi. belgilar ...
2. Ikkitomonlama operandlarning mavjudligi, masalan A = D va A = S Bunday harakatlarni bajarish dasturni qiyin ahvolga soladi, chunki topshiriq chap tomonda ko'rsatilgan operandning qiymatini tenglashtirish orqali amalga oshiriladi. ifodaning o'ng tomonida berilgan qiymat. Eng yaxshi holatda, mavjud qiymatga yangi qiymatni keraksiz belgilash sodir bo'ladi.
3. Sinonimik operandlarning mavjudligi, masalan A = B va C = B. Bir xil qiymatni har xil o'zgaruvchilarga berish kerakligi sababli, bu misol uchun B o'zgaruvchisi umuman ishlatilmasligi mumkin. A va C o'zgaruvchilar qiymatlarini shunchaki tenglashtirish - yanada ixcham variant.
4. Umumiy qism ifoda berilgan, masalan:
(A+B)*C+D*(A+B)
Bu erda A va B o'zgaruvchilar yig'indisini to'liq ixtiyoriy takrorlash qo'llaniladi, bu qo'shimcha dasturni bajarish vaqtiga olib keladi.
Keraksiz o’zgaruvchi, masalan, C o'zgaruvchi berilgan bo'lsa C = A + B dasturda faqat bir marta ishlatiladi. O'zgaruvchida biron bir operatsiyani bir marta bajarishda qo'shimcha operandni kiritish noo'rin, bu dastur o'zgaruvchilari uchun ajratilgan xotira hajmini ko'payishiga olib keladi va lug'at hajmini oshiradi.
Do'stlaringiz bilan baham: |