သူ့ဟာသူ Programming ရှုပ်ထွေးစေနိုင်ပါတယ်။ အားလုံးလုပ်ရပ်များခြေလှမ်းတို့ကခြေလှမ်းအထဲကစာလုံးပေါင်းသင့်ကြောင်း, အတူစတင်။ သို့သော်ထိုကဲ့သို့သောမရှိမဖြစ်လိုအပ်ချက်တခုနှင့်အတူသိသိသာသာအစီအစဉ်ကို (- နေပါစေအသုံးပြုသည်အဘယ်အရာကိုဘာသာစကား "Pascal", "ကို C", "စည်းဝေး") ဖို့လိုအပ်သောတာဝန်များကို၏အောင်မြင်မှုလွယ်ကူချောမွေ့အများအပြား features တွေရှိပါတယ်။ အဲဒီကိရိယာတစ်ခုမှာသံသရာဖန်တီးရန်ဖြစ်ပါသည်။
programming ကိုသံသရာ၏အရေးပါမှု
တစ်သံသရာကဘာလဲ? အဘယ်ကြောင့်လိုအပ်နှင့်အဘယ်သို့ဆိုင်သင်အသုံးပြုတဲ့အခါတစ်ဦးပရိုဂရမ်မာဖြစ်ခြင်း၏အကျိုးကျေးဇူးများပါသလဲ? သံသရာအတွက်ထူထောင် parameters တွေကိုနှင့်အတူကြောင့်လိုက်နာမှုပေး, သင်လုပ်ရပ်တွေကိုတစ်ခုအခြို့သောနံပါတ်၏ကွပ်မျက်အလိုအလျောက်ခွင့်ပြုသည့်အစီအစဉ်၏အရေးပါသောအခြေခံအဆောက်အဦးအစိတ်အပိုင်းဖြစ်ပါတယ်။ ဒီတော့အလုပ်သံသရာ၏အရိုးရှင်းဆုံးဥပမာ - တစ်ဦးအာဏာအခြို့သောအရေအတွက်ကို podnesenie ။ ယင်းစက်တွေကိုအားလုံးကအလိုအလျှောက်လုပ်ဆောင်နိုင်တယ်ကွောငျ့, လုံလောက်အောင်မဖွစျလိမျ့မညျအထိအတန်းသတ်မှတ်ပေးဖို့မလိုအပ်ရှိပါသည်။ သံသရာ၏အလေ့အကျင့်လည်းအချိန်နှင့်ကြိုးစားအားထုတ်မှုတွေအများကြီးကိုကယ်တင်, ဒါကြောင့်အခါတိုင်းနှင့်သံသရာသုံးပြီးကုဒ်မှတ်ပုံတင်ရန်အားလုံးအဆင့်မလိုအပ်ပါဘူးနိုင်ပါတယ်။ ရိုးရှင်းစွာပြောင်းလဲ variable တွေကိုရိုက်ထည့်ပါနှင့်အကောင်အထည်ဖော်စတင်ပါ။ ဒါပေမယ့် built-သံသရာအစီအစဉ်အဖြစ်? သို့မဟုတ် ပို. ပင်? သံသရာ၏သူတို့ကိုယ်သူတို့ဂျအတော်လေးတွေအများကြီး - ပရိုဂရမ်းမင်းအကြောင်းကိုစာအုပ်တစ်အုပ်ပေါ်တွင်သတင်းအချက်အလက်, "Pascal," ကြှနျုပျတို့သညျ "စည်းဝေး" စဉ်းစားပါသို့မဟုတ်ပါလိမ့်မယ်။ ထို့ကြောင့်, သက်သက်သာအချက်အလက်ဆိုင်ရာရည်ရွယ်ချက်များ disassemble ဘို့နှစ်ခုလူကြိုက်အများဆုံးအသုံးပြုမှုသီအိုရီအစီအစဉ်ပူဇော်:
- postcondition နှင့်အတူသံသရာလည်။
- တစ်ဦးမရှိမဖြစ်လိုအပ်ချက်နှင့်အတူ loop ။
အားလုံးအခြားသူများကိုသူတို့၏မူကွဲများနှင့်အထူးသဖြင့်ရောဂါဖြစ်ပွားမှု၏ကြီးမားသောအတိုင်းအတာအထိရှိပါတယ်, ဒါကြောင့်သူတို့ကစကားစပ်နှင့်တိကျသောပန်းတိုင်အတွက်ထည့်သွင်းစဉ်းစားရမည်ဖြစ်သည်။ ထိုအတောအတွင်းမှာတော့ကျွန်တော်တို့ကိုလူကြိုက်အများဆုံးမှဖွင့်ကြကုန်အံ့။ ကြိုတင်စည်းကမ်းသတ်မှတ်ချက်နှင့်အ postconditions အတူကွဲပြားခြားနားသောသံသရာ? ဒီနေရာမှာတစ်ဦးမရှိမဖြစ်လိုအပ်ချက်နှင့်အတူကွင်းဆက်ဖြစ်ပါသည်:
«အခွအေနေ»«ကုဒ်»ပါဘူးစဉ်
postcondition နှင့်အတူအထွေထွေသီအိုရီမူဘောင်သံသရာ
ကိုယ်ခန္ဓာ၏ postcondition အကောင်အထည်ဖော်မှုကုန်ကျစရိတ်နှင့်အတူအခါအော်ပရေတာသံသရာကုဒ်ရေးသားခြင်း၏ဤပုံစံ။ ပထမတစ်ချက်မှာထူးဆန်းတဲ့ပုံရပေမည်: တကယ်, အဘယ်ကြောင့် code ကို၏ကွပ်မျက်ပြီးနောက်အခြေအနေဝတ်? သို့သော်ဘာမှမရှိဘူးထူးဆန်းတဲ့ဖြစ်ပါသည်: ဤပုံစံကိုတစ်အင်္ဂါရပ် code ကိုမခွဲခြားဘဲအခြေအနေတွေ့ဆုံခဲ့ပြီးသို့မဟုတ်ဖျော်ဖြေကြသည်မဟုတ်ရှိမရှိ၏ကွပ်မျက်ခံရကြောင်းဖြစ်ပါတယ်။ သို့သော်သာ 1 အချိန်။ ထိုအခါကဖြစ်သင့်သည်ကဲ့သို့ခပ်သိမ်းသောကြောင့်ဖြစ်စေ, စမ်းသပ်မှုအတိုင်းလိုက်နာ, ဒါမှမဟုတ်လိမ့်မည်မဟုတ်ပါ။ ထိုအခါသံသရာ၏လုံလောက်သောခန္ဓာကိုယ်အခွအေန၏မရှိခြင်းအတွက်လျစ်လျူရှုခံရပါလိမ့်မယ်။ ဤသည် postcondition အတူသံသရာသည့်အလွန်အရေးကြီးသောနှင့်အသုံးဝင်သောအင်္ဂါရပ်တစ်ခုဖြစ်သည်။ အဲဒါကိုကြားပြောလေ၏အရာကိုစံနမူနာတွင်အဘယ်မှာသင်ဒီမှာခြယ်လက်တွေ့အကောင်အထည်ဖော်မှုကိုတွေ့မြင်နိုင်သလဲ ဤတွင် postcondition နှင့်အတူသံသရာ၏ဥပမာတစ်ခုဖြစ်ပါသည်:
ပြန်ဆို
"ဒီ code ကို"
«အခြေအနေများ»သည်အထိ
တစ်ဦးမရှိမဖြစ်လိုအပ်ချက်နှင့်အတူအထွေထွေသီအိုရီသံသရာအခြေခံ
သို့သော်လူကြိုက်အများဆုံး option ကိုအတိအကျဒီဖြစ်ပါသည်။ ၎င်း၏ပိုင်ထိုက်သောလိုအပ်သောအခြေအနေကွပ်မျက်အဘို့, ဒီကုဒ်မရှိဘဲကွပ်မျက်ခံရဘယ်တော့မှဖြစ်ပါတယ်ဆိုတဲ့အချက်ကိုတည်ရှိသည်။ ပုံမှန်အားဖြင့်, code ကိုအလွန်စကေးတစ်ခုဖြစ်ပြီးကွန်ပျူတာစွမ်းဆောင်ရည်အပေါ်စုစုပေါင်းအနုတ်လက္ခဏာသက်ရောက်မှုကိုသက်ဝင်။ ထို့ကြောင့်, အတော်လေးတစ်ကောက်ကျစ်အစီအစဉ်ကိုအသုံးပြု: ကွင်းထဲတွင်နေရာ code တွေရဲ့အပိုင်းပိုင်းအများစုသို့မဟုတ်အယူခံပင်တစ်ဦးချင်းစီအတန်းပိုင်ခွင့်အချိန်လေးမှာဖွင့်လာပါတယ်။ ထိုအချိန်ကာလ၌ရှိသမျှသောအရာကြွင်းသမျှဒီကုဒ်ဖြစ်တယ်, ဒါပေမဲ့ကွန်ပျူတာကိုမသုံးကြဘူး။ ဤသည်အစီအစဉ်ကိုသင် program ကိုသို့မဟုတ်အခြားအစီအစဉ်များကို execute မှ processing ပါဝါကိုချွေဖို့ခွင့်ပြုပါတယ်။
မတူညီတဲ့ပရိုဂရမ်ဘာသာစကားတွေအတွက်လက်တွေ့အကောင်အထည်ဖော်မှု
ယင်းသံသရာ၏လက်တွေ့ထိရောက်မှုအကြောင်းကိုအနည်းငယ်စကားများ။ ဒါဟာအချိန်, အသုံးပြုသူနှင့်ပရိုဂရမ်နှစ်ခုစလုံးကယ်တင်ပထမဦးဆုံးအပေါင်းတို့၏မှတ်ချက်ပြုရပါမည်။ ဒုတိယတွင်အဘယ်ကြောင့်, အဘယ်ကြောင့်သင့်စကားအနည်းငယ်ဖောက်သည်အကြောင်းကိုပြောဟုပြောသည်ခဲ့တာဖြစ်ပါတယ်။ သီးခြားအစိတ်အပိုင်းများသို့အုပ်စုခွဲ software ကိုလျင်မြန်စွာ load နှင့် run ဖို့ခွင့်ပြု, နှင့်အညီ, အသုံးပြုသူထိုကဲ့သို့သောဆော့ဖ်ဝဲကိုသုံးစွဲဖို့သာလွန်းပျော်ရွှင်ပါလိမ့်မည်ဟူသောအချက်ကို။ ထို့အပြင်ကုဒ်သံသရာသို့မဟုတ် (မကြာခဏခန္ဓာကိုယ်ကနေဖြစ်ပေါ်စေသော) သီးခြားလူတန်းစားထဲမှာသိမ်းထားတဲ့, နှင့်အလုပ်လုပ်ထိရောက်မှုခွင့်ပြုသည့်အခါဤချဉ်းကပ်မှု။ သင်တို့သည်လည်းတစ်ဦးချင်းစီမှတ်ဥာဏ်ဆဲလ်တွေမှာရှိတဲ့မြန်နှုန်းစံချိန်ဆောင်ကြဉ်းသင့်ပါတယ်။ အရာအားလုံးကိုကိုယ်တိုင်ပြုသောအမှုခံရဖို့ခဲ့မယ်ဆိုရင်ဒါ, ကတစ်ဦးချင်းစီအရသင့်လျော်တဲ့ entry ကိုလည်းမရှိရန်ရှိသည်လိမ့်မယ်။ တစ်ဦးကကွင်းဆက်အကြိမ်ပေါင်းများစွာသို့မဟုတ်ပင်များစွာ၏အရာအားလုံးကိုယ့်ကိုကိုယ်လုပ်ဖို့လိုအပ်ကြောင်းကိုလျော့ချခွင့်ပြုပါတယ်။ ထိုသို့ပြဿနာကုဒ်ကြည့်ရှုဖို့လိုအပ်ပါတယ်နာရီဖို့ဦးဆောင်လမ်းပြနိုင်သည့်လူ့အချက်, ဖယ်ရှားပေးပါသည်။
ကောက်ချက်
ဒါကြောင့်အားလုံးတိကျမ်းစာ၌လာသည်ကဉျြးခြုပျ, ငါတို့ postcondition နှင့်အတူသံသရာတစ်ခုသို့မဟုတ်ကြိုတင်အရည်အသွေးကိုစှနျ့မပါဘဲပိုက်ဆံကယ်ဖို့အဆင်ပြေလမ်းဖွကြောင်းပြောနိုင်ပါသည်။ ရှုပ်ထွေးအစီအစဉ်များကိုရေးသားခြင်းသောအခါ, က code ကိုထွက်သယ်ဆောင်ရန်ပိုမိုလွယ်ကူခြင်းနှင့်ဖတ်နေအောင်သူ့ကိုကူညီပေးနေအကောင်းဆုံးပရိုဂရမ်မာမိတ်ဆွေတစ်ဦးဖြစ်ပါတယ်။ ထို့ကြောင့်သူတို့၏ကုဒ်ရေးသားခြင်းသည့်အခါ postcondition သို့မဟုတ်မရှိမဖြစ်လိုအပ်ချက်နဲ့သံသရာသုံးစွဲဖို့အထင်အမြင်သေးပါဘူး - သူတို့အထူးဆော့ဖ်ဝဲကိုဖန်တီးရေး၏လုပ်ငန်းစဉ်အဆင်ပြေချောမွေ့စေရန်ဒီဇိုင်းရေးဆွဲကြသည်, ထိုသို့သူ့ကိုဆန့်ကျင်အလုပ်လုပ်ပါလိမ့်မယ် - ဒီအခွင့်အလမ်းအားသာချက်ယူဖို့မဟုတ်ပါဘူး။