slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
การเขียนโปรแกรมคอมพิวเตอร์ 1 PowerPoint Presentation
Download Presentation
การเขียนโปรแกรมคอมพิวเตอร์ 1

Loading in 2 Seconds...

play fullscreen
1 / 74

การเขียนโปรแกรมคอมพิวเตอร์ 1 - PowerPoint PPT Presentation


  • 273 Views
  • Uploaded on

การเขียนโปรแกรมคอมพิวเตอร์ 1. โปรแกรมเมอร์คนแรกของโลก. Augusta Lovelace Ada คือ โปรแกรมเมอร์คนแรกของโลก แต่ Edsger Wybe Dijkstra ใช้คำว่า โปรแกรมเมอร์ (Programmer) กับโลกของคอมพิวเตอร์เป็นคนแรก. ข้อมูลจาก http://www.twoguru.com/playground/article/dijkstra.htm

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'การเขียนโปรแกรมคอมพิวเตอร์ 1' - bradley-david


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
โปรแกรมเมอร์คนแรกของโลกโปรแกรมเมอร์คนแรกของโลก

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

slide3
โปรแกรมเมอร์คนแรกของโลกโปรแกรมเมอร์คนแรกของโลก
  • "what if a calculating engine could not only foresee but could act on that foresight"
  • (จะเป็นอย่างไร ถ้าหากเครื่องคำนวณไม่เพียงสามารถหยั่งรู้ได้ หากแต่สามารถตอบสนองต่อการหยั่งรู้นั้นได้ด้วย)
  • สิ่งที่เธอทำคือ การสร้างภาษาสำหรับเครื่องวิเคราะห์ (analytical engine)
slide4
โปรแกรมเมอร์คนแรกของโลกโปรแกรมเมอร์คนแรกของโลก
  • แต่งเพลงที่ซับซ้อน
  • สร้างภาพกราฟิก
  • นำมาใช้เพื่อการคำนวณขั้นสูง
  • พัฒนาวงการวิทยาศาสตร์ได้
  • ร้อยกว่าปีต่อมา ในปี พ.ศ. 2522 (ค.ศ. 1979) กระทรวงกลาโหมสหรัฐฯ สร้างภาษาคอมพิวเตอร์มาตรฐานISOขึ้นมาตัวแรก พร้อมตั้งชื่อเพื่อเป็นเกียรติแก่ เลดี้ เอดา ว่า ภาษา "ADA"
slide5
ภาษาคอมพิวเตอร์
  • หมายถึง สัญลักษณ์ที่ผู้คิดพัฒนาภาษากำหนดขึ้นมา
  • เพื่อใช้แทนคำสั่งสื่อสารสั่งงาน ระหว่างมนุษย์กับเครื่องคอมพิวเตอร์และอุปกรณ์ต่อพ่วงอื่นๆ
slide6
ภาษาคอมพิวเตอร์มีมากมายภาษาคอมพิวเตอร์มีมากมาย

ข้อมูลจาก 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

slide7
ภาษาคอมพิวเตอร์
  • สามารถแบ่งออกได้เป็น 5 ยุคคือ

1. ภาษาเครื่อง (Machinelanguage)

2. ภาษาแอสเซมบลี (Assemblylanguage)

3. ภาษาชั้นสูง (High-levellanguage)หรือ ภาษารุ่นที่ 3

(3GL:Third Generation Language)

4. ภาษาชั้นสูงมาก (Veryhigh-levellanguage)

หรือภาษารุ่นที่ 4 (4GL)

5. ภาษาธรรมชาติ (Naturallanguage) หรือภาษารุ่นที่ 5

(5GL)

1 machine language
1. ภาษาเครื่อง (Machinelanguage)
  • เป็นภาษาพื้นฐานที่คอมพิวเตอร์สามารถเข้าใจได้ แต่ละคำสั่งประกอบขึ้นจากกลุ่มตัวเลข 0 และ 1 ซึ่งเป็นเลขฐานสอง
2 assembly language
2. ภาษาแอสเซมบลี (Assemblylanguage)
  • เป็นภาษาที่ใช้สัญลักษณ์ข้อความ แทนกลุ่มของตัวเลขฐานสอง เพื่อให้ง่ายต่อการเขียนและการจดจำมากขึ้น การทำงานของโปรแกรมจะต้องทำการแปลภาษาแอสเซมบลีให้เป็นภาษาเครื่อง โดยใช้ตัวแปลที่เรียกว่า แอสเซมเบลอร์(Assembler)
3 high level language 3 3gl third generation language
3. ภาษาชั้นสูง (High-levellanguage) หรือภาษารุ่นที่ 3 (3GL:Third Generation Language)
  • ถูกสร้างขึ้นมาเพื่อให้เขียนโปรแกรมได้ง่ายขึ้น โดยมีลักษณะเหมือนกับภาษาอังกฤษทั่วไป ผู้เขียนไม่จำเป็นต้องมีความรู้เกี่ยวกับฮาร์แวร์แต่อย่างใด ภาษานี้จำเป็นต้องมีตัวแปลภาษาเครื่องเช่นกัน เรียกตัวแปลนี้ว่า คอมไพเลอร์ (compiler) หรือ อินเตอร์พรีเตอร์ (Interpreter) อย่างใดอย่างหนึ่ง
  • ตัวอย่างของภาษาชั้นสูง เช่น ภาษาปาสคาล ภาษาซี ภาษโคบอล ภาษาเบสิก ภาษาฟอร์แทรน
4 very high level language 4 4gl
4. ภาษาชั้นสูงมาก (Veryhigh-levellanguage) หรือภาษารุ่นที่ 4 (4GL)
  • เป็นภาษาที่มีลักษณะคล้ายภาษาพูดตามปกติของมนุษย์ ภาษานี้จะช่วยให้การเขียนโปรแกรมเร็วมากขึ้นกว่าภาษาในรุ่นที่ 3 เนื่องจากมีเครื่องมือที่ช่วยในการสร้างแบบฟอร์มหน้าจอ เพื่อจัดการกับข้อมูลรวมไปถึงการออกรายงาน เมนูต่าง ๆ
  • ตัวอย่างของภาษาชั้นสูงมากได้แก่ informix-4GL, MAGIC , Delphi , Power Builder ฯลฯ
5 natural language 5 5gl
5. ภาษาธรรมชาติ (Naturallanguage) หรือภาษารุ่นที่ 5 (5GL)
  • เป็นภาษาที่สามารถสั่งงานคอมพิวเตอร์โดยใช้รูปแบบของภาษามนุษย์ได้เลย คำสั่งอยู่ในรูปแบบที่ไม่แน่นอนตายตัว แต่คอมพิวเตอร์จะทำการแปลให้ออกมาในรูปที่คอมพิวเตอร์เข้าใจได้ ภาษานี้ถูกสร้างขึ้นมาจากเทคโนโลยีทางด้านระบบผู้เชี่ยวชาญ (Expert system)
  • ตัวอย่างภาษาในรุ่นที่ 5 ได้แก่ ภาษา PROLOG เป็นต้น
slide13
ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์
  • การวิเคราะห์ปัญหา (Problem analysis)
  • การออกแบบโปรแกรม (Design)
  • การเขียนโปรแกรมโดยใช้ภาษาใดภาษาหนึ่ง (Coding)
  • การตรวจสอบข้อผิดพลาดของโปรแกรม (Testing and Debugging )
  • การทดสอบความถูกต้องของโปรแกรม (Testingand validating)
  • การทำเอกสารประกอบโปรแกรม (Documentation)
  • การบำรุงรักษาโปรแกรม (Program Maintenance)
slide14

Input

Output

Process

Input

2

3

1

การวิเคราะห์ปัญหา
  • สิ่งที่ต้องพิจารณา
    • Input ? (พิจารณาจาก Output)
    • Output? (พิจารณาอันดับแรก)
    • Process (ยังไม่ต้องสนใจตอนนี้)
slide15
แนวความคิดเบื้องต้นการวิเคราะห์ปัญหาแนวความคิดเบื้องต้นการวิเคราะห์ปัญหา
  • การวิเคราะห์ปัญหา

วิเคราะห์ผลลัพธ์

วิเคราะห์ Input

Process

เขียนขั้นตอนการแก้ปัญหา

slide16
การออกแบบโปรแกรม
  • เครื่องมือที่ใช้ในการออกแบบ
    • ผังงาน (Flowchart) ขั้นตอนการแก้ปัญหาทีละขั้นตอนในลักษณะรูปภาพ
    • รหัสจำลอง (Pseudo) รูปแบบเป็นภาษาพูดง่าย ๆ ภาษาอังกฤษ หรือภาษาไทยก็ได้
slide17
การพัฒนาอัลกอริธึม
  • ข้อดีของรหัสเทียม (จำลอง)
    • แปลงเป็นโปรแกรมได้ง่าย
  • ข้อดีของผังงาน
    • อ่านง่าย เข้าใจตรงกันได้
slide18

สัปดาห์ที่ ๑

ขั้นตอนการวิเคราะห์งานขั้นตอนการวิเคราะห์งาน

๑ การหาวัตถุประสงค์ของการเขียนโปรแกรม

๒ การหารูปแบบผลลัพธ์ที่ต้องการ

๓ การหาข้อมูลนำเข้าของโปรแกรม

๔ การหาตัวแปรที่จำเป็นต้องใช้ในโปแกรม

๕ การหาขั้นตอนวิธีการทำงานของโปรแกรม

slide19

สูง

ฐาน

๑ การหาวัตถุประสงค์ของการเขียนโปรแกรม

  • ผู้เขียนโปรแกรมจะต้องหาวัตถุประสงค์จากงานที่ต้องการเขียนโปรแกรม ว่างานต้องการแก้ปัญหาอะไรบ้าง เช่น

ต้องการหาพื้นที่สามเหลี่ยมมุมฉากโดยรับค่าทางแป้นพิมพ์

วัตถุประสงค์

เพื่อคำนวณหาพื้นที่สามเหลี่ยม

slide20

สูง

ฐาน

การหารูปแบบผลลัพธ์ของโปรแกรม
  • เมื่อผู้เขียนโปรแกรมหาวัตถุประสงค์จากงานที่ต้องการเขียนโปรแกรมเรียบร้อยแล้ว ก็มาทำการออกแบบผลลัพธ์ของโปรแกรม ตามความต้องการของงาน

เช่น

กรุณาป้อน ค่าความสูง =

ค่าฐาน =

พื้นที่สามเหลี่ยม =

รับค่าทางแป้นพิมพ์

วิชา 13-100-152 การเขียนโปรแกรมคอมพิวเตอร์ (Computer Programming ) (2-2-3) บรรยายโดย อาจารย์ สุวุฒิ ตุ้มทอง

slide21

สัปดาห์ที่ ๑

สูง

ฐาน

การหาข้อมูลนำเข้าของโปรแกรม
  • ผู้เขียนโปรแกรมจะต้องหาข้อมูลนำเข้า จากผลลัพธ์ของโปรแกรม โดยคำนึงถึงวิธีการคำนวณ และข้อมูลที่ใช้ เพื่อให้ได้ผลลัพธ์เช่น

ผลลัพธ์ต้องการ พื้นที่สามเหลี่ยมมุมฉาก

ข้อมูลที่หาและเตรียม ประกอบด้วย

๑ สูตรการคำนวณพื้นที่ = 0.5 X ฐาน X สูง

๒ ค่าความยาวของฐาน และ ค่าความสูง

slide22

สัปดาห์ที่ ๑

๔ การหาตัวแปรที่จำเป็นต้องใช้ในโปแกรม

  • ผู้เขียนโปรแกรมจะต้องกำหนดชื่อตัวแปรสำหรับใช้เป็นที่เก็บข้อมูลทั้งหมดของโปรแกรม ซึ่งรวมทั้งจำนวนรอบการทำงานของโปรแกรมด้วย
  • กฏการตั้งชื่อตัวแปร

๑ ชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษร ตัวต่อไปอาจเป็นตัวอักษรหรือตัวเลขก็ได้ แต่จะต้องไม่มีเครื่องหมาย บวก(+) ลบ(-) คูณ(*) หาร (/) หารเอาเศษ(%) และเครื่องเว้นวรรค (Blank) เช่น A+5

๒ ความยาวของตัวแปรและตัวอักษรตัวเล็กตัวใหญ่ก็แตกต่างกัน

๓ ซื่อตัวแปรต้องไม่ซ้ำคำสงวน เช่น For , If

๔ ชื่อตัวแปรควรตั้งให้สื่อความหมาย เช่น ความยาวฐาน = Base

slide23

การหาขั้นตอนวิธีการทำงานของโปรแกรม

  • ขั้นตอนนี้หาวิธีการทำงานของโปรแกรม หรือเรียกว่า อัลกอริทึม( Algorithm)โดยจะขึ้นอยู่กับลักษณะงานโดยที่ผู้เขียนจะต้องมีความเข้าใจในงานที่วิเคราะห์ ถ้าผู้เขียนสามารถกำหนดขั้นตอนวิธีการทำงานของโปรแกรมอย่างละเอียด และ ถูกต้องแล้วจะทำให้การเขียนโปรแกรมด้วยภาษาจะทำง่ายขึ้น เช่น
  • ขั้นตอนวิธีการทำงานของ

โปรแกรมการหาพื้นที่สามเหลี่ยมมุมฉากป้อนค่าทางแป้นพิมพ์

slide24

การหาขั้นตอนวิธีการทำงานของโปรแกรม

  • ขั้นตอนวิธีการทำงานของ (อัลกอริทึม )

โปรแกรมการหาพื้นที่สามเหลี่ยมมุมฉากป้อนค่าทางแป้นพิมพ์

๑ เริ่มต้นโปรแกรม

๒ กำหนดค่าให้กับตัวแปร

๓ รับข้อมูลค่าฐาน ค่าความสูง จากแป้นพิมพ์

๔ คำนวณพื้นที่สามเหลี่ยมมุมฉาก

๕ แสดงค่าผลลัพธ์ทางจอภาพ

๖ จบโปรแกรม

slide25

นักศึกษาจงเขียนขั้นตอนการวิเคราะห์งานทั้ง ๕ ขั้นตอน

แบบฝึกหัดครั้งที่ ๑

  • จงเขียนขั้นตอนการวิเคราะห์งานโปรแกรมการคำนวณพื้นที่ วงกลม โดยรับค่ารัศมีจากแป้นพิมพ์ โดยแสดงการวิเคราะห์ทีละขั้นตอนอย่างละเอียด
slide26

การเขียนผังงาน ( Flowchart)

  • ความหมาย

แผนภาพที่เขียนขึ้นโดยใช้สัญลักษณ์มาตรฐานเพื่อแสดงขั้นตอนวิธีการทำงานของโปรแกรม หรือระบบงานที่ต้องการ

  • ประเภทของผังงาน

๑ ผังงานระบบ (System Flowchart) ผังงานที่แสดงถึงขึ้นตอนการทำงานของระบบ ให้เห็นในภาพรวมอย่างกว้างๆ

๒ ผังงานโปรแกรม (Program Flowchart) ผังงานที่แสดงถึงขึ้นตอนการทำงานของระบบ อย่างละเอียดซึ่งสามารถนำเอาผังงานมาเขียนโปรแกรมตามที่ต้องการได้

slide27
สัญลักษณ์ในผังงาน

จุดเริ่มต้น หรือสิ้นสุด

แฟ้มข้อมูล

จุดเชื่อมต่อในหน้าอื่น

อ่านข้อมูลเข้า หรือแสดงผล

จุดเชื่อมต่อในหน้าเดียวกัน

ประมวลผล

โปรแกรมย่อย

ตัดสินใจ

พิมพ์ผลทางเครื่องพิมพ์

แสดงทิศทางการประมวลผล

แสดงผลทางหน้าจอ

slide28

A= 0.5 * H * B

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Process

Process คือ การกำหนดค่า หรือการคำนวณค่า

  • ตัวอย่าง

สูตรการคำนวณพื้นที่

slide29

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Decision

Decision คือ การทดสอบเงื่อนไขหรือเปรียบเทียบเงื่อนไขเพื่อตัดสินใจทำงานอย่างใดอย่างหนึ่ง

  • ตัวอย่าง การตัดสินใจเลือก ๑ ทาง

False

True

X > Y

X=X+2

slide30

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Decision

Decision คือ การทดสอบเงื่อนไขหรือเปรียบเทียบเงื่อนไขเพื่อตัดสินใจทำงานอย่างใดอย่างหนึ่ง

  • ตัวอย่าง การตัดสินใจเลือก ๒ ทาง

False

True

X > Y

X=X+2

Y=X+1

slide31

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Start / Stop Program OR Terminal Interrupt

คือ การเริ่มต้นโปรแกรมหรือสิ้นสุดการทำงานโปรแกรม หรือการหยุดชั่วคราว

  • ตัวอย่าง การใช้งาน

Pause

Start

Stop

slide32

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Input / Output

Input / Output คือ การรับข้อมูล หรือ การแสดงผลลัพธ์

โดยไม่ได้ระบุสื่อที่ใช้

  • ตัวอย่าง การใช้งาน

Print P,O,M

Input P,O,M

slide33

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Display

Display คือ การแสดงผลลัพธ์ทางจอภาพ

  • ตัวอย่าง การใช้งาน

Display P,O,M

slide34

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Document

Document คือ การพิมพ์ผลลัพธ์ออกทางกระดาษพิมพ์

  • ตัวอย่าง การใช้งาน

Print P,O,M

slide35

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Manual Input

Manual Input คือ การรับข้อมูลหรือคำสั่งผ่านทางคีย์บอร์ด

  • ตัวอย่าง การใช้งาน

Input x,y

slide36

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Connector

Connector คือ แสดงจุดเชื่อมต่อจากที่หนึ่งไปยังอีกที่หนึ่งของผังงาน โดยที่จุดเชื่อมต่อนี้อยู่ในหน้าเดียวกัน

  • ตัวอย่าง การใช้งาน

X = x+1

A

slide37

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Off page Connector

Off page Connector คือ แสดงจุดเชื่อมต่อจากที่หนึ่งไปยังอีกที่หนึ่งของผังงาน โดยที่จุดเชื่อมต่อนี้อยู่ต่างหน้ากัน

  • ตัวอย่าง การใช้งาน

X = x+1

A

slide38

สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

  • สัญลักษณ์ Flow line and arrowheads

คือ แสดงทิศทางการทำงานของผังงาน โดยใช้ลูกศรเป็นตัวกำหนดทิศทางการทำงานของผังงาน

  • ตัวอย่าง การใช้งาน

X = x+1

A

slide39

หลักการเขียนผังงานโปรแกรมหลักการเขียนผังงานโปรแกรม

  • เขียนผังงานจากด้านบนลงด้านล่าง
  • ใช้สัญลักษณ์ให้ตรงกับความหมายของผังงาน
  • ใช้เส้น Flow line and arrowheads แสดงทิศทางการทำงานของผังงาน
  • ใส่คำอธิบายในสัญลักษณ์สั้นๆ แต่เข้าใจง่าย จะใช้ภาษาไทยหรือภาษาอังกฤษก็ได้
  • หลีกเลียงการโยงเส้นทิศทางของผังงาน ควรใช้จุดเชื่อมต่อหน้าเดียวกันแทน
  • พยายามเขียนผังงานให้จบในหน้าเดียวกัน ถ้าไม่จบควรใช้จุดต่อหน้า
slide40

ขั้นตอนการเขียนผังงานโปรแกรมขั้นตอนการเขียนผังงานโปรแกรม

จงเขียนผังงานโปรแกรม จากการวิเคราะห์งาน ซึ่งมีขั้นตอนวิธีการทำงาน (อัลกอริทึม) ดังนี้

  • เริ่มต้นทำงาน
  • รับข้อมูลค่าความยาวและความกว้างของสี่เหลี่ยมผืนผ้าผ่านทางคีย์บอร์ด
  • คำนวณพื้นที่สี่เหลี่ยผืนผ้าตามสูตร Area = Width*Length
  • พิมพ์ค่าความยาว ความกว้าง และพื้นที่สี่เหลี่ยมออกทางจอภาพ
  • จบการทำงาน
slide41

ขั้นตอนการเขียนผังงานโปรแกรมขั้นตอนการเขียนผังงานโปรแกรม

เริ่มต้นทำงาน

รับข้อมูล Width, Length

คำนวณ Area = Width*Length

พิมพ์ Width, Length

จบการทำงาน

slide42

นักศึกษาจงเขียนผังงานโปรแกรมนักศึกษาจงเขียนผังงานโปรแกรม

แบบฝึกหัดครั้งที่ ๒

  • จงเขียนผังงานโปรแกรมการคำนวณพื้นที่ วงกลม โดยรับค่ารัศมีจากแป้นพิมพ์ พร้อมการอธิบาย
slide43
การพัฒนาอัลกอริธึม
  • หลักการโครงสร้างควบคุม (Control structures)

การเขียนขั้นตอนในรายละเอียดของแต่ละอัลกอริธึม อาศัยโครงสร้างควบคุมดังนี้

    • โครงสร้างลำดับ (Sequence structure)
    • โครงสร้างตัดสินใจ (Selection structure)
    • โครงสร้างทำซ้ำ (Repetition structure)
slide44
การพัฒนาอัลกอริธึม
  • โครงสร้างลำดับ
    • หมายถึง งานที่ต้องทำต้องมีลำดับก่อนหลัง
    • เช่น อัลกอริธึม “การตื่นนอนต้อนรับวันใหม่”
      • งาน ตื่นนอน
      • งาน ถอดชุดนอน
      • งาน เข้าห้องน้ำ
      • งาน แต่งตัว
      • งาน เดินทางมาเรียน

ต้องจัดลำดับให้ถูกต้อง

งาน ตื่นนอน

งาน ถอดชุดนอน

งาน เข้าห้องน้ำ

งาน แต่งตัว

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

sequence
โครงสร้างการทำงานแบบลำดับ (Sequence)
  • โครงสร้างลำดับ
    • หลักการให้มองงานเป็นชิ้นใหญ่ก่อน ยังไม่ต้องลงรายละเอียด แล้วจัดลำดับความคิดว่าจะทำอะไร ก่อนหรือหลัง ตามลำดับ

Begin

งาน 1

งาน 2

end

งาน 1

งาน 2

ผังงาน

รหัสเทียม

slide46
ตัวอย่างการเขียนผังงานตัวอย่างการเขียนผังงาน
  • จงเขียนผังงานที่แสดงลำดับการคำนวณตัวเลข เพื่อหาผลลัพธ์การคำนวณ แล้วเก็บผลลัพธ์ไว้ในหน่วยความจำตำแหน่ง K

8 + 10 / 5 - 6 * 3

โดยมีลำดับการคำนวณทางเลขคณิต ดังนี้

1. ยกกำลัง

2. คูณหรือหาร (โดยทำจากซ้ายไปขวา)

3. บวกหรือลบ (โดยทำจากซ้ายไปขวา)

slide47
ตัวอย่างการเขียนผังงานตัวอย่างการเขียนผังงาน

1

เริ่มต้น

T1 = 10 / 5

T3 = 8 + T1

T2 = 6 * 3

K = T3 - T2

1

จบงาน

slide48
การพัฒนาอัลกอริธึม

example: จงเขียนโปรแกรมคำนวณหาค่า y ของสมการ

y = x^2 + 2x +10

start

Begin

read x

y = x*x + 2*x +10

Write y

end

Read x

Y = x*x + 2*x +10

Write y

stop

รหัสเทียม

ผังงาน

slide49
จงเขียนผังงานคำนวณการหาพื้นที่สี่เหลี่ยมคางหมู โดยกำหนดค่าความยาวด้านคู่ขนานและความสูงให้

เริ่มต้น

1

พิมพ์ค่าพื้นที่

อ่านความยาวด้าน

คู่ขนานและความสูง

จบงาน

คำนวณหาพื้นที่คางหมู =

½ * ด้านคู่ขนาน * สูง

1

slide50
การพัฒนาอัลกอริธึม
  • โครงสร้างตัดสินใจ (selection)
    • โครงสร้าง IF
    • โครงสร้าง IF else
slide51

ใช่

เงื่อนไข

งานที่ต้องทำ

ไม่ใช่

งานต่อไป

การพัฒนาอัลกอริธึม
  • โครงสร้าง IF
    • เป็นโครงสร้างที่ทดสอบเงื่อนไข แล้วเลือกว่าจะทำหรือไม่ทำ ก่อนที่จะไปทำงานอื่นต่อไป
slide52
การพัฒนาอัลกอริธึม
  • ตัวอย่าง โครงสร้าง IF
    • แม่ถามว่าหิวข้าวหรือไม่ ถ้าหิวก็ให้กิน ถ้าไม่หิวไม่ต้องกิน แล้วจึง เดินทางไปโรงเรียน (งานต่อไป)

ใช่

หิวใช่ไหม?

งานกินข้าว

ไม่ใช่

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

slide53
ตัวอย่างการเขียนผังงานตัวอย่างการเขียนผังงาน

เริ่มต้น

1

  • จงเขียนผังงานแสดงการเขียนและส่งจดหมาย

เขียนจดหมาย

ไม่มี

มี

มีแสตมป์หรือไม่

พับจดหมาย

ทำการซื้อแสตมป์

ใส่ซองจดหมาย

ติดแสตมป์

จ่าหน้าซอง

ส่งจดหมาย

1

จบงาน

slide54
การพัฒนาอัลกอริธึม
  • ตัวอย่าง โครงสร้าง IF
    • จงเขียนผังงาน แสดงยอดขาย ถ้าซื้อสินค้ามากกว่า 1000 บาทมีส่วนลดให้ 10%
    • วิธีคิด:
      • Output คือยอดขายสุทธิ
      • Input คือ ยอดขายก่อนหักส่วนลด
      • Process มีรายละเอียดเขียนด้วยผังงานได้ในหน้าถัดไป
slide55

start

การพัฒนาอัลกอริธึม

Read total

  • ตัวอย่าง(ต่อ) โครงสร้าง IF

Discount = 0

Begin

read total

discount = 0

if (total >1000) then

discount = total *10/100

end if

netTotal = total – discount

Write netTotal

End

no

yes

Total >1000

Discount = total * 10/100

NetTotal = total - discount

Write NetTotal

ผังงาน

รหัสเทียม

End

slide56
การพัฒนาอัลกอริธึม
  • โครงสร้าง IF-else

If เงื่อนไข

งาน 1

Else

งาน 2

End if

ใช่

ไม่ใช่

เงื่อนไข

งาน 2

งาน 1

slide57
การพัฒนาอัลกอริธึม
  • โครงสร้าง IF-Else
    • ตัวอย่าง ร้านค้าแห่งหนึ่งมีนโยบาย ลดราคาให้ลูกค้า ถ้าเป็นชายจะลดให้ 5% แต่ถ้าเป็นหญิง จะลดให้ 10% จงเขียนอัลกอริธึมเพื่อพิมพ์ยอดขาย
    • วิเคราะห์ปัญหา
      • Output คือ ราคาสุทธิ กำหนดให้เป็น netTotal
      • Input คือ ราคาสินค้า และ เพศ กำหนดให้เป็น total และ sex ตามลำดับ
      • Process เขียนด้วยผังงาน ดังในหน้าต่อไป
if else
IF-ELSE

start

Read total, sex

discount= 0

no

yes

Sex = ‘M’

discount = total * 0.1

discount = total * 0.05

netTotal = total - discount

Write netTotal

End

selection
โครงสร้างการทำงานแบบมีการเลือก (Selection)

ในบริเวณ A และ B ของหน่วยความจำมีตัวเลขเก็บอยู่ จงเขียนผังงานที่แสดงการเปรียบเทียบระหว่าง A และ B

ตามเงื่อนไข ดังนี้

ถ้า A>B คำนวณ A-B นำผลที่ได้ไปเก็บไว้ที่ C

ถ้า A<B คำนวณ A+B นำผลที่ได้ไปเก็บไว้ที่ C

ถ้า A=B เอา ไปเก็บไว้ที่ C

เริ่มต้น

ใช่

A > B

C = A - B

ไม่ใช่

ใช่

A < B

C = A + B

ไม่ใช่

C = A

จบงาน

slide60
ตัวอย่างการเขียนผังงานตัวอย่างการเขียนผังงาน
  • เมื่อเราซื้อยาจากร้านขายยาที่มีอยู่ทั่ว ๆ ไปนั้น ในส่วนของวิธีใช้ยามักจะแยกขนาดรับประทานไว้ตามอายุ เช่น

อายุมากกว่า 10 ปี รับประทานครั้งละ 3 ช้อนชา

อายุ 6-10 ปี รับประทานครั้งละ 2 ช้อนชา

อายุ 2-5 ปี รับประทานครั้งละ 1 ช้อนชา

เด็กอายุต่ำกว่า 1 ปี ห้ามรับประทาน

จงเขียนผังงานที่แสดงถึงขนาดของการใช้ยาตามอายุนี้

slide61

เริ่มต้น

ใช่

รับประทานครั้งละ

3 ช้อนชา

อายุ > 10

ไม่ใช่

ใช่

รับประทานครั้งละ

2 ช้อนชา

6 <= อายุ <=10

ไม่ใช่

ใช่

2 <= อายุ <=5

รับประทานครั้งละ

1 ช้อนชา

ไม่ใช่

ห้ามรับประทาน

จบงาน

slide62
การพัฒนาอัลกอริธึม
  • โครงสร้างทำซ้ำ (Repetition Structure)
    • While Repetition Structure
      • โครงสร้างที่ต้องตรวจสอบเงื่อนไขก่อนทำในลูป
    • Do While Repetition Structure
      • โครงสร้างที่ต้องประมวลผลในลูปอย่างน้อย 1 รอบก่อนทดสอบเงื่อนไขออกจากลูป
slide63
การพัฒนาอัลกอริธึม
  • โครงสร้าง while

เท็จ

While เงื่อนไข

งาน

end while

เงื่อนไข

จริง

งาน

รหัสเทียม

ผังงาน

slide64
การพัฒนาอัลกอริธึม
  • โครงสร้าง DO while

DO

คำสั่งต่าง ๆ

While เงื่อนไข

งาน

จริง

เงื่อนไข

รหัสเทียม

เท็จ

ผังงาน

slide65
การพัฒนาอัลกอริธึม
  • ตัวอย่าง โครงสร้าง while
  • จงเขียน โปรแกรมคำนวณหาผลรวมของสมการต่อไปนี้

sum = 1 + 2 + 3 + … + N

  • วิเคราะห์ปัญหา
    • Output คือ sum
    • Input คือ N
    • Process มี งาน 3 งาน
      • งาน รับค่า N
      • งานคำนวณหาค่าของ sum (วงลูปด้วยโครงสร้าง while)
      • พิมพ์ผลลัพธ์ sum
while
ตัวอย่าง โครงสร้าง while

start

begin

Read N

Sum = 0

I = 1

While (I <= N)

sum = sum + I

I = I +1

End while

Write “sum” , sum

end

Read N

Sum = 0

I = 1

No

I <= N

Yes

Sum = sum + I

write sum

รหัสเทียม

I = I + 1

stop

ผังงาน

do while
ตัวอย่าง โครงสร้าง Dowhile

start

ผังงาน

รหัสเทียม

Read N

Begin

Read N

sum = 0

I = 0

do

I = I + 1

sum = sum + I

while (I < N) write Sum

end

Sum = 0

I = 0

I = I + 1

Sum = sum + I

yes

no

I < N

write sum

stop

iteration

เริ่มต้น

J = 0

ไม่ใช่

J < 100

ใช่

จบงาน

J = J + 1

While

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

เริ่มต้น

J = 0

J = J + 1

ไม่ใช่

J < 100

จบงาน

ใช่

Do While

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

เริ่มต้น

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

ออกทางเครื่องพิมพ์

J=1

SUM = 0

SUM = SUM+J

J=J+1

ไม่ใช่

ใช่

J <=100?

Print SUM

จบงาน

coding
การเขียนโปรแกรมโดยใช้ภาษาใดภาษาหนึ่ง(Coding)การเขียนโปรแกรมโดยใช้ภาษาใดภาษาหนึ่ง(Coding)
  • การเขียนโปรแกรมที่ดีนั้น ควรจะทำตามขั้นตอน คือเริ่มตั้งแต่ วิเคราะห์ปัญหา ก่อนแล้วทำการออกแบบโปรแกรม จึงเริ่มเขียนโปรแกรม สำหรับผู้ที่ไม่มีประสบการณ์ควรทดลองเขียนในกระดาษก่อน แล้วตรวจสอบจนแน่ใจว่าสามารถทำงานได้แล้วจึงทำการคีย์ลงเครื่อง
testing and debugging the program
การตรวจสอบข้อผิดพลาดของโปรแกรม(Testing and Debugging the Program)
  • รูปแบบข้อผิดพลาด มี 3 แบบคือ
    • Syntax Error – ข้อผิดพลาดจากการใช้ไวยากรณ์ภาษาที่ผิด หรือ อาจเกิดจากการสะกดคำผิด
    • Run-time Error– ข้อผิดพลาดในระหว่างการปฏิบัติงาน(Execution) มักเกิดจากความรู้เท่าไม่ถึงการณ์
    • Logical Error – ข้อผิดพลาดที่หาและแก้ได้ยากที่สุด ต้องทำการไล่โปรแกรมทีละคำสั่งเพื่อหาข้อผิดพลาดนั้น
testing and debugging the program1
การตรวจสอบข้อผิดพลาดของโปรแกรม(Testing and Debugging the Program)
  • วิธีการตรวจสอบข้อผิดพลาดของโปรแกรม มีดังนี้
    • การตรวจสอบด้วยตนเอง (Self Checking) เขียนโปรแกรมลงกระดาษแล้วไล่เช็คตรวจสอบการทำงานทีละขั้นด้วยตนเอง ว่าจะมีการทำงานที่ถูกต้องตามความต้องการหรือไม่
    • ตรวจสอบด้วยการแปลโปรแกรม (Translating) การแปลเป็นภาษาเครื่อง ตรวจสอบข้อผิดพลาดของโปรแกรม
testing and validating
การทดสอบความถูกต้องของโปรแกรม (Testing and Validating)
  • วิธีทดสอบความถูกต้องของข้อมูล มีดังนี้
    • กรณีที่ข้อมูลถูกต้อง (valid case) ทดสอบโดยใส่ข้อมูลที่ถูกต้องลงไปในโปรแกรม เพื่อทดสอบผลลัพธ์ว่าตรงกับที่ต้องการหรือไม่
    • การใช้ขอบเขตและความถูกต้องของข้อมูล (Range check and Completeness check) เป็นการเช็คขอบเขตข้อมูล
    • การใช้ความสมเหตุสมผล (Consistency Check)
testing and validating1
การทดสอบความถูกต้องของโปรแกรม (Testing and Validating)
  • ข้อมูลที่เป็นตัวเลขและตัวอักษร (Correct No. and Type character check) ตรวจสอบว่าถ้าเป็นฟิลด์ที่เป็นตัวเลขอย่างเดียว เช่น จำนวนเงิน ก็ควรจะป้อนข้อมูลได้เฉพาะตัวเลขเท่านั้น
  • ข้อมูลเป็นไปตามข้อกำหนด (Existence Check) ข้อมูลที่ป้อนต้องเป็นไปตามที่กำหนดไว้แน่นอนแล้วเท่านั้น