44
1 ใบความรู หน่วยที1 เรื่อง การพัฒนาโปรแกรมด้วยภาษาคอมพิวเตอร์ มาตรฐาน / ตัวชี้วัด มาตรฐาน 3.1 เข้าใจ เห็นคุณค่า และใช้กระบวนการเทคโนโลยีสารสนเทศในการสืบค้น ข้อมูล การเรียนรู้ การสื่อสาร การแก้ปัญหา การทางาน และอาชีพอย่างมีประสิทธิภาพ ประสิทธิผล และมีคุณธรรม ตัวชี้วัด 1. เขียนโปรแกรมภาษาขั ้นพื ้นฐาน (3.1 .3/2) จุดประสงค์การเรียนรู 1. อธิบายหลักการพื ้นฐานในการเขียนโปรแกรมได 2. อธิบายแนวคิดในการเขียนโปรแกรมได้ 3. อธิบายขั ้นตอนการพัฒนาโปรแกรมได 4. ใช้ JavaScript เพื่อ รับค่า - คานวณและแสดงผลได้ สาระสาคัญ การเขียนโปรแกรม เป็นงานที่รวบรวมความสามารถของบุคคลทั ้งด ้านความรู้ และความเข้าใจในภาษาคอมพิวเตอร์ ความเข้าใจในระบบงาน นอกจากนี ้ยังต ้องมีความมุ่งมั่น ในการทดสอบโปรแกรม มีความละเอียดรอบคอบ สามารถแก้ไขข้อผิดพลาดของโปรแกรม จนได้ ผลงานโปรแกรมออกมามีความสมบูรณ์และมีประสิทธิภาพ ซึ ่งภาษาคอมพิวเตอร์เป็นภาษา ที่ใช้สั่งงานให้คอมพิวเตอร์ทางาน แบ่งออกเป็น 3 ระดับ ได้แก่ ภาษาเครื่อง ภาษาระดับต่า และภาษา ระดับสูง ผู้เขียนโปรแกรมยังต้องเข้าใจในแนวคิดการเขียนโปรแกรม ซึ ่งมีทั ้งการเขียนโปรแกรม เชิงโครงสร้างและการเขียนโปรแกรมเชิงวัตถุ ปัจจุบันภาษาคอมพิวเตอร์ให้เลือกใช้ได้มากมายตามความเหมาะสมของลักษณะงาน และความถนัดของผู้เขียนโปรแกรม เช่น ภาษา C, C# , Visual Basic , PHP, ASP , JAVA ,JavaScript หรือ SCRIPT ในโปรแกรม Adobe Flash ฯลฯ มีการดาเนินการตามเขียนโปรแกรมตามขั ้นตอน การพัฒนาโปรแกรม ซึ ่งประกอบด้วย 1) การกาหนดและวิเคราะห์ปัญหา ( problem definition and

ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

1

ใบความร หนวยท 1 เรอง การพฒนาโปรแกรมดวยภาษาคอมพวเตอร

มาตรฐาน / ตวชวด

มาตรฐาน ง 3.1 เขาใจ เหนคณคา และใชกระบวนการเทคโนโลยสารสนเทศในการสบคนขอมล การเรยนร การสอสาร การแกปญหา การท างาน และอาชพอยางมประสทธภาพ ประสทธผล และมคณธรรม

ตวชวด 1. เขยนโปรแกรมภาษาขนพนฐาน (ง 3.1 ม.3/2)

จดประสงคการเรยนร 1. อธบายหลกการพนฐานในการเขยนโปรแกรมได 2. อธบายแนวคดในการเขยนโปรแกรมได 3. อธบายขนตอนการพฒนาโปรแกรมได 4. ใช JavaScript เพอ รบคา - ค านวณและแสดงผลได

สาระส าคญ การเขยนโปรแกรม เปนงานทรวบรวมความสามารถของบคคลทงดานความร

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

ปจจบนภาษาคอมพวเตอรใหเลอกใชไดมากมายตามความเหมาะสมของลกษณะงาน และความถนดของผเขยนโปรแกรม เชน ภาษา C, C# , Visual Basic , PHP, ASP , JAVA ,JavaScript หรอ SCRIPT ในโปรแกรม Adobe Flash ฯลฯ มการด าเนนการตามเขยนโปรแกรมตามขนตอน การพฒนาโปรแกรม ซงประกอบดวย 1) การก าหนดและวเคราะหปญหา ( problem definition and

Page 2: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

2

problem analysis) 2) เขยนผงงานและซโดโคด ( pseudo coding) 3) เขยนโปรแกรม ( programming) 4) ทดสอบและแกไขโปรแกรม ( program testing and debugging) 5) ท าเอกสารและบ ารงรกษา (program documentation and maintenance)

เนอหาสาระ

รจกกบภาษาคอมพวเตอร ภาษาคอมพวเตอร (Computer Language) หมายถง โปรแกรมหรอชดค าสงทมนษยเขยนขน

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

1. ภาษาเครอง (Machine Language) ภาษาเครองเปนภาษารหสตวเลข ทเครองคอมพวเตอรสามารถรบรและปฏบตตามไดทนท ผใชเครองคอมพวเตอรยคแรก ๆ ตองเขยนโปรแกรมดวยภาษาเครอง ซงเปนภาษาทคนท าความเขาใจยาก นอกจากนนเครองคอมพวเตอรแตละเครองยงใชรหสเลขทตางกนดวย ดงนนการใชคอมพวเตอร โดยใชภาษาเครองจงเปนเรองทยงยาก และมกจะเกดความผดพลาดเสมอ แตกเปนภาษาทเครองคอมพวเตอรสามารถเขาใจและท างานไดอยางงายดาย

2. ภาษาระดบต า (Low Level Language) ภาษาระดบต าเปนภาษาทใกลเคยงกบภาษาเครองมาก จงเรยกไดวาเปนภาษาองเครอง (Machine Oriented Language) เปนภาษาทใชรหสตวเลขประกอบกบอกขระภาษาองกฤษดวย เชน ภาษาแอสเซมบล (Assembly Language) ภาษาระดบต าน เขยนไดงายขน แตภาษาแอสเซมบลน เครองคอมพวเตอรไมสามารถเขาใจภาษาไดโดยตรง เวลาใชงานจ าเปน ตองอาศยโปรแกรมแปลภาษาเอสเซมเบลอ (Assembler Programme) และโปรแกรมเอสแซมเบลอทใชกบคอมพวเตอรเครองหนงจะใชกบคอมพวเตอรเครองอน ๆ ไมได

3. ภาษาระดบสง ( High Level Language) ภาษาระดบสงเปนภาษาทอ านวยความสะดวก ใหกบคนเขยนโปรแกรมอยางมาก ลกษณะค าสงใชภาษาองกฤษทผอานเขาใจได ซงเปนภาษาทเขยนและเขาใจงายกวา ภาษาเอสแซมบล แตเครองคอมพวเตอรจะไมเขาใจไดทนทตองอาศยตวแปลภาษา เชน ภาษาฟอรแทรน ( FORTRAN) ภาษาโคบอล ( COBOL) ภาษาเบสค ( BASIC) และภาษาอารพจ (RPG) เปนตน

Page 3: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

3

ตวแปลภาษาคอมพวเตอร (Translator) โครงสรางของแตละโปรแกรมในภาษาระดบสงมความแตกตางกนออกไป โปรแกรมทเขยน

ขนเรยกวาโปรแกรมตนฉบบ ( Source Code) มนษยจะอานโปรแกรมตนฉบบได แตคอมพวเตอร ไมเขาใจ เพอใหคอมพวเตอรเขาใจตองแปลภาษาเหลานเปนภาษาเครอง ( Machine Language) ทประกอบดวยเลขฐาน 2 เทานน ตวแปลภาษาคอมพวเตอร (Translator) แบงออกเปน 2 ประเภท ไดแก

1. คอมไพเลอร ( Compiler) เปนตวแปลภาษาระดบสง เชน ภาษาปาสคาล ภาษาโคบอล ภาษาฟอรแทรน ภาษาซ ซงเปลยนโปรแกรมตนฉบบใหเปนภาษาเครอง มหลกการท างานโดยแปลโปรแกรมตนฉบบทงโปรแกรม และบนทกในลกษณะของแฟมขอมลหรอไฟล เมอตองการเรยกใชงานโปรแกรม กสามารถเรยกไฟลทแปลเอาไวมาใชงาน โดยไมตองแปลหรอคอมไพลอก ท าใหการท างานรวดเรว ขณะทคอมไพเลอรแปลโปรแกรมภาษาระดบสง จะตรวจสอบความถกตองของไวยากรณ (ขนอยกบภาษาทใช) หากพบขอผดพลาดจะรายงานขอผดพลาดของโปรแกรม ( Program Listing) เพอใชเกบโปรแกรมตนฉบบและค าสงทเขยนไมถกตองตามก ฎเกณฑของแตละภาษา ซงจะชวยใหผเขยนโปรแกรมแกไขไดตรงจด

2. อนเตอรพรเตอร (Interpreter) เปนตวแปลภาษาระดบสงเชนเดยวกบคอมไพเลอร แตจะแปลพรอมกบท างานทละค าสงตลอดทงโปรแกรม ท าใหการแกไขโปรแกรมท าไดงาย รวดเรว แตมขอเสยคอจะท าการแปลโปรแกรมทกครงทเรยกใชงาน เชน ภาษาเบสก

ภาษาคอมพวเตอร ส าหรบการพฒนาโปรแกรม ภาษาคอมพวเตอรส าหรบการพฒนาโปรแกรมมอยมากมาย แตละภาษามโครงสราง

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

1. ภาษาฟอรแทรน ( FORTRAN) พฒนาขนใน พ.ศ. 2497 สรางขนส าหรบแกปญหาทางดานคณตศาสตรและวศวกรรมศาสตร และสามารถใชกบงานดานกราฟก ทางดานฐานขอมล และทางดานเวรดโพรเซสซงไดเชนกน

2. ภาษาเบสก ( BASIC) พฒนาขนใน พ.ศ. 2508 โดยออกแบบใหเปนภาษาทงาย ๆ แตมความสามารถของภาษาฟอรแทรน รวมกบภาษาโคบอลเขาดวยกน สามารถน าไปใชงานได อยางกวางขวาง สามารถใชโตตอบได ผใชสามารถไดรบการตอบสนองเพอสงพมพ

Page 4: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

4

เขาเครองคอมพวเตอร นยมใชกบเครองไมโครคอมพวเตอร ภาษาเบสกเปนทงตวอนเตอรพรเตอร และคอมไพเลอรในตว เหมาะส าหรบงานทางดานวทยาศาสตรและธรกจการคา

3. ภาษาโคบอล ( COBOL) พฒนาขนใน พ.ศ. 2502 เพอใชงานดานธรกจและพาณชยการ ลกษณะภาษาโคบอลเปนธรรมชาต เขยนไดรวบรดอานงาย ความส าคญของภาษาโคบอล คอ ขดความสามารถในการจดและการปรบแตงไฟลขอมลทยาวไดสะดวก ขอมลสนกสะดวกเชนกน รวมทงการสรางไฟลรายงานขอมลดวย

4. ภาษาปาสคาล (Pascal) พฒนาขนใน พ.ศ. 2514 เปนภาษาโครงสรางทสรางเสรมความคดทเปนระบบไดด ภาษาปาสคาลเปนภาษาทคลายกบภาษาอลกอ แตเปนภาษาทเลกกวา นยมใชกบไมโครคอมพวเตอร เปนภาษาทใชงานงายโดยใชภาษาองกฤษงาย ๆ

5. ภาษาซ (C) พฒนาขนใน พ.ศ. 2517 พฒนาเปนภาษาทมโครงสรางเรยบรอยมาก เปนภาษาทมประสทธภาพใกลเคยงกบภาษาเครอง แตใชงานไดงายกวา ถกน าไปใชงานโปรแกรมระบบ ( System Programming) ภาษาซทใชกบคอมพวเตอรจะเปนภาษาทงายกะทดรด เนองจากภาษาซเปนภาษาอสระจากสถาปตยกรรมคอมพวเตอรรนใด ๆ ทงนน ใชโปรแกรมรวมกบคอมพวเตอรรนใดกได

6. ภาษาอลกอล ( ALGOL) พฒนาขนใน พ.ศ. 2503 เปนภาษาทมความสามารถสง รปลกษณะคลายภาษาฟอรแทรน แตเปนภาษาทมความยดหยนในการใชงาน ขอความรวบรด สรางขนเพอเปนภาษาเอนกประสงค ส าหรบการแสดงกระบวนการแกปญหาทางอลกอรทม เปนภาษาทมโครงสรางเปนทางการ อานงาย

7. ภาษาลสฟ ( LISP) พฒนาขนใน พ.ศ. 2503 เชนกน เปนภาษาทมความสามารถสง ทางดานงานแบบลสฟโพรเซสซง นกวจยคอมพวเตอรศกษาเกยวกบปญหาเทยมหรอสมองเทยม (Artificial Intelligent) เลอกใชภาษาลสฟ ซงสามารถเปลยนแปลงความยาว หรอโครงสรางในขณะทคอมพวเตอรก าลงท างานอยได นยมใชแสดงรปประโยคภาษาองกฤษ หรอสตรทางคณตศาสตร วทยาศาสตรและเลยนแบบกระบวนการแกปญหาของมนษยดวย

8. ภาษาอาร พ จ (RPG) พฒนาขนใน พ.ศ. 2507 เปนภาษาทใชกบมนคอมพวเตอร ส าหรบงานทางดานธรกจ สามารถสรางรายงานจากขอมล โดยการเขยนภาษาอาร พ จ สามารถเขยนและใชงานเปนสวน ๆ ไมจ าเปนตองเขยนเปนโปรแกรมยาว ๆ

9. ภาษาพ แอล วน (PL/1) พฒนาขนใน พ.ศ. 2508 เปนภาษาทออกแบบไวใชงานทางธรกจและวทยาศาสตร เปนภาษาทน าเอาขดความสามารถของภาษาฟอรแทรน และภาษาโคบอลไวดวยกน

Page 5: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

5

เปนภาษาทงาย รวบรด สามารถรวบไฟลหรอเรคคอรดทงทางดาน Input และ Output ได สามารถแสดงขอมลในรปของอารเรยไดงาย

10. ภาษาเอ พ เอล ( APL) พฒนาขนใน พ.ศ. 2510 เปนภาษาทมชดตวกระท าพนฐาน (Primitive Operators) ทใชท าหนาทตาง ๆ เชน สรางเลขดชน สรางเลขแบบสม เปนภาษายอดนยมของนกสถต สามารถใชงานทางดานธรกจไดเชนกน เชน การผลตเอกสาร ดานวเคราะห ดานกราฟก การจดการระบบฐานขอมล ลกษณะภาษาคลายภาษาสนทนา เขาใจงาย แตสามารถท างานไดเรว

11. ภาษาสมอลทอค ( SMALL TALK) พฒนาขนใน พ.ศ. 2515 เพอใชในวงการศกษา สามารถชวยครแกปญหาทางการสอนได ใชสรางกราฟก และการอธบายทางการศกษาไดด แตกสามารถน ามาใชงานดานธรกจไดดวย จงมลกษณะเปนภาษาเอนกประสงค

12. ภาษาไพลอท (PILOT) พฒนาขนใน พ.ศ. 2516 เปนภาษาทพฒนาขนส าหรบใชสอนเดกเกยวกบการท างานของคอมพวเตอร นยมน าไปเขยนโปรแกรมการสอน เพอใชเปนคอมพวเตอรชวยสอน (CAI) ภาษาทใชควบคกบไพลอทคอภาษาโลโก (LOGO) ซงพฒนาขนมาดวยจดมงหมายเดยวกน

13. ภาษาฟอรท ( FORTH) พฒนาขนใน พ.ศ. 2518 มลกษณะคลายภาษาแอสแซมบล ระดบสง ออกแบบไวใชงาน System Promgramming ผใชสามารถพมพค าสงใหม ๆ เขาไปได และสามารถเกบค าสงและเรยกออกมาใชงานได ดงนน ผใชสามารถน าไปใชสรางโปรแกรมใหเหมาะสมกบความตองการของตนได มกใชในงานสถต ธรกจการเงน และดานไฟลง

ขนตอนการพฒนาโปรแกรม

การเขยนโปรแกรมคอมพวเตอรใหท างาน เพอแกปญหา หรอสนองความตองการของเรานน ผเขยนตองรวาจะใหโปรแกรมท างานอะไร มขอมลอะไรทตองปอนใหกบโปรแกรม( Input) และตองการไดอะไรเปนผลลพธ (Output) มการแสดงผลอยางไร ผเขยนโปรแกรมตองทราบขนตอนวธการของการแกปญหาของโปรแกรมดวยวาตองท าอยางไร อาจเขยนเปนล าดบขนตอนมากอนและจดบนทกไว จากนนจงน าล าดบขนตอนนนมาพฒนาเปนโปรแกรม หากไมไดมการวางแผนการเขยนโปรแกรมไวกอน เมอตองการแกไข หรอปรบปรงโปรแกรมในภายหลงจะท าไดยาก เสยเวลามาก ในการมาศกษาทกขนตอน โดยเฉพาะโปรแกรมทมความซบซอนมาก โดยทวไปขนตอนการพฒนาโปรแกรมจะประกอบดวย

Page 6: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

6

1. การก าหนดและวเคราะหปญหา (problem definition and problem analysis) 2. เขยนผงงานและซโดโคด (pseudo coding) 3. เขยนโปรแกรม (programming) 4. ทดสอบและแกไขโปรแกรม (program testing and debugging) 5. ท าเอกสารและบ ารงรกษา (program documentation and maintenance)

1. การก าหนดและวเคราะหปญหา ( problem definition and problem analysis) เปนขนตอนทจะตองก าหนดแนวทางในการแกปญหาใหเหมาะสมกบคอมพวเตอร เพอใหการท างานเปนไปอยางมประสทธภาพ โดยตองท าความเขาใจกบปญหาทตองการแกไขใหได มขนตอน การด าเนนการยอย ๆ ดงตอไปน

1.1) ก าหนดขอบเขตของปญหา โดยก าหนดรายละเอยดใหชดเจนวาจะใหคอมพวเตอรท าอะไร ตวแปร คาคงทตองเปนไปในลกษณะใด

1.2) ก าหนดลกษณะของขอมลเขาและออกจากระบบ ( Input/Output specification) โดยตองรวาขอมลทสงไปเปนอยางไร มอะไรบาง เพอท าใหโปรแกรมประมวลผลและแสดงผลลพธ เชน การรบคาจากคยบอรด การใชเมาส การก าหนดปมตาง ๆ ลกษณะการแสดงผลหนาจอวาจะใหมรปรางอยางไร โดยขนอยกบผใชงานโปรแกรมเปนหลก เชน ขอมลประเภท ตวเลข ตวอกษร ขอความ ใชทศนยมกต าแหนง

1.3) ก าหนดวธการประมวลผล ( process specification) ตองรวาจะใหคอมพวเตอรประมวลผลอยางไร จงจะไดผลลพธตามทตองการ

2. เขยนผงงานและซโดโคด ( pseudo coding) หลงจากทไดวเคราะหปญหาแลว ขนตอนตอไปเปนการน าเครองมอมาชวยในการออกแบบโปรแกรม ซงยงไมใชการเขยนโปรแกรมจรง ๆ แตชวยในการเขยนโปรแกรม ท าใหผอนน าโปรแกรมของเราไปพฒนาตอไดงายขน โดยเขยน เปนล าดบขนตอนการท างานของโปรแกรมทเรยกวาอลกอรทม ( algorithm) ซงจะแสดงขนตอน การแกปญหา ใชประโยคทชดเจนไมคลมเครอ และมรายละเอยดการท างานทเพยงพอทจะน ามาเขยนโปรแกรมใหท างานจรง อาจเขยนในรปของรหสจ าลอง หรอซโดโคด ( pseudo code) หรอ อกลกษณะหนงคอเขยนในรปของผงงาน (Flowchart) ซงความแตกตางอยท ซโดโคดเขยนค าอธบายการท างานของโปรแกรมเปนแบบยอ ไมมรปแบบเฉพาะตว แตละสวนจะเปนแนวทางในการเขยน

Page 7: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

7

โปรแกรม ซงน าไปใชกบทก ๆ โปรแกรมไดงายขน สวนผงงานเปนสญลกษณแทนการท างาน และทศทางของโปรแกรม

สญลกษณ ค าอธบาย

กระบวนการ การค านวณ

กระบวนการทนยามไว การท างานยอย

ขอมล รบ หรอ แสดงขอมลโดยไมระบชนดของอปกรณ

การตดสนใจ การเปรยบเทยบ

การเตรยมการ การก าหนดคาลวงหนา หรอ ก าหนดคาเปนชดตวเลข

ปอนขอมลดวยตนเอง การรบขอมลเขาทางแปนพมพ

ขนตอนทท าดวยตนเอง การควบคมโปรแกรมทางแปนพมพ

เอกสาร/แสดงผล การแสดงผลทางเครองพมพ

เอกสารแสดงผลหลายฉบบ

จอภาพแสดงผล

การด หรอบตรเจาะร ใชใสขอมล

เทป (สอบนทกขอมล)

เรมตน/สนสด การเรมตน หรอการลงทาย

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

ตวเชอมตอไปหนาอน

จดรวมการเชอมตอ

Page 8: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

8

หรอ

ตรวจเทยบ

หนวงเวลา

ทเกบแบบเขาถงโดยเรยงล าดบ

ดสกแมเหลก

เสนแสดงล าดบกจกรรม

3. เขยนโปรแกรม (programming) เปนขนตอนการเปลยนค าอธบายโปรแกรม หรอผงงาน

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

4. ทดสอบและแกไขโปรแกรม (program testing and debugging) เพอใหการน าโปรแกรมไปใชมความถกตอง แกปญหาไดตรงจด ผเขยนโปรแกรมจงตองทดสอบความถกตองของโปรแกรม ทเขยนขน เพอหาจดผดพลาด อาจจะใหบคคลอนลองใชโปรแกรมดวย และแกไข ทดสอบจนไมพบ จดผดพลาดอก จดผดพลาดของโปรแกรมเรยกวา Bug และการแกไขโปรแกรมเรยกวา Debug ซงขอผดพลาดของโปรแกรมม 2 ประเภท ดงน

4.1) การเขยนค าสงไมถกตองตามหลกการเขยนโปรแกรมภาษาทเลอก ซงเรยกวา Syntax Error หรอ Coding error ขอผดพลาดแบบนมกพบตอนแปลภาษาโปรแกรม เปนรหสภาษาเครอง

4.2) ขอผดพลาดทางตรรกะ หรอ Logic error เปนขอผดพลาดทโปรแกรมท างานได แตผลลพธออกมาไมถกตอง ซงอาจเกดขนจากขนตอนการแกปญหา หรอหาค าตอบทออกแบบขน เชน ตองการผลลพธอยางหนง แตสงทค านวณหรอประมวลผลไดเปนอกแบบหนง

5. ท าเอกสารและบ ารงรกษา ( program documentation and maintenance) เปนการใหผใชงานโปรแกรมใชงานไดอยางมประสทธภาพ และสะดวกในการตรวจสอบขอผดพลาดโดยเขยนเปนเอกสารประกอบโปรแกรมขนมา แบงออกเปน 2 ประเภท คอ

Page 9: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

9

5.1) คมอการใช (User Document) หรอ user guide ซงจะอธบายการใชโปรแกรม 5.2) คมอโปรแกรมเมอร หรอ Program document หรอ Technical reference ซงจะ

อ านวยความสะดวกในการแกไขโปรแกรมและพฒนาโปรแกรมในอนาคต โดยมรายละเอยดตาง ๆ เกยวกบโปรแกรม เชน ชอโปรแกรม การรบขอมล การพมพผลลพธ ขนตอนตาง ๆในโปรแกรม เปนตน

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

แนวคดในการเขยนโปรแกรม

รปแบบของแนวคดในการเขยนโปรแกรม สามารถแบงออกไดเปน 2 แนวคดใหญ ๆ ดงน 1. การเขยนโปรแกรมเชงโครงสราง (Structured Programming) 2. การเขยนโปรแกรมเชงวตถ (OOP : Object-Oriented Programming)

ซงแตละแนวคดมลกษณะดงตอไปน 1. การเขยนโปรแกรมเชงโครงสราง (Structured Programming) เปนการจดการค าสงตางๆ

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

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

ภาพท 1.1 ผงงานโครงสรางแบบล าดบขนตอน

Page 10: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

10

ตวอยาง โปรแกรมค านวณหาคาเฉลยคะแนนวชาคอมพวเตอรของนกเรยนชนมธยมศกษาปท 3 จ านวน 5 คน และแสดงผลการค านวณทได วธท า 1. สงทโจทยตองการ (Output) คอค านวณหาคะแนนเฉลยวชาคอมพวเตอรของนกเรยน จ านวน 5 คน แสดงผลการค านวณทได 2. แสดงผลลพธ คอ แสดงผลการค านวณเฉลยคะแนนวชาคณตศาสตรของนกเรยนชนมธยมศกษาปท 3 ทได 3. ขอมลน าเขา คอคะแนนวชาคอมพวเตอรของนกเรยนแตละคนจ านวน 5 คน 4. ตวแปรจ านวน 5 ตวแปร ตงแต score1 …… score5 และคาเฉลย ซงก าหนดดงน - score1 แทนคะแนนของนกเรยนคนท 1 - score2 แทนคะแนนของนกเรยนคนท 2 - score3 แทนคะแนนของนกเรยนคนท 3 - score4 แทนคะแนนของนกเรยนคนท 4 - score5 แทนคะแนนของนกเรยนคนท 5 5. ขนตอนการประมวลผล - รบขอมลคะแนนของนกเรยนตงแต คนท 1 – คนท 5 - ค านวณหาคาเฉลยคะแนนโดยน าคะแนนของนกเรยนทง 5 คนมาบวกกน และหารดวยจ านวนนกเรยนทงหมดคอ 5 - แสดงผลการค านวณคาเฉลยคะแนนวชาคณตศาสตรของนกเรยนชนมธยมศกษาปท 3/1 6. จบการท างาน

Page 11: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

11

ภาพท 1.2 ตวอยางผงงานแบบล าดบขนตอน

1.2) โครงสรางแบบมทางเลอก ในการตดสนใจเลอกทางใดทางหนง ( Decision) ในโปรแกรมมการตรวจสอบเงอนไข ( Condition) วาเปนคาจรงหรอคาเทจ แลวด าเนนการตามค าสง ทเงอนไขก าหนดตอไป โดยมรปแบบผงงานดงภาพ

ภาพท 1.3 ผงงานโครงสรางแบบมทางเลอก

Page 12: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

12

ภาพท 1.4 ตวอยางผงงานแบบมทางเลอก

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

5. ขนตอนการประมวลผล - รบขอมลคะแนนแสดงผลการสอบทางหนาจอคอมพวเตอร คอ score

- ตรวจสอบคาคะแนน 50 ขนไปหรอไม - แสดงผล กรณทไดคะแนน 50 คะแนนขนไป แสดงขอความวา "นกเรยนสอบผาน" แตถาไดนอยกวา 50 คะแนน ใหจบการท างาน 6. จบการท างาน

Page 13: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

13

1.3) โครงสรางแบบท าซ า (Iteration) เปนการท างานแบบวนซ าหลาย ๆ รอบ และ หลดจากเงอนไขกตอเมอเงอนไขตรงกบทก าหนดไว

ภาพท 1.5 ผงงานโครงสรางแบบท าซ า

ตวอยาง การหาผลคณสตรคณแม 12 โดยตองการผลคณ ตงแต 1*12=12 จนกระทง 12*12 = 144 สามารถอธบายไดดงน 1. เรมท างาน 2. ก าหนดคาตวแปร count = 1 3. เรมตนค านวณตงแตครงแรกจนครบเงอนไข โดยเรมตรวจสอบวา count <= 12 จรงใหท า result = count * 12 พมพ result count = count + 1 แลวเรมตนตรวจสอบใหม ท าเชนน จนกวาเงอนไขจะเปนเทจ จบค าสงการวนลป 4. จบการท างาน

Page 14: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

14

ภาพท 1.6 ตวอยางผงงานแบบท าซ า

2. การเขยนโปรแกรมเชงวตถ ( OOP : Object-Oriented Programming) หรอเรยก อกอยางหนงวาแนวคดเชงวตถ ตงอยบนพนฐานการแจกแจงรายละเอยดของปญหา ผเขยนโปรแกรมตองพยายามแยกประเภทของวตถใหได ตองมจนตนาการพอสมควร ซงจะมองวตถหนง ๆ เปนแหลงรวมของขอมล และกระบวนการไวดวยกน โดยจะมคลาส ( Class) เปนตวก าหนดคณสมบตของวตถ และคลาสสามารถสบทอดคณสมบต( Inheritance) ทเรยกวา Subclass ได มการน ากลบมาใชใหม (Reusable) ท าใหลดขนตอนการพฒนาโปรแกรมลงได โดยเฉพาะโปรแกรมขนาดใหญทมความซบซอนสง

Page 15: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

15

การเขยนสครปตดวยภาษาจาวาสครปต

แมวา HTML เปนภาษาหลกในการพฒนาเวบเพจ แตตว HTML ไมสามารถค านวณ ไมมการก าหนดตวแปร แต รองรบการแทรกค าสงหรอทเรยกวา Script ได ซงม Scripts ทใชกบ HTML มากมาย แตในการเรยนระดบนขอยก JavaScript ทมลกษณะไวยากรณเขาใจไดงาย รบสงขอมลโตตอบกบผใชได มลกษณะเปนโปรแกรมเชงวตถ (OOP: Object-Oriented Programming)

จาวาสครปต ( JavaScript) ท าใหรปแบบของการเขยนเวบเพจเปลยนไป จากเดมเปนเพยง การน าเสนอขอมลเอกสาร แสดงผลผานเวบทมสภาพแวดลอมเปนแบบ Static (เวบเพจทมการน าเสนอขอมลแบบตายตว ไมมการเปลยนแปลงขอมลมากนก ) เปนขอมลแบบ Dynamic ซงเปนการออกแบบเวบเพจทมระบบการจดการขอมลอยในตว ดงนนจาวาสครปตจงเปนเครองมอทใชในการสรางเวบเพจ ท าใหเกดการค านวณ การแสดงผล การรบ-สงขอมล สามารถโตตอบกบผใชในทนททนใด

ลกษณะและความเปนมาของ JavaScript

JavaScript เปนภาษาประมวลผล ( Programming Language) ทสามารถค านวณ มตวแปร หาผลบวก ลบ คณ หาร ได ซงใน HTML ไมม เพราะ HTML เปนเพยงภาษาแสดงผล (Markup Language)

JavaScript จะเปนโปรแกรมยอยเลก ๆ ( mini program) ทสามารถแทรกรวมอยใน Code HTML ได

JavaScript ไมใชเปนภาษา Java เพราะทงสองไมไดมาจากผผลตรายเดยวกน Java ผลตมาจากบรษท Sun Microsystems ตงแตป พ.ศ. 2534 เปนภาษาทตองม

ตวแปลภาษา ( Compiler) และโคดทเขยนเปนภาษาเครอง สวนทถกแปลออกมาโดยตวแปลภาษาสามารถน าไปแสดงหรอท างานบนหนาเวบได

Java ยงสามารถท างานบน Application ทท างานบนวนโดวได หรอภาษา C หรอ VB แต JavaScript ท าไดเพยง Script ทฝงในหนาเวบหนงเทานน

JavaScript ผลตมาจาก Netscape Communications เมอป 2538 ตอนแรกชอวา Mocha และ LiveScripts ตามล าดบ ตอมาเมอจบมอกบบรษท Sun รวมกนสรางบราวเซอร Netscape Navigator 2.0 ซงบราวเซอรตวนสามารถใชงาน Java ได ท าใหทางบรษท Netscape ไดท าการเปลยนชอ LiveScripts ของตนกลายเปน JavaScript เพอใหสอดคลองกบภาษา Java ของ Sun และใชชอ JavaScript จนถงปจจบน

Page 16: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

16

ทคนสวนใหญเขาใจผดวา Java และ JavaScript คอตวเดยวกน กเพราะสบสนในเรองชอประการหนง และโครงสรางของภาษาทงสองใกลเคยงกน ทงสองยดโครงสรางของภาษา C เหมอนกน หรอมจดก าเนดจากภาษาเดยวกน

JavaScript เปนภาษาทแปลไป ท างานไป เหมอนเปนการใชลาม ( Interpreter) ทพดไปแปลไป ซงตวแปลภาษาจะแปลใหมทกครงทเรยกใชงาน แตกตางจาก Compiler ทแปลครงเดยว แลวเกบเปนไฟลตางหาก ครงตอไปกจะเรยกไฟลตางหากนท างาน โดยไมแปลใหมทกครงเหมอน Interpreter

ภาษา Java มความสามารถสงกวา JavaScript แต JavaScript สามารถท างานในหนาเวบไดงายกวา เพราะเพยงเพม code JavaScript ลงในหนาเวบกสามารถเรยกดผลลพธได ตางจาก Java ทตองใช compiler แปลเปนภาษาเครองกอน แลวจงเพมโคดในหนาเวบเพอเรยกไฟลภาษาเครองนน จากนนจงสามารถเรยกดผลลพธได

รปแบบการเขยนภาษาจาวาสครปต

รปแบบหรอลกษณะโครงสรางการเขยนจาวาสครปตน เปนรปแบบมาตรฐานททก ๆ Script ตองเขยนตามทก าหนด โดยมรปแบบดงน

โครงสรางการเขยนภาษาจาวาสครปต อธบาย <script language= “JavaScript”> ค าสงในการท างาน ค าสงในการท างาน ค าสงในการท างาน </script>

บรรทดท 1 เปนการประกาศใหบราวเซอรรวา บรรทดตอจากนเปนภาษาจาวาสครปต บรรทดท 2 – 4 เปนค าสงการท างานทตองการ บรรทดท 5 เปนการปด หรอ บอกใหบราวเซอรรวาจบภาษาสครปต

Page 17: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

17

ตวอยาง

ภาพท 1.7 รปแบบการเขยน JavaScript ใน HTML

ซงสามารถอธบายแตละบรรทดไดดงน <script language="JavaScript"> เปนการระบวานบตงแตนตอไปเปนค าสงใน JavaScript document.write("<font color='red'> ตวอยางการใช JavaScript แรก</font>") แยกแตละค าสงอธบายไดดงตอไปน

» document หมายถง เนอหาในหนาตางทงหมด หากไมเขยนอะไรลงไปจะเปนหนาตางวาง ๆ ขาว ๆ » .(จด) เพอบอกใหคอมพวเตอรวาจะมค าสงมาท างานกบ document ซงถอวา document เปนตวถกกระท า (object) » write เปนวธกระท า (method) ทจะเขยนสงตาง ๆ document » ( วงเลบเปด เปนการเรมเขยน » เครองหมาย " แสดงใหคอมพวเตอรรวาจะเขยนขอความลงใน document และภายในเครองหมายค าพดกคอ code html

Page 18: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

18

» คา Attribute ของ HTML ทปกตเขยน 2 ขด เมอเจอ " กอนหนาจะตอง ใส ' (ขดเดยว) เนองจากถาใสแบบ " คอมพวเตอรจะเขาใจวาค าสงจบแลว เพราะมเครองหมาย 2 ขดเรมแรกอยแลว และจะท าใหมขอผดพลาดเกดขน ตวหนงสอไมถกแสดงออกมาทางหนาจอ » " ) ปดดวยเครองหมายค าพด document ในวงเลบเพอจบการเขยน

</script> จบการเขยน JavaScript

ลกษณะการท างานของจาวาสครปต

JavaScript เปนภาษาสครปตเชงวตถ หรอทเรยกวา OOP (Object Oriented Programming) ทมเปาหมายในการออกแบบและพฒนาโปรแกรมในระบบอนเทอรเนต ส าหรบผเขยนเอกสาร HTML สามารถท างานขามแพลตฟอรมได ท างานรวมกบภาษา HTML และภาษาจาวาไดทงทางฝงไคลเอนต(Client) และทางฝงเซรฟเวอร(Server) โดยมลกษณะการท างานดงน

Navigator JavaScript เปน Client-Side JavaScript หมายถง จาวาสครปตทถกแปล ทางฝงไคลเอนต ซงกคอถกแปลทฝงเครองคอมพวเตอรของผใชงาน จงมความเหมาะสมตอการใชงานของผใชสวนใหญ

LiveWire JavaScript เปน Server-Side JavaScript หมายถง จาวาสครปตทถกแปลทางฝง Server ซงกคอฝงเครองคอมพวเตอรผใหบรการเวบ สามารถใชไดกบ Livewire ของ Netscape โดยตรง

ความสามารถและขอจ ากดของจาวาสครปต การทจาวาสครปตถกน ามาใชในการพฒนาเวบ นอกจากมความสามารถในการโตตอบ

กบผใชแบบ Interactive คอสามารถสนองพฤตกรรมการใชงาน เชน การสรางเมนแบบ popup และ อน ๆ ตามความตองการ ซงกอนจะท างานกบ JavaScript ตองศกษาความสามารถและขอจ ากด ของ Script ชนดนดงตอไปน

ความสามารถของจาวาสครปต 1. ชวยลดภาระในการท างานของฝงผใหบรการ ( Server) เนองจากเวบบราวเซอร

ฝงผใชบรการหรอทเรยกวา Client สามารถประมวลผล JavaScript ไดเอง 2. มกลไกในการตรวจสอบ การเปรยบเทยบ การตดสนใจ การประมวลผลและสามารถสราง

ฟงกชนไดเอง

Page 19: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

19

3. สามารถท างานรวมกบเทคโนโลยอน ๆ ไดแก ActiveX, CGI, Java, Plug-In 4. สามารถเปลยนรปแบบเวบเพจของเอกสาร HTML จาก Static มาเปนแบบ Dynamic

ทสามารถโตตอบกบผใชได 5. ใชงานงาย เพราะมลกษณะเปน Interpreter แบบ Text File ฝงอยในเอกสาร HTML

จงสามารถท างานบนเวบบราวเซอรไดทนท โดยไมตอง compile โปรแกรม 6. ใชรปแบบค าสงเหมอนกบภาษา Java เชน ค าสงเพอด าเนนการทางคณตศาสตร

ตรรกศาสตร สตรง รวมทงค าสงควบคมล าดบการด าเนนงาน ไดแก if, while ,for 7. เรยนรงายเหมาะกบนกพฒนาเวบเพจบนระบบอนเทอรเนต

ขอจ ากดของจาวาสครปต 1. ไมสามารถตดตอหรอท างานฝง Server เพอเกบขอมลลงฐานขอมลไดโดยตรง

หากตองการตดตอกบ Server ตองอาศยการท างานในฝง Server เชน CGI, Java Servlet 2. ไมสามารถสรางสวนแสดงผลตาง ๆ บนเวบเพจได ดงนนจงตองใชโปรแกรมภาษาอน

สรางแทน เชน HTML โดยใชภาษาจาวา สครปตเขามาชวยใหเวบเพจ ทสามารถแสดงผลลกเลน ไดหลายอยาง

3. จาวาสครปตจะท างานตางกนในแตละเวบบน Server เนองจากเวบบราวเซอรตาง ๆ จะใชตวแปลภาษาจาวาสครปตของตนเอง เพออานและแปลค าสงจาวาสครปต ดงนนจงมการท างานตางกนในบางค าสง จงท าใหเวบบราวเซอรบางประเภทแสดงผลลพธของค าสงของสครปตได ไมสมบรณ หรอเกดขอผดพลาด (Error)

การท างานของจาวาสครปตรวมกบ HTML จาวาสครปตเปนภาษาสครปตทประมวลผลฝง Client ดงนนในการเขยนค าสงจาวาสครปต

จงตองเขยนไวภายในเอกสาร HTML โดยเวบบราวเซอรจะท าหนาทในการประมวลผลค าสงของจาวาสครปต คอ เวบบราวเซอรจะอานค าสงในเอกสาร HTML ทละบรรทด และประมวลผลค าสงนน ๆ ไปจนกวาจะพบค าสงของจาวาสครปต เวบบราวเซอรจงเรยกใช JavaScript Interpreter ซงเปนตวแปลภาษาจาวาสครปตทฝงอยในเวบบราวเซอรมาประมวลผลค าสงจาวาสครปต เมอสนสดบรรทดค าสงจาวาสครปตแลว เวบบราวเซอรจะอานค าสงในเอกสาร HTML ตอไปจนครบแลวจงน าผลลพธไปแสดงทหนาจอ

Page 20: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

20

วธการเขยนจาวาสครปต เพอสงใหเวบท างาน มอยดวยกน 2 วธดงน 1. เขยนดวยชดค าสงและฟงกชนของจาวาสครปตเอง 2. เขยนตามเหตการณทเกดขนตามการใชงานจากชดค าสงของ HTML

ส าหรบการเขยนค าสงของจาวาสครปตนนสามารถเขยนแทรกไวในสวนใดของเอกสาร HTML กได แตทนยมคอ เขยนแทรกไวระหวางแทก ( Tag) Tag <head>...JavaScript...</head> เนองจากสวนนถกโหลดมากอนสวนอน ๆ ของเอกสาร HTML ดงนนหากเขยน JavaScript ในสวนน จงหมายความวาโปรแกรมทเขยนขนเขยนมาจากจาวาสครปต จะพรอมใหสามารถเรยกใชงานเมอเวบเพจนนแสดง

Page 21: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

21

หรอ สามารถเขยนอยในสวนของ <body>...</body> ดงตอไปน

ตวแปร (Variable) ใน JavaScript

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

การตงชอตวแปรใน JavaScript

การตงชอ (Identifier or Name) เปนชอทตงขนมาเพอก าหนดใหเปนชอของโปรแกรมหลก ฟงกชน ตวแปร คาคงท ค าสง และค าสงวน โดยมหลกการตงชอ คอ

1. ขนตนดวยอกษรในภาษาองกฤษ ตามดวยตวอกษรหรอตวเลขใด ๆ 2. หามเวนชองวาง 3. หามใชสญลกษณพเศษ ยกเวนขดลาง (_) และ ดอลลาร ($) 4. ตวแปรในภาษาจาวาสครปต มลกษณะเปน case sensitive คอตวอกษรของชอจะจ าแนก

แตกตางกนระหวางอกษรตวพมพเลกและตวพมพใหญ เชน ABC จะแตกตางกบ abc และ Abc

Page 22: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

22

5. การตงชอมขอพงระวงวาตองไมซ ากบค าสงวน ( Reserve Word) ซงมความหมายเฉพาะ ในภาษาจาวาสครปต บงคบไมใหมการตงชอซ ากบชอโปรแกรม ฟงกชน ตวแปร คาคงทและค าสง ซงค าสงวนในจาวาสครปต ไดแก

การประกาศตวแปร (Declaration)

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

รปแบบ

โดยท

Page 23: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

23

ในกรณทตองการก าหนดตวแปรหลายตวในบรรทดเดยวกนใหใชเครองหมาย คอมมา ( ,) คนระหวางชอตวแปรและปดทายดวยเครองหมายเซมโคลอน (;)

การก าหนดคาใหกบตวแปร

การก าหนดคาใหกบตวแปรจะใชเครองหมายเทากบ (=) มรปแบบดงน

โดยท data-value หมายถง คาของขอมล โดยสามารถก าหนดไดดงน

1. ขอมลทเปนตวเลขสามารถก าหนดตวเลขไดเลย เชน num=500 2. ขอมลในทางตรรกะ ไดแก จรง(True) หรอเทจ (False) เชน test=true 3. ขอมลสตรง ใหก าหนดอยในเครองหมายค าพด ("...") เชน name="Anan" ตวแปรม 2 จ าพวก หากก าหนดชอตวแปรไวทโปรแกรมหลก โดยไมไดอยในขอบเขต

ฟงกชนใด ๆ เรยกวาตวแปรแบบโกลบอล (Global) ตวแปรพวกนจะมคาคงทอยในหนวยความจ าตลอดการท างานของโปรแกรม ท าใหสามารถเรยกใชไดจากทก ๆ สวนของโปรแกรมรวมถงภายในฟงกชนตาง ๆ ดวย แตถาก าหนดตวแปรไวภายในขอบเขตของฟงกชนใด ๆ จะเรยกตวแปรแบบนนวาตวแปรแบบโลคอล ( Local) เพราะจะเปนตวแปรทมคาคงทอย สามารถเรยกใชไดเฉพาะภายในขอบเขต ของฟงกชนนน ๆ เทานน

ชนดขอมลของตวแปร (Data Type) ชนดขอมลตวแปร เปนการก าหนดประเภทคาของขอมลใหกบตวแปร เพอให

เหมาะสมกบการอางองขอมลจากตวแปรในการท างาน ชนดของขอมลในตวแปรมอยดวยกน 4 ชนด 1. Number เปนขอมลชนดตวเลข หมายถงเลขจ านวนตาง ๆ เชน เลขจ านวนเตม

(Integer) และเลขจ านวนจรง (Floating) เชน Year = 2011 2. Logical เปนขอมลตรรกะซงเกดจากการเปรยบเทยบขอมล ม 2 สถานะ คอ จรง

(True) และ เทจ (False) เชน Disable=False 3. String เปนขอมลประเภทขอความตาง ๆ ซงประกอบดวยอกขระ 1 ตว

หรอมากกวา ขอมลชนดนจะอยในเครองหมายค าพด ("....") เชน ID_code="LD115"

Page 24: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

24

4. Null เปนขอมลทก าหนดใหเปนคาวาง หมายถง ไมมคาใด ๆ ปรากฏใชส าหรบ การยกเลกทเกบในตวแปร

การแปลงชนดของขอมล

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

1. ค าสงแปลงจาก String เปน Number มวธการแปลงคาดงน 1.1 ใชฟงกชน parseInt() หรอ parseFloat() ในการแปลงคา 1.2 ใชเครองหมาย (+...) เพมไปขางหนา

2. ค าสงแปลงจาก Number เปน String มวธการแปลงคาดงน 2.1 ใชเครองหมาย " " + ตวแปร หรอ คาทเปนตวเลข

ตวแปรแบบอารเรย (Array)

ตวแปรแบบอารเรย หมายถง ตวแปรซงมคาไดหลายคา โดยใชชออางองเพยงชอเดยว ดวยการใชหมายเลขล าดบเปนตวจ าแนกความแตกตางของคาตวแปรแตละตว ถาจะเรยกตวแปรชนดนวา "ตวแปรชด" กไมผด ตวแปรชนดนมประโยชนมาก หากคดถงคาของขอมล 100 คา ทตองการเกบ ในตวแปร 100 คา และตองใชตวแปรถง 100 ตว อาจท าใหตองมการเกบตวแปรทมชอแตกตางกนมากถง 100 ชอ แตดวยการใชสมบตของอาเรย เราสามารถน าตวแปรหลาย ๆ ตวมารวมอยเปนชดเดยวกน และสามารถใชตวแปรทงหมดโดยระบผานชอเพยงชอเดยวเทานน ดวยการระบหมายเลขล าดบ หรอ ดชน (index) ก ากบตามหลงชอตวแปร ตวแปรเพยงชอเดยวกมความสามารถเทยบไดกบตวแปรรอยตว

ตวแปรแบบอารเรยมดชนเรมตนท 0 สวนตวแปรตอ ๆ ไปจะมดชนเปน 1 ,2,3 .... ไป ตามล าดบ เมอตองการระบชอตวแปรแบบอารเรยแตละตวกใชรปแบบ name[0],name[1],name[2]..... ไปตามล าดบ เรยงตอกนไปเรอย ๆ เราสามารถสรางตวแปรอาเรยใหมดวย myArray= new array() ดงน

Page 25: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

25

คาคงท (Literal หรอ Constant)

คาคงท หมายถง คาของขอมลทเมอก าหนดแลวจะท าการเปลยนคาเปนอยางอนไปไมได ชนดของขอมลทคงท ไดแก

1. เลขจ านวนเตม (Integer) เปนตวเลขทไมมทศนยมใด ๆ สามารถเขยนใหอยในแบบเลขฐาน 10 (0-9) เลขฐาน 16 (0-9,A-F) เลขฐาน 8 (0-8) , โดยการเขยนเลขฐานตองน าหนาดวยสญลกษณ เชน เลขฐานแปดใหน าหนาดวย O (Octenary) สวนการเขยนเลขฐาน 16 จะน าหนาดวย Ox (Hexadenary)

2. เลขจ านวนจรง ( Floating) รปแบบการเขยนโดยประกอบไปดวยตวเลข จดทศนยม และตวเลขยกก าลง E (Exponential) เชน

5.00E2 จะหมายถงคา 5.00 คณดวย 10 ยกก าลง 2 จะมคาเปน 500 3.141E5 จะหมายถง 3.141 คณดวย 10 ยกก าลง 5 จะมคาเปน 314,100

3. คาบลน (Boolean) เปนคาคงทเชงตรรกะ คอมคาจรง (True) และ เทจ (False) เทานน 4. ขอความสตรง ( String) เปนคาคงทแบบขอความทอยภายในเครองหมายค าพด ("...."

หรอ '....') เชน "โรงเรยน" หรอ 'กระทรวงศกษาธการ'

รหสค าสงพเศษ (Character escape code) รหสค าสงพเศษ ( Character) เปนการก าหนดรหสเพอควบคมการแสดงผลบนหนาจอ

ในลกษณะตาง ๆ โดยใชเครองหมาย \ (Backslash) น าหนาตวอกษรทตองการก าหนดใหเปนรหสค าสงพเศษ มดงน

Page 26: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

26

ตวอยาง

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

เปน String แมวาคาทปอนทางคยบอรดจะเปนตวเลขกตาม หากเราตองการตวแปรในรปแบบอน ๆ เราตองก าหนดคาของตวแปรใหเปนชนดทเราตองการ

นพจน (Expression)

นพจน เปนขอค าสงทใชก าหนดคาของขอมล เชน การบวกเลข การเปรยบเทยบขอมล โดยการก าหนดชอของตวแปร ตามดวยเครองหมายทตองการท า (Operations) ตอดวยขอมล เปนผลใหเกดคาขอมลใหกบตวแปรเพอน าไปใชงาน นพจน JavaScript มดวยกน 3 ชนดดงน

1. นพจนคณตศาสตร ( Arithmetic) เปนนพจนทใชเครองหมายทางคณตศาสตรเปนตวกระท า ผลลพธทไดจะมคาเปนตวเลขใหกบตวแปร เชน ใหตวแปร num เกบตวเลข 5000 จะเขยนไดดงน num=5000

2. นพจนตรรกะ ( Logical) เปนนพจนในการเปรยบเทยบขอมลโดยใชเครองหมายในการเปรยบเทยบเพอตรวจสอบขอมลในการเปรยบเทยบวา จรง หรอ เทจ เชน

3. นพจนขอความ ( String) เปนนพจนเกยวกบการก าหนดขอความ การเชอมประโยคขอความ ใชประมวลผลขอความในลกษณะตาง ๆ ผลลพธทไดจงมคาเปนตวอกษรหรอขอความเสมอ เชน ใหตวแปร name เกบชอ Nuanchan จะเขยนไดดงน

Page 27: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

27

ตวด าเนนการ (Operator)

ตวด าเนนการ หมายถง เครองหมายก าหนดกรรมวธทางคณตศาสตรพชคณต บลน การเปรยบเทยบระหวางขอมล 2 ตว ซงเรยกวา โอเปอรแรนด ( Operand) โดยอาจมคาเปน ตวเลข ขอความ คาคงท หรอตวแปรตาง ๆ ซงประเภทของตวด าเนนการ (Operator Type) ใน JavaScript มดงน

1. ตวด าเนนการคณตศาสตร (Arithmetic Operator) ตวด าเนนการทางคณตศาสตร ใชส าหรบค านวณ Operand ทเปนคาคงท หรอตวแปรกได

โดยใหคาผลลพธเปนตวเลขตวเดยว Operator เชงคณตศาสตรทสวนใหญรจกคนเคยกนมากทสด ไดแก

2. ตวด าเนนการก าหนดคา (Assignment Operator) ตวด าเนนการก าหนดคา ( Assignment Operator) ตวด าเนนการก าหนดคา เปนเครองหมาย

ในการก าหนดใหตวแปรทอยทางฝงซายมคาเทากบคาเดมในตวแปรทอยทางฝงขวา ดงน

Page 28: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

28

3. ตวด าเนนการเพมคาและลดคา (increment / Decrement Operator) ตวด าเนนการเพมคาและลดคา เปนเครองหมายทใชในการเพมหรอลดคาของขอมลทางขวา

ใหกบตวแปรทางดานซายมอของสมการ มเครองหมายดงน

4. ตวด าเนนการเชงเปรยบเทยบ (Comparison Operator) ตวด าเนนการเชงเปรยบเทยบ หมายถง เครองหมายในการเปรยบเทยบขอมลผลลพธทได

จะมคาตรรกะบลลนเปนจรง (True) และ เทจ (False)

5. ตวด าเนนการเชงตรรกะ (Logical Operator) ตวด าเนนการเชงตรรกะ เปนเครองหมายทใหคาจรง (True) และเทจ (False)

ในการเปรยบเทยบ ประกอบดวยเครองหมาย ดงน

Page 29: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

29

6. ตวด าเนนการเชงขอความ (String operator) ตวด าเนนการเชงขอความ เปนการเชอมประโยคขอความเขาดวยกน (Concatenation) โดยใช

เครองหมายบวก(+) เปนตวกระท า

ล าดบความส าคญของเครองหมายหรอตวด าเนนการในการค านวณ

ล าดบท 1 ( ) ล าดบท 2 ++ -- ! ~ ล าดบท 3 * / % ล าดบท 4 + - ล าดบท 5 << >> >>> ล าดบท 6 < <= > >= ล าดบท 7 == != ล าดบท 8 & ล าดบท 9 ^ ล าดบท 10 | ล าดบท 11 &&

Page 30: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

30

ล าดบท 12 || ล าดบท 13 = += -= *= /= %= <<= >>= >>>= &= ^= !=

ฟงกชน (Function)

ฟงกชน คอ โปรแกรมยอย เปนสวนของโปรแกรมทถกก าหนดใหท างานใดงานหนง จนส าเรจ นอกจากนฟงกชนยงท าใหโปรแกรมอานไดงายขน สะดวกในการหาจดทผดและงาย ตอการปรบปรงแกไขพฒนาโปรแกรมในอนาคต

ชนดของฟงกชน ฟงกชนในภาษาสครปต มอยดวยกน 2 แบบคอ 1. ฟงกชนมาตรฐาน (Standard Function) เปนฟงกชนทมอยแลวในภาษาจาวาสครปต

เราสามารถน าไปใชงานไดทนท 2. ฟงกชนสรางขนเอง (User-Defined Function) เปนฟงกชนทผใชสรางขนมาเอง

เพอก าหนดใหท างานใดงานหนงจนส าเรจ

การเรยกใชฟงกชน เปนการก าหนดทศทางการท างานของค าสง หรอก าหนดสวนของโปรแกรมใหท างานใด

งานหนงจนเสรจ โดยอางองชอฟงกชนของการท างานทตองการ ผลของการเรยกใชฟงกชนจะมการสงคาคนไปยงโปรแกรมสวนทเรยก โดยใชชอฟงกชนเปนตวเกบคาเสมอนหนงกบเปนตวแปร เมอตองการใชงานกพมพชอฟงกชนตรงนลงไปตรง ๆ แตจะตองจ าใหแมนวาตองพมพใหเหมอนกน ทงชอและตวอกษรพมพใหญ- เลก มรปแบบการเขยนดงน

รปแบบ

โดยก าหนดใหตวแปรท าหนาทเกบผลลพธทไดจากการอางองเรยกใชฟงกชน เพอให ท างานใดงานหนงจนส าเรจ

Page 31: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

31

การสรางฟงกชนขนใชงานเอง(User-defined Function) เปนฟงกชนทผใชสรางขนมาเพอก าหนดใหท างานอยางใดอยางหนง การสรางฟงกชนนน

จะขนตนดวยค าวา Function ตามดวยชอของฟงกชนทตองการ มรายละเอยด ดงน รปแบบ

โดยก าหนดให ชอฟงกชน ( Function Name) หมายถง ชอของฟงกชนทสรางขน ไมไปซ ากบชอ

ของฟงกชนอน พารามเตอร ( Parameter) หมายถง คาของขอมลหรอตวแปรทอางอง ( Argument)

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

ขอค าสง (Statement) หมายถง ค าสงตาง ๆ ทประกอบขนเพอใหด าเนนการภายในฟงกชน ตองก าหนดค าสงตาง ๆ ภายใตเครองหมายวงเลบปกกา {....}

การวางต าแหนงฟงกชน ส าหรบการวางต าแหนงฟงกชนในภาษาจาวาสครปต มลกษณะเชนเดยวกบการวางต าแหนง

สครปต นนคอจะวางไวในสวนของ <head> หรอ วางไวในสวนของ <body> ขนอยกบวา ตองการใหฟงกชนนนถกโหลดใชงานกอนหรอหลงตามล าดบการใชงาน

ในกรณทฟงกชนนนมการถกเรยกใชบอยครงจากสวนอน ๆ ของโปรแกรม แนะน าวา ควรจะก าหนดฟงกชนไวในสวนของ <head> เพราะเมอมการเรยกใชโหลดเวบเพจขนมา ฟงกชนตาง ๆ ทก าหนดขนในสวน <head> จะถกโหลดเขามาเกบไวในหนวยความจ ากอนเปนอนดบแรก ท าให เราสามารถเรยกใชฟงกชนจากต าแหนงใด ๆ บนเอกสาร HTML หรอบนขอบเขตของสครปต <script>

Page 32: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

32

ได และนอกจากนยงสามารถเรยกใชงานฟงกชนอน ๆ ทก าหนดในสวนของ <head> ท างานรวมกน ไดอกดวย

รปแบบ

โดยก าหนดใหกลมค าสงของภาษาจาวาสครปต หมายถง ค าสงใด ๆ หรอฟงกชน หรอการ

เรยกใชฟงกชนทตองการใชงาน

Page 33: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

33

ชดค าสง (Statement)

ชดค าสง คอ ขอความหรอประโยคทสามารถสงใหภาษาจาวาสครปต ด าเนนงานตามล าดบ ทไดสงไว การเขยนค าสงจะสนสดดวยเครองหมายเซมโคลอน ( ;) เราสามารถรวมค าสงหลาย ๆ ชด ไวทเดยวกนได โดยใชเครองหมายวงเลบปกกา {...} เชน การเขยนค าสงในฟงกชน การเขยนค าสง ในการตดสนใจ

ตวอยางการเขยนชดค าสง 2 ค าสง ก าหนดใหตวแปร name เกบชอ Nungning พมพประโยคขอความวา My name is Nungning

การรบและแสดงขอมล

การท างานพนฐานของโปรแกรม จะตองมการรบขอมลเขามาประมวลผล และแสดงผลลพธทางจอภาพ ซงในภาษาจาวาสครปต มค าสงและฟงกชนมาตรฐานทใชในการรบและแสดงผลขอมลดงน

1. การแสดงขอมลทางจอภาพ จาวาสครปตแบงค าสงในการแสดงผลขอมลบนหนาเวบเพจออกเปน 2 ค าสง ดงน

1.1 ค าสง document.write() ใชแสดงขอความบนหนาเวบเพจ โดยมรปแบบดงน

Page 34: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

34

ตวอยาง

1.2 ค าสง document.writeln() ใชแสดงขอความบนหนาเวบ แบบขนบรรทดใหม โดยมรปแบบดงน

ตวอยาง

2. การรบขอมลโดยใชฟงกชน prompt()ใชแสดงกรอบโตตอบ ( Dialog Box) เพอรบขอมลจากผใช โดยมรปแบบค าสงดงน

Page 35: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

35

โดยท text หมายถง ขอความทปรากฏบนกรอบโตตอบ value หมายถง คา หรอ ขอความทปรากฏในชองกรอกขอมล โดยจะก าหนดคาหรอไมกไดหากไมก าหนด จะแสดงขอความ "undefined" ตวอยาง

3. การรบขอมลโดยใชฟงกชน confirm()ใชแสดงกรอบตอบโตทมลกษณะเปนค าถาม

เพอใหผใชยนยนการท างาน หรอยกเลกการท างาน หากผใชยนยนการท างาน function จะคนคา เปน true แตถาหากผใชยกเลกการท างาน function จะคนคาเปน false โดยมรปแบบค าสงดงน

โดยท question หมายถง ค าถาม ตวอยาง

4. การแสดงขอมลโดยใชฟงกชน alert() ใชแสดงกรอบโตตอบเพอแจงเตอนการท างาน หรอแสดงขอความหรอคาของตวแปรตาง ๆ ใหผใชทราบ มลกษณะคลายกบ Message Box ของ Windows โดยโปรแกรมจะหยดท างานชวคราว เมอกรอบโตตอบปรากฏขนมา และจะรอจนกระทงผใชคลก ปม “OK” โปรแกรมจงจะท างานตอไป มรปแบบค าสงดงตอไปน

Page 36: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

36

โดยท

text หมายถง ขอความทตองการแจงเตอน variable หมายถง ตวแปรทตองการแจงเตอน

การใสขอความใหฟงกชน alert() จะตองอยภายในเครองหมาย “…” ถาเปนตวแปรสามารถใสเปนชอตวแปรไดเลย แตถาตองการแสดงขอความพรอมดวยตวแปร จะตองใสเครองหมายบวก + รวมอยดวย ตวอยาง

ค าสงควบคมการท างาน

ค าสงทใชในการควบคมการท างานของโปรแกรม ประกอบดวยกลมค าสง 2 กลม คอ 1. ค าสงในการตดสนใจ (Selection) 2. ค าสงในการวนรอบ (Iteration)

1. ค าสงในการตดสนใจ (Selection) เปนกลมค าสงทใชส าหรบการตดสนใจเพอเลอกเงอนไขตาง ๆ ภายในโปรแกรม เพยงเงอนไข

เดยวมาท างาน ไดแก ค าสง if และ switch ซงชดค าสงแบบนในจาวาสครปตจะมอย 4 ลกษณะดงน 1.1 ค าสง if if เปนการก าหนดใหโปรแกรมท างานเมอเงอนไขทระบหลง if เปนจรง โดยมรปแบบ

ของประโยค ดงน

Page 37: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

37

1.2 ค าสง if...else if..else เปนการก าหนดเงอนไขเพมขนมาจาก if โดยมความหมายคอ ถามเงอนไขหลง if

ไมเปนจรง โปรแกรมจะท างานมาท else แทน ซงมรปแบบค าสง ดงน

1.3 ค าสง if...else if...else if..else if..else เปนการก าหนดเงอนไขทซอนขนมาจาก if โดยมความหมาย คอ ถาเงอนไข if

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

Page 38: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

38

1.4 ค าสง switch switch เปนค าสงทคลาย ๆ กบ if..else if ..else คอ ถาเงอนไดเปนจรงทเงอนไขใด กจะท า

ตามค าสงหลงเงอนไขน มรปแบบของประโยคค าสง ดงน

Page 39: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

39

2. ค าสงในการวนรอบ (Iteration) เปนค าสงทมการท างานซ ากนหลาย ๆ ครง จนกวาจะครบตามเงอนไขทก าหนด การท างาน

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

2.1 การวนรอบในรปแบบ for การวนรอบในรปแบบของ for น จะเปนการวนรอบทเราตองก าหนดคาเรมตนในการวนรอบ

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

จากตวอยาง เปนการวนรอบจ านวน 5 รอบ โดยเราท าการก าหนดคาเรมตนไวทเลข 1

และใหตวแปร i มารบคาเรมตนนไว จากนนเปนเงอนไข ในทนเราก าหนดเงอนไขวา หากคาของ i ยงมคานอยกวาหรอเทากบ 5 ใหโปรแกรมนท าการวนรอบตอไป แตหากคาของ i มากกวา 5 กจะ หยดการวนรอบน ส าหรบการเปลยนแปลงคาเรมตน เราก าหนดใหทกครงทมการวนรอบคาของ i จะเพมขนทละ 1 ผลจากการท างานของโปรแกรมตวอยางจะแสดงคาออกมาดงน

ภาพท 1.8 ผลการท างานของโปรแกรมตวอยางการวนรอบแบบ for

Page 40: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

40

2.2 การวนรอบในรปแบบของ while การวนรอบในรปแบบของ while นเปนการวนรอบโดยทเราก าหนดเงอนไขในการวนรอบ

ลงไป หากเงอนไขทก าหนดไวยงมคาเปนจรง ( True) อยการวนรอบนนจะด าเนนตอไป ดงตวอยางตอไปน

จากตวอยาง เปนการวนรอบจ านวน 5 รอบและจะมการท างานรปแบบเงอนไขตาง ๆ

เชนเดยวกบรปแบบของ for ดงภาพ

ภาพท 1.9 ผลการท างานของโปรแกรมตวอยางการวนรอบแบบ while

Page 41: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

41

2.3 การวนรอบในรปแบบ do...while การวนรอบในรปแบบของ do..while มการท างานทคลายกบประโยค while แตจะแตกตางกน

ตรงท do..while จะมการท างานใน Block ค าสง 1 ครง กอนตรวจสอบเงอนไขเพอท าการวนรอบ ดงตวอยางตอไปน

จากตวอยาง เปนการวนรอบทมเงอนไขทเปนเทจตงแตตน คอ ในตวอยางก าหนดเงอนไข

ไววา หาก i มากกวา 2 ใหท างานในการวนรอบ แตคาเรมตนทก าหนดให i คอ 1 ฉะนน คา i จงนอยกวา 2 และท าใหเงอนไขเปนเทจและไมเกดการวนรอบแตโปรแกรมกยงท างานใน Block ค าสง ของ do...while 1 ครง ผลทไดคอ

ภาพท 1.10 ผลการท างานของโปรแกรมตวอยางการวนรอบแบบ do..while

Page 42: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

42

ตวอยาง 1. โปรแกรมท างานแบบล าดบ (sequence.html)

2. โปรแกรมแบบทางเลอก (Condition.html)

Page 43: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

43

3. โปรแกรมแบบท าซ า (loop.html)

Page 44: ใบความรู้ · 1 ใบความรู้ หน่วยที่ 1 เรื่อง การพัฒนาโปรแกรมด้วยภาษา

44

อางอง

โกสนต เทพสทธทรากรณ. (2555). หนงสอเรยนรายวชาพนฐานกลมสาระการเรยนร

การงานอาชพและเทคโนโลย เทคโนโลยสารสนเทศ ชนมธยมศกษาปท 3

ตามหลกสตรแกนกลางการศกษาขนพนฐาน พทธศกราช 2551. กรงเทพ ฯ : แมค.

ธนาวฒ ประกอบผล. (2555). หนงสอเรยนรายวชาพนฐาน เทคโนโลยสารสนเทศ

และการสอสาร ม.3 ชนมธยมศกษาปท 3 กลมสาระการเรยนร การงานอาชพ

และเทคโนโลย ตามหลกสตรแกนกลางการศกษาขนพนฐานพทธศกราช 2551.

กรงเทพ : ซคเซส มเดย .

ไพโรจน ตรณธนากล, ไพบลย เกยรตโกมล, และเสกสรร แยมพนจ. (2546).

การออกแบบและผลตบทเรยนคอมพวเตอรชวยสอน ส าหรบ e-Learning .

กรงเทพ ฯ : ศนยสอเสรมกรงเทพ .

มนตชย เทยนทอง. (บก.). (2555). หนงสอเรยนรายวชาพนฐาน เทคโนโลยสารสนเทศ

และการสอสาร 3 ชนมธยมศกษาปท กลมสาระการเรยนรการงานอาชพ

และเทคโนโลย ตามหลกสตรแกนกลางการศกษาขนพนฐาน พทธศกราช 2551.

กรงเทพ ฯ : พฒนาคณภาพวชาการ (พว.) จ ากด.

วเชยร พมพวง. (2555). หนงสอเรยนรายวชาพนฐาน เทคโนโลยสารสนเทศ

และคอมพวเตอร 3 ชนมธยมศกษาปท 3 กลมสาระการเรยนรการงานอาชพ

และเทคโนโลย ตามหลกสตรแกนกลางการศกษาขนพนฐาน พทธศกราช 2551.

กรงเทพ ฯ : เอมพนธ จ ากด.