O`ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQANDFILIALI Kompyuter injenering fakulteti Dasturiy injenering kafedrasi talabasi Abdixoliqov Lochinning Dasturiy ta’minot sifatini ta’minlash fanidan 3-amaliy ishi Bajardi: Abdixoliqov L. Tekshirdi: TURSUNOV M. S. Mavzu: Hasisted sifat o’lchov usuloni urganish. Masalaning quyilishi: Masala 1. To’rtburchak yuzi va perimatrini topuvchi dastur tuzing. Dastur sifat ko’rsatkichini Halsted o’lvhovi asosida baholang. 2. Kvadrat tenglamaning ildizlarini topuvchi dastur tuzing. Dastur sifat ko’rsatkichini Halsted o’lvhovi asosida baholang Nazariy qism: Haslsted o’lchivi bu biron kodni tahlil qilish usulidir. Undagi formula va belgilar quyidagicha. Unikal operatorlar soni (N1): Dasturda foydalanilgan barcha turdagi operatorlar (amaliyotlar, shartlar, sikllar, funktsiyalar, klaslar va hokazo) soni. Unikal operandlar soni (N2): Dasturda foydalanilgan barcha turdagi operandlar (o'zgaruvchilar, konstantalar, funksiya nomlari va hokazo) soni. Operatorlar umumiy soni (n1): Barcha operatorlar soni (bir marta foydalanilgan operatorlarni ham o'z ichiga oladi). Operandlar umumiy soni (n2): Barcha operandlar soni (bir marta foydalanilgan operandlarni ham o'z ichiga oladi). Dastur kodining o'lchovli to'plami (L): Dastur kodining o'lchovli umumiy soni, Volumetric programmi o'lchov (V) ni o'zgartirish koefitsiyenti (D) ga bo'lib bo'linadi. Halested o'lchov formulalari quyidagicha: N = N1 + N2 n = n1 + n2 V = N * log2(n) L=V/D E=V*D Quyidagi turtburchakning yuzi va peremetirini hisoblovchi dasturni tahlil qilib kuramiz. #include <iostream> using namespace std; int main() { float uzunlik, eni, yuzi, perimetr; cout << "To'rtburchak uzunligini kiriting: "; cin >> uzunlik; cout << "To'rtburchak enini kiriting: "; cin >> eni; yuzi = uzunlik * eni; perimetr = 2 * (uzunlik + eni); cout << "To'rtburchak yuzi: " << yuzi << endl; cout << "To'rtburchak perimetri: " << perimetr << endl; return 0; } Dastur kodidagi unikal operatorlar sonini (N1) va unikal operandlar sonini (N2) aniqlash uchun kodni ko'rib chiqamiz: Unikal operatorlar soni (N1): #include using namespace std int float main cout cin << >> = * + 2 () endl return 0 Unikal operandlar soni (N2): uzunlik eni yuzi perimetr Operatorlar umumiy soni (n1) = 19 (bir marta foydalanilgan operatorlar soni). Operandlar umumiy soni (n2) = 4 (bir marta foydalanilgan operandlar soni). Dastur kodining o'lchovli to'plami (L) ni hisoblash uchun N va n qiymatlari kerak. L = V / D formulasi yordamida o'lchovli to'plamni topamiz. Biz D qiymatini 20 ga olib chiqamiz, chunki dasturda 20 ta unikal operator va operand ishlatilgan. N = N1 + N2 = 19 + 4 = 23 n = n1 + n2 = 19 + 4 = 23 Dastur kodining o'lchovli to'plami (L) ni topish uchun: L=V/D V = N * log2(n) D = 20 V = 23 * log2(23) ≈ 23 * 4.523 = 103.929 L = 103.929 / 20 ≈ 5.196 Demak, dastur kodining o'lchovli to'plami (L) ≈ 5.196. 2. #include <iostream> #include <cmath> using namespace std; int main() { float a, b, c; float discriminant, root1, root2; cout << "Kvadrat tenglama yechish uchun a, b, va c ni kiriting: "; cin >> a >> b >> c; discriminant = b * b - 4 * a * c; if (discriminant > 0) { root1 = (-b + sqrt(discriminant)) / (2 * a); root2 = (-b - sqrt(discriminant)) / (2 * a); cout << "Ildizlar: " << root1 << " va " << root2 << endl; } else if (discriminant == 0) { root1 = -b / (2 * a); cout << "Bir ildiz mavjud: " << root1 << endl; } else { cout << "Ildizlar mavjud emas" << endl; } return 0; } Dastur kodini tahlil qilib, unikal operatorlar va operandlar sonini hisoblaymiz: Unikal operatorlar soni (N1): #include iostream cmath using namespace std int float cout cin >> << = if else sqrt main return Unikal operandlar soni (N2): a b c discriminant root1 root2 Operatorlar umumiy soni (n1) = 18 (bir marta foydalanilgan operatorlar soni). Operandlar umumiy soni (n2) = 6 (bir marta foydalanilgan operandlar soni). Dastur kodining o'lchovli to'plamini (L) hisoblash uchun N va n qiymatlari kerak: N = N1 + N2 = 18 + 6 = 24 n = n1 + n2 = 18 + 6 = 24 Dastur kodining o'lchovli to'plamini (L) topish uchun V qiymatini hisoblashimiz kerak: V = N * log2(n) = 24 * log2(24) ≈ 24 * 4.585 = 110.04 Demak, dastur kodining o'lchovli to'plami (L) ≈ 110.04. Dasturning o'lchovli umumiy soni (V) esa V = 24.