Download - Chapter03
Company
LOGO
มหาวิ�ทยาลัยราชภัฏนครราชสี�มา
คณะวิ�ทยาการจัดการ
โปรแกรมคอมพิ�วิเตอร�ธุ รก�จั
Chapter 3The Concept of data
เน!"อหา
Data Types Constants vs. Variables Naming rules
Data Types
ข้�อมู�ล (data) คือ ตั�วเลข้ ตั�วอ�กษร กล��มูข้องตั�วอ�กษร หรอ คื�าตัรรกะ ที่��เราจะตั�องเก��ยวข้�องเพื่�อใช้�ในการน าข้�อมู�ลเข้�าคือมูพื่!วเตัอร" ใช้�ในข้�#นตัอนการประมูวลผลเพื่�อแก�ป'ญหาที่��ตั�องการ และใช้�ในการแสดงผลล�พื่ธ์"ออกมูา
Data Types
ช้น!ดข้องข้�อมู�ล คือ ประเภที่ข้องข้�อมู�ล ที่��เราจะตั�องร� �เพื่�อใช้�ในการเข้�ยนโปรแกรมูคือมูพื่!วเตัอร" โดยที่��วไปจะประกอบด�วยประเภที่หล�กๆ ด�งน�#
Numeric – Integers and Real Character – Character (single quote) String – Text (Double quote) Logical or Boolean หมูายถึ2งคื�า มู� 2 คื�า คือ
จร!งก�บเที่3จ (True or False / 1 or 0)
Data Types ใน C#
ตั�วแปรที่��ศึ2กษา Data Type ที่��เป5นส�น #าเง!น (ยกเว�น object)
Data Types ใน C#
ชน�ดข้&อม'ลั
ข้อบเข้ตข้&อม'ลั ค)าอธุ�บาย
sbyte -128 ถึ+ง 127 จั)านวินเต-มบวิกแลัะลับ ข้นาด 1
ไบต�byte 0 - 255 จั)านวินเต-มไม/ม�เคร!0องหมาย ข้นาด
1 ไบต�short -32,768 ถึ+ง
32,767
จั)านวินเต-มบวิกแลัะลับ ข้นาด 2
ไบต�ushor
t0 – 65,535 จั)านวินเต-มไม/ม�เคร!0องหมาย ข้นาด
2 ไบต�ushort หมูายถึ2ง short แบบ unsign คือไมู�มู�เคืร�องหมูายบวกหรอลบ
Data Types ใน C#
ชน�ดข้&อม'ลั
ข้อบเข้ตข้&อม'ลั ค)าอธุ�บาย
int -2,147,483,648 ถึ+ง 2,147,483,647
จั)านวินเต-มบวิกแลัะลับ ข้นาด 4 ไบต�
uint 0 – 4,294,967,295 จั)านวินเต-มไม/ม�เคร!0องหมาย ข้นาด 4
ไบต�long -9,223,372,036,854,775,808
ถึ+ง 9,223,372,036,854,775,807
จั)านวินเต-มบวิกแลัะลับ ข้นาด 8 ไบต�
ulong 0 ถึ+ง 18,446,744,073,709,551,615
จั)านวินเต-มไม/ม�เคร!0องหมาย ข้นาด 8
ไบต�
Data Types ใน C#
ชน�ดข้&อม'ลั ข้อบเข้ตข้&อม'ลั ค)าอธุ�บาย
float -3.4*1038 ถึ2ง +34*1038 จั)านวินจัร�ง หร!อจั)านวินทศน�ยม ข้นาด 4 ไบต� เช/น 3.14159
double ±5.0 × 10−324 to ±1.7 × 10308
จั)านวินจัร�ง หร!อจั)านวินทศน�ยม ข้นาด 8 ไบต� ท�0เก-บควิามลัะเอ�ยดมากเป2นสีองเท/าข้อง float
decimal จั)านวินจัร�ง จั)านวินจัร�ง หร!อจั)านวินทศน�ยม ข้นาด 8 ไบต�
Data Types ใน C#
ชน�ดข้&อม'ลั
ข้อบเข้ตข้&อม'ลั ค)าอธุ�บาย
bool true หร!อ false ข้นาด 1 ไบต� เป2นไปได&สีองค/าค!อ true หร!อ false
char ตวิอกษร 1 ตวิ ข้นาด 2 ไบต� เช/น 'a'
string ตวิอกษรหลัายตวิ (ข้&อควิาม)
ข้นาดตามจั)านวินตวิอกษรเช/น "hello"
Data Types ใน C#
นามูแฝงข้องช้น!ดข้องข้�อมู�ลใน .NET Framework Type
C# Type
.NET Framework Type
bool System.Booleanbyte System.Bytesbyte System.SBytechar System.Chardecimal System.Decimaldouble System.Doublefloat System.Singleint System.Int32
ตั�วอย�างint x = 123;System.Int32 y = 123;
Constants vs. Variables
คื�าคืงที่�� (Constants) และตั�วแปร (Variables) เป5นช้�อที่��ก าหนดข้2#นเพื่�อแที่นตั าแหน�งในหน�วยคืวามูจ า ก าหนดคื�าได�โดยใช้�เคืร�องหมูายเที่�าก�บ (equal, =)
Constant คือ ข้�อมู�ลที่��ไมู�สามูารถึเปล��ยนแปลงคื�าได� เมู�อก าหนดเป5นคื�าใด จะเป5นคื�าน�#นจนกว�าจะส!#นส�ดการที่ างาน ส�วน Variable คือ ข้�อมู�ลที่��สามูารถึเปล��ยนแปลงได�ตัลอดเวลา ที่�#ง Constants และ Variables จะตั�องประกาศึก�อนที่�กคืร�#ง ก�อนที่��จะมู�การใช้�งาน
Variables
ตั�วแปร (variable) เป5นตั�วระบ�ประเภที่หน2�ง (Identifier) ที่��น ามูาใช้�ในการอ�างถึ2งข้�อมู�ล โดยคื�าข้องมู�นสามูารถึเปล��ยนแปลงได�ตัลอดเวลาที่��โปรแกรมูก าล�งที่ างาน
ตั�วแปรถึอว�าเป5นส�ญล�กษณ์"ที่��ก าหนดข้2#นเพื่�อใช้�แที่นข้�อมู�ลบางอย�างก�อนที่��จะน าข้�อมู�ลไปประมูวลผล และใช้�เก3บคื าตัอบหรอผลที่��เก!ดจากการประมูวลผล (ตั�วแปรส�วนใหญ�ก าหนดข้2#นมูาเพื่�อเก3บข้�อมู�ล Input และเก3บผลล�พื่ธ์" Output)
Variables
การประกาศึตั�วแปร
ประกาศึหลายตั�ว และก าหนดคื�าเร!�มูตั�น
ร'ปแบบ ตวิอย/างDataType variableName;
ชน�ดข้&อม'ลั ช!0อตวิแปร;
int age; string name;
int age, height, weight;string name = "Jirasak";
Constants
คื�าคืงที่��เป5นตั�วระบ�อ�กประเภที่หน2�งที่��น ามูาใช้�ในการอ�างถึ2งข้�อมู�ลเช้�นเด�ยวก�บตั�วแปร ส!�งที่��แตักตั�าง จากตั�วแปรคือ คื�าที่��ก าหนดไว�ตั�#งแตั�แรกไมู�สามูารถึเปล��ยนแปลงได�อ�กหล�งจากการประกาศึ ในภาษา C# คื�าคืงที่��ตั�องประกาศึโดยระบ�ช้น!ดข้�อมู�ลและคื�าตั�#งตั�นก�อนถึ�กน ามูาใช้�งานเสมูอ การประกาศึคื�าคืงที่��จะคืล�ายคืล2งก�บการประกาศึตั�วแปร แตักตั�างก�นตัรงที่��ตั�องมู�การระบ�คื าว�า const
Variables
การประกาศึคื�าคืงที่��
ร'ปแบบconst DataType constantName = value;
const ชน�ดข้&อม'ลั ช!0อตวิแปร = ค/าท�0ต&องการก)าหนด;
const double rate = 0.25; const int wage = 300;
ใช้�เมู�อตั�องการอ�างอ!งคื�าใดๆ ที่��ไมู�มู�การเปล��ยนแปลง และตั�องใช้�ซ้ำ #าๆ
Naming rules
การตั�#งช้�อ (naming) เพื่�อใช้�ในการเข้�ยนโปรแกรมู ตั�องตั�#งช้�อให�ถึ�กตั�องตัามูหล�กเกณ์ฑ์"ที่��ก าหนด การตั�#งช้�อตั�วแปร มู�หลายแบบ เช้�น Hungarian Notation, Pascal case, Camel case และ Upper case
Hungarian Notation
ในย�คื Win32 น�กเข้�ยนโปรแกรมูภาษา C++ จะย2ดมู��นอย��ก�บว!ธ์�ตั�#งช้�อที่��ประด!ษฐ์"โดยน�กเข้�ยนโปรแกรมูช้าวฮั�งการ�ช้�อ ช้าลส" ซ้ำ!มูอะนาย (Charles Simonyi) ซ้ำ2�งแนะให�ใส�คื าย�อข้อง data type ไว�น าหน�าช้�อ เช้�น iTotal หมูายคืวามูว�า Total เป5นตั�วแปรช้น!ด
integer bAnswer หมูายคืวามูว�า Answer เป5นตั�วแปรช้น!ด
boolean sName หมูายคืวามูว�า Name เป5นตั�วแปรช้น!ด
string
Pascal case
ว!ธ์�ตั�#งช้�อแบบ Pascal case มู�หล�กการตั�#งช้�อ คือ ตั�วอ�กษรตั�วแรกเป5นตั�วใหญ� (upper case) นอกน�#นเป5นตั�วเล3กที่�#งหมูด (lower case) หากเป5นคื าที่��ประกอบจากหลายคื าให�ตั�วอ�กษรแรกข้องที่�กคื าเป5นตั�วใหญ� ยกตั�วอย�างเช้�น FirstName, LastName, BirthDate และ ProductPrice เป5นตั�น
Camel case
ว!ธ์�การตั�#งช้�อแบบ Camel case คือ การตั�#งช้�อโดยใช้�หล�กการเช้�นเด�ยวก�บ Pascal case เว�นแตั�ว�าตั�วอ�กษรตั�วแรกให�เป5นตั�วเล3ก (lower case) ด�งน�#นหากผ��เข้�ยนตั�องการเข้�ยนช้�อตั�วแปรส าหร�บเก3บช้�อ เช้�น FirstName ให�เป5นแบบ Camel case ก3จะได�เป5นแบบน�# firstName ยกตั�วอย�างช้�อที่��ตั� #งโดยว!ธ์� Camel case คือ lastName, birthDate และ productPrice เป5นตั�น
Upper case
ว!ธ์�ตั�#งช้�อแบบ upper case คือ การตั�#งช้�อโดยใช้�ตั�วอ�กษรตั�วใหญ�ที่�#งหมูด แตั�แนะน าให�ใช้�ก�บคื าย�อเที่�าน�#น อย�างเช้�น ID และ PI เป5นตั�น
การตั�#งช้�อที่��น!ยมูใช้� จะใช้�การตั�#งช้�อแบบ Pascal case, Camel case และ Upper case ตัามูล�กษณ์ะข้องข้�อมู�ลที่��เก3บ
กฎการต"งช!0อตวิระบ ในภัาษา C# (identifier)
โปรแกรมูภาษา C# มู�การใช้�งานตั�ว identifier อย��ที่� �วไปภายในโปรแกรมู เช้�น ช้�อข้องเนมูสเปส ช้�อข้องคืลาส ช้�อข้องเมูธ์อด และช้�อข้องตั�วแปร ภาษา C# มู�กฎเกณ์ฑ์"การตั�#งช้�อให�ตั�ว identifier ด�งตั�อไปน�# 1 .มู�คืวามูยาวได�ไมู�เก!น 63 ตั�วอ�กษร2. ตั�วอ�กษรตั�วแรกข้องช้�อตั�องเป5นตั�วอ�กษรภาษาอ�งกฤษ หรอ
ตั�วข้�ดเส�นใตั� (underscore) เที่�าน�#น 3. ที่��เหลอสามูารถึใช้�ได�แคื�อ�กษรภาษาอ�งกฤษ (A-Z, a-z)
ตั�วเลข้ (0-9) หรอเคืร�องหมูายข้�ดเส�นใตั� ( _ ) เที่�าน�#น4. ตั�องไมู�ซ้ำ #าก�บคื าสงวน (reserved word) เช้�น class,
namespace, int, void, static เป5นตั�น (ด�ในเอกสารประกอบการสอน)
ค)าแนะน)าต"งช!0อตวิระบ
ช้�อตั�วแปรสามูารถึใช้�ที่�#งตั�วอ�กษร ตั�วเลข้ และ underscores ผสมูก�นได� ยกเว�นห�ามูข้2#นตั�นด�วยตั�วเลข้ และห�ามูใช้�คื าสงวน
ช้�อตั�วแปรเป5น case sensitive น��นคือ Name, name และ NAME เป5นคืนละช้�อก�น
ให�ตั�#งช้�อที่��มู�คืวามูหมูาย เช้�น ตั�องการตั�#งช้�อตั�วแปรเก3บว�นเก!ด คืวรใช้� BirthDate birthDate หรอ bDate แที่นที่��จะใช้� date
ค)าแนะน)าต"งช!0อตวิระบ
ใช้�ร�ปแบบเด�ยวก�น หมูายคืวามูว�า ถึ�าตั�#งช้�อตั�วแปรโดยใช้�แบบ CamelCase ก3คืวรใช้�แบบน�#ในการตั�#งช้�อที่�#งโปรแกรมู
ไมู�คืวรใช้� underscore ในการตั�#งช้�อ identifiers
คืวรใช้�ช้�อที่��ไมู�ยาวจนเก!นไป ถึ�าเป5นช้�อที่��ส� #นเก!นไป อาจมู�คื าอธ์!บายประกอบที่�� comment
ค)าถึาม
ข้�อสงส�ย หรอ คื าถึามู คื าถึามูที่�ายบที่ที่�� 3 (ส�งในห�อง/ส�ปดาห"หน�า)