02 basic

20
พพพพพพพพพพพพพพพ พพพพพพพพพพพ C#

Upload: a-num-sara

Post on 12-Jan-2015

28 views

Category:

Documents


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 02 basic

พื้��นฐานการเขี�ยนโปรแกรมด้�วย C#

Page 2: 02 basic

เน��อหา โครงสร�างโปรแกรมโครงสร�างโปรแกรม ชนิ�ดข้�อม�ลชนิ�ดข้�อม�ล ตั�วแปรตั�วแปร นิ�พจนิ�นิ�พจนิ� ค�าส��งแสดงผลค�าส��งแสดงผล

Page 3: 02 basic

โปรแกรมภาษา C# พ�จารณาโปรแกรมตั�อไปนิ !พ�จารณาโปรแกรมตั�อไปนิ !

namespace HelloW { class HelloWClass { static void Main () { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); } }}

namespace HelloW { class HelloWClass { static void Main () { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); } }}

Page 4: 02 basic

โปรแกรมภาษา C# ตั�วอ�กษรเล$กตั�วอ�กษรเล$ก//ใหญ่�ม ความส�าค�ญ่ใหญ่�ม ความส�าค�ญ่ ค�าส��งทุ)กค�าส��งตั�องป*ดทุ�ายด�วยค�าส��งทุ)กค�าส��งตั�องป*ดทุ�ายด�วย

เซม�โคลอนิ เซม�โคลอนิ (;)(;) จ�านิวนิช�องว�าง จ�านิวนิช�องว�าง ((ทุ�!งแนิวตั�!งแนิวนิอนิทุ�!งแนิวตั�!งแนิวนิอนิ ) )

ไม�ม ผลตั�อการทุ�างานิไม�ม ผลตั�อการทุ�างานิ ใช�เคร.�องหมายป/กกา ใช�เคร.�องหมายป/กกา {} {} จ�บกล)�มค�าส��งจ�บกล)�มค�าส��ง ข้�อความทุ �อย��ระหว�าง ข้�อความทุ �อย��ระหว�าง /* */ /* */ หร.อหล�ง หร.อหล�ง // //

ถื.อเป3นิคอมเม�นิตั� ซ4�งไม�ม ผลตั�อการถื.อเป3นิคอมเม�นิตั� ซ4�งไม�ม ผลตั�อการทุ�างานิข้องโปรแกรมทุ�างานิข้องโปรแกรม

Page 5: 02 basic

โครงสร�างขีองโปรแกรม จ)ดเร��มตั�นิข้องโปรแกรมจะอย��ทุ �จ)ดเร��มตั�นิข้องโปรแกรมจะอย��ทุ �::

เร ยกว�าเมทุ$อด เร ยกว�าเมทุ$อด MainMain เมทุ$อดตั�องอย��ภายใตั�คลาส เมทุ$อดตั�องอย��ภายใตั�คลาส (class)(class) คลาสอาจอย��ภายใตั�เนิมสเปส คลาสอาจอย��ภายใตั�เนิมสเปส

(namespace) (namespace) หร.อไม�ก$ได�หร.อไม�ก$ได�

static void Main () { ... starting point ... }

static void Main () { ... starting point ... }

Page 6: 02 basic

โครงสร�างขีองโปรแกรม คลาสเปร ยบเสม.อนิกล�องบรรจ)เมทุ$อดหลาย คลาสเปร ยบเสม.อนิกล�องบรรจ)เมทุ$อดหลาย

ๆ เมทุ$อดๆ เมทุ$อด เนิมสเปสเปร ยบเสม.อนิกล�องบรรจ)คลาสเนิมสเปสเปร ยบเสม.อนิกล�องบรรจ)คลาส

หลาย ๆ คลาสหลาย ๆ คลาส เนิมสเปสอาจอย��ภายใตั�เนิมสเปสอ.�นิได�อ กเนิมสเปสอาจอย��ภายใตั�เนิมสเปสอ.�นิได�อ ก

โปรแกรมหนิ4�ง ๆ อาจประกอบด�วยหลายโปรแกรมหนิ4�ง ๆ อาจประกอบด�วยหลายเนิมสเปส หร.ออาจไม�อย��ในิเนิมสเปสใด ๆ เนิมสเปส หร.ออาจไม�อย��ในิเนิมสเปสใด ๆ เลยก$ได�เลยก$ได�method1method1

method2method2

NamespaceNamespace

ClassClass

Page 7: 02 basic

โครงสร�างขีองโปรแกรม

ส�าหร�บโปรแกรมอย�างง�ายส�าหร�บโปรแกรมอย�างง�าย โปรแกรมประกอบด�วยคลาสเพ ยงคลาสโปรแกรมประกอบด�วยคลาสเพ ยงคลาส

เด ยวเด ยว โปรแกรมอาจประกอบด�วยเมทุ$อด โปรแกรมอาจประกอบด�วยเมทุ$อด Main Main

เพ ยงเมทุ$อดเด ยวเพ ยงเมทุ$อดเด ยว

namespace HelloW { class HelloWClass { static void Main () { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); } }}

namespace HelloW { class HelloWClass { static void Main () { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); } }}

Page 8: 02 basic

ค�าส��ง (Statement) ค�าส��งใช�อธิ�บายการทุ�างานิข้องค�าส��งใช�อธิ�บายการทุ�างานิข้อง

โปรแกรมในิแตั�ละข้�!นิตัอนิโปรแกรมในิแตั�ละข้�!นิตัอนิ

เมทุ$อดถื�กสร�างข้4!นิจากค�าส��งตั�!งแตั�หนิ4�งเมทุ$อดถื�กสร�างข้4!นิจากค�าส��งตั�!งแตั�หนิ4�งถื4งหลายค�าส��งถื4งหลายค�าส��ง

class Hello { static void Main () { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); }}

class Hello { static void Main () { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); }}

Statement#1Statement#1

Statement#2Statement#2

Page 9: 02 basic

ค�าส��ง (Statement)

method1method1

method2method2NamespaceNamespaceClassClass

Statement#1Statement#1Statement#2Statement#2

::

namespace HelloW { class HelloWClass { static void Main () { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); } }}

namespace HelloW { class HelloWClass { static void Main () { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); } }}

Page 10: 02 basic

การตั้��งชื่��อ ทุ�!งเมทุ$อด คลาส เนิมสเปส ตั�องม การตั�!งช.�อก�าก�บทุ�!งเมทุ$อด คลาส เนิมสเปส ตั�องม การตั�!งช.�อก�าก�บ ในิภาษา ในิภาษา C# C# ม กฎการตั�!งช.�อด�งนิ !ม กฎการตั�!งช.�อด�งนิ !

ข้4!นิตั�นิด�วยอ�กข้ระภาษาอ�งกฤษ ข้4!นิตั�นิด�วยอ�กข้ระภาษาอ�งกฤษ ((A-Z, a-zA-Z, a-z)) หร.อตั�วหร.อตั�วข้ ดเส�นิใตั� ข้ ดเส�นิใตั� (_)(_)

ส�วนิทุ �เหล.อประกอบด�วยอ�กข้ระภาษาอ�งกฤษ ตั�วเลข้ ส�วนิทุ �เหล.อประกอบด�วยอ�กข้ระภาษาอ�งกฤษ ตั�วเลข้ หร.อตั�วข้ ดเส�นิใตั�หร.อตั�วข้ ดเส�นิใตั�

ความยาวส�งส)ด ความยาวส�งส)ด 63 63 ตั�วอ�กษรตั�วอ�กษร ตั�องไม�ซ�!าก�บค�าสงวนิ ตั�องไม�ซ�!าก�บค�าสงวนิ (reserved words) (reserved words) เช�นิ เช�นิ

class, namespaceclass, namespace ตั�วอย�างช.�อทุ �ถื�กกฎตั�วอย�างช.�อทุ �ถื�กกฎ

hEllOhEllO, , E3_32abE3_32ab, , X_x_X022X_x_X022 ตั�วอย�างช.�อทุ �ผ�ดกฎตั�วอย�างช.�อทุ �ผ�ดกฎ

32ABC32ABC, , A.2A.2, , C#ProgramC#Program, , whilewhile

Page 11: 02 basic

ค�าสงวน ค�าเหล�านิ !ห�ามนิ�าไปใช�เป3นิช.�อในิภาษา ค�าเหล�านิ !ห�ามนิ�าไปใช�เป3นิช.�อในิภาษา

C#C#

Page 12: 02 basic

ตั้�วแปร (Variable) ตั�วแปรใช�ส�าหร�บเก$บค�าข้องข้�อม�ลตั�วแปรใช�ส�าหร�บเก$บค�าข้องข้�อม�ล การประกาศตั�วแปรการประกาศตั�วแปร

การก�าหนิดค�าให�ตั�วแปรการก�าหนิดค�าให�ตั�วแปร

ตั�วอย�างตั�วอย�าง

<<typetype> <> <namename>;>;<<typetype> <> <namename>;>;

<name> = <expression>;<name> = <expression>;<name> = <expression>;<name> = <expression>;

int width, height;int area;width = 10; height = 20;area = width * height;

int width, height;int area;width = 10; height = 20;area = width * height;

Page 13: 02 basic

ชื่น!ด้ขี�อม"ล (Data Type)ชื่น!ด้ชื่น!ด้ ขีนาด้ขีนาด้ ความหมายความหมาย ชื่$วงชื่$วง

boolbool 1 byte1 byte ค�าความจร�ง ค�าความจร�ง ((จร�งจร�ง--เทุ$จเทุ$จ)) true true / / false false

charchar 2 byte2 byte อ�กข้ระโดดอ�กข้ระโดด character code 0...65535character code 0...65535

sbytesbyte 1 byte1 byte จ�านิวนิเตั$มจ�านิวนิเตั$ม -128...127-128...127

bytebyte 1 byte1 byte จ�านิวนิเตั$มไม�ตั�ดลบจ�านิวนิเตั$มไม�ตั�ดลบ 0...2550...255

shortshort 2 bytes2 bytes จ�านิวนิเตั$มจ�านิวนิเตั$ม -32,768...32,767-32,768...32,767

ushortushort 2 bytes2 bytes จ�านิวนิเตั$มไม�ตั�ดลบจ�านิวนิเตั$มไม�ตั�ดลบ 0...655350...65535

intint 4 bytes4 bytes จ�านิวนิเตั$มจ�านิวนิเตั$ม -2.1-2.1 x 10x 1099...2.1 x 10...2.1 x 1099 uintuint 4 bytes4 bytes จ�านิวนิเตั$มไม�ตั�ดลบจ�านิวนิเตั$มไม�ตั�ดลบ 0...4.3 x 100...4.3 x 1099

longlong 8 bytes8 bytes จ�านิวนิเตั$มจ�านิวนิเตั$ม -9.2 x 10-9.2 x 101818...9.2 x 10...9.2 x 101818

ulongulong 8 bytes8 bytes จ�านิวนิเตั$มไม�ตั�ดลบจ�านิวนิเตั$มไม�ตั�ดลบ 0...1.8 x 100...1.8 x 101919

floatfloat 4 bytes4 bytes จ�านิวนิจร�งจ�านิวนิจร�ง ±±1.5x101.5x10-45-45......±±3.4x103.4x103838

doubledouble 8 bytes8 bytes จ�านิวนิจร�งความละเอ ยดสองเทุ�าจ�านิวนิจร�งความละเอ ยดสองเทุ�า ±±5.0x105.0x10-324-324......±±1.7x101.7x10308308

decimaldecimal 16 bytes16 bytes จ�านิวนิจร�งความละเอ ยดส�งจ�านิวนิจร�งความละเอ ยดส�ง ±±1.0x101.0x10--28--28......±±7.9x107.9x102828

stringstring N/AN/A สายอ�กข้ระสายอ�กข้ระ N/AN/A

Page 14: 02 basic

การก�าหนด้ค$าให�ตั้�วแปร เราสามารถืก�าหนิดค�าเร��มตั�นิให�ก�บเราสามารถืก�าหนิดค�าเร��มตั�นิให�ก�บ

ตั�วแปรได�พร�อมก�บการประกาศตั�วแปรตั�วแปรได�พร�อมก�บการประกาศตั�วแปรนิ�!นิ ๆ ได�ทุ�นิทุ นิ�!นิ ๆ ได�ทุ�นิทุ

ตั�วอย�างตั�วอย�างint width = 10, height = 20;int area;

area = width * height;

int width = 10, height = 20;int area;

area = width * height;

Page 15: 02 basic

น!พื้จน' (Expressions) น!พื้จน'น!พื้จน'เป3นิส�วนิหนิ4�งข้องค�าส��งทุ �ถื�กเป3นิส�วนิหนิ4�งข้องค�าส��งทุ �ถื�ก

ประเม�นิเป3นิค�าได�ประเม�นิเป3นิค�าได� อาจเป3นิค�าโดดหร.อประกอบข้4!นิมาจากอาจเป3นิค�าโดดหร.อประกอบข้4!นิมาจาก

นิ�พจนิ�ทุ �เล$กกว�านิ�พจนิ�ทุ �เล$กกว�า ตั�วอย�างข้องนิ�พจนิ�ทุ �เป3นิค�าโดดตั�วอย�างข้องนิ�พจนิ�ทุ �เป3นิค�าโดด

ตั�วเลข้ตั�วเลข้ 32123212, , 3.14153.1415 อ�กข้ระอ�กข้ระ 'C''C' ค�าความจร�งค�าความจร�ง truetrue or or falsefalse ข้�อความข้�อความ "Hello, World""Hello, World" ตั�วแปรหร.อค�าคงทุ �ตั�วแปรหร.อค�าคงทุ � xx, , myNamemyName

Page 16: 02 basic

น!พื้จน'ทางคณิ!ตั้ศาสตั้ร' นิ�พจนิ�ทุางคณ�ตัศาสตัร�นิ�พจนิ�ทุางคณ�ตัศาสตัร� (arithmetic (arithmetic

expression) expression) ค.อนิ�พจนิ�ทุ �ถื�กตั ความเป3นิค�าค.อนิ�พจนิ�ทุ �ถื�กตั ความเป3นิค�าจ�านิวนิจ�านิวนิ

นิ�พจนิ�ทุางคณ�ตัศาสตัร�สามารถืนิ�ามาประกอบเป3นินิ�พจนิ�ทุางคณ�ตัศาสตัร�สามารถืนิ�ามาประกอบเป3นินิ�พจนิ�ทุ �ซ�บซ�อนิข้4!นิได�โดยอาศ�ยนิ�พจนิ�ทุ �ซ�บซ�อนิข้4!นิได�โดยอาศ�ยตั�วด�าเนิ�นิการทุางตั�วด�าเนิ�นิการทุางคณ�ตัศาสตัร�คณ�ตัศาสตัร� (arithmetic operators)(arithmetic operators) ++, , --, , **, , // %% ( (ให�ค�าเศษจากการหารให�ค�าเศษจากการหาร))

ตั�วอย�างตั�วอย�าง 11+511+5 1616 11/211/2 55 11.0/211.0/2 5.55.5 11%211%2 11 5.0%2.25.0%2.2 0.60.6

Page 17: 02 basic

ล�าด้�บการค�านวณิ (Precedence Rules)1.1. ( )( )2.2. *, / , % *, / , % 3.3. +, –+, –4 .4 .ซ�ายไปข้วาซ�ายไปข้วา

int Width,Height;int Width,Height;Width = 10*5+(16 * 12)/5;Width = 10*5+(16 * 12)/5;Height = (16+5)+20%2;Height = (16+5)+20%2;

Page 18: 02 basic

การหารแบบจ�านวนเตั้,ม การหารนิ�พจนิ�ทุ �เป3นิจ�านิวนิเตั$มสองจ�านิวนิการหารนิ�พจนิ�ทุ �เป3นิจ�านิวนิเตั$มสองจ�านิวนิ

ให�ผลล�พธิ�เป3นิจ�านิวนิเตั$มเสมอให�ผลล�พธิ�เป3นิจ�านิวนิเตั$มเสมอ เศษจะถื�กป<ดทุ�!งเศษจะถื�กป<ดทุ�!ง

หากตั�วตั�!งและหากตั�วตั�!งและ//หร.อตั�วหารเป3นิจ�านิวนิหร.อตั�วหารเป3นิจ�านิวนิทุศนิ�ยม ทุศนิ�ยม (float (float หร.อ หร.อ double) double) การหารจะการหารจะค�านิวณทุศนิ�ยมให�ค�านิวณทุศนิ�ยมให�int i1 = 10, i2 = 8;double f1 = 10, f2 = 8;double r1 = i1/i2; // r1 = 1double r2 = f1/f2; // r2 = 1.25double r3 = f1/i2; // r3 = 1.25double r4 = i1/f2; // r4 = 1.25

int i1 = 10, i2 = 8;double f1 = 10, f2 = 8;double r1 = i1/i2; // r1 = 1double r2 = f1/f2; // r2 = 1.25double r3 = f1/i2; // r3 = 1.25double r4 = i1/f2; // r4 = 1.25

double r1 = 10/8; // r1 = 1double r2 = 10.0/8.0; // r2 = 1.25double r3 = 10.0/8; // r3 = 1.25double r4 = 10/8.0; // r4 = 1.25

double r1 = 10/8; // r1 = 1double r2 = 10.0/8.0; // r2 = 1.25double r3 = 10.0/8; // r3 = 1.25double r4 = 10/8.0; // r4 = 1.25

Page 19: 02 basic

ค�าส��ง using การใช�ค�าส��ง การใช�ค�าส��ง usingusing < <ช.�อเนิมสเปสช.�อเนิมสเปส>> ทุ �ตั�นิทุ �ตั�นิ

โปรแกรมเป3นิการระบ)ว�าเราตั�องการเร ยกใช�โปรแกรมเป3นิการระบ)ว�าเราตั�องการเร ยกใช�งานิคลาสในิเนิมสเปสนิ�!นิ ๆงานิคลาสในิเนิมสเปสนิ�!นิ ๆ

ตั�วอย�างตั�วอย�าง: : คลาสคลาส Console Console อย��ในิเนิมสเปส อย��ในิเนิมสเปส SystemSystem

using System;

class Hello { static void Main () { Console.WriteLine("Hello World!"); Console.ReadLine(); }}

using System;

class Hello { static void Main () { Console.WriteLine("Hello World!"); Console.ReadLine(); }}

class Hello { static void Main () { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); }}

class Hello { static void Main () { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); }}

Page 20: 02 basic

ค�าส��งส�าหร�บแสด้งผลทางหน�าจอ ใช�ค�าส��งใช�ค�าส��ง WriteWrite หร.อหร.อ WriteLineWriteLine ซ4�งอย��ในิคลาสซ4�งอย��ในิคลาส

ConsoleConsole ( (ซ4�งอย��ในิเนิมสเปสซ4�งอย��ในิเนิมสเปส SystemSystem อ กทุ หนิ4�งอ กทุ หนิ4�ง)) การใช�งานิพ.!นิฐานิการใช�งานิพ.!นิฐานิ::

การใช�งานิช�!นิส�งการใช�งานิช�!นิส�ง::Console.WriteLine(”Size {0}x{1}”, width, height);Console.WriteLine(”Size {0}x{1}”, width, height);

double salary=12000;Console.WriteLine("My salary is {0:f2}.", salary);

double salary=12000;Console.WriteLine("My salary is {0:f2}.", salary);

Console.WriteLine("Hello");Console.WriteLine(area);

Console.WriteLine("Hello");Console.WriteLine(area);