เกี่ยวกับบทเรียน
การออกแบบและเขียนโปรแกรม
โปรแกรม Scratch ยังเป็นโปรแกรมภาษาคอมพิวเตอร์ภาษาหนึ่งที่พัฒนาขึ้นมาเพื่อให้นักเรียนได้เรียนรู้ การเขียนโปรแกรมคอมพิวเตอร์ ในรูปแบบของกราฟิก ลากแล้ววาง อาจมีการกำหนดค่าบ้างเล็กน้อย นักเรียนสามารถเรียนรู้ได้ง่าย สนุกสนานกับการเรียนรู้
โปรแกรม Scratch มีลักษณะเป็นบล็อกโปรแกรม (Block) นำมาต่อกันเพื่อสร้างรหัสคำสั่ง (Code) เพื่อสั่งให้โปรแกรม Scratch ทำงานตามที่ได้เขียนโปรแกรมไว้
โปรแกรม Scratch สามารถนำมาใช้พัฒนาซอฟต์แวร์เชิงสร้างสรรค์ เช่น นิทานที่สามารถโต้ตอบกับผู้อ่านได้ ภาพเคลื่อนไหว เกม ดนตรี และศิลปะ และเมื่อสร้างเป็นชิ้นงานเสร็จ แล้ว สามารถนำชิ้นงานที่สร้างสรรค์นี้ แสดง และแลกเปลี่ยนความคิดเห็นร่วมกับผู้อื่นได้
1. การทํางานแบบเรียงลําดับ (Sequence)
การสร้างโปรแกรมใน Scratch ผู้เขียนโปรแกรมต้องคิดอย่างเป็นระบบ เกี่ยวกับลําดับขั้นตอนการทํางาน เพื่อใช้ในการสร้างสคริปต์โดยการนําบล็อกคําสั่งมาเรียงต่อกันอย่างมีความหมาย ตามเป้าหมายที่วางไว้ ตัวอย่างเช่น การให้ตัวละครวาดรูปสี่เหลี่ยมหนึ่งรูป จะประกอบไปด้วยการทํางานย่อยหลายๆคําสั่งด้วยกัน นั้นคือ การจรดปากกาลงเตรียมวาดรูป การเคลื่อนที่ไปข้างหน้า 50 ก้าว จากนั้นเปลี่ยนทิศทางทวนเข็มนาฬิกาไป 90 องศา แล้วก็เคลื่อนที่ไปอีก 50 ก้าว เปลี่ยนทิศทางทวนเข็มนาฬิกาอีก 90 องศา ทําแบบนี้เพิ่มอีก 2 รอบ ก็จะได้การวาดรูปสี่เหลี่ยมหนึ่งรูป จากนั้นจึงยกปากกาขึ้น
2. การควบคุมลําดับการทํางาน (Control flow)
งานบางอย่างง่ายพอที่จะทําแบบเรียงลําดับ ลําดับการทํางานของสคริปต์จึงตรงไปตรงมา ทํางานเรียงลําดับจากบล็อกบนสุด ลงไปจนถึงบล็อกล่างสุด แต่งานบางอย่างมีความซับซ้อนมากขึ้น การทํางานแบบเรียงลําดับอาจไม่เพียงพอ หรือไม่มีประสิทธภาพดังนั้นจึงมีการควบคุมลําดับการทํางาน อีกสองลักษณะเพื่อเพิ่มขีดความสามารถในการเขียนโปรแกรม นั้นก็คือ การควบคุมลําดับการทํางานแบบวนซํ้า (Loop) และการควบคุมลําดับการ ทํางานแบบมีเงื่อนไข (Condition) โดยใช้บล็อกทําซํ้าและบล็อกเงื่อนไข ที่มีอยู่หลายแบบให้เลือกใช้ในบล็อกหมวดควบคุม
2.1 การควบคุมลําดับทํางานแบบวนซํ้า(Loop)
การควบคุมลําดับการทํางานแบบวนซํ้า เป็นการทําซํ้างาน (บล็อกที่อยู่ภายในบล็อกทําซํ้า) เหมือนเดิมหลายๆ ครั้ง เช่น การให้ตัวละครวาดรูปสี่เหลี่ยมนั้น ส่วนหนึ่งของงานนี้คือให้ตัวละครเคลื่อนที่เป็นสี่เหลี่ยม ซึ่งมีลักษณะการทํางานซํ้ากัน คือเคลื่อนที่ไปข้างหน้า 50 ก้าว จากนั้นเปลี่ยนทิศทวนเข็มนาฬิกาไป 90 องศา ทําแบบนี้ซํ้ากัน 4 รอบจะได้รูปสี่เหลี่ยม ถึงแม้การเขียนแบบเรียงลําดับจะตรงไปตรงมา แต่โปรแกรมจะยาวเกินไป ถ้าใช้การควบคุมลําดับการทํางานแบบวนซํ้า จะได้สคริปต์ใหม่ที่สั้นลงและอ่านทําความเข้าใจได้ง่ายกว่าดังนี้
2.2 การควบคุมลําดับการทํางานแบบมีเงื่อนไข (Condition)
เงื่อนไขถูกใช้ในการควบคุมทิศทางการทํางาน โดยการตัดสินใจที่จะทํางานหรือไม่ทํา หรือต้องเลือกทํางานอย่างใดอย่างหนึ่ง ขึ้นอยู่กับเงื่อนไขเป็นตัวกําหนด เช่น ถ้าเงื่อนไขเป็นจริง จะหยุดทําซํ้างานที่อยู่ภายในบล็อกนี้ ถ้าเงื่อนไขเป็นเท็จ จะหยุดการทํางานชั่วคราว จนกว่าเงื่อนไขจะเป็นจริงจึงจะทํางานในลําดับต่อไป
3. โอเปอร์เรชัน (Operation)
การเขียนโปรแกรมต้องอาศัยการคํานวณไม่มากก็น้อย โอเปอร์เรชั่นเป็นเครื่องมือที่ใช้ในการคํานวณ หรือการจัดการกับข้อความตัวอักษรที่ใช้ในโปรแกรม โอเปอร์เรชั่นใน Scratch เป็นโอเปอร์เรชั่นพื้นฐาน แต่ก็เพียงพอต่อการทําโปรเจก โอเปอร์เรชั่นที่ซับซ้อนสามารถสร้างได้ ด้วยการประกอบโอเปอร์เรชั่นพื้นฐานเข้าด้วยกันตามหลัก พื้นที่สีขาวภายในบล็อกหมายถึงผู้ใช้สามารถใส่ข้อมูลเข้าไปได้จากคีย์บอร์ด หรือใส่บล็อกก็ได้ พื้นที่สีขาวทรงมนรับค่าเป็นตัวเลขและรับบล็อกทรงมน พื้นที่ทรงหกเหลี่ยมรับได้เฉพาะข้อมูลที่เป็นจริงหรือเท็จจากบล็อกทรงหกเหลี่ยมเท่านั้น ส่วนพื้นที่สีขาวทรงสี่เหลี่ยมรับข้อมูลที่เป็นตัวอักษร ทําให้รับตัวเลขก็ได้ (ถือว่าเป็นตัวอักษรด้วย) รับบล็อกทรงมนและบล็อกทรงหกเหลี่ยมก็ได้ด้วย
4. การทํางานแบบคู่ขนาน (Parallelism)
ใน Scratch ประกอบไปด้วยตัวละครต่างๆ รวมทั้งเวที ซึ่งสามารถทํางานพร้อมๆ กันได้ณ ขณะหนึ่งๆ เรียกการทํางานแบบนี้ว่าการทํางานแบบคู่ขนาน ซึ่งใกล้เคียงกับชีวิตจริงของคนเรา ที่เกิดการทํางานหลายๆ อย่างพร้อมกันไปในเวลาเดียวกัน เช่น ในงานปาร์ตี้เต้นรําที่มีผู้คนมากมาย บางคนก็พูดคุยกัน บางคนก็กําลังดื่มกินอาหาร และหลายๆ คนก็กําลังเต้นไป พร้อม กับเสียงเพลงที่เปิดจากเวที
ใน Scratch การทํางานแบบคู่ขนาน เป็นการทํางานจากหลายๆ สคริปต์พร้อมกัน แต่ละสคริปต์นั้นอาจมาจากตัวละครเดียวกันก็ได้ หรือจากหลายๆ ตัวละคร รวมทั้งเวทีก็ได้ สคริปต์เหล่านี้ถูกกระตุ้นให้ทํางานพร้อมกัน ณ ขณะหนึ่งๆ แต่ไม่จําเป็นต้องเริ่มหรือจบสคริปต์พร้อมกัน เช่นเมื่อผู้ใช้คลิกธงเขียวเริ่มต้นโปรแกรม สคริปต์ที่ตอบสนองต่อการคลิกธงเขียวทุกสคริปต์จะเริ่มต้นทํางานพร้อมกัน แต่ขณะที่สคริปต์เหล่านั้นทํางานอยู่ บางสคริปต์กําลังถูกกระตุ้นจากผู้ใช้ เช่นการกดคีย์หรือการคลิกตัวละคร ให้เริ่มทํางาน หรือถูกกระตุ้นจากสคริปต์อื่นด้วยการส่งสาร
แหล่งอ้างอิง : https://sites.google.com/site/luksaduanscratch/blxkh-kha-sang?fbclid=IwAR3cE5rDhYoyUmnKWJxThyiNE0U_qhA7XEbrwgBrvCGeREDhfL_4So9EDCs
ไฟล์ตัวอย่าง