89
บทที1 แนะนำกำรเขียนโปรแกรมเบื้องต้น .ดร. นัฐพงศ์ ส่งเนียม วิชำ กำรเขียนโปรแกรมเชิงวัตถุ 4122309 www.siam2dev.net สำขำวิชำวิทยำกำรคอมพิวเตอร์ คณะวิทยำศำสตร์และเทคโนโลยี มรภ. พระนคร OOP: Object Oriented Programming (4122309) …1 ขอขอบคุณ :: ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยขอนแก่น 07-04-2562

บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

บทท 1 แนะน ำกำรเขยนโปรแกรมเบองตน

อ.ดร. นฐพงศ สงเนยม

วชำ กำรเขยนโปรแกรมเชงวตถ 4122309

www.siam2dev.net

สำขำวชำวทยำกำรคอมพวเตอร

คณะวทยำศำสตรและเทคโนโลย

มรภ. พระนคร

OOP: Object Oriented Programming (4122309) …1

ขอขอบคณ :: ภาควชาวทยาการคอมพวเตอร คณะวทยาศาสตรมหาวทยาลยขอนแกน

07-04-2562

Page 2: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

สาขาวชา เทคโนโลยสารสนเทศ 42-1

• เรยนเขยนโปรแกรม – วชา การเขยนโปรแกรม 1 อ.สนนทา ภาษา ซ

– วชา เขยนโปรแกรม 2 ….กรรณการ VB2010

2

Page 3: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

โปรแกรมเมอรคนแรกของโลก 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

Page 4: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

Machine Language

4

01 เปด

ปด

ASCII CODE 8 bit : Binary Digit

000000000000000100000010

…11111111

2^8 = 256

UNI CODE 16 bit : Binary Digit

ENCODING

Page 5: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

5

Page 6: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

6

Page 7: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

7

Page 8: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

8

Page 9: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

C++

9

Page 10: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

C++

10

Page 11: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

11

Page 12: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

12

Page 13: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

โปรแกรมเมอรคนแรกของโลก

•"what if a calculating engine could not only foresee but could act on that foresight" •(จะเปนอยางไร ถาหากเครองค านวณไมเพยงสามารถหยงรได หากแตสามารถตอบสนองตอการหยงรนนไดดวย)•สงทเธอท าคอ การสรางภาษาส าหรบเครองวเคราะห (analytical engine)

Page 14: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

โปรแกรมเมอรคนแรกของโลก

•แตงเพลงทซบซอน •สรางภาพกราฟก•น ามาใชเพอการค านวณขนสง •พฒนาวงการวทยาศาสตรได

•รอยกวาปตอมา ในป พ.ศ. 2522 (ค.ศ. 1979) กระทรวงกลาโหมสหรฐฯ สรางภาษาคอมพวเตอรมาตรฐานISO ขนมาตวแรก พรอมตงชอเพอเปนเกยรตแก เลด เอดา วา ภาษา "ADA"

Page 15: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

โปรแกรมเมอรคนแรกของโลก

•แตงเพลงทซบซอน •สรางภาพกราฟก•น ามาใชเพอการค านวณขนสง •พฒนาวงการวทยาศาสตรได

•รอยกวาปตอมา ในป พ.ศ. 2522 (ค.ศ. 1979) กระทรวงกลาโหมสหรฐฯ สรางภาษาคอมพวเตอรมาตรฐานISO ขนมาตวแรก พรอมตงชอเพอเปนเกยรตแก เลด เอดา วา ภาษา "ADA"

Page 16: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ภาษาคอมพวเตอร

• หมายถง สญลกษณทผคดพฒนาภาษาก าหนดขนมา

• เพอใชแทนค าสงสอสารสงงาน ระหวางมนษยกบเครองคอมพวเตอรและอปกรณตอพวงอนๆ

Page 17: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

สวนประกอบของภาษาคอมพวเตอร

• Source Code

• Compiler ตวแปล ภาษา...– Compiler

– Interpreter

• ไวยากรณทางภาษา Syntax

17

ประธาน กรยา กรรม

Page 18: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ประเภทของขอผดพลาด (Error)

• Syntax Error

• Runtime Error

• Logical Error

18

ประธาน กรยา กรรม

VBdim x as integer

VBdim x as intDter

VBdimxasinteger

keyword Variables_name Data Type

Page 19: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

จะเขยนโปรแกรม จะตองร 2 อยาง

1. Algorithm วธการแกไขปญหา

2. Syntax ไวยากรณทางภาษา

19

Algorithm วธการแกไขปญหา

Syntax ไวยากรณทางภาษา

Page 20: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

จงค านวณ พ.ท. สเหลยมผนผาใดๆ

เครองมอ(Tools) ในการน าเสนออลกอรทม ให/ใชสอสารกบบคคลทเกยวของ

20

• PSEUDO - CODE

• FLOWCHART

Page 21: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

21

ก าหนดปญหา หา/คดAlgorithm

Coding

Testing

Implement

Syntax / Language / Tools

PSEUDOCODEFLOWCHART

1

การวเคราะหปญหา 1. สงทโจทยตองการ2. รปแบบผลลพธ3. ขอมลเขา4. ตวแปรทใช

5. วธการประมวลผล

Page 22: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

จงวเคราะหปญหา การหา พ.ท. สเหลยมผนผา

1. สงทโจทยตองการ.................................... พ.ท. สเหลยมผนผา ..........

2. รปแบบผลลพธ

22

1. สงทโจทยตองการ2. รปแบบผลลพธ3. ขอมลเขา4. ตวแปรทใช

5. วธการประมวลผล

dos windows

web Mobile

Page 23: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การออกแบบหนาจอ

• INPUT

• PROCESS

• OUTPUT

23

DOS

กรปอน ความยาว : ………..กรปอน ความสง : ………..

DOS

สเหลยมผนผาเทากบ : xxx.xx

Page 24: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

24

โปรแกรมค านวณพนทสเหลยมผนผา

ความยาว :

ความสง :

ค านวณ ยกเลก

ผลลพธ

Page 25: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

3. ขอมลน าเขา

• ความกวาง

• ความยาว

25

Page 26: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

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

Page 27: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

5. วธการประมวลผล

1. กวาง*ยาว

2. ...

3. ...

27

1. กวาง*ยาว

2. ...

3. ...

Algorithm

Page 28: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ภาษาคอมพวเตอรมมากมายขอมลจาก 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

Page 29: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ภาษาคอมพวเตอร

สำมำรถแบงออกไดเปน 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)

Page 30: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

SQL

• อยากไดขอมล ลกคาทมเงนเดอนมากกวา 50000

• “SELECT * FROM TbCustomer WHERE Salary > 50000”

30

Page 31: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

AINeural Network

Fuzzy

• Prolog

• Lisp

31

Page 32: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

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

Page 33: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

1. ภำษำเครอง (Machine language)

• เปนภาษาพนฐานทคอมพวเตอรสามารถเขาใจได แตละค าสงประกอบขนจากกลมตวเลข 0 และ 1 ซงเปนเลขฐานสอง

Page 34: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

2. ภาษาแอสเซมบล (Assembly language)

• เปนภาษาทใชสญลกษณขอความ แทนกลมของตวเลขฐานสอง เพอใหงายตอการเขยนและการจดจ ามากขน การท างานของโปรแกรมจะตองท าการแปลภาษาแอสเซมบลใหเปนภาษาเครอง โดยใชตวแปลทเรยกวา แอสเซมเบลอร (Assembler)

Page 35: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

3. ภาษาชนสง (High-level language) หรอภาษารนท 3(3GL:Third Generation Language)

• ถกสรางขนมาเพอใหเขยนโปรแกรมไดงายขน โดยมลกษณะเหมอนกบภาษาองกฤษทวไป ผเขยนไมจ าเปนตองมความรเกยวกบฮารแวรแตอยางใด ภาษานจ าเปนตองมตวแปลภาษาเครองเชนกน เรยกตวแปลนวา คอมไพเลอร (compiler) หรอ อนเตอรพรเตอร (Interpreter) อยางใดอยางหนง

• ตวอยางของภาษาชนสง เชน ภาษาปาสคาล ภาษาซ ภาษโคบอล ภาษาเบสก ภาษาฟอรแทรน

Page 36: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

4. ภำษำชนสงมำก (Very high-level language)หรอภำษำรนท 4 (4GL)

• เปนภาษาทมลกษณะคลายภาษาพดตามปกตของมนษย ภาษานจะชวยใหการเขยนโปรแกรมเรวมากขนกวาภาษาในรนท 3เนองจากมเครองมอทชวยในการสรางแบบฟอรมหนาจอ เพอจดการกบขอมลรวมไปถงการออกรายงาน เมนตาง ๆ

• ตวอยางของภาษาชนสงมากไดแก informix-4GL, MAGIC , Delphi , Power Builder ฯลฯ

Page 37: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

5. ภำษำธรรมชำต(Natural language) หรอภำษำรนท 5 (5GL)

• เปนภาษาทสามารถสงงานคอมพวเตอรโดยใชรปแบบของภาษามนษย ได เลย ค าส งอย ในรปแบบท ไมแนนอนตายตว แตคอมพวเตอรจะท าการแปลใหออกมาในรปทคอมพวเตอรเขาใจได ภาษานถกสรางขนมาจากเทคโนโลยทางดานระบบผเชยวชาญ(Expert system)

• ตวอยางภาษาในรนท 5 ไดแก ภาษา PROLOG เปนตน

Page 38: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ขนตอนกำรเขยนโปรแกรมคอมพวเตอร

1. กำรวเครำะหปญหำ (Problem analysis)

2. กำรออกแบบโปรแกรม (Design)

3. กำรเขยนโปรแกรมโดยใชภำษำใดภำษำหนง (Coding)

4. กำรตรวจสอบขอผดพลำดของโปรแกรม (Testing and Debugging )

5. กำรทดสอบควำมถกตองของโปรแกรม (Testing and validating)

6. กำรท ำเอกสำรประกอบโปรแกรม (Documentation)

7. กำรบ ำรงรกษำโปรแกรม (Program Maintenance)

38

Page 39: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

39

ก าหนดปญหา หา/คดAlgorithm

Coding

Testing

Implement

Syntax / Language / Tools

PSEUDOCODEFLOWCHART

1

การวเคราะหปญหา 1. สงทโจทยตองการ2. รปแบบผลลพธ3. ขอมลเขา4. ตวแปรทใช

5. วธการประมวลผล

Page 40: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

จงเขยนโปรแกรม เพอหา วา 1 ป มกวนาท

• วเคราะหปญหา ...

40

1. สงทโจทยตองการ2. รปแบบผลลพธ3. ขอมลเขา4. ตวแปรทใช

5. วธการประมวลผล

เขยนเปนโปรแกรม ใน Visual Basic

Page 41: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

1. สงทโจทยตองการ

• สงทโจทยตองการ คอ จ านวนวนาท ตอ 1 ป

41

Page 42: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

2. รปแบบผลลพธ

จ านวนวนาทใน 1 ป เทากบ x,xxx

42

Page 43: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

3. ขอมลน าเขา

43

Page 44: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

4. ตวแปรทใช

SecondInYears แทน จ านวนวนาทใน 1 ป

44

Page 45: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

5. วธการประมวลผล

1. เรมตน

2. ก าหนด SecondInYear 0

3. ค านวณ SecondInYear 365*24*60*60

4. แสดงผลลพธ

5. สนสด

45

Page 46: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

PSEUDOCODE

1. START

2. SET SecondInYear 0

3. COMPUTE SecondInYear 365*24*60*60

4. DISPLAY SecondInYear

5. FINISH / STOP

46

Page 47: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

จ ำนวนวนำทใน 1 ป เทำไหร

▪ INPUT▪ 365 * 24 * 60 * 60

▪ PROCESS ?▪ Algorithm

▪ OUTPUT ▪ ค าตอบ

47

Page 48: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การวเคราะหปญหา

• สงทตองพจารณา– Input ? (พจารณาจาก Output)–Output? (พจารณาอนดบแรก)–Process (ยงไมตองสนใจตอนน)

48

ProcessInput

OutputInput

12 3

Page 49: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

แนวความคดเบองตนการวเคราะหปญหา

• การวเคราะหปญหา

49

วเคราะหผลลพธ วเคราะห Input Process เขยนขนตอนการแกปญหา

Page 50: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การออกแบบโปรแกรม

เครองมอทใชในการออกแบบผงงาน (Flowchart) ขนตอนการแกปญหาทละขนตอนในลกษณะรปภาพรหสจ าลอง (Pseudo) รปแบบเปนภาษาพดงาย ๆ ภาษาองกฤษ หรอภาษาไทยกได

50

Page 51: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

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 =

:=

Page 52: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

• ขอดของรหสเทยม (จ าลอง)–แปลงเปนโปรแกรมไดงาย

• ขอดของผงงาน–อานงาย เขาใจตรงกนได

52

Page 53: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

53

สญลกษณในผงงาน

จดเรมตน หรอสนสด

อานขอมลเขา หรอแสดงผล

ประมวลผล

ตดสนใจ

แฟมขอมล

จดเชอมตอในหนาเดยวกน

โปรแกรมยอย

แสดงผลทางหนาจอแสดงทศทางการประมวลผล

พมพผลทางเครองพมพ

จดเชอมตอในหนาอน

Page 54: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

54

Page 55: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

55

1. จงวาดผงงานขางตนดวย MS_word2. จงแปลงเปน PSEUDO-CODE เขยนลงในสมดคมอ

Page 56: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

56

1. จงวาดผงงานขางตนดวย MS_word2. จงแปลงเปน PSEUDO-CODE

Page 57: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

• หลกการโครงสรางควบคม (Control structures)การเขยนขนตอนในรายละเอยดของแตละอลกอรธม อาศยโครงสรางควบคมดงน

–โครงสรางล าดบ (Sequence structure)–โครงสรางตดสนใจ (Selection structure)–โครงสรางท าซ า (Repetition structure)

57

Page 58: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม• โครงสรางล าดบ

– หมายถง งานทตองท าตองมล าดบกอนหลง – เชน อลกอรธม “การตนนอนตอนรบวนใหม”

• งาน ตนนอน• งาน ถอดชดนอน• งาน เขาหองน า• งาน แตงตว• งาน เดนทางมาเรยน

ตองจดล าดบใหถกตอง

58

งาน ตนนอน

งาน ถอดชดนอน

งาน เขาหองน า

งาน แตงตว

งาน เดนทางมาเรยน

Page 59: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

โครงสรางการท างานแบบล าดบ (Sequence)

• โครงสรางล าดบ– หลกการใหมองงานเปนชนใหญกอน ยงไมตองลงรายละเอยด แลวจดล าดบความคดวาจะท าอะไร กอนหรอหลง ตามล าดบ

59

งาน 1

งาน 2

Beginงาน 1งาน 2

endผงงาน รหสเทยม

Page 60: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ตวอยางการเขยนผงงาน

• จงเขยนผงงานทแสดงล าดบการค านวณตวเลข เพอหาผลลพธการค านวณ แลวเกบผลลพธไวในหนวยความจ าต าแหนง K

8 + 10 / 5 - 6 * 3โดยมล าดบการค านวณทางเลขคณต ดงน

1. ยกก าลง2. คณหรอหาร (โดยท าจากซายไปขวา)3. บวกหรอลบ (โดยท าจากซายไปขวา)

60

Page 61: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ตวอยางการเขยนผงงาน

61

เรมตน

T1 = 10 / 5

T2 = 6 * 3

A

A

T3 = 8 + T1

K = T3 - T2

จบงาน

Page 62: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

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

รหสเทยมผงงาน

Page 63: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

จงเขยนผงงานค านวณการหาพนทสเหลยมคางหม โดยก าหนดคาความยาวดานคขนานและความสงให

63

เรมตน

อานความยาวดานคขนานและความสง

ค านวณหาพนทคางหม =½ * ผลบวกของดานคขนาน * สง

1

1

พมพคาพนท

จบงาน

Page 64: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

กำรพฒนำอลกอรธม

• โครงสรางตดสนใจ (selection)– โครงสราง IF

– โครงสราง IF else

64

Page 65: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

กำรพฒนำอลกอรธม

• โครงสราง IF– เปนโครงสรางททดสอบเงอนไข แลวเลอกวาจะท าหรอไมท า กอนทจะไป

ท างานอนตอไป

65

เงอนไข งำนทตองท ำใช

งำนตอไป

ไมใช

Page 66: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

ตวอยาง โครงสราง IFแมถามวาหวขาวหรอไม ถาหวกใหกน ถาไมหวไมตองกน แลวจง เดนทางไป

โรงเรยน (งานตอไป)66

หวใชไหม? งำนกนขำวใช

งำนเดนทำงมำเรยน

ไมใช

Page 67: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ตวอยำงกำรเขยนผงงำน• จงเขยนผงงานแสดงการเขยนและสงจดหมาย

67

เรมตน

เขยนจดหมาย

พบจดหมาย

ใสซองจดหมาย

จาหนาซอง

1 จบงาน

1

มแสตมปหรอไม

ท าการซอแสตมป

ตดแสตมป

สงจดหมาย

ม ไมม

Page 68: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

• ตวอยาง โครงสราง IF–จงเขยนผงงาน แสดงยอดขาย ถาซอสนคามากกวา 1000 บาทมสวนลดให 10%

–วธคด:• Output คอยอดขายสทธ• Input คอ ยอดขายกอนหกสวนลด• Process มรายละเอยดเขยนดวยผงงานไดในหนาถดไป

68

Page 69: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม• ตวอยาง(ตอ) โครงสราง 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

Page 70: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

• โครงสราง IF-else

70

If เงอนไขงาน 1

Elseงาน 2

End if

เงอนไข

งาน 1งาน 2

ใชไมใช

Page 71: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

• โครงสราง IF-Else–ตวอยาง รานคาแหงหนงมนโยบาย ลดราคาใหลกคา ถาเปนชายจะลดให 5% แตถาเปนหญง จะลดให 10% จงเขยนอลกอรธมเพอพมพยอดขาย

–วเคราะหปญหา• Output คอ ราคาสทธ ก าหนดใหเปน netTotal• Input คอ ราคาสนคา และ เพศ ก าหนดใหเปน total และ

sex ตามล าดบ• Process เขยนดวยผงงาน ดงในหนาตอไป

71

Page 72: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

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

Page 73: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

X = 10X = X + 5

• X 10

• X X + 5

73

Page 74: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

โครงสรางการท างานแบบมการเลอก (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

จบงาน

ใช

ใช

ไมใช

ไมใช

Page 75: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ตวอยางการเขยนผงงาน

• เมอเราซอยาจากรานขายยาทมอยท ว ๆ ไปนน ในสวนของวธใชยามกจะแยกขนาดรบประทานไวตามอาย เชนอายมากกวา 10 ป รบประทานครงละ 3 ชอนชาอาย 6-10 ป รบประทานครงละ 2 ชอนชาอาย 2-5 ป รบประทานครงละ 1 ชอนชาเดกอายต ากวา 1 ป หามรบประทาน

จงเขยนผงงานทแสดงถงขนาดของการใชยาตามอายน

75

Page 76: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

76

เรมตน

อาย > 10

6 <= อาย <=10

2 <= อาย <=5

หามรบประทาน

จบงาน

รบประทานครงละ3 ชอนชา

รบประทานครงละ2 ชอนชา

รบประทานครงละ1 ชอนชา

ใช

ใช

ใชไมใช

ไมใช

ไมใช

Page 77: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

• โครงสรางท าซ า (Repetition Structure)–While Repetition Structure

• โครงสรางทตองตรวจสอบเงอนไขกอนท าในลป

– Do While Repetition Structure• โครงสรางทตองประมวลผลในลปอยางนอย 1 รอบกอนทดสอบเงอนไขออกจากลป

77

Page 78: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

โครงสราง while

78

While เงอนไขงาน

end while

เงอนไข

งาน

เทจ

จรง

รหสเทยม

ผงงาน

Page 79: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

โครงสราง DO while

79

เงอนไข

งาน

เทจ

จรง

ผงงาน

DOค าสงตาง ๆ

While เงอนไข

รหสเทยม

Page 80: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การพฒนาอลกอรธม

• ตวอยาง โครงสราง while• จงเขยน โปรแกรมค านวณหาผลรวมของสมการตอไปน

sum = 1 + 2 + 3 + … + N• วเคราะหปญหา– Output คอ sum– Input คอ N– Process ม งาน 3 งาน

1. งาน รบคา N2. งานค านวณหาคาของ sum (วงลป ดวยโครงสราง while)3. พมพผลลพธ sum 80

Page 81: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ตวอยาง โครงสราง 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

Page 82: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

ตวอยาง โครงสราง 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

ผงงานรหสเทยม

Page 83: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

โครงสรางการท างานแบบมการท างานซ า (Iteration)

83

เรมตน

J = 0

J = J + 1

J < 100

จบงานใช

ไมใช

Do While

เรมตน

J = 0

J = J + 1

J < 100

จบงาน

ไมใช

ใช

While

Page 84: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

โครงสรางการท างานแบบมการท างานซ า (Iteration)

จงเขยนผงงาน แสดงถงการพมพคาบวกของ 1+2+3+4+5+.....+100

ออกทางเครองพมพ

84

เรมตน

J=1SUM = 0

SUM = SUM+J

J=J+1

J <=100? Print SUM จบงานใช ไมใช

Page 85: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การเขยนโปรแกรมโดยใชภาษาใดภาษาหนง(Coding)

• การเขยนโปรแกรมทดนน ควรจะท าตามขนตอน คอเรมตงแต วเคราะหปญหา กอนแลวท าการออกแบบโปรแกรม จงเรมเขยนโปรแกรม ส าหรบผ ทไมมประสบการณควรทดลองเขยนในกระดาษกอน แลวตรวจสอบจนแนใจวาสามารถท างานไดแลวจงท าการคยลงเครอง

85

Page 86: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การตรวจสอบขอผดพลาดของโปรแกรม(Testing and Debugging the Program)

• รปแบบขอผดพลาด ม 3 แบบคอ

– Syntax Error – ขอผดพลาดจากการใชไวยากรณภาษาทผด หรอ อาจเกดจากการสะกดค าผด

– Run-time Error – ขอผดพลาดในระหวางการปฏบตงาน(Execution) มกเกดจากความรเทาไมถงการณ

– Logical Error – ขอผดพลาดทหาและแกไดยากทสด ตองท าการไลโปรแกรมทละค าสงเพอหาขอผดพลาดนน

86

Page 87: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การตรวจสอบขอผดพลาดของโปรแกรม(Testing and Debugging the Program)

วธการตรวจสอบขอผดพลาดของโปรแกรม มดงน การตรวจสอบดวยตนเอง (Self Checking) เขยนโปรแกรมลงกระดาษแลวไลเชคตรวจสอบการท างานทละขนดวยตนเอง วาจะมการท างานทถกตองตามความตองการหรอไม

ตรวจสอบดวยการแปลโปรแกรม (Translating) การแปลเปนภาษาเครอง ตรวจสอบขอผดพลาดของโปรแกรม

87

Page 88: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การทดสอบความถกตองของโปรแกรม (Testing and Validating)

วธทดสอบความถกตองของขอมล มดงน กรณทขอมลถกตอง (valid case) ทดสอบโดยใสขอมลทถกตองลงไปในโปรแกรม เพอทดสอบผลลพธวาตรงกบทตองการหรอไม

การใชขอบเขตและความถกตองของขอมล (Range check and Completeness check) เปนการเชคขอบเขตขอมล

การใชความสมเหตสมผล (Consistency Check)

88

Page 89: บทที่ 1 แนะน ำกำรเขียนโปรแกรม ... · 2019-04-14 · บทที่ 1 แนะน ำกำรเขียนโปรแกรมเบื้องต้น

การทดสอบความถกตองของโปรแกรม (Testing and Validating)

ขอมลทเปนตวเลขและตวอกษร (Correct No. and Type character check)ตรวจสอบวาถาเปนฟลดทเปนตวเลขอยางเดยว เชน จ านวนเงน กควรจะปอนขอมลไดเฉพาะตวเลขเทานน

ขอมลเปนไปตามขอก าหนด (Existence Check) ขอมลทปอนตองเปนไปตามทก าหนดไวแนนอนแลวเทานน

89