ကွန်ပျူတာများ, ပရိုဂရမ်းမင်း
Programming ။ အခြေခံပညာ algorithmic တည်ဆောက်မှုများ
မည်သည့်အစီအစဉ်များကိုလိုအပ်သောအခြေခံ algorithmic ဒီဇိုင်းကိုဖန်တီးရန်။ အောက်ပါပြဿနာများကိုဖြေရှင်းဘို့အလွယ်ကူဆုံး option တစ်ခုဖြစ်သည်။ ဒါဟာတစ်သားတည်းဖြစ်တည်ခြင်းဥပမာအတူစစ်ဆင်ရေးများအတွက်, ဥပမာ, ကိုအသုံးပြုနိုင်ပါတယ်။ အကိုင်းနှင့်ကွင်းဆက်: ကအခြားမျိုးရှိပါတယ်။ ဒီဆောင်းပါးထဲမှာဖုံးလွှမ်းလိမ့်မည်။ ဒါပေမယ့်ပထမဦးဆုံးအသငျသညျတခု algorithm ကိုယေဘုယျတှငျအဘယျနားလညျဖို့လိုအပ်ပါတယ်။
algorithm ကို
အဆိုပါစကားလုံး "algorithm ကို" လကျတငျ algoritmi ထံမှလာ၏။ ဒါဟာဘာကိုဆိုလိုသလဲ စစ်မှန်သောစကားလုံးသင်္ချာ, အ IX ရာစုမှာအရပျကိုလုယူသောလှုပ်ရှားမှုများ၏အမည်ကနေလာပါတယ်။ ကြောင့်ကျမ်းအယ်လ် Khorezmi လူသားထု algorithmic ဒီဇိုင်း၏အခြေခံအမျိုးအစားနဲ့သိကျွမ်းဖြစ်လာစေရန်နှင့်ယေဘုယျအားဖြင့်အထွေထွေအယူအဆနှင့်အတူနိုင်ဘူး။
စာလုံးပေါင်း၏အစောပိုင်းကပုံစံမွေးစားခဲ့သည် - "algorithm ကို" ။ ယခုမှသာအချို့ကိစ္စများတွင်အသုံးပြုသည်။
algorithm - discrete ခြေလှမ်းများအတွက်ဖြစ်ပေါ်ရသောမူရင်းဒေတာ, ပြောင်းလဲနေတဲ့ဆိုလိုတာကဖြစ်စဉ်။ ဒီအယူအဆနှင့်အတူ, လူတစ်ဦးချင်းစီသူမည်သူမဆို, အသက်တာ၌ရင်ဆိုင်နေရသည်။ algorithms လက်ဖက်ရည်နှင့်အစားအသောက်, အမြှောက်သို့မဟုတ်ထို့အပြင်, ညီမျှခြင်း၏ဖြေရှင်းချက်အဖြစ်ဖော်ပြလျက်, ဒါပေါ်မှာ။ ဃနိုင်သူ၏အလုပ်ဖြစ်စဉ်ကိုအလိုအလျောက်ဖြစ်ပါတယ်အားလုံးကရိယာ, Processor ကိုမှတ်ဉာဏ်အတွက်သတ်မှတ်ထားသည့်ရှင်းလင်းသောခြေလှမ်းများမှတဆင့်လုပ်ကိုင်လျက်ရှိကြောင်းသိရသည်။ ထိုသို့သော algorithms အိမ်ထောင်စုဟုခေါ်ကြသည်။ အခြားအမျိုးရှိပါတယ်။ ကျွန်တော်တို့ကိုသူတို့အဆနျးစစျကွပါစို့။
algorithms အမျိုးအစားများ
အခြေခံပညာ algorithmic အဆောက်အဦများကဤအပိုဒ်မှာဆှေးနှေးပါလိမ့်မည်သည့်တော်တော်များများအမျိုးအစားများသို့ခွဲခြားထားတယ်။ သူတို့ကဘာတွေလဲ?
- ပြန်ကြားရေး။ ထိုသို့သော algorithms ဒေတာပမာဏနှင့်အတူအလုပ်လုပ်ပေမယ့်အရှည်အသေးစားနှင့် Uncomplicated processing ၏သက်သက်အသံအတိုးအကျယ်နေကြသည်။
- ထိန်းချုပ်ရေး။ ထိုကဲ့သို့သော algorithms ၏စစ်ဆင်ရေးအထူးအရင်းအမြစ်မှရရှိနိုင်ကြောင်းသတင်းအချက်အလက်များနှင့်ဆက်စပ်နေသည်။ လက်ခံရရှိအပေါ်သို့ထုတ်ကုန်များ၏စစ်ဆင်ရေးကိုသေချာစေရန်အထူးအချက်ပြမှုများကိုစေလွှတ်ခဲ့သည်။
- computing ။ သတင်းအချက်အလက် algorithms မတူဘဲအချက်အလက်များ၏သေးငယ်တဲ့ပမာဏနှင့်အတူအလုပ်လုပ်ဖော်ပြထားပေမယ့်ကြီးမားတဲ့အလုပ်ဖြစ်စဉ်ကိုထုတ်လုပ်ပေးသည်။
တကယ်တော့ခုနှစ်, algorithm ကိုအသေးဆုံးအသေးစိတ်ညွှန်ကြားချက်မှတိကျသည်။ သို့သော်အားလုံးထိုကဲ့သို့သောဒေတာအယူအဆကိုကရှင်းပြသည်ဟုခေါ်တွင်စေနိုင်ပါတယ်မဟုတ်ပါဘူး။ အဆိုပါ algorithm ကိုညွှန်ကြားချက်သို့မဟုတ်မနားလည်ရန်, ကအချို့သောဂုဏ်သတ္တိများ၏ရှေ့မှောက်တွင်အဘို့အ check လုပ်ထားရပါမည်။
algorithms ၏ဂုဏ်သတ္တိများ
အားလုံးအဓိက algorithmic ဒီဇိုင်းကိုသူတို့ကထိုသို့အရေးယူဆောင်ရွက်ချက်များကိုရှိရမည် "စကားကိုနားထောင်ကြလော့။ " ပိုပြီးအသေးစိတ်အတွက်ဤမေးခွန်းကိုစဉ်းစားပါ။
အပြည့်အဝ algorithms နှင့်သူတို့၏ဂုဏ်သတ္တိများ၏စွမ်းဆောင်မှုကိုခြေရာခံလျှင်, သင်သေချာပေါက်ရှင်းလင်းစွာအလုံအလောက်အစီအစဉ် fit မှသူတို့၏မဲဆန္ဒနယ်မှနားမလည်ကြောင်းတွေ့နိုင်ပါသည်။ မှန်ကန်သောရလဒ်သင်ရုံတပ်မက်လိုချင်သောအစက်ပိုင်းဆိုင်ရာအရေးယူမှုမှကပ်လျှင်ပင်ရယူသည်။ ဒီကနေကျနော်တို့ကြောင့်အသိအမြင်လှုပ်ရှားမှုများတွင်အဓိပ္ပာယ်ကို၏မရှိခြင်းငှါ, algorithm ကိုကွန်ပျူတာများ၏အကောင်အထည်ဖော်မှုအဘို့အဆပ်ဖို့အတော်လေးဖြစ်နိုင်သောကြောင်းကောက်ချက်ချနိုင်ပါတယ်။ တနည်းအားဖြင့်အလိုအလျှောက် devices များကဤလုပ်ငန်းစဉ်၏ရရှိနိုင်မလိုအပ်ပါ။
အဘယ်အရာကိုဂုဏ်သတ္တိများအများဆုံးတိအလုပ်အတွက်အခြေခံ algorithmic ဒီဇိုင်းရှိရမည်?
- နားလည်ပါသည်။ တစ်ခုချင်းစီကိုအသင်းအဖြစ်ရှင်းရှင်းလင်းလင်းပြေးအရာဝတ္ထုဖြစ်သင့်သည်။ ဒါဟာဘယ်အရာကိုမျှမရှိ, ဥပမာ, ဗဟိုမှာရှိတဲ့အစက်ဆွဲ, ထက်ပိုမိုလွယ်ကူပေမယ့်ဒါဟာလုပ်ဆောင်ချက်တစ်ခုလုပ်ဆောင်ပါလိမ့်မယ်ရသောအဖွဲ့အထဲကစာလုံးမပေါင်း, ပြုမရနိုငျသောပုံရသည်။
- ထိရောက်မှု။ သောဤပစ္စည်းဥစ္စာပိုင်ဆိုင်မှုကိုဆိုလို? ရလဒ်ရရှိရန်လိုအပ်သည်။ အဆိုပါ algorithm ကိုဒါပေမယ့်အဖြေအချို့ကိုကြင်နာဖို့ဦးဆောင်လမ်းပြနိုင်မှာမဟုတ်ဘူး။ ကြောင့်မှားယွင်းမှုတစ်ခု, သင်အလိုရှိသောခဲ့မှားရလဒ်ရနိုင်ပေမယ့်သူမည်။ ထို့အပြင်တုန့်ပြန်ခြေလှမ်းများ၏အချို့သောအရေအတွက်ကိုပြီးနောက်လက်ခံရရှိထားရပါမည်။
- mass ။ မဆို algorithm ကိုပြဿနာများကိုမဆိုလူတန်းစားသက်ဆိုင်ဖြစ်သင့်သည်။ သူတို့ကိုအကြားသူတို့ input ကိုဒေတာကွဲပြားလိမ့်မည်။
- ဧကန်အမှန်။ တစ်ခုချင်းစီကိုအရေးယူတစ်ဦးတည်းသာအဓိပ်ပာယျ, နှင့်ဆင်းသက်လာစာဝှက်ဖြည်ဖြစ်နိုင်ခြေကိုမပေးသင့်ပါတယ်။ အကောင်းဆုံးကတော့, နေပါစေ program ကိုဖွင့်လှစ်ခဲ့ပါသည်ဘယ်လောက်, ရလဒ်ခပ်သိမ်းသောကာလမှာအတူတူပင်ဖြစ်သင့်သည်။
- discrete ။ algorithm - တသမတ်တည်းအကောင်အထည်ဖော်မှုခြေလှမ်း။ တစ်ခုချင်းစီကိုခြေလှမ်းမဟုတ်နိုင်သစ်တွေကိုကျော်သွားသို့မဟုတ်ပေါင်းထည့်ဖို့ command တစ်ခုဖြစ်သည်။
- မှန်ကန်သော။ အလုပ်များကိုမဆိုကြင်နာဖို့သက်ဆိုင်ကြောင်းမဆို algorithm ကို, လူတိုင်းအတွက်မှန်ကန်ဖြစ်ရမည်။ ပရိုဂရမ်းမင်း၌, ပြဿနာများကိုမကြာခဏအချိန်အများကြီးမလိုအပ်ပါဘူးသောအရေးအသားခြေလှမ်းများ, ၌၎င်း, မေးခွန်းများကိုအမျိုးမျိုးတို့ကိုအဘို့မိမိတို့ထွက်တင်ဆောင်လာသော၌နေကြသည်မဟုတ်မကြာခဏရှိပါတယ်။ ထို့ကြောင့်, အရေးပါသောခြေလှမ်းဟာ algorithm ကို Debugging မှဖြစ်လိမ့်မည်။ ဒီအခြေခံ algorithmic ဒီဇိုင်း, ပိုကောင်းတဲ့ရလဒ်တွေကိုဦးတည်သွားစေလိမ့်မယ်အရာများ၏အထပ်ထပ်နှင့်အတူကူညီနိုင်သည်။
algorithms ၏ဖော်ပြချက်
ကျနော်တို့ algorithms ရေးသားဖို့ဘယ်လိုအကြောင်းပြောဆိုလျှင်, အောက်ပါမီးမောင်းထိုးပြသင့်ပါတယ်:
- နှုတ်ဖြင့်။ တနည်းအားဖြင့်အစိတ်အပိုင်းပြောဆိုရန်အဆင်ပြေသောဘာသာစကား, ၌တည်၏။
- စားပွဲတင်။ ယုတ္တိနည်း, ထို algorithm ကိုစားပွဲတစ်ခု၌ရေးထားလျက်ရှိ၏သည်ပုံမှန်အားဖြင့်တစ်ဦးအရန်ဒြပ်စင်အဖြစ်အသုံးပြုခဲ့သည်။
- ဖော်မြူလာ-နှုတ်။ အခြေခံနှုတ် izyasneniya နည်းလမ်းခေါ်ဆောင်သွားပေမယ့်ထိုကဲ့သို့သောလုပ်ရပ်များလည်းဇာတ်ကောင်သို့မဟုတ်သင်္ချာပုံသေနည်းမှတ်တမ်းတင်ခဲ့တယ်။
- ဂရပ်ဖစ်။ ထိုကဲ့သို့သော algorithm ကိုအထူးဘာသာစကား flowcharts ၌ရေးထားလျက်ရှိ၏ဖြစ်ပါတယ်။
ဒါဟာနောက်ဆုံးအချက်ရှင်းလင်းဖို့လိုအပ်ပေသည်။ တစ်ဦး flowchart ကဘာလဲ? ဤသည် linear သို့မဟုတ် nonlinear algorithm ကို, အရာများ၏ခြေလှမ်းများအထူးယူနစ်ကို အသုံးပြု. ရေးထားလျက်ရှိ၏။ သူတို့ဟာသူတို့ကိုယ်ပိုင်ဖွဲ့စည်းမှုပုံစံ, ရည်ရွယ်ချက်နှင့် function ကိုရှိသည်။ ဤဖော်ပြချက်အမှု၌, algorithm ကိုအပြန်အလှန်လိုင်းများနေသောလုပ်ကွက်ကားချပ်, စာဖြင့်ရေးသား။ သူတို့ကအစတစ်ဦးအထူးသဖြင့်အရေးယူမှု (ခြေလှမ်း) ကိုရေးရပေမည်။
algorithmic ဒီဇိုင်း
linear, အကိုင်းအခက်, သိသိ: တချို့က algorithms 3 အမျိုးအစားများနှင့် 4. အခြေခံ algorithmic ဒီဇိုင်းရှိသည်မဟုတ်ကြဘူးကြောင်းငြင်းခုန်။ ထိုကဲ့သို့သောအထငျမှားအကြောင်းပြချက်ကဘာလဲ, ကရှင်းရှင်းလင်းလင်းမသိရပါဘူး။ သို့သျောလညျး, ဤသုံးပါးမျှမျှတတကြီးမားသောအုပျစုမြားအဘို့အကွန်ပျူတာ algorithms သုံးပြီးရှုပ်ထွေးသောပြဿနာရိုးရှင်းတဲ့ဖြေရှင်းချက်သည်။ ကျွန်တော်တို့ကိုသူတို့အဆနျးစစျကွပါစို့။
- linear ။ ဒီကွန်ပျူတာမှာဖြစ်စဉ်ကိုကြောင့်အားလုံးလုပ်ရပ်များဦးချင်းစီခြေလှမ်းထက်ပိုတစ်ကြိမ်ဖျော်ဖြေနေသည်သော linear sequence ကိုအတွက်ထွက်သယ်ဆောင်ကြသည်ဟူသောအချက်ကိုဤအမည်အားရတယ်။ ကျနော်တို့ပြဿနာများ၏အစီအစဉ်ကိုစဉ်းစားလျှင်, ဒါကြောင့်လုပ်ကွက်များအတွက် sequence ကိုဂဏန်းများ၏စွမ်းဆောင်ရည်အပေါ်မူတည်ပြီးအခြားအထက်တဦးတည်းတင်လိုက်တယ်။ linear algorithms မူရင်းဒေတာလုပျဆောငျခ၏ညွှန်ကြားချက်များနှင့်အဓိပ္ပာယ်မပြောင်းပါဘူးထိုကဲ့သို့သောလမ်းအတွက်အလုပ်လုပ်ကြသည်။ ထိုသို့သောဖြေရှင်းချက်သင့်လျော်ပေါင်းလဒ်သို့မဟုတ်ခြားနားချက်ကွန်ပျူတာများအတွက်, စတုရန်းပုံစံမျိုးစုံ, သို့မဟုတ်၎င်း၏ပတ်လည်အတိုင်းအတာ၏နည်းလမ်းနှင့်ဒါပေါ်မှာ။ N. algorithmic ဒီဇိုင်း၏အဓိကအမျိုးအစားအတိအကျကြောင့်ဖြစ်ပါတယ်။
- စိမျး။ ဒီကွန်ပျူတာမှာဖြစ်စဉ်ကိုတစ်ဦးယုတ္တိစကားရပ်ကို (LP) နှင့်အခြေအနေများတစ်ဦးရှေးခယျြမှု (ဌာနခှဲက "မှား" နှင့် "စစ်မှန်သော") ၏ရှေ့မှောက်တွင်ဆိုလို။ တစ်ခုချင်းစီကိုအမှု၌ကနှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောအသင်းများ၏တစ်ဦးတည်းသာသဘောပေါက်လာတယ်။ အကောင်အထည်ဖော်မည်ဖြစ်ကြောင်းအဘယ်သူမျှမပြဿနာတွေနဲ့မဖွစျနိုငျ, ဆဲနဲ့အခြားရွေးချယ်စရာရှိပါတယ်။ ရှုပ်ထွေးသော - ထို algorithm ကို၏နှစ်ခုအကိုင်းအခက်ပါလျှင်နှစ်ယောက်ထက်ပိုလျှင်ကရိုးရှင်းပါသည်။ အဆုံးစွန်သောဖြစ်စဉ်ကိုပထမဦးဆုံး၏ကုန်ကျစရိတ်မှာလွယ်ကူသောပုံရသည်။ algorithmic ဒီဇိုင်း၏အဓိကအမျိုးအစားကိုပထမဦးဆုံးအချက်နှင့်ဒုတိယဖြစ်ပါတယ်။ အောက်ပါပုံစံကိုလည်းဒီ list များတွင်ပါဝင်သည်။
- သိသိ။ ကွဲပြားခြားနားသော input ကိုဒေတာကိုသုံးနေစဉ်ဤသည် algorithm ကိုသေချာပေါက်ဒြပ်စင်, ထပ်ခါတလဲလဲဖြစ်ပါတယ်လိမ့်မယ်။ တနည်းအားဖြင့်ထိုကဲ့သို့သောဖြစ်စဉ်ကိုတစ်သံသရာလို့ခေါ်ပါတယ်။
ဒါဟာသူတို့သီးခြားစီသုံးနိုငျပေမယ့်သူအပေါင်းတို့ကိုအဓိက algorithmic ဒီဇိုင်း (အောက်ပါ, အကိုင်းအခက်, ကွင်း), တစ်ဦးချင်းစီကတခြားတွေနဲ့အပြန်အလှန်ဖြစ်ကြောင်းသတိပြုသင့်ပါတယ်။
ကွင်းနှင့်၎င်းတို့၏အမျိုးအစားများ Creating
အဘယ်အရာကိုက loop တစ်ခုဖန်တီးဖို့ယူပါသလဲ?
- အဆိုပါကွင်းဆက်တန်ပြန်။ ဤသည်ကနဦးတန်ဖိုးကိုသတ်မှတ်ပါတယ်တဲ့ variable ကိုဖြစ်ပြီး, action ကို၏အထပ်ထပ်ပြောင်းလဲပါလိမ့်မယ်။ ဒါဟာသေချာပေါက်အဆိုပါ algorithm ကိုတံခါးအထဲသို့ဝင်ရပါမည်။ ဘောင်-type အမျိုးအစားအလုပ်၏အခြေခံ algorithmic ဆောက်လုပ်ရေးကြောင့်မခြင်းမရှိဘဲ။
- သံသရာ၏အသစ်တစ်ခုကိုအထပ်ထပ်ရှေ့တော်၌ထိုဒေတာများကိုအပေါ်ကအညွှန်းကိန်းပြောင်းခြင်း။
- ကွန်ပျူတာအခြေအနေများ Check နောက်တဖန်အဘယ်သူမျှမလိုအပ်လည်းမရှိကွင်းဆက်သို့မဟုတ်ထိုထက်ပို "scroll" ရန်ရှိမရှိဆုံးဖြတ်ခဲ့ပါတယ်။
သံသရာတွက်ချက်ခြင်းနှင့်ကြားမှာရှိနိုင်ပါသည်။ ပထမဦးဆုံးအထပ်ဖြစ်၏လူသိများအရေအတွက်ကိုအတူပြန်လုပ်ရန်ဖြစ်ပါတယ်။ ကြားမှာသံသရာ - အခွအေနေစစ်မှန်တဲ့သို့မဟုတ်မှားယွင်းသောသည်အထိအချိန်တစ်ခုအစဉျအမွဲငွေပမာဏကိုထပ်ခါတလဲလဲကြောင်းတပါးတည်း။
အခြေခံ algorithm ကို
ဒါဟာအခြေခံ algorithmic ဖွဲ့စည်းပုံအခြေခံ algorithm ကိုမပါဝင်ပါဘူးသတိရဖို့ကျိုးနပ်သည်။ ဒါဟာဘာလဲ? ဤအယူအဆမဟုတ်တော့ခေတ်သစ်စာပေမှာတွေ့ရှိတာဖြစ်ပါတယ်, သို့သော်ဤကမမရှိတော့ပါကြောင်းမဆိုလိုပါ။ ပြဿနာများ၏ဖြေရှင်းချက်အများအပြားအကိုင်းအခက်သို့မဟုတ်အထပ်ထပ်အောက်ပါနိဂုံးချုပ်ကြုံတွေ့စေခြင်းငှါပေးတော်မူ၏။ (သိသိအကိုင်းအခက် linear,) အခြေခံပညာ algorithmic တည်ဆောက်မှုများအခြေခံဖြစ်ကြသည်။ တကယ်တော့သူတို့တစ်ဦးချင်းစီဒါခေါ်ညွှန်ကြားချက် "ဖွဲ့စည်းပုံဆိုင်ရာယူနစ်" ကိုကိုယ်စားပြုသည်။
linear algorithms
အထက်ပါကနေရှင်းရှင်းလင်းလင်းသည်အတိုင်း, တဦးတည်း algorithms linear နှင့် Non-linear ဖြစ်ကြသည်။ ပထမဦးဆုံးဂျစဉ်းစားပါ။ အဘယ်ကြောင့်သူတို့ကခေါ်သနည်း အားလုံးအလွန်ရိုးရှင်းတဲ့။ အဆိုပါအချက်ကို algorithm ကိုကစားနေကြတယ်သမျှသောလုပ်ရပ်များ, ရှိသမျှခြေလှမ်းများ၏ရှင်းလင်းစွာတသမတ်တည်းအကောင်အထည်ဖော်မှုတင်းကြပ်စွာအခြားပြီးနောက်တဝတည်းဖြစ်ကြ၏နေကြတယ်ဆိုတာပါပဲ။ ပုံမှန်အားဖြင့်ဤလုပ်ငန်းများကိုအသေးစားဖြစ်ကြပြီးရှုပ်ထွေးနေတဲ့အနိမ့်အဆင့်အထိရှိသည်။
တစ်ဦး linear algorithm ကိုတခုရဲ့ဥပမာလက်ဖက်ရည်ပြင်ဆင်မှု၏လုပ်ငန်းစဉ်ဖြစ်နိုင်သည်
- အဆိုပါရေနွေးအိုးထဲသို့ရေကိုလောင်း။
- ပြုတ်ဖို့မီးဖိုပေါ်တွင်ရေနွေးအိုးထားပါ။
- ခွက်ကိုယူပါ။
- လက်ဖက်ရည်တစ်ခွက်ထဲသို့သွန်းလောင်း။
- သကြားထည့်ပါ။
- ရေနွေးပွက်ပွက်ဆူနေသောပြီးနောက်ခွက်ကိုသို့သွန်းလောင်းလေ၏။
- တစ်ဇွန်းကိုယူပါ။
- သကြားမွှေပေးပါ။
အခြေခံ algorithmic အဆောက်အဦများ Programming - လေးလံသောအလုံအလောက်သဘောတူညီချက်ပေမယ့်တစ်ဦးလျှင် linear algorithm ကို, သူကမကြာခဏသူတို့ကိုအကောင်အထည်ဖေါ်ရန်အလွန်လွယ်ကူသည်။
စိမျး algorithms
အဆိုပါ algorithm ကိုစိမျးကြောင်းနားလည်ရန်ဘယ်လိုနေသလဲ? ဒါဟာသင်၏စွမ်းဆောင်ရည်မှာဒါမှမဟုတ်ရှုံးနိမ်အခြေအနေများပေါ် မူတည်. လုပ်ဆောင်ချက်နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောသင်တန်းများကိုတစ်ဦးရှေးခယျြမှုရှိသည်ဆိုတာသေချာဖို့လုံလောက်ပါတယ်။ တစ်ခုချင်းစီလမ်းကြောင်းကိုအခက်ဟုခေါ်သည်။
algorithm ကိုစိမျး၏အဓိကအင်္ဂါရပ်တစ်ခုခြွင်းချက်ဌာနခွဲတည်ရှိမှုသည်။ ဒါဟာအမှန်တရားရန်စမ်းသပ်မှုစကားရပ်တစ်ခုသို့မဟုတ်မုသားစဉ်အတွင်းတွေ့ရှိနိုင်ပါသည်။
ပုံမှန်အားဖြင့်, ထိုယုတ္တိအသုံးအနှုန်းတွေ "တန်းတူမဟုတ်။ ", "ထက် သာ. ကြီးမြတ်သို့မဟုတ်ညီမျှ" ဆိုင်းဘုတ်များ "ထက်လျော့နည်း", "ကပို", "ထက်လျော့နည်းသို့မဟုတ်တန်းတူ" "တန်းတူ" ကိုကိုယ်စားပြုထားပါသည် တခါတရံမှာအခြေအနေကိုအမိန့်နှင့် (ဦး) သို့မဟုတ် (သို့မဟုတ်) ကတစ်ဦးချင်းစီကတခြားသူနဲ့ဆက်စပ်ဘယ်မှာဂျမြားရှိပါတယ်။
ဥပမာတစ်ခုထိုကဲ့သို့သော algorithm ကိုအောက်ပါပြဿနာကိုဖြေရှင်းနည်းဖြစ်နိုင်သည်၏: ဟူသောအသုံးအနှုနျး ((x + 3) / 1) တစ်ဦးအပြုသဘောအရေအတွက်နှင့်ညီမျှလျှင်အနုတ်လက္ခဏာလျှင်, ယင်းမျက်နှာပြင်ပေါ်ရှိရလဒ်ဖော်ပြရန် - အမှား ပတ်သက်. အသုံးပြုသူအကြောင်းကြားရန်။
အခြေခံ algorithmic ဒီဇိုင်းကိုသုံးစွဲဖို့အလေ့အကျင့်အတွက်လုံလောက်အောင်ရိုးရှင်းတဲ့။ အကိုင်းဖြေရှင်းဘို့အသုံးအများဆုံးနည်းလမ်းတစ်ခုဖြစ်ပါသည်။
တွက်ချက်သံသရာသို့မဟုတ်သံသရာကောင်တာကနေ
ကောင်တာများ၏သံသရာ - လူတယောက်ခြေလှမ်းတန်ဖိုးပြောင်းလဲမယ့် variable ကိုပါဝငျသောသံသရာ။ အဆင့် user ကသတ်မှတ်သို့မဟုတ်ဆော့ဖ်ဝဲကိုရေးသားအခါပရိုဂရမ်မာများကသတ်မှတ်ထားသည့်။ ဒီသံသရာများအတွက်ဘာသာစကားများအများစုဟာတစ်ခုအော်ပရေတာများကိုအသုံးပြုသည်။
နှစ်ခုတန်း 4 ကြိမ်ကိုဖေါ်ပြဖို့အစီအစဉ်ကိုရန်:
- "နေကောင်းလား?"
- "ကောင်းပြီ, ကျေးဇူးတင်ပါတယ်!"
- "နေကောင်းလား?"
- "ကောင်းပြီ, ကျေးဇူးတင်ပါတယ်!"
သင်တစ်ဦးတွက်ချက်သံသရာဖန်တီးရမည်ဖြစ်သည်။ ဘယ်လိုကြည့်ရှုသနည်း? ကျနော်တို့ဒီဇိုင်းပိုကောင်းတဲ့အမြင်များအတွက်ဘာသာစကား "Pascal" ကိုအသုံးပြုပါ။
= 1 2 ပွု: ဈများအတွက် 1. :
- ကိုယ့်တစ်ဦးတန်ပြန်သံသရာဖြစ်ပါသည်, သူက loop တစ်ခုအတွက်အထပ်ထပ်၏နံပါတ်ဆုံးဖြတ်သည်။
2. (ခန္ဓာကိုယ်သံသရာသည်နှင့်အတူတကွထပ်ခါတလဲလဲနှစ်ခုစာပိုဒ်တိုများရန် curly bracket ဖွင့်လှစ်။ ) စတင်
3. Writeln ( 'နေကောင်းလား?'):
- ထိုစကားလုံးတစ်ခုတည်းကိုးကားအတွက်ဖြစ်ခြင်း writeln နိဂုံးချုပ်စာပိုဒ်တိုများဆိုလိုသည်။
4. Writeln ( 'Fine, ကျေးဇူးတင်စကား') ။
5. အဆုံး။
6. ကိုယ့်: = ဈ 1 + ။
သငျသညျ, အတော်လေးလွယ်ကူပြီးအခြေခံ algorithmic ဒီဇိုင်းကိုသုံးစွဲဖို့တောင်ပျော်စရာကြည့်ရှုနိုင်သကဲ့သို့။ အခြေခံပညာ algorithms ကယ့်ကိုကောင်းစွာသူတို့မရှိဘဲကအစီအစဉ်များကိုရေးသားဖို့မဖြစ်နိုင်ဘူး, လူသိများ။
postcondition နှင့်အတူသံသရာ
postcondition နှင့်အတူသံသရာအော်ပရေတာဆီကိုဦးသို့မဟုတ်ဒြပ်ပေါင်းများစကားလုံးများကိုထည့်စရာမလိုဘဲလုပ်ရပ်တွေကိုတစ်ခုအစဉျအမွဲအရေအတွက်ကထပ်ခါတလဲလဲနိုင်ပါသည်။ သူကအနည်းဆုံးတစ်ကြိမ်ကွပ်မျက်ခံရလိမ့်မည်။ အခြေအနေကိုမမှန်သောသည်အထိဒါဟာသံသရာအလုပ်လုပ်ကိုင်နေပါတယ်။ သူမှန်ကန်သောအညွှန်းကိန်းများဖွဲ့စည်းရေးမှာရပ်လိုက်နိုင်သည်။ ဒီ algorithm ကိုအတွက်တည်ဆောက်ထားသည်။ ဒီအထူးသဖြင့်အရှိန်အဟုန်အတွက်အလုပ်၏ဤအမျိုးအစားအခြေခံပညာ algorithmic ဆောက်လုပ်ရေး။
ခလုံးကောက်ကဆိုလိုတယ်အထိဤသံသရာ၏သဘောပေါက်ဘို့ဒီဇိုင်းကိုထပ်ခါတလဲလဲတစ်ဦးကလိုအပ်ပါတယ် "ဟုအဆိုပါအခွအေနေအယူမှားဖြစ်ပါတယ်သည်အထိခြေလှမ်းပြန်လုပ်ပါတယ်။ " ထို့ကြောင့်သူက B ကိုမှတဆင့်တစ်ဦးကသူ့ဟာသူအထပ်ထပ်ဖြစ်စဉ်ကိုဖော်ပြနေသည် - ဖြစ်ပေါ်ကြောင်းဒေတာတစ်မှန်ကန်သောတန်ဖိုးကိုယူသင့်ပါတယ်။
မရှိမဖြစ်လိုအပ်ချက်နှင့်အတူသံသရာ
postcondition နှင့်အတူသံသရာကမဆိုအမှု၌အနည်းဆုံးတစ်ကြိမ်ဖျော်ဖြေကြောင်းထိုကဲ့သို့သောလမ်းအတွက်ဆောက်လုပ်ထားခြင်းဖြစ်သည်။ သံသရာတစ်ခွအေနအေ၏ဖြစ်ရပ်အတွက်လိုအပ်သည်, ထပ်မဖြစ်အောင်၏မရှိခြင်းအတွက်ထွက်သယ်ဆောင်မဖြစ်သင့်သည့်အခါသို့သော်အမှုပေါင်းရှိပါတယ်။ ဒီလိုမှမဟုတ်ရင်ရလဒ်မမှန်ကန်ကြောင်းဖြစ်လိမ့်မည်။ ဒါဟာဤကိစ္စတွင်အတွက်မရှိမဖြစ်လိုအပ်ချက်နှင့်အတူ loop တစ်ခုဖြစ်ပါတယ်။ «တစ်ဦးက B ကိုပြုကြစဉ်»လိုအပ်သောဒီဇိုင်းကိုဖန်တီးရန်။ ပထမဦးဆုံးအဖွဲ့ကစာသားအဖြစ်ဘာသာပြန်ထားသောဖြစ်ပါတယ် "ရှည်လျား။ " တစ်ဦးက - အခြေအနေများ, နှင့် - ထပ်ခါတလဲလဲမည်ဖြစ်ကြောင်းလုပ်ရပ်တွေကို။ "အခြေအနေကိုမှန်သည်အထိလုပ်ဆောင်ချက်တစ်ခုလုပ်ဆောင်ပါ။ " ဒီမြေတပြင်လုံးဒီဇိုင်းကိုဆိုလိုတယ်
သာအချို့သောကိစ္စများတွင်အားလုံးအဓိက algorithmic ဒီဇိုင်းအလုပ်။ သူတို့တစ်တွေမရှိမဖြစ်လိုအပ်ချက်နှင့်အတူကွင်းဆက်အတွက်ဘာတွေလဲ? သင်တဦးတည်းအရေးယူထက်ပိုပြီး, ဒါပေမယ့်တော်တော်များများအကြိမ်ကြိမ်ခံရဖို့မလိုအပ်လျှင်, သင်ထုတ်ပြန်ချက်များ, ဒါမှမဟုတ်အထူးကွင်းခတ်ကိုအသုံးပြုဖို့သို့မဟုတ်ဒြပ်ပေါင်းသင့်တယ်။ ဒါဟာသို့ဝငျသညျ့အခါအခွအေနေစစ်မှန်တဲ့မပါလျှင်သံသရာကောင်းစွာကွပ်မျက်ခံရမည်မဟုတ်ပါ။ ဒါဟာမှန်ကန်ပါလျှင်အ action ကိုထပ်ခါတလဲလဲပါလိမ့်မည်။
အဆိုပါအရန် algorithm ကို
အဆိုပါအရန် algorithm ကိုသာ၎င်း၏အမည်ကိုသတ်မှတ်ခြင်းအားဖြင့်အခြားအလုပ်ငန်းစဉ်များတွင်အသုံးပြုသည်။ သူကအဓိက algorithmic ဒီဇိုင်းများလျှောက်ထားပါဘူးဖြစ်ပါတယ်။ ပရိုဂရမ်းမင်းဘာသာဖြင့်ထိုကဲ့သို့လုပ်ဆောင်မှုဖြစ်စဉ်ကိုလုပ်ရိုးလုပ်စဉ်လို့ခေါ်ပါတယ်။ code ကိုအတူအလုပ်လွယ်ကူချောမွေ့, ပြီးတော့ပိုမိုလွယ်ကူစွာပြဿနာများကိုဖြေရှင်းနိုင်ရန်အတွက်တိုင်းအရေးယူတစ်ဦးအရန် algorithm ကိုဖြစ်သည့်တဦးတည်းယူနစ်သို့ပေါင်းစပ်ထားသည်။ သူတို့တစ်ဦးစီနောက်ပိုင်းတွင်အကြိမ်ကြိမ်သူ့ကိုဆက်သွယ်ပါရန်ခွင့်ပြုတော်မူသောနာမတော်ကိုမေးနိုင်ဘူး။
Similar articles
Trending Now