A7 ม ไฟแจ งเต อนสายไม ได ร บม ย

3 คาํ อธิบายรายวชิ า หลกั สูตรเทคโนโลยี วทิ ยาการคาํ นวณ กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ ชันมธั ยมศึกษาปี ที ภาคเรียนที 1 เวลา 20 ชัวโมง ศึกษาแนวคิดเชิงนามธรรม การคดั เลือกคุณลกั ษณะทีจาํ เป็นต่อการแกป้ ัญหา ขนั ตอนการแกป้ ัญหา การเขียนรหสั ลาํ ลองและผงั งาน การเขียนออกแบบ และเขียนโปรแกรมอยา่ งง่าย ทีมีการใชง้ านตวั แปร เงือนไข และการวนซาํ เพือแกป้ ัญหาทางคณิตศาสตร์ หรือ วทิ ยาศาสตร์ การรวบรวมขอ้ มูลปฐมภูมิ การประมวลผลขอ้ มูล การสร้างทางเลือกและ ประเมินผลเพอื ตดั สินใจซอฟตแ์ วร์และ บริการบน อินเตอร์เน็ตทีใชใ้ นการจดั การขอ้ มูล แนวทางการใชง้ านเทคโนโลยสี ารสนเทศใหป้ ลอดภยั การจดั การอตั ลกั ษณ์ การพจิ รณาความเหมาะ สมของเนือหา ขอ้ ตกลงและขอ้ กาํ หนดการใชส้ ือและแหล่งขอ้ มูล นาํ แนวคิดเชิงนามธรรมและขกั ตอนการแกป้ ัญหา ไปประยกุ ตใ์ ชใ้ นการเขียนโปรแกรม หรือการแกป้ ัญหาในชีวติ จริง รวบรวม ขอ้ มูล และสร้างทางเลือก ในการตดั สินใจไดอ้ ยา่ งมีประสิทธิภาพและตระหนกั ถึงการใชง้ าน เทคโนโลยสี ารสนเทศอยา่ งปลอดภยั เกิด ประโยชนต์ ่อการเรียนรู้ และไมาสร้างความเสียหายใหแ้ ก่ผอู้ ืน ตวั ชีวดั ว. 4.2 เทคโนโลยี (วทิ ยาการคาํ นวณ) 1. ออกแบบอลั กอริทึมทีใชแ้ นวคิดเชิงนามธรรมเพือแกป้ ัญหา หรืออธิบายการทาํ งานทีพบในชีวติ จริง 2. ออกแบบและเขียนโปรแกรมอยา่ งง่าย เพือแกป้ ัญหาทางคณิตศาสตร์ หรือวทิ ยาศาสตร์ 3. รวบรวมขอ้ มูลปฐมภูมิ ประมวลผล ประเมินผล นาํ เสนอขอ้ มูลและสารสนเทศ ตามวตั ถุประสงค์ โดยใชซ้ อฟตแ์ วร์หรือบริการ บนอินเทอร์เน็ตทีหลากหลาย 4. ใชเ้ ทคโนโลยสี ารสนเทศอยา่ งปลอดภยั ใชส้ ือและแหล่งขอ้ มูลตามขอ้ กาํ หนดและขอ้ ตกลง รวมทงั หมด 4 ตวั ชีวดั

4 ตวั ชีวดั และสาระการเรียนรู้ หลกั สูตรเทคโนโลยี วทิ ยาการคาํ นวณ กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ ชันมธั ยมศึกษาปี ที ภาคเรียนที 1 เวลา 20 ชัวโมง สาระที 4 เทคโนโลยี มาตรฐาน ว. . เขา้ ใจและใชแ้ นวคิดเชิงคาํ นวณในการแกป้ ัญหาทีพบในชีวติ จริงอยา่ งเป็นขนั ตอน และเป็นระบบ ใชเ้ ทคโนโลยสี ารสนเทศ และ การสือสารในการเรียนรู้ การทาํ งาน และการแกป้ ัญหาไดอ้ ยา่ งมีประสิทธิภาพ รู้เท่าทนั และมีจริยธรรม ลาํ ดบั ตวั ชีวดั สาระสําคญั ที 1 ว. . ม. / ออกแบบอลั กอริทึมทีใชแ้ นวคิด เชิงนามธรรม เพือแกป้ ัญกา หรืออธิบายการทาํ งาน ทีพบในชีวติ จริง 2 ว. . ม. / ออกแบบและเขียนโปรแกรมอยา่ งง่าย เพือแกป้ ัญหาทางคณิตศาสตร์หรือ วทิ ยาศาสตร์ 3 ว. . ม. / รวบรวมขอ้ มูลปฐมภูมิ ประมวลผล ประเมินผล นาํ เสนอขอ้ มูลและสารสนเทศ ตามวตั ถุประสงค์ โดยใชซ้ อฟแวร์ หรือบริการบนอินเตอร์เน็ตทีหลากหลาย 4 ว. . ม. /4 ใชเ้ ทคโนโลยสี ารสนเทศอยา่ งปลอดภยั ใชส้ ือและแหล่องขอ้ มูลตามขอ้ กาํ หนด และขอ้ ตกลง

5 โครงสร้างรายวชิ า หลกั สูตรเทคโนโลยี วทิ ยาการคาํ นวณ กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ ชันมธั ยมศึกษาปี ที ภาคเรียนที 1 เวลา 20 ชัวโมง ลาํ ดบั ชือหน่วยการเรียนรู้ สาระสําคญั มฐ/ตชว. เวลา (ช.ม.) นําหนัก ที คะแนน 1 แนวคิดเชิงนามธรรม - แนวคิดเชิงนามธรรม ว 4.2 ม. / 5 10 -การคดั เลือกคุณลกั ษณะทีจาํ เป็นต่อ การแกป้ ัญหา 6 20 -การถ่ายทอดรายละเอียดของปัญหา และ การแกป้ ัญหา 6 20 2 การแกป้ ัญหา - ขนั ตอนการแกป้ ัญหา ว 4.2 ม. / 1 10 - การเขียนรหสั ลาํ ลองและผงั งาน 1 20 - การกาํ หนดค่าใหต้ วั แปร 1 20 - ภาษาโปรแกรม 20 100 - รู้จกั ไพทอน - ตวั แปร - ชนิดขอ้ มูล 3 การเขียนโปรแกรมดว้ ยภาษาไพทอน - การแปลงชนิดขอ้ มูล ว 4.2 ม. / - ทีแขียนโปรแกรมไพทอนในโหมด สคลิปต์ กิจกรรม สอบกลางภาค สอบปลายภาค รวม

6 หน่วยการเรียนรู้ที 1 แนวคดิ เชิงนามธรรม กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ สาระที 4 เทคโนโลยี มาตรฐานว 4.2 เขา้ ใจและใชแ้ นวคิดเชิงคาํ นวณ ในการแกป้ ัญหาทีพบในชีวติ จริงอยา่ งเป็น ขนั ตอนและเป็นระบบ ใชเ้ ทคโนโลยี สารสนเทศ และการสือสารในการเรียนรู้ การทาํ งาน และการแกป้ ัญหาไดอ้ ยา่ งมีประสิทธิภาพ รู้เท่าทนั และมีจริยธรรม ตวั ชีวดั ว. . ม. / ออกแบบอลั กอริทึมทีใชแ้ นวคิดเชิงนามธรรมเพือแกป้ ัญหา หรืออธิบายการทาํ งานทีพบในชีวติ จริง สาระสําคญั 1. แนวคิดเชิงนามธรรม .การคดั เลือกคุณลกั ษณะทีจาํ เป็นต่อการแกป้ ัญหา 3. การถ่ายทอดรายละเอียดของปัญหาและการแกป้ ัญหา สาระการเรียนรู้ 1. อธิบายวธิ ีการนาํ แนวคิดเชิงนามธรรมมาใชว้ เิ คราะห์โจทยป์ ัญหาและถ่ายทอดแนวคิด . วเิ คราะห์รายละเอียดทีจาํ เป็นของปัญหาออกจากรายละเอียดทีไม่จาํ เป็น และอธิบายรายละเอียดทีไม่ครบถว้ น . ออกแบบวธิ ีการแกป้ ัญหาโดยใชแ้ นวคิดเชิงนามธรรม คุณลกั ษณะทพี งึ ประสงค์ . มีวนิ ยั . ใฝ่ เรียนรู้ . มุ่งมนั ในการทาํ งาน

8 \"ในชีวติ ประจาํ วนั นกั เรียนคงเคยพบกบั ปัญหาทีไม่รู้วา่ จะแกไ้ ขหรือดาํ เนินการอยา่ งไร นนั อาจเป็นเพราะนกั เรียนยงั ไม่เขา้ ใจ ปัญหาดีพอ เช่น นกั เรียนตอ้ งเดินทางไปสถานทีแห่งหนึงดว้ ยรถโดยสาร นกั เรียนอาจตอบวา่ ไม่เคยไป จะไปไดอ้ ยา่ งไร หากนกั เรียน พิจารณารายละเอียดต่อไปวา่ สถานทีนนั อยทู่ ีใด มีสถานทีใดบา้ งทีใดบา้ งทีอยใู่ กลเ้ คียง กอ็ าจทาํ ใหน้ กั เรียนนึกออกวา่ จะสามารถเดินทาง ไปได้ หลงั จากนนั จะตอ้ งหาขอ้ มูลเพิมเติมวา่ มีรถโดยสารใดผา่ นบา้ ง แต่ถา้ รถนนั ไม่ผา่ นบา้ นเราจะทาํ อยา่ งไร ตอ้ งเดินทางไปต่อรถทีใด ราคาค่าโดยสารเป็ นเท่าใด การพจิ ารณารายละเอียดของปัญหาการเดินทางของนกั เรียน ทาํ ใหเ้ ขา้ ใจเงือนไขทีเกียวขอ้ งและทาํ ใหท้ ราบประเดน็ ทีสาํ คญั เพือนาํ ไปสู่วธิ ีการแกป้ ัญหาทีมีประสิทธิภาพ” การออกแบบการแกป้ ัญหาโดยนาํ แนวคิดเชิงนามธรรมมาประยกุ ตใ์ ช้ จะทาํ ใหก้ ารแกป้ ัญหา ทีมรประสิทธิภาพมากขึน ในบทนีจะ กล่าวถึงกระบวนการในการพจิ ารณารายละเอียดของปัญหา ซึงจะนาํ ไปสู่วธิ ีการแกป้ ัญหา

9 แนวคิดเชิงนามธรรม (abstract thinking หรือ abstraction) เป็นองคป์ ระกอบหนึงของแนวคิดเชิงคาํ นวณ (computational thinking) ซึงใชก้ ระบวนการคดั แยกคุณลกั ษณะทีสาํ คญั ออกจากรายละเอียดปลีกยอ่ ยในปัญหา หรืองานทีกาํ ลงั พจิ ารณา เพอื ใหไ้ ดข้ อ้ มูลทีจาํ เป็น และเพียงพอในการแกป้ ัญหา ในการแกป้ ัญหาหนึงอาจมีวธิ ีการแกป้ ัญหาไดห้ ลายวธิ ี ขึนอยกู่ บั การมองปัญหา การมองเห็นรายละเอียดเป้าหมายของโจทยป์ ัญหา และประสบการณ์ของผแู้ กป้ ัญหา ดงั ตวั อยา่ งต่อไปนี ตวั อย่าง 1.1 คาํ ทกั ทาย Hello ในภาษาองั กฤษรูปแบบต่างๆ คาํ วา่ Hello แต่ละตวั มีรูปแบบทีแตกต่างกนั ขึนอยกู่ บั ประสบการณ์ทีผเู้ ขียนแต่ละคนมี จากตวั อยา่ งจะเห็นรายละเอียดทีแต่งต่างกนั เช่น สี รูปแบบอกั ษร (font) อกั ษรตวั พิมพใ์ หญ่หรือตวั พิมพเ์ ลก็ และรายละเอียดอืนๆ เช่น การขีดเสน้ ใต้ หรือการเอียงของตวั อกั ษร โดย รูปแบบทีแต่ละคนมีอยู่ ถา้ จะถ่ายทอดใหผ้ อู้ ืนรับรู้ และเขา้ ใจทุกอยา่ งแทบจะเป็นไปไม่ได้ และอาจจะไม่มีความจาํ เป็นทีผอู้ ืนตอ้ งรับรู้ราย ละเอียดทงั หมด ในทีนีหากผรู้ ับขอ้ มูลตอ้ งการทราบวา่ คาํ นีประกอบไปดว้ ยอกั ขระใดบา้ ง โดยไม่สนใจประเภทของอกั ษรตวั พมิ พใ์ หญ่หรือตวั พิมพเ์ ลก็ คาํ วา่ Hello ทุกตวั ในตาราง ต่างกม็ ีองคป์ ระกอบเชิงนามธรรมเดียวกนั คือ เป็นคาํ ทีประกอบดว้ ยอกั ขระ H,E,L,L,และ O แต่ใน บางสถานการณ์อาจจะสือวา่ ขอ้ มูลดงั กล่าวเป็นเพียงอกั ขระภาษาองั กฤษ 5 ตวั หรือเป็นคาํ ภาษาองั กฤษเพยี งหนึงคาํ ตวั อย่างที 1.2 คดั กรองรายละเอียดของคาํ วา่ HELLO เมือระบุความตอ้ งการทีแตกต่างกนั ดงั นี • ขอ้ มูลประกอบดว้ ยอกั ขระใดบา้ ง แต่ละอกั ขระเป็นอกั ษรตวั พิมพเ์ ลก็ หรือตวั พิมพใ์ หญ่ และมีสีอะไร • ขอ้ มูลประกอบดว้ ยอกั ขระใดบา้ ง แต่ละอกั ขระประกอบดว้ ยสีอะไร • ขอ้ มูลประกอบดว้ ยอกั ขระใดบา้ ง • ขอ้ มูลประกอบดว้ ยอกั ขระกีตวั • ขอ้ มูลประกอบดว้ ยคาํ กีคาํ คาํ อธิบายคุณลกั ษณะของคาํ วา่ HELLO ตามความตอ้ งการแต่ละรายการรวมถึงรูปแบบต่างๆ แสดงใหเ้ ห็นดงั ตาราง 1.1

10 ตาราง 1.1 คาํ อธิบายคุณลกั ษณะของคาํ วา่ HELLO ตามรายละเอียดทีตอ้ งการ กจิ กรรมที 1.1 1. ใหน้ กั เรียนวาดรูปบา้ นในจินตนาการของตนเอง หลงั จากนนั จบั คู่แลว้ ผลดั กนั อธิบายรายละเอียดบา้ นของตนเองใหเ้ พือนวาด ตาม โดยไม่ใหเ้ พอื นเห็นรูปบา้ นตน้ ฉบบั 2. ใหเ้ ปรียบเทียบรูปบา้ นของตนเองกบั รูปบา้ นทีเพอื นวาดวา่ สิงใดบา้ งทีเหมือนและแตกต่างกนั 3. ใหจ้ ดั กลุ่มรูปบา้ นของนกั เรียนทงั หอ้ ง นกั เรียนจะใชเ้ กณฑอ์ ะไรในกลุ่ม และจดั ไดก้ ีกลุ่ม ปัญหาทีกาํ ลงั พิจารณาอยนู่ นั อาจประกอบไปดว้ ยรายละเอียดจาํ นวนมาก ทงั ทีจาํ เป็นและไม่จาํ เป็นต่อการแกป้ ัญหา ลองพิจารณา ปัญหาในสถานการณ์สมมติดงั ตวั อยา่ งต่อไปนี ตวั อย่างที 1.3 แชร์กบั ฉนั หอ้ งเรียนหอ้ งหนึงในโรงเรียนมธั ยมแห่งหนึงมีนกั เรียนอยทู่ งั หมด 20 คน เพอื เป็นการตอนรับการเปิ ดเทอมก๊วนเพือนรักซึง ประกอบไปดว้ ยหนูนิก หนูแนน และหนูหน่อยไดน้ ดั กนั ไปรับประทานอาหารทีร้านป้าแป๋ วใกลโ้ รงเรียน และตกลงกนั วา่ ไม่วา่ ใครจะสงั อะไรกจ็ ่ายค่าอาหารคนละเท่าๆ กนั โดยมีรายการอาหารดงั นี

11 หนูนิกสงั สลดั ผกั กบั นาํ มะนาวปัน หนูแนนสงั ขา้ วผดั กบั ชาเยน็ ส่วนหนูหน่อยสงั ก๋วยเตียวกบั ทบั ทิมกรอบ ใหพ้ จิ ารณารูป 1.1 วา่ ขอ้ มูลใดบา้ งทีจาํ เป็นต่อการแกป้ ัญหา ซึงนกั เรียนจะเห็นวา่ ขอ้ มูลทีจาํ เป็นตอ้ งทราบ คือ ราคาอาหาแต่ละรายการทีสงั เพือทีจะนาํ มารวมกนั แลว้ หารดว้ ยจาํ นวนเพอื นที ไป ซึงประกอบดว้ ย 3 คน คือ หนูนิก หนูแนน และหนูหน่อย กจิ กรรมที 1.2 ใหน้ กั เรียนวเิ คราะห์สถานการณ์จ่อไปนี แลว้ บอกวา่ ขอ้ มูลใดจาํ เป็นในการทาํ งาน หรือแกป้ ัญหา พร้อมอธิบายเหตุผลประกอบ 1. การเดินทางจากบา้ นไปโรงเรียน 2. การเลือกซือสินคา้ 3. การเลือกรับประทานอาหาร 4. การทาํ ไข่เจียว 5. การวาดรูปตน้ ไม้ หรือดอกไม้ หลงั จากทีคดั แยกรายละเอียดทีจาํ เป็นออกจากรายละเอียดทีไม่จาํ เป็นไดแ้ ลว้ ขนั ตอนต่อไปคือการถ่ายทอดรายละเอียดนีไปสู่ผทู้ ีจะ วเิ คราะห์และแกป้ ัญหา ซึงเป็นไปไดห้ ลายรูปแบบ หากผแู้ กป้ ัญหาคือยคุ คลอืนการถ่ายทอดปัญหาสามารถทาํ ไดโ้ ดยการอธิบายเป็น ขอ้ ความและอาจใชแ้ ผนภาพประกอบ หากผแู้ กป้ ัญหาคือคอมพวิ เตอร์การถ่ายทอดวธิ ีการแกป้ ัญหากจ็ ะอยใู่ นรูปของภาษาโปรแกรม ตวั อย่างที 1.4 ด่านผา่ นทางของลุงสมบตั ิ

12 ลุงสมบตั ิตอ้ งการหารายไดเ้ สริมโดยการตดั ถนนส่วนบุคคล ทีอนุญาตใหผ้ ขู้ บั ขียานพาหนะผา่ นไปมาไดแ้ ต่ตอ้ งจ่ายค่าผา่ นทาง โดย เริมตน้ ทีคนั ละ 10 บาท บวกดว้ ยค่าทาํ เนียมทีคิดตามจาํ นวนลอ้ ของยานพาหนะลอ้ ละ 5 บาท (ตวั อยา่ งเช่น รถเก๋ง 4 ลอ้ จะตอ้ งเสียค่าผา่ น ทาง 10+4 x 5 = 30 บาท) ส่วนคนเดินเทา้ สามารถสญั จรผา่ นไปมาไดโ้ ดยไม่ตอ้ งเสียค่าผา่ นทาง รูป 1.2 แสดงยานพาหนะและผสู้ ญั จรที ผา่ นด่านของลุงสมบตั ิ ใหอ้ ธิบายสถานการณ์ใหม่ทีประกอบไปดว้ ยรายละเอียดนอ้ ยทีสุด โดยทียงั มีขอ้ มูลเพียงพอทีจะนาํ ไปคาํ นวณวา่ ลุงสมบตั ิสามารถ เกบ็ ค่าผา่ นทางไดเ้ ป็นจาํ นวนทงั สินกีบาท รูป 1.2 ยานพาหนะและผสู้ ญั จรทีผา่ นทางของลุงสมบตั ิ สิงทีโจทยต์ อ้ งการทราบ คือ ค่าผา่ นทางทงั หมดทีลุงสมบตั ิจะเกบ็ ได้ ซึงคาํ นวณไดจ้ ากจาํ นวนยานพาหนะและจาํ นวนลอ้ ของยาน พาหนะ ส่วนรายละเอียดอืนๆ เช่น สี ขนาด รูปทรง จาํ นวนคนเดินผา่ นทางสามารถละทิงไดเ้ นืองจากไม่มีส่วนเกียวขอ้ งกบั การคาํ นวณ สถานการณ์ขา้ งตน้ จึงสามารถพิจารณาใหเ้ หลือเพยี งรายละเอียดทีจาํ เป็นไดด้ งั นี • ยานพาหนะ 1 ลอ้ จาํ นวน 2 คนั • ยานพาหนะ 2 ลอ้ จาํ นวน 3 คนั • ยานพาหนะ 3 ลอ้ จาํ นวน 1 คนั • ยานพาหนะ 4 ลอ้ จาํ นวน 3 คนั • ค่ายานพาหนะผา่ นทางเริมตน้ คนั ละ 1. บาท • ค่ายานพาหนะผา่ นทางเพิมเติม ลอ้ ละ 5 บาท จะเห็นไดว้ า่ รายการขา้ งตน้ ใหข้ อ้ มูลทีเพยี งพอต่อการถ่ายทอด ใหก้ บั ผทู้ ีรับผดิ ชอบในการนาํ ขอ้ มูลไปคาํ นวณ เป็นค่าผา่ นทาง ทงั หมดทีลุงสมบตั ิสามารถรวบรวมได้ ซึงคาํ นวณไดด้ งั นี ค่าผา่ นทางทงั หมด = (จาํ นวนยานพาหนะทงั หมด x 10) + (จาํ นวนลอ้ ทงั หมด x 5) = (2 + 3 + 1 + 3) x 10 + ((1 x 2) + (2 x 3)+(3 x 1) + (4 x 3)) x5 = 205 บาท ตวั อย่างที 1.5 บ่อเลียงปลาของคุณนายสมศรี คุณนายสมศรีตอ้ งการสร้างบ่อเลียงปลาลงพืนทีวา่ งรูปสีเหลียมพนื ผา้ ดา้ นหลงั บา้ น พนื ทีดงั กล่าวมีขนาด 15 x 8 ตารางเมตร ปัจจุบนั มีหญา้ คาขึนรกสูงประมาณ 100 เซนติเมตร จึงจาํ เป็นตอ้ งจา้ งคนงานมาตดั หญา้ ใหเ้ รียบร้อย ซึงคิดค่าแรงตามพืนทีตารางเมตรละ 10 บาท บ่อนาํ ทีตอ้ งการสร้างเป็นรูปวงกลมขนาดเสน้ ผา่ นศูนยก์ ลาง 5 เมตร มีความลึก 1 เมตร ปูดว้ ยกระเบืองลายหินอ่อนทงั พนื สระและ ผนงั ดา้ นในของสระ กระเบืองทีนาํ มาปูมีขนาดแผน่ ละ 3 x 3 เซนติเมตร เมือสร้างบ่อเสร็จแลว้ จะเติมนาํ จนเตม็ และซือลูกปลาสีเหลือง สี แดง และสีเขียว มาเลียงเอาไวอ้ ยา่ งละ 5 ตวั ซึงทีตลาดนดั มีขายตงั ละ 40 บาท ตวั อยา่ งบ่อเลียงปลาของคุณนายสมศรีดงั รูป 1.3

13 รูป 1.3 บ่อเลียงปลาของคุณนายสมศรี คุณนายสมศรีตอ้ งการทราบวา่ • หากตอ้ งตดั หญา้ เตม็ พืนที จะตอ้ งจ่ายค่าแรงใหช้ ่างตดั หญา้ ทงั สินกีบาท • ตอ้ งซือกระเบืองปูพืนและผนงั บ่อเลียงปลาทงั สินกีแผน่ การตอบคาํ ถามแต่ละขอ้ นนั ใชร้ ายละเอียดทีอธิบายไวแ้ ตกต่างกนั ดงั ตาราง 1.2 ตาราง 1.2 แนวคิดเชิงนามธรรมทีใชห้ าคาํ ตอบบ่อเลียงปลาตามเงือนไขกาํ หนด ตวั อย่าง 1.6 เดินกลบั บา้ นหลงั เลิกเรียน

14 รูป 1.4 แผนภาพแสดงทีตงั สถานทีต่างๆ รูป 1.4 เป็นแผน่ ภาพแสดงทีตงั ของสถานทีต่างๆ รวมถึงเสน้ ทางและระยะทางของถนนแต่ละเสน้ โดยใหม้ ีรายละเอียดเพียงพอที จะหาคาํ ตอบเหล่านีได้ • เสน้ ทางเดินจากโรงเรียนกลบั บา้ นทีใชร้ ะยะทางสนั ทีสุด • เสน้ ทางเดินจากโรงเรียนกลบั บา้ นทีสนั ทีสุดโดยแวะร้านขายขนม • เสน้ ทางเดินจากโรงเรียนกลบั บา้ นทีสนั ทีสุดโดยแวะร้านขายขนม และเลือกเดินเฉพาะถนนทีมีร่มเงาเท่านนั รูป 1.5 แสดงแผนภาพเชิงนามธรรมทีใหข้ อ้ มูลเพยี งพอทีจะตอบคาํ ถามไดท้ งั หมด สญั ลกั ษณ์รูปวงรีแทนสถานที เสน้ ตรงแทน ถนนทีเชือมระหวา่ งสถานที ตวั เลขกาํ กบั เสน้ แทนระยะทางของถนน และเสน้ สีเขียว แทนถนนทีมีร่มเงา

15 กิจกรรมที 1.3 ใหน้ กั เรียนพิจารณาสถานการณ์ต่อไปนีวา่ มีสิงใด เป็นขอ้ มูลทีจาํ เป็นและไม่จาํ เป็นต่อการแกป้ ัญหาและแสดงวธิ ีในการหาคาํ ตอบ 1. ใหน้ กั เรียนลากเสน้ ตรงผา่ นจุดทุกจุด โดยใชจ้ าํ นวนเสน้ ทีลากนอ้ ยทีสุด 2. มีสม้ 5 กิโลกรัม องุ่น 7 กิโลกรัม ชมพู่ 4 กิโลกรัม รวมมีผลไมท้ งั หมดกีกิโลกรัม 3. มีลูกโป่ ง 48 ใบ แตกไป 6 ใบ ขายไปได้ 50 ใบ ราคาใบละ 5 บาท ไดเ้ งินทงั หมดเท่าใด การนาํ แนวคิดเชิงนามธรรมมาประยกุ ตใ์ ชก้ บั การแกป้ ัญหา จะช่วยใหก้ ารออกแบบขนั ตอนวธิ ีการแกป้ ัญหามีประสิทธิภาพและ

16 ประสิทธิผล ไม่วา่ จะเป็นการแกป้ ัญหาดว้ ยบุคคลหรือคอมพวิ เตอร์กต็ าม อีกทงั ยงั เป็นการช่วยใหม้ องเห็นรูปแบบของปัญหาทีคลา้ ยคลึง กนั ทาํ ใหส้ ามารถนาํ ขนั ตอนวธิ ีการแกป้ ัญหาทีมีอยแู่ ลว้ มาประยกุ ตใ์ ชก้ บั ปัญหาในชีวติ จริงได้ ลองพจิ ารณาตวั อยา่ งต่อไปนี ตวั อย่างที 1.7 สะพานเจด็ แห่งของโคนิกสเบิร์ก เมืองโคนิกสเบิร์ก ประเทศรัสเซีย มีแม่นาํ พรีเกิลผา่ กลางทาํ ใหแ้ บ่งเมืองออกเป็นสองฝัง แม่นาํ นียงั แตกแขนงออกเป็นสองสาย ทาํ ใหเ้ กิดเกาะขึนสองเกาะระหวา่ งพนื ทีเมืองทงั สองฟาก ชาวเมืองไดส้ ร้างสะพานขึนเจด็ แห่งเพือเชือมพนื เมืองทงั หมดเขา้ ดว้ ยกนั ดงั รูป 1.6 รูปที 1.6 ภาพวาดของเมืองโคนิกสเบิร์กและสะพานทงั เจด็ แห่ง ต่อมาสะพานทงั เจด็ แห่งนีไดก้ ลายเป็นปริศนาทีน่าทา้ ทาย เมือหลายคนพยายามทีเดินขา้ มสะพานใหค้ รบทงั หมดโดยจะไม่ขา้ มสะ พานใดๆ ซาํ เป็นครังทีสอง แต่กไ็ ม่มีใครทาํ ไดส้ าํ เร็จ นกั เรียนลองพยายามหาเสน้ ทางการขา้ มสะพานดว้ ยตนเองวา่ ไดห้ รือไม่ หากนกั เรียนยงั ไม่ทราบคาํ ตอบ ใหล้ องศึกษาตวั อยา่ งต่อไปนี ตวั อย่างที 1.8 ลากเสน้ โดยไม่ยกปากกา ตวั อยา่ งที 1.7 และ 1.8 ดูเป็นปัญหาทีแตกต่างกนั มาก แต่ในความเป็นจริงแลว้ วธิ ีการแกป้ ัญหาหนึงสามารถนาํ มาใชแ้ กป้ ัญหาอีก ปัญหาหนึงได้ ซึงทาํ ไดโ้ ดยการนาํ แนวคิดเชิงนามธรรมมาใชม้ องปัญหาของการเดินขา้ มสะพานเจด็ แห่ง ในทีนีใหน้ าํ ตาํ แหน่งสะพาน เมืองทีถูกแบ่งเป็นสองฝัง และเกาพกลางแม่นาํ ทงั สองเกาะมาสร้างเป็นรูปแบบทีตดั รายละเอียดทีไม่จาํ เป็นออก ดงั รูป 1.7 รูปที 1.7 ภาพเชิงนามธรรมของปัญหาสะพานเมืองโคนิกสเบิร์ก

17 ภาพทางดา้ นขวาของรูป 1.7 แมว้ า่ จะมีการคดั แยกรายละเอียดของเมืองและสิงก่อสร้างทีไม่จาํ เป็นออกไปแลว้ จะเห็นวา่ ขนาดขอ เกาะและพืนทีเมืองนนั ไม่ไดเ้ ป็นรายละเอียดทีเกียวขอ้ งกบั ปัญหา จึงสามารถแทนพืนทีเกาะและเมืองแต่ละบริเวณดว้ ยจุดหนึงจุด และให้ สะพานแทยดว้ ยเสน้ ทีเชือมโยงจุดเหล่านีเขา้ ดว้ ยกนั ดงั รูป 1.8 รูปที 1.8 รูปวาดเชิงนามธรรมของสะพานเมืองโคนิกสเบิร์ก เมือเปรียบเทียบการเดินขา้ มสะพานใหค้ รบทงั เจด็ แห่งโดยไม่เดินขา้ มสะพานเดิมซาํ จึงเทียบไดก้ บั การลากเสน้ สีดาํ ทงั เจด็ ใหค้ รบ โดยไม่ลากซาํ เสน้ เดิมทีลากไปแลว้ ดงั นนั หากหาวธิ ีการลากเสน้ ใหค้ รบโดยไม่ซาํ ได้ กจ็ ะไดว้ ธิ ีเดินขา้ มสะพานทงั เจด็ โดยไม่ซาํ เช่น เดียวกนั นนั คือวธิ ีการหาคาํ ตอบของตวั อยา่ งที 1.8 กจ็ ะสามารถนาํ มาใชห้ าคาํ ตอบของตวั อยา่ งที 1.7 ได้ นกั คณิตศาสตร์ชือเลออนฮาร์ท ออยเลอร์ (Leonhard Euler) เป็นหนึงในผนู้ าํ แนวคิดเชิงนามธรรมลกั ษณะนีมาแกป้ ัญหาการเดิน ขา้ มสะพานทงั เจด็ แห่ง ในปี ค.ศ. โดยอาศยั รูปแบบทีเรียบง่ายนีมาพิสูจนไ์ ดว้ า่ ไม่มีเสน้ ทางใดทีจะเดินขา้ มสะพานไดต้ ามเงือนไขที กาํ หนด

18 สรุปทา้ ยบท การนาํ แนวคิดเชิงนามธรรมไปใชใ้ นการแกป้ ัญหา สิงทีสาํ คญั ทีสุดคือ การคดั แยกคุณลกั ษณะทีสาํ คญั ออกจากรายละเอียดทีไม่ จาํ เป็น เพือใหไ้ ดข้ อ้ มูลทีจาํ เป็น เพียงพอ และกระชบั ในการถ่ายทอดองคป์ ระกอบของปัญหา ทาํ ใหก้ ารแกป้ ัญหามีประสิทธิภาพมากขึน ช่วยใหก้ ารออกแบบขนั ตอนวธิ ีในการหาคาํ ตอบทาํ ไดง้ ่ายขึน อีกทงั ยงั เพมิ โอกาสทีจะพบวา่ ปัญหาทีกาํ ลงั แกไ้ ขเป็นสิงเดียวกนั กบั ปัญหา เดิมทีเคยแกไ้ ขแลว้ ส่งผลใหส้ ามารถนาํ วธิ ีการทีมีอยแู่ ลว้ มาประยกุ ตใ์ ชง้ านไดโ้ ดยไม่ตอ้ งออกแบบวธิ ีการแกป้ ัญหาใหม่ตงั แต่ตน้ กิจกรรมทา้ ยบท พจิ ารณาสถานการณ์ต่อไปนีแลว้ ตอบคาํ ถาม ปลูกหญ้าเลยี งววั ชาวนาคนหนึงเลียงววั เอาไวร้ ีดนม ในแต่ละวนั ชาวนาจะผกู ววั ไวก้ บั หลกั ทีปลูกหญา้ ไวร้ อบๆ เพอื ใหว้ วั กินเป็น อาหาร โดยทีววั สามารถเดินไดอ้ ยา่ งอิสระในขอบเขตความยาวของเชือกโดยไม่พน้ กบั หลกั 1. ใหอ้ อกแบบแผนภาพเชิงนามธรรมทีแสดงใหเ้ ห็นถึงพนื ทีทีววั สามารถเดินไปมาได้ พร้อมระบุขอ้ มูลทีจาํ เป็นต่อการคาํ นวณ พนื ทีกาํ กบั เอาไวใ้ นแผนภาพดว้ ย 2. ใหเ้ ขียนสูตรคาํ นวณความยาวเชือกทีสนั ทีสุดทีชาวนาตอ้ งใชใ้ นการผกู ววั ไวก้ บั หลกั เพอื ใหว้ วั สามารถกินหญา้ ได้ x ตารางเมตร พอดี (โดยปลายเชือกดา้ นหนึงจะเกียวกบั หลกั เสาและอีกดา้ นจะเกียวกบั ปลอกคอววั )

19 หน่วยการเรียนรู้ที 2 การแเก้ปัญหา กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ สาระที 4 เทคโนโลยี มาตรฐานว 4.2 เขา้ ใจและใชแ้ นวคิดเชิงคาํ นวณ ในการแกป้ ัญหาทีพบในชีวติ จริงอยา่ งเป็น ขนั ตอนและเป็นระบบ ใชเ้ ทคโนโลยี สารสนเทศ และการสือสารในการเรียนรู้ การทาํ งาน และการแกป้ ัญหาไดอ้ ยา่ งมีประสิทธิภาพ รู้เท่าทนั และมีจริยธรรม ตวั ชีวดั ว. . ม. / ออกแบบอลั กอริทึมทีใชแ้ นวคิดเชิงนามธรรมเพือแกป้ ัญหา หรืออธิบายการทาํ งานทีพบในชีวติ จริง สาระสําคญั .ขนั ตอนการแกป้ ัญหา .การเขียนรหสั ลาํ ลองและผงั งาน .การกาํ หนดค่าใหต้ วั แปร .ภาษาโปรแกรม สาระการเรียนรู้ . อธิบายขนั ตอนการแกป้ ัญหา . วางแผนการแกป้ ัญหาโดยใชร้ หสั ลาํ ลองและผงั งาน . แกป้ ัญหาตามขนั ตอนการแกป้ ัญหา คุณลกั ษณะทพี งึ ประสงค์ . มีวนิ ยั . ใฝ่ เรียนรู้ . มุ่งมนั ในการทาํ งาน

21 ในชีวติ ประจาํ วนั ทุกคนตอ้ งเคยพบกบั ปัญหาต่างๆ ไม่วา่ จะเป็นปัญหาดา้ นการเรียน การงาน การเงินหรือแมแ้ ต่การเล่นเกม เมือ พบกบั ปัญหาแต่ละคนมีวธิ ีการทีจะจดั การหรือแกป้ ัญหาเหล่านนั แตกต่างกนั ไป ซึงแต่ละวธิ ีการอาจใหผ้ ลลพั ธ์ทีเหมือนหรือแตกต่างกนั เลก็ นอ้ ย ทงั นีขึนอยกู่ บั ความรู้ ความสามารถ และประสบการณ์ของบุคคลนนั อยา่ งไรกต็ ามหากเรานาํ วธิ ีการแกป้ ัญหาต่างๆนนั มา วเิ คราะห์ใหด้ ี จะพบวา่ วธิ ีการเหล่านนั เป็นทฤษฎีซึงมีรูปแบบทีแน่นอนได้ และบางครังตอ้ งอาศยั การเรียนรู้ในระดบั สูงเพอื แกป้ ัญหาบาง อยา่ งใหส้ มบูรณ์แบบ แต่ก่อนทีเราจะศึกษาต่อไป ลองพิจารณาปัญหาเหล่านี ตวั อย่างที 1.1 เกมทายใจ คือ เกมใหผ้ เู้ ล่นทายตวั เลข 3 ตวั ในการเล่นเกมตอ้ งใชผ้ เู้ ล่น 2 คน คนทีหนึง คือ ผกู้ าํ หนด เป็นคน กาํ หนดเลข 3 ตวั ทีไม่ซาํ กนั โดยเลือกจากกลุ่มตวั เลข 1-9 และอีกคนหนึงคือ ผทู้ าย เป็นผทู้ ายเลข 3 ตวั ทีไม่ซาํ กนั ทีผกู้ าํ หนดไดก้ าํ หนด เอาไวแ้ ลว้ หลงั จากทีผทู้ ายทายเลขแต่ละครัง ผกู้ าํ หนดตอ้ งใหร้ ายละเอียดวา่ ตวั เลขทีทายมานนั ถูกตอ้ งกีตวั และในกรณีทีตวั เลขทีทายมา ถูกตาํ แหน่งดว้ ยกต็ อ้ งบอกวา่ ถูกตาํ แหน่งกีตวั เช่น ถา้ ตวั เลขทีกาํ หนดไวเ้ ป็น 815 และ ผทู้ ายทายวา่ 123 ผกู้ าํ หนดตอ้ งแจง้ วา่ ตวั เลขทีทาย นนั ถูก 1 ตวั และไม่มีตวั ใดถูกตาํ แหน่ง ดงั รูป เป็นตารางแสดงขอ้ มูลการเล่นเกมทายใจ ตวั เลขทีทาย จาํ นวนตวั เลขทีถูก จาํ นวนตาํ แหน่งทีถูก 123 1 - 415 2 2 425 1 1 416 1 1 715 2 2 815 3 3 จะเห็นวา่ การแกป้ ัญหาดงั กล่าวขา้ งตน้ นอกจากจะใชว้ ธิ ีลองผดิ ลองถูกในการทายครังแรกๆ แลว้ ยงั มีการใชเ้ หตุผลประกอบการแก้ ปัญหาซึงเราเรียกวธิ ีการดงั กล่าววา่ \"วธิ ีขจดั \" (Method of elimination) กล่าวคือ จะแยกขอ้ มูลกรณีทีเป็นไปไม่ไดท้ ิง จนเหลือกรณีทีเป็น ไปได้ วธิ ีการดงั กล่าวสามารถอธิบายได้ วา่ ทาํ ไมจึงคิดเช่นนนั รูปแบบของการใชเ้ หตุผลประกอบการแกป้ ัญหาอาจแตกต่างกนั ขึนอยกู่ บั

22 เงือนไข ในปัญหาบางปัญหาอาจจะขจดั ใหเ้ หลือกรณีเดียวไม่ไดแ้ ต่อาจจะทาํ เหลือกรณีนอ้ ยทีสุด นอกจากวธิ ีการแกป้ ัญหาทียกตวั อยา่ งมาซึงไดแ้ ก่ วธิ ีการลองผดิ ลองถูก การใชเ้ หตุผล การใชว้ ธิ ีขจดั ยงั มีวธิ ีการแกป้ ัญหาอีก มากมายทีผแู้ กป้ ัญหาสามารถเลือกใชใ้ หเ้ ขา้ กบั ตวั ปัญหาและประสบการณ์ของผแู้ กป้ ัญหาเอง แต่อยา่ งไรกต็ าม วธิ ีการเหล่านีลว้ นมีขนั ตอนทีคลา้ ยคลึงกนั และจากการศึกษาพฤติกรรม ในการเรียนรู้และแกป้ ัญหาของมนุษยพ์ บ วา่ โดยปกติมนุษยม์ ีกระบวนการในการแก้ ปัญหาประกอบดว้ ย 4 ขนั ตอนดงั รูป รูปที 1.2 กระบวนการแกป้ ัญหา 1. การวเิ คราะห์และกาํ หนดรายละเอยี ดของปัญหา การวเิ คราะห์และกาํ หนดรายละเอียดของปัญหา(State the problem) ขนั ตอนนีเป็นขนั ตอนแรกสุดก่อนทีจะลงมือแกป้ ัญหา แต่ผแู้ ก้ ปัญหามกั จะมองขา้ มความสาํ คญั ของขนั ตอนนีอยเู่ สมอ จุดประสงคข์ องขนั ตอนนี คือ การทาํ ความเขา้ ใจกบั ปัญหาเพอื แยกใหอ้ อกวา่ ขอ้ มูลทีกาํ หนดมาในปัญหาหรือเงือนไขของปัญหาคืออะไร และสิงทีตอ้ งการคืออะไร อีกทงั วธิ ีการทีใชป้ ระมวลผล ในการวเิ คราะห์ ปัญหา กล่าวสรุปมีองคป์ ระกอบในการวเิ คราะห์ดงั นี การระบุขอ้ มูลเขา้ ไดแ้ ก่ การพิจารณาขอ้ มูลและเงือนไขทีกาํ หนดมาในปัญหา การระบุขอ้ มูลออก ไดแ้ ก่ การพิจารณาเป้าหมายหรือสิงทีตอ้ งการหาคาํ ตอบ การกาํ หนดวธิ ีประมวลผล ไดแ้ ก่ การพิจารณาขนั ตอนวธิ ีการไดม้ าซึงคาํ ตอบหรือขอ้ มูลออก ตวั อย่างที 1.2 แสดงวธิ ีการวเิ คราะห์และกาํ หนดรายละเอียดของการหาค่าเฉลียของจาํ นวนเตม็ 5 จาํ นวน ไดแ้ ก่ 0 3 4 8 และ 12 จากองค์ประกอบในการวเิ คราะห์และกาํ หนดรายละเอยี ดของปัญหา .การระบุขอ้ มูลเขา้ ในทีนีโจทยก์ าํ หนด ใหค้ ่าเฉลียของจาํ นวนเตม็ 5 จาํ นวน ดงั นนั ขอ้ มูลเขา้ ไดแ้ ก่ 0 3 4 8 และ .การระบุขอ้ มูลออก จากโจทยส์ ิงทีเป็นคาํ ตอบของปัญหา คือ ค่าเฉลียของจาํ นวนทงั 5 .การกาํ หนดวธิ ีการประมวลผล จากโจทยส์ ิงทีตอ้ งการ \"ค่าเฉลีย\" หมายถึง ผลรวมของ

23 จาํ นวนทงั 5 หารดว้ ย 5 ดงั นนั ขนั ตอนในการประมวลผลคือ 3.1 รับค่าจาํ นวนทงั 5 จาํ นวน . นาํ จาํ นวนเตม็ ทงั 5 มาบวกเขา้ ดว้ ยกนั 3.3 นาํ ผลลพั ธ์จากขอ้ 3.2 มาหารดว้ ย 5 ตวั อย่างที 1.3 แสดงการวเิ คราะห์และกาํ หนดรายละเอียดของการหาค่า x เมือ x คือจาํ นวนเตม็ จาํ นวนหนึงในกลุ่มของจาํ นวนเตม็ 5 จาํ นวน ทีมีค่าเฉลียเป็น 10 และอีก 4 จาํ นวน ไดแ้ ก่ 3 4 8 และ 12 จากองค์ประกอบในการวเิ คราะห์และกาํ หนดรายละเอยี ดของปัญหา .การระบุขอ้ มูลเขา้ จากโจทยข์ อ้ มูลเขา้ ไดแ้ ก่ 1.1 จาํ นวนอีก 4 จาํ นวนคือ 3 4 8 และ 1.2 ค่าเฉลียของจาํ นวนทงั 5 จาํ นวนคือ 10. .การระบุขอ้ มูลออก จากโจทยส์ ิงทีเป็นคาํ ตอบของปัญหา คือ ค่า x .การกาํ หนดวธิ ีการประมวลผล จากโจทยส์ ิงทีตอ้ งการ \"ค่าเฉลีย\" เราสามารถสรุปขนั ตอน ของการประมวลผลไดด้ งั นี 3.1 รับค่าจาํ นวนทงั 5 จาํ นวน โดยนาํ ค่าเฉลียคูรดว้ ยจาํ นวนเลขจาํ นวนเตม็ นนั คือ * = 50 3.2 จากความหมายของ \"ผลรวม\" จะได้ 3+4+8+12 = 27 3.3 แกส้ มการ 27 + x = 50 (จะได้ x = 23 ซึงคือ ผลลพั ธ์) 2. การเลือกเครืองมือและการออกแบบขนั ตอนวธิ ี การเลือกเครืองมือและการออกแบบขนั ตอนวธิ ี (Tool and Algorithm development) ขนั ตอนนีเป็นขนั ตอนของการวางแผนใน การแกป้ ัญหาอยา่ งละเอียดถีถว้ น หลงั จากทีเราทาํ ความเขา้ ใจกบั ปัญหา พิจารณาขอ้ มูลและเงือนไขทีมีอยู่ และสิงทีเราตอ้ งการหาในขนั ตอนที 1 แลว้ เราสามารถคาดคะเนวธิ ีการทีจะใชใ้ นการแกป้ ัญหา ขนั ตอนนีจาํ เป็นตอ้ งอาศยั ประสบการณ์ของผแู้ กป้ ัญหาเป็นหลกั หากผู้ แกป้ ัญหาเคยพบกบั ปัญหาทาํ นองนีมาแลว้ กส็ ามารถดาํ เนินการตามแนวทางทีเคยปฏิบตั ิมา ขนั ตอนนีจะเริมจากการเลือกเครืองมือ ทีใชใ้ นการแกป้ ัญหา โดยพิจารณาความเหมาะสมระหวา่ งเครืองมือกบั เงือนไขต่างๆ ของ ปัญหาซึงหมายรวมถึงความสามารถของเครืองมือในการแกป้ ัญหาดงั กล่าว และสิงทีสาํ คญั คือความคุน้ เคยในการใชง้ านเครืองมือนนั ๆ ของผแู้ กป้ ัญหาสาํ คญั คือความคุน้ เคยในการใชง้ านเครืองมือนนั ๆ ของผแู้ กป้ ัญหา อกี สิงหนึงทสี ําคญั ในการแกป้ ัญหา คือ ยทุ ธวธิ ีทีใชใ้ นการแกป้ ัญหาหรือทีเรียกวา่ ขนั ตอนวธิ ี(Algorithm) ในการแกป้ ัญหา หลงั จากทีเราไดเ้ ครืองมือช่วยแกป้ ัญหา แลว้ ผแู้ กป้ ัญหาตอ้ งวางแผนวา่ จะใชเ้ ครืองมือ ดงั กล่าวเพือใหไ้ ดผ้ ลลพั ธ์ทีถูกตอ้ งและดีทีสุด การ ออกแบบขนั ตอนวธิ ีในการแกป้ ัญหา ผแู้ กป้ ัญหาควรใชแ้ ผนภาพหรือเครืองมือในการแสดงขนั ตอนการทาํ งานเพือใหง้ ่ายต่อความเขา้ ใจ เช่น ผงั งาน(Flowchart) ทีจาํ ลองขนั ตอนวธิ ีในการแกป้ ัญหาในรูปสญั ลกั ษณ์ รหสั ลาํ ลองหรือรหสั เทียม (pseudo code) ซึงเป็นการจาํ ลอง ขนั ตอนวธิ ีของการแกป้ ัญหาในรูปของคาํ บรรยาย การใชเ้ ครืองมือช่วยออกแบบดงั กล่าวนอกจากแสดงกระบวนการทีชดั เจนแลว้ ยงั ช่วย ใหผ้ แู้ กป้ ัญหาสามารถหาขอ้ ผดิ พลาดของวธิ ีการทีใชไ้ ดง้ ่ายและแกไ้ ขไดอ้ ยา่ งรวดเร็ว 3. การดาํ เนินการแก้ปัญหา การดาํ เนินการแก้ปัญหา(Implementation) หลงั จากทีไดอ้ อกแบบขนั ตอนวธิ ีเรียบร้อยแลว้ ขนั ตอนนีเป็นขนั ตอนทีตอ้ งลงมือแก้

24 ปัญหาโดยใชเ้ ครืองมือทีไดเ้ ลือกไว้ หากการแกป้ ัญหาดงั กล่าวใชค้ อมพิวเตอร์เขา้ มาช่วยงาน ขนั ตอนนีกเ็ ป็นการใชง้ านโปรแกรมสาํ เร็จ หรือใชภ้ าษาคอมพิวเตอร์เขียนโปรแกรมแกป้ ัญหา ขนั ตอนนีตอ้ งอาศยั ความรู้เกียวกบั เครืองมือทีเลือกใชซ้ ึงผแู้ กป้ ัญหาตอ้ งศึกษาใหเ้ ขา้ ใจ และเชียวชาญ ในขณะทีดาํ เนินการหากพบแนวทางทีดีกวา่ ทีออกแบบไวก้ ส็ ามารถปรับเปลียนได้ 4. การตรวจสอบและปรับปรุง การตรวจสอบและปรับปรุง(Refinement) หลงั จากทีลงมือแกป้ ัญหาแลว้ ตอ้ งตรวจสอบใหแ้ น่ใจวา่ วธิ ีการนีใหผ้ ลลพั ธ์ทีถูกตอ้ ง โดยผแู้ กป้ ัญหาตอ้ งตรวจสอบวา่ ขนั ตอนวธิ ีทีสร้างขึนสอดคลอ้ งกบั รายละเอียดของปัญหา ซึงไดแ้ ก่ ขอ้ มูลเขา้ และขอ้ มูลออก เพอื ให้ มนั ใจวา่ สามารถรองรับขอ้ มูลเขา้ ไดใ้ นทุกกรณีอยา่ งถูกตอ้ งและสมบูรณ์ ในขณะเดียวกนั กต็ อ้ งปรับปรุงวธิ ีการเพอื ใหก้ ารแกป้ ัญหานีได้ ผลลพั ธ์ทีดีทีสุด ขนั ตอนทงั 4 ขนั ตอนดงั กล่าวขา้ งตน้ เป็นเสมือนขนั บนั ได (stair) ทีทาํ ใหม้ นุษยส์ ามารถประสบความสาํ เร็จในการแกป้ ัญหาต่างๆได้ รวม ทงั การเขียนหรือพฒั นาโปรแกรมคอมพิวเตอร์เพือแกป้ ัญหากต็ อ้ งใชก้ ระบวนการตามขนั ตอนทงั 4 นีเช่นกนั ขนั ตอนทีสาํ คญั ในการแกป้ ัญหา คือ การวางแผน การวางแผนทีดีจะช่วยใหแ้ กป้ ัญหาเป็นไปไดโ้ ดยง่าย ผทู้ ีสามารถวางแผนในการ แกป้ ัญหาไดด้ ีนอกจากจะตอ้ งใชป้ ระสบการณ์ ความรู้ และความมีเหตุผลแลว้ ยงั ควรรู้จกั วางแผนอยา่ งเป็นขนั ตอนอยา่ งเป็นระเบียบดว้ ย การจาํ ลองความคิดเป็นส่วนหนึงในขนั ตอนทีสองของการแกป้ ัญหา การจาํ ลองความคิดออกมาในลกั ษณะเป็นขอ้ ความ หรือเป็นแผนภาพ จะช่วยใหส้ ามารถแกป้ ัญหาไดด้ ีโดยเฉพาะอยา่ งยงิ ปัญหาทียงุ่ ยากซบั ซอ้ น การวางแผนจะเป็นแนวทางในการดาํ เนินการแกป้ ัญหาต่อไป อีกทงั เป็นการแสดงแบบเพอื ใหผ้ ทู้ ีเกียวขอ้ งไดเ้ ขา้ ใจและสามารถปฏิบตั ิตามในแนวทางเดียวกนั ทงั นีกด็ ว้ ยวตั ถุประสงคอ์ ยา่ งเดียวกบั กลุ่ม กิจการก่อสร้าง แบบแปลนเหล่านนั จะอยใู่ นรูปลกั ษณะของการวาดภาพ หรือแสดงเครืองหมายซึงเป็นทีเขา้ ใจกนั ระหวา่ งผเู้ กียวขอ้ ง แบบ แปลนจะตอ้ งจดั ทาํ ใหเ้ สร็จก่อนทีจะลงมือก่อสร้าง โดยผา่ นการตรวจสอบ ทบทวนและพจิ ารณาจากผเู้ กียวขอ้ งหลายฝ่ าย เมือเห็นวา่ เป็นที ถูกตอ้ งและพอใจของทุกฝ่ ายแลว้ จึงก่อสร้างตามแบบนนั แต่ถา้ ยงั ไม่เป็นทีพอใจ กจ็ ะพิจารณาแกไ้ ขแบบแปลนส่วนนนั ๆ เสียก่อนจะได้ ไม่ตอ้ งรือถอนหรือทุบทิงภายหลงั และเมือตอ้ งการซ่อมแซมห รือต่อเติมกน็ าํ เอาแบบแปลนเดิมมาตรวจสอบและเพิมแบบแปลนในส่วน นนั ไดโ้ ดยง่าย การใชแ้ บบแปลนจึงเป็นสิงจาํ เป็นระหวา่ งช่างก่อสร้าง ผอู้ อกแบบและผเู้ กียวขอ้ งอยา่ งอืนเป็นอยา่ งมาก เพราะประหยดั เวลาค่าใชจ้ ่ายและเขา้ ใจง่าย เมือสรุปรวมแลว้ แบบแปลนเหล่านนั กค็ ือ ขอ้ ตกลงใหส้ ร้างอาคารของผจู้ า้ งกบั ผรู้ ับจา้ งทีอยใู่ นรูปแบบ กะทดั รัด แทนทีจะเขียนเป็นขอ้ ความทีเป็นลายลกั ษณ์อกั ษรอยา่ งยดื ยาว และยงั เป็นเครืองมือใหช้ ่างใชใ้ นการก่อสร้างอีกดว้ ย การจาํ ลองความคิดเพอื วางแผนขนั ตอนในการแกป้ ัญหาทางคอมพวิ เตอร์นนั เรียกไดอ้ ีกอยา่ งวา่ อลั กอริทึม (Algorithm) หรือขนั ตอนวธิ ี อลั กอริทมึ เป็นลาํ ดบั ของคาํ สงั ทีคอมพวิ เตอร์จะปฏิบตั ิตามเพอื แกป้ ัญหาใหก้ บั เรา โดยจะทาํ คาํ สงั เรียงกนั ตามลาํ ดบั ก่อนหลงั จะ ไม่ขา้ มขนั ผลลพั ธ์ของแต่ละขนั ตอน ผลลพั ธ์ทีไดข้ องขนั ตอนหนึงจะส่งต่อไปยงั ขนั ตอนถดั ไป และส่งต่อกนั ไปเช่นนีตามลาํ ดบั ขนั จนถึง คาํ สงั สุดทา้ ยจึงจะไดผ้ ลลพั ธ์ทีเสร็จสมบูรณ์เครืองมือ ทีใชใ้ นการจาํ ลองความคิดมกั จะประกอบขึนดว้ ยเครืองหมาย ทีแตกต่างกนั หลาย อยา่ ง แต่พอสรุปไดเ้ ป็น 2 ลกั ษณะคือ ขอ้ ความหรือคาํ บรรยาย เป็นการเขียนเคา้ โครงดว้ ยการบรรยายเป็นภาษามนุษยท์ ีใชส้ ือสารกนั เพอื ใหท้ ราบถึงขนั ตอนการทาํ งาน ของการแกป้ ัญหาแต่ละตอน ในบางครังอาจใชค้ าํ สงั ของภาษาทีใชเ้ ขียนโปรแกรมกไ็ ด้ ตวั อย่างที 1.4 คาํ บรรยายแสดงขนั ตอนการเปลียนยางรถเมือยางแตกขณะขบั รถ 1) จอดรถหลบขา้ งทาง 2) คลายสกรูยดึ ลอ้ 3) นาํ แม่แรงออกยกรถ

25 4) ถอดลอ้ ออก นาํ ยางอะไหล่มาเปลียน 5) ขนั สกรูเขา้ เกบ็ ยางทีชาํ รุดเพอื ไปซ่อม 6) คลายแม่แรง เกบ็ แม่แรง การเขียนขอ้ ความเพอื การบรรยายขนั ตอนวธิ ีในการแกป้ ัญหาทางคอมพวิ เตอร์ สามารถเรียกอีกอยา่ งหนึงไดว้ า่ รหสั เทียม (pseudo code) (ศึกษาตวั อยา่ งเพิมเติมไดจ้ ากตวั อยา่ งที 1.5-1.7) หลกั การทวั ไปในการเขยี นรหัสเทยี ม 1. สญั ลกั ษณ์ทีใชใ้ นการดาํ เนินการทางคณิตศาสตร์ต่างๆ จะถูกใชง้ านตามปกติ คือ \"+\" สาํ หรับการบวก \"-\" สาํ หรับการลบ\"*\" สาํ หรับการคูณ และ \"/\" สาํ หรับการหาร 2. ชือขอ้ มูลแทนจาํ นวนทีจะถูกดาํ เนินการ 3. การกาํ หนดค่าใหก้ บั ชือขอ้ มูล เช่น เมือเราตอ้ งการกาํ หนดให้ ขอ้ มูล pi มีค่าเท่ากบั 3.14 สามารถเขียนไดด้ ว้ ยขอ้ ความ pi←3.14 หรือ pi:=3.14 หรือ pi=3.14 ในการกาํ หนดค่าทางคอมพวิ เตอร์ดา้ นซา้ ยของเครืองหมายมกั ใชแ้ ทน ทีเกบ็ ขอ้ มูล และ ดา้ นขวาแทน ขอ้ มูลทีตอ้ งการนาํ ไปเกบ็ (ดงั นนั หากใชข้ อ้ ความวา่ 3.14=pi ถือวา่ ไม่ถูกตอ้ งตาม ความหมายนี) 4. คาํ สงวนบางคาํ ทีใชใ้ นภาษาระดบั สูงทวั ไปอาจถูกนาํ มาใช้ เช่น Read หรือ Enter สาํ หรับการรับขอ้ มูลเขา้ และ Writeหรือ Print สาํ หรับการแสดงขอ้ มูลออก .การเพิมหรือลดระยะยอ่ หนา้ อยา่ งเหมาะสมเพอื แสดงระดบั ของขนั ตอนการทาํ งานในโครงสร้างควบคุม การทาํ งานในกลุ่มเดียวกนั สัญลกั ษณ์ เครืองหมายรูปแบบต่างๆ ซึงใชส้ าํ หรับสือสารความหมายใหเ้ ขา้ ใจตรงกนั สถาบนั มาตรฐานแห่งชาติอเมริกา(The American National Standard Institute, ANSI) ไดก้ าํ หนดสญั ลกั ษณ์ไวเ้ ป็นมาตรฐานแลว้ สามารถนาํ ไปใชไ้ ดต้ ามความเหมาะสมต่อไป การนาํ สญั ลกั ษณ์ไปใชเ้ พือแสดงขนั ตอนการทาํ งานต่างๆ ของงานหรือโปรแกรม รวมถึงแสดงการไหลของขอ้ มูลในระบบตงั แต่ แรกจนไดผ้ ลลพั ธ์ตามตอ้ งการเรียกวา่ การเขียนผงั งาน(Flowchart) ซึงสามารถแบ่งออกไดเ้ ป็น 2 แบบคือ 1. ผงั งานระบบ(System Flowchart) หมายถึง ผงั งานทีแสดงขนั ตอนต่างๆ ในการทาํ งานของระบบ ช่วยอธิบายลาํ ดบั การทาํ งาน ของส่วนต่างๆ ในระบบ เช่น การนาํ ขอ้ มูลเขา้ (Input) ถูกเกบ็ อยทู่ ีใดบา้ ง ใชส้ ือบนั ทึกขอ้ มูลแบบใด ลกั ษณะของการประมวลผล ตลอดจน ลกั ษณะของผลลพั ธ์(Output) ผงั งานระบบจะช่วยอาํ นวยความสะดวกใหแ้ ก่ผเู้ ขียนโปรแกรมและผทู้ ีเกียวขอ้ งทีตอ้ งการทาํ ความเขา้ ใจการ ทาํ งานของระบบ ตวั อยา่ งดงั รูป

26 2. ผงั งานโปรแกรม(Program Flowchart) หมายถึง ผงั งานทีใชใ้ นการแสดงการทาํ งานของโปรแกรมโดยละเอียดในแต่ละขนั ตอน ผงั งานโปรแกรมเป็นสิงจาํ เป็นสาํ หรับผเู้ ขียนโปรแกรมเพราะตอ้ งใชเ้ ป็นแนวทางในการเขียนโปรแกรมและเมือโปรแกรมเกิด ขอ้ ผดิ พลาดการเขา้ ไปวเิ คราะห์ผงั งานโปรแกรมจะทาํ ไดง้ ่ายกวา่ การเขา้ ไปวเิ คราะห์ตวั โปรแกรมโดยตรง ประโยชน์ของผงั งาน 1. ใชแ้ ทนการจาํ ลองความคิด ช่วยใหเ้ ขา้ ใจลาํ ดบั และความสมั พนั ธ์ระหวา่ งขนั ตอนในการทาํ งานต่างๆ 2. ใชเ้ ป็นสือกลางในการติดต่อประสานความคิดระหวา่ งผทู้ ีเกียวขอ้ ง เช่น นกั วเิ คราะห์ระบบ(systems analyst) นกั เขียน โปรแกรม(programmer) 3. ช่วยในการทดสอบหรือทบทวนขนั ตอนการทาํ งาน เพอื หาขอ้ ผดิ พลาด ตารางที 1: ความหมายของสัญลกั ษณ์ทใี ช้ในการเขยี นผงั งาน

28 ตวั อย่างที 1.5 การวางแผนไปโรงเรียน การจาํ ลองความคิดดว้ ยรหสั เทียม เริมตน้ ตืนนอน อาบนาํ แต่งตวั ไปโรงเรียน จบ การจาํ ลองความคิดเป็นสญั ลกั ษณ์

29 ตวั อย่างที 1.6 การคาํ นวณพนื ทีรูปวงกลม การจาํ ลองความคิดดว้ ยรหสั เทียม เริมตน้ รับค่า radius คาํ นวณพืนทีดว้ ยสูตร area= 22/7 * radius * radius แสดงค่า area จบ การจาํ ลองความคิดเป็นสญั ลกั ษณ์.

30 ตวั อย่างที 1.7 การจาํ ลองความคิดในการหาผลบวก 1,2,3,4,5,… จนถึง 20 (นนั คือจะหาค่า 1+2+3+4+5+…+20) การจาํ ลองความคิดดว้ ยรหสั เทียม เริมตน้ 1. กาํ หนดให้ N มีค่าเริมตน้ เป็น 0 2. กาํ หนดให้ K มีค่าเริมตน้ เป็น 1 3. นาํ ค่า K มารวมกบั ค่า N เดิม ไดผ้ ลลพั ธ์เท่าไรเกบ็ ไวท้ ี N 4. นาํ ค่า 1 มารวมกบั ค่า K เดิม ไดผ้ ลลพั ธ์เท่าไรเกบ็ ไวท้ ี K 5. เปรียบเทียบค่า K กบั 20 ถา้ K นอ้ ยกวา่ หรือเท่ากบั 20 ใหว้ นกลบั ไปทาํ ในขนั 3 และทาํ คาํ สงั ถดั ลงมาตามลาํ ดบั แต่ถา้ K มากกวา่ 20 ใหแ้ สดงคาํ ตอบ จบ การจาํ ลองความคิดเป็นสญั ลกั ษณ์

31 จากการศึกษาหลกั การขนั ตอนการแกป้ ัญหา ในหวั ขอ้ 1.1 และ 1.2 หลงั จากทีเราสามารถวเิ คราะห์ปัญหา และสร้างแบบจาํ ลอง ความคิดเพือแสดงขนั ตอนในการแกป้ ัญหาแลว้ ขนั ตอนต่อไปคือ การลงมือแกป้ ัญหาตามขนั ตอนทีไดอ้ อกแบบไว้ โดยใชเ้ ครืองมือช่วย ในการแกป้ ัญหา ในทีนีหากเครืองมือทีนกั เรียนเลือก คือ ภาษาคอมพวิ เตอร์ซึงถือไดว้ า่ เป็นขนั ตอนหนึงทีสาํ คญั ในการแกป้ ัญหาดว้ ย คอมพวิ เตอร์ การเขียนโปรแกรม (programming) หมายถึง กระบวนการใชภ้ าษาคอมพวิ เตอร์เพือกาํ หนดโครงสร้างของขอ้ มูล และกาํ หนดขนั ตอนวธิ ีเพือใชแ้ กป้ ัญหา ตามทีไดอ้ อกแบบไวโ้ ดยอาศยั หลกั เกณฑก์ ารเขียนโปรแกรมคอมพิวเตอร ข์ องแต่ละภาษาก่อนการเขียน โปรแกรม ผพู้ ฒั นาโปรแกรมจะตอ้ งเลือกภาษาทีจะนาํ มาช่วยใชง้ านโดยพจิ ารณาจากปัจจยั ต่างๆ ในการทาํ งาน เช่น ลกั ษณะของปัญหา ความถนดั ของผเู้ ขียนโปรแกรม สภาพแวดลอ้ มในการทาํ งานของระบบคอมพิวเตอร์ เป็นตน้ เนืองจากในปัจจุบนั มีภาษาคอมพิวเตอร์ให้ เลือกไดห้ ลายภาษาเช่น ภาษาปาสคาล ภาษาซี ภาษาจาวา ภาษาเดลฟาย เป็นตน้ ถึงแมแ้ ต่ละภาษาจะมีรูปแบบและหลกั การในการสร้างงาน ทีแตกต่างกนั แต่ทุกภาษาจะตอ้ งมีโครงสร้างควบคุมหลกั ทงั 3 แบบไดแ้ ก่ โครงสร้างแบบลาํ ดบั (sequential structure) โครงสร้างแบบมี ทางเลือก (selection structure) และ โครงร้างแบบทาํ ซาํ (repetition structure)

โครงสร้างแบบลาํ ดบั 32 คือโครงสร้างแสดงขนั ตอนการทาํ งานทีเป็นไปตามลาํ ดบั ก่อนหลงั และแต่ละขนั ตอนจะถูกประมวลผลเพยี งครังเดียวเท่านนั สามารถแสดงการทาํ งานของโครงสร้างนีโดยใชผ้ งั งานไดด้ งั รูป โครงสร้างแบบมที างเลือก คือ โครงสร้างทีมีเงือนไข ขนั ตอนการทาํ งานบางขนั ตอนตอ้ งมีการตดั สินใจเพอื เลือกวธิ ีการประมวลผลขนั ต่อไป และจะมีบางขนั ตอนทีไม่ไดร้ ับการประมวลผล การตดั สินใจอาจมี 2 ทางหรือมากกวา่ กไ็ ด้ โครงสร้างทีมีทางเลือกเพยี ง 2 ทางเราเรียกชือวา่ โครงสร้าง แบบ if…then…else… และโครงสร้างทีมีทางเลือกมากกวา่ 2 ทาง เราเรียกชือวา่ โครงสร้างแบบ case ซึงสามารถแสดงการทาํ งานของ โครงสร้างนีโดยใชผ้ งั งานดงั รูป

33 ตวั อย่างที 1.8 แสดงผงั งานทีจาํ ลองขนั ตอนวธิ ีการเขียนและส่งจดหมายใหอ้ ยใู่ นรูปของสญั ลกั ษณ์

34 โครงร้างแบบทาํ ซํา คือ โครงสร้างทีขนั ตอนการทาํ งานบางขนั ตอนไดร้ ับการประมวลผลมากกวา่ 1 ครัง ทงั นีขึนอยกู่ บั เงือนไขบางประการ โครงสร้าง แบบทาํ ซาํ นีตอ้ งมีการตดั สินใจในการทาํ งานซาํ และลกั ษณะการทาํ งานของโครงสร้างแบบนีมี 2 ลกั ษณะ ไดแ้ ก่ แบบทีมีการตรวจสอบเงือนไขในการทาํ ซาํ ทุกครังก่อนดาํ เนินการกิจกรรมใดๆ ถา้ เงือนไขเป็นจริงจะทาํ งานซาํ ไปเรือยๆ และหยดุ เมือเงือนไขเป็นเทจ็ การทาํ งานลกั ษณะนีแบ่งไดเ้ ป็น 2 แบบยอ่ ย ไดแ้ ก่ การทาํ ซาํ แบบ for และแบบ while ลกั ษณะการทาํ งานของทงั สอง แบบนีจะเหมือนกนั โดยสาํ หรับแบบ for นนั มกั ใชก้ รณีทีตอ้ งการกาํ หนดจาํ นวนรอบการทาํ งานทีชดั เจน แบบทีมีการดาํ เนินการกิจกรรมใดๆ ก่อนจาํ นวนหนึงรอบ แลว้ จึงค่อยตรวจสอบเงือนไขในการทาํ ซาํ ถา้ เงือนไขเป็นจริงจะทาํ งาน ซาํ ไปเรือยๆ และหยดุ เมือเงือนไขเป็นเทจ็ เรียกการทาํ งานแบบนีวา่ การทาํ ซาํ แบบ do…while ผงั งานแสดงขนั ตอนการทาํ งานซาํ ทงั สองแบบแสดงดงั รูป โครงสร้างควบคุมทงั 2 แบบทีกล่าวมาขา้ งตน้ กค็ ือ ขนั ตอนทีเราใชใ้ นการแกป้ ัญหานนั เอง พจิ ารณาตวั อยา่ งที 1.10 เป็นขนั ตอน การเลือกเครืองมือและการออกแบบขนั ตอนวธิ ี คือ ขนั ตอนที 2 ในหวั ขอ้ 1.1 เราเลือกสร้างผงั งานมาจาํ ลองขนั ตอนวธิ ีในการหาค่าเฉลีย ของจาํ นวน 5 จาํ นวน จากตวั อยา่ งที 1.2 และในตวั อยา่ งที 1.10 มีการแสดงโครงสร้างควบคุมแบบลาํ ดบั และแบบทาํ ซาํ ทีใชใ้ นการแก้ ปัญหาดว้ ย

35 ตวั อย่างที 1.10 แสดงผงั งานทีจาํ ลองขนั ตอนวธิ ีการหาค่าเฉลียของจาํ นวนเตม็ 5 จาํ นวน ใหอ้ ยใู่ นรูปของสญั ลกั ษณ์

37 หน่วยการเรียนรู้ที 3 การเขยี นโปรแกรมด้วยภาษาไพทอน กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ สาระที 4 เทคโนโลยี มาตรฐานว 4.2 เขา้ ใจและใชแ้ นวคิดเชิงคาํ นวณ ในการแกป้ ัญหาทีพบในชีวติ จริงอยา่ งเป็น ขนั ตอนและเป็นระบบ ใชเ้ ทคโนโลยี สารสนเทศ และการสือสารในการเรียนรู้ การทาํ งาน และการแกป้ ัญหาไดอ้ ยา่ งมีประสิทธิภาพ รู้เท่าทนั และมีจริยธรรม ตวั ชีวดั ว. . ม. / ออกแบบและเขียนโปรแกรมอยา่ งง่าย เพอื แกป้ ัญหาทางคณิตศาสตร์ หรือวทิ ยาศาสตร์ สาระสําคญั 1. รู้จกั ไพทอน 2. ตวั แปร 3. ชนิดขอ้ มูล 4. การแปลงชนิดขอ้ มูล .ทีแขียนโปรแกรมไพทอนในโหมดสคลิปต์ สาระการเรียนรู้ 1. ออกแแบบและเขียนโปรแกรมทีมีการใชง้ านตวั แปร 2. ออกแบบและเขียนโปรแกรมทีทาํ งานแบบมีทางเลือก 3. ออกแบบและเขียนโปรแกรมทีทาํ งานแบบวนซาํ 4. เขียนโปรแกรมเพือแกป้ ัญหาทางคณิตศาสตร์หรือวทิ ยาศาสตร์ คุณลกั ษณะทพี งึ ประสงค์ . มีวนิ ยั . ใฝ่ เรียนรู้ . มุ่งมนั ในการทาํ งาน

39 ภาษาไพทอน (Python Programming Language) เป็นภาษาโปรแกรมภาษาระดบั สูงแบบอินเทอร์พรีเตอร์ (Interperter) ที สร้างโดย กีโด ฟาน รอสซมั (Guido van Rossum) ในปี พ.ศ. 2533 ซึงภาษาไพทอนสามารถใชง้ านไดบ้ นระบบปฏิบตั ิการ ไม่วา่ จะเป็น Unix, Linux, Windows NT, Windows โดย Version ล่าสุดของ Python ตอนนีคือ 3.6 การเขียนโปรแกรมไพทอนจะใชเ้ ครืองมือช่วยในการพฒั นาโปรแกรมทีเรียกวา่ ไอดีอี (Integrated Development Environment : IDE) ซึงประกอบดว้ ยเครืองมือแกไ้ ขโปรแกรมตน้ ฉบบั (Source Code Editor) เครืองมือแกไ้ ขจุดบกพร่องของ โปรแกรม (Debugger) และเครืองมือช่วยใหโ้ ปรแกรมทาํ งานหรือรันโปรแกรม (Run) ไพทอนไอดีอีโดยทวั ไปจะทาํ งานได้ 2 โหมด คือ 1. โหมดอมิ มเี ดยี ท (Immediate Mode) ในโหมดนีผใู้ ชจ้ ะพิมพค์ าํ สงั ภาษาไพทอนลงในส่วนทีเรียกวา่ เชลล์ (Shell) ทีละคาํ สงั และตวั แปลภาษาไพทอน (Python Interpreter) จะแปลคาํ สงั หากไม่มีขอ้ ผดิ พลาด (Error) จะทาํ งานตามคาํ สงั ดงั กล่าว พร้อมแสดง ผลลพั ธ์ทนั ที 2. โหมดสคริปต์ (Script Mode) ในโหมดนีผใู้ ชต้ อ้ งพิมพค์ าํ สงั ไพทอนหลายคาํ สงั ประกอบกนั แลว้ บนั ทึกไฟลไ์ วก้ ่อน เพือ ใหต้ วั แปลภาษาไพทอนทาํ งานตามคาํ สงั ทงั หมดในโปรแกรมตงั แต่คาํ สงั แรก จนถึงคาํ สงั สุดทา้ ย

40 ไพทอนเป็นภาษาสคริปต์ ทาํ ใหใ้ ชเ้ วลาในการเขียนและคอมไพลไ์ ม่มาก ทาํ ใหเ้ หมาะกบั งานดา้ นการดูแลระบบ (System administration) เป็นอยา่ งยงิ ไดม้ ีการสนบั สนุนภาษาไพทอนโดยเป็นส่วนหนึงของระบบปฏิบตั ิการยนู ิกซ์, ลินุกซ์ และสามารถติดตงั ใหท้ าํ งานเป็นภาษาสคริปตข์ องวนิ โดวส์ ผา่ นระบบ Windows Script Host ไดอ้ ีกดว้ ย และ Python เองกไ็ ดถ้ ูกนาํ มาพฒั นา Web application อยา่ งแพร่หลาย ซึงมี Framework สาํ หรับทาํ เวบ็ ของ Python ทีไดร้ ับความนิยมอยา่ งมากคือ Django ภาษาไพทอนจะคลา้ ยกบั ภาษา C มาก โดยจะมีโครงสร้างทีไม่ซบั ซอ้ น มีไวยากรณ์ทีไดก้ าํ จดั การ ใชส้ ญั ลกั ษณ์ ทีใชใ้ นการ แบ่งบลอ็ กของโปรแกรม และใชก้ ารยอ่ หนา้ แทน ทาํ ใหส้ ามารถอ่านโปรแกรมทีเขียนไดง้ ่าย นอกจากนนั ยงั มีการสนบั สนุนการเขียน docstring ซึงเป็นขอ้ ความสนั ๆ ทีใชอ้ ธิบายการทาํ งานของฟังกช์ นั , คลาส, และโมดูลอีกดว้ ย ไพทอนเป็นภาษากาว (Glue Language) ไดอ้ ยา่ งดี เนืองจากสามารถเรียกใชภ้ าษาโปรแกรมอืนๆ ไดห้ ลายภาษา ทาํ ใหเ้ หมาะ ทีจะใชเ้ ขียนเพือประสานงานโปรแกรมทีเขียนในภาษาต่างกนั ได้ การเขียนโปรแกรมในภาษาไพทอนโดยใชไ้ ลบรารีต่าง ๆ เป็นการลดภาระของโปรแกรมเมอร์ไดเ้ ป็นอยา่ งดี ทาํ ให้ โปรแกรมเมอร์ไม่ตอ้ งเสียเวลากบั การเขียนคาํ สงั ทีซาํ ๆ เช่น การแสดงผลขอ้ มูลออกสู่หนา้ จอ หรือการรับค่าต่าง ๆ ไพทอนมีชุด ไลบรารีมาตรฐานมาใหต้ งั แต่ติดตงั อินเตอร์พรีเตอร์ นอกจากนนั ยงั มีผพู้ ฒั นาจากทวั โลกดาํ เนินการพฒั นาไลบรารี ซึงช่วยอาํ นวย ความสะดวกในดา้ นต่าง ๆ โดยจะเผยแพร่ในรูปแบบของแพค็ เกจต่าง ๆ ซึงสามารถติดตงั เพิมเติมไดอ้ ีกดว้ ย สุดทา้ ยคือ ภาษาไพทอน ทาํ งานเร็วทีสุดเมือเทียบกบั ภาษา script ดว้ ยกนั เช่น php, jsp, asp จะพดู วา่ ไพทอน เขียนนอ้ ยไดง้ านมาก ทาํ งานเร็วกไ็ ม่ผดิ นกั ลกั ษณะโดยรวมของภาษา Python ถูกสร้างขึนมาเพอื ใหเ้ รียนรู้ไดไ้ ม่ยาก รูปแบบของตาํ สงั กค็ ลา้ ยๆ กบั ภาษาเบสิก ชนิดของ ตวั แปรกท็ าํ การกาํ หนดและสร้างมาใชง้ านไดด้ ว้ ยวธิ ีง่ายๆ การกาํ หนด เงือนไขหรือการวนลูปกม็ ีคาํ สงั ไม่มากจนเกินไป แต่สามารถ เขียนใชง้ านไดเ้ ท่ากบั ภาษาอืนๆ โดยพืนฐานการเขียนโปรแกรม Python จะทาํ งานดว้ ยตวั แปลภาษาแบบอินเตอร์พรีเตอร์ (Interpreter)

41 ผลลพั ธ์จากการทดสอบคาํ สงั โดยพนื ฐานจะเป็นลกั ษณะโหมดขอ้ ความ (Text Mode) แต่ถา้ หากตอ้ งการใชเ้ ป็น Graphic User Interface (GUI) หรือแบบมีจอภาพสวย มีช่องสาํ หรับกรอกขอ้ มูล, มีป่ ุมใหก้ ดทาํ การจดั เกบ็ ขอ้ มูลพมิ พอ์ อกรายงาน กส็ ามารถใชค้ าํ สงั หรือเครืองมือเสริมของ Python มาทาํ การจดั สร้างไดเ้ ช่นกนั ขอ้ เด่นของภาษา Python หรือกลุ่มคาํ สงั ที Python สร้างเสร็จไวใ้ ชง้ าน แลว้ เราสามารถนาํ ไปใช้ งานต่างระบบปฏิบตั ิการไดด้ ว้ ย ภาษา Python สามารถทีจะเขียนใหเ้ ป็นโปรแกรมเชิงวตั ถุ (Object Oriented Programming) ไดห้ รือเปล่า ? คาํ ถามนีน่าสนใจ ต่อผทู้ ีกาํ ลงั ศึกษาภาษา Python ถา้ ภาษานีสามารถรองรับการเขียนโปรแกรมแบบ OOP ได้ กน็ ่าจะเป็นแรงจูงใจใหก้ บั ผทู้ ีสนใจทีจะนาํ Python ไปพฒั นางานต่างๆ ตามตอ้ งการ คาํ ตอบกค็ ือ ภาษา Python รองรับการพฒั นาโปรแกรมแบบ OOP หรือเขียนโปรแกรมแบบ โครงสร้างปกติทวั ไปกไ็ ด้ ส่วนเทคนิคการเขียนโปรแกรม OOP จะครอบคลุมตามหลกั การของ OOP ชนิด 100% หรือเปล่า กไ็ ดต้ รวจ สอบขีดความสามารถในการเขียนของ Python แต่ละเวอร์ชนั 1. ดาวนโ์ หลดโปรแกรม Python . . จากเวบ็ ไซต์ https://www.python.org/downloads/ โดยคลิกทีป่ ุม Download Python 3.6.5 2. ดบั เบิลคลิกไฟล์ python-3.6.5.exe แลว้ กดป่ ุม Run

42 3. คลิกเลือก Add Python 3.6 to PATH แลว้ คลิกที Customize installation 4. คลิกป่ ุม Next 5. คลิกเลือก Install for all users แลว้ คลิกป่ ุม Install 6. เมือติดตงั เสร็จแลว้ ใหค้ ลิกทีป่ ุม Close

43 7. เปิ ดโปรแกรม โดยดบั เบิลคลิกไอคอน IDLE (Python 3.6 32-bit) คาํ สงั เบืองตน้ ของภาษาไพทอน คือ คาํ สงั ทีใชแ้ สดงผลทางจอภาพ และคาํ สงั ทีใชใ้ นการรับขอ้ มูลจากผใู้ ชผ้ า่ นทางคียบ์ อร์ด ในขนั เริมตน้ นีจะใชค้ าํ สงั ไพทอนในโหมดอิมมีเดียท ดงั ตวั อยา่ งต่อไปนี ตวั อย่างที 1 ทดลองพมิ พค์ าํ สงั ต่อไปนีลงใน Python Shell แลว้ กดป่ ุม Enter

44 จะไดผ้ ลลพั ธ์ คือ จากตวั อยา่ ง อธิบายไดว้ า่ print() เป็นคาํ สงั ชนิดฟังกช์ นั (Function) ทาํ หนา้ ทีแสดงสิงทีอยใู่ นเครืองหมายวงเลบ็ () ออกจาก จอภาพ โดยในทีนีเป็นขอ้ ความทีอยใู่ นเครืองหมาย \"\" ตวั อย่างที 2 ทดลองพมิ พค์ าํ สงั ต่อไปนีลงใน Python Shell แลว้ กดป่ ุม Enter จะไดผ้ ลลพั ธ์ คือ

45 จากตวั อยา่ ง บรรทดั แรกเป็นการกาํ หนดตวั แปร a มีค่าเป็น \"Python\" หลงั จากนนั บรรทดั ที 2 จะแสดงค่าในตวั แปร a ออกมา ทางจอภาพ ซึงคือคาํ วา่ Python ตวั อย่างที 3 ทดลองพิมพค์ าํ สงั ต่อไปนีลงใน Python Shell แลว้ กดป่ ุม Enter จากตวั อยา่ ง input() เป็นคาํ สงั ชนิดฟังกช์ นั ทาํ หนา้ ทีรับขอ้ มูลเขา้ ทีผใู้ ชป้ ้อนผา่ นคียบ์ อร์ด แลว้ ส่งคืนสิงทีผใู้ ชป้ ้อนเขา้ มาเป็น ขอ้ มูลชนิดสตริง ใส่ในตวั แปร name หลงั จากนนั คาํ สงั ในบรรทดั ที 2 จะแสดงค่าตวั แปร name ออกทางจอภาพ ซึงกค็ ือคาํ วา่ Siriporn

48 ภาษา python จดั เป็นภาษาทีอยใู่ นระดบั สูงเทียบกบั ภาษา Visual Basic บางกรณีทีตอ้ งการใชง้ านเชิงลึกในระดบั Kernel ของ ระบบปฏิบตั ิการ การเรียกใชพ้ อร์ตฮาร์ดแวร์ต่างๆ การจดั การระดบั หน่วยความจาํ การเขียนโปรแกรมระบบเครือข่ายเชิงลึก ตามที กล่าวไวบ้ างส่วน ภาษา python ไม่มีความสามารถเขา้ ไปจดั การไดเ้ ลย ตอ้ งอาศยั ภาษาอืนๆ ทีมีความสามารถในการเขียนโปรแกรมเชิง ลึก เช่น C, C++, Java ฯลฯ สร้างเป็นโมดูลพิเศษไวเ้ ชือมต่อกบั python ทีจะเรียกใชใ้ นลกั ษณะเป็นฟังกช์ นั ยอ่ ยภายในของโมดูลพิเศษ เหล่านนั อีกที คาํ สงั ทีเราใชใ้ นการอา้ งอิงโมดูลมาตรฐาน หรือโมดูลเพิมเติมพเิ ศษใน python ประกอบดว้ ย 2 คาํ สงั ดงั นี 1. คาํ สงั import 2. คาํ สงั from ตวั อย่างที 1 การเขียนคาํ สงั อา้ งอิงโมดูลที 1 import datetime ตวั อย่างที 2 การเขียนคาํ สงั อา้ งอิงโมดูลมากกวา่ 1 โมดูล import datetime import decimal import os ตวั อย่างที 3 การเขียนคาํ สงั อา้ งอิงโมดูลมากกวา่ 1 โมดูล แบบใชค้ าํ สงั import 1 คาํ สงั import datetime, decimal, os คาํ สงั import จะเป็นการอา้ งอิงโมดูลทีเราตอ้ งการใชก้ ลุ่มคาํ สงั ขา้ งในโมดูล การอา้ งอิงโมดูลแบบนี Python จะมองเห็นกลุ่มคาํ สงั ทงั หมดในโมดูล และพร้อมนาํ ไปใชง้ านไดต้ ลอดเวลา แต่บางครังหากเราตอ้ งการอา้ งอิงโมดูล และอยากจะเลือกใชเ้ ฉพาะคาํ สงั หรือกลุ่มคาํ สงั ภายในบางคาํ สงั กต็ อ้ งใชค้ าํ สงั from ทีจะกล่าวถึงในหวั ขอ้ ต่อไป

49 ตวั อย่างที 1 รูปแบบการเขียนคาํ สงั from เพอื อา้ งอิงโมดูล และกลุ่มคาํ สงั ทงั หมด from ชือโมดูล import คาํ สงั หรือกลุ่มคาํ สงั เช่น from os import * สญั ลกั ษณ์ * ใชส้ าํ หรับเรียกใชง้ านทุกคาํ สงั หรือกลุ่มคาํ สงั ในโมดูลนี ตวั อย่างที 2 รูปแบบการเขียนคาํ สงั from สาํ หรับเรียกใชบ้ างคาํ สงั หรือกลุ่มคาํ สงั ในโมดูลทีกาํ ลงั อา้ งอิงในปัจจุบนั from ชือโมดูล import กลุ่มคาํ สงั ที 1, กลุ่มคาํ สงั ที เช่น from os import error, chdir, getcwd การเขียนโปรแกรมโดยทวั ไปดว้ ยภาษา python จะมีรูปแบบเป็นการเขียนกลุ่มคาํ สงั ลงในโพรซีเจอร์หรือฟังกช์ นั แลว้ ทาํ การ เรียกใชง้ านตามตอ้ งการ เหมือนหลกั การเขียนโปรแกรมดว้ ยภาษาอืนๆ เช่น C, C + +, Java ฯลฯ เพือง่ายต่อการทาํ ความเขา้ ใจถึงวธิ ี การเขียนโปรแกรม python ดว้ ย editor พอสรุปไดเ้ ป็น 5 วธิ ีดงั ต่อไปนี 1. รูปแบบการเขียนดว้ ยวธิ ีที 1 2. รูปแบบการเขียนดว้ ยวธิ ีที 2 3. รูปแบบการเขียนดว้ ยวธิ ีที 3 : แบบ Object Oriented 4. รูปแบบการเขียนดว้ ยวธิ ีที 4 : แบบสร้าง Object Oriented พร้อมกลุ่มคาํ สงั เรียกใชง้ าน Object 5. รูปแบบการเขียนดว้ ยวธิ ีที 5 : แบบ Object Oriented ทีเกิดจากวธิ ีที 3 และ 4 มาประยกุ ตใ์ ชง้ านร่วมกนั ตามรูป การเขียนคาํ สงั ต่างๆ จะทาํ การเขียนบรรทดั ต่อบรรทดั จากบรรทดั แรกไปจนถึงบรรทดั สุดทา้ ย เมือทาํ การทดสอบ โปรแกรม python จะทาํ งานคาํ สงั ในบรรทดั แรกไปเรือยๆ จนกระทงั ถึงบรรทดั สุดทา้ ยหรือคาํ สงั สุดทา้ ย

50 ตามรูป เป็นรูปแบบการเขียนโปรแกรมทีนิยมใชก้ นั เนืองจากกลุ่มคาํ สงั บางกลุ่มจาํ เป็นตอ้ งทาํ งานร่วมกนั ตามลาํ ดบั ขนั ตอน เรากน็ าํ กลุ่มคาํ สงั เหล่านนั ไปจดั สร้างไวใ้ นโพรซีเจอร์หรือฟังกช์ นั ซึงเพือความง่ายในการจดั สร้างโพรซีเจอร์หรือฟังกช์ นั ควรจะ สร้างไวใ้ นฐานะ A ตามรูป ส่วนการเรียกใชง้ านโพรซีเจอร์ กใ็ หไ้ ปเขียนในสวน B วธิ ีการเขียนตามรูปแบบนีจะดีกบั ผเู้ ขียนโปรแกรม ในระยะยาว ยกตวั อยา่ ง ถา้ ผพู้ ฒั นาไดส้ ร้างโปรแกรมขึนมาสกั โปรแกรมหนึง หลงั จากสร้างเสร็จผา่ นไปสกั 1 ปี แลว้ ตอ้ งกลบั มา แกไ้ ขเพิมเติมในโปรแกรม ถา้ จดั รูปแบบการเขียนไวด้ ี เรากจ็ ะหาจุดทีตอ้ งแกไ้ ข หรือเพมิ เติมใหร้ วดเร็ว ตามรูป เป็นวธิ ีการเขียนโปรแกรมเชิงวตั ถุตามรูปแบบของ python ซึงเป็นวธิ ีการสร้าง Object ขึนมาเพือรอใหม้ ีการนาํ ไปใช้ งาน ดงั นนั จะเห็นวา่ ภายใตโ้ ครงสร้างแบบนีจะไม่มีส่วนสาํ หรับเรียกทดสอบโปรแกรม

51 จะคลา้ ยการเขียนโปรแกรมตามรูปแบบที 3 เพยี งแค่เพมิ กลุ่มคาํ สงั ในส่วน B สาํ หรับเรียกใชส้ ่วน A ทีเป็นการสร้าง Class Object มาใชง้ านภายใตโ้ ครงสร้างเดียวกนั เลย รูปแสดงวธิ ีการเขียนโปรแกรมแบบ Object Oriented ร่วมกบั กลุ่มคาํ สงั ทีเรียกใชง้ าน Object ภายใตโ้ ครงสร้างเดียวกนั เป็นอีกวธิ ีทีนิยมใชง้ านเชิงประยกุ ต์ สาํ หรับการเขียนโปรแกรมเชิงวตั ถุของ python โดยบางกรณีกม็ ีการสร้าง Class object จดั เกบ็ ไปเฉพาะ เมือไรทีตอ้ งการนาํ มาใชง้ านกจ็ ะทาํ การ import เขา้ มาใชร้ ่วมกบั โปรแกรมทีกาํ ลงั พฒั นาในปัจจุบนั รูปแสดงการเขียนโปรแกรมเชิงวตั ถุโดยการเรียกใชโ้ มดูลทีเป็น Class object จากภายนอกมาใชง้ านเพมิ เติมร่วมกบั ชุดคาํ สงั ปัจจุบนั ดว้ ยลกั ษณะวธิ ีการเขียนโปรแกรมทงั 4 วธิ ี ทีกล่าวไปขา้ งตน้ สาํ หรับภาษา python จะทาํ การจดั เกบ็ กลุ่มคาํ สงั หรือ (source Code) ในรูปแบบไฟลท์ ีใชน้ ามสกลุ .py ซึงจะเป็นไฟลแ์ บบขอ้ ความ (text file) หรืออาจแปลงใหเ้ ป็นรูปแบบไฟลไ์ บนารี โดยจะใช้ นามสกลุ เป็น.pyc

52 สาํ หรับการเขียนซอร์สโคด้ ดว้ ย editor ของ python เพือใหง้ ่ายต่อการเขียนโปรแกรม หรือการคน้ หา หรือทาํ การปรับปรุง ซอร์สโคด้ ในระหวา่ งการเขียนโปรแกรม หรือแกไ้ ขเพิมเติมใหก้ บั โปรแกรมหลงั จากปิ ดงานเขียนโปรแกรมไปแลว้ ผเู้ ขียนไดแ้ บ่ง โครงสร้างการเขียน source Code ของ python ออกเป็น 4 ส่วน ซึงประกอบดว้ ย รูปแสดงการแบ่งพนื ทีสาํ หรับการใชต้ วั แปร, ฟังกช์ นั และคาํ สงั ภายใตโ้ ครงสร้างของโมดูลทีกาํ ลงั พฒั นานี ส่วน A กรณีทีตอ้ งการอา้ งอิงกลุ่มคาํ สงั อืนๆ จากโมดูลมาตรฐานของ python หรือโมดูลเพมิ เติมพิเศษ เพือนาํ มาใชง้ านในการ เขียนโปรแกรมในโมดูลนี เราจะใชค้ าํ สงั สาํ หรับอา้ งอิงโมดูล คือ คาํ สงั import และคาํ สงั from...import ส่วน B ใชใ้ นกรณีทีตอ้ งการสร้างตวั แปรทีสามารถเรียกใชง้ านไดใ้ นส่วน C ทีเกียวกบั โพรซีเจอร์หรือฟังกช์ นั และส่วน D ซึง เป็นจุดทีกลุ่มคาํ สงั ทาํ งาน ส่วน C มีไวส้ าํ หรับทาํ การสร้างกลุ่มโพรซีเจอร์หรือฟังกช์ นั เพือใหส้ ามารถเรียกใชง้ านภายในโมดูลนี ส่วน D เป็นจุดเริมตน้ ของการทาํ งานในโมดูลนี ทีนีเราจะเขียนคาํ สงั ต่างๆ เพือใชง้ านร่วมกบั ตวั แปรในส่วน B หรือการเรียกใช้ งานโพรซีเจอร์หรือฟังกช์ นั ในส่วน C ของโมดูลนี หลงั จากทาํ ความเขา้ ใจโครงสร้างของการสร้างและเขียน Source Code ของ python กเ็ หลือสิงทีควรรู้ก่อนลงมือเขียนโปรแกรม python อีกไม่กีเรือง เช่น การกาํ หนดคาํ สงั กลุ่มยอ่ ยใหก้ บั คาํ สงั หลกั (Indenting), การทาํ ความเขา้ ใจการใชเ้ ครืองหมาย ' หรือ \" สาํ หรับ ตวั แปรชนิดขอ้ ความ (String), การใชเ้ ครืองหมาย () [] {} ร่วมกบั ตวั แปรหรือฟังกช์ นั ภายในของ python ( ฟังกช์ นั ภายใน ไดแ้ ก่ คาํ สงั format, tolower, ฯลฯ) และวธิ ีการทดสอบโปรแกรมภายใต้ editor ของ python กจ็ ะทาํ ใหผ้ ทู้ ีตอ้ งการศึกษาสามารถทดสอบเขียน โปรแกรมและทดสอบเองได้ เมือเขียนโปรแกรมคล่องขึน กส็ ามารถคน้ หาตวั อยา่ ง Source Code ทีมีความหลากหลาย รวมทงั เทคนิค การเขียนโปรแกรมแบบพเิ ศษจาก internet มาทดลอง และประยกุ ตเ์ ขา้ กบั งานทีกาํ ลงั ศึกษา หรือสร้างเพอื นาํ ไปใชง้ าน วธิ ีการจดั รูปแบบโครงสร้างของกลุ่มคาํ สงั ยอ่ ย ภายใตค้ าํ สงั หลกั ภาษา python จะอาศยั การจดั ยอ่ หนา้ แทนการใชส้ ญั ลกั ษณ์ เหมือนภาษาอืน ตามรูปแสดงการจดั รูปแบบโครงสร้างของกลุ่มคาํ สงั ยอ่ ยของ python เทียบกบั ภาษา C

53 รูปแสดงการเปรียบเทียบการจดั รูปแบบโครงสร้างกลุ่มคาํ สงั ยอ่ ยของภาษา python โดยตวั อยา่ งตามรูป จะเป็นการใชค้ าํ สงั for ซึงถือวา่ เป็นคาํ สงั หลกั และมีคาํ สงั ยอ่ ยเพอื ใหเ้ กิดกระบวนการทาํ งานตามรอบกา รวนลูป คือคาํ สงั print และคาํ สงั ที 2 คือเรียกไปทีฟังกช์ นั Test Data ในโมดูลใชง้ าน จะเห็นวา่ การเขียนคาํ สงั ยอ่ ยของ python จะไม่มี การใชส้ ญั ลกั ษณ์ใดๆ เป็นตวั บอกการเป็นคาํ สงั ยอ่ ย เมือเทียบกบั ภาษา C ทีใชส้ ญั ลกั ษณ์{ เป็นจุดเริมตน้ และใชส้ ญั ลกั ษณ์ } สาํ หรับ บอกจุดสินสุด ภาษา python จะใชก้ ารยอ่ หนา้ ดว้ ยวธิ ีการกดป่ ุม Space Bar หรือกดป่ ุม Tab กแ็ ลว้ แต่ผเู้ ขียนโปรแกรมจะถนดั แบบใด (แนะนาํ การยอ่ หนา้ ของคาํ สงั ยอ่ ย ควรใชป้ ่ ุม Tab ดีกวา่ โอกาสเกิดขอ้ ผดิ พลาดจากยอ่ น่าจะนอ้ ยลง) ถา้ หากผศู้ ึกษาเจอขอ้ ความ error ตามรูปดา้ นล่าง กแ็ สดงวา่ การยอ่ หนา้ ของคาํ สงั มีปัญหา ซึงส่วนใหญ่จะเกิดจากการยอ่ หนา้ ไม่เท่ากนั สรุป การใชย้ อ่ หนา้ เพอื แบ่งคาํ สงั ยอ่ ย จะใชก้ บั กลุ่มคาํ สงั เช่น if, for, while, def (สาํ หรับสร้างฟังกช์ นั เพอื เรียกใชง้ านในโมดูล นี), Class ( สาํ หรับสร้างโครงภายในเป็นวตั ถุ เช่น Property, Method ฯลฯ) เป็นตน้ รูปแสดงขอ้ ความผดิ พลาดเกียวกบั การกาํ หนดยอ่ หนา้ หรือ Indent ผดิ พลาดในการเขียนโปรแกรม ใชส้ ญั ลกั ษณ์ร่วมกบั กลุ่มขอ้ ความในภาษา python มีใหเ้ ลือก 2 แบบ คือ การใชส้ ญั ลกั ษณ์ฝนทอง หรือ ‘ (Single Quote) และ สญั ลกั ษณ์ ? หรือ “ (Double Quote) โดยผเู้ ขียนโปรแกรมสามารถเลือกใชส้ ญั ลกั ษณ์ดงั กล่าวตามความถนดั สาํ หรับวธิ ีการใชง้ านทงั 2 สญั ลกั ษณ์จะแบ่งออกเป็น 2 วธิ ีดงั นี 1. วธิ ีใชง้ านสญั ลกั ษณ์ร่วมกบั ขอ้ ความแบบบรรทดั เดียว (In-Line) a = 'This is my book.'

54 b = \"วนั นีอยากทุบกระป๋ อง\" 2. การใชง้ านสญั ลกั ษณ์ร่วมกบั ขอ้ ความแบบหลายบรรทดั เมือใชส้ ญั ลกั ษณ์กาํ หนดจุดเริมตน้ และจุดสินสุดของขอ้ ความ ให้ พมิ พส์ ญั ลกั ษณ์อยา่ งละ 3 เครืองหมาย ตามตวั อยา่ งต่อไปนี a = '''This is my book. The cover is Yellow color. Book owner write something.''' b = \"\"\"ปูเป้ออกเดินทางไปเมืองทีแสนไกล ไกล แลว้ ไกลออกไปเรือยๆ จนในทีสุด ปูเป้ก.็ .. รออ่านต่อฉบบั ถดั ไป \"\"\" python จะใชเ้ ครืองหมาย (), [], {} สาํ หรับการเขียนผสมผสานร่วมกบั ตวั แปร, คาํ สงั , ฟังกช์ นั ภายใน หรือบางกรณีกท็ าํ ตวั เป็นฟังกช์ นั ภายในแบบอตั โนมตั ิ โดยไม่ตอ้ งพมิ พค์ าํ สงั ดว้ ยความหลากหลายต่อวธิ ีการนาํ ไปใช้ และใหง้ ่ายต่อการทาํ ความเขา้ ใจ ผู้ เขียนจึงไดร้ วบรวมวธิ ีการเขียนสาํ หรับการใชง้ านไว้ 4 ประเภทดงั นี 1. ประเภทการใชเ้ ครืองหมายร่วมกบั ตวั แปร 2. ประเภทการใชเ้ ครืองหมายร่วมกบั โพรซีเจอร์หรือฟังกช์ นั 3. ประเภทการใชเ้ ครืองหมายร่วมกบั คาํ สงั หรือฟังกช์ นั ภายใน 4. ประเภทการใชเ้ ครืองหมายทีทาํ หนา้ ทีเสมือนเป็นฟังชนั ภายในแบบอตั โนมตั ิ ประเภทการใช้เครืองหมายร่วมกบั ตวั แปร โดยส่วนใหญ่ถา้ มีการใชเ้ ครืองหมายร่วมกบั ตวั แปร ลกั ษณะของตวั แปรเหล่านนั จะเป็นประเภท Sequence (ขายตวั แปร อาร์เรยใ์ นภาษาอืน) ดงั ตวั อยา่ งต่อไปนี a = (1, 2, 3, 4) b = ['TV ', 'หลอดไฟ', 'ปลาทู'] c = {100: 'TV', 200: 'หลอดไฟ', 300: 'ปลาทู'} จากตวั อยา่ งเป็นการกาํ หนดค่าต่างๆ ลงในตวั แปรประเภท Sequence ซึงประกอบดว้ ย 3 ชนิดไดแ้ ก่ Tuple จะใชเ้ ครืองหมาย (), List จะใชเ้ ครืองหมาย [] และDictionary จะใชเ้ ครืองหมาย {} ตวั อยา่ งต่อไปนีเป็นการใชเ้ ครืองหมาย [] สาํ หรับการอ่านค่าในตวั แปร ประเภท Sequence ตวั อยา่ ง print(a[2], b[1], c[300]) ผลลพั ธ์ >>>3 หลอดไฟ ปลาทู ประเภทการใช้เครืองหมายร่วมกบั โพรซีเจอร์หรือฟังก์ชัน ในการสร้างโพรซีเจอร์หรือฟังกช์ นั ในโมดูล จะมีการกาํ กบั ดว้ ยเครืองหมาย () หลงั ชือโพรซีเจอร์หรือฟังกช์ นั ทีสร้างขึนมา ดว้ ยจะถูกนาํ ไปใชส้ าํ หรับการผา่ นค่าอาร์กิวเมนต์ (Argument) ของโพรซีเจอร์หรือฟังกช์ นั ตามตวั อยา่ งดงั ต่อไปนี ตวั อย่างที 1 แสดงการสร้างโพรซีเจอร์หรือฟังกช์ นั โดยไม่มีตวั แปรอาร์กิวเมนต์ def showtime (): การสร้างฟังกช์ นั Showtime ตอ้ งมีเครืองหมาย () เสมอ

55 ตวั อย่างที 2 แสดงการสร้างโพรซีเจอร์หรือฟังกช์ นั พร้อมกบั ตวั แปรอาร์กิวเมนต์ นอกจากนีจะใชเ้ ครืองหมาย () สาํ หรับใชร้ ่วมกบั การสร้างโพรซีเจอร์หรือฟังกช์ นั แลว้ การเรียกโพรซีเจอร์หรือฟังกช์ นั เพอื ใช้ งานกจ็ าํ เป็นตอ้ งมีเครืองหมาย () ต่อทา้ ยชือขณะใชง้ าน ตามตวั อยา่ งดงั ต่อไปนี ตวั อย่างที 1 วธิ ีการเขียนโปรแกรมเรียกใชง้ านโพรซีเจอร์หรือฟังกช์ นั โดยไม่มีค่าอาร์กิวเมนต์ Showtime () ตอ้ งมีเครืองหมาย () เสมอ ตวั อย่างที 2 วธิ ีการเขียนโปรแกรมเรียกใชง้ านฟังกช์ นั พร้อมส่งผา่ นค่าอาร์กิวเมนตใ์ หก้ บั ฟังชนั Bookinfo('หนงั สือชินจงั ' , 'ชิโนก'ุ ) ประเภทการใช้เครืองหมายร่วมกบั คาํ สังหรือฟังก์ชันภายใน รูปแบบของคาํ สงั หรือฟังกช์ นั ภายในภาษา python วธิ ีการเขียนคาํ สงั บางครังจะมีการใชเ้ ครืองหมาย (), {} ร่วมกบั ค่าต่างๆ ทีใชใ้ นคาํ สงั นนั ตามตวั อยา่ งต่อไปนี ตวั อยา่ งการใชเ้ ครืองหมาย () รับคาํ สงั print + ค่าทีตอ้ งการแสดงบนจอภาพ print('ปลาทู 2 เข่ง') ตวั อยา่ งการใชเ้ ครืองหมาย () กบั คาํ สงั tolower + ค่าทีตอ้ งการแปลงจากอกั ษรตวั ใหญ่ไปอกั ษรตวั เลก็ a = tolower ('COUNT') ตวั อยา่ งการใชเ้ ครืองหมาย {} กบั คาํ สงั format + ค่าทีตอ้ งการจดั รูปแบบการแสดงค่าตวั เลข print('{0} to {1} '.Format(100, 'TV ')) ประเภทการใช้เครืองหมายทที าํ หน้าทเี สมือนเป็ นฟังชันภายในแบบอตั โนมตั ิ python เป็นภาษาทีไดร้ ับการปรับปรุงใหก้ ารเรียกใชฟ้ ังกช์ นั ภายในทีใชง้ านบ่อยๆ ง่ายมากขึน วธิ ีการเขียนหรือใชง้ านก็ กระชบั ต่อการทาํ ความเขา้ ใจและจดจาํ ตามตวั อยา่ งต่อไปนี ตวั อยา่ งแสดงการใชเ้ ครืองหมาย [] ทีทาํ หนา้ ทีแทนฟังกช์ นั ภายในร่วมกบั ตวั แปร โดยการใชเ้ ครืองหมาย [] ต่อทา้ ยตวั แปร เสมอการเรียกใชฟ้ ังกช์ นั ภายในทีทาํ หนา้ ทีตดั ค่า (เหมือน Sub String ในภาษาอืน) กาํ หนดค่าตวั แปร a = 'This is my book ' print(a[1]) ผลลพั ธ์ทีไดก้ ค็ ือ ตวั อกั ษร h จะปรากฏบนจอภาพ

ตวั อยา่ งการใชเ้ ครืองหมาย [] ทีทาํ หนา้ ทีแทนฟังกช์ นั ภายในร่วมกบั ตวั แปรประเภท Sequence 56 ผลลพั ธ์ทีได้ คือ ตวั อกั ษร C จะปรากฏบนจอภาพ การใชเ้ ครืองหมาย [0] ต่อทา้ ย a[1] หมายถึงการตดั ตวั อกั ษรตวั แรกของ a[1] ซึงค่าใน a ตาํ แหน่งที 1 กค็ ือ color ดว้ ยการทาํ งานของภาษา python ซึงเป็นแบบ interpreter ทาํ ใหก้ ารประมวลผลคาํ สงั ทีละบรรทดั การใช้ คอมเมนต์ อธิบาย หมายเหตุต่างๆ จึงตอ้ งใชเ้ ครืองหมายคอมเมนต์ ไดท้ ีละบรรทดั โดยใชเ้ ครืองหมาย # (Shape Sing) ตามตวั อยา่ งต่อไปนี ตวั อยา่ งการใชเ้ ครืองหมาย # สาํ หรับใส่คาํ อธิบายหรือหมายเหตุ Python กบั การใช้ตวั อกั ษรตวั เลก็ หรือใหญ่ (Case Sensitive) การเขียนโปรแกรมดว้ ยภาษา python และตอ้ งใชค้ วามระมดั ระวงั เรืองการใชต้ วั อกั ษรเลก็ หรือใหญ่ สาํ หรับการ ประกาศตวั แปร การเขียนคาํ สงั ภายใน การเรียกชือโพรซีเจอร์หรือฟังกช์ นั และอืนๆ ดงั นนั จึงมีความจาํ เป็นทีตอ้ งใหค้ วามสนใจเมือมี การเรียกใชง้ าน มิฉะนนั จะส่งผลใหเ้ กิดขอ้ ผดิ พลาด error เกียวกบั ตวั อกั ษรเลก็ หรือใหญ่ระหวา่ งใชง้ านขึนได้ การทดลองเขียนคาํ สงั ต่างๆ ของภาษา python สามารถทดสอบได้ 2 วธิ ีคือ 1 ทดลองเขียนคาํ สงั ดว้ ย python shell 2 ทดลองเขียนคาํ สงั ดว้ ยรูปแบบไฟลโ์ ปรแกรมแบบ python ทดลองเขยี นคาํ สังด้วย python shell การเรียนรู้เกียวกบั วธิ ีการเขียนโปรแกรมทีดีทีสุด คือการทดลองพิมพค์ าํ สงั ต่างๆ เพอื ดูผลลพั ธ์ทีเกิดขึนซึงอาจจะเกิดขอ้ ผดิ พลาดในการทดสอบคาํ สงั หรือประสบความสาํ เร็จในการทาํ งานของคาํ สงั นนั ๆ อีกทงั ทาํ ใหผ้ ฝู้ ึกเขียนโปรแกรมไดป้ ระสบการณ์ การเขียน และทดสอบจริงมากกวา่ เขา้ ใจจากทฤษฎีแต่เพยี งอยา่ งเดียว พดู แลว้ กเ็ ริมเปิ ดโปรแกรม python IDLE ใน Windows ตามรูป ดา้ นล่าง

57 รูปแสดงขนั ตอนการเปิ ด python IDLE ภายใตร้ ะบบปฏิบตั ิการ Windows หลงั จากเปิ ด python IDLE ไดแ้ ลว้ ลองมาทดลองพมิ พค์ าํ สงั ต่างๆ ตามตวั อยา่ งต่อไปนี ตวั อย่างที 1 ทดลองพิมพข์ อ้ ความลงใน python Shell >>> \"I got Python Code\" หลงั จากพิมพข์ อ้ ความเสร็จสินใหก้ ดป่ ุม enter ผลลพั ธ์ทีไดจ้ าก python Shell จะปรากฏขอ้ ความดงั กล่าวขึนมาในบรรทดั ถดั ไป ตวั อย่างที 2 ทดลองพมิ พข์ อ้ ความหลายบรรทดั ดว้ ยเครืองหมาย \" \" \" หรือ ' ' ' >>> ' ' 'This book has three pages First page is empty page ' ' ' ตวั อย่างที 3 ทดลองใชค้ าํ สงั print ร่วมกบั ขอ้ ความ สาํ หรับ Windows : >>> print(' My Book is ok ') สาํ หรับ linux: >>> print 'My book is ok ' โดยไม่ตอ้ งใส่วงเลบ็ ร่วมกบั ฟังกช์ นั ตวั อย่างที 4 แสดงการเชือมต่อระหวา่ งขอ้ ความตงั แต่ 2 ขอ้ ความขึนไป >>> 'Joe ' + 'Mary ' แสดงการเชือมต่อดว้ ยเครืองหมาย + หรือ

58 >>> 'Joe ' 'Mary ' แสดงการเชือมต่อดว้ ยการเขียนแบบต่อเนือง หรือ >>> 'Joe ' + ' ' + 'Mary ' แสดงการเชือมต่อดว้ ยเครืองหมาย + กบั ขอ้ ความ 3 ขอ้ ความหรือใชร้ ่วมกบั คาํ สงั print >>> print('Joe ', 'Mary ') แสดงการเชือมต่อระหวา่ ง 2 ขอ้ ความพร้อมใชร้ ่วมกบั คาํ สงั print ตวั อย่างที 5 แสดงการใชค้ าํ สงั ตรวจสอบชนิดของขอ้ มูล >>> type(100) ตรวจสอบค่า 100 ใน python ผลลพั ธ์ทีไดจ้ ะบอกชนิดของค่าทีตรวจสอบ <class 'int'> >>> type(9999999) <class 'int'> >>> type(3.143) <class 'float'> >>> type('joe') <class 'string'> >>> type(5+4j) <class 'complex'> ตวั อย่างที 6 ทดสอบการอา้ งอิงโมดูลทีนาํ มาใชง้ าน กรณที ี 1 การอา้ งอิงโมดูลทีมีใชใ้ น Python >>> import os ทดสอบการอา้ งอิงโมดูลชือ OS >>> จะไม่ปรากฏอะไรถา้ หาก python รู้จกั โมดูลชือ OS กรณที ี 2 การอา้ งอิงโมดูลทีไม่มีการติดตงั ใน python >>> import mysql ทดสอบการอา้ งอิงโมดูลชือ mysql เพือทาํ การเชือมต่อกบั ฐานขอ้ มูล >>> จะมีขอ้ ความเกิด error ปรากฏขึนเพือแจง้ เตือนการใชง้ านโมดูล ตวั อย่างที 7 แสดงการใชง้ านตวั แปรใน python Shell

59 ตวั อย่างที 8 แสดงการใชค้ าํ สงั ลูปดว้ ย python Shell สาํ หรับการใช้ python Shell ทดลองคาํ สงั ทีสามารถมีคาํ สงั ยอ่ ยภายในตวั ของคาํ สงั หลกั (สงั เกตคาํ สงั หลกั ทีสามารถมีกลุ่มคาํ สงั ยอ่ ยได้ มกั จะนิยมใชเ้ ครืองหมาย : (Colon) ก่อนจะเริมแบ่งยอ่ หนา้ และกาํ หนดคาํ สงั ยอ่ ย) จะขึนบรรทดั ใหม่พร้อมยอ่ หนา้ ให้ อตั โนมตั ิเพือรอการพมิ พค์ าํ สงั ยอ่ ย วธิ ีที python Shell จะรู้วา่ คาํ สงั ยอ่ ยสินสุดกค็ ือ บรรทดั สุดทา้ ยไม่มีการพมิ พใ์ ดๆ หรือเวน้ วา่ งไว้ (กดป่ ุม Enter สกั 2 ครังกไ็ ด้ กถ็ ือวา่ สินสุดแลว้ ) ตวั อย่างที 9 แสดงการใชค้ าํ สงั แปลงชนิดของค่าในตวั แปร

60 ตวั อย่างที 10 แสดงการใชค้ าํ สงั เกียวกบั การแปลงเลขฐาน >>> a = 255 >>> hex(a) >>> bin(a) >>> oct(a) หรือใชร้ ่วมกบั คาํ สงั print >>> print('%x' %a)ใชต้ วั อกั ษร x หรือ x สาํ หรับเลขฐานสิบหก (hex) >>>print('%o' %a)ใชต้ วั อกั ษร o หรือ o สาํ หรับเลขฐานแปด (oct) หลงั จากทดลองใช้ python shell กบั คาํ สงั ต่างๆ กค็ งทาํ ใหผ้ ใู้ ชง้ านพอไดแ้ นวทางการเขียนโปรแกรม และผลลพั ธ์ทีไดจ้ ากการ ทดสอบ แต่การทดสอบเขียนโปรแกรมดว้ ย python shell กม็ ีขอ้ จาํ กดั ในการจดั เกบ็ กลุ่มคาํ สงั ซึงเป็นสิงจาํ เป็นในการพฒั นางานในรูป แบบทีเป็นซอร์สโคด้ ดว้ ยเหตุนีเราจึงสามารถเขียนโปรแกรมในรูปของไฟลโ์ ปรแกรมไดด้ ว้ ย ทดลองเขยี นคาํ สังด้วยรูปแบบไฟล์โปรแกรม เมือพดู ถึงรูปแบบการเขียนโปรแกรมทีเหมาะต่อการพฒั นางานจริงๆ จงั ๆแลว้ การเขียนคาํ สงั ทงั หลายควรจะอยเู่ ป็นทีเป็น ทาง ง่ายต่อการทาํ งานอยา่ งต่อเนืองและคน้ หาไดง้ ่าย ซึงกเ็ ป็นไปตามแนวทาง การเขียนโปรแกรมดว้ ยเครืองมือพฒั นาโปรแกรม ทีจดั เกบ็ ในรูปของไฟลซ์ อร์สโคด้ โดยไฟลซ์ อร์สโคด้ ตอ้ งมีนามสกลุ เป็น .py ส่วนจะเกบ็ ในโฟลเดอร์ไหนกไ็ ด้ โดยไม่จาํ เป็นตอ้ งเกบ็ ไวท้ ี เดียวกนั กบั โฟลเดอร์ที python ติดตงั อยู่ ต่อไปนีเป็นการทดลองสร้างไฟลซ์ อร์สโคด้ ไอดว้ ย Editor ดงั รูป ซึงเป็นการเรียกใชง้ าน Editor ดว้ ย python shell

61 รูปแสดงการเลือกเมนูใน python Shell เพอื เรียกใชง้ าน Editor หลงั จาก Editor ปรากฏขึน ใหท้ ดลองเขียนคาํ สงั ต่อไปนี เพือทดสอบการเขียนโปรแกรม และศึกษาการใชเ้ มนูต่างๆ เช่น ทดสอบการทาํ งานของโปรแกรม จดั เกบ็ ไฟลซ์ อร์สโคด้ ลงในโฟลเดอร์ทีตอ้ งการ ฯลฯ รูปเมนู Run เพือทดสอบการเขียนคาํ สงั หรือสงั ใหโ้ ปรแกรมทาํ งาน ขนั ตอนการทดสอบโปรแกรมตวั อยา่ ง ใหเ้ ลือกเมนู Run ใน editor เพือดูผลลพั ธ์ทีปรากฏใน python Shell เลือกเมนูยอ่ ย Run Module ( หรือจะกดป่ ุม F5 กไ็ ด)้ เท่านีกเ็ สร็จสินการทดสอบโปรแกรมทีกาํ ลงั พฒั นา

64 พนื ฐานในการเขียนโปรแกรมทีนกั พฒั นาโปรแกรมในแต่ละภาษาจาํ เป็นตอ้ งรู้และเขา้ ใจ คือการใหง้ านตวั แปรของภาษา ซึงจะ มีรายละเอียดการใชง้ าน การประกาศตวั แปร การกาํ หนดชนิดตวั แปร การทาํ ความเขา้ ใจเกียวกบั กลุ่มของชนิดตวั แปร ทีมีการใชร้ ูป แบบการเขียนตวั แปรแต่ละชนิดการใชเ้ ครืองหมายเช่น '(Quote) หรือ \"(Double Quote) ร่วมกบั ค่าทีจะจดั เกบ็ ในตวั แปร การกาํ หนด ขอบเขตของตวั แปรสาํ หรับใชง้ านในโมดูลทีกาํ ลงั เขียนโปรแกรมหรือการรีเซ็ต(Reset) ค่าในตวั แปรแต่ละชนิดเป็นตน้ เพอื ง่ายต่อ การทาํ ความเขา้ ใจเกียวกบั ตวั แปรของ python ปัจจุบนั หลกั การและแนวคิดการพฒั นาการเขียนโปรแกรม หรือภาษาทีใชใ้ นการเขียนโปรแกรม มีขีดความสามารถรองรับการ เขียนโปรแกรมในรูปแบบทวั ไป และ Object Base เชิงวตั ถุ(Object Oriented) ดงั นนั การเลือกตวั แปรสาํ หรับใชง้ านร่วมกบั กลุ่มคาํ สงั จึงตอ้ งกาํ หนดใหเ้ หมาะสมและถูกตอ้ ง สาํ หรับตวั แปรของภาษาแบ่งออกเป็น 2 กลุ่มใหญ่ดงั นี กล่มุ ที 1 ตวั แปรชนิดทวั ไป ไดแ้ ก่ ตวั เลข (Number), ขอ้ ความ (String), วนั ที เวลา (Date Time), เลขทศนิยมหรือชนิดทีเป็น Sequence (คลา้ ยตวั แปร Array ในภาษาอืน) เป็นตน้ กล่มุ ที 2 ตวั แปรชนิด Object เช่น คาํ สงั Object เกียวกบั ไฟล์ (File) หรือไดเรกทอรี (Dir), คาํ สงั object connect สาํ หรับการ เชือมต่อฐานขอ้ มูล ฯลฯ รูปแบบการเขียนใน python ทีไดร้ ับการออกแบบมาใหง้ ่ายต่อการสร้าง และเรียกใชง้ านโดยไม่ตอ้ งมีขนั ตอนและรูปแบบยงุ่ ยากมากนกั โดยรูปแบบทีจะใชก้ แ็ ค่กาํ หนดชือตวั แปรแลว้ กก็ าํ หนดค่าตวั เลข, ขอ้ ความ, วนั ที, เวลา, Object ใหก้ บั ตวั แปรตาม ตวั อยา่ งต่อไปนี ตวั อย่างที 1 ตวั อย่างที 2 ถา้ ตอ้ งการกาํ หนดค่า 100 ใหก้ บั a, b, c รูปแบบการเขียนกง็ ่าย ดงั นี

65 a = b = c = 100 ภาษา Python จะกาํ หนดชนิดของตวั แปรตามค่าทีจดั เกบ็ ลงในตวั แปรปัจจุบนั โดยอตั โนมตั ิ ทุกครังทีมีการเปลียนแปลงค่าทีจดั เกบ็ ตามตวั อยา่ งดงั ต่อไปนี a = 100 เริมตน้ กาํ หนด 100 ทีเป็นชนิด Int type(a) คาํ สงั type สาํ หรับตรวจชนิดของตวั แปร a a = 'joe' กาํ หนดค่าขอ้ ความใหก้ บั ตวั แปร a type(a) ตรวจชนิดของตวั แปร a ซึงจะปรากฏเป็น String เพอื เป็นการตรวจสอบชนิดของตวั แปร สามารถใชค้ าํ สงั ฟังกช์ นั ภายในทีชือ Type ทาํ การทดสอบชนิดของตวั แปรในปัจจุบนั ได้ รูปแสดงโครงสร้างชนิดตวั แปรใน Python ตามรูปทีแสดงใหเ้ ห็นถึงโครงสร้างชนิดตวั แปรใน Python โดยแบ่งชนิดของตวั แปรทีเกียวกบั เลขจาํ นวนเตม็ ,ตวั เลข ทศนิยม,ขอ้ ความและชนิดทีเป็น Complex ทีไม่ตอ้ งใชค้ าํ สงั import เนืองจาก Python ไดก้ าํ หนดชนิดตวั แปรเหล่านีใหเ้ ป็นพืนฐานที ร่วมกบั การเขียนโปรแกรมเสมอ (ในรูปใชเ้ สน้ วงกลมทึบสาํ หรับชนิดตวั แปรทีไม่ตอ้ ง import) ตวั อย่างชนิดตวั แปรพืนฐานทสี ามารถใช้งานได้โดยไม่ต้อง import ชือชนิดตวั แปร ความหมาย ตวั อย่าง Long, Int ตวั เลขจาํ นวนเตม็ 979 Float ตวั เลขทศนิยม 3.1467 Complex หรือ Imaginary ตวั เลขเชิงซอ้ น 5+4j String ขอ้ ความ 'Python' หรือ \"Python\" Boolean ค่าทางตรรกะ True, False

ตารางแสดงชนิดตวั แปรพืนฐานทีสามารถใชง้ านไดโ้ ดยไม่ตอ้ ง import 66 ถา้ เป็นชนิดตวั แปรทีจาํ เป็นตอ้ ง import ใหส้ งั เกตเมือนาํ มาใชง้ าน เวลาทดสอบโปรแกรมจะเกิดขอ้ ผดิ พลาด (Error) ขึน วธิ ี แกไ้ ข กใ็ หเ้ พิมโมดูลทีอา้ งอิงชนิดตวั แปรนนั เขา้ ไปในโปรแกรม ตวั อย่างชนิดตวั แปรทจี าํ เป็ นต้อง import ชือชนิดตวั แปร ความหมาย ตวั อย่าง Date ชนิดวนั ที datetime Time ชนิดเวลา datetime MySQL.Connect ตวั เชือมฐานขอ้ มูล MySQL OS.path.isdir ตรวจชือไดเรกทอรี os ตารางแสดงชนิดตวั แปรทีจาํ เป็นตอ้ ง import ชนิดตวั แปรพืนฐานของ Python ถูกกาํ หนดไวแ้ ลว้ ภายในตวั (Built-in) โดยการนาํ ไปใชป้ ระกาศสร้างตวั แปร (เช่น ตวั แปรชือ id สาํ หรับการจดั เกบ็ ค่า 100 เมือเขียนเป็นคาํ สงั จะไดด้ งั นี id = 100) จะพร้อมใชง้ านทนั ทีไม่ตอ้ งอา้ งอิงจากโมดูลภายนอก สาํ หรับ ขอบเขตของชนิดตวั แปรพืนฐานแบบจดั สร้างภายใน (Built-in) มีรายละเอียดดงั นี ตวั แปรชนิดตวั เลขจาํ นวนเตม็ Python มีตวั แปรทีรองรับการใชง้ านตวั เลขแบบจาํ นวนเตม็ ทีมีขนาดได้ 50 ถึง 100 หลกั ยงิ จาํ นวนหลกั มากเท่าใด ความเร็วใน การใชง้ านของตวั แปรชนิดนีกจ็ ะลดลงตามขนาดความจุของตวั เลขเมือเทียบกบั ความจุชนิดตวั เลขจาํ นวนเตม็ มาตรฐานทวั ไป จุดเด่น ของชนิดตวั เลขแบบจาํ นวนเตม็ ใน Python อีกประการ ไดแ้ ก่ การใชง้ านตวั เลขจาํ นวนเตม็ ทีเป็นเลขฐานสอง (Binary), ฐานแปด (Octal), ฐานสิบหก (Hexadecimal) ลงในตวั แปรชนิดตวั เลขจาํ นวนเตม็ ตามตวั อยา่ งและการทดสอบต่อไปนีเริมจากเปิ ด Python IDLE แลว้ พมิ พค์ ่าตวั แปร a สาํ หรับการจดั ชนิดตวั เลขจาํ นวนเตม็ แบบฐานสองลงในตวั แปร b จะกาํ หนด 0b นาํ หนา้ เลขฐานสองหรือใชฟ้ ังกช์ นั ภายในที ชือวา่ bin() สาํ หรับการจดั เกบ็ ลงในตวั แปร b ทดลองโดยการพมิ พ์ค่าตวั เลขฐานสองลงในตวั แปร

67 เช่นเดียวกบั เลขฐานแปดและฐานสิบหกกจ็ ะมีวธิ ีการเขียนและใชง้ านคลา้ ยๆ กบั เลขฐานสองตามทีกล่าวไวแ้ ลว้ ชือเลขฐาน คาํ นาํ หนา้ ฟังก์ชัน สอง (Binary) 0b bin(ตวั เลข) แปด (Octal) 0o bin(ตวั เลข) สิบ (Decimal) - int(ตวั เลข) สิบหก (Hexadecimal) 0x hex(ตวั เลข) ตารางเทียบการใชช้ นิดตวั เลขจาํ นวนเตม็ ร่วมกบั เลขฐานสอง,แปด,สิบ,และสิบหก แสดงรูปแบบการกาํ หนดคาํ นาํ หนา้ ค่าตวั เลข และการใชฟ้ ังกช์ นั ภายใน ทีทาํ หนา้ ทีแปลงค่าตวั เลขจากเลขฐานสิบไปเป็นเลข ฐานสอง, เลขฐานแปด, เลขฐานสิบ, และเลขฐานสิบหก รูปแบบ ลกั ษณะการทาํ งาน i|j เรียกวา่ Bitwise OR i^j เรียกวา่ Bitwise XOR i&j เรียกวา่ Bitwise AND i << j เรียกวา่ Shift left i >> j เรียกวา่ Shift right ~i เรียกวา่ Inverts i’s bits ตารางแสดงการใชเ้ ครืองหมายตรรกะร่วมกบั ตวั แปรชนิดตวั เลข ทดลองพมิ พ์ค่าตวั เลขฐานแปดและฐานสิบหกลงในตวั แปร ตวั อย่างเลขฐานแปด

68 ตวั อย่างเลขฐานสิบหก ตวั แปรชนิดบูลนี (Boolean) Python กาํ หนดการใชง้ านตวั แปรชนิดบูลีน ดว้ ยค่าตวั เลขจาํ นวนเตม็ ไดแ้ ก่ ค่าทีเป็นจริงใหม้ ีค่าเท่ากบั 1 หรือสามารถเขียนคาํ วา่ True แทนค่าตวั เลข และค่าทีเป็นเทจ็ ใหม้ ีค่าเท่ากบั ตวั เลข 0 หรือ False นอกจากนีเรายงั นาํ ค่าตวั แปรชนิดบูลีนมาใชร้ ่วมกบั ลอจิก โอเปอเรเตอร์ (Logic Operator) ซึงประกอบดว้ ย and, or, Not และรูปแบบฟังกช์ นั พเิ ศษเฉพาะ Python ทีเรียกวา่ Short-Circuit ฟังกช์ นั การทดลองพมิ พ์ค่าตวั แปรชนิดบูลนี ตวั แปรชนิดตวั เลขทมี ที ศนิยม ชนิดตวั เลขทีมีทศนิยมสาํ หรับการใชง้ านใน Python แบ่งออกเป็น 3 ชนิดยอ่ ย ไดแ้ ก่ 1. ตวั เลขทศนิยมชนิด Floating 2. ตวั เลขทศนิยมชนิด Complex 3. ตวั เลขทศนิยมชนิด Decimal

69 โดยตวั เลขทศนิยมชนิด Float และ Complex จะพร้อมใชง้ านภายใน (Built-in) ร่วมกบั Python ยกเวน้ ชนิด Decimal ทีจาํ เป็น ตอ้ ง import โมดูล Decimal ก่อนใชง้ าน ทงั นีอยทู่ ีความแตกต่างของตวั เลขทีเป็นทศนิยม ถา้ ใชค้ าํ นวณทวั ไปไม่เกียวกบั เงินๆ ทองๆ กใ็ ชช้ นิด Floating แต่ถา้ เกียวกบั เงินทองควรใชช้ นิด Decimal ทีตอ้ งใชต้ ่างชนิดกนั โดยเฉพาะเกียวกบั ค่าทางการเงิน เพราะเทคนิค การปัดเศษและจาํ นวนทศนิยมทีมีใชใ้ นชนิด Floating และ Decimal แตกต่างกนั สาํ หรับชนิด Floating อาศยั การทาํ งานของอลั กอริ ทึมทีนิยมใชก้ นั ทวั ไปของ David Goy ซึงผลลพั ธ์ทีไดจ้ ากการปัดเศษทศนิยมจะมีค่าคลาดเคลือนนิดหน่อย แต่กย็ งั นาํ ไปใชง้ านทวั ไป ได้ แต่ถา้ นาํ ไปใชก้ บั การเงินทีตอ้ งการความแม่นยาํ ในการปัดเศษมาก แนะนาํ ใหใ้ ชช้ นิด Decimal ซึงใชเ้ ทคนิคการปัดเศษแบบ Balance Rounding ทีมีความเร็วในการคาํ นวณนอ้ ยกวา่ ตวั เลขทศนิยม แต่มีความคลาดเคลือนนอ้ ยกวา่ ดว้ ย math.acos(x) math.exp(x) math.logip(x) math.acosh(x) math.fabs(x) math.modf(x) math.asin(x) math.factorial(x) math.pi math.asinh(x) math.floor(x) math.pow(x,y) math.atan(x) math.fmod(x,y) math.radians(d) math.atan2(y,x) math.frexp(x) math.sin(x) math.atanh(x) math.fsum(i) math.sinh(x) math.ceil(x) math.hypot(x,y) math.aqrt(x) math.copysign(x,y) math.isinf(x) math.tan(x) math.cos(x) math.isnan(x) math.tanh(x) math.cosh(x) math.Idexp(m,e) math.trunc(x) math.degrees(r) math.log(x,b) math.e math.log10(x) ตารางแสดงกลุ่มคาํ สงั เกียวกบั คณิตศาสตร์ การทดลองพมิ พ์ค่าตวั แปรชนิดตวั เลขทมี ที ศนิยม

70 เครืองหมายทางการคาํ นวณ ใช้งานเกยี วกบั ตวั เลข +,- คาํ นวณบวกหรือลบตวั เลข * สาํ หรับคูณตวั เลข ** เกียวกบั การหารค่าตวั เลขใน Python ใชไ้ ด้ 2 รูปแบบ สาํ หรับการยกกาํ ลงั เช่น 102 กค็ ือ 10**2 / , // สาํ หรับการตดั ค่าเฉพาะเศษทีไดจ้ ากการหารค่าตวั เลข // , % ตารางแสดงเครืองหมายการคาํ นวณ ตวั แปรชนิดตวั เลขจาํ นวนเชิงซ้อน (Complex Number) สาํ หรับการคาํ นวณจาํ นวนเชิงซอ้ น เช่น 1.2 + 4j , 0.7 - 6.5j ฯลฯ ในภาษา Python ไดก้ าํ หนดตวั แปร Built-in ชนิด Imaginary ไวร้ องรับ ช่วยใหท้ าํ งานเกียวกบั จาํ นวนเชิงซอ้ นไดส้ ะดวก ลกั ษณะรูปแบบของตวั เลขจาํ นวนเชิงซอ้ นจะประกอบดว้ ยค่า Real และ ค่า Imaginary 1.2 + 4j เรียกค่า Real เรียกค่า Imaginary รูปแสดงองคป์ ระกอบของตวั เลขจาํ นวนเชิงซอ้ น Imaginary ทดลองพมิ พ์ตวั เลขเชิงซ้อนตามตวั อย่างต่อไปนี

71 ตวั แปรชนิดตวั เลขทศนิยม Decimal โดยปกติทวั ไปถา้ เรากาํ หนดตวั เลขทศนิยม 3.1428 ใหก้ บั ตวั แปร สมมุติวา่ ชือตวั แปร a หรือ a = 3.1428 ในภาษา Python จะ เป็นการสร้างและกาํ หนดชนิดตวั เลขทศนิยมแบบ Floating ใหก้ บั ตวั แปร a เมือไรกต็ ามทีนาํ ตวั แปรไปคาํ นวณแลว้ เกิดค่าตวั เลขเศษ ขึนมาใหม่ วธิ ีการปัดเศษภายใตต้ วั แปรชนิด Floating จะผดิ เพยี นไปทีละนิด โดยเฉพาะเมือมีจาํ นวนหลกั ของเศษทศนิยมมากๆ(ใน ตวั เลขทศนิยมชนิด Floating จาํ นวนของเศษทศนิยมอยทู่ ีประมาณ 17 หลกั ) ดงั นนั เมือมีการนาํ ค่าตวั เลขทศนิยมชนิด Floating ไปใช้ งาน สมมุตินาํ ไปใชร้ ่วมกบั สมการอะไรสกั สมการหนึง จะตอ้ งมีการแกไ้ ขชดเชยตวั เลขทศนิยมทีมีโอกาสคลาดเคลือนดว้ ย ลองมาดู ตวั เลขทศนิยมชนิด Decimal กนั บา้ ง ตวั เลขทศนิยมชนิดนีมีกรรมวธิ ีการปัดเศษแบบใหม่ทีใหผ้ ลลพั ธ์คลาดเคลือนนอ้ ยกวา่ ชนิด ตวั เลขทศนิยม Floating แต่การรองรับจาํ นวนตวั เลขเศษของชนิด Decimal กม็ ีประมาณ 28 ตวั ขอ้ จาํ กดั ของตวั เลขทศนิยมชนิด Decimal กค็ งเป็นเรืองของความเร็วในการคาํ นวณเมือเทียบกบั ชนิด Floating อีกเรืองทีสาํ คญั ในการใชง้ านตวั เลขทศนิยมชนิด Decimal กค็ ือการอา้ งอิงโมดูล Decimal ก่อนใชง้ านเสมอ ตวั แปรชนิดข้อความ (String)

72 ตวั แปรชนิดขอ้ ความมีความจาํ เป็นต่อทุกภาษารวมทงั ภาษา Python ดว้ ย ส่วนใหญ่รูปแบบการเขียนและประกาศตวั แปรชนิดนี จะคลา้ ยกบั ภาษาอืน จะแตกต่างกค็ งเป็นทีเครืองหมาย เช่น ภาษา Visual Basic ใชเ้ ครืองหมายอญั ประกาศ (Double Quote), ภาษา C หรือ C++ จะใชเ้ ครืองหมายฝนทอง (Single Quote) สาํ หรับภาษา Python สามารถใชไ้ ดท้ งั 2 ภาษา(เครืองหมายอญั ประกาศหรือ ฝนทอง เช่น A = 'Blue Sky' หรือ A = \"Blue Sky\" เป็นตน้ ) Python กาํ หนดการใชร้ หสั ขอ้ ความแบบ UTF-8 Unicode เพอื รองรับ ขอ้ ความทีเป็นภาษาอืนทวั โลก รวมทงั ภาษาองั กฤษทีเป็นพืนฐานของการใชป้ กติ เหตุผลที Python เลือกรหสั Unicode เป็นหลกั แทน รหสั ASCII ทีเรามกั คุน้ เคยบน Microsoft Windows เนืองจากการป้อนขอ้ ความจากการใชง้ านแต่ละประเทศ จะใชภ้ าษาทอ้ งถินของ ประเทศนนั ๆ จาํ นวนพยญั ชนะของแต่ละภาษาจะมีมากนอ้ ยไม่เท่ากนั ยงิ ถา้ มีพยญั ชนะมากๆ เช่น ภาษาจีน การใชร้ หสั ASCII จะไม่ สามารถรองรับพยญั ชนะทงั หมดได้ ทางออกกค็ ือตอ้ งใชร้ หสั ใหม่ทีรองรับพยญั ชนะไดม้ ากขึน กค็ งหนีไม่พน้ รหสั Unicode เพอื หลีกเลียงปัญหาการป้อนขอ้ ความทีมีความหลากหลายและจาํ นวนของพยญั ชนะของแต่ละภาษาทีจะนาํ มาใชก้ บั ขอ้ ความของภาษา Python จึงไดก้ าํ หนดรหสั Unicode สาํ หรับใชง้ านกบั ขอ้ ความเป็นหลกั อีกเรืองหนึงกค็ ือ Python สามารถทาํ งานไดบ้ นหลายระบบ ปฏิบตั ิการ รวมทงั สามารถนาํ มาสร้างเป็นเวบ็ แอพพลิเคชนั ทีรองรับกลุ่มภาษาทีหลากหลาย การใชร้ หสั Unicode กบั ขอ้ ความจะช่วย ลดปัญหาเรืองการใชง้ านลง สาํ หรับรูปแบบการใชข้ อ้ ความร่วมกบั ตวั แปรหรือฟังกช์ นั ภายใน พอสรุปลกั ษณะการเขียนโปรแกรมของภาษา Python ได้ 5 รูปแบบ ดงั นี (ทดลองพมิ พค์ าํ สงั ลงใน Python IDLE) 1. การใช้งานข้อความร่วมกบั ตวั แปรและฟังก์ชันภายใน 2. การใช้ข้อความ + String Escape ร่วมกบั ตวั แปรและฟังก์ชันภายใน \

ewline กล่มุ String Escape \\\\ \\N{name} \\' \\๐๐๐ \\\" \

\\a \\t \\b \\uhhhh \\f \\uhhhhhhhh \

\\v \\xhh

ตารางแสดงกลุ่ม String Escape 73 การใช้ String Escape กเ็ พือนาํ รหสั ASCII มาเสริมรวมเขา้ กบั กลุ่มของขอ้ ความ ซึงรหสั ASCII ทีคุน้ เคย เช่น รหสั ASCII10 สาํ หรับ Linefeed หรือดูจากตารางที 3.5 กค็ ือ การใชร้ ูปแบบ \

ถา้ นาํ มาเขียนร่วมกบั กลุ่มขอ้ ความของ Python จะตอ้ งใชภ้ ายใน เครืองหมายอญั ประกาศ (Double Quote) หรือฝนทอง (Single Quote) ตามตวั อยา่ งต่อไปนี (ทดลองพิมพต์ วั อยา่ งใน Python IDLE เพือดูผลลพั ธ์) ตวั อย่างที 1 กลุ่มขอ้ ความในตวั แปร a ทีไม่ไดใ้ ช้ String Escape ตวั อย่างที 2 กลุ่มขอ้ ความในตวั แปร a มีการใช้ String Escape เกียวกบั การขึนบรรทดั ใหม่ (\

) ตวั อย่างที 3 การใช้ String Escape ทีเกียวกบั การขึนบรรทดั ใหม่ \

ร่วมกบั ฟังกช์ นั ภายในทีชือ print() 3. การใช้งานกล่มุ ข้อความ + ค่าอาร์กวิ เมนต์ (Argument) ร่วมกบั ฟังก์ชันภายใน บางกรณีของการใชก้ ลุ่มขอ้ ความร่วมกบั ฟังกช์ นั ภายในทีสามารถอ่านค่าจากตวั แปร แลว้ นาํ ค่าทีไดม้ าใชร้ ่วมกบั กลุ่มขอ้ ความ ได้ ตามตวั อยา่ งต่อไปนี

74 บรรทดั ที 5 เป็นรูปแบบการใชข้ อ้ ความผสมกบั ตวั แปรภายใตก้ ารทาํ งานของฟังกช์ นั ภายในทีชือ print รูปแสดงรูปแบบการเขียนคาํ สงั ฟังกช์ นั print ขอ้ ความผสมกบั ค่าในตวั แปร รูปแสดงตาํ แหน่งการวางค่าทีอ่านไดจ้ ากตวั แปร เครืองหมายสัญลกั ษณ์ ชนิดตวั แปร %s String %d %f Int, Decimal Float ตารางแสดงเครืองหมายสญั ลกั ษณ์สาํ หรับ การระบุตาํ แหน่งในกลุ่มขอ้ ความและระบุชนิดค่าทีอยใู่ นตวั แปร บรรทดั ที 6 บรรทดั ที 6 เป็นการแสดงค่าตวั แปรหรืออาร์กิวเมนตม์ ากกวา่ 1 ตวั แปร คือ a และ b

75 รูปแสดงการใชข้ อ้ ความผสมกบั ค่าของตวั แปรทีมีมากกวา่ หนึงตวั แปร รูปแสดงลาํ ดบั การอ่านค่าในตวั แปรหรืออาร์กิวเมนต์ a และ b ตามลาํ ดบั และนาํ ไปใชง้ านร่วมกบั กลุ่มขอ้ ความตามลาํ ดบั ดว้ ยเช่นกนั 4. การใช้งานข้อความ + String Escape + ค่าอาร์กวิ เมนต์ รูปแบบนีเป็นการนาํ ความสามารถการทาํ งานของรูปแบบที 2 และ 3 มาใชร้ ่วมกบั กลุ่มขอ้ ความตาม บรรทดั ที 4 เป็นการผสมการใช้ String Escape โดยการใชเ้ ครืองหมาย \

สาํ หรับขึนบรรทดั ใหม่ร่วมกบั การระบุตาํ แหน่งผา่ น เครืองหมายสญั ลกั ษณ์ %d ตวั แรกทีมีในกลุ่มขอ้ ความซึงแทนค่าตวั แปร a หรือค่าอาร์กิวเมนต์ a และเครืองหมายสญั ลกั ษณ์ %f ซึง แทนค่าตวั เลขและชนิดของตวั แปร b ตามลาํ ดบั 5. การใช้งานข้อความ + String Escape + ฟังก์ชันภายใน + ค่าอาร์กวิ เมนต์ ค่าอาร์กิวเมนตท์ ีเป็นกลุ่มชนิดตวั เลข เมือนาํ มาใชร้ ่วมกบั กลุ่มขอ้ ความ บางกรณีกต็ อ้ งการจดั รูปแบบเพือใหง้ ่ายต่อการใชง้ าน ยกตวั อยา่ งตวั เลข 10000.7687 ตอ้ งการจดั รูปแบบใหเ้ ป็น 10,000.77 เพือนาํ ไปแสดงผลร่วมกบั กลุ่มขอ้ ความ โดยจะแทรก เครืองหมาย , หรือคอมม่า(comma) ใหก้ บั ตวั เลขทุก 3 หลกั และปัดเศษใหเ้ หลือ 2 หลกั ดว้ ยการใชฟ้ ังกช์ นั ภายในทีชือวา่ format() คราวนีลองมาดูตวั อยา่ งการใชง้ าน

76 บรรทดั ที 6 เป็นการจดั รูปแบบตวั เลขในตวั แปร a ผา่ นฟังกช์ นั ภายใน format โดยมีการนาํ ไปใชร้ ่วมกบั กลุ่มขอ้ ความ เพือระบุ ตาํ แหน่งทีจะแทรกค่าตวั เลขในขอ้ ความดว้ ยการใชเ้ ครืองหมาย {} สาํ หรับการแทรกลงในกลุ่มขอ้ ความ พอจะเห็นรูปแบบและวธิ ีการเขียนลกั ษณะการอา้ งอิงลาํ ดบั ของตวั แปรอาร์กิวเมนต์ การใชเ้ ครืองหมายระบุตวั เลขทีของ อาร์กิวเมนตส์ าํ หรับแทรกค่าตวั แปรผา่ นเครืองหมายปี กกา {} ในกลุ่มขอ้ ความต่อไปนีจะเป็นตวั อยา่ งเชิงลึกสาํ หรับการใชฟ้ ังกช์ นั ภายในทีชือ format ร่วมกบั ค่าตวั แปรอาร์กิวเมนต์ และการอา้ งอิงในการแทรกค่าตวั แปรลงในขอ้ ความ แบ่งออกเป็น 2 ส่วน 1. วธิ ีอ้างองิ การแทรกลาํ ดบั เลขทคี ่าตวั แปรอาร์กวิ เมนต์ระหว่างฟังก์ชันภายใน format และกล่มุ ข้อความ การอา้ งอิงการแทรกลาํ ดบั เลขทีค่าตวั แปรอาร์กิวเมนตก์ บั กลุ่มขอ้ ความ แบ่งออกเป็น 5 วธิ ียอ่ ยตามตวั อยา่ งต่อไปนี ตวั อย่าง 1.1 การอา้ งอิงการแทรกลาํ ดบั เลขทีค่าตวั แปรอาร์กิวเมนตด์ ว้ ยหมายเลขลาํ ดบั

77 ประโยชนข์ องการมีหมายเลขลาํ ดบั เลขทีของตวั แปรอาร์กิวเมนต์ คือเวลาอา้ งอิงเลขทีลาํ ดบั ขณะแทรกในกลุ่มขอ้ ความ ซึงมี ความยดื หยนุ่ ต่อการเรียกใชง้ านตามเลขทีลาํ ดบั ทีรวมไดต้ ามตอ้ งการ ตวั อย่าง 1.2 การอา้ งอิงการแทรกตวั แปรอาร์กิวเมนตด์ ว้ ยการเรียงลาํ ดบั ตามตวั แปรอาร์กิวเมนตจ์ ากลาํ ดบั แรกไปลาํ ดบั สุดทา้ ย บรรทดั ที 3 ลกั ษณะการใชเ้ ครืองหมาย {} ร่วมกบั กลุ่มขอ้ ความจะไม่รวมเลขทีลาํ ดบั ของตวั แปรอาร์กิวเมนต์ a,b,c ดงั นนั การ ดึงค่าทีอยใู่ นตวั แปรอาร์กิวเมนตก์ จ็ ะดึงค่าตามลาํ ดบั การเรียงชือตวั แปรอาร์กิวเมนตภ์ ายใตฟ้ ังกช์ นั ภายในทีชือวา่ format ตวั อย่าง 1.3 การอา้ งอิงแทรกค่าของตวั แปรอาร์กิวเมนตด์ ว้ ยการกาํ หนดชือ (Field Name) แทนเลขทีลาํ ดบั ของตวั แปร อาร์กิวเมนต์ จากบรรทดั ที 3 ในส่วนทา้ ย .format(tv=a, cost=b) จะเป็นรูปแบบการกาํ หนดค่าวา่ tv ใหม้ ีค่าเท่ากบั ตวั แปรอาร์กิวเมนต์ a เมือ ตอ้ งการแทรกค่าของตวั แปร a ดว้ ยเครืองหมาย {} ลงในกลุ่มขอ้ ความ ตอ้ งระบุคาํ วา่ tv ร่วมกบั เครืองหมาย {} เพือทีจะทาํ การอา้ งอิง ดึงค่าจากตวั แปรอาร์กิวเมนต์ a มาแทรกลงในกลุ่มขอ้ ความ

78 ตวั อย่าง 1.4 การอา้ งอิงแทรกค่าของตวั แปรอาร์กิวเมนตด์ ว้ ยการใชฟ้ ังกช์ นั ภายในทีชือวา่ locals() เทคนิคการใชฟ้ ังกช์ นั local() ร่วมกบั ฟังกช์ นั format เป็นวธิ ีการอา้ งอิงและทาํ การแทรกค่า (ตอนแทรกค่าลงในขอ้ ความให้ สงั เกตทีเครืองหมาย {} ในกลุ่มขอ้ ความ) ภายในของตวั แปรอาร์กิวเมนตโ์ ดยเป็นการอา้ งจากชือของตวั แปรจริงๆ ภายในโมดูลทีเป็น แบบ Local ร่วมกบั เครืองหมาย {} ซึงจะเป็นการแทรกค่าลงตามตาํ แหน่งในกลุ่มขอ้ ความ การอา้ งอิงชือเดียวกบั ตวั แปรในโมดูล คือตวั แปร b สาํ หรับการแทรกค่าในตวั แปรอาร์กิวเมนต์ b ลงในกลุ่มขอ้ ความตาม ตาํ แหน่งทีมีการใชเ้ ครืองหมาย {b} เทคนิคการใชง้ านภายใตล้ กั ษณะการอา้ งอิงค่าจากตวั แปร Local ของโมดูลแลว้ นาํ มาเป็นค่าของ ตวั แปรอาร์กิวเมนต์ เพือทีจะนาํ ไปแทรกค่าลงในขอ้ ความ แบบนีเรียกวา่ Mapping Unpacking(อยา่ ลืมเครืองหมาย ** นาํ หนา้ ฟังกช์ นั ภายใน local()) ตวั อย่าง 1.5 การอา้ งอิงแทรกค่าของตวั แปรอาร์กิวเมนตป์ ระเภท Sequence ดว้ ยหมายเลขลาํ ดบั การนาํ ตวั แปรอาร์กิวเมนตท์ ีเป็นประเภท Sequence (คลา้ ยตวั แปรอาร์เรยใ์ นภาษาอืนๆ) ซึงแบ่งยอ่ ยได้ 3 ประเภท ไดแ้ ก่ Tuple, List และ Dictionary เป็นตน้ รูปแบบของตวั แปรประเภท Sequence มีการเขียน ดงั นี เมือนาํ ไปใชง้ านร่วมกบั การผา่ นค่าตวั แปรอาร์กิวเมนต์ จะมีรูปแบบการเขียนโปรแกรมใชง้ านดงั นี

79 จะเห็นวา่ รูปแบบการแทรกค่าภายในตวั แปรอาร์กิวเมนตใ์ นกลุ่มขอ้ ความ โดยปกติจะใชเ้ พียงเครืองหมาย {0} ทีอา้ งอิงเลขที ลาํ ดบั ตวั แปรอาร์กิวเมนต์ หมายเลข 0 หรือตวั แปรอาร์กิวเมนต์ a ซึงจะมีค่าทีเกบ็ ภายในตวั แปรอาร์กิวเมนต์ a เป็นประเภท Sequence ทีสามารถจดั เกบ็ ค่าภายในไดม้ ากกวา่ หนึงค่า การอา้ งอิงแทรกค่าในกลุ่มขอ้ ความจะตอ้ งรวมใหช้ ดั เลขลาํ ดบั อา้ งอิงหมายเลข 0 ทีติดกบั เครืองหมายปี กกา {0} จะบ่งบอกใหท้ ราบวา่ เป็นตวั แปรอาร์กิวเมนตล์ าํ ดบั แรก หรือ ตวั แปรทีชือวา่ a แต่เผอิญตวั แปร a เป็นชนิด List Sequence ทีมีหมายเลขอา้ งอิงยอ่ ยสาํ หรับค่าภายในของตวั แปร a เป็น [0] คือ TV, [1] คือ 10000 ฯลฯ การใชเ้ ครืองหมายแทรกกต็ อ้ งทาํ การเพิมเติมเลขทีลาํ ดบั ยอ่ ยภายในตวั แปรอาร์กิวเมนตข์ อง a เขา้ ไป ดงั นี 2. การจดั ค่าในตวั แปรอาร์กวิ เมนต์ด้วยฟังก์ชันภายใน format หลงั จากคุน้ กบั ชือฟังกช์ นั ภายในทีชือ format มาพอสมควร คราวนีมาดูลกั ษณะการเขียนคาํ สงั แสดงรูปแบบต่างๆ เพอื ใหไ้ ด้ ผลลพั ธ์ตามทีตอ้ งการ โดยส่วนใหญ่ฟังกช์ นั format จะเหมาะกบั ตวั แปรทีเป็นชนิดตวั เลขทีเป็นจาํ นวนเตม็ (Int), ทศนิยม(Float), ทศนิยมคงที(Decimal) และชนิดขอ้ ความ เป็นตน้ ต่อไปนีเป็นรูปแบบการใชง้ านฟังกช์ นั format กบั ตวั แปรชนิดต่างๆ ตามตวั อยา่ ง จากบรรทดั ที 2 ซึงนาํ ฟังกช์ นั format ,ต่อทา้ ยกลุ่มขอ้ ความ แลว้ ทาํ การแทรกค่าตวั แปรอาร์กิวเมนตด์ ว้ ยเครืองหมาย {} ใน ขอ้ ความ โดยระบุเลขทีลาํ ดบั ของตวั แปรอาร์กิวเมนตใ์ นฟังกช์ นั

80 ตวั อย่างที 2.2 การจดั รูปแบบค่าในตวั แปรอาร์กิวเมนตร์ ะหวา่ งทาํ การแทรกแบบปรับแต่งการวางขอ้ มูลไปทางซา้ ย, ขวา, ตรง กลาง, จาํ กดั จาํ นวนตวั อกั ษรทีตอ้ งการแทรก ฯลฯ เมือเพิมเครืองหมาย :20 ต่อทา้ ยเลขทีลาํ ดบั ศูนยข์ องตวั แปรอาร์กิวเมนต์ a ในฟังกช์ นั format จะเป็นการกาํ หนดจาํ นวนตวั อกั ษรอยา่ งนอ้ ย 20 ตวั อกั ษรเสมอ เมือแทรกลงในขอ้ ความ สาํ หรับกรณีค่าขอ้ มูลในตวั แปร a ตามตวั อยา่ งขา้ งล่าง ซึงมีขอ้ ความ Television เมือนบั จาํ นวนตวั อกั ษรตงั แต่ตวั อกั ษร T ไปจนถึง n รวมทงั หมด 10 ตวั อกั ษร เมือนาํ มาใชก้ บั เครืองหมาย :20 จาํ นวนใน ตวั แปร a ทีมี 10 ตวั อกั ษร จึงนอ้ ยกวา่ จาํ นวนทีตอ้ งแทรกตามเครืองหมาย :20 ภายใตก้ ระบวนการทาํ งานทีมีส่วนต่างกนั 9 ตวั อกั ษร จะมีการเพิมรหสั ช่องวา่ งต่อทา้ ยภายในตวั แปร a อีก 9 ตวั อกั ษร เพือทีจะ ทาํ ใหค้ รบตามจาํ นวน 20 ตวั อกั ษร ผลลพั ธ์เมือใชเ้ ครืองหมาย :20 ร่วมกบั ค่าขอ้ มูลในตวั แปร a ต่อไปเป็นการทดลองใช้ > , < , ^ ตามตวั อยา่ งคาํ สงั ต่อไปนี

81 ในการเขียนภาษา Python จะมีการใชเ้ ครืองหมาย [] ร่วมกบั ตวั แปรชนิดต่างๆ ใหเ้ ห็นอยบู่ ่อยครัง แต่ละเครืองแบบทีนาํ เครืองหมาย [] มาใช้ กไ็ ดผ้ ลลพั ธ์ทีแตกต่างกนั ขึนอยกู่ บั ชนิดตวั แปรหรือสถานการณ์ทีใชง้ านเครืองหมาย [] ในขณะนนั ตาม ผลลพั ธ์ทีอยากได้ แต่ถา้ หากนาํ เครืองหมาย [] มาใชก้ บั ตวั แปรชนิดขอ้ ความ กจ็ ะตอ้ งมีคาํ ศพั ทเ์ ชิงเทคนิคอยู่ 2 คาํ ศพั ท์ ไดแ้ ก่ slicing และ Striding String โครงสร้างของขอ้ ความทีจดั เกบ็ ลงในตวั แปร ประกอบดว้ ย หมายเลขลาํ ดบั (Index) ของตวั อกั ษรภายในกลุ่มขอ้ ความเป็น หมายเลขกาํ กบั การอา้ งอิงถึงทุกๆ ตวั อกั ษร ซึงมีอยดู่ ว้ ยกนั 2 ชนิด คือ 1. ชนิดหมายเลขลาํ ดบั (Index) ทีมีหมายเลขทางดา้ นบวก(คือเริมจากหมายเลข 0,1,2,3,… จนถึงหมายเลขสุดทา้ ยเหมือนกบั เริมจากตวั อกั ษรตวั แรกไปจนถึงตวั สุดทา้ ย) 2. ชนิดหมายเลขลาํ ดบั (Index) ทีมีหมายเลขทางดา้ นลบ(คือเริมจากหมายเลข 0,-1,-2,-3,… จนถึงหมายเลขติดลบตวั สุดทา้ ย เริมจากตวั อกั ษรตวั สุดทา้ ยยอ้ นกลบั ไปตวั แรกสุด)

82 ตามโครงสร้างของขอ้ ความทีจดั เกบ็ ในตวั แปรของ Python รูปแบบการเขียนคาํ สงั เพอื ทาํ การตดั คาํ หรือการ Slicing มีรูปแบบ ดงั นี รูปแบบที 1 การตดั คาํ ดว้ ยการระบุตาํ แหน่งตวั อกั ษร รูปแบบที 2 การตดั คาํ ดว้ ยการกาํ หนดจุดเริมตน้ และการระบุความยาวจาํ นวนตวั อกั ษร รูปแบบที 3 การตดั คาํ ดว้ ยการกาํ หนดจุดเริมตน้ และการระบุความยาวจาํ นวนตวั อกั ษร พร้อมดว้ ยการกาํ หนด Step ของตวั อกั ษรสาํ หรับการตดั คาํ บางครังกเ็ รียกวา่ Striding String

83 สรุป การใชว้ ธิ ีตดั คาํ ในกลุ่มขอ้ ความทงั 3 รูปแบบของภาษา Python เราเรียกวา่ Slicing และลกั ษณะการ Step ของตวั อกั ษรบาง ครังเรียกวา่ Striding String ซึงใน Python จะกาํ หนดไวท้ ีละ 1 Step โดยอตั โนมตั ิ - ทดลองโปรแกรมสาํ หรับการใชต้ วั แปรและชนิดตวั แปรแบบพืนฐาน คาํ สงั print() ใชส้ าํ หรับแสดงค่าทวั ไปหรือค่าในตวั แปร โดยมีรูปแบบการใชค้ าํ สงั ดงั นี print(ชือตวั แปร) print('ขอ้ ความ % = ชนิดตวั แปร' %(ตวั แปร)) แสดงขอ้ ความผสมกบั ค่าตวั แปร การสร้างตวั แปรในโปรแกรมบางครังกม็ ีความจาํ เป็นทีตอ้ งใส่ค่าอะไรสกั อยา่ งเขา้ ไปในตวั แปรก่อนทีจะนาํ ไปใชง้ าน เพอื ให้ เกิดความสมบูรณ์ตามรูปแบบการสร้างตวั แปรของ python ดงั นนั ค่าทีเหมาะสมต่อการนาํ มาใชง้ านร่วมกบั การสร้างตวั แปร ควรจะ เลือกค่าเริมตน้ ใหต้ รงตามชนิดตวั แปรตามตวั อยา่ งต่อไปนี a = 0 ถา้ ตอ้ งการสร้างตวั แปร a สาํ หรับรอการใชง้ านและทาํ งานเกียวกบั ตวั เลข ควรกาํ หนดค่าใหก้ บั ตวั แปร a a = \"\" ถา้ ตอ้ งการสร้างและรอการนาํ ตวั แปรไปใหง้ าน หรือ b = \"\" ควรกาํ หนดค่าขอ้ ความแบบวา่ งหรือเรียกวา่ Empty String (ตอ้ งเขียนเครืองหมาย ' ใหต้ ิดกนั เลย หา้ มกดป่ ุม Space Bar ขนั กลางระหวา่ งเครืองหมาย ' หรือ \" ) c = None หากตวั แปร c เป็นชนิด Object ระหวา่ งรอการนาํ ไปใชง้ าน เราตอ้ งการลา้ งค่า Object ทีคา้ งอยู่ ดว้ ยการกาํ หนดค่า None กบั ตวั แปร

84 ฟังกช์ นั สาํ หรับแปลงชนิดขอ้ มูลในไพทอน (Python Data Type Conversion) ถึงแมไ้ พทอนจะเป็นภาษาทีกาํ หนดชนิดของ ขอ้ มูลใหเ้ ราเองตอนทีเราสร้างตวั แปร แต่บางครังเราอาจตอ้ งการแปลงชนิดของตวั แปร เพือนาํ ไปใชต้ ่อ ซึงมีฟังกช์ นั ทีใชแ้ ปลงชนิด ของขอ้ มูล ดงั นี ชือฟังกช์ นั คาํ อธิบาย type(x) type เป็นฟังกช์ นั ทีไวต้ รวจสอบชนิดขอ้ มูลของตวั แปร int(x [,base]) แปลง x เป็น integer โดยสามารถระบุเลขฐานได้ เมือ x เป็น string long(x [,base] ) แปลง x เป็น long integer โดยสามารถระบุฐานได้ เมือ x เป็น string float(x) แปลง x เป็น floating-point number complex(real [,imag]) สร้าง complex number str(x) แปลง object x เป็น a string chr(x) แปลง integer เป็น character hex(x) แปลง integer เป็นเลขฐานสิบหก oct(x) แปลง integer เป็นเลขฐานแปด ตวั อย่างเช่น # convert string to int s = input('Enter integer number: ') n = int(s) print('Type of s is ', type(s)) print('Type of n is ', type(n)) # convert string to float s2 = input('Enter floating number: ') f = float(s2) print('Type of s2 is ', type(s2)) print('Type of f is ', type(f))

88 ไพทอนมีโมดูล turtle ซึงมีตน้ ฉบบั มาจากภาษา Logo โดยจะมีในโปรแกรม Python เวอร์ชนั Python 2.6 และ Python 3 เป็นตน้ มา สาํ หรับใชฝ้ ึกเขียนโปรแกรมขนั เริมตน้ โดยใชเ้ ต่าในการลากเสน้ หรือวาดรูป ในทีนีจะแนะนาํ ใหใ้ ชโ้ หมดสคริปต์ ตวั อย่าง ใหท้ ดลองเขียนคาํ สงั ดงั ต่อไปนี เมือรันโปรแกรม จะไดผ้ ลลพั ธ์คือ

89 บรรทดั บนสุดของโคด้ คาํ สงั จะตอ้ งใชค้ าํ สงั from turtle import * เพอื เรียกใชต้ วั แปร ฟังกช์ นั หรือเมธอดทงั หมดจากโมดูล turtle เพือใชใ้ นการวาดภาพได้ 1. forward() / fd() ลากเสน้ ตรงไปขา้ งหนา้ มีหน่วยเป็นพกิ เซล โดยภายในวงเลบ็ ใส่ตวั เลขทีเป็นชนิด integer หรือ float เช่น forward(100) เต่าจะเดินหนา้ 100 พิกเซล forward(-100) เต่าจะเดินหนา้ -100 พิกเซล หรือถอยหลงั 100 พกิ เซลนนั เอง (ทิศตรงขา้ ม) 2. back() / bk() / backward() ลากเสน้ ตรงไปขา้ งหลงั มีหน่วยเป็นพกิ เซล เช่น backward(100) เต่าจะเดินถอยหลงั 100 พิกเซล backward(-100) เต่าจะเดินถอยหลงั -100 พกิ เซล หรือเดินหนา้ 100 พิกเซลนนั เอง (ทิศตรงขา้ ม) 3. right() / rt() หนั ไปทางขวา ทาํ มุมตามองศาทีกาํ หนดจากมุมเดิม เช่น right(90) หนั หวั เต่าไปทางขวา 90 องศาจากมุมเดิม 4. left() / lt() หนั ไปทางซา้ ย ทาํ มุมตามองศาทีกาํ หนดจากมุมเดิม เช่น left(90) หนั หวั เต่าไปทางซา้ ย 90 องศาจากมุมเดิม

90 5. goto(x, y) / setpos(x, y) / setposition(x, y) ยา้ ยเต่าไปยงั ตาํ แหน่งทีแน่นอน โดยไม่เปลียนทิศทางของเต่า ตวั อยา่ งเช่น 6. setx() ตงั ค่าพกิ ดั ในแกน x ของเต่า โดยทีพิกดั ในแกน y ไม่มีการเปลียนแปลง 7. sety() ตงั ค่าพิกดั ในแกน y ของเต่า โดยทีพกิ ดั ในแกน x ไม่มีการเปลียนแปลง

91 8. setheading() / seth() กาํ หนดหวั เต่าใหห้ นั ไปตามทิศทีตอ้ งการ ในวงเลบ็ ใหใ้ ส่ตวั เลของศาเขา้ ไป โดย 0 คือทิศตะวนั ออก, 90 คือ ทิศเหนือ, 180 คือ ทิศตะวนั ตก และ 270 คือ ทิศใต้ 9. home() ยา้ ยเต่าไปยงั จุดเริมตน้ นนั กค็ ือ พิกดั (0,0) และตงั ค่าหวั เต่าไวท้ ีทิศทางเริมตน้ นนั คือ องศา หรือชีไปทางขวา 10. circle(รัศม,ี องศา, จาํ นวนเหลยี ม) ใชว้ าดรูปวงกลม - circle(รัศมี) ใชว้ าดรูปวงกลม เช่น circle(50) จะไดว้ งกลมทีมีรัศมีเท่ากบั 50 - circle(รัศมี, องศา) ใชว้ าดรูปวงกลมไม่ครบวง ตามองศาทีกาํ หนด เช่น circle(50,180) จะไดค้ รึงวงกลมทีมีรัศมีเท่ากบั 50 - circle(รัศมี, องศา, จาํ นวนเหลียม) ใชว้ าดรูปหลายเหลียม เช่น circle(100,360,5) จะไดว้ งกลมทีมีหา้ เหลียม

92 11. dot(ขนาดเส้นผ่านศูนย์กลาง, \"สี\") ใชว้ าดจุดวงกลม โดยระบุเสน้ ผา่ นศูนยก์ ลางและสี 12. stamp() ปัมตวั เต่าใหอ้ ยใู่ นตาํ แหน่งทีกาํ หนด เช่น เมือเดินเต่าเดินหนา้ ไป 100 พกิ เซล ใหท้ าํ การปัมรูปเต่าไวต้ าํ แหน่งนนั ตวั อยา่ งเช่น

93 13. clearstamp() ลบตวั เต่าทีเราทาํ การปัมเอาไว้

94 14. undo() ยกเลิก (ซาํ ๆ) การกระทาํ ของเต่าครังล่าสุด 15. speed() ใส่ความเร็วในการเดินของตวั เต่า มีค่าตงั แต่ 0 - 10 โดย = เร็วทีสุด, 10 = เร็ว, 6 = ปกติ, 3 = ชา้ , 1= ชา้ ทีสุด เช่น speed(3) 1. position() / pos() ส่งกลบั ค่าตาํ แหน่งปัจจุบนั ของเต่า (x, y) 2. towards(x, y) ส่งกลบั ค่ามุมระหวา่ งเสน้ จากตาํ แหน่งเต่าไปยงั ตาํ แหน่งทีระบุ

95 3. xcor() ส่งกลบั ค่าพิกดั แกน x ของตวั เต่า 4. ycor() ส่งกลบั ค่าพิกดั แกน y ของตวั เต่า 5. heading() ส่งกลบั ค่าองศาของหวั เต่า 6. distance(x, y) ส่งกลบั ค่าระยะทางจากเต่าไปยงั ตาํ แหน่ง (x, y) ทีอา้ งอิง 1. pendown() / pd() / down() เป็นคาํ สงั วางปากกา 2. penup() / pu() / up() เป็นคาํ สงั ยกปากกา 3. pensize() เป็นคาํ สงั สาํ หรับใชก้ าํ หนดขนาดตวั เต่าและขนาดของเสน้ เป็นหน่วยเป็นพกิ เซล เช่น pensize(3) 4. pen() ตงั ค่าแอตทริบิวตห์ ลายๆ อยา่ งของปากกาในคาํ สงั เดียว ซึงมีค่าดงั ต่อไปนี : shown แสดงหรือซ่อนปากกา มี 2 ค่า คือ True/False pendown วางปากกา มี 2 ค่า คือ True/False pencolor ใส่สีปากกา โดยระบุชือสีลงไป เช่น pencolor = \"red\" fillcolor เติมสีวตั ถุแบบปิ ด โดยระบุชือสีลงไป เช่น fillcolor = \"red\" pensize ใส่ขนาดปากกา speed ใส่ความเร็วในการวาดของปากกา มีค่าตงั แต่ 0 - 10 5. isdown() ส่งกลบั ค่า True ถา้ สถานะเป็นวางปากกา และส่งกลบั ค่า False ถา้ สถานะเป็นยกปากกา 1. pencolor() ส่งกลบั ค่าหรือตงั ค่าสีปากกา โดยมี 3 รูปแบบ คือ - pencolor() ส่งกลบั ค่า pencolor ปัจจุบนั ส่งค่ากลบั มาเป็นสตริงระบุสี - pencolor(ชือสี) ตงั ค่า pencolor เป็น colorstring เช่น \"red\", \"yellow\" หรือ \"# 33cc8c\" - pencolor(r, g, b) ตงั ค่า pencolor เป็นสี RGB โดยแต่ละ R, G และ B ตอ้ งอยใู่ นช่วง 1.0 - 255 2. fillcolor() ส่งกลบั ค่าหรือตงั ค่าการเติมสี โดยมี 3 รูปแบบ คือ - fillcolor() ส่งกลบั ค่า fillcolor ปัจจุบนั ส่งค่ากลบั มาเป็นสตริงระบุสี - fillcolor(ชือสี) ตงั ค่า fillcolor เป็น colorstring เช่น \"red\", \"yellow\" หรือ \"# 33cc8c\" - fillcolor(r, g, b) ตงั ค่า fillcolor เป็นสี RGB โดยแต่ละ R, G และ B ตอ้ งอยใู่ นช่วง 1.0 - 255 3. color() เป็นคาํ สงั กาํ หนดสีใหก้ บั เสน้ (ชือสีในภาษาองั กฤษ) เช่น color(\"yellow\") ตวั อยา่ งเช่น

96 1. begin_fill() กาํ หนดจุดเริมตน้ ในการเติมสี โดยจะตอ้ งใส่คาํ สงั นีก่อนคาํ สงั วาดรูปทรง 2. end_fill() เติมสีรูปทรง โดยจะตอ้ งใส่คาํ สงั นีหลงั คาํ สงั begin_fill()

97 1. reset() เป็นคาํ สงั ทีใชล้ บภาพวาดของเต่าออกจากหนา้ จอ ปรับตาํ แหน่งตวั เต่ามาอยตู่ รงกลางหนา้ จออีกครัง และตงั ค่าตวั แปร ใหเ้ ป็นค่าเริมตน้ 2. clear() เป็นคาํ สงั ทีใชล้ บภาพวาดของเต่าออกจากหนา้ จอ แต่ตาํ แหน่งของเต่าและภาพวาดของเต่าอืน ๆ จะไม่ไดร้ ับผลกระทบ 3. write(arg, move, align, font) ใชเ้ ขียนขอ้ ความ เช่น write(\"Python\", True, align = \"left\", font = (\"Arial\", 8, \"normal\")) - arg การแทนสตริงของอาร์กิวเมนต์ เช่น \"Python\" - move หากเป็น True ปากกาจะถูกยา้ ยไปทีมุมล่างขวาของขอ้ ความ โดยค่าเริมตน้ ยา้ ยเป็น False - align การจดั ตาํ แหน่งขอ้ ความ ไดแ้ ก่ \"left\", \"center\" และ \"right\" เช่น align = \"left\" - font กาํ หนดรูปแบบตวั อกั ษร ไดแ้ ก่ fontname, fontsize, fonttype เช่น font = (\"Arial\", 8, \"normal\") 1. hideturtle() / ht() คาํ สงั ในการซ่อนเต่าไม่ใหม้ องเห็นตวั เต่า เมืออยใู่ นระหวา่ งการทาํ ภาพวาดทีซบั ซอ้ นบางส่วน เพราะการ ซ่อนเต่าจะช่วยใหก้ ารวาดภาพสามารถสงั เกตไดง้ ่ายขึน 2. showturtle() / st() คาํ สงั ในการแสดงเต่า 3. isvisible() ส่งกลบั ค่า True ถา้ อยใู่ นสถานะแสดงตวั เต่า ส่งกลบั ค่า False ถา้ อยใู่ นสถานะซ่อนตวั เต่า

98 4. shape() เป็นการระบุรูปร่างของตวั เต่า โดยระบุรูปร่างเป็นสตริงอยภู่ ายในวงเลบ็ () ไดแ้ ก่ \"arrow\", \"turtle\", \"circle\", \"square\", \"triangle\", \"classic\" ลงไป เช่น shape(\"circle\") หรือ shape(\"square\") หากตอ้ งการเปลียนกลบั เป็นรูปลูกศรใหใ้ ช้ shape(\"classic\") 5. shapesize(กว้าง, ยาว) / turtlesize(กว้าง, ยาว) กาํ หนดขนาดรูปร่าง 6. tilt(angle) หมุนรูปร่างของเต่าใหเ้ อียงจากมุมของรูปร่างเดิมของเต่า แต่ไม่เปลียนทิศทางของหวั เต่า 1. onclick() กาํ หนดเหตุการณ์เมือมีการคลิกเมาส์ทีตวั เต่า โดยมีการส่งค่าพิกดั x, y ของจุดทีคลิกบนตวั เต่า เช่น เมือคลิกทีตวั เต่า ใหโ้ ปรแกรมเรียกฟังกช์ นั rectangle

99 2. onrelease() กาํ หนดเหตุการณ์เมือมีการปล่อยเมาส์ทีตวั เต่า เมือคลิกเมาส์ทีตวั เต่า เมือปล่อยเมาส์ 3. ondrag() กาํ หนดเหตุการณ์เมือมีการคลิกคา้ งทีตวั เต่าแลว้ ลาก ตวั อยา่ งเช่น คาํ สงั ondrag(goto) เมือคลิกคา้ งทีเต่าแลว้ ลาก จะ เป็นการวาดเสน้ ตามตาํ แหน่งของเต่าทีเคลือนทีไป

100 1. bgcolor() เป็นคาํ สงั กาํ หนดสีภาพพืนหลงั (ชือสีในภาษาองั กฤษ) เช่น bgcolor(\"orange\") 2. clear() / clearscreen() ลบภาพวาดทงั หมดและเต่าทงั หมดออกจากหนา้ จอ รีเซ็ตหนา้ จอใหม้ ีสถานะเริมตน้ คือ พืนหลงั สีขาว 3. reset() / resetscreen() รีเซ็ตเต่าทงั หมดบนหนา้ จอใหอ้ ยใู่ นสถานะเริมตน้ 4. screensize() เป็นคาํ สงั กาํ หนดขนาดใหก้ บั หนา้ ต่าง มีหน่วยเป็นพิกเซล เช่น screensize(2000,1500) 5. title() เป็นคาํ สงั กาํ หนดหวั ขอ้ title ของหนา้ ต่าง เช่น title(\"Rectangle\") 6. mainloop() เป็นคาํ สงั ลูปคา้ งหนา้ จอไวส้ าํ หรับรอวาดรูปต่อ ตวั อย่างที 1

105 ดว้ ยพืนฐานของการเขียนโปรแกรม จะมีกลุ่มคาํ สงั หลกั อีกประเภทหนึงทีทาํ งานร่วมกบั กลุ่มคาํ สงั ยอ่ ย โดยบงั คบั ใหค้ าํ สงั ยอ่ ยทงั หมดทาํ งานตามจาํ นวนครังทีระบุในคาํ สงั หลกั เรามกั จะเรียกคาํ สงั หลกั ทีมีลกั ษณะการทาํ งานเช่นนีวา่ คาํ สงั การวนทาํ ซาํ (Repetition) สาํ หรับภาษา Python กลุ่มคาํ สงั การวนทาํ ซาํ จะประกอบดว้ ยคาํ สงั for และคาํ สงั while ก่อนทีจะอธิบายลงไปในราย ละเอียดของทงั 2 คาํ สงั ลองมาดูประโยชนข์ องการใชค้ าํ สงั การวนทาํ ซาํ และการตดั สินใจทีจะนาํ คาํ สงั การวนทาํ ซาํ มาใชร้ ะหวา่ งการ พฒั นางาน (การทดลองคาํ สงั จะทาํ การเขียนคาํ สงั ลงในโมเดล Python โดยไปทีเมนู File เลือกเมนูยอ่ ย New สาํ หรับเปิ ดโมดูล) ตวั อย่างที 1 เป็นคาํ สงั รับขอ้ มูลแบบพืนฐาน a=1 c = [] print('กรุณาป้อนชือผลไม้ 6 ชือ') b = input('%d ป้อนชือผลไมส้ ุดโปรดของคุณ' %a) c.append(b) a += 1 b = input('%d ป้อนชือผลไมส้ ุดโปรดของคุณ' %a) c.append(b) a += 1 b = input('%d ป้อนชือผลไมส้ ุดโปรดของคุณ' %a) c.append(b) a += 1 b = input('%d ป้อนชือผลไมส้ ุดโปรดของคุณ' %a) c.append(b) a += 1 b = input('%d ป้อนชือผลไมส้ ุดโปรดของคุณ' %a) c.append(b) a += 1 b = input('%d ป้อนชือผลไมส้ ุดโปรดของคุณ' %a) c.append(b) print('ผลไมโ้ ปรดของคุณคือ %s' %c) print('จบคาํ สงั ')

107 การทาํ งานของกลุ่มคาํ สงั ในตวั อยา่ งที 1 จะรอใหผ้ ใู้ ชง้ านป้อนชืออาหารใหค้ รบ 6 ชือ เมือครบตามจาํ นวนรายชืออาหาร กจ็ ะ ทาํ การพิมพร์ ายการชือเหล่านนั เป็นขนั ตอนสุดทา้ ยของการทาํ งานในโปรแกรมนี ลองมาดูลกั ษณะการเขียนคาํ สงั ของตวั อยา่ งที 1 พบวา่ มีการใชค้ าํ สงั การรับค่าจากการป้อนผา่ นคียบ์ อร์ด คือคาํ สงั input และค่าขอ้ มูลทีไดจ้ ะถูกเกบ็ ลงในตวั แปร b ชวั คราว (b = input ('%d ป้อนชืออาหารสุดโปรดของคุณ' %a) ซึงค่าขอ้ มูลในตวั แปร b กค็ ือชืออาหารโปรดทีผใู้ ชจ้ ะตอ้ งทาํ การป้อน 1 ชือ หลงั จากไดช้ ืออาหาร กจ็ ะนาํ ไปเกบ็ รวมกนั ในตวั แปร c ทีเป็นชนิด Sequence แบบ List โดยการใชค้ าํ สงั c.append(b) เพียงเท่านีกค็ รบตามกระบวนการใช้ งานสาํ หรับการป้อนชืออาหาร และจดั เกบ็ ไวใ้ นโปรแกรม แต่โจทยต์ อ้ งการชืออาหารทงั หมด 6 รายชือ ดว้ ยวธิ ีการแบบเดิมคือ การป้อน ชืออาหารตามกระบวนการทีไดอ้ ธิบาย และคาํ สงั ทีนาํ มาใชส้ าํ หรับการเขียนโปรแกรมก่อนหนา้ นีไปแลว้ ดงั นนั กลุ่มคาํ สงั ชุดที 2, 3, 4, 5, 6 หรือมากกวา่ นี กจ็ ะใชเ้ หมือนกนั กลุ่มคาํ สงั ในชุดที 1 ซึงถา้ ดูตามตวั อยา่ งที 1 จะเห็นกลุ่มคาํ สงั ทีทาํ งานซาํ ๆ กนั โดยแบ่งออกเป็น 6 ชุด ประกอบดว้ ย คาํ สงั ต่อไปนี b = input('%d ป้อนชืออาหารสดโปรดของคุณ' %a) c.append(b) คราวนีลองมาดูประโยชนข์ องการนาํ คาํ สงั การวนทาํ ซาํ ของภาษา Python มาดดั แปลงลงในกลุ่มคาํ สงั ทีใชใ้ นตวั อยา่ งที 1 ให้ สงั เกตการณ์เปลียนแปลงของคาํ สงั หลงั จากการนาํ คาํ สงั การวนซาํ มาใชง้ านร่วมกนั เนืองจากคาํ สงั การวนทาํ ซาํ ของภาษา Python มี 2 คาํ สงั วธิ ีหรือรูปแบบการเขียนคาํ สงั เพอื ใชง้ านจะคลา้ ยกนั เพยี งแต่แตกต่างกนั ทีวธิ ีการสินสุดการวนทาํ ซาํ ของกลุ่มคาํ สงั ยอ่ ย ถา้ หาก เป็นการทาํ ซาํ ทีมีจุดเริมตน้ สมมุติวา่ เริมจากตวั เลข 1 และกาํ หนดตวั เลข 5 ใหเ้ ป็นจุดสินสุด ซึงจะมีความชดั เจนในการกาํ หนดจุดเริมตน้ และจุดสินสุด คาํ สงั การวนทาํ ซาํ กต็ อ้ งใชค้ าํ สงั for โดยการมีรูปแบบการเขียนตามตวั อยา่ งที 2 ยงั เหลือวธิ ีการสินสุดการวนทาํ ซาํ จากคาํ สงั while ซึงอาศยั การกาํ หนดเงือนไข และตรวจสอบเงือนไขในแต่ละรอบของการวนทาํ ซาํ เมือผลลพั ธ์ของการตรวจสอบเงือนไขเป็น เทจ็ (False) กจ็ ะถือวา่ สินสุดการวนทาํ ซาํ ตวั อยา่ งที 3 จะแสดงวธิ ีการเขียนคาํ สงั while และกาํ หนดเงือนไขสาํ หรับการสินสุดการวนทาํ ซาํ ของกลุ่มคาํ สงั ยอ่ ย ตวั อย่างที 2 เป็นคาํ สงั รับขอ้ มูลโดยใชค้ าํ สงั การวนทาํ ซาํ for มาแทนการเขียนแบบลูกทุง้ ลูกทุ่งใน ตวั อยา่ งที 1 บรรทดั ที 1 c = []

108 บรรทดั ที 2 for a in [1,2,3,4,5] : บรรทดั ที 3 b = input('%d ป้อนชืออาหารสุดโปรดของคุณ' %a) บรรทดั ที 4 c.append(b) บรรทดั ที 5 print('อาหารโปรดของคุณคือ %s' %c) บรรทดั ที 6 print('จบคาํ สงั ') สงั เกตรูปแบบการเขียนคาํ สงั for ซึงจะเริมจากบรรทดั ที 2 โดยมีกลุ่มคาํ สงั ยอ่ ยทีจะทาํ การวนทาํ ซาํ คือ บรรทดั ที 2 และ 3 ทีมี จุดเริมตน้ จากตวั เลข 1 (แบบเรียงจากนอ้ ยไปมาก หรือจะแกจ้ ากมากไปนอ้ ยกพ็ ิมพ์ 5, 4, 3, 2, 1 กไ็ ด้ หรือชอบแบบผาดโผน เช่น 1, 9, 17, 4, 100 เป็นตน้ ) ในการวนทาํ ซาํ รอบแรกซึงจดั เกบ็ ค่าตวั เลขไวท้ ีตวั แปร a เมือเริมการวนทาํ ซาํ ในรอบที 2 หรือรอบถดั ไปกจ็ ะอ่าน ค่าตวั เลขทีเกบ็ เรียงไวค้ ือ 2, 3, 4, 5 จึงจะสินสุดการวนซาํ ของคาํ สงั for อีกเทคนิคหนึงทีนิยมนาํ มาใชร้ ่วมกบั การกาํ หนดตวั เลขเริมตน้ ไปจนถึงตวั เลขทีสินสุด ดว้ ยการใชฟ้ ังกช์ นั range ทีมีรูปแบบการเขียนฟังกช์ นั ดงั นี แบบที 1 range (1, 5) มีค่าเท่ากบั [1, 2, 3, 4, 5] เหมือนทีใชใ้ นบรรทดั ที 2 เมือนาํ ฟังกช์ นั range มาร่วมกบั คาํ สงั for จะมีรูป แบบการเขียน ดงั นี c = [] for a in range(1,5) : b = input('%d ป้อนชืออาหารสุดโปรดของคุณ' %a) c.append(b) print('อาหารโปรดของคุณคือ %s' %c) print('จบคาํ สงั ') แบบที 2 range (5,1, -1) มีค่าเท่ากบั [5, 4, 3, 2, 1] เป็นการกาํ หนดตวั เลขจากมากไปนอ้ ย จะใหล้ ดทีละ 1 กก็ าํ หนด -1 ใน อาร์กิวเมนตต์ วั ที 3 ซึงทาํ หนา้ ทีกาํ หนดการเพิมหรือลดค่าตวั เลขของฟังกช์ นั range ฟังกช์ นั จะกาํ หนดค่าเป็น 1 ไวเ้ สมอ ซึงหมายถึงจะ ทาํ การเพิมทีละ 1 โดยอตั โนมตั ิ) c = [] for a in range(5,1,-1) : b = input('%d ป้อนชืออาหารสุดโปรดของคุณ' %a) c.append(b) print('อาหารโปรดของคุณคือ %s' %c) print('จบคาํ สงั ') แบบที 3 แสดงการใชค้ าํ สงั while สาํ หรับกลุ่มคาํ สงั ยอ่ ยในการวนทาํ ซาํ และสินสุดดว้ ยการตรวจสอบเงือนไข บรรทดั ที 1 a = 1 บรรทดั ที 2 c = [] บรรทดั ที 3 while a < 5 : บรรทดั ที 4 b = input('%d ป้อนชืออาหารสุดโปรดของคุณ' %a) บรรทดั ที 5 c.append(b) บรรทดั ที 6 a += 1 บรรทดั ที 7 print('อาหารโปรดของคุณคือ %s' %c) บรรทดั ที 8 print('จบคาํ สงั ')

109 ในบรรทดั ที 3 เป็นรูปแบบการเขียนคาํ สงั การวนซาํ ดว้ ยคาํ สงั while พร้อมเงือนไขทีกาํ หนดขึนเพอื หยดุ การวนทาํ ซาํ ซึง ตอ้ งการผลลพั ธ์ของการตรวจสอบเงือนไขทีเป็นเทจ็ (False) เท่านนั จากตวั อยา่ งจะเห็นวา่ ค่าในตวั แปร a จะเริมที 1 (กาํ หนดทีบรรทดั ที 1 ) เมือนาํ ค่าในตวั แปรมาตรวจสอบเงือนไข a < 5 ของคาํ สงั while ผลลพั ธ์ทีไดจ้ ากการตรวจสอบจะเป็นจริง (เนืองจากค่าในตวั แปร a นอ้ ยกวา่ 5 ตามเงือนไข) กระบวนการวนทาํ ซาํ กบั กลุ่มคาํ สงั ยอ่ ยในบรรทดั ที 4 ถึง 6 กจ็ ะเริมตน้ ทาํ งานแต่ละรอบจนกวา่ จะจบตาม เงือนไขของคาํ สงั while คราวนีลองมาดูตวั อยา่ งเพมิ เติมกรณีมีเงือนไขทีสามารถจบการวนทาํ ซาํ มากกวา่ 1 เงือนไข ตวั อย่างที 4 แสดงการใชค้ าํ สงั while ทีมีมากกวา่ 1 เงือนไขสาํ หรับการวนทาํ ซาํ บรรทดั ที 1 a = 1 บรรทดั ที 2 c = [] บรรทดั ที 3 while a < 5 or b != 'exit' : บรรทดั ที 4 b = input('%d ป้อนชืออาหารสุดโปรดของคุณ' %a) บรรทดั ที 5 c.append(b) บรรทดั ที 6 a += 1 บรรทดั ที 7 print('อาหารโปรดของคุณคือ %s' %c) บรรทดั ที 8 print('จบคาํ สงั ') จากตวั อยา่ งที 4 ในบรรทดั ที 3 จะมีเงือนไข b <> 'exit' เพมิ เติม ซึงมีประโยชนส์ าํ หรับการหยดุ การป้อนชืออาหารสุดโปรด โดยการพมิ พค์ าํ วา่ exit แทนชืออาหาร เท่านีการวนทาํ ซาํ ของคาํ สงั while กจ็ ะสินสุดการทาํ งาน พอเห็นตวั อยา่ งที 4 ทาํ ใหน้ ึกถึงเทคนิคการเขียนคาํ สงั การวนทาํ ซาํ ทีเป็นลกั ษณะการวนทาํ ซาํ แบบไม่มีวนั สินสุดหรือ Infinity Repetition โดยใชค้ าํ สงั while ซึงเป็นทีนิยมใชแ้ พร่หลายกบั การเขียนในภาษา Python ลองดูเทคนิคการกาํ หนดเงือนไขในลกั ษณะ Infinity Repetition ตามตวั อยา่ งต่อไปนี ตวั อย่างที 5 การใชค้ าํ สงั while กบั การกาํ หนดเงือนไขในลกั ษณะ Infinity Repetition (ขอ้ ควรระวงั ของตวั อยา่ งนีคือ คุณจะตอ้ ง พิมพช์ ืออาหารจนเมือยมือแน่ๆ เพราะคุณไม่สามารถออกจากคาํ สงั การวนทาํ ซาํ ได)้ บรรทดั ที 1 a = 1 บรรทดั ที 2 c = [] บรรทดั ที 3 while True : บรรทดั ที 4 b = input('%d ป้อนชืออาหารสุดโปรดของคุณ' %a) บรรทดั ที 5 c.append(b) บรรทดั ที 6 a += 1 บรรทดั ที 7 print('อาหารโปรดของคุณคือ %s' %c) บรรทดั ที 8 print('จบคาํ สงั ') จากตวั อยา่ งที 5 บรรทดั ที 3 คาํ สงั while ถูกกาํ หนดเงือนไขดว้ ยค่าประเภทบูลีน (Boolean) ทีเป็นค่าจริง (True) ซึงเป็นรูป แบบการเรียงเงือนไขทีสนั มาก แต่ส่งผลใหก้ ารวนทาํ ซาํ จะกลายเป็นแบบ Infinity Repetition ไปเลย คือ จะทาํ คาํ สงั กลุ่มยอ่ ยในบรรทดั ที 4 และ 5 ทีทาํ หนา้ ทีรันชืออาหารโปรดของคุณและจดั เกบ็ ไวใ้ นตวั แปร c ไปเรือยๆ วธิ ีหยดุ กต็ อ้ งหาทางหยดุ ดว้ ยตวั เอง หรือกด Ctrl + C บางคนสงสยั กบั เทคนิคการเขียนในลกั ษณะ Infinity Repetition จะนาํ ไปใชป้ ระโยชนอ์ ะไรในเชิงการใชง้ าน แถมยงั ไม่สามารถหยดุ โปรแกรมจากคาํ สงั ปกติไดอ้ ีก เรืองแรกมาดูประโยชนข์ องการใชเ้ ทคนิคแบบนี ตามตวั อยา่ งที 5 จะเห็นวา่ กรป้อนชืออาหารและการจดั ค่าลงในตวั แปร c สามารถทาํ ไปเรือยไม่ตอ้ งอยภู่ ายใตข้ อบเขตจาํ นวนรอบของค่าในตวั แปร a เหมือนในตวั อยา่ งที 4 เรืองทีสองของ เทคนิคการเขียนคาํ สงั วนทาํ ซาํ แบบไม่มีวนั สินสุด คือ การหยดุ การวนทาํ ซาํ จากคาํ สงั ทีชือวา่ break (เมือคาํ สงั break ทาํ งานจะเปลียน สถานะเงือนไขของคาํ สงั while จาก True ใหเ้ ป็น False โดยอตั โนมตั ิซึงจะทาํ ใหก้ ารวนทาํ ซาํ ของคาํ สงั while หยดุ กระบวนการทาํ งาน ทนั ที) สาํ หรับการใชค้ าํ สงั break เพือหยดุ การวนทาํ ซาํ ของคาํ สงั while จะเขียนไดต้ ามตวั อยา่ งขา้ งล่างนี

110 บรรทดั ที 1 a=1 บรรทดั ที 2 c = [] บรรทดั ที 3 while True : บรรทดั ที 4 บรรทดั ที 5 d = input('%d ป้อนชืออาหารสุดโปรดของคุณ' %a) บรรทดั ที 6 if d = = 'exit': บรรทดั ที 7 บรรทดั ที 8 break บรรทดั ที 9 c.append(d) บรรทดั ที 10 a += 1 print('อาหารโปรดของคุณคือ %s' %c) print('จบคาํ สงั ')

111 ตวั อยา่ งนี จะแกไ้ ขปัญหาการวนทาํ ซาํ แบบไม่มีวนั สินสุดทีเกิดขึนในตวั อยา่ งที 5 โดยจะเพิมคาํ สงั if เพอื ตรวจสอบค่าใน ตวั แปร b (บรรทดั ที 5) มีการป้อนคาํ วา่ exit เพอื ตอ้ งการหยดุ การวนทาํ ซาํ เกียวกบั การป้อนชืออาหารสุดโปรด ดว้ ยคาํ สงั break ใน บรรทดั ที 6 และเมือไรทีคาํ สงั break ทาํ งานกจ็ ะกระโดดกลบั ไปทีบรรทดั ที 3 ทีเป็นคาํ สงั while พร้อมกบั เปลียนสถานะของเงือนไขใน การวนทาํ ซาํ จาก True ใหเ้ ป็น False เพยี งเท่านีคาํ สงั while กเ็ ลิกทาํ การวนทาํ ซาํ ในกลุ่มคาํ สงั ยอ่ ยภายในทงั หมด (บรรทดั ทีเป็นกลุ่มคาํ สงั ยอ่ ยเริมจากบรรทดั ที 5 ถึง 8) และเริมในคาํ สงั ถดั ไปทีอยใู่ นระดบั เดียวกนั กบั คาํ สงั while คือ บรรทดั ที 9 เป็นตน้ ไป เพือใหเ้ ขา้ ใจ ลกั ษณะการทาํ งานของคาํ สงั การวนทาํ ซาํ ร่วมกบั คาํ สงั break โดยศึกษาจากเสน้ ทางการทาํ งานของคาํ สงั ดงั รูปดา้ นล่างนี ภาพแสดงเส้นทางการทาํ งานของคาํ สังการวนทาํ ซําแบบไม่มวี นั สินสุดและวธิ ีการหยุดการวนทาํ ซําด้วยคาํ สัง break อีกคาํ สงั หนึงทีนิยมนาํ มาใชร้ ่วมกบั คาํ สงั การวนทาํ ซาํ (for และ while) คือ คาํ สงั continue ทีมีรูปแบบการใชง้ านคลา้ ยๆ คาํ สงั break แต่การทาํ งานจะแตกต่างกนั ตรงทีคาํ สงั continue จะตดั ขึนรอบใหม่ของการวนทาํ ซาํ เพอื ใหง้ ่ายต่อการทาํ ความเขา้ ใจการทาํ งาน ของคาํ สงั continue ดูจากรูปดา้ นล่าง ทีเปรียบเทียบการทาํ งานของคาํ สงั การวนทาํ ซาํ ทีไม่มีคาํ สงั continue และทีมีคาํ สงั continue

112 ภาพแสดงเส้นทางการเปรียบเทยี บการทาํ งานของการวนทาํ ซําปกติ และเพมิ คาํ สัง continue ในกล่มุ คาํ สังย่อยของคาํ สังวนทาํ ซํา for

114 สรุปไดว้ า่ คาํ สงั การวนทาํ ซาํ ซึงประกอบดว้ ยคาํ สงั for และ while มีความเหมาะสมต่อการนาํ มาใชก้ บั กลุ่มคาํ สงั ยอ่ ยที ตอ้ งการวนทาํ ซาํ โดยทีคาํ สงั ทงั คู่จะมีความแตกต่างกนั ทีวธิ ีการหยดุ วนทาํ ซาํ ทีมีขอ้ สงั เกตจากลกั ษณะของเงือนไขคู่กบั คาํ สงั วนทาํ ซาํ

115 เช่น เงือนไขกาํ หนดการหยดุ วนทาํ ซาํ ทีชดั เจน สมมุติเริมนบั ตวั เลขจาก 4 ไปจนถึง 20 เพือทาํ คาํ สงั ยอ่ ยเป็นจาํ นวน 17 รอบ เงือนไขแบบ นีเหมาะกบั คาํ สงั for เป็นอยา่ งยงิ แต่ถา้ เงือนไขของการหยดุ วนทาํ ซาํ มีรูปแบบคือ a == 'จบ' หรือ a > 500 หรืออะไรทีมีเครืองหมาย =, >, < ทาํ นองนี ตอ้ งใชค้ าํ สงั while เท่านนั นอกจากนียงั มีคาํ สงั พิเศษทีใชภ้ ายในคาํ สงั for และ while คือ คาํ สงั break และ continue ทีมี รูปแบบการเขียนใชง้ านคลา้ ยกนั คือตอ้ งใชภ้ ายในร่วมกบั กลุ่มคาํ สงั ยอ่ ยของคาํ สงั for และ while เท่านนั ทงั สองคาํ สงั พเิ ศษ (break และ continue) เมือถึงเวลาทาํ งานจะกระโดดไปทีคาํ สงั for หรือ while ทนั ที ทีจุดนีจะแตกต่างกบั ทีคาํ สงั break จะหยดุ การวนทาํ ซาํ และออก จากคาํ สงั for หรือ while ไปทาํ คาํ สงั อืนๆ ภายนอกต่อไป แต่คาํ สงั continue จะเริมรอบใหม่สาํ หรับทาํ งานของกลุ่มคาํ สงั ยอ่ ยภายในของ คาํ สงั for หรือ while ในขณะนนั ต่อไป ทดลองพิมพค์ าํ สงั for ร่วมกบั คาํ สงั พเิ ศษ break และ continue ตามตวั อยา่ งต่อไปนี ตวั อย่างที 6 บรรทดั ที 1 a = ['fc shirts', 'fcskirt', 'fc pants', 'fc hat'] บรรทดั ที 2 brand = [] บรรทดั ที 3 for c in a : บรรทดั ที 4 if 'fc' in c : บรรทดั ที 5 brand.append(c[2:]) บรรทดั ที 6 print('Fashion clothing %s' %c[2:]) บรรทดั ที 7 if 'skirt' in c : บรรทดั ที 8 print('No discounts.!!') บรรทดั ที 9 continue บรรทดั ที 10 elif 'hat' in c : บรรทดั ที 11 print('Waiting to order') บรรทดั ที 12 break บรรทดั ที 13 print('Waiting to order') บรรทดั ที 14 print('ร้านนีขายเสือผา้ แฟชนั %s' %brand) บรรทดั ที 15 print('ทาํ คาํ สงั ต่อไปเลยคะ !!!')

116 จากตวั อยา่ งที 6 จะเป็นการคน้ หาและจดั เกบ็ ยหี อ้ เสือผา้ ลงในตวั แปรทีชือ Brand (ซึงเป็นตวั แปรแบบ Sequence ชนิด List) จากกลุ่มของสินคา้ ทีเกบ็ ไวใ้ นตวั แปร a โดยใชก้ ารวนทาํ ซาํ จากคาํ สงั for ดึงสินคา้ จากตวั แปร a มาทีละ 1 รายการ เพอื จะแจง้ ลูกคา้ ถึง ส่วนลดของราคาสินคา้ 20% ของแต่ละรายการยกเวน้ กระโปรง ทีไม่ส่วนลด (สงั เกตเมือมีการพิมพ์ skirt' จะไม่มีการพมิ พค์ าํ วา่ \"ลด

117 ราคา 20% วนั นีเท่านนั \" เหมือนเสือผา้ อืนๆ เนืองจากมีคาํ สงั continue ในบรรทดั ที 9 ) และการอ่านรายการสินคา้ จากคาํ สงั for จะสินสุด ก่อนความเป็นจริง เนืองจากถา้ พบทีวยี หี อ้ hat (สมมุติวา่ หมวกทีจะขายยงั มาไม่ถึง) จากการตรวจเงือนไขในบรรทดั ที 10 กจ็ ะทาํ การ break ดว้ ยคาํ สงั จากบรรทดั ที 12 เป็นผลใหก้ ารวนทาํ ซาํ ของคาํ สงั for นีหยดุ ลง และกระโดดไปทาํ คาํ สงั ในบรรทดั ที 14, 15 ต่อไป ตวั อยา่ งที 7 การใชค้ าํ สงั while ร่วมกบั break และ continue สมมุติขอ้ มูลรายชือลูกคา้ ทีมีรูปแบบการป้อนขอ้ มูล ดงั นี

121 ลองนึกภาพการใชง้ านโปรแกรมสมคั รสมาชิกร้านกาแฟ ทีในช่องอายขุ องสมาชิกมีความจาํ เป็นตอ้ งกรอกจาํ นวนตวั เลขเท่านนั เพอื นาํ ไปจดั เกบ็ ลงบนั ทึกเขา้ สู่ระบบฐานขอ้ มูล ดูแลว้ กน็ ่าจะเป็นการใชง้ านทีราบรืนตามขนั ตอนการใชง้ านโปรแกรมทวั ไป แต่เผอิญ ผใู้ ชง้ านมนั ถือไปนิด หนึงป้อนเป็นค่า a7 ลงในช่องอายุ ลูกคา้ กร็ ีบๆ เพลงใหผ้ ใู้ ชง้ านรีบทาํ งานใหเ้ สร็จผใู้ ชง้ าน จึงไม่ไดต้ รวจสอบ ความถูกตอ้ งของขอ้ มูลทีกรอกไวบ้ นจอภาพก่อนทาํ การบนั ทึกลงในฐานขอ้ มูล คิดดูวา่ อะไรจะเกิดขึนกบั ขอ้ มูลในช่องอายทุ ีตอ้ งเป็น ตวั เลข ถา้ โปรแกรมเมอร์เขียนโปรแกรมไวด้ ี กจ็ ะมีการตรวจสอบขอ้ มูลตามช่องกรอกขอ้ มูลวา่ ถูกตอ้ งหรือเปล่า แลว้ แจง้ เตือนผใู้ ช้ งานใหแ้ กไ้ ขใหถ้ ูกตอ้ งจะเห็นวา่ พนื ฐาน 1 ในการเขียนโปรแกรมไม่วา่ จะเขียนดว้ ยภาษาใดหรือแมแ้ ต่ภาษา python กจ็ ะตอ้ งมีคาํ สงั ตรวจสอบเงือนไขเพือนาํ มาใชแ้ กไ้ ขปัญหา ตามทียกตวั อยา่ งโปรแกรมร้านกาแฟกบั การป้อนอายุ เป็นตน้ ซึงส่วนใหญ่คาํ สงั ตรวจ เงือนไขมกั จะใชเ้ ป็นคาํ สงั If ( If statement) โดยจะมีวธิ ีการเขียนตามรูปแบบดงั นี คาํ วา่ “เงือนไข” ทีเห็นในรูปแบบของคาํ สงั if (ซึงส่วนใหญ่ Python จะเรียกวา่ Comparson) ขา้ งตน้ พดู ง่ายๆ กค็ ือการเปรียบ เทียบสิงทีตอ้ งการตรวจสอบนนั เอง เช่น ค่าในช่องอายุ == ตวั เลขอยา่ งเดียว (จากตวั อยา่ งทีเล่าเรืองในตอนตน้ ของบทนี เมือตอ้ งการ สร้างเงือนไขสาํ หรับการตรวจสอบช่องอาย)ุ หรือตอ้ งการตรวจค่าในตวั แปร a มีค่าตวั เลขเกิน 1500 หรือเปล่า วธิ ีเขียนเงือนไขเพือ ตรวจสอบคือ a > 1500 ลงในคาํ สงั if หลงั จากการทดสอบตามเงือนไขทีระบุ คาํ สงั if จะบอกผลลพั ธ์ทีไดเ้ ป็น 2 ลกั ษณะ คือ 1. ผลลพั ธ์เป็นไปตามเงือนไขหรือค่าทีเป็นจริง (True) 2. ผลลพั ธ์ไม่ตรงกบั เงือนไขทีตรวจสอบหรือไดผ้ ลเป็นเทจ็ (False)

122 แสดงการทดสอบเงือนไขของตาํ สงั if และชุดคาํ สงั ทีตอ้ งทาํ งานเมือเงือนไขเป็นจริง แสดงเสน้ ทางการทดสอบเงือนไขทีเป็นเทจ็ และเริมกระบวนการทาํ งาน ในชุดคาํ สงั หลงั คาํ สงั else ซึงเป็นพืนทีของกลุ่มคาํ สงั เมือการทดสอบเป็นเทจ็ เมือมองดูรูปแบบการสร้างเงือนไขเช่น a > 4 จะมีการใชเ้ ครืองหมายทางดา้ น Operator สาํ หรับการเปรียบเทียบ (comparison มา ประกอบร่วมกบั ค่าขอ้ มูลทีตอ้ งการเปรียบเทียบในทีนีคือตวั แปรและตวั เลข 4 สาํ หรับการตรวจสอบเงือนไขวา่ ค่าในตวั แปร a มากกวา่ ค่าตวั เลข 4 หรือไม่) ลกั ษณะของการเลือกใชเ้ ครืองหมาย Operator สาํ หรับการเปรียบเทียบเงือนไขแบ่งออกเป็น 4 รูปแบบดงั นี 1. เครืองหมายสาํ หรับเปรียบเทียบหาค่าขอ้ มูลทีเท่ากนั ( Equality comparison operation) เช่น a == 10, B == c ฯลฯ จะใช้ เครืองหมายเท่ากบั ( แต่เขียน 2 ครังติดกนั ตามตวั อยา่ ง)ในการสร้างเงือนไข 2. เครืองหมายในการเปรียบเทียบค่าขอ้ มูลทีไม่เท่ากนั (Not Equality comparison operation) จะใช้ != รวมกบั ค่าขอ้ มูลทีตอ้ งการ เปรียบเทียบเช่น a != 10 (ค่าขอ้ มูลในตวั แปร a ไม่เท่ากบั ค่าตวั เลข 10 ใช่หรือไม่เป็นตน้ 3. เครืองหมายเปรียบเทียบค่าขอ้ มูลมากกวา่ หรือนอ้ ยกวา่ (Greater Than and Less Than Comparison Operation) ใชเ้ ครืองหมาย > (มากกวา่ ), < (นอ้ ยกวา่ ), >= (มากกวา่ หรือเท่ากบั ), <= (นอ้ ยกวา่ หรือเท่ากบั ) 4. Not กบั การทาํ หนา้ ทีในการเปรียบเทียบ (Not Comparition operation) โอเปอเรเตอร์นีเหมาะกบั การนาํ มาใชง้ านกบั ค่าขอ้ มูลที เป็น True หรือ False ดว้ ยการทาํ งานของ โอเปอเรเตอร์ not จะเปลียนค่าขอ้ มูลไปในทางตรงกนั ขา้ ม เช่น ถา้ ค่าในตวั แปร A มีค่าเป็น True เมือนาํ โอเปอเรเตอร์ not มาใชก้ บั ตวั แปร a หรือ not a ผลลพั ธ์จะไดค้ ่า false ดว้ ยเหตุนีถา้ ขอ้ มูลทีจะนาํ มาใชก้ บั โอเปอเรเตอร์ not ตอ้ งมี สถานะเสมอคือ True และfalse จะเห็นไดว้ า่ ลกั ษณะการใชโ้ อเปอเรเตอร์การเปรียบเทียบของภาษา Python จะมีการใชง้ านเหมือนภาษาโปรแกรมอืนๆ ตาม มาตรฐานทวั ไปจึงง่ายต่อการเรียนรู้รูปแบบการเขียนและการทาํ งาน ตารางสรุปการใช้เครืองหมายโอเปอเรเตอร์เปรียบเทยี บ โอเปอเรเตอร์ ความมาย ตวั อย่าง ผลลพั ธ์ A == 10 จะไดค้ ่า True กต็ ่อเมือตวั แปร A มีค่า == เท่ากบั A>3 เป็น 10 เท่านนั A >= 3 ถา้ ค่าขอ้ มูลในตวั แปร A มีค่าตงั แต่ 4 > มากกวา่ ขึนไปจะไดผ้ ลลพั ธ์เป็น True ผลลพั ธ์จะเป็น True ตงั แต่ค่าในตวั แปร >= มากกวา่ หรือเท่ากบั มีค่าเป็น 3 ขึนไป

< นอ้ ยกวา่ A < 2 จะเป็น True เมือค่าขอ้ มูลในตวั แปร A 123 มีค่าเป็น 1 หรือนอ้ ยกวา่ 1 เสมอ <= นอ้ ยกวา่ หรือเท่ากบั A <= 2 เมือไรค่าขอ้ มูลในตวั แปร A มีค่าเป็น 2 != ไม่เท่ากบั A != 10 จะไดผ้ ลลพั ธ์เป็น True ตราบใดทีค่า ขอ้ มูลใน A ไม่เท่ากบั 10 not ตรวจค่าตรงกนั ขา้ ม Not A ระหวา่ ง True กบั False ทดลองเขียนคาํ สงั และสงั เกตผลลพั ธ์ทีไดจ้ ากการทาํ งานตามตวั อยา่ งต่อไปนีใน Python Shell

128 หลงั จากทาํ ความเขา้ ใจการกาํ หนดเงือนไขดว้ ย Operator ดา้ นการเปรียบเทียบ เมือตอ้ งนาํ มาประกอบการเขียนร่วมกบั คาํ สงั if โดยผลลพั ธ์ของคาํ สงั if มี 2 สถานะเมือตรวจสอบตรงตามเงือนไขจะไดส้ ถานะเป็น True และไดส้ ถานะเป็น false เมือการตรวจสอบ ไม่ตรงตามเงือนไขซึงจะมีการระบุการกระทาํ สาํ หรับแต่ละสถานะของผลลพั ธ์ตามโครงสร้างของคาํ สงั if แต่งรูปแสดงเสน้ ทางการ กระทาํ ของผลลพั ธ์ทีเกิดจากการตรวจสอบเงือนไข (ภายใตโ้ ครงสร้างของคาํ สงั if จะมีวธิ ีกาํ หนดพืนทียอ่ ยโดยแบ่ง indent ของคาํ สงั ยอ่ ย การเขา้ ถึงพืนทีของกลุ่มคาํ สงั ยอ่ ยภายใตค้ าํ สงั if ซึงจะแบ่งออกเป็น 2 พนื ทีคือพืนทีของกลุ่มคาํ สงั ยอ่ ย เมือผลลพั ธ์ของการตรวจ สอบเงือนไข มีสถานะเป็นจริง (True) และพืนทีของกลุ่มคาํ สงั ยอ่ ยทีจะทาํ งานได้ กต็ ่อเมือผลการตรวจสอบเงือนไขไม่ตรงตามที กาํ หนดของเงือนไข หรือไดส้ ถานะเป็นเทจ็ (False) เมือตอ้ งนาํ คาํ สงั if มาใชร้ ่วมกบั การเขียนโปรแกรม python จะมีรูปแบบทีนกั พฒั นาโปรแกรมนิยมเขียนอยู่ 4 รูปแบบ ตาม เหตุการณ์ของการตรวจสอบเงือนไขดงั นีทีมนั คิด 1. การใชค้ าํ สงั if ตรวจสอบเงือนไขและทาํ งานกลุ่มคาํ สงั ยอ่ ย เมือการตรวจสอบเงือนไขเป็นจริง (True) เท่านนั 2. การใชค้ าํ สงั if ร่วมกบั elif สาํ หรับตรวจสอบเงือนไขและทาํ กลุ่มคาํ สงั ยอ่ ย เมือผลลพั ธ์การตรวจสอบเป็นจริง (True) เท่านนั 3. การใชค้ าํ สงั if ทีมีลกั ษณะการตรวจสอบเงือนไขแบบสอนกนั (Nested) 4. การใชค้ าํ สงั If ร่วมกบั คาํ สงั else

129 ทดลองพมิ พก์ ารใช้ if ตามรูปแบบที 1 ลงในโมดูลของ Python (ใน Python shell เลือกเมนู file คลิกเมนูยอ่ ยทีชือวา่ New เพือเปิ ด โมดูลของ Python) a = {'STV50' : 'TV SONY 50 นิว', 'LG100' : 'TV LG', 'SCD' : 'VCD SONY', 'TDVD' : 'SAMSUNG DVD'} b = input('ป้อนรหสั สินคา้ TV SONY') if a[b] == 'TV SONY 50 นิว' : print('ยงั มีสินคา้ TV SONY ในโกดงั 10 เครือง') print('\

ตอ้ งการเบิกติดต่อฝ่ ายคลงั ')

130 b = input('ป้อนรหสั สินคา้ VCD SONY :') if a[b] == 'VCD SONY' : print('สินคา้ อยรู่ ะหวา่ งจดั ส่งมายงั โกดงั ') print('\

อีก 2 วนั จะมาถึง สามารถส่งของ') print('\

ล่วงหนา้ ไดเ้ ลย') มีรูปแบบการเขียน ดงั นี a = 10 if a == 10: ทาํ คาํ สงั ยอ่ ยในพนื ทีนีเมือค่าในตวั แปร a มีค่าเท่ากบั 10 elif a == 100: ทาํ คาํ สงั ยอ่ ยในพนื ทีนีเมือค่าของตวั แปร a มีค่าเท่ากบั 100 eif a > 200: ทาํ คาํ สงั ยอ่ ยในพนื ทีนีเมือค่าของตวั แปร a มีค่ามากกวา่ หรือเท่ากบั 200 elif a < = 0 : ทาํ คาํ สงั ยอ่ ยในพนื ทีนีเมือค่าในตวั แป a นอ้ ยกวา่ หรือเท่ากบั 0 ถา้ หากมีโจทยท์ ีตอ้ งการตรวจค่าในตวั แปร a โดยมีเงือนไขและการกระทาํ เมือการตรวจสอบเงือนไขเป็นจรองทีแตกต่างกนั ดงั เช่นตวั อยา่ งขา้ งตน้ การตรวจสอบค่าในตวั แปร a จะมีถึง 4 ครัง สงั เกตจากการใชค้ าํ สงั if และ elif ตรวจสอบเงือนไขและมีการทาํ งาน

131 ของกล่มคาํ สงั ยอ่ ยของใครของมนั เมือผลลพั ธ์การตรวจสอบมีสถานะเป็นจริง จาํ นวนของคาํ สงั if + elif กค็ ือ จาํ นวนของความ ตอ้ งการทีตรวจสอบค่าในตวั แปร a นนั เอง เส้นทางลาํ ดบั การตรวจสอบค่าในตวั แปร a เส้นทางลาํ ดบั การตรวจสอบค่าในตวั แปร a เมือผลการทดสอบเป็ นเทจ็ ทงั หมด เมือผลการทดสอบเป็ นจริง a = 9 if a == 10: a = 100 if a == 10: print('a มีค่าเป็น 10 จริง') print('a มีค่าเป็น 10') elif a == 100: elif a == 100: print('a มีค่า') print('a มีค่า 100') elif a >= 200: elif a >= 200: print('มีค่ามากกวา่ 200') print('a มีค่ามากกวา่ 200') print('จบขนั ตอนการตรวจค่า a') print('จบการทดสอบ') print('ทาํ คาํ สงั อืนๆ ต่อไป') print('ทาํ คาํ สงั อืนๆ ') ดา้ นซา้ ยแสดงลกั ษณะการทาํ งานของรูปแบบการเขียนคาํ สงั if + elif เมือผลลพั ธ์การตรวจสอบเป็นเทจ็ ทงั หมด และทางดา้ นขวา แสดง การทาํ งานเมือการตรวจสอบค่าในตวั แปร a มีผลลพั ธ์การตรวจสอบมีสถานะเป็นจริง และไดม้ ีการกระทาํ ของกลุ่มคาํ สงั ยอ่ ย ของคาํ สงั if หรือ elif นนั เพอื ใหง้ ่ายต่อการทาํ ความเขา้ ใจจึงกาํ หนดลาํ ดบั การตรวจสอบในแต่ละคาํ สงั if และ elif ตามเงือนไขทีกาํ หนดไว้ โดยโครงสร้าง การเขียนจะเริมตน้ ดว้ ยคาํ สงั ตรวจสอบแรกสุดคือ คาํ สงั if และเมือตอ้ งเพิมคาํ สงั ตรวจสอบถดั ไปใหใ้ ชค้ าํ สงั elif จึงจะถือวา่ เป็นคาํ สงั ตรวจสอบตามรูปแบบในหวั ขอ้ ที 2 นี ทดลองการใชค้ าํ สงั if + elif ลงในโมดูลของ Python (บนจอภาพ Python Shell เลือกเมนู file เลือกเมนูยอ่ ย New เพอื ทาํ การเปิ ด Python โมดูล)

132 การเขียนคาํ สงั if แบบ Nested ฟังดูแลว้ น่าจะเป็นการเขียนอะไรทีตอ้ งแปลกแตกต่างจากรูปแบบการเขียนคาํ สงั ในขอ้ ที 1 และ 2 อยา่ งแน่นอน แต่ความเป็นจริงกค็ ือ การเขียนคาํ สงั แบบ Nested เป็นการใชค้ าํ สงั if ซอ้ นภายในกลุ่มคาํ สงั ยอ่ ยของคาํ สงั if แรกเท่านนั เอง ประโยชนข์ องการเขียนคาํ สงั if แบบ Nested กเ็ พือทีจะมีการตรวจสอบเงือนไขยอ่ ยลึกลงไป ยกตวั อยา่ ง หากคาํ ในตวั แปร a มี ขอ้ มูลเกียวกบั ทีวโี ซนี (TV Sony), ทีวแี อลจี(TV LG), ทีวโี ตชิบา(TV Toshiba), ทีวซี มั ซุง(TV Samsung), วซี ีดีโซนี(VCD Sony), วซี ีดี แอลจี(VCD LG) เป็นตน้ เราจะใชค้ าํ สงั if สาํ หรับการตรวจสอบเงือนไข สาํ หรับการแบ่งประเภทของขอ้ มูลในตวั แปร a ออกเป็น 2 ประเภท หรือ 2 คาํ สงั if ประกอบดว้ ย ประเภททีวแี ละประเภทวซี ีดี ตามรูปแบบการเขียนคาํ สงั ต่อไปนี การใชค้ าํ สงั if ตรวจสอบเงือนไขเพือแยกประเภทของขอ้ มูลในตวั แปร a นบั เป็นการกรองขอ้ มูลชนั ที 1 ดว้ ยคาํ สงั if คราวนีลอง มาเพิมการตรวจสอบเงือนไขยอ่ ยดว้ ยคาํ สงั if เพมิ ลงในพนื ทีกลุ่มคาํ สงั ยอ่ ยของแต่ละคาํ สงั if ในชนั ที 1 เพือตรวจสอบค่าขอ้ มูลเฉพาะ ยกตวั อยา่ ง ตอ้ งการตรวจสอบหาค่าในตวั แปร a ทีตรงกบั คาํ วา่ ‘tv lg’ โดยทีค่าดงั กล่าวจะตรงกบั a[1] (เนืองดว้ ยตวั แปร a เป็นชนิด Sequence แบบ List ซึงตอ้ งใชห้ มายเลขอา้ งอิงขอ้ มูลภายในของตวั แปร a อ่านรายละเอียดตวั แปรชนิดนีไดใ้ นบทที 3) ซึงจะมีรูปแบบ การเขียนคาํ สงั if เพิมเติมซอ้ นลงในกลุ่มคาํ สงั ยอ่ ยของคาํ สงั if ในชนั ที 1 ดงั ต่อไปนี

133 จากรูปแบบการเขียนคาํ สงั ทีเห็นในตวั อยา่ ง จะใชค้ าํ สงั if ซอ้ นกนั เป็นชนั ๆ โดยการตรวจสอบเงือนไขจะมีลาํ ดบั จากคาํ สงั if ชนั ที 1 ซึงประกอบดว้ ย a[1][:2] == 'vcd' ภายใตเ้ งือนไขแรกคือ a[1][:2] == 'tv' หรือการตรวจขอ้ มูลสาํ หรับกลุ่มทีวี จะมีคาํ สงั if ยอ่ ยเป็น ชนั ที 2 อีก 4 คาํ สงั สาํ หรับการตรวจสอบเฉพาะค่าขอ้ มูลของตวั แปรจริง เช่น ค่าใน b (ซึงรับค่าโอนถ่ายมาจากตวั แปร a[1]) มีค่าเท่ากบั 'tv lg' ใช่หรือไม่ ถา้ ใช่กท็ าํ คาํ สงั ยอ่ ยของคาํ สงั if b == 'tv lg' คือทาํ คาํ สงั print('ค่าในตวั แปร b คือ tv lg') ตามรูปแบบการใชค้ าํ สงั if ดงั ทีอธิบายไวเ้ ป็นวธิ ีการใชค้ าํ สงั if แบบ Nested สาํ หรับการตรวจสอบเงือนไขในเชิงลึก

134 ทดลองพิมพก์ ารใชค้ าํ สงั if แบบ Nested ลงในโมดูลของ Python

135 พนื ฐานการทาํ งานของคาํ สงั if มีหนา้ ทีตรวจสอบเงือนไขตามทีกาํ หนด และตอ้ งมีการตอบสนองต่อผลลพั ธ์ของการตรวจสอบ เงือนไข ในพืนทีกลุ่มคาํ สงั ยอ่ ย เมืองเงือนไขเป็นไปตามทีกาํ หนดหรือมีสถานะทีเป็นจริง (True) แต่ถา้ หากตอ้ งการเพิมพืนทีกลุ่มคาํ สงั ยอ่ ย กรณีผลลพั ธ์ของการตรวจสอบเงือนไขไม่ตรงตามทีกาํ หนดหรือมีสถานะเป็นเทจ็ (False) รูปแบบการเขียนคาํ สงั ในกรณีนี จาํ เป็นตอ้ งเพิมคาํ สงั else ใหก้ บั คาํ สงั if แสดงรูปแบบการเขียนและลกั ษณะการทาํ งานของคาํ สงั if และ else ทดลองพิมพค์ าํ สงั if และคาํ สงั else สาํ หรับการตรวจสอบเงือนไขลงในโมดูลของ Python

137 การกาํ หนดเงือนไขมากกวา่ 1 เงือนไขใหก้ บั คาํ สงั if ถา้ หากตอ้ งการสร้างเงือนไขตรวจค่าขอ้ มูลทีอยใู่ นตวั แปร A ซึงเป็นขอ้ มูล ชนิดตวั เลขจาํ นวนเตม็ ทีมีค่าตวั เลขอยใู่ นช่วง 37 ถึง 76 จะมีวธิ ีการสร้างเงือนไขเพือนาํ ไปตรวจสอบและคาํ สงั if ถึง 2 เงือนไขโดย เงือนไขแรกจะตรวจดูค่าตวั เลขในตวั แปร A ทีมีค่ามากกวา่ หรือเท่ากบั ตวั เลข 37 ( มีรูปแบบการเขียนเพอื นาํ ไปใชใ้ นงานคือ a >= 37 และเงือนไขที 2 จะตรวจค่าตวั เลขของตวั แปร A ทีนอ้ ยกวา่ หรือเท่ากบั ตวั เลข 76 (มีรูปแบบของการเขียนเงือนไขสาํ หรับนาํ ไปใชใ้ น คาํ สงั if ดงั นี a <= 76) ซึงในการตรวจสอบดว้ ยคาํ สงั if จาํ เป็นตอ้ งนาํ เงือนไขแลกมาผกู ร่วมกบั เงือนไขที 2 จึงจะทาํ ใหก้ ารตรวจสอบ เงือนไขไดต้ ามจุดทีตงั ขึน สิงทีน่าสนใจคือการผกู เงือนไขทงั 2 เขา้ ดว้ ยกนั ใหท้ าํ งานผสมผสานกนั เป็นอยา่ งดีโดยอาศยั การใช้ Combining Operator ซึงประกอบดว้ ย and และ or โอเปอเรเตอร์ทีทาํ หนา้ ทีผกู เงือนไขของคาํ สงั if เขา้ ดว้ ยกนั มี 3 รูปแบบดงั นี 1. รูปแบบการเขียนคาํ สงั if ร่วมกบั and operator 2. รูปแบบการเขียนคาํ สงั if ร่วมกบั or operator 3. รูปแบบการเขียนคาํ สงั if ร่วมกบั and และ or operator บรรทดั ที 1 a = 5 บรรทดั ที 2 if a >= 2 and a <= 7: บรรทดั ที 3 print('ตวั เลขอยใู่ นช่วง 2 ถึง 7 เท่านนั ') บรรทดั ที 4 print('ทาํ เรืองอืนต่อไป') จากการใชโ้ อเปอเรเตอร์ and ในบรรทดั ที 2 แสดงใหเ้ ห็นการทดสอบเงือนไขแรกสุดคือ a >= 2 และเงือนไข a <= 7 โดยจะนาํ ผลลพั ธ์ของทงั สองเงือนไขมาเทียบคุณสมบตั ิของ and operator (คุณสมบตั ิของการ and operator จะไดผ้ ลลพั ธ์เป็นจริง (True) กต็ ่อ เมือผลลพั ธ์ของทงั สองเงือนไขเป็นจริง (True) เท่านนั ) จากตวั อยา่ งคาํ สงั ในบรรทดั ที 2 ตวั แปร a มีค่า 5 เมือนาํ มาตรวจสอบกบั

138 เงือนไขที 1 คือ a >= 2 หรือแทนค่า 5 ทีตวั แปร a ของเงือนไขแรกจะได้ 5 >= 2 แน่นอนผลลพั ธ์ของเงือนไขนีเป็นจรอง (True) เช่น เดียวกบั เงือนไขที 2 คือ a <= 7 แทนค่า 5 ทีตวั แปร a ในเงือนไขจะได้ 5 <= 7 ซึงผลลพั ธ์ทีไดจ้ ากการตรวจสอบเงือนไขที 2 กเ็ ป็นจริง (True) เช่นกนั เมือนาํ ผลลพั ธ์ของทงั สองเงือนไขมาใชร้ ่วมกบั and ภายใตค้ าํ สงั if ส่งผลใหก้ ารตรวจสอบเงือนไขทงั หมดเป็นไปตามทีกาํ หนด หรือมีสถานการณ์ตรวจสอบเป็นจริง (True) ในทีนีคาํ สงั ถดั ไปหลงั การตรวจสอบเงือนไขกค็ ือ คาํ สงั print บรรทดั ที 3 นนั เอง เทคนิคการเขียน and operator ร่วมกบั คาํ สงั if ใน Python บางรูปแบบจะมีลกั ษณะดงั ต่อไปนี รูปแบบคาํ สงั if ร่วมกบั and ปกติ if a >= 2 and a <= 7 รูปแบบคาํ สงั if ร่วมกบั and operator วธิ ีลดั if 2 >= a <= 7 : บรรทดั ที 1 a, b = 5, 10 บรรทดั ที 2 if a == 5 or b == 2: บรรทดั ที 3 print('ค่าในตวั แปร a คือ 5 หรือค่าในตวั แปร b มีค่าเป็น 2 เท่านนั ') บรรทดั ที 4 print('ทาํ คาํ สงั อืนต่อไป') โอเปอเรเตอร์ or จะถูกนาํ มาใชร้ ่วมกบั การตรวจสอบเงือนไขภายใตค้ าํ สงั if กต็ ่อเมือตอ้ งการใหผ้ ลลพั ธ์ของเงือนไขใดเงือนไข หนึงเป็นจริง (True) ซึงเท่านีกส็ ่งผลใหก้ ลุ่มคาํ สงั ยอ่ ยทีจะทาํ งาน เมือผลลพั ธ์มีค่าเป็นจริง (True) เกิดการทาํ งาน ยกตวั อยา่ งตาม บรรทดั ที 2 ค่าในตวั แปร a คือ 5 และค่าของตวั แปร b ทีมีค่า 10 เมือนาํ ค่าในตวั แปร a มาตรวจสอบเงือนไข จะมีสถานะเป็นจริง (True) ตามเงือนไขกาํ หนดไวใ้ นขณะทีการตรวจสอบเงือนไขที 2 ผลลพั ธ์ทีไดจ้ ากการตรวจสอบจะมีสถานะเป็นเทจ็ (False) เนืองจาก ค่าในตวั แปร b ไม่ตรงตามเงือนไขทีกาํ หนดไว้ เมือนาํ ผลลพั ธ์ของทงั 2 เงือนไขมาใชก้ บั โอเปอเรเตอร์ or ในบรรทดั ที 2 นีจะทาํ ใหก้ าร ตรวจสอบของคาํ สงั if นีมีสถานะเป็นจริงหรือ True (เนืองจากผลลพั ธ์การตรวจสอบเงือนไขแรกสุดมีสถานะเป็นจริง) ซึงจะทาํ คาํ สงั ต่อไปในบรรทดั ที 3 ทีอยใู่ นพนื ทีกลุ่มคาํ สงั ยอ่ ยของคาํ สงั if บรรทดั ที 1 a, b = 5, 10 บรรทดั ที 2 if a >= 2 and a <= 7 or b == 10: บรรทดั ที 3 print('ค่าของตวั แปร a อยใู่ นช่วง 2 ถึง 7') บรรทดั ที 4 print('หรือค่าในตวั แปร b มีค่าเท่ากบั 10') บรรทดั ที 5 print('ทาํ คาํ สงั อืนต่อไป') การใชค้ าํ สงั if สาํ หรับการตรวจสอบเงือนไขทีจาํ นวนของเงือนไขอาจจะมีมากกวา่ 1 เงือนไข จึงมีความจาํ เป็นทีจะตอ้ งผกู เงือนไขเขา้ กบั การใช้ and หรือ or Operator ทงั นีตอ้ งคาํ นึงถึงคุณสมบตั ิการทาํ งานของ operator ทีนาํ มาใชส้ าํ หรับการผกู เงือนไขบาง กรณีจาํ นวนเงือนไขมีมากกวา่ 2 เงือนไขจาํ นวนของ operator ทีจะนาํ มาผกู เงือนไขกจ็ ะมีมากขึนอีกทงั ยงั สามารถใช้ Operator ทงั สอง ชนิดผสมผสานในการตรวจสอบภายใตค้ าํ สงั is เดียวตามตวั อยา่ งการใชค้ าํ สงั บรรทดั ที 2 จะเห็นไดว้ า่ มีจาํ นวนเงือนไขถึง 3 เงือนไข ภายใตก้ ารตรวจสอบของคาํ สงั If โดยทีโจทกถ์ ูกกาํ หนดใหเ้ งือนไขที 1(a >= 2) และเงือนไขที 2 (a <= 7) จาํ เป็นตอ้ งผา่ นตามกาํ หนด หรือมีผลสถานะการตรวจสอบเงือนไขเป็นจริง (True) ทงั คู่ความเหมาะสมต่อการใช้ Operator กต็ อ้ งเลือก and operator มาผกู เงือนไข ที 1 และ 2 เขา้ ดว้ ยกนั จึงจะถูกตอ้ งตามความตอ้ งการของโจทยใ์ นหวั ขอ้ นีสาํ หรับเงือนไขที 3 (b == 10 )ถา้ ผลลพั ธ์การตรวจสอบ เงือนไขเป็นจริง(True) คาํ สงั if กจ็ ะสงั ใหป้ ่ ุมคาํ สงั ยอ่ ยในพนื ทีทีสถานการณ์ตรวจสอบเป็นจริง(True) หรือตรงตามทีเงือนไขกาํ หนด ใหท้ าํ งานไดท้ นั ที

139 เป็นทีน่าสงั เกตสาํ หรับการทาํ งานของเงือนไขที 3 (b == 10 ) ทีมีความเป็นอิสระในการตรวจสอบของคาํ สงั if โดยไม่ตอ้ งไปยงุ่ กบั เงือนไขอืนๆ ในคาํ สงั if นี Combining Operator ควรจะใชก้ บั การทาํ งานของเงือนไขทีมีความเป็นอิสระแบบนีกค็ ือ or operator พิมพค์ าํ สงั ต่อไปนีสาํ หรับทดลองการใช้ Combining Operator ร่วมกบั คาํ สงั if โดยเขียนคาํ สงั ลงในโมดูลของ python ( ทีจอภาพ ของ Python Shell เลือกเมนู file และเลือกเมนูยอ่ ยทีชือ New เพอื กาํ หนดเปิ ดโมดูล python) การทดลองในตวั อยา่ งนีเป็นการใชโ้ อเปอเรเตอร์ and สาํ หรับตรวจสอบค่าในตวั แปร username และ password เพือเขา้ สู่การใช้ งานในระบบตามลาํ ดบั โดยทีการลอ็ กอินเขา้ สู่ระบบจะสาํ เร็จกต็ ่อเมือชือผใู้ ชง้ านเป็น admin และรหสั ผา่ นเป็นคาํ วา่ 1234

140 ลองใชโ้ อเปอเรเตอร์ or สาํ หรับตรวจค่าผลไมท้ ีตอ้ งการป้อนเกบ็ ไวใ้ นตวั แปร a (เป็นตวั แปร Sequence แบบ List เป็นจาํ นวน 4 ชนิด จากนนั กท็ าํ การทดสอบความจาํ โดยการเลือกพมิ พช์ ือผลไมท้ ีเคยป้อนเกบ็ ไว้ 1 ชนิดจากทงั หมด 4 ชนิด

141 การทดลองสมมติใหใ้ ชอ้ ีเมลข์ องผใู้ ช้ login เขา้ สู่ระบบโดยตรวจสอบรูปแบบของการเขียนอีเมลจ์ ากค่าในตวั แปรเอ ดว้ ยการ สงั เกตเครืองหมาย @ และ . ทีเป็นองคป์ ระกอบของชืออีเมลด์ ว้ ยเงือนไขที 1 ('@' in a ) และเงือนไขที 2 ('.' in a ) เทคนิคการเขียนคาํ สงั ดว้ ยการใช้ in ซึงทาํ หนา้ ทีคน้ หาตวั อกั ษรเครืองหมายหรือค่าทีตอ้ งการคน้ หา ฯลฯ ผลลพั ธ์จากการคน้ หาดว้ ยคาํ สงั in ถา้ ไม่เจอจะ ใหค้ ่าเทจ็ (False) และใหค้ ่าทีเป็นจริง (True) เมือเจอสิงทีตอ้ งการคน้ หาจากค่าในตวั แปรโจทยข์ องการตรวจสอบรูปแบบของ e mail คือเงือนไขที 1 ('@' in a) และเงือนไขที 2 ('.' in a) จาํ เป็นตอ้ งผกู กนั ดว้ ย operator an เพราะตอ้ งการผลลพั ธ์ทีมีสถานะจริง (True) ทงั คู่ เสมอในขณะเดียวกนั โจทกก์ ย็ งั ตงั เงือนไขพเิ ศษสาํ หรับการ login เขา้ สู่ระบบในเงือนไขที 3 (a == 'admin') ทีมีความเป็นอิสระจาก เงือนไขอืนในคาํ สงั if นีนนั คือ Operator ทีเหมาะสมสาํ หรับเงือนไขที 3 กค็ ือ or

146 คาํ อธิบายรายวชิ า หลกั สูตรเทคโนโลยี วทิ ยาการคาํ นวณ กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ ชันมธั ยมศึกษาปี ที 1 ภาคเรียนที 2 เวลา 40 ชัวโมง ศึกษาแนวคิดเชิงนามธรรม การคดั เลือกคุณลกั ษณะทีจาํ เป็นต่อการแกป้ ัญหา ขนั ตอนการแกป้ ัญหา การเขียนรหสั ลาํ ลองและผงั งาน การเขียนออกแบบ และเขียนโปรแกรมอยา่ งง่าย ทีมีการใชง้ านตวั แปร เงือนไข และการวนซาํ เพือแกป้ ัญหาทางคณิตศาสตร์ หรือ วทิ ยาศาสตร์ การรวบรวมขอ้ มูลปฐมภูมิ การประมวลผลขอ้ มูล การสร้างทางเลือกและ ประเมินผลเพอื ตดั สินใจซอฟตแ์ วร์และ บริการบน อินเตอร์เน็ตทีใชใ้ นการจดั การขอ้ มูล แนวทางการใชง้ านเทคโนโลยสี ารสนเทศใหป้ ลอดภยั การจดั การอตั ลกั ษณ์ การพจิ รณาความเหมาะ สมของเนือหา ขอ้ ตกลงและขอ้ กาํ หนดการใชส้ ือและแหล่งขอ้ มูล นาํ แนวคิดเชิงนามธรรมและขกั ตอนการแกป้ ัญหา ไปประยกุ ตใ์ ชใ้ นการเขียนโปรแกรม หรือการแกป้ ัญหาในชีวติ จริง รวบรวม ขอ้ มูล และสร้างทางเลือก ในการตดั สินใจไดอ้ ยา่ งมีประสิทธิภาพและตระหนกั ถึงการใชง้ าน เทคโนโลยสี ารสนเทศอยา่ งปลอดภยั เกิด ประโยชนต์ ่อการเรียนรู้ และไมาสร้างความเสียหายใหแ้ ก่ผอู้ ืน ตวั ชีวดั ว. 4.2 เทคโนโลยี (วทิ ยาการคาํ นวณ) 1. ออกแบบอลั กอริทึมทีใชแ้ นวคิดเชิงนามธรรมเพือแกป้ ัญหา หรืออธิบายการทาํ งานทีพบในชีวติ จริง 2. ออกแบบและเขียนโปรแกรมอยา่ งง่าย เพือแกป้ ัญหาทางคณิตศาสตร์ หรือวทิ ยาศาสตร์ 3. รวบรวมขอ้ มูลปฐมภูมิ ประมวลผล ประเมินผล นาํ เสนอขอ้ มูลและสารสนเทศ ตามวตั ถุประสงค์ โดยใชซ้ อฟตแ์ วร์หรือบริการ บนอินเทอร์เน็ตทีหลากหลาย 4. ใชเ้ ทคโนโลยสี ารสนเทศอยา่ งปลอดภยั ใชส้ ือและแหล่งขอ้ มูลตามขอ้ กาํ หนดและขอ้ ตกลง รวมทงั หมด 4 ตวั ชีวดั

147 ตวั ชีวดั และสาระการเรียนรู้ หลกั สูตรเทคโนโลยี วทิ ยาการคาํ นวณ กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ ชันมธั ยมศึกษาปี ที 1 ภาคเรียนที 2 เวลา 40 ชัวโมง สาระที 4 เทคโนโลยี มาตรฐาน ว. . เขา้ ใจและใชแ้ นวคิดเชิงคาํ นวณในการแกป้ ัญหาทีพบในชีวติ จริงอยา่ งเป็นขนั ตอน และเป็นระบบ ใชเ้ ทคโนโลยสี ารสนเทศ และ การสือสารในการเรียนรู้ การทาํ งาน และการแกป้ ัญหาไดอ้ ยา่ งมีประสิทธิภาพ รู้เท่าทนั และมีจริยธรรม ลาํ ดบั ตวั ชีวดั สาระสําคญั ที 1 ว. . ม. / ออกแบบอลั กอริทึมทีใชแ้ นวคิด เชิงนามธรรม เพือแกป้ ัญกา หรืออธิบายการทาํ งาน ทีพบในชีวติ จริง 2 ว. . ม. / ออกแบบและเขียนโปรแกรมอยา่ งง่าย เพอื แกป้ ัญหาทางคณิตศาสตร์หรือ วทิ ยาศาสตร์ 3 ว. . ม. / รวบรวมขอ้ มูลปฐมภูมิ ประมวลผล ประเมินผล นาํ เสนอขอ้ มูลและสารสนเทศ ตามวตั ถุประสงค์ โดยใชซ้ อฟแวร์ หรือบริการบนอินเตอร์เน็ตทีหลากหลาย 4 ว. . ม. /4 ใชเ้ ทคโนโลยสี ารสนเทศอยา่ งปลอดภยั ใชส้ ือและแหล่องขอ้ มูลตามขอ้ กาํ หนด และขอ้ ตกลง

148 โครงสร้างรายวชิ า หลกั สูตรเทคโนโลยี วทิ ยาการคาํ นวณ กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ ชันมธั ยมศึกษาปี ที 1 ภาคเรียนที 2 เวลา 40 ชัวโมง ลาํ ดบั ชือหน่วยการเรียนรู้ สาระสําคญั มฐ/ตชว. เวลา นําหนัก ที (ช.ม.) คะแนน 1. รู้จกั โปรแกรม Scratch .การทาํ งานแบบวนซาํ 1 การเขียนโปรแกรมดว้ ย Scratch 3. ตวั แปร ว. . ม. / 7 20 .การทาํ งานแบบมีทางเลือก .คาํ สงั วนซาํ แบบมี เงือนไข 2 ขอ้ มูลและการประมวลผล 1. ขอ้ มูล ว. . ม. / 6 15 2. การรวบรวมขอ้ มูล 3. การประมวลผลขอ้ มูล . การสร้างทางเลือกเพอื ตดั สินใจ 5. ซอฟตแ์ วร์จดั การกบั ขอ้ มูล 3 การใชเ้ ทคโนโลยสี ารสนเทศ .ภยั คุดคามจากการใชเ้ ทคโนโลยสี ารสนเทศ ว. . ม. / 4 15 อยา่ งปลอดภยั และการป้องกนั 2. การใชเ้ ทคโนโลยสี ารสนเทศ กิจกรรม 1 10 สอบกลางภาค 1 20 สอบปลายภาค 1 20 รวม 20 100

149 หน่วยการเรียนรู้ที 1 การเขยี นโปรแกรมด้วย Scratch กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ สาระที 4 เทคโนโลยี มาตรฐานว 4.2 เขา้ ใจและใชแ้ นวคิดเชิงคาํ นวณ ในการแกป้ ัญหาทีพบในชีวติ จริงอยา่ งเป็น ขนั ตอนและเป็นระบบ ใชเ้ ทคโนโลยี สารสนเทศ และการสือสารในการเรียนรู้ การทาํ งาน และการแกป้ ัญหาไดอ้ ยา่ งมีประสิทธิภาพ รู้เท่าทนั และมีจริยธรรม ตวั ชีวดั ว. . ม. / ออกแบบและเขียนโปรแกรมอยา่ งง่าย เพือแกป้ ัญหาทางคณิตศาสตร์ หรือวทิ ยาศาสตร์ สาระสําคญั 1. รู้จกั โปรแกรม Scratch .การทาํ งานแบบวนซาํ 3. ตวั แปร .การทาํ งานแบบมีทางเลือก .คาํ สงั วนซาํ แบบมีเงือนไข สาระการเรียนรู้ 1. ออกแบบและเขียนโปรแกรมทีทาํ งานแบบวนซาํ 2. ออกแบบและเขียนโปรแกรมทีมีการใชง้ านตวั แปร 3. ออกแบบและเขียนโปรแกรททีทาํ งานแบบมีทางเลือก .เขียนโปรแกรมเพอื แกป้ ัญหาทางคณิตศาสตร์หรือวทิ ยาศาสตร์ คุณลกั ษณะทพี งึ ประสงค์ . มีวนิ ยั . ใฝ่ เรียนรู้ . มุ่งมนั ในการทาํ งาน

151 การใชง้ าน Scratch เหมือนกบั โปรแกรมทวั ไปทีตอ้ งรู้จกั เครืองมือต่างๆ ในโปรแกรม เพือการทาํ งานทีราบรืนตามตอ้ งการ หนา้ ตา ของ Scratch เป็นพนื ทีจะตอ้ งใชใ้ นการสร้างชินงาน แบ่งออกเป็น 8 ส่วนคือ ภาพหนา้ ต่างและส่วนต่าง ๆ ของ Scratch 2.0 โดยรายละเอียดของส่วนต่าง ๆ ดงั นี เป็นพืนทีแสดงผลลพั ธ์ของชินงานทีสร้างขึน มีขนาดกวา้ ง 480 และสูง 360 โดยทีจุดกึงกลางเป็นจุดอา้ งอิงที x=0 และ y=0 โดยค่า x เป็นตวั กาํ หนดตาํ แหน่งในแนวนอน มีค่าตงั แต่ -240 ถึง 240 และ y เป็นตวั กาํ หนดตาํ แหน่งในแนวตงั มีค่าตงั แต่ -180 ถึง 180

152 ภาพแสดง Stage และตาํ แหน่งบน Stag สามารถหาค่าตาํ แหน่ง บน stage โดยการเลือนเมาส์ไปชีทีตาํ แหน่งนนั จะปรากฏค่าตาํ แหน่ง x และ y ทีมุมล่างขวา Stage ประกอบ ดว้ ยเครืองมือสาํ คญั ตามหมายเลข ดงั นี 1. ปรับการแสดงผลเตม็ จอ (Presentation Mode) 2.Project Name ชือของชินงานทีกาํ ลงั ทาํ งานอยู่ 3. ธงเขียว (Green Flag) การทาํ งานของโปนแกมทีเขียนขึน 4. หยดุ การทาํ งานของโปรแกรม (Stop) โดยชินงานใหม่จะเริมดว้ ยตวั ละครแมวสีสม้ และพนื หลงั สีขาว การคลิกที Sprite ใดจะเป็นการทาํ งานกบั Sprite นนั ทงั การเขียนคาํ สงั และแกไ้ ขตวั ละคร โดย Sprite ทีถูกเลือกจะปรากฏกรอบสีนาํ เงินลอ้ มรอบ ส่วนการคลิกที Backdrop หรือพนื หลงั จะเป็นการสลบั ไปทาํ งาน กบั พืนหลงั แทน ภาพแสดง Sprite List โดย Sprites List มเี ครืองมือทสี ําคญั ตามหมายเลขดงั นี 1. ตวั หรือ info แสดงรายละเอียดของ Sprite ปิ ดโดยคลิกป่ ุมลูกศรยอ้ นกลบั สีนาํ เงิน

153 ภาพแสดงรายละเอียดของ Sprite 2. เพมิ Sprite จาก Library, Paint , File และ Camera ตามลาํ ดบั 3. ส่วนของการเพิม Backdrops หรือภาพฉากหลงั ใหม่ ซึงมีป่ ุมเครืองมือเช่นเดียวกบั เครืองมือเพิม Sprite คือจาก Library, Paint, File และ Camera ตามลาํ ดบั ประกอบไปดว้ ย Blocks Palette (บลอ็ กคาํ สงั ) และ Scripts Area (พืนทีวางคาํ สงั ) โดยในส่วนของ Blocks Palette ดา้ นบนจะประกอบ ไปดว้ ยหมวดหมู่ของบลอ็ กคาํ สงั 10 หมวด คือ Motion, Looks, Sound, Pen, Data, Events, Controls, Sensing, Operators และ More Blocks ภาพแสดงส่วน Script โดยหมวดใดถูกเลือกจะปรากฏแถบสี ขึนในหมวดนนั และแถบสีในแต่ละหมวดจะเป็นสีเดียวกบั บลอ็ กคาํ สงั ทาํ ใหท้ ราบวา่ บลอ็ กคาํ สงั นนั มากจากหมวดใด ภาพแสดงสีของบลอ็ กคาํ สงั ในส่วนของ Scripts Area จะเป็นพนื ทีวางบลอ็ กคาํ สงั โดยมุมล่างขวาจะมีรูปแวน่ ขยายสาํ หรับยอ่ หรือขยายบลอ็ กคาํ สงั

154 เป็นแทบ็ สาํ หรับแกไ้ ขตวั Sprite โดยมีเครืองมือแกไ้ ขภาพ เพิมชุดภาพใหก้ บั ตวั Sprite ในอิริยาบถต่าง ๆ ภาพแสดงแทบ็ Costume โดยมเี ครืองมือตามหมายเลขดงั นี .ชือ Costume .เพิมภาพ หรือ Costume ใหก้ บั Sprite จาก Library, Paint, File และ Camera ตามลาํ ดบั .รายการ Costumes คลิกเลือก Costume ทีตอ้ งการแกไ้ ข .ขนาดเสน้ .เครืองมือแกไ้ ขภาพ Costume แบบ Vector .จานสี สาํ หรับเลือกสีทีใชใ้ นการแกไ้ ขภาพ เป็นแทบ็ ทีจะปรากฏขึนเมือคลิกเลือกที Backdrop หรือพนื หลงั ใสส่วนของ Sprite List ซึงมีเครืองมือแกไ้ ขรูปและเพมิ ตวั Backdrops เช่นเดียวกบั เครืองมือ Costume แต่อาจเห็นเครืองมือแกไ้ ขรุปอยทู่ างดา้ นซา้ ยเนืองจากเป็นเครืองมือแกไ้ ขภาพแบบ Bitmap

155 ภาพแสดงแทบ็ Backdrop เป็นแทบ็ ทีใชใ้ นการเพิมหรือแกไ้ ขไฟลเ์ สียงในชินงาน มเี ครืองมือ ตามหมายเลข ดงั นี 1) ชือของเสียง ไฟลข์ อ้ มูล (File) ตามลาํ ดบั 2) เพิมเสียง โดยเลือกจาก คลงั (Library) , การบนั ทึก (Record) และ 3) รายการเสียง คลิกเลือกเสียงทีตอ้ งการแกไ้ ข 4) คลืนเสียง สาํ หรับเลือกช่วงของคลืนเสียงทีตอ้ งการแกไ้ ข 5) เครืองมือ เล่น, หยดุ และบนั ทึกเสียงตามลาํ ดบั เป็นส่วนทีอยดู่ า้ นบนของ Scratch ประกอบดว้ ยเมนู และป่ ุมเครืองมือ

ภาพแสดง Tool bar ของ Scratch 156 มีป่ ุมต่าง ๆตามหมายเลขดงั นี 1. เขา้ สู่เวบ็ ไซต์ ของ Scratch 2. เปลียนภาษา เมนู File Edit Tips และ About ตามลาํ ดบั 3. เมนู File Edit Tips และ About ตามลาํ ดบั 4. คาํ สงั สาํ หรับกาํ หนดเคอร์เซอร์เมาส์เพอื แกไ้ ขตวั Sprite ดงั นี ใชค้ ดั ลอก (Duplicate) ใชล้ บ (Delete) ใชข้ ยาย ขนาด(Grow) ใชล้ ดขนาด(Shrink) และ (Block Help) ใชแ้ สดง คลิกแสดงคาํ อธิบายในส่วนต่าง ๆ ตามลาํ ดบั เป็นส่วนทีใชใ้ นการแสดงเคลด็ ลบั คาํ อธิบายการใชง้ าน Scratch รวมถึงบลอ็ กคาํ สงั ต่าง ๆดูไดโ้ ดยคลิกทีเครืองหมาย ? ดา้ นบนของ Tip Windows ภาพแสดง Tip Windows มปี ่ ุมตามหมายเลขดงั นี 1) ปิ ด Tips window 2) ไปหนา้ หลกั แสดงรายการเคลด็ ลบั ทงั หมด

159 การใช้งาน Scratch เบืองต้น หลงั จากรู้จกั หนา้ ตาของ Scratch แลว้ ป่ ุมพนื ฐานต่างๆ สามารถคลิกใชง้ านไม่ยาก แต่ในทีนีจะนาํ เสนอการใชง้ านบลอ็ ก คาํ สงั ต่างๆ เบืองตน้ เพือเป็นแนวทางในการสร้างชินงานดว้ ย Scratch ในส่วนของ (1) การจดั การมุมมอง (2) การจดั การชินงาน (3) การจดั การ Sprite/Backdrop (4) การจดั การ Sound (5) การจดั การ Script ดงั นี มุมมองเป็นการเปลียนการจดั วางและการแสดงผลของ Scratch เพือความสะดวกในการสร้างชินงานอยา่ งมีประสิทธิภาพ ดงั นี 1.1 การเปลียนภาษาของ Scratch เนืองจาก Scratch สนบั สนุนการใชง้ านหลายภาษา แต่ในการใชง้ านจริง แนะนาํ ใหใ้ ช้ ภาษาองั กฤษเป็นหลกั เพอื สร้างความคุน้ เคยและเป็นพนื ฐานในการเรียนเขียนโปรแกรมคอมพิวเตอร์ภาษาอืนต่อไป การเปลียนภาษาคลิกที ป่ ุม เปลียนภาษา แลว้ เลือกภาษาทีตอ้ งการ

160 ภาพการเปลียนภาษาในการแสดงผลของ Scratch ภาพการเปรียบเทียบบลอ็ กคาํ สงั ภาษาไทยกบั ภาษาองั กฤษใน Scratch 1.2 การปรับ Layout หรือมุมมองของโปรแกรม มี 3 แบบ คือ (1) มุมมองปกติ (2) มุมมอง Stage ขนาดเลก็ (3) มุมมอง Stage เตม็ จอ

161 ภาพการเปรียบเทียบมุมมองของโปรแกรม Scratch แต่ละมุมมองใหค้ วามสะดวกในการทาํ งานต่างกนั โดยมุมมองปกติจะแบ่งสดั ส่วนของการแสดงผล Stage และส่วน ทาํ งานอยา่ งเหมะสม เมือตอ้ งการเนน้ การทาํ งานกบั Script การปรับเป็นมุมมอง Stage ขนาดเลก็ จะทาํ ใหท้ าํ งานสะดวกขึนโดยเฉพาะกรณีที มีบลอ็ กคาํ สงั มากๆ และมุมมอง Stage เตม็ จอ หรือมุมมองแสดงผล เป็นการดูผลลพั ธ์ของงาน ทาํ ใหเ้ ห็นขอ้ ผดิ พลาดหรือส่วนทีตอ้ งปรับปรุง ชดั เจนยงิ ขึน การปรับเปลียนมุมมองทาํ ไดด้ งั นี - การปรับเปลียนระหวา่ งมุมมองปกติ และมุมมอง Stage ขนาดเลก็ โดยคลิกทีเมนู Edit -> Small Stage layout เมือ ปรากฏเครืองหมายถูก Scratch จะแสดงผลในมุมมอง Stage ขนาดเลก็ และเมือไม่มีเครืองหมายถูก Scratch จะแสดงผลในมุมมองปกติ ภาพแสดงเมนูปรับเปลียนระหวา่ งมุมมองปกติ และมุมมอง Stage ขนาดเลก็ หรือคลิกป่ ุมลูกศรใกลก้ บั จุดบอกตาํ แหน่งเมาส์บน Stage จะเป็นการสลบั การแสดงมุมมองปกติ และมุมมอง Stage ขนาดเลก็ ภาพป่ ุมสลบั มุมมองปกติ ละมุมมอง Stage ขนาดเลก็

162 - มุมมอง Stage เตม็ จอ หรือมุมมองแสดงผล ใหค้ ลิกทีป่ ุมมุมบนซา้ ยของ Stage และเมือตอ้ งการออกจากมุมมอง Stage เตม็ จอ ใหค้ ลิกป่ ุมทีตาํ แหน่งมุมบนซา้ ยเดิม หรือกดป่ ุม Esc ทีคียบ์ อร์ด ภาพแสดงป่ ุมสลบั มุมมอง Stage เตม็ จอ หรือมุมมองแสดงผล การจดั การชินงาน การจดั การชินงานทีสร้างขึนดว้ ย Scratch นนั มีความสาํ คญั ไม่นอ้ ย แต่กระนนั การจดั การกบั ชินงานใน Scratch กเ็ หมือนกบั การใชง้ านโปรแกรมทวั ไป ดงั นี - New สร้างชินงานใหม่ คลิกทีเมนู File -> New ภาพเมนูการสร้างชินงานใหม่ใน Scratch จะปรากฏขอ้ ความ Untitled ทีกรอบดา้ นบนของ Stage แสดงวา่ เป็นชินงานใหม่ยงั ไม่มีชือ และปรากฏ Sprite แมวสีสม้ ตรงกลาง Stage

163 ภาพลกั ษณะของชินงานใหม่ - Save หรือ Save as เป็นการบนั ทึกชินงานทีสร้างขึนโดยคลิกที เมนู File -> Save หรือ Save as ภาพเมนูคาํ สงั บนั ทึก หากเป็นการบนั ทึกครังแรก หรือคลิก Save as จะปรากฏหนา้ ต่าง Save Project ใหพ้ ิมพช์ ือชินงาน (แนะนาํ ใหเ้ ป็นภาษาองั กฤษ) จากนนั กด ป่ ุม Save ภาพหนา้ ต่าง Save Project โดยไฟลช์ ินงานทีบนั ทึกจะมีนามสกลุ .sb2 สาํ หรับ Scratch 2.0 และนามสกลุ .sb สาํ หรับ Scratch 1.4 มี Icon เป็นแมวสีสม้ ส่วนกรอบ Stage จะแสดงชือของชินงานดว้ ย ภาพ Icon ไฟลช์ ินงานทีบนั ทึกและชือของชินงานบนกรอบ Stage - Open การเปิ ดชินงาน ทีบนั ทึกไวม้ าทาํ งาน ใหค้ ลิกเมนูที File -> Open

164 ภาพคาํ สงั เมนูเพือเปิ ดไฟลช์ ินงาน ใหค้ ลิกเลือกไฟลช์ ินงานทีตอ้ งการเปิ ด แลว้ คลิก Open ภาพหนา้ ต่าง Open Project -Share หรือการแบ่งปันผลงานบนเวบ็ ไซต์ ของ Scratch เมือสร้างผลงานเสร็จแลว้ สามารถแบ่งปัน Scratch 2.0 Offline Editor (*** แต่ตอ้ งการลงทะเบียนสมาชิกเวบ็ ไซต์ ของ Scratch ก่อนเพอื ใชบ้ ริการนี ) ไดด้ งั นี ใหค้ ลิกทีเมนู File -> Share to website ภาพเมนูคาํ สงั Share to website จะปรากฏหนา้ ต่างใหก้ รอกขอ้ มูล Project name (ชือชินงาน) Your Scratch name (ชือทีลงทะเบียนไวก้ บั ทางเวบ็ ไซต์ ของ Scratch ) และpassword (รหสั ผา่ น) แลว้ คลิกทีป่ ุม OK

165 ภาพหนา้ ต่าง Share to Scratch website โดยตอ้ งเชือมต่ออินเตอร์เน็ตเพอื ใหโ้ ปรแกรม Upload ไฟลช์ ินงานไปยงั เวบ็ ไซตไ์ ด้ การจดั การกบั Sprite หรือ Backdrop คลา้ ยกนั เนืองจากเป็นภาพกราฟิ กเหมือนกนั เพยี งแต่ทาํ หนา้ ทีต่างกนั เท่านนั โดยในส่วนของ Sprite เปรียบเสมือนตวั ละครทาํ หนา้ ทีแสดงเรืองราว Backdrop ทาํ หนา้ ทีเป็นฉากหลงั บนเวทีของเรืองราวนนั ๆ การเพิม Sprite/Backdrop มีป่ ุมทาํ หนา้ ทีคลา้ ยกนั โดยในส่วนของ Sprite List มีแถบ New Sprite สาํ หรับเพมิ Sprite โดยเป็นการ เพิมจาก Library, Paint, File และ Camera ภาพป่ ุมคาํ สงั บน New Sprite เมือคลิกเพิม Sprite จาก Library จะปรากฏหนา้ ต่างเลือกตวั Sprite คลิกเลือก Sprite ทีตอ้ งการแลว้ กด OK

166 ภาพแสดงหนา้ ต่าง Sprite Library เมือคลิกเพิม Sprite จาก Paint จะปรากฏเครืองมือ Paint ในแทบ็ Costumes สามารถวาดภาพ Sprite ไดเ้ อง เช่นเดียวกบั โปรแกรม Ms Paint ภาพเครืองมือ Paint ใน Scratch ดา้ นบนของแทบ็ Costume มีป่ ุม 3 ป่ ุม คือ Clear (ลา้ งภาพ) Add (เพิมภาพจาก Library) และ Import (เพมิ ภาพจากไฟล)์

167 ภาพแสดงเครืองมือ Clear, Add, และ Import ในแทบ็ Costumes เมือคลิกเพิม Sprite จาก File จะปรากฏหนา้ ต่าง Select file(s) to upload by app ใหเ้ ลือกไฟลร์ ูปภาพทีตอ้ งการนาํ มาทาํ Sprite แลว้ คลิก Open ภาพแสดงหนา้ ต่าง Select file(s) to upload by app โดยไฟลภ์ าพมี 2 แบบ คือแบบ Bitmap ใหใ้ ชไ้ ฟลน์ ามสกลุ png หรือ gif ทีมีพืนหลงั โปร่งใส หากเป็นไฟลน์ ามสกลุ Bmp หรือ jpg กน็ าํ มา ใชไ้ ดแ้ ต่พนื หลงั จะไม่โปร่งใสจึงไม่เหมาะทีจะนาํ มาทาํ Sprite ส่วนไฟลภ์ าพอีกแบบคือแบบ Vector 2.0 ขึนไป หากไฟลภ์ าพทีนาํ มาเป็น Sprite เป็นภาพ Gif Animation จะทาํ ใหไ้ ดภ้ าพ Costumes ของ Sprite นนั ดว้ ยเพอื นาํ มาทาํ ภาพเคลือนไหวใน Scratch ต่อไป ภาพแสดงลกั ษณะภาพ Gif Animation เมือนาํ เขา้ มาใน Scratch เมือคลิกเพิม Sprite จาก Camera จะปรากฏหนา้ ต่าง Camera เพือถ่ายรูป นาํ มาทาํ เป็น Sprite แต่กระนนั คอมพิวเตอร์ทีจะใชง้ านคาํ สงั นีไดจ้ ะ ตอ้ งติดตงั กลอ้ ง Web cam ก่อน เมือไดม้ ุมมองภาพทีตอ้ งการใหค้ ลิกป่ ุม Save

168 ภาพหนา้ ต่าง Camera นอกจากการเพิม Sprite แลว้ เมือคลิกทีแถบ Costumes จะมีป่ ุมเครืองมือคลา้ ยกบั การเพมิ Sprite แต่เป็นการเพิม Costume แทน ซึง Costume คือภาพใน Sprite เดียวกนั ไม่ใช่การเพิม Sprite ใหม่แต่เป็นภาพตวั Spriteนนั ในอิริยาบถ หรือชุดแต่งกายอืน เพอื ให้ Sprite แสดงกิริยา หรือ เปลียนเครืองแต่งกายตามตอ้ งการ ภาพแสดงเครืองมือเพิม Costume การเพิม Backdrop หรือฉากหลงั มีเครืองมือเช่นเดียวกบั Sprite แตกต่างกนั แค่สญั ลกั ษณ์ของป่ ุมเพิมจาก Library ทีเป็นรูปภาพแทนการ์ตูน แต่ใชง้ านเหมือนกนั คาํ สงั ในการเพิมฉากหลงั อยใู่ น Sprite list และอยใู่ นแทบ็ Backdrop การเพมิ Backdrop คลา้ ยกบั การเพมิ Costume มากกวา่ การเพิม Sprite เนืองจากมีเวทีเดียวแลว้ เพิมฉากหลงั หลายๆ ฉากขึนมา ภาพทีนาํ มาทาํ Backdrop ควรมีขนาด 480 x 360 pixel ซึง ขนาดพอดีกบั ขนาดของ Stage หากภาพมีขนาดใหญ่กวา่ หรือเลก็ กวา่ Scratch จะทาํ การปรับใหไ้ ดข้ นาดดงั กล่าวโดยอตั โนมตั ิ แต่อาจทาํ ให้ ฉากหลงั ไม่สมส่วน ภาพแสดงป่ ุมคาํ สงั Backdrop ใน Sprite list และอยใู่ นแทบ็ Backdrop ตามลาํ ดบั นอกจากนนั เมือคลิกขวาที Sprite ใน Sprite list จะปรากฏคาํ สงั ใหใ้ ชง้ าน ดงั นี

169 ภาพแสดงคาํ สงั เมือคลิกขวาที Sprite ใน Sprite l มีคาํ สงั ทาํ หนา้ ทีตามลาํ ดบั ดงั นี (1) info แสดงรายละเอียดของ Sprite (2) duplicate สาํ เนาตวั Sprite (3) delete ลบตวั Sprite (4) save to local file บนั ทึกตวั Sprite เป็นไฟล์ (5) hide/show ซ่อนหรือแสดงตวั Sprite ภาพแสดงคาํ สงั เมือคลิกขวาที Costume ในแทบ็ Costumes เมือคลิกขวาที Sprite ในแทบ็ Costume จะปรากฏคาํ สงั ใชง้ านตามลาํ ดบั ดงั นี (1) duplicate สาํ เนาตวั Sprite (2) delete ลบตวั Sprite (3) save to local file บนั ทึกตวั Sprite เป็นไฟล์ มุมบนขวาของ Costume มีเครืองหมายกากบาท เมือคลิกจาํ ทาํ การลบ Costume นนั คาํ สงั นีมีในส่วนของ Backdrop ดว้ ยเช่นกนั การจดั การ Sound หรือเสียงประกอบ เป็นการกาํ หนดเสียงใหก้ บั Sprite และ Backdrop โดยปกติเสียงดนตรีประกอบจะกาํ หนดให้ กบั Backdrop ส่วนเสียงพดู หรือเสียง Effect จะกาํ หนดใหก้ บั Sprite ซึงเสียงทีถูกกาํ หนดใหจ้ ะเรียกใชไ้ ดเ้ ฉพาะ Sprite นนั การกาํ หนดเสียง ใหก้ บั Sprite/Backdrop แลว้ คลิกทีแทบ็ Sound

170 ภาพการกาํ หนดเสียงใหก้ บั Sprite การเพิมเสียงทาํ ได้ แบบคือ (1) เพิมจาก Library (2) เพิมโดยบนั ทึกเสียง (3) เพิมจากไฟลด์ งั นี ภาพเครืองมือในการเพิม Sound เมือคลิกเพิม Sound จาก Library จะปรากฏหนา้ ต่าง Sound Library ใหค้ ลิกเลือกไฟลเ์ สียง หรือ คลิกป่ ุมเล่นทีไฟลเ์ พอื ฟังก่อน คลิกเลือกแลว้ กดป่ ุม OK ภาพแสดงหนา้ ต่าง Sound Library เมือคลิกป่ ุมเพิมโดยบนั ทึกเสียง จะเป็นการเพิมเสียงโดยการบนั ทึกเสียงจากไมโครโฟน เมือพร้อมใหป้ รับระดบั เสียงไมโครโฟน แลว้ กดป่ ุม บนั ทึกเสียง กดป่ ุมหยดุ เมือบนั ทึกเสร็จ กดเล่นเพือฟังเสียงทีบนั ทึก เสร็จแลว้ กาํ หนดชือของเสียงเพอื นเรียกเสียงทีบนั ทึกมาใช้

171 ภาพเครืองมือบนั ทึกเสียง เมือคลิกป่ ุมเพิมเสียงจากไฟล์ จะปรากฏหนา้ ต่างใหเ้ ลือกไฟลเ์ สียง โดยนามสกลุ ของไฟลเ์ สียงอาจเป็น wav หรือ mp3 แลว้ Scratch จะทาํ การ นาํ เขา้ และปรับใหเ้ หมาะสมโดยอตั โนมตั ิ คลิกเลือกทีไฟลเ์ สียง แลว้ คลิก Open ภาพแสดงหนา้ ต่างเลือกไฟลเ์ สียง เมือนาํ เขา้ ไฟลเ์ สียงแลว้ สามารถแกไ้ ขไฟลเ์ สียงนนั โดยคลิกเลือกช่วงของไฟลเ์ สียงทีตอ้ งการแกไ้ ขแลว้ คลิกป่ ุม Edit จะปรากฏรายการคาํ สงั เช่น คาํ สงั Delete สาํ หรับลบช่วงของไฟลเ์ สียงทีไม่ตอ้ งการเป็นตน้

172 ภาพแสดงรายการคาํ สงั การแกไ้ ขไฟลเ์ สียงเบือตน้ และสามารถกาํ หนด Effect ใหก้ บั ไฟลเ์ สียงโดยเลือกช่วงของไฟลเ์ สียงทีตอ้ งการใส่ Effect แลว้ คลิกป่ ุม Effect จะปรากฏรายการคาํ สงั เช่น fade ทาํ ใหเ้ สียงค่อยๆดงั ขึน ใชต้ อนเริมตน้ เสียง และ fade out ทาํ ใหเ้ สียงค่อยๆ ดงั ขึน ใชต้ อนเริมตน้ เสียง และ fade out ทาํ ใหเ้ สียงค่อยๆเบา ลงใหต้ อนจบ เป็นตน้ ภาพแสดงรายการคาํ สงั Effects เสียงเบืองตน้ ซึงคาํ สงั Edit และ Effects สามารถนาํ ไปใชไ้ ดท้ งั กบั เสียงจาก Library และเสียงจากการบนั ทึก Script เป็นหวั ใจสาํ คญั ของ Scratch และการเรียนเขียนโปรแกรมดว้ ย Scratch การจดั การ Script จึงเป็นเรืองพนื ฐานทีตอ้ งเรียนรู้ การเขียน Script ใน Scratch ไม่เหมือนการเขียนโปรแกรมทวั ไป เพราะไม่ตอ้ งพิมพค์ าํ สงั แค่คลิกทีหมวดของบลอ็ กคาํ สงั คลิกลากบลอ็ กคาํ

173 สงั ทีตอ้ งการ นาํ มาต่อเขา้ กบั ชุดคาํ สงั ใน Script Area ภาพแสดงการสร้าง Script ใน Scratch บลอ็ กคาํ สงั มีรูปแบบทีต่อกนั ไดเ้ ฉพาะ หากบลอ็ กคาํ สงั ใดไม่สามารถนาํ มาต่อกบั พวกไดแ้ สดงวา่ ไม่สามารถใชบ้ ลอ็ กคาํ สงั นนั ในรูปแบบนี ได้ ทาํ ใหก้ ารสร้าง Script ผดิ จากการเขียนคาํ สงั ลดลงบลอ็ กคาํ สงั ใน Scratch แบ่งออกเป็น 4 รูปแบบคือ (1) Command Block (2) Function Block (3) Trigger Block (4) Control Block ภาพแสดงรูปแบบของบลอ็ กคาํ สงั ใน Scratch มีรายละเอียด ดงั นี 1) Command Block หรือบลอ็ กคาํ สงั เพือใหท้ าํ งานตามทีกาํ หนด สามารถเชือมต่อกบั บลอ็ กอืนไดท้ งั ดา้ นล่างของบลอ็ ก 2) Function Block หรือบลอ็ กฟังกช์ นั เป็นบลอ็ กทีมีการคืนค่าสามารถวางลงในบลอ็ กคาํ สงั อืนได้ แต่ไม่สามารถเชือมต่อ กบั บลอ็ กอืนได้ 3) Trigger Block หรือบลอ็ กเหตุการณ์ เป็นบลอ็ กทีรับเหตุการณ์ตามทีกาํ หนดเพือใหค้ าํ สงั ทีเชือมต่อดา้ นล่างเริมทาํ งาน ตอ้ งอยดู่ า้ นบนสุดของบลอ็ กอืนเสมอ 4) Control Block หรือบลอ็ กควบคุม เป็นบลอ็ กทีจะควบคุมบลอ็ กทีครอบอยใู่ หท้ าํ งานตามทีกาํ หนด การเปลียนแปลงค่า ในบลอ็ กคาํ สงั ทาํ ได้ 2 รูปแบบ คือ พมิ พค์ ่าและเลือกจากรายการ

174 ภาพการเปลียนแปลงค่าใน บลอ็ กคาํ สงั เมือคลิกขวาทีบลอ็ กคาํ สงั จะปรากฏคาํ สงั สาํ หรับจดั การกบั บลอ็ กคาํ สงั นนั ไดแ้ ก่ duplicate (คดั ลอก) delete (ลบ) add comment (เพิม หมายเหตุ) และ help (ตวั ช่วยสาํ หรับบลอ็ กคาํ สงั นนั ) ภาพคลิกขวาทีบลอ็ กคาํ สงั และเมือคลิกขวาทีพืนทีวา่ งใน Script Area จะปรากฏคาํ สงั clean up และ add comment ภาพแสดงการคลิกขวาทีพืนทีวา่ งใน Script Area โดยเฉพาะคาํ สงั clean up เป็นคาํ สงั ในการจดั เรียงบลอ็ กคาํ สงั ใหร้ ะเบียบ ภาพตวั อยา่ งการใชค้ าํ สงั clean up

175 ภาพตวั อยา่ งการใชค้ าํ สงั comment Comment หรือ หมายเหตุเป็นส่วนทีใชอ้ ธิบายการทาํ งานของคาํ สงั เพือใหผ้ เู้ ขียนโปรแกรมเขา้ ใจการทาํ งาน จดั ระบบหรือแกไ้ ข ขอ้ ผดิ พลาดของชุดคาํ สงั ไดง้ ่าย แมจ้ ะเป็นส่วนทีโปรแกรม Scratch ไม่ Run และไม่เกียวกบั กระบวนการทาํ งานของชุดคาํ สงั แต่การเขียน Comment จะเป็นประโยชนอ์ ยา่ งมากในการเขียนโปรแกรมทีมีความซบั ซอ้ น

178 Scrip คาํ สงั ทาํ ให้ Scratch มีการเคลือนไหว สีสนั และปฏิสมั พนั ธ์ คาํ สงั ของ Scratch ถูกแบ่งออกเป็นหมวด 10 หมวด คือ Motion, Looks, Sound, Pen, Data, Events, Controls, Sensing, Operators และ More Blocks รวมเป็นคาํ สงั มากกวา่ ร้อยคาํ สงั การท่องจาํ คาํ สงั ทงั หมด อาจไม่มีประโยชนเ์ ลยและไม่ใช่หลกั ทีดีในการเขียนโปรแกรม การใชจ้ ินตนาการสร้างสรรคผ์ ลงานนนั สาํ คญั ยงิ กวา่ ฉะนนั การเรียนเขียน โปรแกรมจึงควรเขา้ ใจและรู้จกั วธิ ีการใชเ้ ฉพาะคาํ สงั ทีตอ้ งใชง้ าน เมือตอ้ งใชค้ าํ สงั อืนจึงค่อยศึกษาในภายหลงั เพิมเติม (ซึงรายละเอียดของคาํ สงั ทงั หมดรวบรวมไวใ้ นภาคผนวก) ในส่วนของคาํ สงั พนื ฐานทีนาํ เสนอมี 5 หวั ขอ้ คือ (1) คาํ สงั Motion (2) คาํ สงั Pen (3) คาํ สงั Looks (4) คาํ สงั Sound (5) คาํ สงั ทางคณิตศาสตร์ เฉพาะคาํ สงั ทีใชใ้ นเบืองตน้ ดงั นี ในการศึกษาคาํ สงั Motion จะใชฉ้ ากหลงั เป็นกราฟแสดงพกิ ดั ขนาด 480x360 ซึงสามารถสร้างเองหรือเพมิ ภาพฉากหลงั xy-grid ฉากหลงั แสดงพิกดั xy-grid แลว้ ยอ่ ขนาดของแมวสีสม้ ใหม้ ีขนาดเลก็ ลง เพือใหเ้ ห็นตาํ แหน่งของ Sprite บน Stage ไดช้ ดั เจนขึน

179 ภาพแสดงชินงานทีมี Backdrop เป็นพกิ ดั ตาํ แหน่งบน Stage คาํ สงั Motion คือคาํ สงั เคลือนทีหรือยา้ ยตาํ แหน่งของ Sprite บน Stage มี 2 รูปแบบ คือ (1) การยา้ ยตาํ แหน่งแบบสมั บูรณ์ และ (2) การ ยา้ ยตาํ แหน่งแบบสมั พนั ธ์ 1.1 การยา้ ยตาํ แหน่งแบบสมั บูรณ์ คือการยา้ ยตาํ แหน่งไปตามพิกดั ตาํ แหน่งบน Stage ซึงมีขนาด 480x360 และกาํ หนด ตาํ แหน่งพกิ ดั เช่นเดียวกบั กราฟกาํ หนดตาํ แหน่งเป็นตาํ แหน่งเป็นพิกดั (x,y) โดยมีจุดศูนยก์ ลางทีพิกดั (0,0) ภาพแสดงตาํ แหน่งพกิ ดั บน Stage การยา้ ยตาํ แหน่งแบบสมั บูรณ์ มีคาํ สงั 4 คาํ สงั คือ go to, glide to, set x to และ set y to ดงั นี 1) คาํ สงั go to เป็นคาํ สงั ยา้ ยตาํ แหน่งไปยงั พกิ ดั ทีระบุ เมือลากบลอ็ กคาํ สงั go to กาํ หนดค่า x: 50 และ y: 50 แลว้ Run โดยการ คลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี

180 ภาพผลลพั ธ์จากคาํ สงั go to x:50 y:50 จะเห็นวา่ คาํ สงั go to จะยา้ ย Sprite รูปแมวไปอยใู่ นพกิ ดั (x, y)ตามทีกาํ หนดในทีนีคือพกิ ดั (50,50) เมือกาํ หนดพกิ ดั (x, y)เป็น ค่าลบให้ x:-100 และ y:-50 แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี 2) คาํ สงั glide to เป็นการยา้ ยตาํ แหน่งไปยงั พิกดั ทีระบุ โดยแสดงเสน้ ทางในการยา้ ยตาํ แหน่งดว้ ย ต่างจากคาํ สงั go to ทียา้ ยไป ทีตาํ แหน่งนนั ทนั ที เมือลากบลอ็ กคาํ สงั glide to กาํ หนด x: -150 และ y: 100 แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผลดงั นี ภาพผลลพั ธ์จากคาํ สงั glide to x:-150 y: 100 3) คาํ สงั set x to เป็นคาํ สงั ทียา้ ยตาํ แหน่ง Sprite เฉพาะในแนวแกน x หรือแนวนอน เท่านนั ลากบลอ็ กคาํ สงั set x to กาํ หนด x: 200 แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี ภาพผลลพั ธ์จากคาํ สงั set x to 200

181 4) คาํ สงั set y to เป็นคาํ สงั ทียา้ ยตาํ แหน่ง Sprite เฉพาะในแนวแกน y หรือแนวดิงเท่านนั เมือลากบลอ็ กคาํ สงั set y to กาํ หนด y:-100 แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี ภาพผลลพั ธ์จากคาํ สงั set y to -100 1.2 การยา้ ยตาํ แหน่งแบบสมั พนั ธ์ คือการยา้ ยตาํ แหน่งโดยอา้ งอิงตาํ แหน่งเดิมประกอบดว้ ยคาํ สงั เกียวกบั การยา้ ยตามตาํ แหน่ง และการยา้ ยตามทิศทาง ดงั นี 1) การยา้ ยตามตาํ แหน่ง มีคาํ สงั ทีเกียวขอ้ ง 2 คาํ สงั คือ change x by และ change y by โดย change x by เป็นการเปลียนแปลง ค่าตาํ แหน่งในแนวแกน x ตามทีกาํ หนดเช่น กาํ หนดตาํ แหน่งเริมตน้ โดยใชค้ าํ สงั go to x:50 y:50 แลว้ เพมิ คาํ สงั change x by 50 แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี ภาพผลลพั ธ์จากคาํ สงั go to x:50 y:50 และ change x by 50 จากตาํ แหน่ง (50,50) ทีกาํ หนดโดยคาํ สงั go to และคาํ สงั change x by 50 ทาํ ใหต้ าํ แหน่งในแกน x เปลียนไปจากเดิมอีก 50 จึง มาอยทู่ ีพกิ ดั (100,50) เมือกาํ หนดใหเ้ ป็นค่าลบบา้ ง โดยกาํ หนดให้ change x by -100 แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี

182 ภาพผลลพั ธ์จากคาํ สงั go to x:50 y:50 และ change x by -100 จากตาํ แหน่ง (50,50) ทีกาํ หนดโดยคาํ สงั go to คาํ สงั change x by -100 ทาํ ใหต้ าํ แหน่งในแกน x เปลียนไปจากเดิมอีก -100 จึง มาอยทู่ ีพิกดั (50,50) นนั เอง 2) การยา้ ยตามทิศทาง เป็นการเคลือนทีสมั พนั ธ์กบั ทิศทางที Sprite หนั หนา้ ดงั นนั ตอ้ งกาํ หนดทิศทางของ Sprite ก่อนโดย กาํ หนดเป็นค่ามุมองศา ดงั นี ภาพแสดงทิศทางของ Sprite ทีกาํ หนดเป็นองศา มีคาํ สงั เปลียนทิศทางของ Sprite อยู่ 3 คาํ สงั คือ point in direction ( ), turn right ( ) degrees และ turns left ( ) degrees โดยคาํ สงั point in direction จะหมุนตวั Sprite ไปตามทิศทางทีกาํ หนด ทนั ที เมือลากบลอ็ กคาํ สงั point in direction ( ) กาํ หนดทิศทางเป็น 0 แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั Sprite จะหนั หนา้ ขึนดา้ นบน ภาพผลลพั ธ์จากการใชค้ าํ สงั point in direction 0

183 ส่วนคาํ สงั turn right ( ) degrees (หมุนตามเขม็ ) และ turns left ( ) degrees (หมุนทวนเขม็ ) โดยจะหมุนตามมุมทีกาํ หนด ทิศทางจะสมั พนั ธ์กบั ทิศทางเดิมทีหนั หนา้ อยู่ เมือลากบลอ็ กคาํ สงั point in direction 90 เพือใหห้ นั หนา้ ไปทางขวาหรือทิศทาง 90 องศา แลว้ ลากบลอ็ กคาํ สงั turn right 45 degrees แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะเห็นวา่ คาํ สงั turn right 45 ทาํ ให้ Sprite หมุนตามเขม็ นาฬิกาเป็น มุม 45 องศา ภาพผลลพั ธ์จากการใชค้ าํ สงั turn right 45 เมือลากบลอ็ กคาํ สงั point in direction 90 เพอื ใหห้ นั หนา้ ไปทางขวาหรือทิศทาง 90 องศา แลว้ ลากบลอ็ กคาํ สงั turn left 45 degrees แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะเห็นวา่ คาํ สงั turn left 45 ทาํ ให้ Sprite หมุนทวนเขม็ นาฬิกาเป็นมุม 45 องศา ภาพผลลพั ธ์จากการใชค้ าํ สงั turn left 45 จากนนั เคลือนทีตามทิศทางโดยใชค้ าํ สงั move() steps ลากบลอ็ กคาํ สงั point in direction 315 แลว้ สงั move 100 steps แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี

184 ภาพผลลพั ธ์จากการใชค้ าํ สงั point in direction 315 และ move 100 steps จากคาํ สงั ดา้ นบน ลากบลอ็ กคาํ สงั turn right 45 และ move -200 steps แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี ภาพผลลพั ธ์จากการใชค้ าํ สงั turn right 45 และ move -200 steps เมือกาํ หนดค่าใหก้ บั คาํ สงั move ( ) steps เป็นค่าลบจะเป็นการสงั ให้ Sprite ถอยหลงั ตามจาํ นวนทีกาํ หนด นนั เอง คาํ สงั Motion หรือคาํ สงั เคลือนที ยา้ ยตาํ แหน่งของ Sprite บน Stage มี 2 รูปแบบ คือ (1) การยา้ ยตาํ แหน่งแบบสมั บูรณ์ คือการยา้ ยตาํ แหน่งไปตามพิกดั ตาํ แหน่งบน Stage ไดแ้ ก่ go to ( ), glide to ( ), set x to ( ) และ set y to ( ) (2) การยา้ ยตาํ แหน่งแบบสมั พนั ธ์ คือ การยา้ ยตาํ แหน่งโดยอา้ งอิงตาํ แหน่งเดิมประกอบดว้ ยคาํ สงั เกียวกบั การยา้ ยตามตาํ แหน่ง ไดแ้ ก่ change x by ( ) และ change y by ( ) และการยา้ ยตามทิศทาง ไดแ้ ก่ คาํ สงั เปลียนทิศทางของ Sprite อยู่ 3 คาํ สงั คือ point in direction ( ) , turn right ( ) degrees และ turns left ( ) degrees และคาํ สงั เคลือนทีตามทิศทางคือ move ( ) steps ฝึกใชค้ าํ สงั Motion ไดแ้ ก่ (1) ยา้ ยตาํ แหน่งแบบสมั บูรณ์ และ (2) ยา้ ยตาํ แหน่งแบบสมั พทั ธ์

185 https://www.youtube.com/watch?v=D_D25kzQJnc คาํ สงั Pen หรือปากกาวาดรูป เช่นเดียวกบั คาํ สงั Pen ในโปรแกรมภาษา Logo ทีจะลากเสน้ ไปตามเสน้ ทางทีเต่าเคลือนที ดงั นนั จึง สามารถใช้ Scratch ศึกษาการเขียนโปรแกรมภาพกราฟิ กไดเ้ ช่นเดียวกนั คาํ สงั pen จะตอ้ งใชค้ วบคู่กบั คาํ สงั Motion เพอื ใชใ้ นการวาดรูป มี คาํ สงั ไดแ้ ก่ pen down, pen up, set pen size to, set pen color to และ clear ดงั นี 1) คาํ สงั pen down หรือจรดหวั ปากกา (เริมวาด) เมือลากบลอ็ กคาํ สงั pen down ตามคาํ สงั point in direction 45 และ move 100 steps แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี ภาพตวั อยา่ งการใชค้ าํ สงั pen down คาํ สงั pen down จะทาํ การลากเสน้ ตามเสน้ ทางการเคลือนทีของตวั Sprite ไม่วา่ Sprite จะเคลือนทีไปทีใด

186 2) คาํ สงั pen up หรือยกหวั ปากกาเป็นคาํ สงั ยกเลิกการลากเสน้ ตามเสน้ ทางทีเคลือนที ภาพตวั อยา่ งการใชค้ าํ สงั pen up เมือสงั pen down ตามดว้ ย go to x:100 y:100 Scratch จะลากเสน้ จากจุด (0,0) ไปยงั จุด (100,100) แต่เมือสงั pen up ตามดว้ ย go to x:-50 y:50 ตวั Sprite จะยา้ ยตาํ แหน่งไปทีจุด(- , ) โดยไม่ลากเสน้ ตามเสน้ ทาง 3) คาํ สงั set pen size to ( ) เป็นคาํ สงั กาํ หนดขนาดหวั ของปากกา ภาพตวั อยา่ งการใชค้ าํ สงั set pen size to ( ) 4) คาํ สงั set pen color to ( ) เป็นคาํ สงั กาํ หนดสีของปากกา ซึงมีบลอ็ กคาํ สงั อยู่ 2 คาํ สงั คือ กาํ หนดสีตามค่าตวั เลข และกาํ หนด สีปากกาตามตวั อยา่ ง ดงั นี - บลอ็ กคาํ สงั กาํ หนดสีปากกาตามตวั เลข จะกาํ หนดค่าสีตงั แต่ เลข 0-200 ตามวงสี ภาพบลอ็ กคาํ สงั กาํ หนดสีปากกาตามตวั เลข ภาพแถบสีของปากกาตงั แต่ 0-200 ของ Scratch ทีมา http://wiki.Scratch.mit.edu/w/images/Pen_color.png

187 ภาพตวั อยา่ งการใชค้ าํ สงั set pen color to 0 การใชบ้ ลอ็ กคาํ สงั กาํ หนดสีปากกาตามตวั เลข ตอ้ งรู้วา่ ตวั เลขใดหมายถึงสีใด จึงจะสามารถใชส้ ีไดต้ ามตอ้ งการ เช่น 0 = สีแดง 70 = สีเขียว 130 = สีนาํ เงิน และ ม่วง เป็นตน้ - บลอ็ กคาํ สงั กาํ หนดสีปากกาตามตวั อยา่ ง เป็นบลอ็ กคาํ สงั ทีใหเ้ ลือกสีจากตวั อยา่ ง โดยคลิกทีช่องสีในคาํ สงั แลว้ คลิกสี ทีตอ้ งการจาก Sprite หรือ Backdrop จะปรากฏสีทีเลือกในบลอ็ กคาํ สงั ภาพบลอ็ กคาํ สงั กาํ หนดสสีปากกาตามตวั อยา่ ง ส่วนการใชง้ านเช่นเดียวกบั คาํ สงั กาํ หนดสีปากกาตามตวั เลข 5) คาํ สงั Clear เป็นคาํ สงั ลา้ งรูปวาดทงั หมดที Scratch วาดขึน ภาพคาํ สงั Clear หมายเหตุ คาํ สงั Pen หรือปากกาวาดรูปใชค้ วบคู่กบั คาํ สงั Motion ในการสร้างภาพ มีคาํ สงั เบืองตน้ ไดแ้ ก่ pen down จรดหวั ปากกา (เริมวาด) , pen up ยกหวั ปากกา (ยกเลิกการวาด), set pen size to ( ) ปรับขนาดหวั ปากกา, set pen color to ( ) กาํ หนดสีปากกาและ clear ลา้ งรูปวาด ทงั หมด วาดรูปสามเหลยี ม โดยเขยี นสคริปต์ดงั นี

188 ผลลพั ธ์ แนวคดิ รูปสามเหลียม 1 รูป 1) กาํ หนดพกิ ดั x = 0, y = 0 2) กาํ หนดทิศทางเป็น 90 3) วางปากกา 4) วนซาํ 3 รอบ 4.1) เดินหนา้ 100 หน่วย 4.2 ) หมุนตามเขม็ นาฬิกา 120 องศา 5) ยกปากกา คาํ สงั Looks เป็นคาํ สงั เกียวกบั การแสดงผล โดยแบ่งเป็นการแสดงผลขอ้ ความและการแสดงผลภาพ ดงั นี 1. การแสดงผลขอ้ ความ Scratch จะแสดงขอ้ ความผา่ นตวั Sprite ซึงมีอยู่ 2 ลกั ษณธคือการพดู (say) และการคิด (think) ทงั สองแบบ คลา้ ยกนั แตกต่างตรงลกั ษณะของตวั callouts ทีแสดงใหเ้ ห็นวา่ เป็นการพดู หรือการคิด ดงั นี ภาพการแสดงผลขอ้ ความผา่ น Sprite การพดู (ซา้ ย) และการคิด (ขวา) 1) การพดู มีคาํ สงั 2 คาํ สงั คือ say () และ say ( ) for ( ) secs โดยคาํ สงั say ( ) เป็นการสงั ใหพ้ ดู โดยขอ้ ความจะปรากฏตลอด จนกวา่ จะสงั คาํ สงั เป็นอยา่ งอืน ส่วน say() for ( ) secs จะแสดงขอ้ ความการพดู คา้ งไวต้ ามเวลาทีกาํ หนด เมือลากบลอ็ กคาํ สงั say () พมิ พ์ ขอ้ ความ “สวสั ดี” ในช่องของคาํ สงั แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี ภาพตวั อยา่ งคาํ สงั say() ขอ้ ความจะปรากฏคา้ ง จนกระทงั เปลียนขอ้ ความ หรือสงั พดู ขอ้ ความวา่ ง “” ขอ้ ความพดู นนั จะหายไป

189 ภาพคาํ สงั พดู ขอ้ ความวา่ ง คาํ สงั say ( ) for ( ) secs ตอ้ งกาํ หนดเวลาทีจะแสดงขอ้ ความ เมือลากบลอ็ กคาํ สงั say ( ) for ( ) Secs พิมพข์ อ้ ความ คุณน่ารักจงั เวลา 2 secs (วนิ าที) ภาพตวั อยา่ งคาํ สงั say ( ) for ( ) secs ขอ้ ความ “คุณน่ารักจงั ” จะแสดง 2 วนิ าทีแลว้ หายไป 2) การคิด มีคาํ สงั 2 คาํ สงั คือ think ( ) แลาํ ะ think ( ) for ( ) secs โดยคาํ สงั think ( ) เป็นการสงั ใหค้ ิด โดยขอ้ ความจะปรากฏ ตลอดจนกวา่ จะสงั คาํ สงั เป็นอยา่ งอืน ส่วน think ( ) for ( ) secs จะแสดงขอ้ ความการคิดคา้ งไวต้ ามเวลาทีกาํ หนด เช่นเดียวกบั คาํ สงั การพดู ดงั นี ภาพตวั อยา่ งการใชค้ าํ สงั think( ) ภาพตวั อยา่ งการใชค้ าํ สงั think ( ) for ( ) secs 2. การแสดงผลภาพ เป็นคาํ สงั จดั การภาพทงั Sprite และ Back drop แต่ในทีนีจะเสนอในส่วนของ Sprite เท่านนั ในส่วนของ Backdrop มีลกั ษณะการใชค้ าํ สงั เช่นเดียวกนั แบ่งคาํ สงั ออกเป็น 3 กลุ่ม คือ (1) ซ่อน/แสดง Sprite (2) เปลียน Costume และ (3) Effect ดงั นี

190 1) ซ่อน/แสดง Sprite เป็นคาํ สงั ใหแ้ สดงและไม่แสดง (ซ่อน) ตวั Sprite ประกอบดว้ ยคาํ สงั 2 คาํ สงั คือ hide (ซ่อน) และ show (แสดง) - คาํ สงั hide เมือลากบลอ็ กคาํ สงั hide แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะทาํ ใหต้ วั Sprite ถูกซ่อน ภาพตวั อยา่ งการใชค้ าํ สงั hide - คาํ สงั show เมือลากบลอ็ กคาํ สงั show แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะแสดง Sprite ขึนมา ภาพตวั อยา่ งการใชค้ าํ สงั show 2) เปลียน Costume หรือการเปลียนลกั ษณะของตวั Sprite เพือใชแ้ สดงเรืองราวหรือกิริยาต่างๆ เช่น พดู เดิน กระโดด ต่อสู้ เป็นตน้ คาํ สงั ทีใชใ้ นการเปลียน Costume มี 2 คาํ สงั คือ next costume และ switch costume to ( ) - คาํ สงั next costume คือคาํ สงั เปลียน Costume ถดั ไป เช่น เมือสร้างชินงานใหม่ จะปรากฏตวั Sprite แมวสีสม้ ซึงอยู่ ดว้ ยกนั 2 Costume ดงั ภาพ

191 ภาพแสดง Costume เริมตน้ ของ Sprite แมวสีสม้ ในชินงานใหม่ เมือลากบลอ็ กคาํ สงั next costume แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะปรากฏผล ดงั นี ภาพแสดงตวั อยา่ งคาํ สงั next costume ภาพของ Sprite จะเปลียนเป็นภาพ Costume ถดั ไป จากนนั ทาํ การเพิม Sprite จาก Library รูปไดโนเสาร์ ซึงมี 7 Costumes แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั ภาพ Costume จะเปลียนไปตามลาํ ดบั ภาพ Sprite ของไดโนเสาร์ - คาํ สงั switch costume to ( ) คือคาํ สงั เปลียนเป็น Costume ตามทีกาํ หนด เมือลากบลอ็ กคาํ สงั switch costume to ( ) กาํ หนดเป็น dinosaur1-c แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั ภาพตวั อยา่ ง switch costume to ภาพ Sprite ของไดโนเสาร์เปลียนไปเป็นภาพ Costume ชือวา่ dinosaur1-c ทนั ที 3) คาํ สงั Effect ภาพ มีอยู่ 3 คาํ สงั คือ set ( ) effect to ( ) , change ( ) effect to ( ) และ clear graphic effects - set ( ) effect to ( ) เป็นคาํ สงั กาํ หนดค่า Effect ใหห้ กั รูปโดยการกาํ หนดชนิดของ Effect ประกอบดว้ ย color fisheye whirl pixelate mosaic brightness และ ghost

192 ภาพการกาํ หนดชนิดของ Effect ภาพตวั อยา่ ง Effect เมือลากบลอ็ กคาํ สงั set ( ) effect to ( ) เลือกชนิดของ Effect เป็นแบบ fisheye กาํ หนดค่า 200 แลว้ Run โดยการคลิกทีบลอ็ ก คาํ สงั effect fisheye จะถูกกาํ หนดใหก้ บั ภาพ ภาพตวั อยา่ งการใชค้ าํ สงั set ( ) effect to ( ) - change ()effect to ( ) จะเปลียนขนาด Effect ทีกาํ หนดใหก้ บั รูปภาพเมือลากบลอ็ กคาํ สงั change ( ) effect to ( ) เลือก ชนิดของ Effect เป็นแบบ color กาํ หนดค่า 50 แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั คลิกคาํ สงั ประมาณ 4 ครังจะไดผ้ ลลพั ธ์ ภาพตวั อยา่ งการใชค้ าํ สงั change ( ) effect to ( ) คาํ สงั change ( ) effect to ( ) จะเปลียนขนาดของ Effect ทุกครังทาํ ใหภ้ าพมีการเปลียนแปลงตาม Effect เพมิ ขึนหรือลดลงตาม ทีกาํ หนด

193 - คาํ สงั clear graphic effects เป็นคาํ สงั ลา้ ง Effect ทงั หมดทีกาํ หนดใหก้ บั ภาพ เมือลากบลอ็ กคาํ สงั clear graphic effects แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั ตวั อยา่ งการใชค้ าํ สงั clear graphic effects จากภาพทีใส่ effect fisheye และ color จะถูกลา้ งทงั หมดทาํ ใหภ้ าพกลบั เหมือนเดิม หมายเหตุ คาํ สงั Looks เป็นคาํ สงั เกียวกบั การแสดงผล แบ่งเป็น (1) การแสดงผลขอ้ ความ เป็นการแสดงผลผา่ นตวั Sprite ซึงมี 2 ลกั ษณะคือการ พดู ไดแ้ ก่ say () และ say ( ) for ( ) secs และการคิด ไดแ้ ก่ think ( ) และ think ( ) for ( ) secs และ (2) การแสดงผลภาพ เป็นคาํ สงั จดั การภาพ แบ่งเป็น 3 กลุ่ม คือ (1) ซ่อน/แสดง ไดแ้ ก่ hide และ show (2) เปลียน Costume ไดแ้ ก่ next costume และ switch costume to ( ) และ (3) Effect ไดแ้ ก่ set ( ) effect to ( ), change ( ) effect to ( ) และ clear graphic effects วาดรูปสามเหลยี ม โดยเขยี นสคริปต์ดงั นี ฝึกใชค้ าํ สงั Looks ไดแ้ ก่ (1) การแสดงผลขอ้ ความการพดู และ (2) การแสดงผลภาพ คาํ สงั Sound หรือเสียง สาํ หรับ Scratch มี 3 กลุ่ม คือคาํ สงั เล่นเสียงดนตรี คาํ สงั เล่นเสียงทีกาํ หนดและคาํ สงั จดั การเสียง ดงั นี 1. คาํ สงั เล่นเสียงดนตรีใน Scratch ประกอบดว้ ยเครืองดนตรี 2 ประเภท คือ เครืองดนตรีใหจ้ งั หวะ และเครืองดนตรีบรรเลง 1) คาํ สงั เครืองดนตรีใหจ้ งั หวะหรือ play drum ( ) for ( ) beats เป็นการเล่นเสียงเครืองดนตรีประเภทใหจ้ งั หวะ โดยกาํ หนด ชนิดของเครืองดนตรีใหจ้ งั หวะทีมีใหเ้ ลือกถึง 18 ชนิด และกาํ หนดความยาวจงั หวะ

194 แสดงบลอ็ กคาํ สงั play drum ( ) for ( ) beats และชนิดของเครืองดนตรีใหจ้ งั หวะ เมือลากบลอ็ กคาํ สงั play drum ( ) for ( ) beats กาํ หนดเครืองดนตรีใหจ้ งั หวะเป็น (8) Hand clap สาํ หรับช่วง beats กาํ หนดเป็น 0.25 แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั จะไดย้ นิ เสียงปรบมือ 1 จงั หวะ ตวั อยา่ งการใชค้ าํ สงั play drum ( ) for ( ) beats 2) คาํ สงั เครืองดนตรีบรรเลง ประกอบดว้ ย 2 คาํ สงั ทาํ งานคู่กนั คือ set instrument to ( ) เป็นคาํ สั งกาํ หนดเครืองดนตรีทีมีให้ เลือกถึง 21 ชนิด แสดงบลอ็ กคาํ สงั set instrument to ( ) และชนิดของเครืองดนตรีบรรเลง

195 และ play note ( ) for ( ) beats เป็นคาํ สงั เล่นโนต้ ดนตรีตามเครืองดนตรีทีเลือกโดยเมือคลิกเลือกตวั โนต้ จะปรากฏคียบ์ อร์ดใหก้ ดคีย์ โนต้ ทีตอ้ งการ แสดงบลอ็ กคาํ สงั play note ( ) for ( ) beats และคียบ์ อร์ดใหเ้ ลือกตวั โนต้ ลากบลอ็ กคาํ สงั set instrument to ( ) กาํ หนดเครืองดนตรีเป็น (1) Piano ลากบลอ็ กคาํ สงั play note ( ) for ( ) beats กาํ หนดเสียงตวั โนต้ เป็น C(60) แลว้ ลากบลอ็ กคาํ สงั play note ( ) for ( )beats เพิมกาํ หนดเสียงตวั โนต้ เป็น D(62), E(64), E(64), D(62) และ C(60) ตามลาํ ดบั แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั แสดงตวั อยา่ งการใชค้ าํ สงั set instrument to ( ) และ play note ( ) for ( ) beats 2. คาํ สงั เล่นเสียงทีกาํ หนดเป็นคาํ สงั เล่นเสียงทีกาํ หนดในแทบ็ Sound ซึงอาจเลือกจาก Library บนั ทึกเสียงเอง หรือนาํ เขา้ จากไฟล์ ประกอบดว้ ยคาํ สงั 2 คาํ สงั คือ play sound ( ) และ play sound ( ) until done 1) คาํ สงั play sound ( ) คือคาํ สงั เล่นเสียงทนั ทีพร้อมกบั ทาํ คาํ สงั ต่อไปเมือลากบลอ็ กคาํ สงั play sound ( ) กาํ หนดเสียงทีเล่นคือ meow (รายการเสียงจะตอ้ งถูกนาํ เขา้ ในแทบ็ sound จึงจะเลือกไดจ้ ากคาํ สงั ) ตามดว้ ยลากบลอ็ กคาํ สงั say กาํ หนดขอ้ ความ Hello! แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั ตวั อยา่ งการใชค้ าํ สงั play sound ( ) คาํ สงั play sound จะเล่นเสียงพร้อมกบั ทาํ คาํ สงั ถดั ไป ทาํ ใหข้ อ้ ความและเสียงเกิดขึนพร้อมกนั 2) คาํ สงั play sound ( ) until done เป็นคาํ สงั เล่นเสียงแลว้ รอใหเ้ ล่นเสียงจนจบ จึงจะทาํ คาํ สงั ต่อไป เมือลากบลอ็ กคาํ สงั play sound ( ) until done กาํ หนดเสียงทีเล่นคือ meow ตามดว้ ยลากบลอ็ กคาํ สงั say กาํ หนดขอ้ ความ Hello! แลว้ Run โดยการคลิกทีบลอ็ ก

196 ตวั อยา่ งการใชค้ าํ สงั play sound ( ) until done คาํ สงั play sound ( ) until done จะเล่นเสียงจนจบจึงจะทาํ คาํ สงั ถดั ไป ทาํ ใหเ้ สียง meow จบแลว้ จึงแสดงขอ้ ความ 3. คาํ สงั จดั การเสียง เป็นคาํ สงั กาํ หนดค่าเกียวกบั เสียง ทีใชบ้ ่อยไดแ้ ก่ stop all sounds และ set volume to ( ) % ดงั นี - คาํ สงั stop all sounds เป็นคาํ สงั หยดุ เสียงทงั หมด บลอ็ กคาํ สงั stop all sounds หมายเหตุ คาํ สงั Sound หรือเสียงใน Scratch มี 3 กลุ่ม คือ (1) คาํ สงั เล่นเสียงดนตรี ประกอบดว้ ยเครืองดนตรี ใหจ้ งั หวะ ไดแ้ ก่ play drum ( ) for ( ) beats และเครืองดนตรีบรรเลง ไดแ้ ก่ set instrument to ( ) และ play note ( ) for ( ) beats (2) คาํ สงั เล่นเสียงทีกาํ หนด play sound ( ) และ play sound ( ) until done และ (3) คาํ สงั จดั การเสียง ไดแ้ ก่ stop all sounds และ set volume to ( ) % ฝึกใชค้ าํ สงั Sound ไดแ้ ก่ 1) คาํ สงั เล่นเสียงดนตรี 2) คาํ สงั เล่นเสียงทีกาํ หนด และ 3) คาํ สงั จดั การเสียง คาํ สงั ทางคณิตศาสตร์อยใู่ นหมวดของคาํ สงั Operator แบ่งคาํ สงั ออกเป็น 2 กลุ่ม คือ การบวก ลบ คูณ หาร และสูตรคาํ นวณทาง คณิตศาสตร์ 1. คาํ สงั การบวก ลบ คูณ หาร ทาํ หนา้ ทีคาํ นวณผลลพั ธ์ตามคาํ สงั เมือลากบลอ็ กคาํ สงั บวก ลบ คูณ หาร พมิ พค์ ่าตวั เลขทีตอ้ งการ คาํ นวณ แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั

197 ตวั อยา่ งแสดงผลลพั ธ์จากคาํ สงั การบวก ลบ คูณ หาร การคาํ นวณใชร้ ่วมกบั คาํ สงั อืน เช่น เมือลากบลอ็ กคาํ สงั say ( ) for ( ) secs พิมพข์ อ้ ความ 16+13 เท่ากบั ลากบลอ็ ก say () แลว้ ลากคาํ สงั บวก ลงในช่องวา่ งของคาํ สงั say () พมิ พต์ วั เลข 16 และ 13 แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั การใชค้ าํ สงั คาํ นวณร่วมกบั คาํ สงั แสดงขอ้ ความ 2. สูตรคาํ นวณทางคณิตศาสตร์ในโปรแกรม Scratch ไดแ้ ก่ mod, round, pick random ( ) to ( ) และ function of ( ) ดงั นี 1) คาํ สงั mod คืนค่าผลลพั ธ์เป็นเศษของผลหาร ตวั อยา่ งคาํ สงั mod 2) คาํ สงั round คืนค่าจาํ นวนเตม็ ทีใกลเ้ คียง โดยทศนิยมตงั แต่ 0.5 จะปัดขึนเป็น 1 นอ้ ยกวา่ 0.5 ปัดทิง ตวั อยา่ งคาํ สงั round 3) คาํ สงั pick random ( ) to ( ) คืนค่าเลขสุ่มจากช่วงจาํ นวนทีกาํ หนดโดยผลลพั ธ์จะเกิดจากการสุ่มดงั นนั อาจไม่เหมือนเดิม แต่จะ อยใู่ นช่วงทีกาํ หนด ตวั อยา่ งคาํ สงั pick random ( ) to ( )

198 4) คาํ สงั function of ( ) คืนค่าผลลพั ธ์ตามฟังกช์ นั การคาํ นวณทีเลือกไดแ้ ก่ abs, floor, ceiling, sqrt, sin, cos, tan, asin, acos, atan, ln, log, e^ และ 10^ ตวั อยา่ งการใชค้ าํ สงั function of ( ) หมายเหตุ คาํ สงั ทางคณิตศาสตร์อยใู่ นหมวดของคาํ สงั Operator แบ่งคาํ สงั ออกเป็น 2 กลุ่ม คือ การบวก ลบ คูณ หาร และสูตรคาํ นวณทาง คณิตศาสตร์ ไดแ้ ก่ mod, round, pick random ( ) to ( ) และ function of ( ) ฝึกใชค้ าํ สงั ทางคณิตศาสตร์ ไดแ้ ก่ 1) การบวก ลบ คูณ หาร และ 2) สูตรคาํ นวณทางคณิตศาสตร์ คาํ สงั จดั การขอ้ ความใน Scratch มี 3 คาํ สงั คือ join ( ) ( ), letter ( ) of ( ) แลาํ ะ length of ( ) ดงั นี 1) คาํ สงั join ( ) ( ) เป็นคาํ สงั เชือมขอ้ ความ 2 ขอ้ ความเขา้ ดว้ ยกนั เมือลากบลอ็ กคาํ สงั join ( ) ( ) พมิ พข์ อ้ ความ “ผมชือ” และ “Scratch” ลงในช่องวา่ งทงั สอง แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั ตวั อยา่ งการใชค้ าํ สงั join ( ) ( ) คาํ สงั join จะเชือมขอ้ ความทงั เขา้ ดว้ ยกนั กลายเป็น ผมชือ Scratch 2) คาํ สงั letter ( ) of ( ) เป็นคาํ สงั ทีคืนค่าตวั อกั ษรตามตาํ แหน่งทีตอ้ งการจากขอ้ ความทีกาํ หนด เมือลากบลอ็ กคาํ สงั letter ( ) of ( ) พิมพต์ าํ แหน่งตวั อกั ษร 3 แลว้ พมิ พข์ อ้ ความ \"Scratch\" ลงในช่อง แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั

199 ตวั อยา่ งการใชค้ าํ สงั letter ( ) of ( ) คาํ สงั letter ( ) of ( ) จะคืนค่าตวั อกั ษรในตาํ แหน่งที 3 คือ ตวั อกั ษร r 3) คาํ สงั length of ( ) เป็นคาํ สงั คืนค่าความหมายหรือจาํ นวนตวั อกั ษณของขอ้ ความทีกาํ หนด เมือลากบลอ็ กคาํ สงั length of ( ) พิมพ์ ขอ้ ความ \"Scratch\" ลงในช่อง แลว้ Run โดยการคลิกทีบลอ็ กคาํ สงั ตวั อยา่ งการใชค้ าํ สงั length of ( ) คาํ สงั length of ( ) จะคืนค่าความยาวเป็นตวั อกั ษรของขอ้ ความ Scratch เท่ากบั 7 ตวั อกั ษร หมายเหตุ คาํ สงั จดั การขอ้ ความใน Scratch มี 3 คาํ สงั คือ join ( ) ( ) เชือมขอ้ ความ, letter ( ) of ( ) คืนค่าความยาวหรือจาํ นวนตวั อกั ษรของ ขอ้ ความทีกาํ หนด ฝึกคาํ สงั จดั การขอ้ ความใน Scratch ไดแ้ กง join ( ) ( ), letter ( ) of ( ) และ length of ( )

200 หน่วยการเรียนรู้ที 2 ข้อมูลปละการประมวลผล กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ สาระที 4 เทคโนโลยี มาตรฐานว 4.2 เขา้ ใจและใชแ้ นวคิดเชิงคาํ นวณ ในการแกป้ ัญหาทีพบในชีวติ จริงอยา่ งเป็น ขนั ตอนและเป็นระบบ ใชเ้ ทคโนโลยี สารสนเทศ และการสือสารในการเรียนรู้ การทาํ งาน และการแกป้ ัญหาไดอ้ ยา่ งมีประสิทธิภาพ รู้เท่าทนั และมีจริยธรรม ตวั ชีวดั ว. . ม. / รวบรวมขอ้ มูลปฐมภูมิ ประมวลผล ประเมินผล นาํ เสนอขอ้ มูลและสารสนเทศ ตามวตั ถุประสงค์ โดยใชซ้ อฟตแ์ วร์ หรือบริการบนอินเทอร์เน็ตทีหลากหลาย สาระสําคญั 1. ขอ้ มูล 2. การรวบรวมขอ้ มูล 3. การประมวลผลขอ้ มูล . การสร้างทางเลือกเพือตดั สินใจ 5. ซอฟตแ์ วร์จดั การกบั ขอ้ มูล สาระการเรียนรู้ . เลือกขอ้ มูลและออกแบบวธิ ีการการรวบขอ้ มูล . รวบรวมขอ้ มูลจากแหล่งขอ้ มูลต่าง ๆ . ประมวลผลขอ้ มูล ออกแบบทางเลือก และประเมินทางเลือกในการแกป้ ัญหา หรือตดั สินใจ 4. ใชซ้ อฟตแ์ วร์ในการจดั การกบั ขอ้ มูล และนาํ เสนอขอ้ มูลไดอ้ ยา่ งเหมาะสม คุณลกั ษณะทพี งึ ประสงค์ . มีวนิ ยั . ใฝ่ เรียนรู้ . มุ่งมนั ในการทาํ งาน

202 ข้อมูล (data) หมายถึง ขอ้ เทจ็ จริง (fact) ทีอยใู่ นรูปแบบตวั อกั ษร ตวั เลข สญั ลกั ษณ์พิเศษ รูปภาพ ภาพเคลือนไหว และเสียง ซึง สามารถบนั ทึกไวอ้ ยา่ งต่อเนืองและมีความหมายอยใู่ นตวั เช่น ชือนกั เรียน อายุ เพศ จาํ นวนประชากร ปริมาณนาํ ฝน เป็นตน้ ขอ้ มูลจะมีอยู่ จาํ นวนมาก และจะถูกนาํ ไปประมวลผลเพือใชป้ ระโยชนใ์ นเรืองต่าง ๆ ไดม้ ากมาย สามารถแบ่งประเภทขอ้ มูลไดห้ ลายรูปแบบขึนอยกู่ บั ความตอ้ งการ ลกั ษณะของขอ้ มูลทีนาํ ไปใชแ้ ละเกณฑท์ ีนาํ มาพจิ ารณา 1. การแบ่งข้อมูลตามลกั ษณะของข้อมูล เป็นการแบ่งขอ้ มูลขนั พืนฐานโดยพิจารณาจากการรับขอ้ มูลของประสาทสมั ผสั (Sense) ของ ร่างกาย ไดแ้ ก่ ขอ้ มูลภาพทีไดร้ ับจากการมองเห็นดว้ ยดวงตา ขอ้ มูลเสียงทีไดร้ ับจากการฟังดว้ ยหู ขอ้ มูลกลินทีไดร้ ับจากการสูดดมดว้ ยจมูก ขอ้ มูลรสชาติทีไดร้ ับจากการรับรสชาติดว้ ยลิน และขอ้ มูลสมั ผสั ทีไดร้ ับจากความรู้สึกดว้ ยผวิ หนงั 2. การแบ่งข้อมูลตามแหล่งข้อมูลทไี ด้รับ โดยพจิ ารณาจากลกั ษณะของทีมาหรือการไดร้ ับขอ้ มูล - ข้อมูลปฐมภูมิ (Primary Data) คือ ขอ้ มูลทีไดจ้ ากจุดกาํ เนิดของขอ้ มูลนนั ๆ เป็นการเกบ็ รวบรวมหรือบนั ทึกจากแหล่งขอ้ มูล โดยตรงดว้ ยวธิ ีการต่างๆ เช่น การสอบถาม การสมั ภาษณ์ การสาํ รวจ การจดบนั ทึก ตลอดจนการใชเ้ ทคโนโลยตี ่างๆ ซึงขอ้ มูลปฐมภูมิจดั เป็น ขอ้ มูลทีมีความน่าเชือถือมากทีสุด ตวั อยา่ งขอ้ มูลปฐมภูมิ ไดแ้ ก่ ขอ้ มูลการมาโรงเรียนสายของนกั เรียนชนั มธั ยมศึกษาปี ที 1 ซึงไดจ้ ากการจด บนั ทึกในรอบ 1 เดือนทีผา่ นมา - ข้อมูลทุตยิ ภูมิ (Secondary Data) คือ การนาํ ขอ้ มูลทีผอู้ ืนไดเ้ กบ็ รวบรวมหรือบนั ทึกไวแ้ ลว้ มาใชง้ าน ผใู้ ชไ้ ม่จาํ เป็นตอ้ งเกบ็ รวบรวมหรือบนั ทึกดว้ ยตนเอง จดั เป็นขอ้ มูลทีเกิดขึนในอดีต มกั ผา่ นการประมวลผลแลว้ บางครังจึงไม่ตรงกบั ความตอ้ งการของผใู้ ช้ และ ขอ้ มูลทีไดม้ ีความคลาดเคลือน ไม่ทนั สมยั ตวั อยา่ งขอ้ มูลทุติยภูมิ ไดแ้ ก่ สถิติการมาโรงเรียนสายของนกั เรียนชนั มธั ยมศึกษาปี ที 1 ในปี พ.ศ. 2551 3. การแบ่งข้อมูลตามการจดั เกบ็ ในสืออเิ ลก็ ทรอนิกส์ มีลกั ษณะคลา้ ยการแบ่งขอ้ มูลตามลกั ษณะของขอ้ มูล แต่มีการแยกลกั ษณะขอ้ มูล ตามชนิดและนามสกลุ ของขอ้ มูลนนั ๆ ซึงจะตงั ตามประเภทของขอ้ มูลและโปรแกรมทีใชส้ ร้างขอ้ มูล ไดแ้ ก่ - ข้อมูลตวั อกั ษร (Text Data) เช่น ตวั หนงั สือ ตวั เลข และสญั ลกั ษณ์ ขอ้ มูลประเภทนีมกั มีนามสกลุ ต่อทา้ ยไฟลเ์ ป็น .txt และ .doc - ข้อมูลภาพ (Image Data) เช่น ภาพกราฟิ กต่างๆ และภาพถ่ายจากกลอ้ งดิจิตอล ขอ้ มูลประเภทนีมกั มีนามสกลุ ต่อทา้ ยไฟล์ เป็น .bmp .gif และ .jpg - ข้อมูลเสียง (Sound Data) เช่น เสียงพดู เสียงดนตรี และเสียงเพลง ขอ้ มูลประเภทนีมกั มีนามสกลุ ต่อทา้ ยชือไฟลเ์ ป็น .wav .mp3 - ข้อมูลภาพเคลือนไหว (Video Data) เช่นภาพเคลือนไหว ภาพมิวสิควดี ิโอ ภาพยนตร์ คลิปวดี ีโอ ขอ้ มูลประเภทนีมกั มี นามสกลุ ต่อทา้ ยชือไฟลเ์ ป็น .avi .mov 4. การแบ่งข้อมูลตามระบบคอมพวิ เตอร์ มีลกั ษณะคลา้ ยและใกลเ้ คียงกบั การแบ่งขอ้ มูลตามการจดั เกบ็ ในสืออิเลก็ ทรอนิกส์มาก แต่มุ่ง

203 เนน้ พิจารณาการแบ่งประเภทตามการนาํ ขอ้ มูลไปใชง้ านในระบบคอมพวิ เตอร์ ไดแ้ ก่ - ข้อมูลเชิงจาํ นวน (Numeric Data) มีลกั ษณะเป็นตวั เลขทีสามารถนาํ มาคาํ นวณดว้ ยคอมพิวเตอร์ได้ เช่น จาํ นวนเงินใน กระเป๋ า จาํ นวนค่าโดยสารรถประจาํ ทาง และจาํ นวนนกั เรียนในหอ้ งเรียน - ข้อมูลอกั ขระ (Character Data) มีลกั ษณะเป็นตวั อกั ษร ตวั หนงั สือ และสญั ลกั ษณ์ต่างๆ ซึงสามารถนาํ เสนอขอ้ มูลและเรียง ลาํ ดบั ไดแ้ ต่ไม่สามารถนาํ มาคาํ นวณได้ เช่น หมายเลขโทรศพั ท์ เลขทีบา้ น และชือของนกั เรียน - ข้อมูลกราฟิ ก (Graphical Data) เป็นขอ้ มูลทีเกิดจากจุดพิกดั ทางคอมพวิ เตอร์ ทาํ ใหเ้ กิดรูปภาพหรือแผนที เช่น เครืองหมายการคา้ แบบก่อสร้างอาคาร และกราฟ - ข้อมูลภาพลกั ษณ์ (Image Data) เป็นขอ้ มูลแสดงความเขม้ และสีของรูปภาพทีเกิดจากการสแกนของสแกนเนอร์เป็นหลกั ซึง สามารถนาํ เสนอขอ้ มูล ยอ่ หรือขยาย และตดั ต่อได้ แต่ไม่สามารถนาํ มาคาํ นวณหรือดาํ เนินการอยา่ งอืนได้ ขอ้ มูลทีดีจะตอ้ งประกอบดว้ ยคุณสมบตั ิทีสาํ คญั ๆ ดงั นีคือ 1. ความถูกต้องแม่นยาํ (accuracy) ขอ้ มูลทีดีควรจะมีความถูกตอ้ งแม่นยาํ สูง หรือถา้ มีความคลาดเคลือน (errors) ปนอยบู่ า้ ง กค็ วรที จะสามารถควบคุมขนาดของความคลาดเคลือนทีปนมาใหม้ ีความคลาดเคลือน นอ้ ยทีสุด 2. ความทนั เวลา (timeliness) เป็นขอ้ มูลทีทนั สมยั (up to date) และทนั ต่อความตอ้ งการของ ผใู้ ช้ ถา้ ผลิตขอ้ มูลออกมาชา้ กไ็ ม่มีคุณค่า ถึงแมจ้ ะเป็นขอ้ มูลทีถูกตอ้ งแม่นยาํ กต็ าม 3. ความสมบูรณ์ครบถ้วน (completeness) ขอ้ มูลทีเกบ็ รวบรวมมาตอ้ งเป็นขอ้ มูลทีใหข้ อ้ เทจ็ จริง (facts) หรือข่าวสาร (information) ที ครบถว้ นทุกดา้ นทุกประการ มิใช่ขาดส่วนหนึงส่วนใดไปทาํ ใหน้ าํ ไปใชก้ ารไม่ได้ 4. ความกะทดั รัด (conciseness) ขอ้ มูลทีไดร้ ับส่วนใหญ่จะกระจดั กระจาย ควรจดั ขอ้ มูลใหอ้ ยใู่ น รูปแบบทีกะทดั รัด สะดวกต่อการใช้ และคน้ หา ผใู้ ชม้ ีความเขา้ ใจไดท้ นั ที 5. ความตรงกบั ความต้องการของผู้ใช้ (relevance) ขอ้ มูลทีจดั ทาํ ขึนมาควรเป็นขอ้ มูลทีผใู้ ชข้ อ้ มูลตอ้ งการใช้ และจาํ เป็นตอ้ งรู้ / ทราบ หรือเป็นประโยชนต์ ่อการจดั ทาํ แผนกาํ หนดนโยบายหรือตดั สินปัญหาในเรืองนนั ๆ ไม่ใช่เป็นขอ้ มูลทีจดั ทาํ ขึนมาอยา่ งมากมาย แต่ไม่มีใคร ตอ้ งการใชห้ รือไม่ตรงกบั ความตอ้ งการของผใู้ ชข้ อ้ มูล 6. ความต่อเนือง (continuity) การเกบ็ รวบรวมขอ้ มูล ควรอยา่ งยงิ ทีจะตอ้ งดาํ เนินการอยา่ งสมาํ เสมอและต่อเนืองในลกั ษณะของ อนุกรมเวลา (time-series) เพอื จะไดน้ าํ ไปใชป้ ระโยชนใ์ นดา้ นการวเิ คราะห์วจิ ยั หรือหาแนวโนม้ ในอนาคต การประมวลผลข้อมูล (Data Processing) หมายถึง การเปลียนแปลงหรือจดั ระเบียบขอ้ มูลใหอ้ ยใู่ นรูปแบบทีเป็นประโยชนต์ ่อผใู้ ช้ งาน ขอ้ มูลโดยทวั ไปเกิดขึนอยา่ งไม่เป็นระเบียบจากขบวนการนบั หรือการวดั ไม่สามารถสือความหมายใหเ้ ขา้ ใจหรือใชป้ ระโยชนไ์ ด้ การ ประมวลผลจึงเป็นวธิ ีการนาํ ขอ้ มูล (Data) กลายสภาพเป็นสารสนเทศ (Information) ทีมีประสิทธิภาพและนาํ ไปใชป้ ระโยชนต์ ่อไปได้ ซึงวธิ ี การประมวลผลขอ้ มูลเพอื ใหไ้ ดม้ าซึงสารสนเทศ มีหลายวธิ ี ดงั นี 1. การคาํ นวณ (Calculation) หมายถึง การนาํ ขอ้ มูลทีเป็นตวั เลขมาทาํ การ บวก ลบ คูณ หารยกกาํ ลงั เช่น การคาํ นวณภาษี การ คาํ นวณค่าแรง เป็นตน้ 2. การจดั เรียงข้อมูล (Sorting) เป็นการเรียงขอ้ มูลจากนอ้ ยไปหามาก หรือมากไปหานอ้ ย เพือทาํ ใหด้ ูง่ายขึน คน้ หาขอ้ มูลทีตอ้ งการได้ เร็วขึน เช่น การเรียงคะแนนดิบของนกั เรียนจากมากไปหานอ้ ย การเกบ็ บตั รดชั นีสาํ หรับหนงั สือต่างๆ โดยการเรียงตามตวั อกั ษร จาก ก ข ค ถึง ฮ เป็นตน้ จะเห็นไดว้ า่ การเรียงลาํ ดบั ขอ้ มูลสองประเภทใหญ่ๆดว้ ยกนั คือ การเรียงขอ้ มูลทีเป็นตวั เลข (Numeric) และการเรียงขอ้ มูลทีเป็น ตวั อกั ษร (Alphabetic) สาํ หรับการจดั เรียงขอ้ มูลในระบบคอมพวิ เตอร์นนั ถา้ ขอ้ มูลเป็นตวั อกั ษรจะจดั เรียงตามลาํ ดบั ของรหสั แทนขอ้ มูล

204 3. การจดั กล่มุ (Classifying) หมายถึง การจดั ขอ้ มูลโดยการแยกออกเป็นกลุ่มหรือประเภทต่างๆ เช่น การนาํ ขอ้ มูลเกียวกบั ประวตั ิ นกั ศึกษา มาแยกตามคณะต่างๆเช่น แยกเป็นนกั ศึกษาทีสงั กดั คณะวทิ ยาศาสตร์ นกั ศึกษาทีสงั กดั คณะครุศาสตร์ เป็นตน้ การทาํ เช่นนีทาํ ให้ การคน้ หาขอ้ มูลทาํ ไดง้ ่ายขึน และยงั สะดวกสาํ หรับทาํ รายงานต่างๆ 4. การดงึ ข้อมูล (Retrieving) หมายถึง การคน้ หาและการนาํ ขอ้ มูลทีตอ้ งการมาจากแหล่งเกบ็ เพอื นาํ ไปใชง้ าน เช่น ตอ้ งการทราบค่า คะแนนเฉลียๆ สะสมของนกั ศึกษา ทีมีเลขประจาํ ตวั 33555023 ซึงสงั กดั คณะวทิ ยาศาสตร์ ถา้ ขอ้ มูลเรียงโดยแยกตามคณะวชิ าและในแต่ละ คณะวชิ าเรียงตามหมายเลขประจาํ ตวั การดึงขอ้ มูลจะเริมตน้ คน้ หาแฟ้มของคณะวชิ า และคน้ หาขอ้ มูลเริมจากกลุ่มแรก โดยดูเลขประจาํ ตวั จน กระทงั พบหมายเลขประจาํ ตวั 33555023 กจ็ ะดึงเอาค่าคะแนนเฉลียสะสมของนกั ศึกษาผนู้ ีนาํ ไปใชต้ ามทีตอ้ งการ 5. การรวมข้อมูล (Merging) หมายถึง การนาํ ขอ้ มูลตงั แต่สองชุดขึนไปมารวมกนั ใหเ้ ป็นชุดเดียวเช่น การนาํ ประวตั ิส่วนตวั ของ นกั ศึกษา และประวตั ิการศึกษามารวมเป็นชุดเดียวกนั เป็นประวตั ินกั ศึกษา เป็นตน้ การรวมขอ้ มูลจดั ไดว้ า่ เป็นวธิ ีการทีนิยมใชก้ นั มากใน ระบบการจดั การฐานขอ้ มูลในปัจจุบนั นี 6. การสรุปผล (Summarizing) หมายถึง การสรุปส่วนต่างๆ ของขอ้ มูลโดยยอ่ เอาเฉพาะส่วนทีเป็นใจความสาํ คญั เพอื เนน้ จุดสาํ คญั และแนวโนม้ เช่น การนาํ ขอ้ มูลมาแจงนบั และทาํ เป็นตารางการหายอดนกั ศึกษาของแต่ละวชิ า ขอ้ มูลเหล่านีใชส้ าํ หรับพิมพเ์ ป็นรายงานสรุป ส่งขึนไปใหผ้ บู้ ริหารระดบั สูง เพอื ใชใ้ นการบริหาร 7. การทาํ รายงาน (Reporting) หมายถึง การนาํ ขอ้ มูลมาจดั พมิ พร์ ายงานรูปแบบต่างๆ เช่น รายงานการวเิ คราะห์อาชีพของผปู้ กครอง ของนกั ศึกษา รายงานการเรียนของนกั ศึกษา เป็นตน้ 8. การบันทกึ (Recording) หมายถึง การจดบนั ทึกขอ้ มูลเอาไวโ้ ดยทาํ การคดั ลอกขอ้ มูลจากตน้ ฉบบั แลว้ เกบ็ เป็นแฟ้ม (Filing) เช่น การบนั ทึกประวตั ิส่วนตวั นกั ศึกษาแต่ละคน เป็นตน้ 9. การปรับปรุงรักษาข้อมูล (Updating) หมายถึง การเพิม (Add) หรือการเอาออก (Delete) และการเปลียนค่า (Change) ขอ้ มูลทีอยใู่ น แฟ้มใหท้ นั สมยั อยเู่ สมอ 1. การรวบรวมเอกสารข้อมูล หมายถึง เอกสารขอ้ มูลทีไดถ้ ูกบนั ทึกโดยแหล่งใชข้ อ้ มูลนนั เช่น บตั รลงทะเบียนเรียนของนกั ศึกษา ใบ รายชือประวตั ิหมู่เรียน เป็นตน้ เอกสารขอ้ มูลนบั เป็นสิงจาํ เป็นยงิ หากเอกสารผดิ พลาดหรือไม่ครบถว้ น รายงานทีไดจ้ ากการประมวลผลยอ่ ม ผดิ พลาดไปดว้ ย ฉะนนั งานในขนั นีกค็ ือจะตอ้ งสร้างวธิ ีการควบคุม ซึงส่วนใหญ่มกั ใชก้ ารจดั เอกสารใหเ้ ป็นกลุ่ม มีใบนาํ ส่งทีแสดงราย ละเอียดเกียวกบั จาํ นวนเอกสารจากจุดต่างๆ ถา้ ไม่ครบถว้ น หรือมีขอ้ ผดิ พลาดกจ็ ะสามารถทราบจุดทีติดต่อสอบถามไดง้ ่ายสาํ หรับการ ประมวลผลดว้ ยคอมพิวเตอร์ อาจจะหมายถึงการรวบรวมแฟ้มขอ้ มูลทีเกียวขอ้ งกนั ไวใ้ นแหล่งขอ้ มูลทีสามารถเรียกใช้ ดงั เช่นในระบบฐาน ขอ้ มูลทีประกอบดว้ ยแฟ้มขอ้ มูลจาํ นวนมากนนั เอง 2. การเตรียมข้อมูล หมายถึง การจดั เตรียมขอ้ มูลทีรวบรวมมาแลว้ ใหอ้ ยใู่ นรูปทีสะดวกต่อการประมวลผล ซึงไดแ้ ก่ งานต่างๆ ดงั ต่อ ไปนี - งานบรรณาธิกรเบืองต้น (Preliminary Editing) คือ การนาํ ขอ้ มูลทีรวบรวมไดข้ องแต่ละหน่วยงานมาตรวจสอบความถูก ตอ้ งและครบถว้ น และทาํ การปรับปรุงแกไ้ ขในกรณีทีเอกสารมีขอ้ ผดิ พลาดตอ้ งแกไ้ ขใหม่ ถา้ เป็นขอ้ มูลทีสาํ คญั เช่นตวั เลขทางการเงินทีจะ ยอมใหค้ ลาดเคลือนไม่ไดค้ วรส่งไปยงั แหล่งทีใหเ้ อกสารขอ้ มูลทาํ การแกไ้ ขปรับปรุง การบรรณาธิกรเบืองตน้ นีนบั วา่ เป็นสิงสาํ คญั ยงิ เพราะ ถา้ ขอ้ มูลผดิ พลาดยอ่ มทาํ ใหผ้ ลสรุป หรือรายงานทีไดผ้ ดิ พลาดไปดว้ ย - การลงรหัส (Coding) หมายถึง การใชร้ หสั แทนขอ้ มูล เช่น จากขอ้ มูลเกียวกบั ภูมิลาํ เนาของนกั ศึกษาอาจจาํ แนกไดเ้ ป็นเขตๆ 3. การประมวลผล ในส่วนของการประมวลผลแฟ้มขอ้ มูล หมายถึง การสร้างความสมั พนั ธ์ของขอ้ มูลระหวา่ งแฟ้มขอ้ มูลการ ออกแบบโปรแกรมเพือการประมวลผลแฟ้มขอ้ มูลต่างๆ เมือผา่ นการรวบรวมและเตรียมขอ้ มูลแลว้ เราสามารถใชว้ ธิ ีการประมวลผลวธิ ีใดวธิ ี หนึง หรือหลายวธิ ีดงั ทีไดก้ ล่าวมาแลว้ เช่น การคาํ นวณ การเรียงลาํ ดบั เป็นตน้ เพือใหไ้ ดผ้ ลลพั ธ์เป็นขอ้ สนเทศ ซึงอาจจะอยใู่ นรูปรายงาน ตาราง หรือกราฟ วธิ ีการประมวลผลขอ้ มูลโดยใชค้ อมพวิ เตอร์ มี 2 วธิ ี

205 1. การประมวลผลแบบเชือมตรง (online processing) หมายถึง การทาํ งานในขณะทีขอ้ มูลเดินทางไปบนสายสญั ญาณเชือมต่อ จากเครืองปลายทาง (terminal) ไปยงั ฐานขอ้ มูลของเครืองหลกั ทีใชใ้ นการประมวลผล การประมวลผลแบบเชือมตรงจึงเป็นการประมวลผล โดยทนั ทีทนั ใด เช่น การจองตวั เครืองบิน การซือสินคา้ ในหา้ งสรรพสินคา้ การฝากถอนเงินผา่ นตูเ้ อทีเอม็ อาจกล่าวไดว้ า่ การประมวลผล แบบเชือมตรงจึงเป็นวธิ ีการทีใชก้ นั มากในปัจจุบนั 2. การประมวลผลแบบกล่มุ (batch processing) หมายถึง การประมวลผลในเรืองทีสนใจเป็นครังๆ เช่น เมือตอ้ งการทราบผล สาํ รวจความนิยมของประชาชนต่อการเลือกตงั สมาชิกสภาผแู้ ทนราษฎร หรือทีเรียกวา่ โพล (poll) กม็ ีการสาํ รวจขอ้ มูลโดยเกบ็ รวบรวม ขอ้ มูล เมือเกบ็ รวบรวมขอ้ มูลไดแ้ ลว้ กน็ าํ มาป้อนเขา้ เครืองคอมพิวเตอร์ แลว้ นาํ ขอ้ มูลนนั มาประมวลผลตามโปรแกรมทีไดก้ าํ หนดไว้ เพือ รายงานผล หรือสรุปผลหาคาํ ตอบ กรณีการประมวลผลแบบกลุ่มจึงกระทาํ ในลกั ษณะเป็นครังๆ เพือใหไ้ ดผ้ ลลพั ธ์ โดยจะตอ้ งมีการรวบรวม ขอ้ มูลไวก้ ่อน ซึงในการประมวลผลทงั สองแบบนีเป็นวธิ ีการทีใชค้ อมพวิ เตอร์ช่วยดาํ เนินการกบั ขอ้ มูลจาํ นวนมากเพือแยกแยะ คาํ นวณ หรือดาํ เนิน การตามทีกาํ หนดไวใ้ นโปรแกรม การทาํ งานของคอมพิวเตอร์ในการประมวลผลจึงตอ้ งมีซอฟตแ์ วร์หรือโปรแกรมคอยสงั การเพอื ใหไ้ ด้ ผลลพั ธ์ในรูปแบบทีตอ้ งการ

206 หน่วยการเรียนรู้ที 3 การใช้เทคโนโลยสี ารสนเทศอย่างปลอดภยั กล่มุ สาระการเรียนรู้วทิ ยาศาสตร์ สาระที 4 เทคโนโลยี มาตรฐานว 4.2 เขา้ ใจและใชแ้ นวคิดเชิงคาํ นวณ ในการแกป้ ัญหาทีพบในชีวติ จริงอยา่ งเป็น ขนั ตอนและเป็นระบบ ใชเ้ ทคโนโลยี สารสนเทศ และการสือสารในการเรียนรู้ การทาํ งาน และการแกป้ ัญหาไดอ้ ยา่ งมีประสิทธิภาพ รู้เท่าทนั และมีจริยธรรม ตวั ชีวดั ว. . ม. / ใชเ้ ทคโนโลยสี ารสนเทศอยา่ งปลอดภยั ใชส้ ือและแหล่งขอ้ มูลตามขอ้ กาํ หนดและขอ้ ตกลง สาระสําคญั 1. ภยั คุดคามจากการใชเ้ ทคโนโลยสี ารสนเทศ และการป้องกนั 2. การใชเ้ ทคโนโลยสี ารสนเทศ สาระการเรียนรู้ 1. อธิบายวธิ ีการปกป้องขอ้ มูลส่วนตวั 2. วเิ คราะห์ผลกระทบจากการใชเ้ ทคโนโลยสี ารสนเทศ 3. อภิปรายวธิ ีการใชเ้ ทคโนโลยสี ารสนเทศอยา่ งปลอดภยั 4. นาํ สือหรือแหล่งขอ้ มูลไปใชใ้ หถ้ ูกตอ้ งตามขอ้ ตกลงการใชง้ าน คุณลกั ษณะทพี งึ ประสงค์ . มีวนิ ยั . ใฝ่ เรียนรู้ . มุ่งมนั ในการทาํ งาน

208 ปัจจุบนั เทคโนโลยสี ารสนเทศมีบทบาทสาํ คญั และส่งผลต่อการเปลียนแปลงในทุกๆ ดา้ น ไม่วา่ จะเป็นดา้ นการดาํ เนินชีวติ ประจาํ วนั การศึกษา เศรษฐกิจ สงั คม การเมือง และการดาํ เนินงานในทุกสาขาอาชีพ ทาํ ใหท้ ึกคนในสงั คมตอ้ งมีการปรับตวั และพฒั นาตนเองใหท้ นั ต่อการเปลียนแปลงของเทคโนโลยสี ารสนเทศ การใชง้ านเทคโนโลยสี ารสนเทศมีทงั คุณและโทษนกั เรียนตอ้ งศึกษาเพอื ใชง้ านไดอ้ ยา่ งรู้เท่า ทนั และสามารถใชช้ ีวติ อยไู่ ดอ้ ยา่ งปลอดภยั ในสงั คมปัจจุบนั นอกจากนนียงั ตอ้ งสามารถเลือกและใชเ้ ทคโนโลยสี ารสนเทศดา้ นต่างๆ อยา่ ง สร้างสรรคแ์ ละมีจริยธรรม การใชง้ านไอทีโดยการเชือมต่อกบั อินเตอร์เน็ต ช่วยใหผ้ ใู้ ชส้ ามารถติดต่อสือสาร และเขา้ ถึงขอ้ มูล จากแหล่งขอ้ มูลทีอยทู่ วั โลกไดส้ ะดวก และรวดเร็ว แต่ในทางกลบั กนั ถา้ ใชง้ านไม่ระมดั ระวงั ขาดความ รอบคอบอาจก่อใหเ้ กิดปัญหาจากการคุกคามการหลอกลวงผา่ นเครือข่ายได้ นอกจากนีการเขา้ ถึงเนือหาที ไม่เหมาะสมกส็ ร้างปัญหาดา้ นสงั คมใหก้ บั เยาวชนจาํ นวนมาก ดงั นนั การเรียนรู้การใชง้ านไอทีไดอ้ ยา่ ง เหมาะสมและปลอดภยั จึงมีความจาํ เป็นอยา่ งยงิ โลกไซเบอร์ทุกวนั นีกา้ วหนา้ อยา่ งรวดเร็วจนแทบตามไม่ทนั ขณะเดียวกนั บรรดา มิจฉาชีพกฉ็ วยโอกาสเกาะขบวนรถไฟสาย เทคโนโลยขี บวนนีดว้ ย โดยอาศยั ช่องโหวข่ องระบบปฏิบตั ิการ บวกกบั ความรู้เท่าไม่ถึงการณ์ และการละเลยในการศึกษาขอ้ แนะนาํ ต่างๆ ของผใู้ ชค้ อมพวิ เตอร์ ซึงเป็นเสมือนหนึงเปิ ดประตูตอ้ นรับโจรไซเบอร์เขา้ โดยไม่รู้ตวั และดว้ ยหนา้ ทีการงานทุกวนั นีเราต่างกเ็ ป็นคนหนึงที

209 ไดช้ ือวา่ เป็น “ผใู้ ชค้ อมพิวเตอร์” ปัจจุบนั เทคโนโลยไี ดเ้ ป็นทีสนใจของคนทุกมุมโลกทุกสาขา เทคโนโลยจี ึงเป็นทีแพร่หลายและนาํ มาใชใ้ น การทาํ งานและชีวติ ประจาํ วนั การเรียนการศึกษาในสมยั นีจึงมีหลกั สูตรทีเกียวกบั เทคโนโลยเี ขา้ ไปดว้ ย เทคโนโลยที ีลาํ หนา้ ทีสุดทีคนทวั โลกใหค้ วามสาํ คญั คือ เพราะปัจจุบนั นีอุปกรณ์หลายชนิดกต็ อ้ งพึงพาเทคโนโลยสี ารสนเทศ ไม่วา่ จะเป็นคอมพวิ เตอร์ โทรศพั ท์ มือถือ PDA GPS ดาวเทียม และไม่นานมานีมีการออกพระราชบญั ญตั ิวา่ ดว้ ยการกระทาํ ความผดิ เกียวกบั คอมพิวเตอร์ เป็นการบ่งบอกวา่ สงั คมใหค้ วาม สาํ คญั แก่คอมพิวเตอร์ จึง ไดม้ ีการออกพรบ.วา่ ดว้ ยการกระทาํ ความผดิ เกียวกบั คอมพิวเตอร์ พ.ศ. ประกาศในราชกิจจานุเบกษา เมือวนั ที 18 มิถุนายน 2550 และมีผลบงั คบั ใชใ้ นวนั ที 19 กรกฎาคม 2550 กฎหมายนีเป็นกฎหมายทีกาํ หนดฐานความผดิ และบทลงโทษสาํ หรับ การกระทาํ ความผดิ ทาง คอมพิวเตอร์ในรูปแบบใหม่ ซึงกฎหมายทีผา่ นมายงั ไม่สามารถรองรับหรือครอบคลุมถึง เช่น การกระทาํ ใหร้ ะบบ คอมพวิ เตอร์ไม่สามารถทาํ ตามคาํ สงั ทีกาํ หนดไวห้ รือทาํ ใหก้ ารทาํ งานผดิ พลาดไปจากคาํ สงั ทีกาํ หนดไว้ หรือใชว้ ธิ ีการใดๆ เขา้ ล่วงรู้ขอ้ มูล แกไ้ ข หรือทาํ ลายขอ้ มูลของบุคคลอืนในระบบคอมพิวเตอร์โดยมิชอบ ฯลฯ ก่อนอืนเราทุกคนควรตอ้ งรู้ทนั เล่ห์กลลวงทีเกิดขึนในโลกออนไลน์ ซึงภยั ร้ายดงั กล่าว 10 อนั ดบั ดงั นี 1. ภยั จากไวรัสคอมพวิ เตอร์และอเี มล์แปม(Computer Virus and E-mail SPAM) ปัจจุบนั ไวรัสคอมพิวเตอร์นิยมแพร่ผา่ นอุปกรณ์เชือมต่อยเู อสบี(USB) เช่น แฟลชไดรฟ์ ทมั บไ์ ดรฟ์ และเครืองเล่นเอม็ พี 3 เป็นตน้ ซึง โปรแกรมสแกนไวรัสไม่สามารถตรวจพบไวรัสได้ และเมือไวรัสเขา้ มาอยใู่ นเครือง นอกจากจะแพร่ไวรัสในคอมพิวเตอร์แลว้ ยงั เป็นการ เปิ ดใหแ้ ฮก็ เกอร์เขา้ มาทาํ ลายขอ้ มูลไดอ้ ีกเช่นกนั ส่วนสแปมสามารถแพร่ทางเครือข่ายอินเทอร์เน็ตความเร็วสูง เช่น ขอ้ มูลผใู้ ชบ้ ริการเครือ ข่ายอินเทอร์เน็ตความเร็วสูง 5 แสนราย มีผตู้ ิดสแปมถึง 5 หมืนราย ดงั นนั จึงควรติดตงั โปรแกรมป้องกนั สแปม เพอื เป็นการช่วยคดั กรอง สแปม โดยสแปมเมล์ (Spam mail) เกิดจากผไู้ ม่หวงั ดีใชจ้ ดหมายอิเลคทรอนิคหรืออีเมลเ์ ป็นเครืองมือส่ง ขอ้ มูลอนั ตรายใหก้ บั ผใู้ ชง้ าน อินเทอร์เน็ตทงั ในรูปแบบการแนบไฟลห์ รือในรูป แบบของเนือหาล่อลวง ส่วนวธิ ีการป้องกนั คือ ใชร้ ะบบแอนตีสแปมและไวรัสป้องกนั ที อินเทอร์เน็ตเกตเวย์ หรือใชซ้ อฟตแ์ วร์กรองสแปมเมลใ์ นจุดทีระบบของผใู้ ชร้ ับ-ส่งอีเมลจ์ ากอินเทอร์เน็ต นอกจากนนั ถา้ ไม่จาํ เป็นอยา่ เผย แพร่อีเมลต์ นเองในเวบ็ บอร์ดและเวบ็ ไซตข์ องตนเอง แต่ในกรณีจาํ เป็นควรทาํ เป็นรูปภาพ หรือ ในรูปเอชทีเอม็ เอลแทน นอกจากนียงั มี สปาย แวร์ (Spyware) ซึงมีสาเหตุหลกั มาจากการเขา้ ชมเวบ็ ไซตต์ ่างๆ แบบไม่ระมดั ระวงั และดาวนโ์ หลดไฟลต์ ่างๆ ทีมีสปายแวร์ติดมาดว้ ย ซึง สปายแวร์กค็ ือ โปรแกรมเลก็ ๆ ทีถูกเขียนขึนมาสอดส่อง (สปาย)การใชง้ านเครืองคอมพิวเตอร์ของเรา โดยมีจุดประสงคอ์ าจจะเพอื โฆษณา สินคา้ ต่างๆ สปายแวร์บางตวั กส็ ร้างความราํ คาญ เพราะจะเปิ ดหนา้ ต่างโฆษณาบ่อยๆ พร้อมกนั หลายๆ หนา้ ต่าง แต่บางตวั อาจจะทาํ ใหใ้ ชอ้ ิน เตอร์เน็ทไม่ไดเ้ ลย 2. ภยั จากการขโมยข้อมูล (Unauthorized Logical & Physical Access) ขอ้ มูลสาํ คญั ทางคอมพวิ เตอร์จะอยใู่ นฮาร์ดดิสก์ ซึงมีวธิ ีนาํ ออกมา 2 แบบ คือ คนบุกเขา้ ไปขโมยฮาร์ดดิสกอ์ อกจากเครือง คอมพวิ เตอร์ และแฮก็ เกอร์เขา้ ไปขโมยขอ้ มูลในฮาร์ดดิสกป์ ระเภทแรก คือ การเปลียนแปลง ทาํ ลาย ยกเลิก หรือขโมยขอ้ มูลทางคอมพิวเตอร์ โดยผดิ กฎหมาย ส่วนใหญ่จะกระทาํ โดยพนกั งานในองคก์ รนนั เองเพือตอ้ งการปกปิ ดธุรกรรมทีไม่ ชอบ แต่ถา้ เป็นคนนอกจะเป็นการยาก มากทีจะเจาะเขา้ ไปในระบบไดแ้ ละส่วนมากจะทาํ เพอื เปลียนแปลงขอ้ มูลต่างๆ ส่วนอีกประเภทหนึงนนั คือ ผทู้ ีพยายามหาวธิ ีการ หรือหา ช่องโหวข่ องระบบ เพือแอบลกั ลอบเขา้ สู่ระบบ เพอื ลว้ งความลบั หรือแอบดูขอ้ มูลข่าวสาร บางครังมีการทาํ ลายขอ้ มูลข่าวสาร หรือทาํ ความ เสียหายใหก้ บั องคก์ ร เช่น การลบรายชือลูกหนีการคา้ การลบรายชือผใู้ ชง้ านในระบบ ยงิ ในปัจจุบนั ระบบเครือข่ายเชือมโยงถึงกนั ทวั โลก ปัญหาในเรืองอาชญากรรมทางดา้ นเทคโนโลยี โดยเฉพาะในเรืองแฮกเกอร์กม็ ีใหเ้ ห็นมากขึน ผทู้ ีแอบลกั ลอบเขา้ สู่ระบบจึงมาไดจ้ ากทวั โลก และบางครังกย็ ากทีจะดาํ เนินการใดๆได้ ลกั ษณะของการก่อกวนในระบบทีพบเห็นมีหลายรูปแบบ แต่ละรูปแบบมีวธิ ีการแตกต่างกนั เทคนิค วธิ ีการทีใชก้ แ็ ตกต่างกนั ออกไป 3. ภยั ทเี กดิ จากการใช้อนิ เทอร์เน็ต (Social Engineering, Identity Theft, Phishing, and Pharming Tactics, etc.) เป็นภยั ทีสร้างความเสียหายแก่ทรัพยส์ ินมากทีสุด เช่น การส่งอีเมลแ์ จง้ วา่ ถูกลอตเตอรี ใหโ้ อนเงินภาษีไปใหก้ ่อน หรือส่งอีเมลเ์ พือ เขา้ สู่เวบ็ ไซตธ์ นาคารต่างๆ ทีลวงขึนมาเพือใหเ้ หยอื กรอกรหสั สมาชิกและรหสั ผา่ น ก่อนนาํ ขอ้ มูลไปทาํ ธุรกรรมทางการเงินแทนเจา้ ของเงิน ตวั จริง รวมถึงการโทรศพั ทล์ วงถามขอ้ มูลบตั รเครดิตเพอื นาํ ไปทาํ บตั รเครดิตปลอมดว้ ย

210 Internet คือสือประเภทหนึงซึงขึนอยกู่ บั ผใู้ ชง้ านทีจะใชใ้ นทางทีถูกหรือผดิ ตามวตั ถุประสงค์ แต่ในโลกมืดของ Internet ถา้ ผใู้ ชอ้ ินเตอร์เน็ต ไปในทางทีผดิ กจ็ ะก่อใหเ้ กิดปัญหาตามมาดงั นี ปัญหา: การถูกล่อลวงไปการทาํ มดิ มี ริ ้ายซึงเกดิ จาก Social Engineering หลีกเลียงการพบคนแปลกหนา้ ทาง Internet วยั รุ่นมกั จะพดู คุยหรือหาเพอื น มีสงั คมของเขาโดยทาํ การพิมพข์ อ้ ความเสนทนาผา่ นพวก Instant Messenger (IM หรือโปรแกรมสนทนา) สิงทีเกิดขึนตามมาทีเราเห็นบ่อยๆ คือการนดั หมายพบปะกนั เพราะฉะนนั สิงทีควรหลีกเลียงคือ ไม่ ควรนดั พบเจอบุคคลแปลกหนา้ ในทีลบั ตาคน หรือนดั ไปกนั 2 ต่อ 2 ถา้ จะมีการพบเจอกนั จริงๆ ควรพาเพือน หรือบุคคลทีสนิทไปดว้ ย เพอื หลีกเลียงการถูกพาไปล่อลวง ข่มขืนหรือกระทาํ ชาํ เรา ปัญหา : การถูกแอบอ้างชือไปใช้ในทางทไี ม่ดี ( Identity Theft ) หลีกเลียงการใหข้ อ้ มูลส่วนตวั เช่น ชือ นามสกลุ ทีอยู่ เบอร์โทรศพั ทม์ ือถือจริงบนเวบ็ ไซตท์ ีไม่ไดม้ าตรฐาน (เวบ็ ไซตท์ ีดีจะมีตวั ช่วยในการ ปกปิ ดขอ้ มูลเหล่านีได)้ – เพราะวา่ การทีเราเขา้ ไปพดู คุยกบั คนแปลกหนา้ นนั หรือเวบ็ หาเพือน หาคู่ทงั หลาย ไม่ควรอยา่ งยงิ ทีเราจะใหข้ อ้ มูล ส่วนตวั เหล่านนั ไป เพราะเราเองไม่สามารถทราบไดเ้ ลยวา่ เขามีความคิดอยา่ งไรกบั เรา วนั ดีคืนดีคุณอาจจะไดร้ ับโทรศพั ท์ หรือ SMS ทงั วนั โดยทีนอกจากคุณจะรําคาญแลว้ บางทีอาจจะมีคนโทรมาวา่ กล่าวตาํ หนิคุณเนืองจากพวกโรคจิตเอาเบอร์โทรศพั ท์ หรือชือเล่นของคุณทีคุณ ไปโพสไว้ เอาไปโพสต่อไวใ้ นกระทูก้ เ็ ป็นได้ ปัญหา : การทาํ ธุรกรรมทางการเงนิ ( Phishing, and Pharming Tactics ) เป็นการหลอกลวงขนั สูงทางอินเตอร์เน็ตในรูปแบบของการปลอมแปลง อีเมล์ หรือขอ้ ความทีสร้างขึนเพอื หลอกใหเ้ หยอื เปิ ดเผยขอ้ มูลทาง ดา้ นการเงินหรือขอ้ มูลส่วนตวั ต่างๆ อาทิ ขอ้ มูลหมายเลขบตั รเครดิต หมายเลขประจาํ ตวั ผใู้ ช้ (User Name) รหสั ผา่ น (Password) หมายเลข บตั รประจาํ ตวั โดยการส่งอีเมล์ หรือขอ้ ความทีอา้ งวา่ มาจากองคก์ รต่างๆ ทีท่านติดต่อดว้ ย เช่น บริษทั ใหบ้ ริการ Internet หรือ ธนาคาร โดย ส่งขอ้ ความเพอื ขอใหท้ ่าน “อพั เดท” หรือ “ยนื ยนั ” ขอ้ มูลบญั ชีของท่าน หากท่านไม่ตอบกลบั อีเมลด์ งั กล่าว อาจก่อใหเ้ กิดผลเสียตามมาได้ เพอื ใหอ้ ีเมลป์ ลอมทีส่งมานนั ดูสมจริง ผสู้ ่งอีเมลล์ วงนีจะใส่ hyperlink ทีอีเมล์ เพอื ใหเ้ หมือนกบั URL ขององคก์ รนนั ๆ จริง ซึงแทท้ ีจริงแลว้ มนั คือเวบ็ ไซตป์ ลอม หรือหนา้ ต่างทีสร้างขึน หรือทีเราเรียกวา่ “เวบ็ ไซตป์ ลอมแปลง” (Spoofed Website) เมือท่านเขา้ สู่เวบ็ ไซตป์ ลอมเหล่านี ท่านอาจถูกล่อลวงใหก้ รอกขอ้ มูลส่วนตวั ทีจะถูกส่งไปยงั ผผู้ ลิตเวบ็ ไซตล์ วง เหล่านี เพือนาํ ขอ้ มูลของท่านไปใชป้ ระโยชน์ เช่น ซือสินคา้ สมคั รบตั รเครดิต หรือแมแ้ ต่ทาํ สิงผดิ กฎหมายอืนๆ ในนามของท่าน ปัญหา: การทเี ดก็ เล่นเกมส์มากจนเกนิ ไป อยา่ ปล่อยใหบ้ ุตรหลานของท่านอยบู่ นโลกของเกมส์ออนไลนม์ ากจนเกินไป – แทท้ ีจริงแลว้ เกมส์ทีดีสามารถช่วยในการพฒั นาทกั ษะ ตรรกะ ไหวพริบ ปฏิภาณฯ แต่สิงทีแอบแฝงมากบั เกมส์ออนไลนส์ มยั นีกลบั กลายเป็น “ยาเสพติด” ทาํ นองทีวา่ ไม่ติดแต่ขาดไม่ได้ ถา้ ความสามารถ ของตวั ละครในเกมส์ไม่เพิม วนั นีไม่นอน (เสียทงั สุขภาพกายและจิตใจ) Ø เกมส์สมยั นีมีทงั เรืองเพศทีแฝงมากบั สือ ซึงโลกความจริงทีคุณและเขาเป็นไม่ได้ แต่โลกเสมือนจริงนนั ทาํ ได้ ตวั ตนแทจ้ ริง ของผเู้ ล่นเป็นเดก็ ผชู้ าย แต่อยากกลายเป็นผหู้ ญิงทาํ ใหค้ วามคิดของเดก็ ถูกสิงเร้าและอยากใหเ้ กิดความ รู้สึกในการเบียงแบนทางเพศ Ø การซือขายของในโลกเสมือนจริง การซือบตั รเติมเงินเพอื แลกของหรือ Item ในเกมส์ทีมาในรูปแบบของการซือการ์ดตาม ร้านสะดวกซือ หรือผา่ นโทรศพั ทม์ ือถือในการเติมแตม้ ซึงโลกความจริงคุณกาํ ลงั เอาเงินไปแลกกบั รหสั 0 กบั 1 เพือใหไ้ ดค้ วามรู้สึกวา่ คุณ แขง็ แกร่งมากในเกมส์ แต่คุณกลบั อ่อนแอมากในโลกความจริง พอ่ แม่ควรอบรมดูแลใหเ้ ดก็ ไดเ้ รียนรู้จกั โลกความจริง โลกเสมือนจริง ใหเ้ ขา ไดเ้ ขา้ ใจและแยกแยะได้ และเดก็ บางคนไม่เขา้ ใจวา่ เงินทีพอ่ แม่หามาไดอ้ ยา่ งยากลาํ บากนนั กาํ ลงั สูญไป กบั ความบนั เทิงทีจบั ตอ้ งไม่ได้ Ø เกมส์มีความทารุณโหดเหียม ซึงไม่เหมาะสมกบั เดก็ การทีเดก็ ไม่บรรลุนิติภาวะ หรือเกมส์บางเกมส์ไม่เหมาะสาํ หรับอายุ ของเขา ควรแนะนาํ วา่ อยา่ ปล่อยใหเ้ ขาเล่น แมจ้ ะมีความรู้สึกวา่ มนั ไม่เสียหาย แต่เป็นเพราะวา่ เกมส์ทียงิ กนั มีเลือดพงุ่ มีการทาํ ร้ายร่างกายกนั สิงเหล่านีเดก็ สามารถรับ และซึมซบั ไดง้ ่ายอยา่ งมาก และส่งผลต่อความคิด การกระทาํ ของเขาเมือโตเป็นผใู้ หญ่ บางทีเขาอาจจะหยบิ มีดแทง ใครซกั คนดว้ ยความแคน้ โดยทีเขาไม่รู้สึกผดิ กไ็ ด้ ปัญหา : การทเี ดก็ ดูสือลามกอานาจาร ส่งผลให้เดก็ มนี ิสัยทขี ดั ต่อวฒั นธรรม ควรหลีกเลียงการปล่อยใหบ้ ุตรหลานของคุณใชเ้ น็ตในทีลบั ตาคนบางครอบครัวเอา คอมพิวเตอร์ไวใ้ นหอ้ งนอนของลูกๆ โดยทีไม่ไดส้ อด ส่องดูแล จึงมกั จะเป็นข่าวทีวา่ มีนดั หมายกนั ออกไปและกระทาํ ผดิ ทางเพศกนั บางรายทีพอ่ แม่ซือกลอ้ ง (Webcam) ใหล้ ูกกม็ ีข่าวถึงการโชว์

211 เนือหนงั ผา่ นทางกลอ้ งและถูกบนั ทึกไปลงใน Internet และถูกข่มข่กู นั กม็ ี หรือบางรายถูกล่อลวงหายไปจากบา้ นจนพอ่ แม่ตอ้ งไปแจง้ ความ หรือบางรายถูกข่มข่ใู หท้ าํ ผดิ ทางเพศกม็ ี อยากจะแนะนาํ วา่ ถา้ เป็นไปได้ พอ่ แม่ควรจะสอดส่องดูแล ควรตงั เครืองคอมพวิ เตอร์ไวใ้ นทีๆผู้ ปกครองสามารถสอดส่องดูแลเขาได้ หรือควรจะตรวจเช็คประวตั ิการใชง้ านของลูกคุณบา้ ง คอยตกั เตือนเขาเมือเขา้ ไปในเวบ็ ทีไม่เหมาะสม พอ่ แม่จาํ เป็นตอ้ งเรียนรู้ เรืองเทคโนโลยใี หเ้ ป็นและใชเ้ วลากบั เขาดว้ ย ปัญหา : การทเี ดก็ ก้าวร้าว เนืองจากตดิ internet ทาํ ให้ไม่สุงสิงกบั ครอบครัว หรืออาจเกดิ จากผู้ปกครองไม่ควบคุมดูแล หรือ ดูแลไม่ทวั ถงึ ควรหลีกเลียงในการโพสด่าดว้ ยขอ้ ความหยาบคาย เขียนขอ้ ความทีลบหลู่ในเรืองของบุคคล ชาติ ศาสนา หรือพระมหากษตั ริย์ หรือส่งต่ออีเมลท์ ีมีเนือหาขอ้ ความดงั กล่าวขา้ งตน้ ไปยงั ผอู้ ืนโดยขาด สาํ นึก และรับผดิ ชอบ อยา่ งรูปทีไม่เหมาะสม คลิปวดี ีโอจากโทรศพั ท์ การเขียนขอ้ ความด่าทอเพือความสะใจ หรือคาํ ติฉินนินทาผอู้ ืนนนั สามารถเป็นหลกั ฐานในการดาํ เนินคดีได้ เพราะทุกๆขอ้ ความทีคุณโพส จะมี IP Address ในการใชง้ าน และสิงทีเป็นเรืองไม่ดีนนั สามารถแพร่กระจายไดอ้ ยา่ งรวดเร็วเหมือนกบั การ แพร่ระบาดของเชือโรค ซึงคุณ อาจจะเป็นชนวนหรือตวั แปรตวั หนึงในการตดั สินและทาํ ลายชีวติ คนอืนให้ พงั ไดเ้ พยี งแค่คลิกเดียวเท่านนั ปัญหา : มคี นมาเผยแพร่บทความ ทาํ ให้ง่ายต่อการหา downloads หลกี เลยี งการใช้งาน ซอฟแวร์ทลี ะเมดิ ลขิ สิทธิ หลายๆ คนอาจจะชอบใชซ้ อฟแวร์ทีผดิ กฎหมาย บางคนกด็ าวโหลดเพลง หนงั ละคร โปรแกรม มาเพอื ใชง้ าน แต่ถา้ ทุกคนละเมิดลิขสิทธิ หรือละเมิดทรัพยส์ ินทางปัญญา ทาํ ใหเ้ ชือไดเ้ ลยวา่ การทุ่มเทเวลาของคนทีสร้างสรรคผ์ ลงานอาจจะกลายเป็นของ ราคาถูกโดยการขาด จิตสาํ นึกของผใู้ ชง้ าน อยา่ สร้างค่านิยมผดิ ๆ ทีวา่ ใชข้ อง copy แลว้ ไม่เสียหาย เพราะใครๆ เขากใ็ ชก้ นั ปัญหา :โฆษณาตาม internet และเดก็ เกดิ ความอยากรู้อยากเห็นและ เปิ ดตามเข้าไปดูเพือคายความสงสัย หลีกเลียงการเปิ ดเวบ็ ไซตท์ ีไม่เหมาะสม เช่น เวบ็ โป๊ เวบ็ ทีมีภาพยวั ยวนทางเพศ เวบ็ ไซตท์ ีมีการดาวโหลดซอฟแวร์ละเมิดลิขสิทธิ เวบ็ ไซตท์ ี สอนการโจรกรรมขอ้ มูลฯ เพราะเวบ็ ไซตเ์ หล่านีตวั คุณเองอาจจะเป็นคนถูกโจรกรรมขอ้ มูลเสียงเอง หรือไดร้ ับสิงทีไม่พึงประสงคเ์ ขา้ มาใน เครือง อยา่ งเช่นไวรัส หรือหนอนคอมพวิ เตอร์ (Worms) และสิงทีเลวร้ายกวา่ นนั คือถา้ บุตรหลานของคุณใชง้ านคอมพวิ เตอร์อยู่ แลว้ อยดู่ ีๆ มีหนา้ ต่างทีเปิ ดขึนเองอตั โนมตั ิเป็นรูปทีไม่พงึ ประสงค์ และพวกเขาเขา้ ไปคลิก อะไรจะเกิดขึน ปัญหา : ผู้ทเี ปิ ดให้บริการทาง website มบี ริการโฆษณา และไม่ได้ตรวจให้มนั ใจว่าผู้มาใช้บริการคือใคร ทาํ ให้เกดิ การล่อลวงขนึ ระวงั อย่าหลงเชือคาํ โฆษณา หลวงลวง ต้มตุ๋น จากการซือขายสินค้าผ่านสือ Internet เนืองจากสินคา้ ทีคุณซืออาจจะเป็นของปลอม หรือของไม่ไดค้ ุณภาพกไ็ ด้ อยา่ คิดแต่ไดข้ องถูก ใชง้ านแบบวา่ ไดผ้ ลทนั ตาเห็นแบบดืมป๊ ุบกิน ปับคุณกลายเป็นยอดมนุษย์ พวกมิจฉาชีพส่วนใหญ่มกั จะใหค้ ุณโอนเงินไปก่อนเสมอ และลวงใหค้ ุณกรอกทีอยู่ ทงั ๆ ทีคนเลวพวกนีไม่มีที อยจู่ ริง บา้ งกจ็ ะปิ ดโทรศพั ทห์ นีหายหลงั จากทีคุณโอนเงินเสร็จเรียบร้อยแลว้ กม็ ี เรืองของการซือขายของสินคา้ ควรศึกษาใหด้ ีถึงตวั เวบ็ ไซต์ ทีทาํ การเปิ ดขาย วา่ มีคุณภาพหรือไม่ หรือคุณภาพของสินคา้ เองกด็ ี หรือเวบ็ ไซตน์ นั ๆ มีการจดั ระดบั ความน่าเชือถือของผขู้ ายสินคา้ หรือไม่ มีทีอยตู่ ิดต่อทีสามารถตามผซู้ ือไดไ้ หม ปัญหา : เมือได้รับจดหมายลูกโซ่จากเพือนแล้ว เกดิ การกลวั เรืองทเี ขาส่งมาจงึ ทาํ ให้เราส่งจดหมายต่อๆไป อยา่ หลงเชือจดหมายลูกโซ่ จดหมายเวยี น หรือโฆษณาชวนเชือ – เช่นถา้ คุณไดร้ ับจดหมายฉบบั นี ใหส้ ่งไปหาเพอื นอีก 15 คนแลว้ คุณจะได้ รับสิงนนั สิงนี ตวั คุณเองจะกลายเป็นคนปล่อยเมลข์ ยะเสียเอง ปัญหา : การเอาเมล์ไปปล่อยใน website ต่างๆ เช่น การสมคั รสมาชิก หรือการตอบกระทู้ต่างๆอย่าเปิ ดอ่าน e-mail หรือรับ fileจากคนทคี ุณไม่รู้จกั เพราะสิงทีไม่พงึ ประสงคอ์ าจทาํ ใหเ้ ครืองของคุณไม่สามารถใชง้ านไดก้ เ็ ป็น ได้ หรือบางทีคุณอาจจะไดร้ ับเมลข์ ยะ เพิมเป็นจาํ นวนมหาศาลโดยทีคุณไม่รู้ตวั เลย เพราะการทีคุณเปิ ดอ่านจะมีการส่งขอ้ มูลกลบั ไปยงั ผสู้ ่ง Spam mail (เมลข์ ยะ) วา่ อีเมลข์ องคนที เปิ ดอ่านยงั มีการใชง้ านอยู่ เพราะฉะนนั คนส่งกย็ งิ ส่งมาเพิมใหอ้ ีก ปัญหา : ความอยากรู้อยากลองของคนเราอย่าหลงเข้าไปเล่นการพนันบน Internet อาจทาํ ใหค้ ุณหมดตวั จากบตั รเครดิต หมดเนือหมดตวั โดยไม่รู้ตวั เวบ็ พวกนีมนั จะลวงใหผ้ เู้ ล่นเขา้ ไปเล่นโดยจะบอกวา่ ใหเ้ งินทดลองเล่น เมือ ผเู้ ล่นติด ภายหลงั คุณอาจจะเพิงคิดไดว้ า่ ”โลกนีคนเรากแ็ พเ้ ป็นเหมือนกนั และการหมดตวั เพยี งชวั เวลาแป๊ บเดียวมนั มีจริง” เรืองบางเรืองไม่ ไกลเกินนิวมือทีคลิกจริงๆ 4. ภยั จาก Web Application Hacking

212 เป็นภยั จากแฮก็ เกอร์ทีเขา้ มาเปลียนหนา้ เวบ็ ไซตใ์ หไ้ ม่สามารถใชง้ านได้ อยา่ งกรณีทีเคยเกิดขึนกบั เวบ็ ไซตข์ องกระทรวงไอซีที ไทย โพส และไอเอน็ เอน็ เป็นตน้ ซึงในอดีตกลุ่มแฮก็ เกอร์แค่ทาํ เป็นเรืองสนุก แต่ปัจจุบนั แฮก็ เกอร์ทาํ เพอื ตอ้ งการเงิน และเปลียนรูปแบบการแฮก็ เกอร์หนา้ แรกของเวบ็ ไซตม์ าเป็นหนา้ เวบ็ ไซตด์ า้ นใน เพอื ฝังตวั และรอจงั หวะลว้ งขอ้ มูลความลบั จากองคก์ รนนั ๆ โดยเฉพาะองคก์ รดา้ น ข่าวสารอาจถูกกลุ่มแฮก็ เกอร์เฝ้าจบั ตามองเป็นพเิ ศษ 5. โปรแกรมดาวน์โหลด, การโจมตรี ะบบสาธารณูปโภคพืนฐาน (Cyber Terrorist/Critical Infrastructure Attack (SCADA attack)) เกิดจากการเจาะระบบเพือโจมตีระบบสาธารณูปโภค เคยเกิดขึนแลว้ ล่าสุดเมือเดือนมกราคม 2551 เจา้ หนา้ ทีประเทศหนึงจบั กมุ เดก็ ชายวยั 14 ปี ฐานดดั แปลงรีโมทคอนโทรลสลบั รางรถไฟ จนเกิดอุบตั ิเหตุรถไฟชนกนั และมีผไู้ ดร้ ับบาดเจบ็ ขณะทีโรงไฟฟ้านิวเคลียร์ ใน สหรัฐกงั วลใจต่อเรืองนีมาก จึงลองใหแ้ ฮก็ เกอร์เจาะระบบเขา้ ไปควบคุมระบบการทาํ งานของโรงไฟฟ้านิวเคลียร์ ซึงกท็ าํ ไดส้ าํ เร็จภายในไม่ กีนาที 6. ภยั จาก Spyware, ม้าโทรจนั (Trojan Horses), Keylogger and BHO แฮก็ เกอร์จะส่งตวั ไวรัสหรือสปายแวร์ เขา้ ไปฝังในเครืองคอมพิวเตอร์ทางช่องโหวต่ ่างๆ ของระบบปฏิบตั ิการ แลว้ สปายแวร์จะแจง้ กลบั มาทีแฮก็ เกอร์วา่ มนั กาํ ลงั เกาะอยใู่ นเครืองไหน แลว้ เมือนนั กเ็ สมือนเปิ ดประตูตอ้ นรับแฮก็ เกอร์เขา้ มาใชเ้ ครืองแทนคุณนนั เอง บิทเฟนเดอร์ ประเทศไทย หรือ Bitdefender (Thailand) ธุรกิจซอฟแวร์ป้องกนั ไวรัสทีมีประสิทธิภาพจากประเทศโรมาเนียเปิ ดเผยภยั ร้าย ราย เดือนทีกาํ ลงั คุกคามเครืองคอมพิเตอร์ผา่ นทางอินเตอร์เน็ต โดยงานนี บิทเฟนเดอร์ แลป็ ไดท้ าํ การสรุป 5 อนั ดบั เจา้ ตวั ร้าย ทีการแพร่กระจาย มาจากโปรแกรมดาวโหลด (Torrent ) ทีเรียกกนั วา่ “Warez” และโปรแกรมการสือสารแบบเครืองต่อเครือง หรือทีเรียกกนั วา่ “peer-to- peerplatform” ผา่ นทางเวบ็ ฟรีดาวนโ์ หลดต่างๆ (เวบ็ บิททอเร้นท์ ทีกาํ ลงั ฮอตในหมู่นกั ท่องเน็ตในบา้ นเรานนั เอง) เริมกนั ที อนั ดบั ที 1 Trojan.Clicker.CM มา้ โทรจนั สาย พนั ธุ์นีพบมากในเวบ็ ไซตท์ ีมีการแชร์ไฟลก์ นั เช่นเวบ็ ทอร์แรนดต์ ่าง ๆ ซึงเราเรียกวา่ “Warez” และพบมากในเวบ็ ทีมี การโพสพวกโฆษณาและสือล่อลวงต่างๆ เช่น ลิงคเ์ วบ็ โป๊ , ฟรีเกมส์ออนไลนเ์ ป็นตน้ อนั ดบั ที 2 Trojan.AutorunInf.Gen เจา้ มา้ โทรจนั สายพนั ธุ์นีจะติดมากบั อุปกรณ์ Removable ต่างๆ เช่น FashDrive, Memory Card, External Harddrive เป็นตน้ โดยเจา้ โทรจนั ตวั นีจะเขา้ ไปฝังตวั ใน Win32.Worm.Downadup and Worm.Zimuse เพือเจาะเขา้ ระบบคอมพวิ เตอร์ ซึงผใู้ ชต้ อ้ งพงึ ระมดั ระวงั เป็น อยา่ งมาก โดยเฉพาะการนาํ อุปกรณ์เหล่านีไปโอนถ่ายขอ้ มูลกบั บุคคลอืน เพราะมีเปอร์เซ็นเสียงสูงมาก อนั ดบั ที 3 Win32.Worm.Downadup.Gen โดยเจา้ ตวั ร้ายตวั นี จะเขา้ มาทาง Microsoft Windows Server Service RPC ผา่ นทางรีโมทโคต้ มนั จะจู่โจมเขา้ มาในระบบเครือข่าย ภายในองคก์ ร ซึงจะทาํ ใหผ้ ใู้ ชไ้ ม่สามารถอพั เดท Windowsและ ระบบ Securityได้ นอกจากนีเจา้ วายร้ายยงั ปลอมตวั เป็นโปรแกรมแอนตี ไวรัสเพอื ตบตาไม่ใหผ้ ู้ ใชท้ าํ การลบมนั ทิง ดงั นนั วธิ ีการป้องกนั เจา้ วายร้ายตวั นี คือการหมนั อพั เดทระบบและซอฟแวร์ป้องกนั ไวรัสบ่อยๆ ก็ จะสามารถช่วยไดเ้ ลยทีเดียว อนั ดบั ที 4 Exploit.PDF-JS.Gen ไวรัสสายพนั ธุ์นีจะมาใน รูปแบบของไฟลP์ DF โดยจะเขา้ ไปในช่องโหวข่ องโปรแกรม AdobePDF Reader เมือไฟล์ PDF ถูกเปิ ด Javascriptcode จะสงั ดาวโหลดอตั โนมตั ิและเมือนนั เจา้ ไวรัสสายพนั ธุ์นีกจ็ ะเขา้ ไปจู่โจม ทาํ ลายหรือขโมยขอ้ มูลสาํ คญั จากเครือง คอมพวิ เตอร์ในเครือข่ายทงั หมด ดงั นนั เมือตอ้ งการดาวนโ์ หลด ไฟล์ PDF ขอใหผ้ ใู้ ชไ้ ดท้ าํ การสแกนไฟลก์ ่อนทาํ การเปิ ดใชง้ านจะเป็นการ ช่วยป้องกนั ไดใ้ น อีกสเตปหนึง อนั ดบั ที 5 Trojan.Wimad.Gen.1 พบมากบนเวบ็ ทีใหบ้ ริการดาวนโ์ หลดซอฟแวร์(Torrent) หรือไฟลว์ ดี ีโอ, ไฟลห์ นงั ต่าง ๆ(เวบ็ บิททอเร็นนนั เอง) มนั สามารถแฝงตวั และเชือมต่อกบั URL และดาวโหลดไวรัสแถมมาใหค้ ุณตามCodec ของไฟลว์ ดี ีโอนนั ๆ 7. ภยั จาก Network infrastructure overloading กาํ ลงั เป็นภยั คุกคามรูปแบบใหม่ เกิดจากการดาวนโ์ หลดไฟลค์ ลิป ไฟลภ์ าพยนตร์ จนทาํ ใหอ้ ินเทอร์เน็ตชา้ และระบบอาจล่มในทีสุด 8. ภยั จาก Rush in Development for E-Business/M-Business

213 เป็นระบบการใชบ้ ริการทีเนน้ ความรวดเร็ว อยา่ ง ระบบ อี-แบงคกิง อาจเป็นช่องวา่ งใหแ้ ฮก็ เกอร์เจาะระบบเขา้ มาขโมยขอ้ มูลรหสั ลบั ทีส่งมาจาก ระบบบริการทีเนน้ ความรวดเร็วทนั ใจมาใชแ้ ทนคุณ – การขโมยหมายเลขบัตรเครดติ เมือจะซือสินคา้ และชาํ ระเงินดว้ ยบตั รเครดิตผา่ นทางอินเทอร์เน็ต จะตอ้ งแน่ใจวา่ ระบบมีการรักษา ความปลอดภยั ซึงสงั เกตง่าย ๆ จากมุมขวาล่างของเวบ็ ไซตจ์ ะมีรูปกญุ แจลอ็ กอยู่ หรือทีอยเู่ วบ็ ไซตห์ รือ URL จะระบุ https:// – การแอบอ้างตวั เป็นการแอบอา้ งตวั ของผกู้ ระทาํ ต่อบุคคลทีสามวา่ ตนเป็นอีกคนหนึง เช่นนาํ หมายเลขบตั รประชาชน หมายเลข บตั รเครดิต หนงั สือเดินทาง และขอ้ มูลส่วนบุคคลอืน ๆ ของผถู้ ูกกระทาํ ไปใชแ้ อบอา้ งเพือหาผลประโยชน์ – การสแกมทางคอมพวิ เตอร์ เป็นการกระทาํ โดยใชค้ อมพวิ เตอร์เป็นเครืองมือในการหลอกลวงผอู้ ืน ปัจจุบนั มีรูปแบบทีแตกต่างกนั มากมาย 9. ภยั จาก Script Kiddies inside Organization เป็นการนาํ เครืองมือของระบบการรักษาความปลอดภยั และเครืองมือ ระบบการแฮก็ กิงไปใชใ้ นทางทีผดิ รวมถึงการใชอ้ ุปกรณ์ เสริมอืนๆ ทีช่วยใหม้ ิจฉาชีพทาํ งานไดง้ ่ายขึนทุกวนั เพราะช่องทางการบุกรุกสามารถมาได้ จากทุกทีทุกเวลา 10. ภยั จากการละเลยคาํ เตือนของระบบการระวงั ภยั (Information Security) ขาดการวางแผนและการจดั ระบบความปลอดภยั ในคอมพิวเตอร์ดงั นี การรักษาความปลอดภยั ในคอมพิวเตอร์ส่วนบุคคล, การรักษา ความปลอดภยั ในระบบฐานขอ้ มูล, การรักษาความปลอดภยั ในเครือข่ายการสือสารขอ้ มูล, การป้องกนั ทางกายภาพ,การวเิ คราะห์ความเสียง, ประเดน็ ในแง่กฎหมาย, จรรยาบรรณในเรืองความปลอดภยั ในระบบคอมพวิ เตอร์ ตวั อยา่ งเช่นหากมีการสร้างการลอ็ กอินลวงระบบจะมีการ แจง้ เตือน แนวคิดหนึงทีใชส้ าํ หรับการป้องกนั ภยั คุกคามดา้ นไอที คือการ ตรวจสอบ และยนื ยนั ตวั ตนของผใู้ ชง้ านก่อนการเริมตน้ ใชง้ าน การ ตรวจสอบเพือยนื ยนั ตวั ตนของผใู้ ชง้ านสามารถดาํ เนินการได้ 3 รูป แบบดงั นี ตรวจสอบจากสิงทผี ู้ใช้รู้ เป็นการตรวจสอบตวั ตนจากสิงทีผใู้ ชง้ านรู้แต่เพยี งผเู้ ดียว เช่น บญั ชี รายชือผใู้ ชก้ บั รหสั ผา่ นการตรวจสอบวธิ ีนีเป็นวธิ ีทีไดร้ ับความนิยม สูงสุด เนืองจากเป็นวธิ ีทีง่าย และระดบั ความปลอดภยั เป็นทียอมรับ ไดห้ ากนกั เรียนลืมรหสั ผา่ น สามารถติดต่อผดู้ ูแลเพือขอรหสั ผา่ น ใหม่ ตรวจสอบจากสิงทผี ู้ใช้มี เป็นการตรวจสอบตวั ตนจากอุปกรณ์ทีผใู้ ชง้ านตอ้ งมี เช่น บตั รสมา ร์ตการ์ด โทเกน้ อยา่ งไรกต็ าม การตรวจสอบวธิ ีนีมีค่าใชจ้ ่ายใน

214 ส่วนของอุปกรณ์เพิมเติม และมกั มีปัญหาคือ ผใู้ ชง้ านมกั ลืมหรือทาํ อุปกรณ์ทีใชต้ รวจสอบหาย ตรวจสอบจากสิงทเี ป็ นส่วนหนึงของผู้ใช้ เป็นการตรวจสอบขอ้ มูลชีวมาตร(biometrics) เช่น ลายนิวมือ ม่านตา ใบหนา้ เสียง การตรวจสอบนีทีมีประสิทธิภาพสูงสุดแต่มีค่าใชจ้ ่ายที สูง เมือเปรียบเทียบ กบั วธิ ีอืน และตอ้ งมีการจดั เกบ็ ลกั ษณะเฉพาะ ของบุคคล ซึงมีผใู้ ชบ้ างส่วนอาจจะเห็นวา่ เป็นการละเมิดสิทธิความ เป็ นส่วนตวั หลงั จากนันควรเรียนรู้วธิ ีให้เท่าทนั และไม่ตกเป็ นเหยือภยั คุกคามสมยั ใหม่ ดงั นี .หมนั ดูแลเครืองคอมพวิ เตอร์ เครืองบรรจุขอ้ มูล (Thumb Drive) และแผน่ บนั ทึกขอ้ มูล อยา่ งสมาํ เสมอ ใหป้ ลอดจากไวรัสหรือ มลั แวร์ต่างๆ, กาํ หนดรหสั ผา่ นเขา้ ใชง้ าน PC และ Thumb Drive และลอ็ คหนา้ จอทุกครังเมือเลิกใชง้ าน .ตงั รหัสผ่านทยี ากแก่การคาดเดา อยา่ งนอ้ ย 8 ตวั อกั ษร และมีอกั ขระพเิ ศษ คาํ ทีใชเ้ ป็น password ไม่ควรตรงกบั พจนานุกรม เพอื เลียงภยั คุกคามทีเรียกวา่ Brute force password จากผไู้ ม่ประสงคด์ ี .อย่าไว้วางใจเมือเห็นสัญญาณอนิ เตอร์เน็ตทใี ห้บริการฟรี ไม่วา่ จะเป็นระบบไร้สาย หรือมีสาย ตลอดจนโปรแกรมต่างๆ ทีให้ ดาวนโ์ หลดฟรี เพราะมิจฉาชีพอาจใหโ้ ดยตงั ใจใชด้ กั ขอ้ มูลส่วนตวั ของเรา เช่น username/password หรือขอ้ มูลบตั รเครดิต และนาํ ขอ้ มูลไป ใชส้ ร้างความเสียหายได้ .อย่าไว้วางใจโปรแกรมประเภททมี ชี ือดงึ ดูดใจให้ดาวน์โหลดฟรี เช่น คลิปฉาว, โปรแกรม Crack Serial Number, โปรแกรมเร่ง ความเร็ว เป็นตน้ เพราะบ่อยครังทีมีของแถม เช่น Malware พว่ งมาดว้ ยเสมอ ซึงอาจทาํ ใหเ้ ราตกเป็นเหยอื ของมิจฉาชีพโดยไม่รู้ตวั .ในแง่บุคคล ควรหมนั เกบ็ สํารองข้อมูลใน Storage ส่วนตวั อยา่ ใหส้ ูญหาย กรณีเกิดเหตุฉุกเฉินขึนสามารถหยบิ มาใชไ้ ดท้ นั ท่วงที ส่วนในมุมขององคก์ รควรใหค้ วามสาํ คญั กบั การทาํ แผนสาํ รองขอ้ มูลฉุกเฉิน ทงั การทาํ Business Continuity Plan (BCP) และ Disaster Recovery Plan (DRP) .ดาํ เนินชีวติ โดยไม่ยดึ ตดิ กบั สืออเิ ลก็ ทรอนิกส์ ทีเขา้ ครอบงาํ ชีวติ คนยคุ ใหม่มากขึน โดยการไม่ถลาํ ลึกบนโลกเสมือน สงั คมเสมือน ซึงเป็นหลุมพรางทีสร้างขึนเอง จึงตอ้ งป้องกนั โดยการยบั ยงั ชงั ใจ และสร้างสมดุลใหก้ บั ชีวติ .ใช้วจิ ารณญาณไตร่ตรองข้อมูลทางอนิ เตอร์เน็ต โดยตงั สติและมองเหตุผลใหร้ อบดา้ น เพอื ป้องกนั ตวั เองจากภยั คุกคามทีมาในรูป แบบการล่อลวงผา่ นทางอีเมล์ / เวบ็ ไซต์ .มจี ริยธรรมในการใช้สืออนิ เตอร์เน็ต เอาใจเขามาใส่ใจเราทุกครัง โดยเฉพาะการสือสารกนั ในยคุ เทคโนโลยไี ร้พรมแดนเช่นนี ซึงไม่ เพยี งเป็นผลดีในระยะยาว แต่ยงั โอบอุม้ สงั คมใหส้ งบสุข และนาํ ไปสู่ความปลอดภยั ในการใชส้ ืออินเตอร์เน็ตต่อไป นอกจากนนั อยากมีการคุกคามดว้ ยโปรแกรมแบบอืนๆ ซึงนกั เรียนสามารถหาความรู้เพมิ เติมไดจ้ ากข่าวไอทีหรือจากอินเตอร์เน็ต

215 การกาํ หนดรหสั ผา่ นเป็นทีการตรวจสอบตวั ตนทีนิยมมากทีสุดเนืองจากวา่ เป็นวธิ ีทีง่ายและค่าใชจ้ ่ายตาํ เมือเทียบกบั วธิ ีอืน สิงทีควร คาํ นึงถึงในการกาํ หนดรหสั ผา่ นใหม้ ีความปลอดภยั มีดงั นี รหสั ผา่ นควรตงั ใหเ้ ป็นไปตามเงือนไขของระบบทีใชง้ าน รหสั ผา่ นทีควรประกอบดว้ ยตวั อกั ษรตวั ใหญ่ ตวั เลก็ ตวั เลข และสญั ลกั ษณ์ เช่น Y1nG@# !z หรือ @uG25sx* หลีกเลียงการตงั รหสั ผา่ นโดยใชว้ นั เดือน ปี เกิด ชือผใู้ ช้ ชือจงั หวดั ชือตวั ละคร ชือสิงของต่างๆ ทีเกียวขอ้ ง หรือคาํ ทีมีอยใู่ น พจนานุกรม ตงั ใหจ้ ดจาํ ไดง้ ่าย แต่ยากต่อการคาดเดาดว้ ยบุคคลหรือโปรแกรม เช่น สร้างความสมั พนั ธ์ของรหสั ผา่ นกบั ขอ้ ความหรือขอ้ มูลส่วนตวั ที คุน้ เคย เช่น ตงั ชือสุนขั ตวั แรก แต่เขียนตวั อกั ษรจากหลงั มาหนา้ บญั ชีรายชือผใู้ ชแ้ ต่ละระบบ ควรใชร้ หสั ผา่ นทีแตกต่างกนั โดยเฉพาะบญั ชีทีใชเ้ ขา้ ถึงขอ้ มูลทีมีความสาํ คญั เช่น รหสั ผา่ นของบตั ร เอทีเอม็ หลายใบใหใ้ ชร้ หสั ผา่ นต่างกนั ไม่บนั ทึกรหสั แบบอตั โนมตั ิบนโปรแกรมบราวเซอร์ โดยเฉพาะอยา่ งยงิ หากใชเ้ ครืองคอมพิวเตอร์ร่วมกบั ผอู้ ืนหรือเครืองสาธารณะ ไม่บอกรหสั ผา่ นของตนเองใหก้ บั ผอู้ ืนไม่วา่ กรณีใดๆ มนั เปลียนรหสั ผา่ นเป็นประจาํ อาจจะทาํ ทุกๆ 3 เดือน เดือนอีก เดือนหลีกเลียงการบนั ทึกรหสั ผา่ นใน เดือนหลีกเลียงการบนั ทึกรหสั ผา่ นในกระดาษสมุดโนต้ รัว เดือนหลีกเลียงการบนั ทึก รหสั ผา่ นในกระดาษสมุดโนต้ รวมทงั อุปกรณ์อิเลก็ ทรอนิกส์ เดือนหลีกเลียงการบนั ทึกรหสั ผา่ นในกระดาษสมุดโนต้ รวมทงั อุปกรณ์ อิเลก็ ทรอนิกส์ดว้ ย เดือนหลีกเลียงการบนั ทึกรหสั ผา่ นในกระดาษสมุดโนต้ รวมทงั อุปกรณ์อิเลก็ ทรอนิกส์ดว้ ยหากจาํ เป็นตอ้ งบนั ทึกก็ ควรจดั เกบ็ ไวใ้ นทีปลอดภยั ออกจากระบบทุกครังเมือเลือกใชบ้ ริการต่างๆ บนอินเตอร์เน็ต

216 การใชง้ านไอทีเป็นเรืองใกลต้ วั ของทุกคน อยา่ งไรกต็ ามการใชง้ านไอทีอาจส่งผลกระทบต่อผใู้ ชง้ าน ดงั นนั การเรียนรู้ การทาํ ความเข้ ใจเงือนไขการใชง้ านจึงเป็นสิงสาํ คญั ก่อนอืนเรามารู้จกั คาํ วา่ เทคโนโลยสี ารสนเทศ หรือ ไอที มาจากภาษาองั กฤษวา่ Information Technology หรือ IT – Information แปลเป็นภาษาไทยวา่ สารสนเทศ เป็นคาํ แปลตวั ใหม่ทีมากบั โลกคอมพิวเตอร์ ซึงต่างจากคาํ แปลทางทหารทีใชก้ นั มา เนินนานวา่ ข่าวสาร – Technology แปลเป็นภาษาไทยวา่ เทคโนโลยี ดงั นัน “ เทคโนโลยี ” หรือ อาซฺโม่ประยุกตวทิ ยา หรือ เทคนิควทิ ยา มีความหมายค่อนขา้ งกวา้ ง โดยทวั ไปหมายถึง การนาํ ความรู้ทาง ธรรมชาติวทิ ยา และต่อเนืองมาถึง มาเป็นวธิ ีการปฏิบตั ิและประยกุ ตใ์ ชเ้ พอื ช่วยในการทาํ งานหรือแกป้ ัญหาต่าง ๆ อนั ก่อใหเ้ กิดวสั ดุ อุปกรณ์ เครืองมือ เครืองจกั ร แมก้ ระทงั องคค์ วามรู้ เช่น ระบบหรือกระบวนการต่าง ๆ เพือใหก้ ารดาํ รงชีวติ ของมนุษยง์ ่ายและสะดวกยงิ ขึน เทคโนโลยกี ่อเกิดผลกระทบต่อ และในพนื ทีทีมีเทคโนโลยเี ขา้ ไปเกียวขอ้ งในหลายรูปแบบ เทคโนโลยไี ดช้ ่วยใหส้ งั คมหลาย ๆ แห่งเกิดการ พฒั นาทางเศรษฐกิจมากขึนซึงรวมทงั เศรษฐกิจโลกในปัจจุบนั ในหลาย ๆ ขนั ตอนของการผลิตโดยใชเ้ ทคโนโลยไี ดก้ ่อใหผ้ ลผลิตทีไม่ ตอ้ งการ หรือเรียกวา่ มลภาวะ เกิดการสูญเสียทรัพยากรธรรมชาติและเป็นการทาํ ลายสิงแวดลอ้ ม เทคโนโลยหี ลาย ๆ อยา่ งทีถูกนาํ มาใชม้ ีผล ต่อค่านิยมและวฒั นธรรมของสงั คม เมือมีเทคโนโลยใี หม่ ๆ เกิดขึนกม็ กั จะถูกตงั คาํ ถามทางจริยธรรม จากการศึกษาแนวโนม้ และทิศทางเทคโนโลยสี ารสนเทศและความมนั คงปลอดภยั สารสนเทศในปี 2010 วา่ ช่องโหวแ่ ละภยั คุกคามทีเกิดขึน ในโลกไซเบอร์ส่วนใหญ่เกิดขึนโดยช่องโหวข่ อง โปรแกรมประยกุ ต์ (Application Security Vulnerability), ช่องโหวข่ องการพฒั นา โปรแกรมประยกุ ตท์ ีไม่มนั คงปลอดภยั (Insecure Application Development), การ Hack ขอ้ มูลผา่ น Wireless, การหลอกเอาขอ้ มูลส่วนตวั (Identity theft/ Privacy Information Attack), การตม้ ตุ๋นหลอกหลวงในรูปแบบ Social Engineering และช่องโหวผ่ า่ นการใชป้ ระโยชนโ์ ดยมิ ชอบจาก Social Network เช่น hi5, Twitter, Facebook, MySpace, Linkedln เป็นตน้ สาํ หรับปี 2010 เทรนดข์ องภยั คุกคามจะมาจากเวบ็ เซอร์วสิ รวมถึงภยั การใช้ Social Network ดงั นนั ผใู้ ชง้ าน Social Network ไม่ควรใส่ ขอ้ มูลส่วนตวั มากเกินไป เพราะอาจตกเป็นเหยอื ของอาชญากรไซเบอร์ไดง้ ่ายขึน โดยอาชญากรไซเบอร์ใชห้ าขอ้ มูลส่วนตวั ของเหยอื โดย อาศยั ขอ้ มูลจากเครือข่าย Social Network เป็นหลกั นอกจากนี Gartner Inc. ไดว้ เิ คราะห์เทรนดข์ องเทคโนโลยที ีมีความสาํ คญั ในปี 2010 ไดแ้ ก่ 1) Cloud Computing ซึงเป็นแนวคิดดา้ นบริการโดยใชป้ ระโยชนจ์ ากโครงสร้างพืนฐานไอทีทีทาํ งาน เชือมโยงกนั ซึงมีขอ้ ดีคือ ลดความซบั ซอ้ นยงุ่ ยาก อีกทงั ยงั ช่วยประหยดั พลงั งานและลดค่าใชจ้ ่าย สามารถรองรับความตอ้ งการทีหลากหลายกวา่ 2) Advanced Analytics เป็นเครืองมือทีจะจาํ ลองและวเิ คราะห์ Business Process และขอ้ มูลในองคก์ รใหม้ ีประสิทธิภาพและเหมาะสมมาก ทีสุด 3) Client Computing Virtualization จะถูกนาํ มาใชใ้ นเครือง Client ทาํ ใหก้ ารเลือกใช้ OS ต่างๆ มีความสาํ คญั นอ้ ยลง และจะทาํ ใหก้ าร บริหารจดั การ Client ทาํ ไดง้ ่ายขึน 4) IT for Green เป็นการนาํ ไอทีเขา้ มาใชเ้ พอื ลดสภาวะโลกร้อน และยงั สามารถใชส้ ร้างเครืองมือวเิ คราะห์วธิ ีทีองคก์ รจะใชพ้ ลงั งานใหต้ าํ สุดได้ 5) Reshaping the Data Center เป็นการจดั ทาํ Data Center ในยคุ ใหม่ จะมีการออกแบบทีใชพ้ ืนทีนอ้ ยลง และลดค่าใชจ้ ่าย 6) Social Computing ปัจจุบนั สงั คมการทาํ งานเริมเปลียนไป องคก์ รต่างๆ จะตอ้ งมีการเชือมต่อกบั ชุมชนมากขึน ดงั นนั จะมีการนาํ Social Network เขา้ มาใชใ้ นองคก์ รมากขึน 7) Security-Activity Monitoring ระบบความปลอดภยั ดา้ นไอทีเป็นเรืองสาํ คญั ซึงกาํ ลงั พฒั นาไปสู่ความสามารถในการตรวจสอบกิจกรรม ต่างๆ ทีผใู้ ชก้ าํ ลงั ทาํ อยู่ รวมถึงเรืองของการระบุตวั ตน 8) Flash Memory แมจ้ ะไม่ใช่เรืองใหม่ แต่เนืองจาก Flash Memory มีความเร็วสูงกวา่ Rotating Disk ดงั นนั จึงเห็น Storage ใหม่ๆ ทีมีการใช้ Flash Memory ทีเพิมขึน 9) Virtualization for Availability สามารถทีจะใช้ Virtualization สาํ หรับการทาํ High Availability ของเซิร์ฟเวอร์ได้ 10) Mobile Applications ในปี 2010 ทวั โลกจะมีโทรศพั ทม์ ือถือถึง 1.2 พนั ลา้ นเครือง ซึงจะทาํ ให้ Application บนโทรศพั ทม์ ือถือมีความ

217 สาํ คญั มากขึน ไม่วา่ จะเป็นบน BlackBerry, IPhone ดงั นนั ผใู้ ชเ้ ทคโนโลยที งั หลายจะตอ้ งระวงั ภยั ทีเกิดจากการใชเ้ ทคโนโลยี เป็นภยั ทีตอ้ งใชเ้ ครืองมือทางสงั คมในการสอดส่อง และกาํ กบั การ ใชง้ าน ดว้ ยเหตุนี กระทรวงเทคโนโลยสี ารสนเทศและการสือสาร จึงใหค้ วามสาํ คญั กบั การจดั การเวบ็ ไซตท์ ีไม่เหมาะสมเป็นอนั ดบั ตน้ ๆ เนืองจากเป็นภยั อนั ตรายต่อความคิดและพฤติกรรมของการบริโภคสือ ซึงจะมีแนวทางร่วมกนั เฝ้าระวงั ภยั ทางเทคโนโลยอี ยา่ งไร ติดตามจาก รายงาน ศูนยป์ ฏิบตั ิการความปลอดภยั อินเทอร์เน็ต หรือ Internet Security Operation Center เรียกสนั ๆ วา่ ศูนย์ ISOC จดั ตงั ขึน โดยความ ดูแลของกระทรวงเทคโนโลยสี ารสนเทศและการสือสาร และหน่วยงานดา้ นความมนั คงของประเทศ ประกอบดว้ ย กรมยทุ ธการทหารบก กรมการทหารสือสาร ศูนยร์ ักษาความมนั คงภายใน กองทพั ไทย สาํ นกั ข่าวกรองแห่งชาติ สาํ นกั งานสภาความมนั คงแห่งชาติ กองบญั ชาการ สอบสวนกลาง กระทรวงการต่างประเทศ สาํ นกั งานอยั การสูงสุด และสาํ นกั งานตาํ รวจแห่งชาติ เพือทาํ หนา้ ทีเฝ้าระวงั และตอบโตก้ ารกระทาํ ทุกรูปแบบทีมีผลกระทบต่อความมนั คง วฒั นธรรม ศีลธรรม การพนนั และสิงผดิ กฎหมายผา่ นทางเครือข่ายอินเทอร์เน็ต การใชง้ านไอทีในปัจจุบนั มีทงั แบบมีค่าใชจ้ ่ายและไม่มีค่าใชจ้ ่าย แต่ทุกระบบทีใหบ้ ริการมีการกาํ หนดเงือนไขในการใชง้ านทงั สิน เวบ็ ไซตแ์ ละแอพพลิเคชนั ต่างๆทีใหบ้ ริการจะมีการแจง้ เงือนไขการติดตงั และใชง้ านใหผ้ ใู้ ชท้ ราบก่อนเสมอ อาจรวมถึงค่าใชจ้ ่ายในการใช้ งานซึงชาํ ระดว้ ยเงินหรือตอ้ งกรอกขอ้ มูลหรือตอบคาํ ถามเป็นการแลกเปลียน ขอ้ กาํ หนดทีตอ้ งรับโฆษณาในช่วงของการใชง้ าน การอนุญาต ผใู้ หบ้ ริการเขา้ ถึงภาพถ่ายหรือขอ้ มูลรายชือทีอยใู่ น smartphone ของผใู้ ช้ ดงั นนั นกั เรียนควรอ่านและทาํ ความเขา้ ใจเงือนไขก่อนการติดตงั และใชง้ าน นกั เรียนจะทราบไดอ้ ยา่ งไรวา่ ซอฟตแ์ วร์ ผลงาน หรือสือต่างๆ ทีมีอยจู่ าํ นวนมากในอินเตอร์เน็ต สามารถนาํ มาใชง้ านไดอ้ ยา่ งถูกตอ้ ง เงือนไขการใชง้ าน อาจจะถูกกาํ หนดดว้ ยขอ้ ตกลงในลกั ษณะต่างๆ เช่น โปรแกรมคอมพิวเตอร์ เนือหา หรือสือต่างๆ ส่วนใหญ่มีลิขสิทธิคุม้ ครอง ทาํ ใหผ้ ใู้ ชห้ รือผซู้ ือไม่สามารถทีจะนาํ ไปเผยแพร่ ทาํ สาํ เนา ต่อโดยทีไม่รับอนุญาตจากผสู้ ร้างสรรคผ์ ลงาน เช่น ผใู้ ชท้ ีซือโปรแกรมประยกุ ตม์ าใชง้ านส่วนตวั ลิขสิทธิทีไดค้ ือ การติดตงั และใชง้ าน โปรแกรมประยกุ ตน์ นั ได้ แต่ไม่สามารถทาํ สาํ เนาและแจกจ่ายใหผ้ อู้ ืนได้ การใชง้ านไอทีหรืองานต่างๆ ทีมีลิขสิทธิคุม้ ครองอาจจาํ เป็นตอ้ งมีค่าใชจ้ ่าย ซึงทาํ ใหเ้ กิดปัญหาและปิ ดโอกาสในการเรียนรู้ องคก์ ร ครีเอทีฟคอมมอนส์จินตนาสญั ญา อนุญาตทีทาํ ใหผ้ ใู้ ชส้ ามารถใชง้ านและเผยแพร่ผลงานภายใตเ้ งือนไขทีกาํ หนดโดยไม่ตอ้ งเสียค่าใชจ้ ่าย และยงั เป็นการเพิมโอกาสการเรียนรู้ แต่ยงั คงไวซ้ ึงผลประโยชนแ์ ละการรับรู้เจา้ ของผลงาน http:// www.creativecommons.org ข้อกาํ หนดในการใช้ผลงานต่างๆ จะแทนด้วยสัญลกั ษณ์ เช่น หมายถึงสามารถใช้ เผยแพร่ และดดั แปลงได้ แต่ตอ้ งอา้ งอิงแหล่งทีมาของผลงาน หมายถึง สามารถใช้ เผยแพร่ และดดั แปลงได้ แต่ตอ้ งอา้ งอิงแหล่งทีมา และยนิ ยอมให้ ผอู้ ืนนาํ ไปใชห้ รือเผยแพร่ต่อได้

218 หมายถึง สามารถใช้ และเผยแพร่ได้ หา้ มดดั แปลง แต่ตอ้ งอา้ งอิงแหล่งทีมา หมายถึง สามารถใช้ และเผยแพร่ได้ แต่ตอ้ งอา้ งอิงแหล่งทีมา หา้ มนาํ ไปใชเ้ พอื การคา้ ความเป็นส่วนตวั (privacy) เป็นลิขสิทธิพนื ฐานทีสาํ คญั ของมนุษยท์ ุกคนความเป็นส่วนตวั ของขอ้ มูลและสารสนเทศ เจา้ ของ สามารถปกป้องและควบคุมการเปิ ดเผยขอ้ มูลของตนเองใหก้ บั ผอู้ ืนและสาธารณะได้ โดยเจา้ ของสิทธิ นอกจากจะเป็นบุคคลแลว้ อาจเป็นก ลุ่มบุคคลหรือองคก์ รกไ็ ด้ การเขา้ ถึงขอ้ มูลในเอกสารหรือสืออิเลก็ ทรอนิกส์ของผอู้ ืนโดยไม่ไดร้ ับอนุญาต เป็นการละเมิดความเป็นส่วนตวั เช่น เวบ็ ไซตห์ รือ แอปพลิเคชนั บางตวั ทีติดตามความเคลือนไหว หรือพฤติกรรมของผใู้ ชง้ านเพอื เรียนรู้พฤติกรรมสาํ หรับปรับปรุงคุณภาพการใหบ้ ริการ หรือ การวางแผนการตลาด นอกจากการถูกละเมิดความเป็นส่วนตวั จากผอู้ ืนแลว้ ผใู้ ชอ้ าจยนิ ยอมทีจะเปิ ดเผยขอ้ มูลส่วนตวั ของตนเอง เนืองจากการรู้เท่าไม่ถึง การณ์ จะก่อใหเ้ กิดปัญหาในอนาคตและยากต่อการกลบั มาแกไ้ ข การใชง้ านไอทีเป็นส่วนหนึงในการดาํ เนินกิจกรรมต่างๆ และส่งผลกระทบต่อผใู้ ชง้ าน โดยเฉพาะอยา่ งยงิ การใชง้ านไอทีผา่ นสมาร์ท โฟนทีมกั มีแอพพลิเคชนั จาํ นวนมาก ใหเ้ ลือกติดตงั ไดฟ้ รีภายใตเ้ งือนไขบางประการ ซึงหลายคนมกั ละเลยในการอ่านเงือนไขเหล่านี การใช้ ไอทีอยา่ งปลอดภยั นนั ผใู้ ชง้ านจาํ เป็นตอ้ งเขา้ ใจในประเดน็ ต่างๆ ดงั นี ศึกษาเงือนไขและขอ้ ตกลง ก่อนการติดตงั หรือใชง้ านไอที มีความรู้ความเขา้ ใจ และความสามารถในการใชไ้ อที เพอื ใหใ้ ชง้ านไดอ้ ยา่ งถูกตอ้ ง และมีประสิทธิภาพ ไม่ใช่บญั ชีผใู้ ชร้ ่วมกบั ผอู้ ืน เนืองจากไม่สามารถควบคุมความปลอดภยั ได้ และเสียงต่อการรัวไหลของรหสั ผา่ นและขอ้ มูลส่วนตวั สาํ รองขอ้ มูลอยา่ งสมาํ เสมอ และเกบ็ ไวห้ ลายแหล่งโดยเมือมีเหตุการณ์ทีทาํ ใหไ้ ฟลข์ อ้ มูลเสียหาย เช่น ขอ้ มูลโดนไวรัสทาํ ลาย เครือง คอมพวิ เตอร์เสียหาย สามารถนาํ ขอ้ มูลทีสาํ รองไวม้ าใชง้ านได้ ติดตงั ซอฟตแ์ วร์เท่าทีจาํ เป็น และไม่ติดตงั โปรแกรม ทีดาวนโ์ หลดจากแหล่งทีไม่น่าเชือถือ เพือป้องกนั มลั แวร์ทีแฝงมากบั โปรแกรม เขา้ ใจกฎ กติกา และมารยาททางสงั คมในการใชง้ านไอที ซึงเป็นสิงจาํ เป็นในการใชง้ านไอที เพราะจะช่วยป้องกนั ปัญหาต่างๆ ทีอาจ เกิดขึนไดโ้ ดยไม่ตงั ใจ เช่น การเรียนรู้การใชอ้ กั ษรยอ่ การใชส้ ญั ลกั ษณ์ต่างๆ หลีกเลียงการใชง้ านเวบ็ ไซตท์ ีไม่เหมาะสมหรือไม่แน่ใจวา่ เป็นของหน่วยงานใด ปรับปรุงระบบปฏิบตั ิการและโปรแกรมต่างๆใหท้ นั สมยั อยเู่ สมอ เช่น โปรแกรมแกไ้ ขจุดบกพร่องของระบบปฏิบตั ิการทีเรียกวา่ อพั เดท หรือ แพทช์ โปรแกรมป้องกนั ไวรัส ซึงโปรแกรมจะมีการเพิมเติมความสามารถในการป้องกนั ไวรัสใหม่ๆ ทาํ ใหอ้ ุปกรณ์และ ขอ้ มูลใชง้ านไดอ้ ยา่ งปลอดภยั สงั เกตสิงผดิ ปกติทีเกิดจากการใชง้ าน เช่น มีโปรแกรมแปลกปลอมปรากฏขึนไดร้ ับอีเมลจากคนทีไม่รู้จกั หรือเขา้ เวบ็ ไซตท์ ีคุณเคยแต่มี บางส่วนของ URL หรือหนา้ เวบ็ ทีเปลียนไป ใหต้ รวจสอบและหาขอ้ มูลเพมิ เติม จนกวา่ จะมนั ใจก่อนการใชง้ าน ระวงั การใชง้ านไอทีเมืออยใู่ นทีสาธารณะ เช่น ไม่เชือมต่อไวไฟโดยอตั โนมตั ิ ไม่จดจอใชง้ านโทรศพั ทเ์ คลือนทีโดยไม่สนใจสิงทีเกิด ขึนรอบตวั ซึงอาจตกเป็นเหยอื มิจฉาชีพหรือทาํ ใหเ้ กิดอุบตั ิเหตุได้

219 การใชง้ านไอทีอยา่ งสร้างสรรค์ คือ การใชง้ านไอทีใหเ้ กิดประโยชนอ์ ยา่ งเหมาะสม ผใู้ ชจ้ าํ เป็นตอ้ งมีความสามารถในการคิดวเิ คราะห์ เพราะไอทีช่วยใหเ้ ขา้ ถึงขอ้ มูลและเนือหาจาํ นวนมากอยา่ งรวดเร็ว ดงั นนั นกั เรียนตอ้ งสามารถวเิ คราะห์ เนือหา และสิงต่างๆ ทีไดร้ ับวา่ มีความน่าเชือถือมากนอ้ ยเพยี งใดเพอื คดั กรองและนาํ ไปใชป้ ระโยชน์ อยา่ งสร้างสรรคแ์ ละมีคุณค่า เช่น ใชไ้ อทีในการติดตามและรับรู้ข่าวสารต่างๆ รวบรวมและสรุปความรู้ใหก้ บั เพอื นๆ ผา่ น facebook ฝึกเขียน โปรแกรมเพือพฒั นาตนเอง จริยธรรม หมายถึง ธรรมทีเป็นขอ้ ประพฤติปฏิบตั ิ ศีลธรรม กฎศีลธรรม ตามทีกาํ หนดในพจนานุกรมฉบบั ราชบณั ฑิตยสถาน พ.ศ. 2554 ดงั นนั จริยธรรมดา้ นไอทีจึงหมายถึง การประพฤติปฏิบตั ิทีดีในการดาํ เนินกิจกรรมทีเกียวขอ้ งกบั ไอที ทีควบคุมทางการบริหารจดั การ การใชง้ าน และการใหบ้ ริการดา้ นไอที จริยธรรมเป็นหลกั การและมาตรฐานทีใหแ้ นวทางในการปฏิบตั ิต่อผอู้ ืนเพอื ใหผ้ รู้ ่วมกนั ในสงั คมอยา่ งมีความสุข การใชไ้ อทีอยา่ งมี จริยธรรม ตอ้ งไม่ทาํ ใหผ้ อู้ ืนเดือดร้อน ไม่ละเมิดความเป็นส่วนตวั ไม่ละเมิดลิขสิทธิและทรัพยส์ ินทางปัญญา เช่น ไม่นาํ ภาพผอู้ ืนมาลอ้ เลียน หรือใชข้ อ้ ความหยาบคาย ไม่ชาํ เลืองมองหนา้ จอภาพผอู้ ืนขณะใชง้ าน