ကွန်ပျူတာများဆော့ဖျဝဲ

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

 

 

 

 

Newest

Copyright © 2018 my.delachieve.com. Theme powered by WordPress.