Ko‘ rsatm a
Chap q irg ‘oq
O ‘ ng q irg ‘oq
ikkita bola,
askar, qayiq
ikkita bola
askar
ikkita bola, qayiq
bola
bola, askar, qayiq
bola
askar
bola
bola, askar, qayiq
bola
ikkita bola, qayiq
askar
Endi bitta askar uchun yechim topilgach, bizning asosiy ma-
salamiz uchun yechim topish qiyin emas — xuddi shu ko‘rsatmalar
ketma-ketligini yana 59 marta takrorlash kifoya. Yozishni hozirdan
boshlayverishingiz mumkin, bir soat, balki ishni tugatishingiz uchun
yetib qolar. Ishni tugatib bo‘lganingizdan so‘ng (agar daftaringizda
bo‘sh joy qolgan bo‘lsa), shu masala yechimini 600 ta askar uchun
yozing. Albatta, bu hazil!
Yangi tuzilma
Kompyuterlarning afzallik tomonlaridan biri shundan iboratki,
ular millionlab va milliardlab hisoblash amallarini juda qisqa vaqt
ichida bajarishi, xususan, birgina amallar ketma-ketligini millionlab
marta takrorlashi mumkin. Agar dasturchi birgina amallar ketma-
ketligini dasturda millionlab marta takroriy yozishga majbur bo‘lsa,
bu juda dahshat bo ‘lardi.
Haqiqatda esa barcha dasturlash tillarida qaysidir ko‘rsatmalar
ketma-ketligi bir necha marta bajarilishini ko‘rsatishga imkon
berivchi vositalar bor. Biz o ‘zimiz uchun buni yangitdan kashf
etamiz, shuning uchun yangi tuzilma kiritamiz:
TAKRORLANSIN MARTA
TAMOM
57
Undagi o‘rniga biror-bir aniq son kiritamiz, masalan,
30 yoki 77 yoki 189. Tuzilmaning mazmuni shundan iboratki,
TAKRORLANSIN 30 MARTA va TAMOM so‘zlari orasiga
yozilgan b arch a k o ‘rsatm alar sanoq 1 dan boshlab to 30
b o ‘lguncha takrorlanishi shart. M ana shunday! Bu tuzilmada
ko ‘rsatm alar b ittad an ortiq takroriy bajarilm oqda, bu kabi
tuzilmalar sikl deb ataladi.
Buni qarangki, blok-sxemada bu tuzilma ham ko‘zda tutilgan
ekan:
4.1-rasm.
Endi 60 ta askar haqidagi masalaning yechimini yozish uchun
avvalgisiga qaraganda ancha kam vaqt va qog‘oz kerak b o ‘ladi:
TAKRORLANSIN 60 MARTA
ikkita bola
bola
askar
bola
TAMOM
4.1-m ashq
Bu algoritmni blok-sxema ko‘rinishida yozing.
Agar biror hazilkash xayoliga sizdan 60 ta emas, 600 ta askar
uchun algoritm yozib berishni so‘rash kelib qolsa, endi sizni qo‘r-
qita olmaydi. Siz faqat TAKRORLANSIN 60 MARTA satrini
TAKRORLANSIN 600 MARTA satriga almashtirasiz, xolos,
tamomvassalom!
TAKRORLANSIN tuzilmasi oxirida TAMOM so‘zi nima uchun
kerak
Quyidagi tuzilmaga e’tibor beramiz.
58
TAKRORLANSIN MARTA
TAMOM
Sizga oxirgi satrda yozilgan TAMOM so‘zining keragi yo‘qdek
tuyulishi mumkin. Lekin bunday emas. Murakkab algoritmlarda
ba’zi ko‘rsatmalar ketma-ketligini takrorlash kerak bo ‘ladi, bosh-
qalarini esa yo‘q. Ularni qanday farqlash mumkin?
Mana, masalan, bizning ro‘yxatda yuqorida keltirilgan uch
ko‘rsatmaga qo‘shimcha ravishda to ‘rtinchi ko‘rsatma ham bo‘lsin:
g‘alaba raqsi
Qiyin ishlari tugagandan so‘ng bolalar g‘alaba raqsiga tushgilari
kelib qolishi mumkin. Keling, oddiygina qilib yozib qo‘ya qolamiz:
TAKRORLANSIN 60 MARTA
ikkita bola
bola
askar
bola
g‘alaba raqsi
Endi tushunib b o ‘lmay qoldi, bolalar necha marta raqsga
tushishlari kerak — 1 martami yoki 60 marta (ya’ni har qayiqni
qaytarib olishganidan keyin). Agar boshqacha yozsak-chi:
TAKRORLANSIN 60 MARTA
ikkita bola
bola
askar
bola
TAMOM
g‘alaba raqsi
Bu holda hamma narsa joyiga tushdi. TAKRORLANSIN 60
MARTA va TAMOM so‘zlari orasiga yozilgan barcha ko‘rsatmalar
60 marta takrorlanadi, boshqalari esa yo‘q, ya’ni g‘alaba raqsi
ko‘rsatmasi faqat bir marta bajariladi.
Do'stlaringiz bilan baham: |