Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
ตอนทตอนท 88
การเขยนโปรแกรมเบองตนการเขยนโปรแกรมเบองตนการเขยนโปรแกรมเบองตนการเขยนโปรแกรมเบองตน
D r . A n a k k a p o n S a e n t h o n
K i n g M o n g k u t ' s I n s t i t u t e o f T e c h n o l o g y L a d k r a b a n g
Overview
1. Introduction about Visual C#
2. โครงสรางของโปรแกรม
3. การกาหนดตวแปรและขอมล
4. ประเภทของขอมลในภาษา C#
5. ตวอยางการเขยนโปรแกรมอยางงาย
1. Introduction about Visual C#
• ภาษา C# เปนภาษาโปรแกรมเชงวตถ (object-oriented
programming language) ทถกพฒนาขนมาโดยบรษทไมโครซอฟตprogramming language) ทถกพฒนาขนมาโดยบรษทไมโครซอฟต
ป ใ ป • เปนภาษาใหมทมประสทธภาพการทางานเทยบเทาหรอเหนอกวา C++
แตไมยงยากและซบซอนเทา
• โดยสามารถใชงานไดงายเหมอนภาษา Visual Basic ทาใหสามารถพฒนา
แอพพลเคชนในระดบสงไดดยงกวาการใชภาษา Visual Basic
3
Visual Studio 2010
Double l kClick
4
1. สวนประกอบหนาตางโปรแกรม
5
Windows Windows Windows Windows
FormsForms
Console Console
ApplicationApplicationApplicationApplicationVisual C#Visual C#
6
Menu barToolbar Toolbox
Solution
ExplorerExplorerForm design
7
Form codeForm code
8
IDE (Integrated Development Environment)
• IDE – Integrated Development Environment คอ สภาพของการพฒนาโปรแกรมโดยรวมทง Editor , Complier , Debugger ตลอดจนเครองมอทใชในการออกแบบ และตดตอฐานขอมล ประกอบดวยสวนตางๆ ดงนออกแบบ แล ตดตอฐานขอมล ปร กอบดวยสวนตางๆ ดงน
• เมนบาร (Menu Bar) : สวนทใชเกบคาสง โดยแบงแยกเปนหมวดหมอยางชดเจน
• ทลบาร (Toolbar) :สวนทใชเกบปมคาสงลดตางๆ ๆ
• ทลบอกซ (Toolbox): สวนทใชเกบคอนโทรล/คอมโพเนนตเพอการสรางแอพพลเคชน
• Form Designer : สวนทใชในการออกแบบหนาตาของแอพพลเคชน
• Properties Window : สวนทใชกาหนดคณสมบตของ Object และ Control ชนดตางๆ
• Solution Explorer : สวนทใชเกบองคประกอบตางๆ ของSolution (Solution จะประกอบไปดวยไฟลชนดตางๆ ทจาเปนตอการทางานและควบคมแอพพลเคชน)
• C d Edit สวนทเราใชเขยนโปรแกรมเพอสงงานแอพพลเคชน• Code Editor : สวนทเราใชเขยนโปรแกรมเพอสงงานแอพพลเคชน
ตวอยางการสรางแอพพลเคชนแบบ Console
• แอพพลเคชนแบบ Console คอ การแสดงผลการทางานในโหมดของดอส ซงรบ
คาสงดวยการพมพคาสงคาสงดวยการพมพคาสง
• ตวอยาง
ตวอยางการสรางแอพพลเคชนแบบ Windows Application
• แอพพลเคชนแบบ Windows Application คอ การรนโปรแกรมบน
ระบบปฏบตการ Windows
• ตวอยาง
Dr. Anakkapon Saenthon (30/11/2555) 11
2. โครงสรางของโปรแกรม Visual C#
รปแบบ Class <Identifier> {…….}
namespace MyProgram {
class MyProgramClass {
static void Main () {
System.Console.WriteLine(“My program");
System Console ReadLine();System.Console.ReadLine();
}
}
} • method Main
• method จะตองอยใน class
• class จะตองอยใน namespace
2. โครงสรางของโปรแกรม Visual C#
Separators
ตวแบงแยก อาจเปนสญลกษณหรอตวอกษร ใชสาหรบจดกลมคาหรอแบงแยกคา เชน ในโปรแกรมภาษา C# ใชคา เชน ในโปรแกรมภาษา C# ใช
1) { } ใชจดกลมบลอก
2) ( ) ตอทาย th d หรอ F ti ใชสาหรบใสพารามเตอร 2) ( ) ตอทาย method หรอ Functionใชสาหรบใสพารามเตอร
3) [ ] ใชระบอารเรย
ใ 4) ; ใชระบ จบคาสง (end of statement)
5) , ใชคนระหวางตวแปร
6) . ใชแยกชอออบเจกต
13
• โครงสรางของโปรแกรม C#
2. โครงสรางของโปรแกรม Visual C#
• โครงสรางของโปรแกรม C#
โปรแกรมจะประกอบดวยหลาย namespaces
Namespace ประกอบดวยหลาย classes Namespace ประกอบดวยหลาย classes
class ประกอบดวยหลาย methods
methodmethod11methodmethod22 ClassClass
methodmethod22
namespacenamespace
ClassClassClassClass
2. โครงสรางของโปรแกรม Visual C#
Namespace Namespace NameName
Class Class NameName
Declaration Declaration part part
St t tSt t tStatementsStatements
15
ประเภทของขอมลในภาษา C#
สาหรบภาษา C# สามารถแบงกลมประเภท ได 3 กลมดงน
1 Value types1. Value types
2. References types
3. Pointer types
16
3 การกาหนดตวแปรและขอมล
ตวแปร(Variable) หมายถง สญลกษณทเราใชแทนขอมลชนด
ตางๆ โดยขอมลทจะนามาเกบในตวแปรตองตรงกบทเราไดกาหนดไวตางๆ โดยขอมลทจะนามาเกบในตวแปรตองตรงกบทเราไดกาหนดไว
ไปใ ป ป การจะนาขอมลไปใชงานกตองกระทาผานตวแปรน จาเปนตองระบ
ลงไปดวยวาตวแปรนนใชเกบขอมลชนดใด
17
3.1 หลกการตงชอตวแปร
หามขนตนดวยตวอกษร underscore ( ) หรอ @หามขนตนดวยตวอกษร, , underscore (_) หรอ @
หามใชตวเลขหรออกขระเปนตวเรมตน
รปแบบตวอกษรพมพตางกน ถอเปนคนละตว
(case sensitive) เชน myvar, myVar, MYVAR ถอเปนคนละตว
หามตงชอตวแปรซากบคาสงวน (reserved word)
ตงไดไมเกน 63 ตวอกษร
ตวอยางการตงชอทถกตอง
Num, myNum1, string4, Data
ตวอยางการตงชอทไมถกตอง
18
ตวอยางการตงชอทไมถกตอง
9xx, @myWeb, Look@me
3.2 ตวดาเนนการทางคณตศาสตร (operator)
• Arithmetic Operators
+ - * / % A = 2+3; B = 4 % 3;
++ --
= += -= *= /= %=
X++; ++X; X--; --X;
Y += 3;
• String Operators
Message = "Hello "+”Name”
+
• Boolean OperatorsBoolean Operators
< <= > >= == !=
! && || ^
If (A=5 && B>6) {…}
19
3.3 นพจนทางคณตศาสตร (operator)
• Operators
I. + - * /
II. % (remainder after division)
• Example
I. 11 + 5 16
II. 11 / 2 5.5
III. 11 % 2 1
IV 5 0 % 2 2 0 6
20
IV. 5.0 % 2.2 0.6
3.4 ลาดบความสาคญของ Operators
ลาดบ Operatorลาดบ Operator
1 ( ), x++, x--
2 +x, -x, ++x, --x, !
3 *, /, %
4 +, -
5 shift bits left: <<, shift bits right: >>
6 <, <=, >, >=, is, as
7 = = !=7 = =, !=
8 &, |, ^
9 && || ?
21
9 &&, ||, ?:
10 =, +=, =,*=, /=, %=, <<=, >>=, &=, ^=, |=
3.5 การประกาศตวแปร (Variable)
วธ1 [ชนดของขอมล] ชอตวแปร;
วธ2 [ชนดของขอมล] ชอตวแปร = [คาเรมตนของตวแปร];
int x; int x =1;
int y, z;t y, ;
int Y, Z = 3;
Double d = 10.99;
String s1 = “Visual", s2=“C#” , s3=“.Net”;
22
String s1 Visual , s2 C# , s3 .Net ;
หมายเหต: ไมสามารถประกาศตวแปรซาภายในบลอก {…} เดยวกน
3.6 การประกาศคาคงท (Constant)
คาคงทเปนตวแปรทกาหนดคาตายตว ไมสามารถเปลยนแปลงได
const [ชนดของขอมล] ชอตวแปร = คาคงท;
ตวอยาง
const int x = 1;
const double pi = 3 14;const double pi = 3.14;
23
4. ประเภทของขอมลในภาษา C#
สาหรบภาษา C# สามารถแบงกลมประเภท ได 3 กลม ดงน
1. Value types
2 R f t2. References types
3. Pointer types
24
4. ประเภทของขอมลในภาษา C#
Value types ตวแปรของกลมนเปนประเภททใชขอมลโดยตรง
จะเปลยนแปลงคาเมอมคาใหมไปเกบทบคาเดม และจะถกทาลายเมออยนอกขอบเขต
ชนดขอมลในกลมประเภทน คอ sbyte, byte, short, ushort, int uint long ulong char float double bool และ int, uint, long, ulong, char, float, double, bool และ decimal
25
4.1 ชนดของขอมล
I Numeric (เลขจานวนเตม และเลขทศนยม)I. Numeric (เลขจานวนเตม และเลขทศนยม)
II. Char (ตวอกษร)
III. String (ขอความ)
IV. Boolean (บลน)
V. Object (วตถ)V. Object (วตถ)
26
4.2 เลขจานวนเตม
Data type ขนาด คาของขอมล
sbyte (System.SByte) 1 byte -128 ถง 127
short (System.Int16) 2 bytes -32,768 ถง 32,767
( ) b int (System.Int32) 4 bytes -2,147,483,648 ถง
2,147,483,647
long (System.Int64) 8 bytes -263 ถง (263 – 1)
27
4.2.1 เลขจานวนเตมบวก
Data type ขนาด คาของขอมล
byte (System.Byte) 1 byte 0 ถง 255
ushort (System.UInt16) 2 bytes 0 ถง 65,535
uint (System.UInt32) 4 bytes 0 ถง 4,294,967,295
ulong (System UInt64) 8 bytes 0 ถง 264 1ulong (System.UInt64) 8 bytes 0 ถง 2 -1
28
4.3 เลขทศนยม
Data type ขนาด คาของขอมล
float (System.Single) 4 bytes ±1.5 x 10-45 ถง ±3.4 x 1038y g y
ความแมนยาของทศนยมอยท 7 ตาแหนง
d bl 8 b t 5 0 10-324 ถง 1 7 10308double
(System.Double)
8 bytes ±5.0 x 10 324 ถง ±1.7 x 10308
ความแมนยาของทศนยมอยท 15 ตาแหนง, มชวงของขอมลกวางทสด
decimal 16 bytes ±1.0 x 10-28 ถง ±7.9 x 1028
(System.Decimal)
ความแมนยาของทศนยมอยท 28 ตาแหนง, ชวงขอมลแคบกวา double
29
แตใหคาละเอยดมากในสวนของทศนยมเหมาะกบการคานวณเรองเงน
4.4 ชนดขอมลอกขระ
Data type ขนาด คาของขอมล
char 2 bytes ตวอกษรแบบ Unicode มเครองหมาย '
(System.Char) (single quote) ครอมตวอกษร เชน 'A',
'1‘
char c = ‘A’;
string ไมแนนอน ตวอกษรแบบ Unicode หลายตวมาstring
(System.String)
ไมแนนอน ตวอกษรแบบ Unicode หลายตวมา
รวมกน มเครองหมาย " (double
quote) ครอมquote) ครอม
เชน "Hello“
t i “W l ”
30
string s = “Welcome”;
4.5 ขอมลชนดบลน
Data type ขนาด คาของขอมล
bool 1 bit มคาทเปนไปได 2 คา คอ
(System.Boolean) true และ false
นามาใชกรณเกยวกบการเลอกโดย
พจารณาเงอนไข
เชน เชน
bool bfact;
bfact = true; หรอ
bool bfact = true;
31
55 ตวอยางการเขยนโปรแกรมอยางงายตวอยางการเขยนโปรแกรมอยางงาย55. . ตวอยางการเขยนโปรแกรมอยางงายตวอยางการเขยนโปรแกรมอยางงาย
32
5. ตวอยางการเขยนโปรแกรมอยางงาย
1 1. เลอก
Create New project
33
1. เลอก Windows
Froms Application
2. ตงชอ Project
343. Click
ใ 1. การใชงานเครองมอ “TextBox”
35
การรบขอมลดวย TextBox
1 แสดงToolbox1. แสดงToolbox
3 วางท 3. วางท
From1
2. คลกคางท
TextBox และ
ลากไปยง F 1
36
ลากไปยง Form1
การกาหนดคณลกษณะของ TextBox 3. จะปรากฎหนาตาง
Properties
1. คลกขวาท
TextBox
2. เลอก
Properties
37
การกาหนดคณลกษณะของ TextBox
ทดลองแกคาพารามเตอร
(Name) และ Text
กาหนดขอความท TextBox
“ทดลองพมพชอตวเอง”
กาหนดชอตวแปร
ชอ : textBox1 -> myTextBox
38
การกาหนดคณลกษณะของ TextBox
1 คลก Run1. คลก Run
2 จะปรากฎหนาตาง2. จะปรากฎหนาตาง
โปรแกรมดงน
39
การรบขอมลดวย Button
1 แสดงToolbox1. แสดงToolbox
2. คลกคางท
Button และลากButton และลาก
ไปยง Form1
3. วางท
From1From1
40
การกาหนดคณลกษณะของ Button
กาหนดขอความท
TextBox
“ทดลองพมพชอ
ตวเอง”
กาหนดชอตวแปร
41
button1-> BT1
การรบสงงานผาน ButtonGoto Events
D bl li k @ ”Cli k”Double click @ ”Click”
จะทางานหลงจากคลก
button1
42
การโปรแกรมสงงานเมอมการ click button
โ เพมโคด
เมอโปรแกรมเสรจใหทาการกด Run
43
เมอโปรแกรมเสรจใหทาการกด Run
ผลการ Run
กอน Click หลง Click
กอน Click หลง Click
44
ใ L b l”L b l”2. การใชงานเครองมอ “Label”Label”
45
การใชงาน Label
lb1. แสดงToolbox
3. วางท
From1
2. คลกคางท 2. คลกคางท
Button และลาก
ไปยง Form1
46
กาหนดคณสมบตของ Label
การกาหนดคณสมบตทาลกษณะเดยวกบ TaxtBox และ Button
กาหนดให
(Name) : score
Text : A
1. แสดง Label
47
3 การแปลงตวแปลขอมล3. การแปลงตวแปลขอมล
((String String --> Integer> Integer) ) or or ((IntegerInteger-->String >String ))((String String > Integer> Integer) ) or or ((IntegerInteger >String >String ))
48
ทดลองเขยนโปรแกรมคานวณพนทสเหลยม
กาหนดคณสมบต
TextBox1 (Name) TB1 TextBox1 (Name) TB1
TextBox2 (Name) TB2
Button1 (Name) BT1
Labal1 (Name) LB1
Labal1 Text Area
เงอนไข
I. รบ Input จาก 2 TextBoxp
II. ทางานเมอกดปม Button
III. แสดงผลคาพนทใน Label
49
การรบขอมลจาก TextBox + Button+ Label
ประกาศตวแปร
คาสงแปลงขอมลจาก
String เปน Integer
อานขอมล Text จาก TextBox (TB1)
อานขอมล Text จาก TextBox (TB2)อานขอมล Text จาก TextBox (TB2)
คานวนคาพนท
50
แปลงขอมลจาก Integer เปน String
4. การตรวจสอบเงอนไข IF ()IF ()
ELSE ELSE ELSE ELSE
51
tb1
tb2
หนาตางโปรแกรมสาหรบขอมล
และแสดงผล
52
และแสดงผล
T t T tB (tb1)
ป
อานขอมล Text จาก TextBox (tb1)
คาสงแปลงขอมลจาก
String เปน Integer
ตวอยางการเชคเงอนไข
If lIf-else
53
5 การทาซา5. การทาซา
For loopFor loopFor loopFor loop
54
5. การทาซา
1. เรมตน [0]
2 เงอนไขจดสนสด [10]2. เงอนไขจดสนสด [10]
3. การเลอนการทาซา [+1]
55
Assignment1-2
1. จงเขยนโปรแกรมเพอคานวณและแสดงผลคา A ออกทาง Label เมอ
กาหนดให A = 2B + 3C – D (ใช TextBox 3 ตวเพอรบคา Input)
2. จงเขยนโปรแกรมการหาพนทวงกลม ทรบคารศมจากแปนพมพแลว
แสดงผลลพธทางหนาจอ Label (ใช TextBox 1 ตวเพอรบคา Input )
56
3 Assignment
จงเขยนโปรแกรมเพอเปรยบเทยบคาขอมลทเกบในตวแปร x (TextBox)
โดยมเงอนไขดงน
ถา x >0 ใหแสดงผลเปน Text คาวา “Positive Number”
ถา x <0 ใหแสดงผลเปน Text คาวา “Negative Number”
ถา x =0 ใหแสดงผลเปน Text คาวา “Zero Number”
***ทาการคานวณเมอกด Button และผลลพธแสดงออกทาง TextBox
57