Mavzu: Sikl algoritmini parameter bilan aniqlash
Takrorlanuvchi (siklik) algoritmlar. Sikl algoritmi - bitta shartning yangi boshlang‘ich ma’lumotlar asosida ko‘p marotaba takrorlanadigan harakatlarini bajarilishini ta’minlovchi algoritmdir. Demak, siklik (takrorlanuvchi) tuzulmali dastur bir paytda bir yoki bir nechta parametrlar o‘zgarishida, bir guruh operatorlar hisoblashni ko‘p marotaba takrorlash imkoniyatini beradi.
1.5.TAKR0RLASH ALGORITMLARI
Takrorlash algoritrnlari sikl tanasi deb nomlanuvchi ko'p marta takrorlanadigan qismni o'z ichiga oladi. Takrorlash biror shart bajarilguncha davom etadi. Yuqorida aytilganidek siklik, iteratsion va cheksiz davom etuvchi takrorlash algoritmlari farqlanadi.Siklik tuzilishdagi algoritmlar takrorlash o'zgaruvchisi (sikl parametri) arifmetik progressiya turida o'zgar
ganda hosil bo'ladi. Algoritmning blок-tarhida ular modifikatsiya bloki bilan beriladi (4-rasm). Rasmda A— sikl o'zgaruvchisining nomi, A1 — sikl o'zgaruvchisining boshlang'ich, A2 — oxirgi qiymatlari, A3 — sikl o'zgaruvchisining o'zgarish qadami (sikl raqami yoki oddiygina qadam deyiladi).
Bunda A/t Ar A3 ixtiyoriy son yoki ifoda bo'lishi mumkin.
Agar A3>0 bo'Isa, A2 bo'lishi, A3<0 bo'lganda esa At>A3 bo'lishi kerak. A=l bo'lganda uni blok ichidagi yozuvda ko'rsatmaslikka kelishilgan.
Algoritmning bajarilishi:
1) A-Ax qilib olinadi;
2) Sikl tanasiga kiruvchi amallar bajariladi, bunda biror shart bajarilganda sikl tashqarisiga chiqib ketish mumkin;
3) A=A+A3 qilib olinib: A,>0 bo'lganda AV yoki A3<0 bo'lganda A>A2 takrorlash sharti tekshiriladi.
Agar takrorlash sharti bajarilsa, sikl tanasidagi amallar uning o'zgaruvchisining yangi qiymatida bajariladi. Bunda ular sikl o'zgaruvchisining qiymatiga bog'liq bo'lishi ham, bo'lmasligi ham mumkin.
Siklik tuzilishdagi algoritmda takrorlash soni avvaldan berilgan bo'lishi mumkin yoki u
n= [(A2—A1) /A3] formula bilan hisoblanadi. Bunda [•] belgi sonning butun qismini ifodalaydi.
Ichma-ich joylashgan sikl la r. Bir sikl tanasida boshqa bir yoki bir necha sikllar joylashgan algoritmlar ham bo'ladi (5-rasm).
Rasmda j o'zgaruvchili sikl i o'zgaruvchili sikl ichiga joylashgan bo'lib 5, arasmda j bo'yicha sikl tugashi bilan i ning navbatdagi qiymatiga o'tilishi, 5, 6-rasmda i o'zgaruvchili sikl tanasiga j bo'yicha sikldan tashqari amal-
lar ham kirishi, 5, d-rasmda berilgan shart bajarilmasa, hech qanday amal bajarmasdan j ning keyingi qiymatiga o'tish, 5, e-rasmda berilgan shart bajarilsa, j bo'yicha sikl tugashi, bajarilmasa j ning keyingi qiymatiga o'tish kerakligi tasvirlangan. Ichmaich joylashgan sikl turlari bu tuzilishlar bilan tugamaydi. Bunday siklik tuzilishdagi algoritmlarni ishlab chiqqanda tashqi sikldan ichki sikl boshini tashlab o'tib, uning ichiga kirish mumkin emasligini unutmaslik kerak.
Iteratsion algoritmlar. Ko'p hollarda amallarni necha marta takrorlashni avvaldan aniqlab bo'lmaydi. Takrorlash ma'lum bir shart bajarilguncha davom etadi. Bunday hollarda algoritmni 5-rasmda ko'rsatilgandek tashkil qilish mumkin.
Takrorlash o'zgaruvchisi o'zgarmas qadam bilan o'zgarmaydi. 6, a-rasmda takrorlash sharti avvaldan tekshiriladigan, 6, 6-rasmda esa keyin tekshiriladigan tuzilishdagi iteratsion (italyancha iteratixo — takrorlash so'zidan) algoritmning tarhi ko'rsatilgan.
Birinchi holda sikl tanasidagi amallar biror marta ham bajarilmasligi mumkin bo'lsa, ikkinchi holda esa kamida bir marta bajariladi. Albatta siklik tuzilishdagi algoritmni ham iteratsion tuzilishda tasvirlash mumkin. Lekin modifikatsiya blokini ishlatganda окtarh ixchamroq, bo'ladi. Takrorlash algoritmlarini tuzganda sikl tashqarisidan uning tanasiga kirish mumkin emasligini unutmaslik kerak. Chunki bunda sikl o'zgaruvchisining qiymati aniq-lanmagan bo'lib qoladi. Aksincha, sikl tanasidan chiqish mumkin. Bunda sikl o'zgaruvchisining qiymati undan chiq-qan paytdagidek bo'ladi.
Cheksiz takrorlanuvchi algoritm. Bunday algoritm EHM bilan muloqot olib borishga imkon beruvchi operatorlari mavjud bo'lgan dasturlash tillarida ishlatiladi (masalan, BEYSIKda). Bunda takrorlash foydalanuvchi tomonidan tugatilguncha davom etadi.
0>0>
Do'stlaringiz bilan baham: |