More Related Content
Similar to visual programming lecture 2
Similar to visual programming lecture 2 (20)
visual programming lecture 2
- 2. Хичээлийн агуулга
C# програмчлалын хэлний тухай
C# програмын бүтэц
Өгөгдлийн төрлүүд үйлдлүүд
Үйлдлүүд
- 3. C# програмчлалын хэл
C# хэл нь .NET Фреймворктэй хамт зохиогдсон
програмчлалын хэл
C# хэл нь энгийн боловч орчин үеийн
программчлалын асуудлуудыг шийдэхэд
тохиромжтой, өндөр бүтээмжтэй хэл
C# хэл нь С++ болон Жава хэлнээс удамшин үүссэн
бөгөөд объект хандлагат, компонентод суурилсан,
бүтцийн програмчлалуудыг бүгдийг нь дэмжинэ.
Мөн UNICODE кодын системийг дэмжинэ.
- 4. C# програмын бүтэц
Using түлхүүр үг нь програмд ашиглах класуудын
бүтэц замыг зааж өгөх шаардлагагүй болгож
хялбарчлан холбож өгдөг.
Програмын логик, өгөгдөл зэрэг бүхий л зүйл нь
класс дотор бичигдэх ёстой. Классын хүрээнээс
гадуур глобаль хувьсагч гэж байдаггүй.
C# програм бүрт Main() метод хэрэгэтй байдаг. Энэ
метод нь програмын эхлэх цэг болдог. Энэ метод нь
үргэлж static хувиргагчтай байх ёстой бөгөөд M
үсэг нь томоор бичигдэх ёстой.
- 5. C# програмын бүтэц
Жишээ нь:
static void Main() {……………}
static void Main(string[] args) {……………..}
static int Main() {…………….}
Static int Main(string[] args) {………………}
Тайлбар:
Main метод нь нэг хуурмаг параметртэй байж болно.
Уг параметрийн нэр нь дурын, харин төрөл нь заавал
string[] байх ёстой.
- 6. Өгөгдлийн төрөл
C# хэлний төрлүүдийг
Эгэл төрөл (value type)
Заалт төрөл (reference type)
Заалт ба эгэл төрлүүд нь System.Object классаас
удамшсан байдаг.
Заалт төрлүүд нь System.Object классаас шууд
удамшсан байдаг.
Эгэл төрлүүд нь System.Object классаас
System.ValueType классаар дамжуулан удамшдаг.
- 8. Өгөгдлийн төрөл
CLR нь заалт ба эгэл төрлүүдийг санах ойд ялгаатай
байршуулдаг.
Эгэл төрлийн объект нь стект байрладаг. Эгэл
төрөл үүсэхдээ 0 утга авдаг.
Заалт төрлийн объектын хаяг нь стект байрлана.
Жинхэнэ утга нь хийп санах ойд байрладаг. Заалт
төрөл үүсэхдээ null утга авдаг.
Тайлбар:
Ажиллах горимын үед хувьсагч болон объектуудыг
байршуулахад зориулагдсан сул санах ой
- 9. Өгөгдлийн төрөл
C# хэлний үндсэн төрлүүд нь фреймворкийн бүтэц
төрлүүд байдаг. Уг бүтцүүдийн гишүүд нь тухайн
төрөл дээр ажиллах нэмэлт боломжуудыг бий
болгодог.
Тодорхой төрлийн утгуудын ард дагавар үсэг
тавихыг шаарддаг.
Тухайн төрлийн зарлахад тухайн төрлийн анхны
байгуулагч дуудагдаж, анхны утга
тодорхойлогдоно.
C# хэлний төрлүүдтэй харгалзах фреймворкийн
төрлүүд байна.
- 11. Өгөгдлийн төрөл – Эгэл төрлүүд
byte, sbyte, short, ushort, int, uint, long, ulong
Нэмэлт боломжууд:
sbyte sb = sbyte.MinValue;
string s = “15”;
byte b = byte.Parse(s);
Console.WriteLine(sb); // -128
Console.WriteLine(B); // 15
short sh = short.MaxValue;
console.WriteLine(sh); // 32767
- 12. Өгөгдлийн төрөл – Эгэл төрлүүд
float, double
float: 1.5*10-45 –c 3.4*1038 хүртэл утга бүхий 7 цифрийн
нарийвчлалтай бодит тоо
double: 5*10-324 –с 1.7*10308 хүртэл утга бүхий 15-16 цифрийн
нарийвчлалтай бодит тоо
float төрлийн тогтмол утгын ард F үсэг тавина.
double төрлийн тогтмол утгын ард D үсэг тавина.
Анхны утга: float: 0.0f, double: 0.0d
Бодит тоон үйлдлийн үр дүн тодорхой бус үед NaN(Not a Number)
утга буцаана.
- 13. Өгөгдлийн төрөл – Эгэл төрлүүд
decimal
Авах утгын хязгаар:
decimal: 128 бит хэмжээтэй, 28 цифрийн нарийвчлалтай
бодит тоон төрөл
decimal төрлийн тогтмол утгын ард M үсэг тавина.
Анхны утга: decimal: 0.0m
Санхүүгийн болон мөнгөний тооцоолол хийхэд
тохиромжтой төрөл
decimal iRate = 3.9834M;
iRate = decimal.Round(iRate,2);
decimal p = decimal.Parse(“100.05”);
- 14. Өгөгдлийн төрөл – Эгэл төрлүүд
bool
Авах утгын хязгаар:
bool: true, false
bool төрлийн утгыг бүхэл тоон төрөл рүү хөрвүүлж
болохгүй.
bool bt = true;
string bStr = bt.ToString(); // “true”
bt = (bool) 1; // Буруу
- 15. Өгөгдийн төрөл – Эгэл төрлүүд
char: 0…..65535 хоорондох 16 битийн тэмдэггүй бүхэл
тоон утга
Дээрх утгуудад юникод тэмдэгтүүд харгалзана.
ushort төрөлтэй адил утга авах хэдий ч хийх үйлдлүүд нь
хязгаартай.
Тэмдэгтийн утгыг дан хашилтад бичнэ.
bool bt;
string pattern = “123acd”;
myChar = pattern[0]; // ‘1’
bt = char.IsLetter(pattern, 3); // true (‘a’)
bt = char.IsNumber(pattern, 3); // false
- 16. Өгөгдлийн төрөл – Эгэл төрлүүд
enum
Тоочих төрөл буюу enum төрөл нь нэр оноосон тогтмол
утгуудын олонлог юм.
enum төрөл дэх нэрүүдэд утга оноогоогүй бол автоматаар
0,1,2,3 гэх мэт утгатай болно.
Хандалт нь enum төрлийн хэрэглэгдэх хүрээг тодорхойлно.
Үндсэн хандалт нь internal байдаг ба энэ нь тухайн
ассемблей доторх ямар ч классаас хандахыг зөвшөөрнө.
Public хандалтыг ашигласнаар ямарч ассемблейн ямарч
классаас хандахыг зөвшөөрнө.
Суурь төрөл нь тогтмолын утга ямар төрөлтэй байхыг
тодорхойлно.
- 18. Өгөгдлий төрөл - Эгэл төрөл
struct
Бүтэц төрлийн классын хөнгөн хувилбар гэж
тодорхойлогддог.
Бүтэц нь классын адил талбар, метод, проперти,
үзэгдэл, байгуулагч гишүүдтэй байна.
Бүтэц төрөл нь эгэл төрөл учраас програмаас харьцахад
ойр, шууд стект байрлана. Энэ нь хийп санах ойн дахь
өгөгдөл рүү заагчаар дамжуулан хандаснаас илүү
хурдан байдаг сайн талтай.
Бүтэц төрлийн метод буцах төрөлд ашиглах, параметр
болгон дамжуулахад удаан байдаг муу талтай.
- 20. Өгөгдийн төрөл – Заалт төрлүүд
string
System.String буюу string класс нь 16 бит юникод
тэмдэгтүүдийн дарааллыг төлөөлөх заалт төрөл.
Тэмдэгт мөрийг тодорхойлохдоо дараах 2 хэлбэрийг
ашиглаж болно.
Эксэйп хэлбэр – давхар хашилтанд хийх
path = “c:my documentsnotes.txt” ;
Ердийн хэлбэр – давхар хашилтын өмнө @ тэмдэг
ашиглах
path = @“c:my documentsnotes.txt”;
System.String класс нь тэмдэгт мөртэй ажиллах
методуудыг агуулдаг.
- 22. Өгөгдлийн төрөл – Заалт төрлүүд
Array
Массив нь нэгэн ижил төрлийн өгөгдлүүдийг
хадгалах төрөл
<төрөл> нэр [] = new <төрөл> [n] [{эхний утгууд}]
System.Array класс нь тэмдэгт мөртэй ажиллах
методуудыг агуулдаг.
Жишээ:
int[] myIntArray;
myIntArray = new int[5];
int[] myIntArray = new int[5]{2,4,6,8,10};
Int[] myIntArray = {2, 4, 6, 8, 10};
- 25. Үйлдлүүд
Локаль тогтмол зарлах
static void Main() {
const float pi = 3.1415927f;
const int r = 25;
Console.WriteLine(pi * r * r);
}
- 26. Үйлдлүүд
If оператор
static void Main(string[] args) {
if(args.Length == 0) {
Console.WriteLine(“No arguments”);
}
else {
Console.WriteLine(“One or more arguments”);
}
}
- 27. Үйлдлүүд
switch оператор
static void Main(string[] args) {
int n = args.Length;
switch (n) {
case 0:
Console.WriteLine(“No argumetns”);
break;
case 1:
Console.WriteLine(“One argument”);
break;
default :
Console.WriteLine(“{0} arguments”, n);
break;
}
}
- 33. Үйлдлүүд
continue оператор
static void Main(string[] args) {
for( int i = 0; i < args.Length; i++) {
if(args[i].StartsWith(“/”))
continue;
Console.WriteLine(args[i]);
}
}
- 34. Үйлдлүүд
goto оператор
static void Main(string[] args) {
int i = 0;
goto check;
loop:
Console.WriteLine(args[i++]);
check:
if(i < args.Length)
goto loop;
}