I. Bob Dasturlash amaliyoti algoritm va dasturlarni ishlab chiqish



Download 86,17 Kb.
bet8/19
Sana18.07.2022
Hajmi86,17 Kb.
#818693
1   ...   4   5   6   7   8   9   10   11   ...   19
Bog'liq
FARRUX 2

spagetti kodi
Strukturaviy dasturlash, xususan, kodni o'qishdagi qiyinchiliklar, tizimlashtirilmagan, dasturning dastlabki matnini idrok etish va tahlil qilish uchun noqulay bo'lgan dasturlardagi tartibsizlik va xatolarni bartaraf etish uchun mo'ljallangan. Bunday matn ko'pincha "spagetti kodi" sifatida tavsiflanadi.
Spagetti kodini disk raskadrovka qilish va to'g'ri va yuqori unumdorlik bilan ishlatish mumkin, ammo uni saqlash va rivojlantirish juda qiyin. Spagetti kodini yangi funksiyalarni qo'shish uchun tozalash ba'zan yangi xatolarni kiritish uchun katta potentsialga ega. Shu sababli, bu deyarli muqarrar refaktoringga aylanadi (kod-refaktoring) - spagetti uchun asosiy davo.
o'tish bayonoti
1970-yillardan beri shartsiz o'tish operatori Goto tizimli va o'sib borayotgan tanqid markazida bo'ldi. Dasturning dastlabki kodida goto operatoridan noto'g'ri va o'ylamasdan foydalanish chalkash, o'qib bo'lmaydigan "spagetti kodi" ga olib keladi. Bunday kod matnidan bajarilish tartibi va fragmentlarning o'zaro bog'liqligini tushunish deyarli mumkin emas.
Bu nuqtai nazar birinchi marta Edsger Dijkstraning "Go To operatori zararli deb hisoblanadi" maqolasida aks ettirilgan. Dijkstra kodning sifati undagi goto iboralari soniga teskari proportsional ekanligini ta'kidladi. Maqola keng ommalashdi, buning natijasida goto operatoridan foydalanish bo'yicha qarashlar sezilarli darajada qayta ko'rib chiqildi. Strukturaviy dasturlash bo'yicha eslatmalarda Dijkstra kodning rasmiy to'g'riligini o'tishsiz tekshirish ancha oson ekanligini ta'kidladi.
Goto bilan kodni formatlash qiyin, chunki u bajarilish ierarxiyasini (tuzilgan dasturlash paradigmasi) buzishi mumkin va shuning uchun dastur strukturasini aks ettirish uchun mo'ljallangan chekinish har doim ham to'g'ri o'rnatilmasligi mumkin. Bundan tashqari, goto bayonoti boshqaruv tuzilmalari uchun kompilyatorni optimallashtirishga xalaqit beradi.
Goto-dan ba'zi foydalanish dasturni bajarish mantig'ida muammolarni keltirib chiqarishi mumkin:

  • Agar biron bir o'zgaruvchi bir joyda ishga tushirilsa (qiymat oladigan bo'lsa) va undan keyin ishlatilsa, ishga tushirilgandan so'ng, lekin foydalanishdan oldin bir nuqtaga o'tish, ajratishdan oldin o'zgaruvchi uchun ajratilgan xotirada bo'lgan qiymatni tanlashga olib keladi. (va bu odatda o'zboshimchalik va tasodifiy).

  • Loop tanasi ichida boshqaruvni o'tkazish tsiklni ishga tushirish kodini yoki dastlabki holatni tekshirishni o'tkazib yuborishga olib keladi.

  • Xuddi shunday, boshqaruvni protsedura yoki funksiya ichida o'tkazish uning boshlang'ich qismini o'tkazib yuborishga olib keladi, bunda initsializatsiya amalga oshiriladi (mahalliy o'zgaruvchilar uchun xotira ajratish).

Goto bayonotiga qarshi dalillar shu qadar jiddiy bo'lib chiqdiki, tuzilgan dasturlashda ular juda istalmagan deb hisoblana boshladi. Bu yangi dasturlash tillarini loyihalashda o'z aksini topdi. Misol uchun, goto Java va Ruby tillarida noqonuniy hisoblanadi. Bir qator zamonaviy tillarda goto dan foydalanish o'zini oqlagan kamdan-kam hollarda samaradorlik sababli qoldirilgan. Shunday qilib, goto tarixdagi eng me'moriy o'ylangan tillardan biri bo'lgan Ada tilida omon qoldi.
Biroq, ushbu operator saqlanib qolgan yuqori darajadagi tillarda, odatda, uni qo'llashning eng xavfli usullaridan foydalanishga to'sqinlik qiluvchi qattiq cheklovlar qo'yiladi: masalan, boshqaruvni tsikldan tashqaridan o'tkazish taqiqlanadi. , protsedura yoki ichidagi funksiya. C++ tili standarti goto yordamida o'zgaruvchilarni ishga tushirishni chetlab o'tishni taqiqlaydi.

Download 86,17 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   ...   19




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish