Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
ADVANCED COMPUTER PROGRAMMINGการเขยนโปรแกรมคอมพวเตอรขนสง
Dr. Anakkapon Saenthon
เรอง ทบทวนการเขยนโปรแกรมภาษาซ #2
(ชนดตวแปร พอยนเตอร อารเร ประโยคควบคม ฟงกชน การสงผานพารามเตอร)
Flowchart
การเขยน Flowchart เบองตนเราจะใชสญลกษณดงตอไปนคอ
จดเรมตน/สนสด (Terminator)
ขอมล นาเขา/สงออก (Input / Output)
ประมวลผล (Process)
ตดสนใจ (Decision)
ทศทาง (Direction)
จดตอเชอม (Connector)
Flowchart
การเขยน Flowchart แบบโครงสราง
การเขยน Flowchart แบบโครงสรางมประโยชนคอทาใหการไลขนตอนการ
ทางานทาไดงายและเปนระเบยบ ซงมหลกการเขยนอย 3 ขอ คอ
a) Sequence การทางานตามลาดบ
b) Selection การเลอกการทางาน (if , switch)
c) Iteration การทาซา (for , while , do while)
Flowchart
a) Sequence
YesNo
b) Selection
c) Iteration
Flowchart
1 + 3 + 5 +7 + 9 + 11 + 13 +
15 + 17 + 19 + 21 + 23 + 25
+27 + 29 = ???
ตวอยาง จงเขยน Flowchart หาผลรวม
ของเลขจานวนค ตงแต 1 ถง 30
Yes
START
X = 1, TOTAL = 0
TOTAL = TOTAL + X
X > 30
X = X + 2
No
Print TOTAL
STOP
จงเขยน Flowchart หาผลรวมของเลขจานวนค ตงแต 1 ถง 30
1Assignment
Flowchart
3 + 5 + 6 + 9 + 10 + 12 +
15 + 18 + 20 + 21 + 24 +
25 + 27 + 30 = ???
ตวอยาง จงเขยน Flowchart หาผลรวมบวก
ของเลขทหารดวย 3 หรอ 5 หารลงตวตงแต
1 ถง 30
Yes
START
TOTAL = TOTAL + X
X = X + 1
No
STOP
Print TOTAL
X = 1, TOTAL = 0
X > 30
Yes
No
if ((X%3 == 0)
or (X%5 == 0))
Flowchart
ตวอยาง จงเขยน Flowchart หาผลรวมของเลขทหารดวย 3 และ 5 หารลงตว
ตงแต 1 ถง 30
TOTAL = TOTAL + X
If (X%3 == 0)
If (X%5 == 0) TOTAL = TOTAL + X
Yes
No
No
Yes
จงเขยน Flowchart หาผลรวมของเลขทหารดวย 3, 5 หรอ 7 หารลงตว
ตงแต 1 ถง 50
2Assignment
Flowchart
ยกตวอยาง 1
ตวแปรชอ X[1]
X[1] = 3
ตวอยาง กาหนดตวแปรแบบ Array สาหรบเกบคาตวเลขจานวนเตม
ยกตวอยาง 2
ตวแปรชอ X[3]
X[1] = 10
X[2] = 2
X[3] = 9
ยกตวอยาง 3
ตวแปรชอ X[5]
X[1] = 7
X[2] = 5
X[3] = 4
X[4] = 1
X[5] = 9
Flowchart
Array
ตวอยาง จงเขยน Flowchart สาหรบรบคา
ตวเลขจาก Keyboard ทงหมด 5 จานวน
Yes
START
No
STOP
declare X[5] , N = 1
N > 5
Read X[N]
N = N+ 1
ตวอยาง จงเขยน Flowchart กอนหนา และเมอรบคา
ครบแลวใหแสดงผลลพทตวเลขแตละตวตามลาดบ
Yes
START
No
Declare X[5] , N = 1
N > 5
Read X[N]
N = N+ 1
1
STOP
1
N = 1
Display X[N]
N > 5
N = N+ 1
Flowchart
Array
Yes
No
ตวอยาง จงเขยน Flowchart รบคาตวเลข
จานวนเตมแบบ Array จานวน 5 ตวเลขและ
sort คาตวเลขจาก “นอยไปมาก”
Yes
START
No
Declare X[5] , N = 1
N > 5
N = N+ 1
1
Flowchart
Array
Read X[N]
Yes
STOP
2
N = 1
Display X[N]
N > 5
N = N+ 1
Yes
No
Flowchart
Array1
Yes
No
2
N = N+ 1
N = 1 , M = 0 ,W = 1
if X[N] > X[N+1]
X[N] = X[N+1] , X[N+1] = M
M = X[N]
No
N > 4
W > 4
Yes
W= W+ 1
No
N=1
จงเขยน Flowchart รบคาตวเลขจานวนเตมแบบ Array จานวน 20 ตวเลขและ
sort คาตวเลขจาก “มากไปนอย”
3Assignment
4
จงเขยน “Pseudo code” ขนตอนการทางานจาก Assignment ขอ 1 - 3
การเขยนโปรแกรมการเขยนโปรแกรมเบองเบองตนตน
Visual Visual .Net.Net C#C#
Overview
1. Introduction about Visual C#
2. โครงสรางของโปรแกรม
3. การกาหนดตวแปรและขอมล
4. ประเภทของขอมลในภาษา C#
5. ตวอยางการเขยนโปรแกรมอยางงาย
18
1. Introduction about Visual C#
• ภาษา C# เปนภาษาโปรแกรมเชงวตถ (object-oriented
programming language) ทถกพฒนาขนมาโดยบรษทไมโครซอฟต
• เปนภาษาใหมทมประสทธภาพการทางานเทยบเทาหรอเหนอกวา C++
แตไมยงยากและซบซอนเทา
• โดยสามารถใชงานไดงายเหมอนภาษา Visual Basic ทาใหสามารถพฒนา
แอพพลเคชนในระดบสงไดดยงกวาการใชภาษา Visual Basic
19
Visual Studio 2010
Double
Click
1. สวนประกอบหนาตางโปรแกรม
20
21
Windows Windows
FormsForms
Console Console
ApplicationApplicationVisual C#Visual C#
22
Menu barToolbar Toolbox
Solution
ExplorerForm design
23
Form code
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 จะประกอบไปดวยไฟลชนดตางๆ ทจาเปนตอการทางานและควบคมแอพพลเคชน)
• Code Editor : สวนทเราใชเขยนโปรแกรมเพอสงงานแอพพลเคชน
ตวอยางการสรางแอพพลเคชนแบบ Console
• แอพพลเคชนแบบ Console คอ การแสดงผลการทางานในโหมดของดอส ซงรบ
คาสงดวยการพมพคาสง
• ตวอยาง
Dr. Anakkapon Saenthon (30/11/2555) 26
ตวอยางการสรางแอพพลเคชนแบบ Windows Application
• แอพพลเคชนแบบ Windows Application คอ การรนโปรแกรมบน
ระบบปฏบตการ Windows
• ตวอยาง
2. โครงสรางของโปรแกรม Visual C#
namespace MyProgram {
class MyProgramClass {
static void Main () {
System.Console.WriteLine(“My program");
System.Console.ReadLine();
}
}
}
รปแบบ Class <Identifier> {…….}
• method Main
• method จะตองอยใน class
• class จะตองอยใน namespace
28
2. โครงสรางของโปรแกรม Visual C#
Separators
ตวแบงแยก อาจเปนสญลกษณหรอตวอกษร ใชสาหรบจดกลมคาหรอแบงแยกคา เชน ในโปรแกรมภาษา C# ใช
1) { } ใชจดกลมบลอก
2) ( ) ตอทาย method หรอ Functionใชสาหรบใสพารามเตอร
3) [ ] ใชระบอารเรย
4) ; ใชระบ จบคาสง (end of statement)
5) , ใชคนระหวางตวแปร
6) . ใชแยกชอออบเจกต
• โครงสรางของโปรแกรม C#
โปรแกรมจะประกอบดวยหลาย namespaces
Namespace ประกอบดวยหลาย classes
class ประกอบดวยหลาย methods
methodmethod11methodmethod22
methodmethod22
namespacenamespace
ClassClass
ClassClass
2. โครงสรางของโปรแกรม Visual C#
30
Class Class NameNameClass Class NameName
Declaration Declaration part part
StatementsStatementsStatementsStatements
Namespace Namespace NameNameNamespace Namespace NameName
2. โครงสรางของโปรแกรม Visual C#
31
ประเภทของขอมลในภาษา C#
สาหรบภาษา C# สามารถแบงกลมประเภท ได 3 กลมดงน
1. Value types
2. References types
3. Pointer types
32
3 การกาหนดตวแปรและขอมล
ตวแปร(Variable) หมายถง สญลกษณทเราใชแทนขอมลชนด
ตางๆ โดยขอมลทจะนามาเกบในตวแปรตองตรงกบทเราไดกาหนดไว
การจะนาขอมลไปใชงานกตองกระทาผานตวแปรน จาเปนตองระบ
ลงไปดวยวาตวแปรนนใชเกบขอมลชนดใด
33
3.1 หลกการตงชอตวแปร
หามขนตนดวยตวอกษร, , underscore (_) หรอ @
หามใชตวเลขหรออกขระเปนตวเรมตน
รปแบบตวอกษรพมพตางกน ถอเปนคนละตว
(case sensitive) เชน myvar, myVar, MYVAR ถอเปนคนละตว
หามตงชอตวแปรซากบคาสงวน (reserved word)
ตงไดไมเกน 63 ตวอกษร
ตวอยางการตงชอทถกตอง
Num, myNum1, string4, Data
ตวอยางการตงชอทไมถกตอง
9xx, @myWeb, Look@me
34
3.2 ตวดาเนนการทางคณตศาสตร (operator)
• Arithmetic Operators
+ - * / %
++ --
= += -= *= /= %=
• String Operators
+
• Boolean Operators
< <= > >= == !=
! && || ^
A = 2+3; B = 4 % 3;
X++; ++X; X--; --X;
Y += 3;
Message = "Hello "+”Name”
If (A=5 && B>6) {…}
35
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
36
3.4 ลาดบความสาคญของ Operators
ลาดบ Operator
1 ( ), x++, x--
2 +x, -x, ++x, --x, !
3 *, /, %
4 +, -
5 shift bits left: <<, shift bits right: >>
6 <, <=, >, >=, is, as
7 = =, !=
8 &, |, ^
9 &&, ||, ?:
10 =, +=, =,*=, /=, %=, <<=, >>=, &=, ^=, |=
37
3.5 การประกาศตวแปร (Variable)
วธ1 [ชนดของขอมล] ชอตวแปร;
วธ2 [ชนดของขอมล] ชอตวแปร = [คาเรมตนของตวแปร];
int x; int x =1;
int y, z;
int Y, Z = 3;
Double d = 10.99;
String s1 = “Visual", s2=“C#” , s3=“.Net”;
หมายเหต: ไมสามารถประกาศตวแปรซาภายในบลอก {…} เดยวกน
38
3.6 การประกาศคาคงท (Constant)
ตวอยาง
const int x = 1;
const double pi = 3.14;
const [ชนดของขอมล] ชอตวแปร = คาคงท;
คาคงทเปนตวแปรทกาหนดคาตายตว ไมสามารถเปลยนแปลงได
39
4. ประเภทของขอมลในภาษา C#
สาหรบภาษา C# สามารถแบงกลมประเภท ได 3 กลม ดงน
1. Value types
2. References types
3. Pointer types
40
Value types ตวแปรของกลมนเปนประเภททใชขอมลโดยตรง
จะเปลยนแปลงคาเมอมคาใหมไปเกบทบคาเดม และจะถกทาลายเมออยนอกขอบเขต
ชนดขอมลในกลมประเภทน คอ sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, bool และ decimal
4. ประเภทของขอมลในภาษา C#
41
4.1 ชนดของขอมล
I. Numeric (เลขจานวนเตม และเลขทศนยม)
II. Char (ตวอกษร)
III. String (ขอความ)
IV. Boolean (บลน)
V. Object (วตถ)
42
4.2 เลขจานวนเตม
Data type ขนาด คาของขอมล
sbyte (System.SByte) 1 byte -128 ถง 127
short (System.Int16) 2 bytes -32,768 ถง 32,767
int (System.Int32) 4 bytes -2,147,483,648 ถง
2,147,483,647
long (System.Int64) 8 bytes -263 ถง (263 – 1)
43
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 -1
44
4.3 เลขทศนยม
Data type ขนาด คาของขอมล
float (System.Single) 4 bytes ±1.5 x 10-45 ถง ±3.4 x 1038
ความแมนยาของทศนยมอยท 7 ตาแหนง
double
(System.Double)
8 bytes ±5.0 x 10-324 ถง ±1.7 x 10308
ความแมนยาของทศนยมอยท 15 ตาแหนง, มชวงของขอมลกวางทสด
decimal
(System.Decimal)
16 bytes ±1.0 x 10-28 ถง ±7.9 x 1028
ความแมนยาของทศนยมอยท 28 ตาแหนง, ชวงขอมลแคบกวา double
แตใหคาละเอยดมากในสวนของทศนยมเหมาะกบการคานวณเรองเงน
45
4.4 ชนดขอมลอกขระ
Data type ขนาด คาของขอมล
char
(System.Char)
2 bytes ตวอกษรแบบ Unicode มเครองหมาย '
(single quote) ครอมตวอกษร เชน 'A',
'1‘
char c = ‘A’;
string
(System.String)
ไมแนนอน ตวอกษรแบบ Unicode หลายตวมา
รวมกน มเครองหมาย " (double
quote) ครอม
เชน "Hello“
string s = “Welcome”;
46
4.5 ขอมลชนดบลน
Data type ขนาด คาของขอมล
bool
(System.Boolean)
1 bit มคาทเปนไปได 2 คา คอ
true และ false
นามาใชกรณเกยวกบการเลอกโดย
พจารณาเงอนไข
เชน
bool bfact;
bfact = true; หรอ
bool bfact = true;
55. . ตวอยางการเขยนโปรแกรมอยางงายตวอยางการเขยนโปรแกรมอยางงาย
47
48
5. ตวอยางการเขยนโปรแกรมอยางงาย
1. เลอก
Create New project
49
2. ตงชอ Project
1 เลอก Windows 1. เลอก Windows
Froms Application
3. Click
1. การใชงานเครองมอ “TextBox”
50
การรบขอมลดวย TextBox
51
1. แสดงToolbox
2. คลกคางท
TextBox และ
ลากไปยง Form1
3. วางท 3. วางท
From1
52
การกาหนดคณลกษณะของ TextBox
1. คลกขวาท
TextBox
2. เลอก
Properties
3. จะปรากฎหนาตาง
Properties
53
การกาหนดคณลกษณะของ TextBox
กาหนดขอความท TextBox
“ทดลองพมพชอตวเอง”
กาหนดชอตวแปร
ชอ : textBox1 -> myTextBox
ทดลองแกคาพารามเตอร
(Name) และ Text
54
การกาหนดคณลกษณะของ TextBox
1. คลก Run
2. จะปรากฎหนาตาง
โปรแกรมดงน
55
การรบขอมลดวย Button
1. แสดงToolbox
2. คลกคางท
Button และลาก
ไปยง Form1
3. วางท 3. วางท
From1
56
การกาหนดคณลกษณะของ Button
กาหนดขอความท
TextBox
“ทดลองพมพชอ
ตวเอง”
กาหนดชอตวแปร
button1-> BT1
57
การรบสงงานผาน Button
จะทางานหลงจากคลก
button1
Goto Events
Double click @ ”Click”
58
การโปรแกรมสงงานเมอมการ click button
เมอโปรแกรมเสรจใหทาการกด Run
เพมโคด
59
กอน Click หลง Click
ผลการ Run
กอน Click หลง Click
2. การใชงานเครองมอ “Label”Label”
60
61
การใชงาน Label
1. แสดงToolbox
2. คลกคางท 2. คลกคางท
Button และลาก
ไปยง Form1
3. วางท 3. วางท
From1
62
กาหนดคณสมบตของ Label
การกาหนดคณสมบตทาลกษณะเดยวกบ TaxtBox และ Button
กาหนดให
(Name) : score
Text : A
1. แสดง Label
3. การแปลงตวแปลขอมล
((String String --> Integer> Integer) ) or or ((IntegerInteger-->String >String ))
63
64
ทดลองเขยนโปรแกรมคานวณพนทสเหลยม
เงอนไข
I. รบ Input จาก 2 TextBox
II. ทางานเมอกดปม Button
III. แสดงผลคาพนทใน Label
กาหนดคณสมบต
TextBox1 (Name) TB1
TextBox2 (Name) TB2
Button1 (Name) BT1
Labal1 (Name) LB1
Labal1 Text Area
65
การรบขอมลจาก TextBox + Button+ Label
ประกาศตวแปร
String เปน Integer
คาสงแปลงขอมลจาก
String เปน Integer
อานขอมล Text จาก TextBox (TB1)อานขอมล Text จาก TextBox (TB1)
อานขอมล Text จาก TextBox (TB2)อานขอมล Text จาก TextBox (TB2)
คานวนคาพนทคานวนคาพนท
แปลงขอมลจาก Integer เปน Stringแปลงขอมลจาก Integer เปน String
4. การตรวจสอบเงอนไข IF ()IF ()
ELSE ELSE
66
67
tb1
tb2
หนาตางโปรแกรมสาหรบขอมล
และแสดงผล
68
คาสงแปลงขอมลจาก
String เปน Integer
อานขอมล Text จาก TextBox (tb1)
ตวอยางการเชคเงอนไข
If-else
5. การทาซา
For loopFor loop
69
70
5. การทาซา
1. เรมตน [0]
2. เงอนไขจดสนสด [10]
3. การเลอนการทาซา [+1]
1. จงเขยนโปรแกรมเพอคานวณและแสดงผลคา A ออกทาง Label เมอ
กาหนดให A = 2B + 3C – D (ใช TextBox 3 ตวเพอรบคา Input)
2. จงเขยนโปรแกรมการหาพนทวงกลม ทรบคารศมจากแปนพมพแลว
แสดงผลลพธทางหนาจอ Label (ใช TextBox 1 ตวเพอรบคา Input )
Assignment#21-2
71
จงเขยนโปรแกรมเพอเปรยบเทยบคาขอมลทเกบในตวแปร x (TextBox)
โดยมเงอนไขดงน
ถา x >0 ใหแสดงผลเปน Text คาวา “Positive Number”
ถา x <0 ใหแสดงผลเปน Text คาวา “Negative Number”
ถา x =0 ใหแสดงผลเปน Text คาวา “Zero Number”
***ทาการคานวณเมอกด Button และผลลพธแสดงออกทาง TextBox
3 Assignment#2
72