ကွန်ပျူတာများ, ဆော့ဖျဝဲ
Turbo Pascal ။ နေစဉ် ... do - တစ်ဦးမရှိမဖြစ်လိုအပ်ချက်နှင့်အတူကွင်းဆက်
Turbo Pascal သျော programming ကိုများအတွက်ကမ္ဘာ့အကြိုက်ဆုံး application ကိုမဟုတျပါဘူး, ဒါပေမယ့်ဖန်တီးသူ, ဆော့ဖ်ဝဲ၏အရေးအသားမှာသူတို့ရဲ့ပထမဦးဆုံးခြေလှမ်းအောင်, ဒီအလတ်စားနှင့်အတူ၎င်းတို့၏အသိအကျွမ်းစတင်ပါ။ ဒါဟာဖုံးကွယ်, အော်ပရေတာ, functions များ, နှင့်လုပ်ထုံးလုပ်နည်းများအဖြစ်များစွာသောအခြားအရာတခုစိတ်ကူးပေးသည်။ ဥပမာအားဖြင့်, Turbo Pascal အတွက်လေ့လာမှုပရိုဂရမ်မာမျက်နှာသံသရာအတွက်: အဘို့, စဉ်တွင်နှင့်ထပ်ခါတလဲလဲ။
အဆိုပါသံသရာ၏အယူအဆနှင့်၎င်း၏မျိုးကွဲ
တစ်ဦးကသံသရာတစ်ထပ်တလဲလဲအရေးယူမှုဖြစ်ပါတယ်။ ဒီပတ်ဝန်းကျင်မှာတော့အသုံးပြုမှု:
- parameter နဲ့ (များအတွက် ... မှ ... လုပ်ပေး);
- ရရှိရေးအတွက်မရှိမဖြစ်လိုအပ်ချက် (ပြုပါ ... နေချိန်မှာ) နဲ့;
- တစ်ဦး postcondition (Repeat ... သည်အထိ) ။
ကမည်မျှခြေလှမ်းများပြဿနာဖြေရှင်းရေးအတွက်လူသိများသည်လာသောအခါပထမအမျိုးအစားကိုအသုံးပြုသည်။ သို့သော်ထပ်ခါတလဲလဲပါလိမ့်မည်ကိုမည်သို့အကြိမ်ပေါင်းများစွာအကြောင်းကိုအဘယ်သူမျှမသတင်းအချက်အလက်သို့မဟုတ်ကြောင့်အရေးယူမှုရှိအလုပ်များကိုနံပါတ်, ရှိပါတယ်။ ဤကိစ္စတွင်ခုနှစ်, Pascal သံသရာထိုကဲ့သို့သောမူအရသကဲ့သို့, မရှိမဖြစ်ဖြစ်လာသည်နှင့် Repeat နေစဉ်။
သံသရာ၏ဖွဲ့စည်းပုံ
အဆိုပါအဘို့, ချိန်တွင် Pascal အတွက်အလုပ်၏အနှစ်သာရနှင့်ထပ်ခါတလဲလဲသံသရာကဘာလဲ? ထိုကဲ့သို့သောတည်ဆောက်ရေးတွင်တစ် header ကိုနှင့်ခန္ဓာကိုယ်ခွဲဝေချထားပေးရန်။ "အလုပ်" ကိုခန္ဓာကိုယ်ကွပ်မျက်ခံရပါလိမ့်မည်သည့်ရန်တရားဝင်မှုကာလပေါ်အခြေအနေများအားဖြင့်သတ်မှတ်ထားသောနေကြသည်လိမ့်မည်ဟုသတ်မှတ်ထားသော variable တွေကို၏ပထမဦးဆုံးအစိတ်အပိုင်း။ ဆိုလိုသည်မှာအခြေအနေကို၏ဖြစ်ရပ်အတွက်အသုံးပြုခံရဖို့သတ်မှတ်အသုံးအနှုန်းတွေ၏ဒုတိယအစိတ်အပိုင်းတစ်ခုပါ။ အစားအယူမှားအဆိုပါ၏အီးစစ်မှန်သောအဆိုပါ။
ကြားမှာကုဒ်၏နောက်ဆုံးလိုင်းပေါ်မှာဖျော်ဖြေသောအခါ, ထို့နောက်သူကအခြေအနေကိုစမ်းသပ်ပြီးဖြစ်ပါတယ်ရှိရာ header ကိုမှပြန်လည်ရောက်ရှိ။ အမှန်တရားစစ်ဆင်ရေးထပ်ခါတလဲလဲနေတယ်ဆိုရင်, နှင့်သံသရာကနေအစီအစဉ်ကို "Exit ကို" ၏မည်သည့်ဖောက်ဖျက်၏ဖြစ်ရပ်နှင့်နောက်ထပ်စစ်ဆင်ရေးကိုလုပ်ဆောင်တယ်။
ကွင်းဆက်နေစဉ်ရူပအောက်ပါအတိုင်း။ Pascal ABC ရုပ်သံ နှင့်ထိုကဲ့သို့သောအစီအစဉ်များထိုကဲ့သို့သောကုဒ်ရေးသားခြင်းလိုအပ်:
- အခွအေနေလုပျဆောငျနေစဉ်တွင်,
- Begin;
- အဆိုပါကွင်းဆက်ခန္ဓာကိုယ်;
- အဆုံး။
သည် loop ထို့နောက် "ကွင်းခတ်, 1 အော်ပရေတာ (1 အရေးယူမှု) ဖျော်ဖြေ»ကိုစတင် ... အဆုံးပါလိမ့်မည်သောဖြစ်ရပ်အတွက်ချန်လှပ်ထားနိုင်ပါတယ်။
Flowchart သံသရာ
အောက်ပါအင်္ဂါရပ်များနေချိန်မှာအဆိုပါ Turbo Pascal:
- ဖွဲ့စည်းပုံအတွင်း၌အခြေအနေများသုံးစွဲဖို့ခက်ခဲနိုင်ပါတယ်;
- နှုတ်ကပတ်တရားတော်ကိုပြီးနောက်ကော်မာမဖြစ်သင့်ပါဘူး (သူက Turbo Pascal နှင့် Pascal Credit: ABC အတွက် bug ကိုစဉ်းစားသည်);
- variable ကို, စဉ်ဆက်မပြတ်သို့မဟုတ်တဲ့အခါပြန်ကြားချက်အယူမှား output ကိုသူတို့ကိုတာဝန်ထမ်းဆောင်ကြောင်းစကားရပ် subroutines သေချာပေါက်ဆိုလိုသည်မှာယုတ္တိအမျိုးအစားဖြစ်ရပါမည်။ အီး။ Boolean ။
မျိုးစုံသံသရာ၏ပိတ်ပင်တားဆီးမှုပုံကိုအောက်ပါအတိုင်းဒါဟာဖြစ်ပါတယ်။ ဒါဟာအကောင်အထည်ဖော်မှုလုပ်ရပ်များ၏ sequence ကိုပြသသည်။
သံသရာ၏ algorithm ကို
.. Pascal Credit: ABC အတွက်အရိုးရှင်းဆုံးပရိုဂရမ်းမင်းပတ်ဝန်းကျင်မှာများတွင်မီတာနှင့်ဇ, ကွင်းဆက်ကိုအောက်ပါနိယာမအပေါ်လည်ပတ်စဉ်တွင်:
- .. ကြားမှာ, ဆိုလိုသည်မှာအားအထပ်ထပ်ကာလပတ်လုံးအခွအေနအေမှန်အဖြစ်အကြိမ်ပေါင်းများစွာအဖြစ် (စစ်မှန်သော) ရာအရပ်ကိုယူတော်မူမည်
- အဖြစ်မကြာမီအခြေအနေကိုကျေနပ်မှုမရဖြစ်ပြီးအယူမှားအဖြေ (သို့မဟုတ်မဟုတ်ရင် "အယူမှား") ပေးသည်အတိုင်း, ကွင်းဆက်ထဲကအော်ပရေတာ;
- အဖြစ်မကြာမီကဖြစ်ပျက်ခဲ့သကဲ့သို့, အစီအစဉ်ကိုသံသရာပြီးနောက်ပေါ်လာသောဒီဇိုင်းထဲမှာ "သို့ သွား. " ။
ဤသည်နေချိန်မှာထပ်ခါတလဲလဲ, t ကို။ အီးတစ်ဦး Pre-သံသရာကနေ postconditions ကနေသိသိသာသာကွာခြားချက်ဖြစ်ပါတယ်။
ဒါဟာပေးထားသော variable ကို header ကိုနေချိန်မှာအတွက်ကွင်းဆက်ကနျ့ပြောင်းလဲမှုအတွက်ထည့်သွင်းရန်အရေးကြီးပါသည်။ မည်သည့်ကိစ္စတွင်ခုနှစ်, အစဉ်အဆက်အယူမှားဖို့ပေးသည်တဲ့အခွအေနေလာသင့်ပါတယ်။ ဒီလိုမှမဟုတ်ရင်အဲဒီမှာ loop တစ်ခုဖြစ်, အဲဒီနောက် compiler ကနေမှထွက်ရန်အပိုဆောင်းအစီအမံယူရပါလိမ့်မယ်။ ထိုကဲ့သို့သောအမှားများကိုရိုင်းစိုင်းနှင့် inexcusable စဉ်းစားနေကြသည်။
စက်ဘီးနေစဉ်အစီအစဉ်ကိုမှထွက်ရန်ဘယ်လိုနေသလဲ?
အော်ပရေတာရေးသားထားသော program ကိုကုဒ်အတွက်နေချိန်မှာ Pascal ကွင်းဆက်ပေးသည်သည့်အခါမကြာခဏအခြေအနေကတွေ့ရှိနိုင်ပါသည်။ ဒါကဘာကိုဆိုလိုသနညျး အခြေအနေကိုအမြဲမှန်သည်ဘာဖြစ်လို့လဲဆိုတော့ကြားမှာတစ်ခါတလေတစ်ဦးအဆုံးမဲ့အရေအတွက်ကထပ်ခါတလဲလဲဖြစ်ပါတယ်။ ဥပမာ, ဒီ code လိုင်း:
- 2> 1 နေချိန်မှာပြုကြလော့
- (1) ရေးပါ။
ဤကိစ္စတွင်ခုနှစ်, ပဲ CTRL + F2 နှိပ်, task ကို၏ကွပ်မျက်ကြားဖြတ်ရန်။
ထိုကဲ့သို့သောအစီအစဉ်၏အပြုအမူကိုထိန်းချုပ် 2 လမ်းရှိပါတယ်။ ဥပမာအားဖြင့်, တစ်ဦးရေးလျှင်သိသိဖွဲ့စည်းပုံ၏အစမှထိန်းချုပ်ဖြတ်သန်းကြောင်းကုဒ် Continue (ဤနေရာတွင်သည် loop ထွက်ပေါက်အခွအေနေစောင့်ကြည့်နေသည်, ဆိုလိုသည်မှာ။ လက်ရှိကြားမှာ၏ E ကိုကွပ်မျက်ကြားဖြတ်ဖြစ်ပါတယ်) ။ ထိုအခါထိန်းချုပ်မှုယခင်စမ်းသပ်မှုတစ်ခုနေစဉ်ကွင်းဆက်အတွက်လွှဲပြောင်းဖြစ်ပါတယ်။
break အော်ပရေတာလာမယ့်ကြားမှာဖို့တပြင်လုံးကိုသံသရာ၏ကွပ်မျက်ခြင်းနှင့်လွှဲပြောင်းထိန်းချုပ်မှုပြောဆိုနိုင်ပါသည်။ ဤတွင်, ဆောက်လုပ်ရေး၏ output ကိုထိန်းချုပ်ထားလိမ့်မည်မဟုတ်ပါ။ ပုံကဤအော်ပရေတာများအသုံးပြုခြင်း၏နမူနာပြသထားတယ်။
စိန်ခေါ်မှုများတွေ့ဆုံ
စစ်ဆင်ရေးသံသရာထဲမှာနေစဉ်စဉ်းစားပါ။ Pascal ကွဲပြားပြဿနာကိုဖြေရှင်းနိုင်မှအဆိုတင်သွင်း။ ရဲ့စစ်ဆင်ရေးကိုနားလည်ရန်ရိုးရှင်းသောထည့်သွင်းစဉ်းစားကြပါစို့။ Pascal ABC ရုပ်သံအစီအစဉ်တွင်ဖြေရှင်းတာဝန်များကို။ ဒါပေမယ့်တင်ပြခြင်းနှင့်နှိုင်းယှဉ်မှုအတွက်ဂန္ထဝင် Turbo Pascal ပတ်ဝန်းကျင်၏ပုံသဏ်ဌာလိမ့်မည်။
Task ကို 1: function ကို Y ကို = 5-X ကို ^ 2/2 ပေးတော်မူ၏။ နှစ်တိုး sh အတွက်တန်ဖိုးစားပွဲတစ်ခု Create = 0,5 [5, -5] ကကြားကာလကျော်။
အဆိုပါ algorithm ကိုဖြစ်ပါသည်:
- 5 ညီမျှကနဦးတန်ဖိုးကိုရန် variable ကို X ကို set (ဆိုလိုသည်မှာကွာဟချက်၏အစ .. );
- အဆိုပါ variable ကို x ကိုကဆိုသည်ကြားကာလ၏အဆုံးကိုရောက်ရှိပါဘူးစဉ်တစ် Y ကိုတန်ဖိုးကိုတွက်ချက်;
- function ကိုနှင့် abscissa (X) ၏တန်ဖိုးများကိုဖော်ပြရန်;
- ကကြိုတင်သတ်မှတ်ထားသောခြေလှမ်းတို့က X ကိုတိုး။
ဤတွင် Pascal ABC ရုပ်သံအစီအစဉ်တွင် code ကိုဖြစ်ပါတယ်။
ဘယ်လို Turbo Pascal အစီအစဉ်တွင် code ကိုပါဘူး။ အောက်တွင်ဖော်ပြထားသောပုံသည်ဤဖော်ပြသည်။
Task ကို 2: တစ်ခုလုံးကိုအပြုသဘောနှင့်အနုတ်လက္ခဏာနံပါတ်များကိုပါဝင်သည်ဟုတစ်ခုခင်းကျင်းတစ်ဦးကပေးတော်မူ၏။ ဒါဟာ 10 ပစ္စည်းများပါဝင်သည်။ ခင်းကျင်းတစ်ဦး၏အပြုသဘောဆောင်သည့်ဒြပ်စင်တစ်ခုပင်အညွှန်းကိန်းရှိခြင်းကိုပြသသည့်အတွက်တစ်ဦး matrix ကိုဖွဲ့စည်းရန်လိုအပ်ကြောင်း။ အသစ်က matrix ၏နံပါတ်အတွက်ရင်ပြင်၏ပေါင်းလဒ်ကိုဖော်ပြရန်။
အဆိုပါ algorithm ကိုဖြစ်ပါသည်:
- သငျသညျကိုသာအခင်းကျင်းတစ်ဦးကတစ်ဦးကိုပင်ညွှန်းကိန်းရှိခြင်း၏ဒြပ်စင်နှင့်အတူ "အလုပ်" လိမ့်မည်တဲ့လုပ်ရိုးလုပ်စဉ်ကိုရေးရပေမည်။ သည် loop ခုနှစ်တွင်ညွှန်းကိန်းများ၏ကွာခြားမှုနှုန်းဖို့နဲ့သက်ဆိုင်တဲ့ variable ကိုတန်ဖိုးကိုနှစ်ခုတို့ကအဆတိုးလိမ့်မည်။
- အရေအတွက်ကိုတစ်ဦးက x> 0 င်အခွအေနနဲ့ကိုက်ညီသည့် matrix ကိုတစ်ဦးထံမှပင်အညွှန်းကိန်းဖြစ်ပါတယ်လျှင်, တန်ပြန်ခင်းကျင်း 1. သဖြင့်အဆတိုးသည်တန်ပြန် variable ကို၏လက်ရှိတန်ဖိုးခင်းကျင်းခအတွက်မိတ္တူနံပါတ်၏အညွှန်းကိန်းဖြစ်လိမ့်မည်
- ကနဦးက, variable ကို summa, အပြုသဘောကိန်း၏ရင်ပြင်၏ပေါင်းလဒ်ကိုရှာတွေ့တာဝန်ရှိသည်, ထိုအခါ 0. ဟုသတ်မှတ်သည်, စစ်ဆင်ရေးထွက်သယ်ဆောင်ပါလိမ့်မည်ဖြစ်ပါသည်: ယခင်ပေါင်းလဒ်တစ်ခုစတုရန်းများ၏တန်ဖိုးအသစ်ထည့်သွင်းထားပါသည်။
- အားလုံးမဟုတ်အပြုသဘောနံပါတ်များကိုတဦးတည်းခင်းကျင်းမှအခြားသို့ပြောင်းရွှေ့လျှင်, ကြောက်ခြင်းမရှိကြနှင့်။ သငျသညျသတိထားပါရန်ရှိသည်။ တစ်ဦးထိတ်လန့်ထဲမှာ code ကိုပြန်ရေးမှအတော်များများကအတွေ့အကြုံမရှိသေးသော programmer တွေ။ ဒါဟာဂရုတစိုက်အခြေအနေကိုဆန်းစစ်ရန်လိုအပ်ပါသည်: 2 ရဲ့မြှောက်လဒ်သောညွှန်းကိန်းနှင့်အတူပင် "ဒေသခံ on" ဖြစ်ကြောင်းအပြုသဘောဆောင်နံပါတ်များ, ဆိုလိုသည်မှာ ...
manual သဲလွန်စသစ္စာရှိမှု၏တွက်ချက်မှုကြောင်းသေချာစေရန်အလို့ငှာလိုအပ်သည်။ တစ်ခါတစ်ရံဒီနည်းလမ်းကို အသုံးပြု. ရေးသားထားသောကုဒ်၏ပုံမှန်စစ်ဆေးခြင်းအောက်ရှိမျက်စိဖမ်းမအမှားအယွင်းများခွဲခြားသတ်မှတ်နိုင်ပါတယ်။
ကျနော်တို့ကို manual တွက်ချက်မှုထွက်သယ်ဆောင်ပါက program ကိုစနစ်တကျအလုပ်လုပ်စေရန်တတ်နိုင်သမျှဖြစ်ပါတယ်။ ဒီအလှည့်အတွက်, code ကိုမျိုးဆက် algorithm ကို, လုပ်ရပ်များ၏ sequence ကိုတစ်ဦးယုတ္တိအဆုံးမှမှန်ကန်သောဦးဆောင်နေသည်ဟုဆိုသည်။
Similar articles
Trending Now