1.6 Dastur ijro strukturalari
Asosan dasturdagi ifodalar ketma-ket, navbatiga ko'ra ijro etiladi. Gohidabir
shart bajarilishiga ko'ra, ijro boshqa bir ifodaga o'tadi. Navbatdagi emas, dasturning
boshqa yerida joylashgan ifoda bajariladi. Yani sakrash yoki ijro ko'chishi vujudga
keladi. 60-chi yillarga kelib, dasturlardagi ko'pchilik hatolar aynan shu ijro
ko'chishlarining rejasiz ishlatilishidan kelib chiqishi ma'lum bo'ldi. Bunda eng katta
aybdor deb bu ko'shishlarni amalga oshiruvchi goto (...ga bor) ifodasi belgilandi.
goto dastur ijrosini deyarli istalgan yerga ko'chirib yuborishi mumkin. Bu esa
programmani o'qishni va uning strukturasini murakkablashtirib yuboradi. Shu
sababli "strukturali dasturlash" atamasi "goto ni yo'q qilish" bilan tenglashtirilardi.
Shuni aytib o'tish kerakki, goto kabi shartsiz sakrash amallarini bajaruvchi ifodalar
boshqa dasturlash tillarida ham bor. Tadqiqotlar shuni ko'rsatdiki, istalgan
programma goto siz yozilishi mumkin ekan. goto siz yozish uslubi strukturali
dasturlash deb nom oldi. Va bunday dastur yozish metodi katta iqtisodiy samara
beradi. Strukturali dasturlash asosi shundan iboratki, har bir programma faqatgina
uch hil boshqaruv strukturalaridan iboratdir.Bular ifodalarni ketma-ket ijro etish
strukturasi (sequence structure), tanlash strukturasi (selection structure) va amalni
qayta ijro etish strukturasidir (repetition structure). Ifodalarni ketma-ket ijro etish
strukturasi C++ tomonidan ta'minlanadi. Normal sharoitda C++ ifodalari dasturdagi
navbatiga ko'ra bajariladi. Tanlash buyruqlari uchtadir. Bular if, if/else va switch dir.
Qayta ijro etish buyruqlari gurugiga ham uchta a'zo bor, bular while, do/while va
for. Bularni har birini keyinroq tahlil qilib chiqamiz. Yuqoridagi buyruqlar nomlari
C++ dasturlash tilining mahsus so'zlaridir. Dasturchi bu so'zlarni o'zgaruvchi yoki
funksiyalar nomi sifatida qo'llashi ta'qiqlanadi. Quyida C++ ning ajratilgan
so'zlarining to'liq ro'yhati berilgan.
C# va C ga tegishli:
auto do goto signed unsigned
break double if sizeof void
case else int static volatile
char enum long struct while
21
const extern register switch
continue float return typedef
default for short union
Faqat C++ ga qarashli:
asm explicit operator this virtual
bool false private throw wchar_t
catch friend protected true
class inline public try
const_cast mutable reinterpret_cast typeid
delete namespace static_cast typename
dynamic_cast new template using
C++ dagi yetita boshqaruv strukturasini aytib o'tdik. Ular bittagina boshlanish
nuqtasiga va bittagina chiqish nuqtasiga egadirlar. Demak biz bu dastur bo'laklarini
ketma-ket ulab ketishimiz mumkin. Boshqaruv strukturalarining bu kabi ulanishini
devorning g'ishtlarini ustma-ust qalashga ham taqqoslasak bo'ladi. Yoki biz bu
bloklarni bir-birining ichigajoylashtirishimiz mumkin. Bu kabi qo'llashish ikkinchi
uslub bo'ladi. Mana shu ikki yo'l bilan bog'langan yetita blok yordamida biz istalgan
dasturimizni yoza olamiz.
Dostları ilə paylaş: |