SlideShare uma empresa Scribd logo
1 de 37
Лекц №3
C# хэлний тухай
C# хэл нь .NET Фреймворктэй хамт зохиогдсон шинэ
програмчлалын хэл
C# хэл нь энгийн боловч орчин үеийн програмчлалын
асуудлуудыг шийдэхэд тохиромжтой, өндөр бүтээмжтэй хэл

C# хэл нь C++ болон Java хэлнээс удамшин үүссэн бөгөөд
объект хандлагат, компонентод суурилсан, бүтцийн
програмчлалуудыг бүгдийг нь дэмжинэ.

2
C# програмын бүтэц

3
C# програмын бүтэц
using түлхүүр үг нь програмд ашиглах
классуудын
бүтэн
замыг
зааж
өгөх
шаардлагагүй болгож хялбарчилан холбож
өгдөг.
Програмын логик, өгөгдөл зэрэг бүхий л зүйл
нь класс дотор бичигдэх ѐстой. Классын
хүрээнээс гадуур глобаль хувьсагч гэж
байдаггүй.
C# програм бүрт Main() метод хэрэгтэй байдаг.
Энэ метод нь програмын эхлэх цэг болдог.
Энэ метод нь үргэлж static хувиргагчтай байх
ѐстой бөгөөд M үсэг нь томоор бичигдэх
ѐстой.
4
C# хэлний өгөгдлийн төрөл
C# хэлний төрлүүдийг
 Эгэл төрөл (value type)
 Заалт төрөл (reference type) гэсэн хоёр ангилалд
хуваадаг.

Заалт ба эгэл төрлүүд нь System.Object
классаас удамшсан байдаг.
Заалт төрлүүд нь System.Object классаас
шууд удамшсан байдаг.
Эгэл төрлүүд нь System.Object классаас
System.ValueType
классаар
дамжуулан
удашдаг.
5
C# хэлний өгөгдлийн төрөл

6
C# хэлний өгөгдлийн төрөл
CLR нь заалт ба эгэл төрлүүдийг санах ойд
ялгаатай байршуулдаг.
Эгэл төрлийн объект нь стект байрладаг.
Эгэл төрөл үүсэхдээ 0 утга авдаг.
Заалт төрлийн объектын хаяг нь стект
байрлана, жинхэнэ утга нь хийп санах ойд
байрладаг. Заалт төрөл үүсэхдээ null утга
авдаг.

7
C# хэлний өгөгдлийн төрөл

Apparel myApparel = new Apparel();
Apparel myApparel2 = myApparel;

8
Эгэл буюу үндсэн төрлүүд
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
Эгэл буюу үндсэн төрлүүд
C#
хэлний
үндсэн
төрлүүд
фреймворкийн төрөлтэй харгалзана.

бүгд

Аль ч төрлийг нь хэрэглэж болно.
Төрөл бүр
эзлэнэ.

санах

ойд

тогтмол

хэмжээ

Жишээ: Дараах хувьсагч зарлалтууд нь бүгд
ижил IL код үүсгэнэ.
System.Int32 age = new System.Int32(17);
int age = 17;
System.Int32 age = 17;

10
Эгэл буюу үндсэн төрлүүд
Үндсэн төрөлтэй ажиллаж байх үед дараах
онцлог зүйлс байна.

C#
хэлний
үндсэн
төрлүүд
нь
фреймворкийн бүтэц төрлүүд байдаг. Уг
бүтцүүдийн гишүүд нь тухайн төрөл дээр
ажиллах
нэмэлт
боломжуудыг
бий
болгодог.
Тодорхой төрлийн утгуудын ард дагавар
үсэг тавихыг шаарддаг.

11
Эгэл буюу үндсэн төрлүүд
Энэ төрөл нь 128 бит хэмжээтэй, 28
цифрийн нарийвчлалтай бодит тоон төрөл
юм.
decimal төрлийн тогтмол утгын ард М үсэг
тавина.
decimal iRate = 3.9834M;
// M үсэг нь
decimal
iRate = decimal.Round(iRate,2);
// 3.98
decimal p = decimal.Parse("100.05");

12
Эгэл буюу үндсэн төрлүүд
Энэ төрөл нь зөвхөн true ба false утга авна.
bool төрлийн утгыг бүхэл тоон төрөлрүү
хөрвүүлж болохгүй.
bool bt = true;
string bStr = bt.ToString(); // "true"
bt = (bool) 1;
// Буруу

13
Эгэл буюу үндсэн төрлүүд
Энэ төрөл нь 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
Эгэл буюу үндсэн төрлүүд
byte нь 0-ээс 255 хүртэлх
тэмдэггүй 8 бит бүхэл тоо

утгыг авах

sbyte нь -128-с 127 хүртэлх утгыг авах
тэмдэгтэй 8 бит бүхэл тоо

15
Эгэл буюу үндсэн төрлүүд
short, int, long төрлүүд нь харгалзан
16, 32, 64 бит тэмдэгтэй бүхэл тоо
ushort, uint, ulong төрлүүд нь харгалзан
16, 32, 64 бит тэмдэггүй бүхэл тоо
int iMax = int.MaxValue; // хамгийн их 32 бит
бүхэл тоо
int pVal = int.Parse("100"); // тэмдэгт мөрлүү
хувиргах

16
Эгэл буюу үндсэн төрлүүд
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
Эгэл буюу үндсэн төрлүүд
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
Эгэл буюу үндсэн төрлүүд
 Тоочих төрөл буюу enum төрөл нь нэр оноосон
тогтмол утгуудын олонлог юм.
 enum төрөл дэхь нэрүүдэд утга оноогоогүй бол
автоматаар 0,1,2,3 гэх мэт утгатай болно.

 Хандалт нь enum төрлийн хэрэглэгдэх хүрээг
тодорхойлно. Үндсэн хандалт нь internal байдаг ба
энэ нь тухайн ассемблей доторх ямар ч классаас
хандахыг
зөвшөөрнө.
Public
хандалтыг
ашигласнаар ямарч ассемблейн ямарч классаас
хандахыг зөвшөөрнө.
 Суурь төрөл нь тогтмолын утга ямар төрөлтэй
байхыг тодорхойлно.
19
Эгэл буюу үндсэн төрлүүд
Синтакс:

Жишээ:

[access modifiers]enum <identifier> [:enum-base]
{
enum body
}

enum Fabric:short {
Cotton = 1,
Silk = 2,
Wool = 4,
Rayon = 8,
Other = 128
}

20
Эгэл буюу үндсэн төрлүүд
 Бүтэц төрлийг
тодорхойлдог

классын

хөнгөн

хувилбар

 Бүтэу
нь
классын
талбар, метод, проперти, үзэгдэл,
гишүүдтэй байна.

гэж

адил
байгуулагч

 Бүтэц төрөл нь эгэл төрөл учраас програмаас
харьцахад ойр, шууд стект байрлана. Энэ нь хийп
санах ой дахь өгөгдөлрүү заагчаар дамжуулан
хандаснаас илүү хурдан байдаг сайн талтай
 Бүтэц
төрлийг
метод
буцах
төрөлд
ашиглах, параметр болгон дамжуулахад удаан
байдаг муу талтай
21
Эгэл буюу үндсэн төрлүүд
Синтакс:

Жишээ:

[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
Заалт төрлүүд
System.String буюу string класс нь 16 бит
юникод тэмдэгтүүдийн дарааллыг төлөөлөх
заалт төрөл.
Тэмдэгт мөрийг тодорхойлохдоо дараах
хоѐр хэлбэрийг ашиглаж болно.
 Эскэйп хэлбэр – давхар хашилтанд хийх
 Ердийн хэлбэр – давхар хашилтын өмнө @ тэмдэг
ашиглах
 path
 path
23

= @"c:my documentsnotes.txt";
= "c:my documentsnotes.txt";
Заалт төрлүүд
 System.String буюу string класс нь 16 бит юникод
тэмдэгтүүдийн дарааллыг төлөөлөх заалт төрөл.
 Тэмдэгт мөрийг тодорхойлохдоо
хэлбэрийг ашиглаж болно.

дараах

хоѐр

 Эскэйп хэлбэр – давхар хашилтанд хийх
 Ердийн хэлбэр – давхар хашилтын өмнө @ тэмдэг
ашиглах
 path

= @"c:my documentsnotes.txt";

 path

= "c:my documentsnotes.txt";

 System.String класс нь тэмдэгт мөртэй ажиллах
методуудыг агуулдаг.
24
Заалт төрлүүд
Массив
нь
нэгэн
ижил
өгөгдлүүдийг хадгалах төрөл

төрлийн

C# -д 3 төрлийн массив байдаг.
1. ArrayList – массивыг динамикаар удирдах боломж
олгопог.
2. List – ArrayList төрлийн аюулгүй хувилбар.
3. System.Array – массивын элемэнтүүд дээр
боловсруулалт хийх олон методуудыг агуулдаг.

<төрөл> нэр [ ] = new <төрөл> [n] [{ эхний
утгууд}]
25
Заалт төрлүүд
 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
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
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
C# хэлний үйлдлүүд

Үйлдэл

Тодорхойлолт

==

Тэнцүү

!=

Тэнцүү биш

<

Бага

<=

Бага буюу тэнцүү

>

Их

>=

Их буюу тэнцүү

жишээ

29

if (x == y) {...}

if (x <= y) {...}
C# хэлний үйлдлүүд

Тодорхойлолт

жишээ

&&

Логик AND

||

Логик OR

if (x == y && y < 30) {...}
Хэрвээ эхний илэрхийлэл худал бол
дараагийн илэрхийлэлийг үнэлэхгүй

&

Логик AND

|

Логик OR

if (x== y | y < 30) {...}
Үргэлж хоёр дахь илэрхийллийг үнэлнэ.

!

Логик үгүйсгэл

if !(x ==y && y < 30) {...}

Үйлдэл

30
C# хэлний үйлдлүүд
Синтакс:
if (boolean expression) {

Жишээ:
if (bmi < 24.9) {
weight = "normal";

// statements
} else {
// statements

riskFactor = 2;
} else {
weight = "over";

}

riskFactor=6;
}

31
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
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
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
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
C# хэлний үйлдлүүд
Синтакс:

Жишээ:

foreach ( type identifier in
collection )
{
body
}

int totVal = 0;
foreach (int arrayVal in r)
{
totVal += arrayVal;
}

36
C# хэлний үйлдлүүд
Синтакс:
break
continue
goto identifier;
goto case exp;
goto default;

return [expression] ;

37

Mais conteúdo relacionado

Mais procurados

Lec2 c++helnii undeslel
Lec2 c++helnii undeslelLec2 c++helnii undeslel
Lec2 c++helnii undeslelTuruu Tsogt
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4Khuder Altangerel
 
Lecture4
Lecture4Lecture4
Lecture4orgil
 
u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6Khuder Altangerel
 
Lec3 c++operator
Lec3 c++operatorLec3 c++operator
Lec3 c++operatorTuruu Tsogt
 
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5Khuder Altangerel
 
Lecture 1,2
Lecture 1,2Lecture 1,2
Lecture 1,2bubulgaa
 
си хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиси хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиenhsaran_tsahim
 
u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2Khuder Altangerel
 

Mais procurados (18)

Lec2 c++helnii undeslel
Lec2 c++helnii undeslelLec2 c++helnii undeslel
Lec2 c++helnii undeslel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4
 
Лекц №6
Лекц №6Лекц №6
Лекц №6
 
Lesson 7
Lesson 7Lesson 7
Lesson 7
 
Лекц №4
Лекц №4Лекц №4
Лекц №4
 
Lecture4
Lecture4Lecture4
Lecture4
 
Ci hel
Ci helCi hel
Ci hel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6
 
Lec3 c++operator
Lec3 c++operatorLec3 c++operator
Lec3 c++operator
 
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
 
u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5
 
Лекц-1
Лекц-1Лекц-1
Лекц-1
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
C
CC
C
 
Lecture 1,2
Lecture 1,2Lecture 1,2
Lecture 1,2
 
си хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиси хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р анги
 
Excel
ExcelExcel
Excel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2
 

Destaque

Trabajo de informática del cotaesg
Trabajo de informática del cotaesgTrabajo de informática del cotaesg
Trabajo de informática del cotaesgaliabigail
 
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanh
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanhTrung tâm đào tạo nghề dj đảm bảo giỏi nhanh
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanhVandieuhuuich
 
Aplicatiile mobile pentru business
Aplicatiile mobile pentru businessAplicatiile mobile pentru business
Aplicatiile mobile pentru businesscuriermanager
 
Tarea aps06cristinaoses
Tarea aps06cristinaosesTarea aps06cristinaoses
Tarea aps06cristinaosescrisoses
 
Địa điểm đào tạo nghề dj tốt nhất
Địa điểm đào tạo nghề dj tốt nhấtĐịa điểm đào tạo nghề dj tốt nhất
Địa điểm đào tạo nghề dj tốt nhấtVandieuhuuich
 
Khóa dạy học nghề dj đảm bảo uy tín
Khóa dạy học nghề dj đảm bảo uy tínKhóa dạy học nghề dj đảm bảo uy tín
Khóa dạy học nghề dj đảm bảo uy tínVandieuhuuich
 
Como divulgar em blogs pode mudar o seu negócio
Como divulgar em blogs pode mudar o seu negócioComo divulgar em blogs pode mudar o seu negócio
Como divulgar em blogs pode mudar o seu negócioNanda Nogueira
 
ResumeCarlyGraham2015
ResumeCarlyGraham2015ResumeCarlyGraham2015
ResumeCarlyGraham2015Carly Graham
 
Cota master copa do brasil final
Cota master   copa do brasil finalCota master   copa do brasil final
Cota master copa do brasil finalMeio & Mensagem
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолтChinzorig Undarmaa
 
Flotel Room Availability
Flotel Room AvailabilityFlotel Room Availability
Flotel Room AvailabilityIan Mcewan
 
Khóa dạy học nghề dj tốt nhất
Khóa dạy học nghề dj tốt nhấtKhóa dạy học nghề dj tốt nhất
Khóa dạy học nghề dj tốt nhấtVandieuhuuich
 
Лабораторийн ажил 2
Лабораторийн ажил 2Лабораторийн ажил 2
Лабораторийн ажил 2Chinzorig Undarmaa
 
Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6Chinzorig Undarmaa
 
Ian McEwan Black Dogs
Ian McEwan Black DogsIan McEwan Black Dogs
Ian McEwan Black Dogstrevornorris
 

Destaque (20)

Trabajo de informática del cotaesg
Trabajo de informática del cotaesgTrabajo de informática del cotaesg
Trabajo de informática del cotaesg
 
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanh
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanhTrung tâm đào tạo nghề dj đảm bảo giỏi nhanh
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanh
 
Aplicatiile mobile pentru business
Aplicatiile mobile pentru businessAplicatiile mobile pentru business
Aplicatiile mobile pentru business
 
Tarea aps06cristinaoses
Tarea aps06cristinaosesTarea aps06cristinaoses
Tarea aps06cristinaoses
 
Địa điểm đào tạo nghề dj tốt nhất
Địa điểm đào tạo nghề dj tốt nhấtĐịa điểm đào tạo nghề dj tốt nhất
Địa điểm đào tạo nghề dj tốt nhất
 
Los Caballos
Los CaballosLos Caballos
Los Caballos
 
Khóa dạy học nghề dj đảm bảo uy tín
Khóa dạy học nghề dj đảm bảo uy tínKhóa dạy học nghề dj đảm bảo uy tín
Khóa dạy học nghề dj đảm bảo uy tín
 
Scan0107
Scan0107Scan0107
Scan0107
 
Como divulgar em blogs pode mudar o seu negócio
Como divulgar em blogs pode mudar o seu negócioComo divulgar em blogs pode mudar o seu negócio
Como divulgar em blogs pode mudar o seu negócio
 
WPCI Brochure
WPCI BrochureWPCI Brochure
WPCI Brochure
 
ResumeCarlyGraham2015
ResumeCarlyGraham2015ResumeCarlyGraham2015
ResumeCarlyGraham2015
 
Cota master copa do brasil final
Cota master   copa do brasil finalCota master   copa do brasil final
Cota master copa do brasil final
 
Бие даалт-4
Бие даалт-4Бие даалт-4
Бие даалт-4
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Flotel Room Availability
Flotel Room AvailabilityFlotel Room Availability
Flotel Room Availability
 
Khóa dạy học nghề dj tốt nhất
Khóa dạy học nghề dj tốt nhấtKhóa dạy học nghề dj tốt nhất
Khóa dạy học nghề dj tốt nhất
 
Лабораторийн ажил 2
Лабораторийн ажил 2Лабораторийн ажил 2
Лабораторийн ажил 2
 
State of Recycling - Action Environmental Group
State of Recycling - Action Environmental GroupState of Recycling - Action Environmental Group
State of Recycling - Action Environmental Group
 
Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6
 
Ian McEwan Black Dogs
Ian McEwan Black DogsIan McEwan Black Dogs
Ian McEwan Black Dogs
 

Semelhante a Лекц 3

Semelhante a Лекц 3 (20)

visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
203lec2
203lec2203lec2
203lec2
 
Lecture2
Lecture2Lecture2
Lecture2
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12
 
үндсэн функцууд
үндсэн функцуудүндсэн функцууд
үндсэн функцууд
 
Lekts1
Lekts1Lekts1
Lekts1
 
Lekts1
Lekts1Lekts1
Lekts1
 
Lekts1
Lekts1Lekts1
Lekts1
 
Лекц №5
Лекц №5Лекц №5
Лекц №5
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
онол
онолонол
онол
 
Lecture3
Lecture3Lecture3
Lecture3
 
33
3333
33
 
Day 3 php working with string, number
Day 3   php working with string, numberDay 3   php working with string, number
Day 3 php working with string, number
 
Програмчлалын хэл
Програмчлалын хэлПрограмчлалын хэл
Програмчлалын хэл
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
Лаборатор-3
Лаборатор-3Лаборатор-3
Лаборатор-3
 
Ms excel-130512115437-phpapp02
Ms excel-130512115437-phpapp02Ms excel-130512115437-phpapp02
Ms excel-130512115437-phpapp02
 

Mais de Chinzorig Undarmaa (20)

Лабораторийн ажил 12
Лабораторийн ажил 12Лабораторийн ажил 12
Лабораторийн ажил 12
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Бие даалтын удирдамж
Бие даалтын удирдамжБие даалтын удирдамж
Бие даалтын удирдамж
 
Лекц 1
Лекц 1Лекц 1
Лекц 1
 
Лекц 2
Лекц 2Лекц 2
Лекц 2
 
Лекц 3
Лекц 3Лекц 3
Лекц 3
 
Лабораторийн ажил 3 - 4
Лабораторийн ажил 3 - 4Лабораторийн ажил 3 - 4
Лабораторийн ажил 3 - 4
 
Лекц 4
Лекц 4Лекц 4
Лекц 4
 
Лекц 5 - 6
Лекц 5 - 6Лекц 5 - 6
Лекц 5 - 6
 
Лабораторийн ажил 7
Лабораторийн ажил 7Лабораторийн ажил 7
Лабораторийн ажил 7
 
Лекц 7
Лекц 7Лекц 7
Лекц 7
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Бие даалтын удирдамж
Бие даалтын удирдамжБие даалтын удирдамж
Бие даалтын удирдамж
 
Лабораторийн ажил 7
Лабораторийн ажил 7Лабораторийн ажил 7
Лабораторийн ажил 7
 
Лабораторийн ажил 6
Лабораторийн ажил 6Лабораторийн ажил 6
Лабораторийн ажил 6
 
Лабораторийн ажил 6
Лабораторийн ажил 6Лабораторийн ажил 6
Лабораторийн ажил 6
 

Лекц 3

  • 2. C# хэлний тухай C# хэл нь .NET Фреймворктэй хамт зохиогдсон шинэ програмчлалын хэл C# хэл нь энгийн боловч орчин үеийн програмчлалын асуудлуудыг шийдэхэд тохиромжтой, өндөр бүтээмжтэй хэл C# хэл нь C++ болон Java хэлнээс удамшин үүссэн бөгөөд объект хандлагат, компонентод суурилсан, бүтцийн програмчлалуудыг бүгдийг нь дэмжинэ. 2
  • 4. C# програмын бүтэц using түлхүүр үг нь програмд ашиглах классуудын бүтэн замыг зааж өгөх шаардлагагүй болгож хялбарчилан холбож өгдөг. Програмын логик, өгөгдөл зэрэг бүхий л зүйл нь класс дотор бичигдэх ѐстой. Классын хүрээнээс гадуур глобаль хувьсагч гэж байдаггүй. C# програм бүрт Main() метод хэрэгтэй байдаг. Энэ метод нь програмын эхлэх цэг болдог. Энэ метод нь үргэлж static хувиргагчтай байх ѐстой бөгөөд M үсэг нь томоор бичигдэх ѐстой. 4
  • 5. C# хэлний өгөгдлийн төрөл C# хэлний төрлүүдийг  Эгэл төрөл (value type)  Заалт төрөл (reference type) гэсэн хоёр ангилалд хуваадаг. Заалт ба эгэл төрлүүд нь System.Object классаас удамшсан байдаг. Заалт төрлүүд нь System.Object классаас шууд удамшсан байдаг. Эгэл төрлүүд нь System.Object классаас System.ValueType классаар дамжуулан удашдаг. 5
  • 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