Uploaded by Programm and computer science

4BzovDnlUCJB1WA8RYzRi2KW7sQvLIiI

advertisement
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.
Download