Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
บทท 1 แนะน ำกำรเขยนโปรแกรมเบองตน
อ.ดร. นฐพงศ สงเนยม
วชำ กำรเขยนโปรแกรมเชงวตถ 4122309
www.siam2dev.net
สำขำวชำวทยำกำรคอมพวเตอร
คณะวทยำศำสตรและเทคโนโลย
มรภ. พระนคร
OOP: Object Oriented Programming (4122309) …1
ขอขอบคณ :: ภาควชาวทยาการคอมพวเตอร คณะวทยาศาสตรมหาวทยาลยขอนแกน
07-04-2562
สาขาวชา เทคโนโลยสารสนเทศ 42-1
• เรยนเขยนโปรแกรม – วชา การเขยนโปรแกรม 1 อ.สนนทา ภาษา ซ
– วชา เขยนโปรแกรม 2 ….กรรณการ VB2010
2
โปรแกรมเมอรคนแรกของโลก Augusta Lovelace Ada คอ โปรแกรมเมอรคนแรกของโลก แต Edsger Wybe Dijkstra ใชค าวา โปรแกรมเมอร (Programmer) กบโลกของคอมพวเตอรเปนคนแรก
ขอมลจาก http://www.twoguru.com/playground/article/dijkstra.htmขอมลจาก http://www.cs.utexas.edu/users/dahlin/Classes/GradOS/papers/p341-dijkstra.pdfขอมลจาก http://www.twoguru.com/playground/article/dijkstra.htmขอมลจาก http://www.thaiall.com/article/teachpro.htm
ADA
Machine Language
4
01 เปด
ปด
ASCII CODE 8 bit : Binary Digit
000000000000000100000010
…11111111
2^8 = 256
UNI CODE 16 bit : Binary Digit
ENCODING
5
6
7
8
C++
9
C++
10
11
12
โปรแกรมเมอรคนแรกของโลก
•"what if a calculating engine could not only foresee but could act on that foresight" •(จะเปนอยางไร ถาหากเครองค านวณไมเพยงสามารถหยงรได หากแตสามารถตอบสนองตอการหยงรนนไดดวย)•สงทเธอท าคอ การสรางภาษาส าหรบเครองวเคราะห (analytical engine)
โปรแกรมเมอรคนแรกของโลก
•แตงเพลงทซบซอน •สรางภาพกราฟก•น ามาใชเพอการค านวณขนสง •พฒนาวงการวทยาศาสตรได
•รอยกวาปตอมา ในป พ.ศ. 2522 (ค.ศ. 1979) กระทรวงกลาโหมสหรฐฯ สรางภาษาคอมพวเตอรมาตรฐานISO ขนมาตวแรก พรอมตงชอเพอเปนเกยรตแก เลด เอดา วา ภาษา "ADA"
โปรแกรมเมอรคนแรกของโลก
•แตงเพลงทซบซอน •สรางภาพกราฟก•น ามาใชเพอการค านวณขนสง •พฒนาวงการวทยาศาสตรได
•รอยกวาปตอมา ในป พ.ศ. 2522 (ค.ศ. 1979) กระทรวงกลาโหมสหรฐฯ สรางภาษาคอมพวเตอรมาตรฐานISO ขนมาตวแรก พรอมตงชอเพอเปนเกยรตแก เลด เอดา วา ภาษา "ADA"
ภาษาคอมพวเตอร
• หมายถง สญลกษณทผคดพฒนาภาษาก าหนดขนมา
• เพอใชแทนค าสงสอสารสงงาน ระหวางมนษยกบเครองคอมพวเตอรและอปกรณตอพวงอนๆ
สวนประกอบของภาษาคอมพวเตอร
• Source Code
• Compiler ตวแปล ภาษา...– Compiler
– Interpreter
• ไวยากรณทางภาษา Syntax
17
ประธาน กรยา กรรม
ประเภทของขอผดพลาด (Error)
• Syntax Error
• Runtime Error
• Logical Error
18
ประธาน กรยา กรรม
VBdim x as integer
VBdim x as intDter
VBdimxasinteger
keyword Variables_name Data Type
จะเขยนโปรแกรม จะตองร 2 อยาง
1. Algorithm วธการแกไขปญหา
2. Syntax ไวยากรณทางภาษา
19
Algorithm วธการแกไขปญหา
Syntax ไวยากรณทางภาษา
จงค านวณ พ.ท. สเหลยมผนผาใดๆ
เครองมอ(Tools) ในการน าเสนออลกอรทม ให/ใชสอสารกบบคคลทเกยวของ
20
• PSEUDO - CODE
• FLOWCHART
21
ก าหนดปญหา หา/คดAlgorithm
Coding
Testing
Implement
Syntax / Language / Tools
PSEUDOCODEFLOWCHART
1
การวเคราะหปญหา 1. สงทโจทยตองการ2. รปแบบผลลพธ3. ขอมลเขา4. ตวแปรทใช
5. วธการประมวลผล
จงวเคราะหปญหา การหา พ.ท. สเหลยมผนผา
1. สงทโจทยตองการ.................................... พ.ท. สเหลยมผนผา ..........
2. รปแบบผลลพธ
22
1. สงทโจทยตองการ2. รปแบบผลลพธ3. ขอมลเขา4. ตวแปรทใช
5. วธการประมวลผล
dos windows
web Mobile
การออกแบบหนาจอ
• INPUT
• PROCESS
• OUTPUT
23
DOS
กรปอน ความยาว : ………..กรปอน ความสง : ………..
DOS
สเหลยมผนผาเทากบ : xxx.xx
24
โปรแกรมค านวณพนทสเหลยมผนผา
ความยาว :
ความสง :
ค านวณ ยกเลก
ผลลพธ
3. ขอมลน าเขา
• ความกวาง
• ความยาว
25
4. ตวแปรทใช• INPUT …………………………
– Width แทน ความกวาง– Height แทนความสง
• OUTPUT ……………………– RectangleArea แทน พนทสเหลยม
• PROCESS …………………..– RectangleArea แทน พนทสเหลยม
26
Dim width , Height , RectangleArea
Width
Height
VB
Dim x as int16Dim x as StringDim y as singleDim width as single
5. วธการประมวลผล
1. กวาง*ยาว
2. ...
3. ...
27
1. กวาง*ยาว
2. ...
3. ...
Algorithm
ภาษาคอมพวเตอรมมากมายขอมลจาก http://dmoz.org/Computers/Programming/Languages/ 143 ภาษา ขอมลจาก http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm 2500 ภาษา ขอมลจาก http://www.levenez.com/lang/ 50 ภาษา (Computer Languages Timeline) ABC, Ada, ADL, Algol 60, Algol 68, APL, AppleScript@, Assembly, Awk, BASIC, Befunge, BETA, Bigwig, Bistro@, Blue, Brainfuck, C, C++, Caml@, Cecil, CHILL, Clarion, Clean, Clipper, CLU, Cobol, CobolScript, Cocoa, Component Pascal@, C-sharp, Curl, D, DATABUS, Delphi, DOS Batch@, Dylan, E, Eiffel, ElastiC, Erlang, Euphoria, Forth, Fortran, Fortress, FP, Frontier, Goedel, Groovy@, Haskell, HTML@, HTMLScript@, HyperCard@, ICI, Icon, IDL, Intercal, Io, Jal@, Java, JavaScript, Jovial, LabVIEW, Lagoona@, LaTeX@, Leda, Limbo, Lisp, Logo@, Lua, m4, Maple@, Mathematica@, MATLAB@, Mercury, Miranda, Miva, ML, Modula-2, Modula-3, Moto, Oberon, Objective Caml@, Objective-C, Obliq, Occam, Oz, Pascal, Perl, PHP, Pike, PL, Pliant, PL-SQL, POP-11, PostScript@, PowerBuilder@, Prograph, Prolog, Proteus, Python, R@, REBOL, Refal, Rexx, Rigal, RPG, Ruby, SAS, Sather, Scheme@, Self@, SETL, SGML@, Simkin, Simula, Sisal, S-Lang, Smalltalk, Snobol, SQL, Squeak@, Tcl-Tk, Tempo, TeX@, TOM, TRAC, Transcript, Turing, T3X, UML@, VBScript@, Verilog@, VHDL@, Visual Basic, Visual DialogScript, Visual FoxPro, Water, XML@, XOTcl@, YAFL, Yorick, Z
ภาษาคอมพวเตอร
สำมำรถแบงออกไดเปน 5 ยค ดงน
1. ภาษาเครอง (Machine language)
2. ภาษาแอสเซมบล (Assembly language)
3. ภาษาชนสง (High-level language)หรอ ภาษารนท 3
(3GL:Third Generation Language)
4. ภาษาชนสงมาก (Very high-level language)
หรอภาษารนท 4 (4GL)
5. ภาษาธรรมชาต (Natural language) หรอภาษารนท 5
(5GL)
SQL
• อยากไดขอมล ลกคาทมเงนเดอนมากกวา 50000
• “SELECT * FROM TbCustomer WHERE Salary > 50000”
30
AINeural Network
Fuzzy
• Prolog
• Lisp
31
ASCII
• 8 Bit = 1 Byte
• 01010101 = 256 = 2^8• 256 แบบ 44 26
• 1024 Byte = 1 Kilo
• 1MB = 1024 k = 1024*1024 byte
• 1GB = 1024MB = 1024*1024*1024
• 1 TB = 1024GB
32
2MB8 MB16 MB32 MB8 GB
1. ภำษำเครอง (Machine language)
• เปนภาษาพนฐานทคอมพวเตอรสามารถเขาใจได แตละค าสงประกอบขนจากกลมตวเลข 0 และ 1 ซงเปนเลขฐานสอง
2. ภาษาแอสเซมบล (Assembly language)
• เปนภาษาทใชสญลกษณขอความ แทนกลมของตวเลขฐานสอง เพอใหงายตอการเขยนและการจดจ ามากขน การท างานของโปรแกรมจะตองท าการแปลภาษาแอสเซมบลใหเปนภาษาเครอง โดยใชตวแปลทเรยกวา แอสเซมเบลอร (Assembler)
3. ภาษาชนสง (High-level language) หรอภาษารนท 3(3GL:Third Generation Language)
• ถกสรางขนมาเพอใหเขยนโปรแกรมไดงายขน โดยมลกษณะเหมอนกบภาษาองกฤษทวไป ผเขยนไมจ าเปนตองมความรเกยวกบฮารแวรแตอยางใด ภาษานจ าเปนตองมตวแปลภาษาเครองเชนกน เรยกตวแปลนวา คอมไพเลอร (compiler) หรอ อนเตอรพรเตอร (Interpreter) อยางใดอยางหนง
• ตวอยางของภาษาชนสง เชน ภาษาปาสคาล ภาษาซ ภาษโคบอล ภาษาเบสก ภาษาฟอรแทรน
4. ภำษำชนสงมำก (Very high-level language)หรอภำษำรนท 4 (4GL)
• เปนภาษาทมลกษณะคลายภาษาพดตามปกตของมนษย ภาษานจะชวยใหการเขยนโปรแกรมเรวมากขนกวาภาษาในรนท 3เนองจากมเครองมอทชวยในการสรางแบบฟอรมหนาจอ เพอจดการกบขอมลรวมไปถงการออกรายงาน เมนตาง ๆ
• ตวอยางของภาษาชนสงมากไดแก informix-4GL, MAGIC , Delphi , Power Builder ฯลฯ
5. ภำษำธรรมชำต(Natural language) หรอภำษำรนท 5 (5GL)
• เปนภาษาทสามารถสงงานคอมพวเตอรโดยใชรปแบบของภาษามนษย ได เลย ค าส งอย ในรปแบบท ไมแนนอนตายตว แตคอมพวเตอรจะท าการแปลใหออกมาในรปทคอมพวเตอรเขาใจได ภาษานถกสรางขนมาจากเทคโนโลยทางดานระบบผเชยวชาญ(Expert system)
• ตวอยางภาษาในรนท 5 ไดแก ภาษา PROLOG เปนตน
ขนตอนกำรเขยนโปรแกรมคอมพวเตอร
1. กำรวเครำะหปญหำ (Problem analysis)
2. กำรออกแบบโปรแกรม (Design)
3. กำรเขยนโปรแกรมโดยใชภำษำใดภำษำหนง (Coding)
4. กำรตรวจสอบขอผดพลำดของโปรแกรม (Testing and Debugging )
5. กำรทดสอบควำมถกตองของโปรแกรม (Testing and validating)
6. กำรท ำเอกสำรประกอบโปรแกรม (Documentation)
7. กำรบ ำรงรกษำโปรแกรม (Program Maintenance)
38
39
ก าหนดปญหา หา/คดAlgorithm
Coding
Testing
Implement
Syntax / Language / Tools
PSEUDOCODEFLOWCHART
1
การวเคราะหปญหา 1. สงทโจทยตองการ2. รปแบบผลลพธ3. ขอมลเขา4. ตวแปรทใช
5. วธการประมวลผล
จงเขยนโปรแกรม เพอหา วา 1 ป มกวนาท
• วเคราะหปญหา ...
40
1. สงทโจทยตองการ2. รปแบบผลลพธ3. ขอมลเขา4. ตวแปรทใช
5. วธการประมวลผล
เขยนเปนโปรแกรม ใน Visual Basic
1. สงทโจทยตองการ
• สงทโจทยตองการ คอ จ านวนวนาท ตอ 1 ป
41
2. รปแบบผลลพธ
จ านวนวนาทใน 1 ป เทากบ x,xxx
42
3. ขอมลน าเขา
43
4. ตวแปรทใช
SecondInYears แทน จ านวนวนาทใน 1 ป
44
5. วธการประมวลผล
1. เรมตน
2. ก าหนด SecondInYear 0
3. ค านวณ SecondInYear 365*24*60*60
4. แสดงผลลพธ
5. สนสด
45
PSEUDOCODE
1. START
2. SET SecondInYear 0
3. COMPUTE SecondInYear 365*24*60*60
4. DISPLAY SecondInYear
5. FINISH / STOP
46
จ ำนวนวนำทใน 1 ป เทำไหร
▪ INPUT▪ 365 * 24 * 60 * 60
▪ PROCESS ?▪ Algorithm
▪ OUTPUT ▪ ค าตอบ
47
การวเคราะหปญหา
• สงทตองพจารณา– Input ? (พจารณาจาก Output)–Output? (พจารณาอนดบแรก)–Process (ยงไมตองสนใจตอนน)
48
ProcessInput
OutputInput
12 3
แนวความคดเบองตนการวเคราะหปญหา
• การวเคราะหปญหา
49
วเคราะหผลลพธ วเคราะห Input Process เขยนขนตอนการแกปญหา
การออกแบบโปรแกรม
เครองมอทใชในการออกแบบผงงาน (Flowchart) ขนตอนการแกปญหาทละขนตอนในลกษณะรปภาพรหสจ าลอง (Pseudo) รปแบบเปนภาษาพดงาย ๆ ภาษาองกฤษ หรอภาษาไทยกได
50
Algo
1. START / BEGIN /
2. SET SUM 0 , I 0
3. WRITE PRINT / DISPLAY / SHOW
4. INPUT / ENTER / READ
5. COMPUTE /SET I I + 1
6. STOP / END / FINISH
51
ASSIGN
Operator =
:=
การพฒนาอลกอรธม
• ขอดของรหสเทยม (จ าลอง)–แปลงเปนโปรแกรมไดงาย
• ขอดของผงงาน–อานงาย เขาใจตรงกนได
52
53
สญลกษณในผงงาน
จดเรมตน หรอสนสด
อานขอมลเขา หรอแสดงผล
ประมวลผล
ตดสนใจ
แฟมขอมล
จดเชอมตอในหนาเดยวกน
โปรแกรมยอย
แสดงผลทางหนาจอแสดงทศทางการประมวลผล
พมพผลทางเครองพมพ
จดเชอมตอในหนาอน
54
55
1. จงวาดผงงานขางตนดวย MS_word2. จงแปลงเปน PSEUDO-CODE เขยนลงในสมดคมอ
56
1. จงวาดผงงานขางตนดวย MS_word2. จงแปลงเปน PSEUDO-CODE
การพฒนาอลกอรธม
• หลกการโครงสรางควบคม (Control structures)การเขยนขนตอนในรายละเอยดของแตละอลกอรธม อาศยโครงสรางควบคมดงน
–โครงสรางล าดบ (Sequence structure)–โครงสรางตดสนใจ (Selection structure)–โครงสรางท าซ า (Repetition structure)
57
การพฒนาอลกอรธม• โครงสรางล าดบ
– หมายถง งานทตองท าตองมล าดบกอนหลง – เชน อลกอรธม “การตนนอนตอนรบวนใหม”
• งาน ตนนอน• งาน ถอดชดนอน• งาน เขาหองน า• งาน แตงตว• งาน เดนทางมาเรยน
ตองจดล าดบใหถกตอง
58
งาน ตนนอน
งาน ถอดชดนอน
งาน เขาหองน า
งาน แตงตว
งาน เดนทางมาเรยน
โครงสรางการท างานแบบล าดบ (Sequence)
• โครงสรางล าดบ– หลกการใหมองงานเปนชนใหญกอน ยงไมตองลงรายละเอยด แลวจดล าดบความคดวาจะท าอะไร กอนหรอหลง ตามล าดบ
59
งาน 1
งาน 2
Beginงาน 1งาน 2
endผงงาน รหสเทยม
ตวอยางการเขยนผงงาน
• จงเขยนผงงานทแสดงล าดบการค านวณตวเลข เพอหาผลลพธการค านวณ แลวเกบผลลพธไวในหนวยความจ าต าแหนง K
8 + 10 / 5 - 6 * 3โดยมล าดบการค านวณทางเลขคณต ดงน
1. ยกก าลง2. คณหรอหาร (โดยท าจากซายไปขวา)3. บวกหรอลบ (โดยท าจากซายไปขวา)
60
ตวอยางการเขยนผงงาน
61
เรมตน
T1 = 10 / 5
T2 = 6 * 3
A
A
T3 = 8 + T1
K = T3 - T2
จบงาน
การพฒนาอลกอรธม
example: จงเขยนโปรแกรมค านวณหาคา y ของสมการy = x^2 + 2x +10
62
start
read x
y = x*x + 2*x +10
write y
stop
Beginread xy = x*x + 2*x +10write y
End
รหสเทยมผงงาน
จงเขยนผงงานค านวณการหาพนทสเหลยมคางหม โดยก าหนดคาความยาวดานคขนานและความสงให
63
เรมตน
อานความยาวดานคขนานและความสง
ค านวณหาพนทคางหม =½ * ผลบวกของดานคขนาน * สง
1
1
พมพคาพนท
จบงาน
กำรพฒนำอลกอรธม
• โครงสรางตดสนใจ (selection)– โครงสราง IF
– โครงสราง IF else
64
กำรพฒนำอลกอรธม
• โครงสราง IF– เปนโครงสรางททดสอบเงอนไข แลวเลอกวาจะท าหรอไมท า กอนทจะไป
ท างานอนตอไป
65
เงอนไข งำนทตองท ำใช
งำนตอไป
ไมใช
การพฒนาอลกอรธม
ตวอยาง โครงสราง IFแมถามวาหวขาวหรอไม ถาหวกใหกน ถาไมหวไมตองกน แลวจง เดนทางไป
โรงเรยน (งานตอไป)66
หวใชไหม? งำนกนขำวใช
งำนเดนทำงมำเรยน
ไมใช
ตวอยำงกำรเขยนผงงำน• จงเขยนผงงานแสดงการเขยนและสงจดหมาย
67
เรมตน
เขยนจดหมาย
พบจดหมาย
ใสซองจดหมาย
จาหนาซอง
1 จบงาน
1
มแสตมปหรอไม
ท าการซอแสตมป
ตดแสตมป
สงจดหมาย
ม ไมม
การพฒนาอลกอรธม
• ตวอยาง โครงสราง IF–จงเขยนผงงาน แสดงยอดขาย ถาซอสนคามากกวา 1000 บาทมสวนลดให 10%
–วธคด:• Output คอยอดขายสทธ• Input คอ ยอดขายกอนหกสวนลด• Process มรายละเอยดเขยนดวยผงงานไดในหนาถดไป
68
การพฒนาอลกอรธม• ตวอยาง(ตอ) โครงสราง IF
69
start
Read total
Discount = 0
Total >1000
Discount = total * 10/100
NetTotal = total - discount
Write NetTotal
Beginread total discount = 0if (total >1000) then
discount = total *10/100end if
netTotal = total – discountWrite netTotalEnd
รหสเทยมผงงาน
yesno
End
No Yes
False True
การพฒนาอลกอรธม
• โครงสราง IF-else
70
If เงอนไขงาน 1
Elseงาน 2
End if
เงอนไข
งาน 1งาน 2
ใชไมใช
การพฒนาอลกอรธม
• โครงสราง IF-Else–ตวอยาง รานคาแหงหนงมนโยบาย ลดราคาใหลกคา ถาเปนชายจะลดให 5% แตถาเปนหญง จะลดให 10% จงเขยนอลกอรธมเพอพมพยอดขาย
–วเคราะหปญหา• Output คอ ราคาสทธ ก าหนดใหเปน netTotal• Input คอ ราคาสนคา และ เพศ ก าหนดใหเปน total และ
sex ตามล าดบ• Process เขยนดวยผงงาน ดงในหนาตอไป
71
IF-ELSE
72
start
Read total, sex
Discount 0
Sex = ‘M’
discount total * 0.1 discount total * 0.05
netTotal total - discount
Write netTotal
yesno
End
X = 10X = X + 5
• X 10
• X X + 5
73
โครงสรางการท างานแบบมการเลอก (Selection)
ในบรเวณ A และ B ของหนวยความจ ามตวเลขเกบอย จงเขยนผงงานทแสดงการเปรยบเทยบระหวาง A และ Bตามเงอนไข ดงนถา A>B ค านวณ A-B น าผลทไดไปเกบไวท Cถา A<B ค านวณ A+B น าผลทไดไปเกบไวท Cถา A=B เอา ไปเกบไวท C
เรมตน
C A - B
C A + B
C A
A > B
A < B
จบงาน
ใช
ใช
ไมใช
ไมใช
ตวอยางการเขยนผงงาน
• เมอเราซอยาจากรานขายยาทมอยท ว ๆ ไปนน ในสวนของวธใชยามกจะแยกขนาดรบประทานไวตามอาย เชนอายมากกวา 10 ป รบประทานครงละ 3 ชอนชาอาย 6-10 ป รบประทานครงละ 2 ชอนชาอาย 2-5 ป รบประทานครงละ 1 ชอนชาเดกอายต ากวา 1 ป หามรบประทาน
จงเขยนผงงานทแสดงถงขนาดของการใชยาตามอายน
75
76
เรมตน
อาย > 10
6 <= อาย <=10
2 <= อาย <=5
หามรบประทาน
จบงาน
รบประทานครงละ3 ชอนชา
รบประทานครงละ2 ชอนชา
รบประทานครงละ1 ชอนชา
ใช
ใช
ใชไมใช
ไมใช
ไมใช
การพฒนาอลกอรธม
• โครงสรางท าซ า (Repetition Structure)–While Repetition Structure
• โครงสรางทตองตรวจสอบเงอนไขกอนท าในลป
– Do While Repetition Structure• โครงสรางทตองประมวลผลในลปอยางนอย 1 รอบกอนทดสอบเงอนไขออกจากลป
77
การพฒนาอลกอรธม
โครงสราง while
78
While เงอนไขงาน
end while
เงอนไข
งาน
เทจ
จรง
รหสเทยม
ผงงาน
การพฒนาอลกอรธม
โครงสราง DO while
79
เงอนไข
งาน
เทจ
จรง
ผงงาน
DOค าสงตาง ๆ
While เงอนไข
รหสเทยม
การพฒนาอลกอรธม
• ตวอยาง โครงสราง while• จงเขยน โปรแกรมค านวณหาผลรวมของสมการตอไปน
sum = 1 + 2 + 3 + … + N• วเคราะหปญหา– Output คอ sum– Input คอ N– Process ม งาน 3 งาน
1. งาน รบคา N2. งานค านวณหาคาของ sum (วงลป ดวยโครงสราง while)3. พมพผลลพธ sum 80
ตวอยาง โครงสราง while
81
start
Read N
Sum = 0I = 1
I <= N
Sum = sum + I
I = I + 1
write sum
stop
beginRead NSum = 0I = 1While (I <= N)
sum = sum + II = I +1
End whileWrite “sum” , sumend
รหสเทยม
ผงงาน
No
Yes
ตวอยาง โครงสราง Do while
82
start
Read N
Sum = 0I = 0
I < N
Sum = sum + I
I = I + 1
write sum stopyes no
Begin Read Nsum = 0I = 0doI = I + 1sum = sum + I
while (I < N)write Sum
end
ผงงานรหสเทยม
โครงสรางการท างานแบบมการท างานซ า (Iteration)
83
เรมตน
J = 0
J = J + 1
J < 100
จบงานใช
ไมใช
Do While
เรมตน
J = 0
J = J + 1
J < 100
จบงาน
ไมใช
ใช
While
โครงสรางการท างานแบบมการท างานซ า (Iteration)
จงเขยนผงงาน แสดงถงการพมพคาบวกของ 1+2+3+4+5+.....+100
ออกทางเครองพมพ
84
เรมตน
J=1SUM = 0
SUM = SUM+J
J=J+1
J <=100? Print SUM จบงานใช ไมใช
การเขยนโปรแกรมโดยใชภาษาใดภาษาหนง(Coding)
• การเขยนโปรแกรมทดนน ควรจะท าตามขนตอน คอเรมตงแต วเคราะหปญหา กอนแลวท าการออกแบบโปรแกรม จงเรมเขยนโปรแกรม ส าหรบผ ทไมมประสบการณควรทดลองเขยนในกระดาษกอน แลวตรวจสอบจนแนใจวาสามารถท างานไดแลวจงท าการคยลงเครอง
85
การตรวจสอบขอผดพลาดของโปรแกรม(Testing and Debugging the Program)
• รปแบบขอผดพลาด ม 3 แบบคอ
– Syntax Error – ขอผดพลาดจากการใชไวยากรณภาษาทผด หรอ อาจเกดจากการสะกดค าผด
– Run-time Error – ขอผดพลาดในระหวางการปฏบตงาน(Execution) มกเกดจากความรเทาไมถงการณ
– Logical Error – ขอผดพลาดทหาและแกไดยากทสด ตองท าการไลโปรแกรมทละค าสงเพอหาขอผดพลาดนน
86
การตรวจสอบขอผดพลาดของโปรแกรม(Testing and Debugging the Program)
วธการตรวจสอบขอผดพลาดของโปรแกรม มดงน การตรวจสอบดวยตนเอง (Self Checking) เขยนโปรแกรมลงกระดาษแลวไลเชคตรวจสอบการท างานทละขนดวยตนเอง วาจะมการท างานทถกตองตามความตองการหรอไม
ตรวจสอบดวยการแปลโปรแกรม (Translating) การแปลเปนภาษาเครอง ตรวจสอบขอผดพลาดของโปรแกรม
87
การทดสอบความถกตองของโปรแกรม (Testing and Validating)
วธทดสอบความถกตองของขอมล มดงน กรณทขอมลถกตอง (valid case) ทดสอบโดยใสขอมลทถกตองลงไปในโปรแกรม เพอทดสอบผลลพธวาตรงกบทตองการหรอไม
การใชขอบเขตและความถกตองของขอมล (Range check and Completeness check) เปนการเชคขอบเขตขอมล
การใชความสมเหตสมผล (Consistency Check)
88
การทดสอบความถกตองของโปรแกรม (Testing and Validating)
ขอมลทเปนตวเลขและตวอกษร (Correct No. and Type character check)ตรวจสอบวาถาเปนฟลดทเปนตวเลขอยางเดยว เชน จ านวนเงน กควรจะปอนขอมลไดเฉพาะตวเลขเทานน
ขอมลเปนไปตามขอก าหนด (Existence Check) ขอมลทปอนตองเปนไปตามทก าหนดไวแนนอนแลวเทานน
89