Your SlideShare is downloading. ×
0
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Лекц 3
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Лекц 3

196

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
196
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Лекц №3
  • 2. C# хэлний тухай C# хэл нь .NET Фреймворктэй хамт зохиогдсон шинэ програмчлалын хэл C# хэл нь энгийн боловч орчин үеийн програмчлалын асуудлуудыг шийдэхэд тохиромжтой, өндөр бүтээмжтэй хэл C# хэл нь C++ болон Java хэлнээс удамшин үүссэн бөгөөд объект хандлагат, компонентод суурилсан, бүтцийн програмчлалуудыг бүгдийг нь дэмжинэ. 2
  • 3. C# програмын бүтэц 3
  • 4. C# програмын бүтэц using түлхүүр үг нь програмд ашиглах классуудын бүтэн замыг зааж өгөх шаардлагагүй болгож хялбарчилан холбож өгдөг. Програмын логик, өгөгдөл зэрэг бүхий л зүйл нь класс дотор бичигдэх ѐстой. Классын хүрээнээс гадуур глобаль хувьсагч гэж байдаггүй. C# програм бүрт Main() метод хэрэгтэй байдаг. Энэ метод нь програмын эхлэх цэг болдог. Энэ метод нь үргэлж static хувиргагчтай байх ѐстой бөгөөд M үсэг нь томоор бичигдэх ѐстой. 4
  • 5. C# хэлний өгөгдлийн төрөл C# хэлний төрлүүдийг  Эгэл төрөл (value type)  Заалт төрөл (reference type) гэсэн хоёр ангилалд хуваадаг. Заалт ба эгэл төрлүүд нь System.Object классаас удамшсан байдаг. Заалт төрлүүд нь System.Object классаас шууд удамшсан байдаг. Эгэл төрлүүд нь System.Object классаас System.ValueType классаар дамжуулан удашдаг. 5
  • 6. C# хэлний өгөгдлийн төрөл 6
  • 7. C# хэлний өгөгдлийн төрөл CLR нь заалт ба эгэл төрлүүдийг санах ойд ялгаатай байршуулдаг. Эгэл төрлийн объект нь стект байрладаг. Эгэл төрөл үүсэхдээ 0 утга авдаг. Заалт төрлийн объектын хаяг нь стект байрлана, жинхэнэ утга нь хийп санах ойд байрладаг. Заалт төрөл үүсэхдээ null утга авдаг. 7
  • 8. C# хэлний өгөгдлийн төрөл Apparel myApparel = new Apparel(); Apparel myApparel2 = myApparel; 8
  • 9. Эгэл буюу үндсэн төрлүүд C# төрөл FCL төрөл object System.Object string System.String decimal System.Decimal bool System.Boolean char System.Char byte System.Byte sbyte System.SByte short System.Int16 int System.Int32 long System.Int64 ushort System.UInt16 uint System.UInt32 ulong System.UInt64 float System.Single double System.Double 9
  • 10. Эгэл буюу үндсэн төрлүүд C# хэлний үндсэн төрлүүд фреймворкийн төрөлтэй харгалзана. бүгд Аль ч төрлийг нь хэрэглэж болно. Төрөл бүр эзлэнэ. санах ойд тогтмол хэмжээ Жишээ: Дараах хувьсагч зарлалтууд нь бүгд ижил IL код үүсгэнэ. System.Int32 age = new System.Int32(17); int age = 17; System.Int32 age = 17; 10
  • 11. Эгэл буюу үндсэн төрлүүд Үндсэн төрөлтэй ажиллаж байх үед дараах онцлог зүйлс байна. C# хэлний үндсэн төрлүүд нь фреймворкийн бүтэц төрлүүд байдаг. Уг бүтцүүдийн гишүүд нь тухайн төрөл дээр ажиллах нэмэлт боломжуудыг бий болгодог. Тодорхой төрлийн утгуудын ард дагавар үсэг тавихыг шаарддаг. 11
  • 12. Эгэл буюу үндсэн төрлүүд Энэ төрөл нь 128 бит хэмжээтэй, 28 цифрийн нарийвчлалтай бодит тоон төрөл юм. decimal төрлийн тогтмол утгын ард М үсэг тавина. decimal iRate = 3.9834M; // M үсэг нь decimal iRate = decimal.Round(iRate,2); // 3.98 decimal p = decimal.Parse("100.05"); 12
  • 13. Эгэл буюу үндсэн төрлүүд Энэ төрөл нь зөвхөн true ба false утга авна. bool төрлийн утгыг бүхэл тоон төрөлрүү хөрвүүлж болохгүй. bool bt = true; string bStr = bt.ToString(); // "true" bt = (bool) 1; // Буруу 13
  • 14. Эгэл буюу үндсэн төрлүүд Энэ төрөл нь 16 бит юникод тэмдэгтийг дүрслэх ба тэмдэггүй бүхэл тоо Тэмдэгтийн утгыг дан хашилтад бичнэ. myChar = 'B'; myChar = (char) 66; // 'B' -ын ASCII код 66 байдаг. Төрөл хувиргав bool bt; string pattern = "123abcd?"; myChar = pattern[0]; // '1‘ bt = char.IsLetter(pattern,3); // true ('a') bt = char.IsNumber(pattern,3); // false bt = char.IsNumber(pattern,2); // true ('3') 14
  • 15. Эгэл буюу үндсэн төрлүүд byte нь 0-ээс 255 хүртэлх тэмдэггүй 8 бит бүхэл тоо утгыг авах sbyte нь -128-с 127 хүртэлх утгыг авах тэмдэгтэй 8 бит бүхэл тоо 15
  • 16. Эгэл буюу үндсэн төрлүүд short, int, long төрлүүд нь харгалзан 16, 32, 64 бит тэмдэгтэй бүхэл тоо ushort, uint, ulong төрлүүд нь харгалзан 16, 32, 64 бит тэмдэггүй бүхэл тоо int iMax = int.MaxValue; // хамгийн их 32 бит бүхэл тоо int pVal = int.Parse("100"); // тэмдэгт мөрлүү хувиргах 16
  • 17. Эгэл буюу үндсэн төрлүүд float төрөл нь 1.5 x 10 –45 -с 3.4 x 1038 хүртэл утга бүхий 7 цифрийн нарийвчлалтай бодит тоо double төрөл нь 5 x 10 –324 -с 1.7 x 10308 хүртэл утга бүхий 15-16 цифрийн нарийвчлалтай бодит тоо Бодит тоон үйлдлийн үр дүн тодорхой бус үед NaN (Not a Number) утга буцаана. Бодит тоог өөр төрөлрүү хувиргахдаа System.Convert методыг ашиглана. 17
  • 18. Эгэл буюу үндсэн төрлүүд float төрлийн тогтмол утгын ард F үсэг тавина. double төрлийн тогтмол утгын ард D үсэг тавина. float xFloat = 24567.66F; int xInt = Convert.ToInt32(xFloat); // returns 24567 int xInt2 = (int) xFloat; string xStr = Convert.ToString(xFloat); single zero = 0; double xDouble = 124.56D; 18
  • 19. Эгэл буюу үндсэн төрлүүд  Тоочих төрөл буюу enum төрөл нь нэр оноосон тогтмол утгуудын олонлог юм.  enum төрөл дэхь нэрүүдэд утга оноогоогүй бол автоматаар 0,1,2,3 гэх мэт утгатай болно.  Хандалт нь enum төрлийн хэрэглэгдэх хүрээг тодорхойлно. Үндсэн хандалт нь internal байдаг ба энэ нь тухайн ассемблей доторх ямар ч классаас хандахыг зөвшөөрнө. Public хандалтыг ашигласнаар ямарч ассемблейн ямарч классаас хандахыг зөвшөөрнө.  Суурь төрөл нь тогтмолын утга ямар төрөлтэй байхыг тодорхойлно. 19
  • 20. Эгэл буюу үндсэн төрлүүд Синтакс: Жишээ: [access modifiers]enum <identifier> [:enum-base] { enum body } enum Fabric:short { Cotton = 1, Silk = 2, Wool = 4, Rayon = 8, Other = 128 } 20
  • 21. Эгэл буюу үндсэн төрлүүд  Бүтэц төрлийг тодорхойлдог классын хөнгөн хувилбар  Бүтэу нь классын талбар, метод, проперти, үзэгдэл, гишүүдтэй байна. гэж адил байгуулагч  Бүтэц төрөл нь эгэл төрөл учраас програмаас харьцахад ойр, шууд стект байрлана. Энэ нь хийп санах ой дахь өгөгдөлрүү заагчаар дамжуулан хандаснаас илүү хурдан байдаг сайн талтай  Бүтэц төрлийг метод буцах төрөлд ашиглах, параметр болгон дамжуулахад удаан байдаг муу талтай 21
  • 22. Эгэл буюу үндсэн төрлүүд Синтакс: Жишээ: [attribute][modifier] struct identifier [:interfaces] public struct DressShirt { public float CollarSz; { public int SleeveLn; struct-body } // constructor public DressShirt(float collar, int sleeve) { this.CollarSz = collar; this.SleeveLn = sleeve; } } 22
  • 23. Заалт төрлүүд System.String буюу string класс нь 16 бит юникод тэмдэгтүүдийн дарааллыг төлөөлөх заалт төрөл. Тэмдэгт мөрийг тодорхойлохдоо дараах хоѐр хэлбэрийг ашиглаж болно.  Эскэйп хэлбэр – давхар хашилтанд хийх  Ердийн хэлбэр – давхар хашилтын өмнө @ тэмдэг ашиглах  path  path 23 = @"c:my documentsnotes.txt"; = "c:my documentsnotes.txt";
  • 24. Заалт төрлүүд  System.String буюу string класс нь 16 бит юникод тэмдэгтүүдийн дарааллыг төлөөлөх заалт төрөл.  Тэмдэгт мөрийг тодорхойлохдоо хэлбэрийг ашиглаж болно. дараах хоѐр  Эскэйп хэлбэр – давхар хашилтанд хийх  Ердийн хэлбэр – давхар хашилтын өмнө @ тэмдэг ашиглах  path = @"c:my documentsnotes.txt";  path = "c:my documentsnotes.txt";  System.String класс нь тэмдэгт мөртэй ажиллах методуудыг агуулдаг. 24
  • 25. Заалт төрлүүд Массив нь нэгэн ижил өгөгдлүүдийг хадгалах төрөл төрлийн C# -д 3 төрлийн массив байдаг. 1. ArrayList – массивыг динамикаар удирдах боломж олгопог. 2. List – ArrayList төрлийн аюулгүй хувилбар. 3. System.Array – массивын элемэнтүүд дээр боловсруулалт хийх олон методуудыг агуулдаг. <төрөл> нэр [ ] = new <төрөл> [n] [{ эхний утгууд}] 25
  • 26. Заалт төрлүүд  int[] myRating; // массив зарлах  myRating = new int[5]; хуваарилах //массив үүсгэх, санах ой  int[] myRating = new int[5] {3,4,7,2,8};  int[] myRating = {3,4,7,2,8}; // товч бичиглэл  Apparel myApparel = {new Apparel(), new Apparel(), new Apparel()); // Apparel объектыг агуулах массив  Fabric[] enumArray = new Fabric[2];  enumArray[0] = Fabric.Cotton; //тоочих төрөлтэй массив  int[ , ] myRatings = {{3 , 7}, {4 , 9}, {2, 6}}; //3 мөр, 2 багана 26
  • 27. C# хэлний үйлдлүүд Үйлдэл Эрэмбэ Тодорхойлолт + 3 Нэмэх _ 3 2 Үржих / 2 Хуваах % 2 Үлдэгдэлээр хуваах ++ 1 Нэмэгдүүлэх __ 1 Хорогдуулах int x = y + 10; Хасах * Жишээ 27 int x = 60; int y = 15; int z = x * y / 2; // 450 y = x % 29 ; // 2 x = 5; Console.WriteLine(x++) // x = 5 Console.WriteLine(++x) // x = 6
  • 28. C# хэлний үйлдлүүд Үйлдэл Эрэмбэ Тодорхойлолт жишээ ~ 1 Бит гүйцээлт int x = ~127; // returns -128 >> 4 Баруун шилжүүлэх << 4 Зүүн шилжүүлэх byte x = 10; // binary 10 is 01010 int result = x << 1; // 20 = 10100 result = x >> 2; // 5 = 00101 & 5 Бит AND | 6 Бит OR ^ 7 Бит XOR 28 byte x = 12; // 001100 byte y = 11; // 001011 int result = x & y; //8 = 001000 result = x ^ y; //7 = 000111
  • 29. C# хэлний үйлдлүүд Үйлдэл Тодорхойлолт == Тэнцүү != Тэнцүү биш < Бага <= Бага буюу тэнцүү > Их >= Их буюу тэнцүү жишээ 29 if (x == y) {...} if (x <= y) {...}
  • 30. C# хэлний үйлдлүүд Тодорхойлолт жишээ && Логик AND || Логик OR if (x == y && y < 30) {...} Хэрвээ эхний илэрхийлэл худал бол дараагийн илэрхийлэлийг үнэлэхгүй & Логик AND | Логик OR if (x== y | y < 30) {...} Үргэлж хоёр дахь илэрхийллийг үнэлнэ. ! Логик үгүйсгэл if !(x ==y && y < 30) {...} Үйлдэл 30
  • 31. C# хэлний үйлдлүүд Синтакс: if (boolean expression) { Жишээ: if (bmi < 24.9) { weight = "normal"; // statements } else { // statements riskFactor = 2; } else { weight = "over"; } riskFactor=6; } 31
  • 32. C# хэлний үйлдлүүд Синтакс: Жишээ: switch (expression) { case constant expression: // statements; // break/goto/return() case constant expression: // statements; // break/goto/return() default: // statements; // break/goto/return() } switch (ndx) { case 1: fabric = "cotton"; blend = "100%"; break; case 2: // 2 ба 3 хамт case 3: fabric = "cotton"; blend = "60%"; break; default: // optional fabric = "cotton"; blend = "50%"; break; } 32
  • 33. C# хэлний үйлдлүүд Синтакс: Жишээ: while ( boolean expression ) { body } byte[] r = {0x00, 0x12, 0x34, 0x56, 0xAA, 0x55, 0xFF}; int ndx=0; int totVal = 0; while (ndx <=6) { totVal += r[ndx]; ndx += 1; } 33
  • 34. C# хэлний үйлдлүүд Синтакс: Жишээ: do { byte[] r = {0x00, 0x12, 0x34, 0x56, 0xAA, 0x55, 0xFF}; do-body } while ( boolean expression ); int ndx=0; int totVal = 0; do { totVal += r[ndx]; ndx += 1; }while (ndx <= 6); 34
  • 35. C# хэлний үйлдлүүд Синтакс: Жишээ: for ( [initialization]; [termination condition]; [iteration] ) int[] r = {80, 88, 90, 72, 68, 94, 83}; { for (int ndx = 0; ndx <= 6; ndx++) { for-body } int totVal = 0; totVal += r[ndx]; } 35
  • 36. C# хэлний үйлдлүүд Синтакс: Жишээ: foreach ( type identifier in collection ) { body } int totVal = 0; foreach (int arrayVal in r) { totVal += arrayVal; } 36
  • 37. C# хэлний үйлдлүүд Синтакс: break continue goto identifier; goto case exp; goto default; return [expression] ; 37

×