Tizimli va amaliy dasturlashtirish


Boshqaruv oqimini tahlil qilish



Yüklə 189,55 Kb.
səhifə7/7
tarix10.12.2023
ölçüsü189,55 Kb.
#139135
1   2   3   4   5   6   7
4-amaliy

Boshqaruv oqimini tahlil qilish
Boshqarish oqimini tahlil qilish - bu dasturning bajarilish tartibini aniqlash uchun statistik kod tahlilidir. Bajarilish tartibi boshqaruv oqimi grafi sifatida ifodalanadi. Ko'pgina dasturiy tillar uchun boshqaruv oqimi grafi dasturning manba kodida aniq ko'rinadi. Natijada, boshqaruv oqimini tahlil qilish odatda kodning statistik tahliliga taaluqlidir.
Tahlil davomida yuqori darajadagi tillarda yozilgan dasturlar tomonidan chaqiriladigan funktsiyalar va usullarni qabul qiluvchilar aniqlanadi. Funktsional dasturlash tillari va ob'ektga yo'naltirilgan dasturlash tillari uchun "Boshqaruv oqimi tahlili" atamasi boshqaruv oqimi grafini shakllantiruvchi algoritmni anglatadi. Boshqaruv oqimi tahlili (control flow analysis) atamasi birinchi marta Neil D. Jones va Olin Shivers tomonidan kiritilgan. Boshqaruv oqimini tahlil qilish uchun quyidagilar qo'llanilishi mumkin: Abstrakt talqin qilish, cheklovni qondirish, ma'lumotlarni turlarga bo‘lish.
Oddiy boshqaruv oqimi graflari
Boshqaruv oqimi grafi (control flow graph - CFG) - kompilyatsiya nazariyasida - graf sifatida taqdim etilgan dasturni bajarishning barcha mumkin bo'lgan yo‘nalishlari to'plami. CFG tuzilishi ko'plab kompilyatorlarni optimallashtirish va statistik kod tahlilining yordamchi dasturlari uchun juda muhimdir. Yetishish imkoniyati - optimallashtirishda ishlatiladigan graf xususiyatlaridan biridir. Agar blok yoki grafning bo‘lagiga kirish blokidan yo'llar bo'lmasa, u holda grafning bu qismi bajarilishning har qanday variantida yetishib bo‘lmaydigan hisoblanadi (o'lik kod) va shu sababli uni dasturdan olib tashlash mumkin. Agar grafning berilgan bo‘lagidan chiqish blokiga yo'llar bo'lmasa, u holda grafning bu bo‘lagi cheksiz takrorlanishni (tsiklni) o'z ichiga oladi.
{
1. if (a2. f1 () ;
else
{
3. if (a4. f2 () ;
else
5. f3 () ;
}
6. }


INDIVIDUAL TOPSHIRIQ
6-variant
N o'lchamdagi massiv berilgan. Massivning barcha quvvat elementlarining (ya’ni elementni ab ko‘rinishida yoyish mumkin bo‘lsa) yig'indisini topish funktsiyasini tuzing

Dastur kodi(Kotlin):


fun sumOfPowerElements(arr: IntArray): Int {


var sum = 0
for (element in arr) {
val power = Math.sqrt(element.toDouble()).toInt()
if (Math.pow(power.toDouble(), 2.0) == element.toDouble()) {
sum += power
}
}
return sum
}
# Test qismi
fun main() {
val array = intArrayOf(4, 9, 16, 25)
val result = sumOfPowerElements(array)
println("The sum of power elements in the array is: $result")
}
dastur natija:
The sum of power elements in the array is: 5


Hisobot
Bu sumOfPowerElements funksiyasi kirish sifatida butun sonlar massivini oladi va har bir element orqali takrorlanadi. U elementni ab ko'rinishida tasvirlash mumkinligini tekshiradi (bu erda b 2 bo'ladi, chunki biz mukammal kvadratlarni qidiramiz), elementning kvadrat ildizini hisoblaydi va bu kvadrat ildizning kvadrati teng yoki yo'qligini tekshiradi. asl element. Agar shunday bo'lsa, u yig'indiga kvadrat ildiz qiymatini qo'shadi.

McCabe murakkabligi o'lchovi uchun siz koddagi qaror nuqtalari sonini hisoblash orqali boshqarish oqimining murakkabligini hisoblashingiz mumkin. Bunday holda, tsikl ichida bitta qaror nuqtasi mavjud (if (Math.pow(power.toDouble(), 2.0) == element.toDouble())). Shuning uchun, Makkeybning murakkablik o'lchovi ushbu funktsiya uchun 2 ga teng (1 + 1).




Blok-sxema va boshqaruv grafigiga kelsak, ularni dasturning boshqaruv oqimini ifodalash uchun chizishingiz mumkin. Blok diagrammasi odatda kodning har bir blokini va ular orasidagi boshqaruv oqimini ko'rsatadi, boshqaruv grafigi esa turli boshqaruv oqimi yo'llarini ifodalash uchun tugunlar va qirralardan foydalangan holda funktsiya orqali boshqaruv oqimini ko'rsatadi. Ushbu oddiy funktsiya uchun blok diagrammasi boshqaruv oqimini ifodalovchi strelkalar bilan bog'langan tsikl, shartli bayonot va asosiy funktsiyani ifodalovchi bloklardan iborat bo'lishi mumkin.
Yüklə 189,55 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin