Нөхцөлт илэрхийлэл

Нөхцөлт илэрхийлэл тусдаа үйлдлийн багц. Ийм үйлдлүүд bool төрлийн логик утгыг буцаадаг. Нөхцөлт илэрхийлэл үнэн бол true, илэрхийлэл худал бол false утгыг буцаана. Ийм үйлдлүүдэд харьцуулах, логик үйлдлүүд хамаарагдана.

Харьцуулалтын үйлдэл

Харьцуулалтын үйлдэл хоёр операндийг харьцуулаад илэрхийлэл үнэн бол true, эсрэг тохиолдолд false утгыг буцаадаг.

  • == Тэнцүү. Хоёр операндийг тэнцүү эсэхийг шалгана. Операндууд тэнцүү бол true, тэнцүү биш бол false утгыг буцаана. Жишээ.
    int a = 10;
    int b = 4;
    bool c = a == b; // false
  • != Тэнцүү биш. Хоёр операндийг харьцуулаад тэнцүү биш бол true, тэнцүү бол false -ийг буцаана. Жишээ.
    int a = 10;
    int b = 4;
    bool c = a != b;    // true
    bool d = a!=10;     // false
  • < Бага. Нэгдүгээр операнд хоёрдугаар операндаас бага бол true, нэгдүгээр операнд хоёрдугаар операндаас их бол false утгыг өгнө. Жишээ.
    int a = 10;
    int b = 4;
    bool c = a < b; // false   
  • > Их. Нэгдүгээр операнд хоёрдугаар операндаас их бол true, нэгдүгээр операнд хоёрдугаар операндаас бага бол false утгыг өгнө. Жишээ.
    int a = 10;
    int b = 4;
    bool c = a > b;     // true
    bool d = a > 25;    // false
  • <= Бага эсхүл тэнцүү. Хоёр операндыг харьцуулаад нэгдүгээр операнд хоёрдугаар операндаас бага эсхүл тэнцүү бол true, эсрэг тохиолдолд false утгыг өгнө. Жишээ.
    int a = 10;
    int b = 4;
    bool c = a <= b;     // false
    bool d = a <= 25;    // true
  • >= Их эсхүл тэнцүү. Хоёр операндыг харьцуулаад нэгдүгээр операнд хоёрдугаар операндаас их эсхүл тэнцүү бол true, эсрэг тохиолдолд false утгыг өгнө. Жишээ.
    int a = 10;
    int b = 4;
    bool c = a >= b;     // true
    bool d = a >= 25;    // false

<, > <=, >= үйлдлүүд == , != үйлдлээс дээгүүр зэрэглэлтэй байдаг.

Логик үйлдлүүд

C#bool төрлийн утгыг буцаах логикийн операторууд бий. Үйлдлүүд операндоор bool төрлийн утгыг авдаг. Хэдэн харьцуулах үйлдлүүдийг нэгтгэсэн харьцаанд голдуу ашигладаг.

  • | Логик нийлбэр буюу логик БУЮУ /OR/. Үйлдэлд оролцогчийн аль нэг нь true утгыг буцааж байвал true утгыг өгнө. Жишээ.
    bool x1 = (5 > 6) | (4 < 6); // 5 > 6 - false, 4 < 6 - true, тул true буцаана
    bool x2 = (5 > 6) | (4 > 6); // 5 > 6 - false, 4 > 6 - false, тул false буцаана
  • & Логик үржвэр буюу логик БА /AND/ үйлдэл. Хоёр операнд хоёулаа true байвал true -г буцаана. Жишээ.
    bool x1 = (5 > 6) & (4 < 6); // 5 > 6 - false, 4 < 6 - true, тул false буцаана
    bool x2 = (5 < 6) & (4 < 6); // 5 < 6 - true, 4 < 6 - true, тул true буцаана.
  • || Логик нийлбэрийн үйлдэл. Үйлдэлд оролцогчийн аль нэг нь true утгыг буцааж байвал true утгыг өгнө. Жишээ.
    bool x1 = (5 > 6) || (4 < 6); // 5 > 6 - false, 4 < 6 - true, тул true буцаана
    bool x2 = (5 > 6) || (4 > 6); // 5 > 6 - false, 4 > 6 - false, тул false буцаана
  • && Логик үржвэрийн үйлдэл. Хоёр оролцогч хоёулаа true бол true утгыг өгнө.
    bool x1 = (5 > 6) && (4 < 6); // 5 > 6 - false, 4 < 6 - true, тул false утыг өгнө
    bool x2 = (5 < 6) && (4 < 6); // 5 < 6 - true, 4 < 6 - true, тул true утгыг өгнө
  • ! Логик үгүйсгэл. Үйлдэл нэг операнд дээр хийгдэх бөгөөд операнд false байвал true -г харин true бол false -ийг буцаана. Жишээ.
    bool a = true;
    bool b = !a;    // false
  • ^ Тусгай OR буюу XOR үйлдэл. Үйлдлийн нэг эсхүл хоёрдугаар операнд true (гэхдээ хоёулаа нэгэн зэрэг биш) байвал true утгыг өгнө. Бусад тохиолдолд false -ийг буцаана.
    bool x5 = (5 > 6) ^ (4 < 6); // 5 > 6 - false, 4 < 6 - true, тул true буцаана
    bool x6 = (50 > 6) ^ (4 / 2 < 3); // 50 > 6 - true, 4/2 < 3 - true, тул false буцаана

Логик үйлдлүүдэд | ба || (бас & ба &&) хосууд төстэй үйлдлийг гүйцэтгэх хэдий ч ижил биш. Ялгааг жишээн дээр харцгаая.
z=x|y; илэрхийлэлд x, y -ийн утгуудыг хоёуланг нь тооцдог. Өөрөөр хэлбэл үйлдэлд оролцогч илэрхийллүүдийн утгыг бүгдийг тооцно гэсэн үг. Харин
z=x||y; илэрхийлэлд эхлээд x -ийн утгыг тооцоод хэрвээ утга true байвал y -ийн утгыг тооцохгүйгээр true -г буцаана. Учир нь || логик нийлбэрийн үйлдлийн дүрэм тийм. x -ийн утга false үед y -ийн утгыг тооцно.
Энэ нь &/&& үйлдлүүдэд бас хамаарна.
Илэрхийллийн утгын тооцолох хугацааг хэмнэн програмийн бүтээмжийг дээшлүүлэх учраас || , && үйлдлүүд илүү эвтэйхэн. Харин | , & үйлдлүүд тоонуудад битийн үйлдлүүд хийхэд илүү тохиромжтой.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 422 Төлбөртэй

Програмчлалын хэлийг судлаад код бичих нэг их хүнд биш. Харин сайн код бичнэ гэдэг нь хүндхэн асуудал. Хэлийг эхлэн суралцагсад код бичих дээр түлхүү анхаарсанаас болоод цэгцтэй, зохион байгуулалт сайтай, өргөжүүлэх болон дэмжлэг үзүүлэхэд хөнгөн буюу өөрөөр хэлбэл сайн код бичих тал дээр нэг их анхаардаггүй. Энэ нь программийн бүтээгдхүүний загварчлалтай илүү холбоотой зүйл юм. Манайхан програмийн загварчлал хийхгүйгээр асуудлыг кодлогчид шууд өгөөд хурдан хийлгэх гэдэг. Энэ нь эцэстээ зөвхөн ажилладаг л кодийг бичүүлэхэд хүргэдэг. Ийм кодийг цаашид хөгжүүлэх болон дэмжихэд нэн хүндрэлтэй буюу бараг боломжгүй болгодог. Иймээс програмчлалын хэлний боломжуудыг маш өргөн судлан мэдэхийг зөвлөе. Програмыг загварын дагуу кодлоход таниас тухайн хэлний боломжуудыг зөв оновчтой ашиглахыг шууд шаардах болно.

  Нээгдсэн тоо: 493 Төлбөртэй

Програмчлалын C# хэл хатуу төрөлжилттэй тул өгөгдөлтэй ажиллах үед null утга асуудал үүсгэх тохиолдол их. Үүнийг тооцолгүй бичигдсэн код бүр ажлын /production/ хувилбараар ажиллаж байхдаа алдаа өгөх тал бий. Кодийн тестийг хийхдээ тухайн хувьсагчид null утга олгогдох тохиолдолыг тооцохгүй байх нь ийм асуудал гарах үндсэн шалтгаан хэдий ч кодлогч энэ талаар өөрөө бодон кодлох хэрэгтэй.   

null -ийн шалгалт. Null guard /хамгаалагч/

Коддоо null утга авдаг өөрөөр хэлбэл nullable төрлийн хувьсагч болон параметрүүд ашиглах болбол NullReferenceException алдаа гарахаас сэргийлэн null -ийг шалгах хэрэгтэй. Жишээ нь

void PrintUpper(string? text)
{
    if (text!=null)
    {
        Console.WriteLine(text.ToUpper());
    }    
}

Дээрх кодод text параметр null -тэй тэнцүү биш бол мөрийн тэмдэгтүүдийг том үсэг болгох ToUpper() аргыг дуудна.

  Нээгдсэн тоо: 570 Төлбөртэй

Классийн бүх талбар, шинж, арга, бусад бүрдүүлэгчид хандалтын модификатортой. Хандалтын модификатор классийн бүрдүүлэгчдийн харагдах хүрээг заах боломжийг олгодог. Өөрөөр хэлбэл хандалтын модификаторууд тухайн хувьсагч эсхүл аргыг хэрэглэж болох контекстийг тодорхойлдог.

  Нээгдсэн тоо: 390 Нийтийн

Стратег (Strategy) нь тус тусдаа хайрцаглагдан тэдгээрийн бие биеэ орлолтыг хангасан алгоритмын багцыг тодорхойлох загварчлалын хэвийг илэрхийлнэ. Нөхцөл байдлаас шалтгаалан ашиглагдаж буй алгоритмыг тухайн алгоритмыг хэрэглэж байгаа обьектоос хамааралгүйгээр өөрөөр амархан сольж болдог.

Хэвийг хаана ашиглах  

  • Төлөв байдлаараа ялгаатай нэг төрлийн хэдэн классууд байх үед нэг үндсэн классыг өгөөд төлөв байдлын өөр хувилбаруудыг тусдаа классуудад гаргаад шаардлагатай үед тэдгээрийг хэрэглэх.
  • Нөхцлөөс хамааран алгоритмын хувилбаруудаас амархан сонголт хийх боломжийг хангах хэрэгтэй үед.
  • Програм ажиллах явцдаа обьектуудын төлөв байдлыг өөрчлөх шаардлагатай үед
  • Тодорхой ажиллагааг ашиглаж буй класс түүний хэрэгжүүлэлтийн талаар юуг ч мэдэх ёсгүй үед

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 225

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 310

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 269

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 369

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 414

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 440

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 507

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 588

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 608

 
Энэ долоо хоногт

Өдрийн хуваарьт 5 хичээл ордог. Тэгвэл 11 хичээлээс зохиож болох хуваарийн хувилбарын тоог ол. Нэг хичээл өдөрт нэг удаа л орно.

Нээгдсэн тоо : 1950

 

y=8x3 ба y=8x функцуудын графикаар хязгаарлагдсан дүрсийн талбайг ол.

Нээгдсэн тоо : 1069

 

тэгшитгэлийн язгуурууд x1 , x2 , x3 бол

Нээгдсэн тоо : 696