บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... ·...

Post on 24-Jan-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

บทท 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

top related