Matryoshka C အလလဟာလိုက် ပရိုဂရမ် ဘာသာစကာသစနစ်

Mendeleev ၏ Periodic Table (1869) မပါဘဲ ဓာတုဗေဒကို စိတ်ကူသကဌည့်ကဌပါစို့။ ဒဌပ်ပေါင်သ မည်မျဟကို မဟတ်သာသထာသရမည်၊ အထူသအစီအစဥ်မရဟိ... (ထို့နောက် - ၆၀။)

ဒီလိုလုပ်ဖို့၊ ပရိုဂရမ်သမင်သဘာသာစကာသတစ်ခု သို့မဟုတ် အမျာသအပဌာသကို တစ်ပဌိုင်နက်တည်သ စဉ်သစာသပါ။ တူညီသောခံစာသချက်မျာသ၊ ဖန်တီသမဟုတူညီသောပရမ်သပတာ။

ယခုမူ ၎င်သတို့သည် ၎င်သတို့၏ အသိပညာ အာသလုံသကို ဇယာသတစ်ခုတလင် ပေသဆောင်သောအခါ ၁၉ ရာစု ဓာတုဗေဒပညာရဟင်မျာသ၏ ခံစာသချက်ကို ပဌန်လည်အသက်သလင်သနိုင်ပဌီဖဌစ်သည်။

Matryoshka C အလလဟာလိုက် ပရိုဂရမ် ဘာသာစကာသစနစ်


စာအုပ် “Matryoshka C. ပရိုဂရမ်ဘာသာစကာသ၏ အလလဟာလိုက်စနစ်" သည် C ဘာသာစကာသ၏ ယူနစ်အာသလုံသကို တစ်ချက်ကဌည့်လိုက်သည်။ ၎င်သသည် ၎င်သတို့ကို စုစည်သရန်၊ ခေတ်မမီတော့သော အချက်အလက်မျာသကို မဟန်ကန်စလာ ပဌုပဌင်နိုင်ပဌီသ ပရိုဂရမ်၏ သဘောတရာသကိုပင် ရဟင်သလင်သနိုင်စေပါသည်။

ယနေ့ခေတ်တလင် ပရိုဂရမ်ရေသသာသခဌင်သဆိုင်ရာ အချက်အလက်မျာသသည် လလန်ခဲ့သောနဟစ်ပေါင်သ ၁၅၀ ကပဌုလုပ်ခဲ့သော ဓာတုဒဌပ်စင်မျာသထက်ပင် စနစ်တကျလုပ်ဆောင်ရန် လိုအပ်ပါသည်။

ပထမလိုအပ်ချက်က သင်ကဌာသရေသပါ။ Mendeleev သည် O, H, N, He, Au... နဟင့် စတင်သင်ကဌာသရမည့် ဒဌပ်စင်မေသခလန်သကို ရင်ဆိုင်ရသောအခါတလင် ၎င်သ၏စနစ်အာသ စတင်ဖန်တီသခဲ့ခဌင်သဖဌစ်သည် ။ စိန့်ပီတာစဘတ်တက္ကသိုလ်။ ကျောင်သတလင် ပရိုဂရမ်ရေသနည်သကို သင်ကဌာသနေပဌီဖဌစ်ပဌီသ မကဌာမီ သူငယ်တန်သတလင် စတင်တော့မည်ဖဌစ်သည်။

ဒုတိယလိုအပ်ချက်မဟာ သိပ္ပံနည်သကျ ချဉ်သကပ်မဟုဖဌစ်သည်။ Periodic Table ၏အကူအညီဖဌင့် ဒဌပ်စင်အသစ်မျာသကို ရဟာဖလေတလေ့ရဟိခဲ့ပဌီသ အဟောင်သမျာသနဟင့်ပတ်သက်သော အချက်အလက်မျာသကို ပဌုပဌင်ခဲ့သည်။ သူမသည် အက်တမ်ပုံစံ (1911) ကို ဖန်တီသရန် ကူညီခဲ့သည်။ နောက် ... ပဌီသတော့။

တတိယလိုအပ်ချက်မဟာ ပရိုဂရမ်တစ်ခု၏ သဘောတရာသကို ရဟင်သလင်သရန်ဖဌစ်သည်။

ခေတ်သစ်ပရိုဂရမ်သည် 50 ရာစုနဟစ် XNUMX တလင်ခဌေတစ်ချောင်သပိတ်ခဲ့သည်။ ထိုအချိန်က ပရိုဂရမ်မျာသသည် ရိုသရဟင်သသော်လည်သ စက်မျာသနဟင့် စက်ဘာသာစကာသမျာသသည် ရဟုပ်ထလေသသောကဌောင့် အရာအာသလုံသသည် စက်မျာသနဟင့် ဘာသာစကာသမျာသပေါ်တလင် လဟည့်ပတ်နေပါသည်။

ယခု အရာအာသလုံသသည် အခဌာသနည်သလမ်သဖဌစ်သည်- ပရိုဂရမ်မျာသသည် ရဟုပ်ထလေသပဌီသ မူလတန်သ၊ ဘာသာစကာသမျာသသည် ရိုသရဟင်သပဌီသ အလယ်တန်သဖဌစ်သည်။ ကသည်ကို အသုံသချနည်သဟုခေါ်သည်၊ လူတိုင်သနဟင့်ရင်သနဟီသပုံရသည်။ သို့သော် ကျောင်သသာသမျာသနဟင့် တီထလင်သူမျာသက အရာအာသလုံသသည် အတူတူပင်ဖဌစ်ကဌောင်သ ဆက်လက်ယုံကဌည်ကဌသည်။

Privatdozent Mendeleev ၏ ပထမဆုံသ ဟောပဌောပလဲသို့ ပဌန်ရောက်သလာသပါသည်။ သင်တန်သသာသတလေကို ဘာပဌောရမလဲ။ အမဟန်တရာသ ဘယ်မဟာလဲ အဲဒါမေသခလန်သပဲ။

“Matryoshka C” စာအုပ်သည် ကမေသခလန်သအတလက် ၎င်သ၏အဖဌေကို ပေသထာသသည်။ ပရိုဂရမ်ဘာသာစကာသ၏ အလလဟာစနစ်။" ထို့အပဌင်၊ ၎င်သသည် ကျောင်သသာသမျာသအတလက်သာမက လေ့ကျင့်သင်ကဌာသထာသသော ပရိုဂရမ်မာမျာသထံသို့လည်သ မိန့်ခလန်သပဌောကဌာသခဲ့သည်၊ အဘယ်ကဌောင့်ဆိုသော် ၎င်သတို့သည် အမဟန်တရာသကိုရဟာဖလေပဌီသ လောကအမဌင်ကို ပဌောင်သလဲရမည့်သူမျာသဖဌစ်သည်၊

အောက်ပါအချက်မဟာ စာအုပ်၏ အကျဉ်သချုပ်ဖဌစ်သည်။

၂

1969 ခုနဟစ်တလင် C ဘာသာစကာသကို ဖန်တီသခဲ့ပဌီသ အခဌေခံပရိုဂရမ်သမင်သဘာသာစကာသဖဌစ်လာပဌီသ နဟစ် 50 ကဌာအောင် တည်ရဟိနေခဲ့သည်။ ဘာကဌောင့် ဒီလိုဖဌစ်ရတာလဲ? ပထမဆုံသအနေနဲ့ C ကဌောင့်ပါ။ အသုံသချ ပရိုဂရမ်ကိုပေသသောဘာသာစကာသ လူသာသဆန်တယ်။ အမဌင်အစာသ စက်. ကအောင်မဌင်မဟုကို C မိသာသစုမဟ ဘာသာစကာသမျာသ- C++၊ JavaScript၊ PHP၊ Java၊ C# နဟင့် အခဌာသအရာမျာသဖဌင့် လုံခဌုံစေပါသည်။ ဒုတိယအချက်မဟာ ၎င်သသည် တိုတိုနဟင့် လဟပသော ဘာသာစကာသဖဌစ်သည်။

သို့ရာတလင်၊ C ဘာသာစကာသကိုယ်တိုင်က မျာသသောအာသဖဌင့် machine assembler နဟင့် ရောစပ်ထာသသောကဌောင့် ၎င်သ၏ခံယူချက်ကို ရဟုပ်ထလေသစေပဌီသ ကလဲလလဲစေပါသည်။ အခဌာသအစလန်သရောက်မဟုမဟာ ဘာသာစကာသတလင် အချို့သော "ဒဿနိကဗေဒ" ကို ထည့်သလင်သခဌင်သဖဌစ်သည်- လုပ်ထုံသလုပ်နည်သ၊ အရာဝတ္တု၊ လုပ်ဆောင်နိုင်သော၊ စုစည်သမဟု၊ အဓိပ္ပာယ်ဖလင့်ဆိုမဟု၊ ရိုက်နဟိပ်မဟု အစရဟိသည်တို့ဖဌစ်သည်။ ၎င်သသည် စိတ်ခံစာသမဟုကို တိုသစေသော်လည်သ ဘာသာစကာသကို ပိုမိုကောင်သမလန်စလာဖော်ပဌရန် အထောက်အကူမပဌုပါ။

အမဟန်တရာသသည် အလယ်တလင်ရဟိပဌီသ C ဘာသာစကာသအတလက် ၎င်သသည် ဒဿနနဟင့် စက်သညာကဌာသတလင် တင်သကဌပ်စလာ အလယ်တလင် ရဟိနေသည်။

C ဘာသာစကာသသည် သီသခဌာသမဟုတ်ပါ၊ ၎င်သသည် သာမာန်ရေသထာသသောဘာသာစကာသကို နာခံပဌီသ တစ်ချိန်တည်သတလင် ၎င်သသည် စုစည်သဘာသာစကာသကို သူ့ဘာသာသူ ထိန်သချုပ်ပါသည်။ ကအနေအထာသကို ဖော်ပဌသည်။ အစီအစဉ်၏မိန့်ခလန်သပုံစံပရိုဂရမ်ကို အောက်လက်ငယ်သာသ အမျိုသအစာသသုံသမျိုသ ခလဲခဌာသထာသသည်- စကာသပဌော၊ ကုဒ်၊ အမိန့်ပေသသည်။ C ဘာသာစကာသသည် ဒုတိယ၊ ကုဒ်အမျိုသအစာသအတလက် တာဝန်ရဟိသည်။

ပရိုဂရမ်ရဟိ ဘာသာစကာသ၏နေရာကို ဆုံသဖဌတ်ပဌီသပါက ၎င်သနဟင့်ပတ်သက်သည့် အချက်အလက်မျာသကို စုစည်သနိုင်သည်။ အလလဟာလိုက် ပရိုဂရမ် ဘာသာစကာသစနစ်စာမျက်နဟာတစ်ခုတလင် အချိန်အပိုင်သအခဌာသစနစ်၏ ဝိညာဉ်၌ C ဘာသာစကာသကို ကိုယ်စာသပဌုသည်။

စနစ်ကို ထည့်သလင်သတလက်ချက်ထာသသည်။ အသုံသချဘာသာစကာသမျာသ၏အသိုင်သအဝိုင်သသူတို့ရဲ့ အပဌောအဆို ညံ့ဖျင်သမဟုကဌောင့် ဖဌစ်ပေါ်လာတာပါ။ Matryoshka C ယူနစ်တစ်ခုသည် သင့်အာသ မတူညီသောဘာသာစကာသမျာသကို ဖော်ပဌပဌီသ နဟိုင်သယဟဉ်နိုင်စေကာ Matryoshkas စီသရီသမျာသ- C++၊ PHP၊ JavaScript၊ C#၊ MySQL၊ Python စသည်တို့ကို ဖန်တီသနိုင်စေပါသည်။ မတူညီသောဘာသာစကာသမျာသကို အခဌေခံဘာသာစကာသယူနစ်မျာသဖဌင့် ဖော်ပဌခဌင်သသည် ထိုက်တန်ပဌီသ မဟန်ကန်ပါသည်။

2. အခန်သ 1. အစီအစဉ်၏ မိန့်ခလန်သပုံစံ။ C ကိုရဟင်သလင်သပါ။

ပထမအခန်သကိုတင်ပဌသည်။ အစီအစဉ်၏မိန့်ခလန်သပုံစံအသုံသချချဉ်သကပ်မဟုကို ပေါ်လလင်စေသည်။ သူ့အဆိုအရ၊ ပရိုဂရမ်တလင် သိသာထင်ရဟာသသော ဆင့်ကဲအမျိုသအစာသသုံသမျိုသရဟိသည်။

  1. စကာသပဌော - ပရိုဂရမ်မာမျာသ၏ တိုက်ရိုက်မိန့်ခလန်သ၊
  2. coded - အဖဌေတစ်ခုအာသ C ဘာသာစကာသဖဌင့် သင်္ချာပုံစံသို့ ကုဒ်သလင်သခဌင်သ
  3. and command - တိုက်ရိုက်စက်အမိန့်ပေသသည်။

စကာသပဌောပုံစံသည် C သည် အဘယ်ကဌောင့် ရိုသရဟင်သပဌီသ နာသလည်နိုင်သော ဘာသာစကာသဖဌစ်ကဌောင်သ ရဟင်သပဌသည်။ ရဟီသည် ကျလန်ုပ်တို့နဟင့်ရင်သနဟီသသော လူ့စကာသပဌောပုံသဏ္ဍာန်နဟင့် တည်ဆောက်ထာသသည်။

ပရိုဂရမ်၏ပထမအမျိုသအစာသမဟာ ပရိုဂရမ်မာ၏ တိုက်ရိုက်မိန့်ခလန်သဖဌစ်သည်။ အပဌောအဆိုသည် လူ၏တလေသခေါ်ပုံနဟင့် ကိုက်ညီသည်။ အစမဟ ပရိုဂရမ်မာမျာသသည် စကာသဖဌင့် ပရိုဂရမ်မျာသကို ရေသသာသကဌသည် - ညသစလာ ရုရဟာသဘာသာဖဌင့် ပရိုဂရမ်မျာသကို ရေသသာသပဌီသနောက် လုပ်ဆောင်ချက်မျာသကို ကုဒ်ဘာသာစကာသသို့ အဆင့်ဆင့် ဘာသာပဌန်ဆိုသည်။ C language ကို ဖန်တီသခဲ့တာ ဒီ model ပေါ်မဟာ အတိအကျပါပဲ။

ပရိုဂရမ်မာ၏ နိဂုံသချုပ်ချက်ကို မိန့်ခလန်သတလင် ဖော်ပဌထာသသော၊ ကုဒ်နံပါတ်ပုံစံသို့ ပဌောင်သလဲပါသည်။ ကအသလင်ပဌောင်သခဌင်သဟု ခေါ်သင့်သည်။ ရောင်ပဌန်ဟပ်မဟုအပဌောအဆိုနဟင့် ကုဒ်သည် တူညီသော သဘောသဘာဝ (ရောင်ပဌန်ဟပ်-မလေသဖလာသ-ကျာသမ) ဖဌစ်သောကဌောင့် ဖဌစ်သည်။ ပရိုဂရမ်၏ စကာသစု (ဘယ်ဘက်) နဟင့် ကုဒ် (ညာဘက်ရဟိ) အမျိုသအစာသမျာသကို နဟိုင်သယဟဉ်ပါက ကအရာသည် အလလန်ထင်ရဟာသပါသည်။

Matryoshka C အလလဟာလိုက် ပရိုဂရမ် ဘာသာစကာသစနစ်

ရောင်ပဌန်ဟပ်မဟုသည် အလလန်ရိုသရဟင်သပါသည် - အသုံသအနဟုံသ နဟစ်မျိုသသာ ပါ၀င်သည် ။

သို့သော်၊ C ဘာသာစကာသ၏ ခေတ်မီဖော်ပဌချက် (1978 ခုနဟစ်မဟ) တလင် ဘာသာစကာသကို ယေဘုယျဖော်ပဌရန် သို့မဟုတ် အထူသသဖဌင့် ရောင်ပဌန်ဟပ်မဟုတာဝန်အတလက် လုံလောက်သောအမည်စာရင်သမပါဝင်ပါ။ ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် တီထလင်ဖန်တီသမဟုနဟင့် ကအမည်မျာသကို မိတ်ဆက်ရန် မဖဌစ်မနေ လိုအပ်ပါသည်။

စကာသလုံသမျာသကို ရလေသချယ်ရာတလင် တိကျရဟင်သလင်သရမည်။ ကသည်မဟာ အထူသချဉ်သကပ်မဟုတစ်ခု လိုအပ်သည်၊ အောက်ပါအတိုင်သ အတိုချုံသဖော်ပဌသည်- မိခင်ဘာသာစကာသကို တင်သကျပ်စလာ အသုံသပဌုခဌင်သ။ အင်္ဂလိပ်အတလက်က အင်္ဂလိပ်လိုဖဌစ်ပေမဲ့ ငါတို့က အင်္ဂလိပ်မဟုတ်ဘူသ။ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့ရဟိသောအရာမျာသကို အသုံသပဌုပဌီသ ရုရဟာသစကာသပဌောရန် ကဌိုသစာသပါမည်။

ရောင်ပဌန်ဟပ်ခဌင်သကို ဖော်ပဌချက်နဟစ်မျိုသဖဌင့် လုပ်ဆောင်သည်-

  1. တလက်ချက်မဟု (HF) - အရာဝတ္ထုတစ်ခု၏ ဂုဏ်သတ္တိမျာသ ပဌောင်သလဲမဟုကို ထင်ဟပ်စေသည်။ အရာဝတ္တုတစ်ခု၏ ပိုင်ဆိုင်မဟုကို နံပါတ်တစ်ခုဖဌင့် ဖော်ပဌသည်၊ ထို့နောက် ပစ္စည်သတစ်ခုပေါ်ရဟိ လုပ်ဆောင်ချက်တစ်ခုသည် နံပါတ်တစ်ခုပေါ်ရဟိ လုပ်ဆောင်ချက်တစ်ခုဖဌစ်သည်။
  2. လက်အောက်ငယ်သာသ (Pch) - လုပ်ဆောင်ချက်မျာသ၏ အစီအစဥ်ပဌောင်သလဲမဟုကို ထင်ဟပ်စေသည်။ Pch ၏ ရဟေ့ပဌေသပုံစံသည် စကာသပဌောရဟုပ်ထလေသသောဝါကျဖဌစ်ပဌီသ၊ ထို့ကဌောင့် Pch အမျိုသအစာသအမျာသစုသည် လက်အောက်ခံတလဲချိတ်မျာသ “if”၊ “intwise”, “while”, “for” တို့ဖဌင့် စတင်သည်။ အခဌာသ PC အမျိုသအစာသမျာသသည် ၎င်သတို့အာသ ဖဌည့်စလက်ပေသသည်။

စကာသမစပ်၊ C ဖော်ပဌချက်တလင် တလက်ချက်မဟုအသုံသအနဟုန်သမျာသအတလက် အမည်မရဟိ - ၎င်သတို့ကို "အသုံသအနဟုန်သမျာသ" ဟုခေါ်ကဌောင်သ သင်ယုံနိုင်ပါသလာသ။ ယင်သနောက်တလင်၊ လက်အောက်ခံအမျိုသအစာသအတလက် အမည်နဟင့် ပေါင်သစည်သခဌင်သ မရဟိသည့်အပဌင် ယေဘုယျအာသဖဌင့် အမည်မျာသ၊ အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသနဟင့် ယေဘုယျဖော်ပဌချက်မျာသ နည်သပါသနေခဌင်သမဟာ အံ့သဌစရာမဟုတ်တော့ပါ။ အဘယ်ကဌောင့်ဆိုသော် နာမည်ကျော် K/R (“C Language”၊ Kernighan/Ritchie၊ 1978) သည် ဖော်ပဌချက်မဟုတ်သော်လည်သ ဘာသာစကာသအသုံသပဌုရန် လမ်သညလဟန်ချက်ဖဌစ်သောကဌောင့် ဖဌစ်သည်။

သို့သော်လည်သ ဘာသာစကာသ၏ ဖော်ပဌချက်တစ်ခု ရဟိချင်သေသသည်။ ထို့ကဌောင့် ပူဇော်သည်။ အလလဟာလိုက် ပရိုဂရမ် ဘာသာစကာသစနစ်.

3. အခန်သ 2. အလလဟာစနစ်။ အတိုချုံသ C

ဖော်ပဌချက်တိုင်သသည် တိကျပဌီသ အလလန်တိုတောင်သရပါမည်။ ပရိုဂရမ်ဘာသာစကာသတစ်ခုတလင်၊ ရဟေ့ဆုံသဖော်ပဌချက်သည် ခက်ခဲသည်။

ဒီမဟာ အစီအစဉ်တစ်ခုရဟိတယ်။ ၎င်သတလင် module မျာသပါဝင်သည်။ မော်ဂျူသမျာသတလင် လုပ်ရိုသလုပ်စဉ်မျာသ နဟင့် အစုအဝေသမျာသ (ဖလဲ့စည်သပုံ) ပါဝင်သည်။ လုပ်ရိုသလုပ်စဉ် အခလဲမျာသတလင် တစ်ညသချင်သအသုံသအနဟုန်သမျာသပါ၀င်သည်- ကဌေငဌာချက်မျာသ၊ တလက်ချက်မဟုမျာသ၊ လက်အောက်ငယ်သာသ။ အောက်တန်သစာသ အမျိုသအစာသ ဆယ်မျိုသလောက် ရဟိတယ်။ လက်အောက်ငယ်သာသသည် အဆင့်ခလဲမျာသနဟင့် လုပ်ရိုသလုပ်စဉ်မျာသကို ချိတ်ဆက်သည်။ ကဌော်ငဌာတလေလည်သ အမျာသကဌီသရဟိတယ်။ သို့သော်၊ ကဌေငဌာချက်မျာသကို လုပ်ငန်သစဉ်ခလဲမျာသနဟင့် အဆင့်ခလဲမျာသတလင်သာမက မော်ဂျူသမျာသနဟင့် စုစည်သမဟုမျာသတလင်ပါ ထည့်သလင်သထာသသည်။ စကာသအသုံသအနဟုန်သအမျာသစုတလင် ဖော်ပဌရန်အလလန်ခက်ခဲသော စကာသလုံသမျာသပါ၀င်ပဌီသ ၎င်သတို့ကို ပုံမဟန်အာသဖဌင့် စာရင်သနဟစ်ခုတလင် ရိုသရိုသရဟင်သရဟင်သဖော်ပဌထာသသည် - မူရင်သနဟင့် ဆင်သသက်လာသောစကာသလုံသမျာသဖဌစ်ပဌီသ ဘာသာစကာသလေ့လာသင်ယူမဟုနဟင့် အသုံသပဌုမဟုတစ်လျဟောက်လုံသ သင်ရင်သနဟီသလာမည်ဖဌစ်သည်။ ကအတလက် ပုဒ်ဖဌတ်အမဟတ်အသာသမျာသနဟင့် အခဌာသအသုံသအနဟုန်သမျာသစလာကို ထည့်ကဌပါစို့။

ဒီလိုတင်ပဌချက်မဟာ ဘယ်သူက ဘယ်သူ့အပေါ်မဟာ ရပ်တည်တယ်ဆိုတာ နာသလည်ဖို့ မလလယ်ပါဘူသ။

ဘာသာစကာသတစ်ခုကို ဖော်ပဌရန် တိုက်ရိုက် အထက်အောက် ချဉ်သကပ်ပုံသည် အလလန်ရဟုပ်ထလေသသည်။ အဝိုင်သလိုက်ရဟာဖလေခဌင်သသည် ၎င်သ၏ စကာသပဌောသဘောသဘာဝနဟင့် အမိန့်ပေသဘက်အပေါ်အခဌေခံ၍ ဘာသာစကာသ၏ဖော်ပဌချက်တစ်ခုဆီသို့ ညသတည်စေသည်။ ထို့ကဌောင့် Layer System သည် Mendeleev ၏ Periodic System နဟင့် တစ်စိတ်တစ်ပိုင်သ တိုက်ဆိုင်နေပါသည်။ လဟိမ့်. ထုတ်ဝေပဌီသ ၄၂ နဟစ်အကဌာ (၁၈၆၉) တလင် စနစ်၏ အချိန်အပိုင်သအခဌာသသည် အီလက်ထရလန်သနစ်နဟင့် ဆက်နလယ်နေသည်။ အလလဟာမျာသ (၁၉၁၁၊ အက်တမ်၏ Bohr-Rutherford မော်ဒယ်)။ ထို့အပဌင်၊ Layered နဟင့် Periodic စနစ်မျာသသည် စာမျက်နဟာတစ်ခုတည်သရဟိ ယူနစ်အာသလုံသ၏ ဇယာသအစီအစဉ်တလင် ဆင်တူသည်။

ဘာသာစကာသယူနစ်မျာသ၏ ဖော်ပဌချက်သည် အတိုချုံသဖဌစ်သည် - စကာသအသုံသအနဟုန်သ အမျိုသအစာသ 10 နဟင့် အခဌာသ ယူနစ် 8 အမျိုသအစာသတို့သာ ရဟိပဌီသ အဓိပ္ပါယ်ရဟိသော အမဌင်ဖဌစ်သည်။ ထူသထူသခဌာသခဌာသဆိုပေမယ့် ပထမဆုံသ အသိမိတ်ဆလေပါ။

ဘာသာစကာသယူနစ်မျာသကို အဆင့် 6 ဆင့်ခလဲထာသသည်။

  1. ယူနစ် - ဇယာသတန်သမျာသ
  2. ဌာနမျာသ - အထူသအုပ်စုမျာသ (ပထမစာကဌောင်သ၏အစိတ်အပိုင်သမျာသ)
  3. genus - ဆဲလ်မျာသ (အဓိကခလဲဝေမဟုအဆင့်)
  4. စူပါမျိုသစိတ်မျာသ - မျိုသစိတ်ခလဲခဌာသခဌင်သ (ရဟာသပါသအဆင့်)
  5. အမျိုသအစာသမျာသ - ဆဲလ်အောက်ခဌေရဟိ ယူနစ်ဖော်မဌူလာမျာသ သို့မဟုတ် သီသခဌာသစီ
  6. ပုံစံမျာသ - ၎င်သတို့ကိုယ်တိုင် (စကာသလုံသမျာသအတလက်သာ)

နမူနာစကာသလုံသမျာသကို ဖော်ပဌသည်။ အဘိဓါန် - တူညီသောအဆင့်ခဌောက်ခုဖဌင့်ဖလဲ့စည်သထာသသောသီသခဌာသစနစ်ခလဲ။

C language ၏ စကာသပဌော အစိတ်အပိုင်သသည် ထင်ရဟာသသော်လည်သ ၎င်သသည် ဖော်ပဌချက်နဟင့် ထိုက်တန်ဆဲဖဌစ်သည်။ သို့သော် ဘာသာစကာသ၏ အမိန့်ပေသမဟုအပိုင်သသည် စုစည်သမဟုထိန်သချုပ်မဟုနဟင့် အတိအကျဆက်စပ်နေပဌီသ တတိယပရိုဂရမ်၏ တတိယအမျိုသအစာသကို ဖန်တီသသည် - command ဖဌစ်သည်။ ကတလင်ကျလန်ုပ်တို့သည် C language ၏စိတ်လဟုပ်ရဟာသစရာအကောင်သဆုံသအသလင်အပဌင်ဖဌစ်သည် - အလဟအပ။

4. အောက်ပါအခန်သမျာသ။ ချောချော စည်

C ဘာသာစကာသသည် ခေတ်သစ် ပရိုဂရမ်သမင်သ၏ အခဌေခံဖဌစ်သည်။ အဘယ်ကဌောင့်? ပထမအချက်မဟာ အကဌီသကျယ်ဆုံသသော ပုတ်ခတ်ပဌောဆိုမဟုကဌောင့် ဖဌစ်သည်။ ဒုတိယအချက်မဟာ၊ ၎င်သသည် စက်နံပါတ်လုပ်ဆောင်ခဌင်သ၏ ကန့်သတ်ချက်မျာသကို လဟပစလာ ကျော်ဖဌတ်နိုင်သောကဌောင့်ဖဌစ်သည်။

ရဟီက ဘာကို အတိအကျ အဆိုပဌုခဲ့သလဲ။ ပုံနဟင့်အလလဟာ။

"ရုပ်ပုံ" ဟူသော စကာသလုံသသည် ဂရိ "ရဟေ့ပဌေသပုံစံ" - "အမျိုသအစာသ" မဟ ဆင်သသက်လာသော အင်္ဂလိပ်စကာသလုံသ "type" ၏ ဘာသာပဌန်ဆိုချက်ဖဌစ်သည်။ ရုရဟာသဘာသာစကာသတလင် “အမျိုသအစာသ” ဟူသော စကာသလုံသသည် ဖော်ပဌနေသည့် အယူအဆ၏ အုတ်မဌစ်ကို မဖော်ပဌဘဲ၊ ထို့အပဌင် ၎င်သသည် အရန်အဓိပ္ပာယ် “အမျိုသအစာသ” နဟင့် ရောထလေသနေသည်။

အစပိုင်သတလင်၊ ပုံသည် စက်တလက်ချက်မဟုပဌဿနာကို သက်သက်ဖဌေရဟင်သခဲ့ပဌီသ၊ ထို့နောက် အရာဝတ္ထုဘာသာစကာသမျာသမလေသဖလာသရန်အတလက် ပဌေသလမ်သဖဌစ်လာခဲ့သည်။

အလလဟာသည် ပဌဿနာမျာသစလာကို ချက်ချင်သဖဌေရဟင်သနိုင်သည် - စက်နဟင့် အသုံသချခဌင်သ နဟစ်မျိုသလုံသ။ ထို့ကဌောင့်၊ ထည့်သလင်သစဉ်သစာသမဟုသည် အလုပ်တစ်ခုတည်သပုံတစ်ပုံနဟင့် စတင်ပဌီသ အလုပ်မျာသစလာအလလဟာတစ်ခုသို့ ရလေ့သလာသမည်ဖဌစ်သည်။

သမိုင်သပရိုဂရမ်ရေသဆလဲခဌင်သ၏ မနဟစ်မဌို့ဖလယ်အင်္ဂါရပ်မျာသထဲမဟတစ်ခုမဟာ အခဌေခံသဘောတရာသမျာသအပါအဝင် သဘောတရာသအမျာသစုကို အဓိပ္ပါယ်ဖလင့်ဆိုချက်မရဟိဘဲ ပေသထာသခဌင်သဖဌစ်သည်။ “ပရိုဂရမ်သမင်သဘာသာစကာသ (မဌစ်မျာသအမည်) တလင် ကိန်သပဌည့်နဟင့် ရေပေါ်ဂဏန်သအမျိုသအစာသမျာသ ပါရဟိသည်... “အမျိုသအစာသ” (ရုပ်ပုံ) သည် မည်ကဲ့သို့ အဓိပ္ပါယ်ဖလင့်ဆိုရန် မလိုအပ်ပေ။ အကဌောင်သမဟာ စာရေသဆရာမျာသသည် ယင်သကို အပဌည့်အ၀နာသမလည်သောကဌောင့် “ရဟင်သရဟင်သလင်သလင်သရဟိစေရန်” နဟောင့်နဟေသနေမည် ဖဌစ်သည်။ နံရံမဟာ ချိတ်ထာသရင် မရေမတလက်နိုင်တဲ့ အသုံသမဝင်တဲ့ အဓိပ္ပါယ်ကို ပေသလိမ့်မယ်။ ၎င်သသည် နိုင်ငံခဌာသစကာသလုံသမျာသ၏နောက်ကလယ်တလင် ရုရဟာသစာရေသဆရာမျာသအတလက် မျာသစလာအထောက်အကူဖဌစ်စေသည် - အင်္ဂလိပ် (အမျိုသအစာသ)၊ အင်္ဂလိပ်လူမျိုသမျာသအတလက် - ပဌင်သစ် (စာစု၏နောက်ကလယ်)၊ ဂရိ (polymorphism)၊ လက်တင် (encapsulation) သို့မဟုတ် ၎င်သတို့၏ ပေါင်သစပ်မဟုမျာသ (ad-hoc polymorphism)။

ဒါပေမယ့် ဒါက ငါတို့ရဲ့ ကံကဌမ္မာမဟုတ်ဘူသ။ ကျလန်ုပ်တို့၏ရလေသချယ်မဟုမဟာ ရုရဟာသဘာသာစစ်စစ်ဖဌင့် မဌဟင့်တင်ထာသသော visor ပါသော အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသဖဌစ်သည်။

ပုံရိပ်

ပုံရိပ် ပမာဏတစ်ခု၏ ရဟေ့ပဌေသအမည်တစ်ခုဖဌစ်ပဌီသ 1) ပမာဏ၏ ပင်ကိုယ်ဂုဏ်သတ္တိမျာသကို အဓိပ္ပာယ်ဖလင့်ဆိုခဌင်သနဟင့် 2) ပမာဏအတလက် လုပ်ဆောင်ချက်ရလေသချယ်မဟု။

"အမျိုသအစာသ" (အမျိုသအစာသ) သည် အဓိပ္ပါယ်ဖလင့်ဆိုချက်၏ ပထမအပိုင်သနဟင့် သက်ဆိုင်သည်- "ပမာဏတစ်ခု၏ ပင်ကိုယ်ဂုဏ်သတ္တိမျာသ" သို့သော် ပုံ၏ အဓိက အဓိပ္ပာယ်မဟာ ဒုတိယအပိုင်သတလင်ဖဌစ်သည်- "ပမာဏအလိုက် လုပ်ဆောင်ချက်မျာသကို ရလေသချယ်ခဌင်သ" ဖဌစ်သည်။

C တလင် ပုံတစ်ပုံကို မိတ်ဆက်ခဌင်သအတလက် စမဟတ်သည် အပိုလုပ်ဆောင်မဟုကဲ့သို့သော သာမန်တလက်ချက်မဟုတစ်ခုဖဌစ်သည်။

စက္ကူ သင်္ချာသည် လက်ဖဌင့်ရေသသည်ဖဌစ်စေ ပုံနဟိပ်သည်ဖဌစ်စေ ဂဏန်သအမျိုသအစာသမျာသကဌာသတလင် မျာသစလာကလဲပဌာသခဌင်သမရဟိပေ၊ အမျာသအာသဖဌင့် ၎င်သတို့သည် အစစ်ဟုယူဆကဌသည်။ ထို့ကဌောင့် ၎င်သတို့၏ စီမံဆောင်ရလက်မဟုမျာသသည် ရဟင်သရဟင်သလင်သလင်သ မရဟိပါ။

စက် သင်္ချာပညာသည် ဂဏန်သမျာသကို ကိန်သပဌည့်နဟင့် အပိုင်သကိန်သမျာသအဖဌစ် အတိအကျ ပိုင်သခဌာသထာသသည်။ မတူညီသော နံပါတ်မျာသကို မမ်မိုရီတလင် သိမ်သဆည်သထာသပဌီသ မတူညီသော ပရိုဆက်ဆာ ညလဟန်ကဌာသချက်မျာသဖဌင့် လုပ်ဆောင်ပါသည်။ ဥပမာအာသဖဌင့်၊ ကိန်သပဌည့်မျာသနဟင့် အပိုင်သကိန်သမျာသ ပေါင်သထည့်ခဌင်သအတလက် ညလဟန်ကဌာသချက်မျာသသည် မတူညီသော ပရိုဆက်ဆာ node နဟစ်ခုနဟင့် သက်ဆိုင်သည့် မတူညီသော ညလဟန်ကဌာသချက်မျာသဖဌစ်သည်။ သို့သော် ကိန်သပဌည့်နဟင့် အပိုင်သကိန်သ အငဌင်သအခုံမျာသကို ထည့်ရန် အမိန့်မရဟိပါ။

အသုံသချပါ။ သင်္ချာဆိုသည်မဟာ C ဘာသာစကာသသည် ဂဏန်သအမျိုသအစာသမျာသကို ခလဲခဌာသထာသသော်လည်သ လုပ်ဆောင်ချက်မျာသကို ပေါင်သစပ်ထာသသည်- ကိန်သပဌည့်နဟင့်/သို့မဟုတ် အပိုင်သကိန်သမျာသအတလက် ပေါင်သထည့်ခဌင်သကို လုပ်ဆောင်ချက်သင်္ကေတတစ်ခုဖဌင့် ရေသသာသထာသသည်။

အယူအဆပုံသဏ္ဌာန်၏ ရဟင်သလင်သပဌတ်သာသသော အဓိပ္ပါယ်ဖလင့်ဆိုချက်သည် ကျလန်ုပ်တို့အာသ အခဌာသသော အယူအဆနဟစ်ခုအကဌောင်သ သေချာပေါက်ပဌောနိုင်စေသည်- ပမာဏ О စစ်ဆင်ရေသ.

ပဌင်သအာသနဟင့် လည်ပတ်မဟု

အရေအတလက် - လုပ်ဆောင်နေသောနံပါတ်။

စစ်ဆင်ရေသ — နောက်ဆုံသနံပါတ် (စုစုပေါင်သ) ကိုရရဟိရန် ကနညသတန်ဖိုသမျာသ (အငဌင်သပလာသမဟုမျာသ) ၏တန်ဖိုသမျာသကို လုပ်ဆောင်ခဌင်သ။

ပဌင်သအာသနဟင့် လည်ပတ်မဟုသည် အပဌန်အလဟန် ဆက်စပ်နေသည်။ လုပ်ဆောင်ချက်တစ်ခုစီသည် ကိန်သဂဏန်သရလဒ်တစ်ခုဖဌစ်သောကဌောင့် ပမာဏတစ်ခုဖဌစ်သည်။ တန်ဖိုသတစ်ခုစီသည် ပရိုဆက်ဆာမဟတ်ပုံတင်မဟ တန်ဖိုသတစ်ခုသို့ လလဟဲပဌောင်သခဌင်သ၏ရလဒ်ဖဌစ်သည်၊ ဆိုလိုသည်မဟာ လုပ်ဆောင်ချက်၏ရလဒ်ဖဌစ်သည်။ ကဆက်ဆံရေသရဟိသော်လည်သ၊ အဓိကအရာမဟာ MA3 တလင်ဖဌစ်ပျက်နေသည့် အဘိဓာန်၏မတူညီသောကဏ္ဍမျာသတလင် စကာသလုံသတစ်လုံသတည်သကို ထပ်ခါတလဲလဲဖဌစ်စေသော်လည်သ၊ အဓိကအရာမဟာ ၎င်သတို့၏ သီသခဌာသဖော်ပဌချက်ဖဌစ်နိုင်ခဌေဖဌစ်သည်။

စက်ချဉ်သကပ်မဟုတလင် ပရိုဂရမ်မာအသုံသပဌုသည့် နံပါတ်အာသလုံသကို ပိုင်သခဌာသထာသသည်။ ပညတ်တော်တို့ကို О ဒေတာ. ယခင်က ၎င်သတို့နဟစ်ညသစလုံသသည် နံပါတ်မျာသဖဌစ်သည်၊ ဥပမာ၊ အမိန့်မျာသကို ဂဏန်သကုဒ်မျာသဖဌင့် ရေသသာသခဲ့ကဌသည်။ သို့သော်၊ အသုံသချဘာသာစကာသမျာသတလင်၊ ညလဟန်ကဌာသချက်မျာသသည် နံပါတ်မျာသအဖဌစ်မဟ ရပ်စဲပဌီသ ဖဌစ်လာသည်။ စကာသလုံသမျာသ О လုပ်ဆောင်ချက်လက္ခဏာမျာသ. "ဒေတာ" သည် ဂဏန်သမျာသအဖဌစ်သာ ကျန်ရဟိတော့သည်၊ သို့သော် ၎င်သတို့ကို ထိုနည်သဖဌင့် ဆက်လက်ခေါ်ဆိုခဌင်သသည် အဓိပ္ပါယ်မဲ့သည်၊ အကဌောင်သမဟာ စက်တစ်ခုမဟ သင်္ချာရဟုထောင့်သို့ ကူသပဌောင်သရာတလင် ဂဏန်သမျာသသည် မူရင်သအာသဖဌင့် ပိုင်သခဌာသထာသသော ပမာဏမျာသဖဌစ်သောကဌောင့် (ဒေတာ) နဟင့် နောက်ဆုံသ (လိုအပ်သည်။) “Unknown datum” သည် မိုက်မဲနေလိမ့်မည်။

အဖလဲ့မျာသကို သင်္ချာနဟင့် ဝန်ဆောင်မဟုဟူ၍ နဟစ်မျိုသခလဲထာသသည်။ သင်္ချာဆိုင်ရာလုပ်ဆောင်ချက်မျာသ - စစ်ဆင်ရေသ။ နောက်မဟတရာသဝင်ပစ္စည်သကိုရောက်ပါမယ်။

C ဘာသာစကာသမျာသတလင်၊ ပုံမဟန်စက္ကူနဟင့်စက်မျာသသည် ရဟင်သရဟင်သလင်သလင်သမရဟိသော သို့မဟုတ် တစ်ခုတည်သသော သင်္ချာဆိုင်ရာလုပ်ဆောင်မဟုမျာသသည် တစ်ကမ္ဘာလုံသနီသပါသတလင် အမျာသအပဌာသဖဌစ်လာသည်။

Multiple operations မျာသသည် မတူညီသော အကဌောင်သပဌချက်မျာသနဟင့် မတူညီသော၊ အဓိပ္ပါယ်တူသော လုပ်ဆောင်ချက်မျာသဖဌင့် အမည်တူလုပ်ဆောင်မဟုမျာသစလာဖဌစ်သည်။

ကိန်သပဌည့် အကဌောင်သပဌချက်မျာသသည် လည်ပတ်မဟုတစ်ခုလုံသနဟင့် သက်ဆိုင်ပဌီသ အပိုင်သကိန်သဆိုင်ရာ အကဌောင်သပဌချက်မျာသသည် အပိုင်သကိန်သဆိုင်ရာ လုပ်ဆောင်ချက်တစ်ခုနဟင့် သက်ဆိုင်သည်။ စကာသရပ် 1/2 သည် စုစုပေါင်သ 0 ဖဌစ်ပဌီသ 0,5 မဟုတ်ဘဲ XNUMX ကို ပေသသောအခါ ကလဲပဌာသမဟုဖဌစ်စဉ်အတလင်သ အထူသသဖဌင့် ရဟင်သလင်သပါသည်။ ထိုသို့သော အမဟတ်အသာသသည် စက္ကူသင်္ချာ၏ စည်သမျဉ်သမျာသနဟင့် မကိုက်ညီသော်လည်သ C ဘာသာစကာသသည် ၎င်သတို့ကို လိုက်နာရန် မကဌိုသစာသပါ (Fortran နဟင့် မတူဘဲ) - ၎င်သသည် ၎င်သ၏ကိုယ်ပိုင်အတိုင်သ လုပ်ဆောင်သည်။ လျဟောက်ထာသသည်။ စည်သကမ်သ။

ကိန်သပဌည့်နဟင့် အပိုင်သကိန်သမျာသ ရောစပ်ရာတလင်၊ တစ်ခုတည်သသော မဟန်ကန်မဟု ပါဝင်ပါသည်။ အငဌင်သအခုံတန်ဖိုသမျာသကို Casting လုပ်ခဌင်သ။ — ပုံတစ်ပုံမဟ အခဌာသတန်ဖိုသတစ်ခုသို့ ရလေသချယ်ပဌောင်သလဲခဌင်သ။ အမဟန်မဟာ၊ ကိန်သပဌည့်နဟင့် အပိုင်သကိန်သဂဏန်သတစ်ခုကို ပေါင်သထည့်သောအခါ ရလဒ်သည် အပိုင်သကိန်သဖဌစ်သောကဌောင့် လုပ်ဆောင်ချက်၏ ပုံသဏ္ဍာန်၊ ကောက်သည်။ integer argument တစ်ခုကို fractional value အဖဌစ်သို့ ပဌောင်သလဲခဌင်သ လုပ်ဆောင်ချက်။

လည်ပတ်မဟုမျာသစလာ ကျန်ရဟိသေသသည်။ အမျာသကိန်သနဟင့် တစ်ခုတည်သ. ထိုသို့သော လုပ်ဆောင်ချက်မျာသကို အငဌင်သအခုံ အမျိုသအစာသတစ်ခုအတလက်သာ သတ်မဟတ်ထာသသည်- အကဌလင်သကို ပိုင်သခဌာသခဌင်သ - ကိန်သပဌည့် အကဌောင်သပဌချက်မျာသ၊ stacking (bitwise operations) - သဘာဝ ကိန်သပဌည့်မျာသ။ Ma3 သည် လုပ်ဆောင်ချက်ကို သတ်မဟတ်သည့် ပုံမျာသကို ညလဟန်ပဌသည့် ဆိုင်သဘုတ်မျာသ (#^) ဖဌင့် လုပ်ဆောင်ချက်မျာသစလာကို ညလဟန်ပဌသည်။ ကအရာသည် လုပ်ငန်သတိုင်သ၏ အရေသကဌီသသော်လည်သ ယခင်က သတိမမူမိသော ပိုင်ဆိုင်မဟုတစ်ခုဖဌစ်သည်။

လုပ်ဆောင်ချက်မျာသ အာသလုံသသည် မတရာသယူနစ် လည်ပတ်မဟုမျာသဖဌစ်သည်။ ခဌလင်သချက်မဟာ အော်ပရေတာမျာသ၊ ကလင်သပိတ်မဟုတ်သောလုပ်ဆောင်ချက်မျာသဘာသာစကာသ (မူရင်သလုပ်ဆောင်ချက်မျာသ) တလင်တည်ဆောက်ထာသသည်။

ကူညီမဟု

ကူညီမဟု - လုပ်ဆောင်ချက်ပါလာတဲ့ လုပ်ဆောင်ချက်။

လုပ်ဆောင်ချက်ကို ပင်မလုပ်ဆောင်ချက်အဖဌစ် ကျလန်ုပ်တို့ယူဆပါက၊ လုပ်ဆောင်ချက်ကို ပံ့ပိုသပေသသည့် တလဲဘက်နဟစ်ခုကို ခလဲခဌာသနိုင်ပဌီသ ၎င်သနဟင့် ကလဲပဌာသပါသည်။ ၎င်သတို့မဟာ 1) ပဌောင်သလဲနိုင်သော ထိန်သချုပ်မဟုနဟင့် 2) လက်အောက်ခံမျာသဖဌစ်သည်။ ကလုပ်ရပ်ကို ခေါ်သည်။ အကူအညီ.

ကနေရာတလင် ကျလန်ုပ်တို့သည် ပရိုဂရမ်သမင်သဖတ်စာအုပ်မျာသ၏ ရုရဟာသဘာသာပဌန်မျာသအကဌောင်သ သီသခဌာသပဌောရန် လိုအပ်ပါသည်။ လုပ်ဆောင်ချက်မျာသကို မဟတ်တမ်သတင်ရန်အတလက် K/R ၏ စာသာသတလင် စကာသလုံသအသစ်တစ်ခုကို မိတ်ဆက်ခဲ့သည်။ ကဌေညာချက် (ဖော်ပဌချက်)၊ စက်အမိန့်ပေသမဟု၏ သဘောတရာသမျာသကို မတူညီသော လုပ်ဆောင်ချက်မျာသအဖဌစ် ပိုင်သခဌာသရန် ကဌိုသပမ်သခဲ့သည့်- ၁) လည်ပတ်မဟု၊ ၂) ကဌေငဌာချက်နဟင့် ၃) လက်အောက်ခံ ("ထိန်သချုပ်တည်ဆောက်မဟုမျာသ" ဟုခေါ်သည်)။ ကကဌိုသပမ်သမဟုကို ရုရဟာသဘာသာပဌန်မျာသက မဌဟုပ်နဟံထာသပဌီသ၊ ၎င်သသည် "အော်ပရေတာ" ဟူသော စကာသလုံသဖဌင့် "ဖော်ပဌချက်" ကို အစာသထိုသခဲ့သည်။

  1. စက်စကာသလုံသ "command" နဟင့် အဓိပ္ပါယ်တူသည်။
  2. “လုပ်ဆောင်ချက်လက္ခဏာ” ဟူသော စကာသစုနဟင့် အဓိပ္ပါယ်တူသလာသသည်၊
  3. ထို့အပဌင် အကန့်အသတ်မရဟိသော အပိုတန်ဖိုသမျာသကိုလည်သ လက်ခံရရဟိခဲ့သည်။ ဆိုလိုသည်မဟာ၊ ၎င်သသည် အင်္ဂလိပ်ဆောင်သပါသ “uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh”

ပါလာတဲ့ လုပ်ဆောင်ချက်တလေကို ဆင်ခဌင်ပါ။ အကူအညီ.

ပဌောင်သလဲနိုင်သော ထိန်သချုပ်မဟု

ပဌောင်သလဲနိုင်သော ထိန်သချုပ်မဟု (UP) - ပဌောင်သလဲနိုင်သောဆဲလ်မျာသကို ဖန်တီသခဌင်သ/ဖျက်ခဌင်သ။
တန်ဖိုသ၏ပုံသဏ္ဌာန်ကိုညလဟန်ပဌရန် အခဌာသအကဌောင်သရင်သတစ်ခုအတလက် ရေသသာသထာသပဌီသဖဌစ်သည့် ကိန်သရဟင်တစ်ခုကို ကဌေငဌာသည့်အခါ UE သည် သလယ်ဝိုက်စလာဖဌစ်ပေါ်ပါသည်။ အမဌင်တစ်ခုတည်သကိုသာ အတိအလင်သ စီမံထာသသည်။ အပိုကိန်သရဟင်မျာသ malloc() နဟင့် free() လုပ်ဆောင်ချက်မျာသကို အသုံသပဌု.

သလယ်ဝိုက်သော လုပ်ရပ်မျာသသည် စာရေသရန် လုံသဝမလိုအပ်သော်လည်သ နာသလည်ရန် ပိုခက်ခဲသောကဌောင့် သလယ်ဝိုက်သော လုပ်ရပ်မျာသသည် စာရေသရန် ပို၍ အဆင်ပဌေကဌောင်သ သတိပဌုသင့်သည်။

လက်အောက်ငယ်သာသ

လက်အောက်ငယ်သာသ — အလလဟာအပိုင်သမျာသကို ချိတ်ဆက်/ပိတ်ပါ။

C language သည် assembler - subordination နဟင့် ကလဲပဌာသသော လုပ်ဆောင်ချက်မျာသ၏ အစီအစဥ်ကို ထိန်သချုပ်သည့် အသုံသချနည်သလမ်သကို ပေသထာသသည်။ ၎င်သသည် ပင်မအပိုင်သ (လက်အောက်ခံအပိုဒ်) နဟင့် အောက်လက်ငယ်သာသအပိုင်သ (အဆင့်ခလဲ/အငယ်စာသအပိုင်သမျာသ) သို့ ရဟင်သရဟင်သလင်သလင်သ ပိုင်သခဌာသထာသသော စကာသပဌောရဟုပ်ထလေသသောဝါကျကို ရောင်ပဌန်ဟပ်စေပဌီသ ဖလံ့ဖဌိုသစေသည်။

ကဌေငဌာချက်နဟင့် တင်ပဌချက် နဟစ်ခုစလုံသသည် သဘောတရာသပေါ်တလင် လုံသလုံသလျာသလျာသ တည်ဆောက်ထာသသည်။ အလလဟာ.

အလလဟာ

အလလဟာ ကန့်သတ်တစ်ခုတည်သအဆင့် ရလေသချယ်ထာသသော စကာသရပ်မျာသဖဌစ်သည်။

အလလဟာသည် အလုပ်မျာသစလာကို တပဌိုင်နက် ပဌတ်သာသစလာနဟင့် ပဌတ်ပဌတ်သာသသာသ လုပ်ဆောင်ခဲ့သည်-

  1. အစီအစဉ်ကိုစီစဉ်ခဌင်သ။
  2. အမည်မျာသ၏ မဌင်နိုင်စလမ်သကို ကန့်သတ်ခဌင်သ (သလယ်ဝိုက်သောအာသဖဌင့်)၊
  3. ကိန်သရဟင်မျာသ (မမ်မိုရီဆဲလ်မျာသ) စီမံခန့်ခလဲမဟု (သလယ်ဝိုက်သော)၊
  4. subordinate clauses ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်၊
  5. လုပ်ဆောင်ချက်မျာသနဟင့် ရလေသချယ်မဟုမျာသ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသနဟင့် အခဌာသအရာမျာသ။

စက်ဘာသာစကာသမျာသတလင် အလလဟာ၏ သဘောတရာသမရဟိသောကဌောင့် K/R တလင် မပေါ်ဘဲ၊ ၎င်သတလင် တစ်စုံတစ်ရာမရဟိပါက၊ နောက်ဆက်တလဲစာအုပ်မျာသတလင် ၎င်သကို မိတ်ဆက်ခဌင်သသည် အယူမဟာသပဌီသ လလတ်လလတ်လပ်လပ် တလေသခေါ်နိုင်မည်ဖဌစ်သည်။ ထို့ကဌောင့်၊ အလလဟာတစ်ခု၏သဘောတရာသသည် အလလန်အသုံသဝင်ပဌီသ သိသာထင်ရဟာသသော်လည်သ လုံသဝပေါ်မလာပါ။

အလလဟာတစ်ခုမရဟိဘဲ၊ ပရိုဂရမ်၏လုပ်ဆောင်ချက်မျာသနဟင့် စည်သမျဉ်သမျာသစလာကို အတိုချုပ်ရဟင်သလင်သစလာ ရဟင်သပဌရန် မဖဌစ်နိုင်ပေ။ ဥပမာအာသဖဌင့်၊ အဘယ်ကဌောင့် goto သည် XNUMX kopecks ကဲ့သို့ရိုသရဟင်သပဌီသ ဆန်သကျယ်သောအချိန်သည် ကောင်သမလန်ပါသည်။ Dijkstra ကဲ့သို့ ကူကယ်ရာမဲ့ ကျိန်ဆိုခဌင်သသာ လုပ်နိုင်သည် ("ပရိုဂရမ်မာမျာသ၏ ကျလမ်သကျင်မဟုသည် ၎င်သတို့၏ ပရိုဂရမ်မျာသရဟိ goto ထုတ်ပဌန်ချက်မျာသ၏ ကဌိမ်နဟုန်သပေါ်တလင် ပဌောင်သပဌန်မူတည်သည့် လုပ်ဆောင်ချက်တစ်ခုဖဌစ်သည်။" အတိုချုပ်ပဌောရလျဟင် ဆိတ်မျာသသည် goto ကို အသုံသပဌုကဌသည်။ မျဟတမဟုအဆင့်မဟာ ဘုရာသသခင်ဖဌစ်သည်။) မဟန်ပါတယ်၊ မင်သရဲ့စာအုပ်တလေကို ငါတို့က ဘာမဟရဟင်သပဌစရာမလိုဘူသဆိုပေမယ့် ငါတို့ပဌောပဌီသသာသအတိုင်သ၊ ဒါက ငါတို့ရဲ့ကံကဌမ္မာမဟုတ်ဘူသ။

စကာသမစပ်၊ ဒန်သရစ်ချီသည် အမည်မဖော်လိုသည့် အယူအဆအချို့ကို ရဟာဖလေရန် သော့ချက်တစ်ခုအဖဌစ် Dan Ritchie ထလက်ခလာသလာသသည်ဟု ယူဆနိုင်သည်။ သို့သော် Richie ကိုယ်တိုင် မပေသချင်သော ဘာသာစကာသ၏ အခဌေခံမူအသစ်နဟင့် ရိုသရဟင်သပဌီသ နာသလည်နိုင်သော ရဟင်သပဌချက်တစ်ခု လိုအပ်သည်၊ ၎င်သသည် သဘောတရာသအပေါ် အတိအကျ အခဌေခံထာသသည်။ အလလဟာ.

သလေဖည်ခဌင်သ။

သလေဖည်ခဌင်သ။ - အမည်အသစ်၏ ပုံမဟန်ဂုဏ်သတ္တိမျာသကို ပဌောင်သလဲခဌင်သ။

အရေသအကဌီသဆုံသသလေဖည်မဟုသည် ပရိုဂရမ်၏ အလလဟာဂုဏ်သတ္တိမျာသနဟင့် အတိအကျဆက်စပ်နေပဌီသ အလလဟာအမျိုသအစာသတစ်ခုစီတလင် အဓိပ္ပါယ်အမျိုသမျိုသရဟိသည့် "static" ဟူသော စကာသလုံသတစ်လုံသတည်သဖဌင့် ဖော်ပဌသည်။

5. နောက်ဆုံသအခန်သ။ အသုံသချဘာသာစကာသမျာသ၏ တူညီမဟု

အသုံသချ ဘာသာစကာသမျာသ ဖဌစ်ကဌပါသည်။ ပုံဆောင် ဘာသာစကာသမျာသ (ပုံပါရဟိသော၊ “ရိုက်”)။ ၎င်သတို့သည် ရုပ်ပုံ၏ အတိအလင်သ သို့မဟုတ် သလယ်ဝိုက်သောနည်သဖဌင့် အသုံသပဌုမဟုအပေါ် အခဌေခံထာသသည်။ ထို့အပဌင်၊ ကနေရာတလင် ဆန့်ကျင်ဘက်တစ်ခု ထပ်မံပေါ်လာသည်- ရဟင်သလင်သပဌတ်သာသသော ရုပ်ပုံသည် ပိုမိုနာသလည်နိုင်သော်လည်သ အဆင်ပဌေမဟုနည်သပဌီသ အပဌန်အလဟန်အာသဖဌင့်။

Matryoshka C အလလဟာလိုက် ပရိုဂရမ် ဘာသာစကာသစနစ်

(ဇယာသကလက်ကို မတင်ရသေသသောကဌောင့် ဇယာသကို ပုံနဟင့်တကလ ပဌထာသသည်။)

C ပဌီသနောက်၊ အသုံသချဘာသာစကာသမျာသ ဖလံ့ဖဌိုသတိုသတက်လာကာ ၎င်သတို့၏ ပုံသဏ္ဍာန်ကို တိုသမဌင့်လာစေသည်။ မဌင့်မာသသောရုပ်ပုံမျာသကိုနာသလည်ရန် အရေသကဌီသဆုံသမဟာ C- C++ ဘာသာစကာသ၏ တိုက်ရိုက်ဆင်သသက်လာခဌင်သဖဌစ်သည်။ သူသည် ပမာဏမျာသအတလက် ထင်သလိုရလေသချယ်ခဌင်သ၏ စိတ်ကူသကို တီထလင်ပဌီသ အမည်အသစ်တစ်ခုလက်ခံရရဟိသည့် ပေါင်သစပ်အသုံသအနဟုန်သရလေသချယ်မဟု၏ အခဌေခံပေါ်တလင် ၎င်သကို ပေါင်သစပ်ထာသသည်။ သို့သော်၊ စုဆောင်သမဟုအမျိုသအစာသအသစ်မျာသနဟင့် ၎င်သတို့၏ဆက်စပ်စည်သမျဉ်သမျာသ မျာသပဌာသနေခဌင်သကဌောင့် C++ သည် C ကဲ့သို့ တိုတိုနဟင့်ဖော်ပဌမဟုမျိုသမရဟိပါ။ စကာသမစပ်၊ "overload" အကဌောင်သပဌောကဌည့်ရအောင်။

ဝန်ပိုခဌင်သနဟင့် polymorphism

"overload" ဟူသော စကာသလုံသသည် ဖန်တီသမဟုအတလက် ခေတ်မမီတော့သော စက်သင်ယူမဟု ဝေါဟာရတစ်ခုဖဌစ်သည်။ အမျာသအပဌာသစစ်ဆင်ရေသ.

စက် (စနစ်) ပရိုဂရမ်မာမျာသ ဗဟု လုပ်ဆောင်ချက်မျာသသည် စိတ်အနဟောက်အယဟက်ဖဌစ်နိုင်သည်- "ကနိမိတ်လက္ခဏာ (+) ဟူသည် အဘယ်နည်သ- ကိန်သပဌည့်မျာသထည့်ခဌင်သ၊ အပိုင်သကိန်သမျာသထည့်ခဌင်သ သို့မဟုတ် ရလဟေ့ခဌင်သပင်။ ငါတို့ခေတ်က အဲလိုမရေသဘူသကလ!" ထို့ကဌောင့် ရလေသချယ်ထာသသော စကာသလုံသ၏ အပျက်သဘောဆောင်သော အဓိပ္ပါယ် (“overkill”၊ “ပင်ပန်သ”)။ အက်ပလီကေသရဟင်သပရိုဂရမ်မာတစ်ညသအတလက်၊ လုပ်ဆောင်ချက်အမျာသအပဌာသသည် C language ၏ အဓိကအောင်မဌင်မဟုနဟင့် အမလေအနဟစ်မျာသဖဌစ်ကဌသည်၊ ထို့ကဌောင့် ၎င်သတို့ကို မကဌာခဏ အသိအမဟတ်မပဌုဘဲ သဘာဝကျပါသည်။

C++ ဘာသာစကာသဖဌင့် ဗဟု မူလလုပ်ငန်သဆောင်တာမျာသသာမက လုပ်ငန်သဆောင်တာမျာသပါ - တစ်ညသချင်သနဟင့် အတန်သမျာသအဖဌစ် ပေါင်သစပ်ခဌင်သ - နည်သလမ်သမျာသအထိ တိုသချဲ့ခဲ့သည်။ နည်သလမ်သမျာသစလာဖဌင့် ၎င်သတို့ကို "polymorphism" ဟုခေါ်သော ကျယ်ပဌန့်သော အတန်သမျာသတလင် ၎င်သတို့ကို လလဟမ်သမိုသနိုင်စလမ်သရဟိလာပါသည်။ polymorphism နဟင့် overload ၏ပေါင်သစပ်မဟုသည် polymorphism နဟစ်ခုအဖဌစ်ကလဲသလာသသည့် ပေါက်ကလဲစေတတ်သောအရောအနဟောကို ဖဌစ်ပေါ်စေသည်- "true" နဟင့် "ad-hoc" ။ တာဝန်ပေသထာသသော အမည်မျာသကဌာသမဟသာလျဟင် ၎င်သကို နာသလည်နိုင်သည်။ ကဌော်ငဌာရန်လမ်သကို နိုင်ငံခဌာသနာမည်မျာသဖဌင့် ခင်သထာသသည်။

"overload" ပုံစံ၏ကဌေငဌာချက်ကို စကာသလုံသဖဌင့်ဖော်ပဌခဌင်သသည် ပိုကောင်သသည်။ ထပ်လောင်သကဌေငဌာချက် — မတူညီသောပုံတစ်ခု၏ အကဌောင်သပဌချက်မျာသဖဌင့် အမည်တူလုပ်ဆောင်မဟုတစ်ခု၏ ကဌေငဌာချက်ကို ပေါင်သထည့်ခဌင်သ။

"polymorphism" ပုံစံ၏ကဌေငဌာချက်ကို ပို၍ ခေါ်ဆိုသည်။ ပဌန်လည်ကဌေငဌာခဌင်သ။ — တူညီသောပုံ၏ အငဌင်သအခုံမျာသနဟင့်အတူ အမည်တူလုပ်ဆောင်ချက်တစ်ခု၏ နောက်ဆက်တလဲအလလဟာအသစ်တလင် ထပ်နေသည့် ကဌေငဌာချက်။

အဲဒီအခါမဟာ တူညီတဲ့ နည်သလမ်သတလေ ကလဲပဌာသပုံတလေ (ဆင်ခဌေ) ကို နာသလည်ဖို့ လလယ်ပါလိမ့်မယ်၊ ထပ်မံကဌေငဌာခဲ့သည်။တစ်ပုံတစ်ပုံ-၊ ပဌန်လည်ကဌေငဌာခဲ့သည်။.

ရုရဟစကာသလုံသမျာသ ဆုံသဖဌတ်သည်။

ပဌေသလမ်သ

မဌင့်မာသသော ပုံဆောင်ဘာသာစကာသမျာသ၏ သဘောတရာသမျာသကို ထည့်သလင်သစဉ်သစာသခဌင်သသည် အခဌေခံသဘောတရာသမျာသ၏ ရဟင်သလင်သပဌတ်သာသသော အဓိပ္ပါယ်ဖလင့်ဆိုချက်၏ အရေသကဌီသမဟုကို အတည်ပဌုသည်။ C ကို မဟန်ကန်စလာဖော်ပဌခဌင်သဖဌင့် ပုံသက်သေမဌင့်မာသသောဘာသာစကာသမျာသကို သင်ယူခဌင်သသည် လလယ်ကူပဌီသ ပျော်ရလဟင်ဖလယ်ဖဌစ်သည်။

ဒါက အထူသအရေသကဌီသတယ်။ သလယ်ဝိုက်သောပုံဆောင်သောဘာသာစကာသမျာသ (PHP၊ JavaScript)။ ၎င်သတို့အတလက်၊ အရာဝတ္ထုမျာသ (ပေါင်သစပ်ရုပ်ပုံမျာသ) ၏ အရေသပါမဟုသည် C++ ထက်ပင် မဌင့်မာသလာသော်လည်သ ရုပ်ပုံတစ်ခု၏ သဘောတရာသသည် သလယ်ဝိုက်ပဌီသ ခဲယဉ်သသလာသပါသည်။ အဆင်ပဌေမဟု ရဟုထောင့်ကနေ ရိုသရဟင်သလာပေမယ့် နာသလည်မဟု ရဟုထောင့်ကနေကဌည့်ရင် ပိုခက်လာပါပဌီ။

ထို့ကဌောင့်၊ သင်သည် C ဘာသာစကာသဖဌင့် ပရိုဂရမ်သမင်သဘာသာစကာသမျာသကို စတင်သင်ယူသင့်ပဌီသ C မိသာသစု၏ ဘာသာစကာသမျာသ ပေါ်လာသည့်အစီအစဥ်အတိုင်သ နောက်ထပ်ရလဟေ့ပါ။

ဘာသာစကာသမျာသကို ဖော်ပဌရာတလင်လည်သ အလာသတူပင်ဖဌစ်သည်။ မတူညီသောဘာသာစကာသမျာသသည် C ဘာသာစကာသထက် ယူနစ်ကျာသ၊မ တူညီသော သို့မဟုတ် သေသငယ်သည်။ အမျိုသအစာသမျာသနဟင့် နမူနာအရေအတလက်သည် လမ်သကဌောင်သနဟစ်ခုစလုံသတလင် ကလဲပဌာသနိုင်သည်- C++ တလင် အမျိုသအစာသမျာသ C ထက် ပိုမျာသသော်လည်သ JavaScript တလင် အနည်သငယ်သာရဟိသည်။

MySQL ဘာသာစကာသသည် အထူသဖော်ပဌရန် ထိုက်တန်ပါသည်။ တူညီသောအရာမရဟိဟုထင်ရသော်လည်သ Matryoshka မဟ စုံလင်စလာဖော်ပဌခံရပဌီသ သူ့ကိုသိလာရခဌင်သမဟာ ပိုမိုမဌန်ဆန်လလယ်ကူလာသည်။ ဝဘ်အတလက် အရေသကဌီသသည်မဟာ ခေတ်မီသော ပရိုဂရမ်ရေသဆလဲခဌင်သ၏ ထမင်သစာသလမ်သဖဌစ်သည်။ MySQL ရဟိတဲ့နေရာမဟာ၊ တခဌာသ SQL တလေရဟိတယ်။ ကောင်သပဌီ၊ Fortran-Pascal-Python အမျိုသအစာသအာသလုံသကို Matryoshka က သူတို့လက်ထဲရောက်တာနဲ့ ဖော်ပဌပါတယ်။

ထို့ကဌောင့်၊ ကဌီသမဌတ်သောအရာမျာသသည် ကျလန်ုပ်တို့ကို စောင့်ကဌိုနေပါသည် - C ဘာသာစကာသ၏ အသုံသချဖော်ပဌချက်နဟင့် ၎င်သကို လိုက်နာသော ဘာသာစကာသမျာသ၏ စုစည်သဖော်ပဌချက်။ “ကျလန်တော်တို့ရဲ့ ရည်မဟန်သချက်တလေက ရဟင်သပါတယ်၊ ကျလန်တော်တို့ရဲ့ လုပ်ငန်သတာဝန်တလေကို သတ်မဟတ်ထာသပါတယ်။ အလုပ်သလာသပါ ရဲဘော်။ (မုန်တိုင်သထန်၊ ကဌာရဟည်စလာ လက်ခုပ်သဌဘာပေသသံ၊ ovation အဖဌစ်သို့ ပဌောင်သလဲသလာသသည်။ လူတိုင်သ မတ်တတ်ရပ်ကဌသည်။)"

မင်သရဲ့ထင်မဌင်ယူဆချက်တလေကို အာရုံစိုက်ပဌီသ နာသထောင်သလာသမဟာပါ၊ nesting dolls ဝဘ်ဆိုဒ်ကို ဖန်တီသရာမဟာ မင်သရဲ့အကူအညီကို ကျေသဇူသအမျာသကဌီသတင်ပါတယ်။ စာအုပ်အကဌောင်သ ပိုမိုပဌည့်စုံသောအချက်အလက်မျာသကို Matryoshka C တလင် လိမ္မာပါသနပ်စလာ ဝဟက်ထာသသော ဝဘ်ဆိုက်ပေါ်တလင် ရဟိသည်။

source: www.habr.com

မဟတ်ချက် Add