วันพุธที่ 31 กรกฎาคม พ.ศ. 2556

หลักการแก้ปัญหาด้วยคอมพิวเตอร์


บทที่ 6 หลักการแก้ปัญหาด้วยคอมพิวเตอร์

บทที่ 6 ( 6.1 หลักการแก้ปัญหา )

ในชีวิตประจำวันทุกคนต้องเคยพบกับปัญหาต่างๆ ไม่ว่าจะเป็นปัญหาด้านการเรียน การงานการเงิน หรือแม้แต่ในการเล่นเกม จนอาจกล่าวได้ว่าการแก้ปัญหาเป็นกิจกรรมพื้นฐานอย่างหนึ่งของมนุษย์ เมื่อพบกับปัญหาแต่ละคนมีวิธีที่จะจัดการหรือแก้ปัญหาเหล่านั้นแตกต่างกันไป ซึ่งแตละวิธีการอาจเหมือนหรือแตกต่างกัน ทั้งนี้ขึ้นอยู้กับความรู้ ความสามารถ และประสบการณ์ของแต่ละบุคคลอย่างไรก็ตาม เมื่อได้มีการนำวิธีการแก้ปัญหาต่างๆ มาวิเคราะห์ จะพบว่าวิธีการเหล่านี้สามารถสรุปเป็นทฤษฎีซึ่งมีรูปแบบที่แน่นอนได้ และปัญหาบางลักษณะอาจต้องอาศัยความรู้ในระดับสูงเพื่อแก็ไขได้อย่างสมบูรณ์แบบ ในบทนี้ผู้เรียนจะได้ศ฿กษาเกี่ยวกับหลักและวิธีการแก้ปัญหาด้วยคอมพิวเตอร์ และการนำภาษาโปรแกรมคอมพิวเตอร์และเครื่องมือต่างๆ มาช่วยในการแก้ปัญหา
โดยทั่งไปการแก้ปัญหาหนึ่งอาจทำได้หลายวิธี ตัวอย่างเช่น ปัญหาจากการเล่นเกมทายใจก็สามารถแก้ได้หลายวิธีเช่นกัน เพียงแต่ว่าแต่ละวิธีที่แตกต่างกันจะทำให้ผู้เล่นเกมแก้ปัญหาได้ช้าเร็วไม่เท่ากัน
ตัวอย่างเกมทายใจ
เกมทายใจคือเกมที่จะให้ผู้เล่นทายตัวเลข 3 ตัวโดยต้องทายถูกตัวเลขและตำแหน่งซึ่งต้องใช้ผุ้เล่น 2 คน ผู้เล่นคนที่หน฿่งกำหนดตัวเลข 3 ตัวที่ไม่ซ้ำกันโดยเลือกจาตัวเลข 1-9 และผู้เล่นคนที่หนึ่งต้องแจ้งผลการทายว่าตัวเลขที่ทายมานั้นถูกต้องกี่ตัว และถูกต้องกี่ตำแหน่ง ตัวอย่างเช่น ถ้าตัวเลขที่กำหนดไว้เป็น 8 1 5 และผู้เล่นคนที่สองทายว่า 1 2 3 ผู้เล่นคนที่หนึ่งต้องแจ้งว่าตัวเลขที่ทายนั้นถูกเพียงตัวเดียวและไมามีตัวใดถูกตำแหน่ง
ตัวอย่างการเล่นเกมทายใจ
จะเห็นได้ว่าในครั้งแรกๆ ของการทาย ผู้ทายจะใช้วิธีลองผิดลองถูกโดยการสุ่มตัวเลข 1-9 สำหรับเลขทั้ง 3 ตัว ดยไม่ให้มีตัวเลขซ้ำกัน ซึ้งเมื่อผู้กำหนดให้รายละเอียดเกี่ยวกับจำนวนตัวเลขและจำนวนตำแหน่งที่ถูกต้องแล้ว ผู้ทายก็สามารถแยกตัวเลขที่ไม่ถูกต้องทั้งค่าของตัวเลขและตำแหน่ง ออกจากการทายคำตอบของปัญหาในครั้งถัดๆไป การใช้เหตุผลเพื่อแยกตัวเลขที่ไม่ต้องการใรการทายแต่ละครั้งนี้ จะช่วยให้ผู้ทายสามารถค้นพบคำตอบของปัญหาได้ในที่สุด
การแก้ปัญหาโดยใช้รูปแบบของการใช้เหตุผลประกอบกับการแยกคำตอบที่ไม่ต้องการ จะขึ้นอยู่กับเงื่อนไขของปัญหา ในบางปัญหาวิธีการนี้อาจไม่สามารถหาคำตอบสุดท้ายได้ แต่อาจช่วยจำกัดจำนวนคำตอบที่เป็นไปได้ให้น้อยลง นอกจากวิธีการแก้ปัญหาที่ยกตัวอย่างมาซึ่งได้แก่ การลองผิดลองถูก การใช้เหตุผลและการใช้วิธีแยกคำตอบที่ไม่ต้องการ ยังมีวิธีการแก้ปัญหาอีกมากมายที่สามารถเลือกใช้ให้เหมาะสมกับตัวปัญหาและประสบการณ์ของผู้แก้ปัญหาเอง อย่างไรก็ตาม เมื่อพิจารณาในภาพรวมจะพบว่า วิธีการเหล่านี้ล้วนมีขั้นตอนหลักที่คล้ายคลึงกัน ซึ่งประกอบด้วย 4 ขั้นตอน
ขั้นตอนการแก้ปัญหา
1.การวิเคราะห์และกำหนดรายละเอียดของปัญหา
ขั้นตอนแรกของการแก้ปัญหาใดๆ ก็ตาม จะต้องเริ่มต้นด้วยการทำความเข้าใจกับปัญหาให้ถ่องแท้ เพื่อวิเคราะห์เงื่อนไขของปัญหาให้ชัดเจน รวมไปถึงข้อมุลที่จำเป็นในการแก้ปัญหาและรูปแบบหรือลักษณะของผลลัพะหรือคำตอบที่ต้องการโดยเหล่านี้จะเป็นประโยชน์ในการเลือกวิธีการแก้ปัญหาต่อไปกล่าวดดยสรุป การวิเคราะห์และกำหนดรายละเอียดของปัญหามีองค์ประกอบดังนี้
1.1 การระบุข้อมูลออก
1.2 การระบุข้อมูลเข้า
1.3 ราบละเอียดของปัญหา
1.1 การระบุข้อมูลออก
ข้อมูลออกหรือคำตอบ คือสิ่งที่โจทย์ต้องการในการแก้ปัญหาด้วยคอมพิวเตอร์จำเป็นต้องระบุให้ชัดเจนว่าสิ่งที่ต้องการให้เป้นผลลัพธ์ของปัญหาคืออะไร และต้องการให้แสดงออกในรูปแบบใด เช่น การประมวลผลข้อมูลการเบิกถอนเงินจากเครื่องเอทีเอ็ม ต้อมีการแสดงข้อมูลออกเป็นจำนวนเงินที่ถอนไป และจำนวนเงินคงเหลือในบัญชี อีกทั้งยังต้องออกแบบการจัดวางข้อมูลเหล่านี้เพื่อพิมพ์ลงในใบบันทึกรายการด้วย
ตัวอย่างข้อมูลออก
1.2 การระบุข้อมูลเข้า
   ข้อมูลเข้าคือ ข้อมูลเริ่มต้นหรือเงื่อนไขที่โจทย์กำหนดมาให้ตั้งแต่แรก ในการแก้ปัญหา ผู้แก้ปัญหาจะต้องใช้ข้อมูลเหล่านี้ในการประมวลผู้เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ ตัวอย่างเช่น การเบิกถอนเงินด้วยบัตรเอทีเอ็มข้างต้น ผู้ถอนเงินต้องมีข้อมูลระบุตัวตนว่าเป็นเจ้าของบัญชีตัวจริง ได้แก่ บัตรเอทีเอ็ม และรหัสประจะตัว 4 หลักและยังต้องระบุข้อมูลให้ครบถ้วนว่าต้องการเบิกถอนจากบัญชีใดเป็นจำนวนเงินเท่าใด เป็นต้น
ตัวอย่างข้อมูลเข้า
1.3 รายละเอียดของปัญหา
รายละเอียดของปัญหา คือ การพิจารณาความต้องการของปัญหา ให้แสดงการวิเคราะห์และกำหนดรายละเอียดของการหาค่าเฉลี่ยนของจำนวนเต็ม 5 จำนวนองค์ประกอบของขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหาสามารถแสดงได้ดังนี้
2. การเลือกเครื่องมือและวิธีออกแบบขั้นตอนวิธีในการแก้ปัญหา
เมื่อได้รายละเอียดเบื้องหลังของปัญหา รามทั้งวิธีการประมวลผลแล้ว ขั้นตอนต่อไปเป็นการตัดสินใจว่าจะใช้เครื่องมือใดในการแก้ปัญหา ถ้าหากเป็นปัญหาทั่งไปในชีวิตประจะวันหรือปัญหาทางคณิตศาสตร์ง่ายๆ   อาจไม่ต้องใช้เครื่องมือพิเศษในการแก้ปัญหา แต่ใช้เพียงการคำนวนด้วยกระดาษทด หรือเครื่องคิดเลขก็สามารหาคำตอบได้แล้ว
ตัวอย่างเครื่องมือในการแก้ปัญหา
สำหรับปัญหาทีมีขั้นตอนในการแก้ปัญหาอย่างซับซ้อน หรือต้องมีการแก้ปัญหาในลักษณะเดิซ้ำอีกหลายครั้ง จำเป็นต้องใช้คอมพิวเตอร์เป็นอุปกรณ์ในการแก้ปัญหา โดยเขียนโปรแกรมเพื่อรับข้อมูลเข้าไปประมวลผล และยังต้องเลือกว่าจะใช้ดปรแกรมคอมพิวเตอร์ภาษาใด ซึ้งขึ้นอยู่กับความคุ้นเคยในการใช้งานของผู้เขียนโปรแกรม และลักษณะเฉพาะของแต่ละภาษาที่เหมาะสมกับปัญหานั้นๆ
ในการแก้ปัญหาดดยใช้คอมพิวเตอร์นั้น การออกแบบวิธีแก้ปัญหาอย่างเป็นขั้นตอนและง่ายต่อการทำความเข้าใจสำคัญมาก เพราะจะทำให้สามารถเขียนโปรแกรมจากขั้นตอนที่ได้ออกแบบไว้อย่างง่ายดาย เครื่องมือที่ใช้เพื่อการออกแบบขั้นตอนวิธี เช่น รหัสลำลอง (pseudocode) ซึ่งเป็นการจำลองขั้นตอนวิธีแก้ปัญหา โดยการอธิบายด้วยคำพูดที่เข้าใจได้ง่ายเป็นขั้นๆหรือผังงาน (flowchart) ซึ่งเป็นการใช้สัญลักษณ์ในการแสดงรายละเอียดและลำดับของแต่ละขั้นตอนที่ใช้แก้ปัญหา ข้อดีอีกประการหนึ่งของการใช้เครื่องมือเหล่านี้ช่วยในการออกแบบวิแก้ปัญหาคือ จะทำให้สามารถตรวจสอบความถูกต้อง หาจุดผิดพลาด และแก้ไขขั้นตอนในการแก้ปัญหาที่ซับซ้อนได้รวดเร็ว นักเขียนโปรแกรมจึงควรฝึกฝนการใช้งานเครื่องมือเหล่านี้ให้เชี่ยวชาญ
ตัวอย่างผังงาน
ตัวอย่างรหัสลำลอง
3. การดำเนินการแก้ปัญหา
การดำเนินการแก้ปัญหา เป็นขั้นตอนการใช้โปรแกรมประยุกต์หรือเขียนโปรแกรมขึ้นเองโดยใช้ภาษาคอมพิวเตอร์ ซึ่งต้องอาศัยความเชี่ยวชาญเฉพาะในการใช้โปรแกรมหรือภาคอมพิวเตอร์นั้นๆ ข้นตอนนี้จะเสร็จได้เร็วหรืช้าขึ้นอยู่กับหลายปัจจัย เช่น ความชัดเจนและถูกต้องของวิธีแก้ปัญหาที่ได้ออกแบบไว้ และสามารถในการเขียนหรือใช้งานโปรแกรมหรือภาษาคอมพิวเตอร์ที่เลือ ในขั้นตอนนี้ผู้พัฒนาควรคำนึงถึงความยืดหยุ่นของดปรแกรมที่ได้ออกแบบขึ้นด้วย เพื่อให้สามารถรองรับการเปลี่ยนแปลงที่อาจเกิดขึ้นในอนาคต เช่น การเปลี่ยนแปลงข้อมูลเข้า การเปลี่ยนรูปแบบของข้อมูลออกหรือวิธีการประมวลผลที่เปลี่ยนไป นอกจากนี้โปรแกรมควรต้องรองรับการขยายตัวในอนาคตได้อีกด้วย
การดำเนินการแก้ปัญหาโดยการเขียนโปรแกรม
4. การตรวจสอบและปรับปรุงวิธีการ
ในขั้นตอนเป็นการตรวจสอบเพื่อให้แน่นใจว่าวิธีการแก้ปัญหารวมโปรแกรมที่พัฒนาขึ้นให้ผลลัพธ์ถูกต้อง โดยต้องตรวจสอบว่าขั้นตอนวิธีที่สร้างขึ้นสอดคล้องกับรายละเอียดของปัญหาวึ่งได้แก่ข้อมูลเข้า และข้อมูลออกที่ได้ระบุไว้ อีกทั้งยังสามารถรองรับข้อมูลเข้าอื่นๆ ที่มีลักษณะเดียวกันได้หลังจากที่ดปรอกรมทำงานได้ผลตามที่ต้องการแล้วอาจต้องมีการปรับปรุงให้วิธีการในการแก้ปัญหามีประสิทธิภาพที่สุด โดยยังคงความถูกต้องของผลลัพธ์เช่นเดิม ในขั้นตอนการปรับปรุงนี้ ควรจะมีทั้งการปรับปรุงขั้นตอนการทำงานของวิธีแก้ปัญหาให้ดีขึ้น และปรับโปรแกรมที่เขียนขึ้นให้มีเทคนิคการประมวลผลที่มีประสิทธิภาพขึ้น

บทที่ 6 ( 6.2 เครื่องมือที่ใช้ในการออกแบบและขั้นตอนวิธีในการแก้ปัญหา )

การออกแบบวิธีในการแก้ปัญหาเป็นกระบวนการที่ต้องอาศัยประสบการณ์ ความรู้ความเข้าใจในปัญหา และความคิดอย่างมรเหตุผลและเป็นขั้นตอนแล้ว ยังต้องอาศัยเครื่องมือที่จะช่วยถ่ายทอดความคิดออกมาเป็นลายลักษณ์อักษร หรือเป็นแผนภาพซึ้งจะช่วยให้สามารถแก้ปัญหาได้ดีโดยเพาะปัญหาที่ยุ่งยากซับซ้อนอีกทั้งยังเป็นแนวทางให้ผู้ที่เกี่ยวข้องหรือผู้ดำเนินการปรับปรุงในอนาคตเข้าในวิธีแก้ปัญหาที่เราพัฒนาขึ้นได้ง่าย เครื่องมือที่ใช้ในการอกแบบวิธีแก้ปัญหามี 2 ลักษณะคือ
6.2.1 รหัสลำลอง
รหัสลำลองเป็นการใช้คำบรรยายเพื่ออธิบายขั้นตองวิธีในการแก็ปัญหา การเขียนรหังลำลองไม่มีรูปแบบที่แน่นอน ขึ้นอยู่กับประสบการณ์และความถนัดของผู้เขียน ซึ่งอาจจะเขียนอย่างละเอียดหรือย่อ และในบางครั้งที่อาจอธิบายในลักษณะคล้ายคำพูด หรืออาจจะเขียนในรูปแบบคล้ายภาโปรแกรมก็ได้เช่นกัน การใช้รหัสลำลองในการออกแบบวิธีแก้ปัญหามีข้อดีคือ เขียนง่ายผู้เขียนคำนึงถึงเพียงแต่วิธีแก้ปัญหา โดยไม่ต้องกังวลว่าจะเขียนผิดรูปแบบหรือไม่และถ้าผู้เขียนมีความชำนาญแล้ว การเขียนรหัสลำลองในรูปแบบคล้ายกับภาษาโปรแกรมจะทำให้สามารดัดแปลงไปเป็นโปรแกรมคอมพิวเตอร์ได้โดยง่าย แสดงถึงการใช้รหังลำลองในการถ่ายทอดความคิดเพื่อแก้ปัญหาทั่งไป และปัญหาทางคณิตศาสตร์
6.2.2 ผังงาน
ผังงานเป็นการอธิบายขั้นตอนวิธีการแก้ปัญหาโดยใช้รูปสัญลักษณ์มาเรียงต่อกันสัญลักษณ์แต่ละแบบจะมีถึงความหมายถึงกระบวนการที่แตกต่างกัน โดยจะมีคำอธิบายสั้นๆเพิ่มเติมในสัญลักษณ์ ความหมายของสัญลักษณ์ต่างๆ ที่ใช้ในผังงานที่ถูกกำหนดโดยสถาบันมาตรฐานแห่งชาติอเมริกา (The American National Standard Institute : ANSI)เพื่อให้สามารถสื่อความหมายได้ตรงกัน ซึ่งมีรายละเอียดของสัญลักษณ์และความหมายที่ควรทราบ
สัญลักษณ์และความหมายของผังงาน
ในการเขียนผังงานมีหลักการ คือ ให้เลือกสัยลักษณ์แทนกนะบวนการที่ถูกต้อง และเขียนข้อความสั้นๆ แทนสิ่งที่ต้องกระทำลงในรูปสัญลักษณ์ แล้วนำมาเรียงต่อกัน เชื่อมแต่ละสัญลักษณ์ด้วยลูกศร โดยทั่วไปแล้ว จะเรียงลำดับของสัญลักษณ์ไว้จากบนลงล่าง ตามลำดับชองการทำงาน หรือ อาจจะใช้หัวลูกศรระบุลำดับก่อนหลังของการทำงานก็ได้
การเชื่อมต่อสัญลักษณ์ต่างๆ ของผังงาน อาจทำให้มีการตัดกันของเส้นลุกศรจนอาจเกิดความสับสนได้ ผู้เขียนจึงควรเลือกใช้สัญลักษณ์จุดเชื่อมต่อในหน้าเดีวกัน โดยระบุตัวอักษรเดียวกันเพื่อหมายถึงการเชื่อมสองจุดของผังงานเข้าด้วยกัน แต่ถ้าผังงานใหญ่เกินหน้ากระดาษ ให้เลือกใช้สัญลักษณ์จุดเชื่อมต่อหน้ากระดาษ เพื่อเชื่อมระหว่างสองจุดของผังงานที่ข้ามไปอยู่คนละหน้ากัน

บทที่ 6 ( 6.3 โครงสร้างการโปรแกรม )

ก่อนการเขียนโปรแกรม ผู้พัฒนาโปรแกรมจะต้องเลือกภาษาคอมพิวเตร์ ที่จะนำมาใช้ช่วยงานโดยพิจารณาจากปัจจัยต่างๆ ในการทำงาน เช่น ลักษณะของปัญหา ความถนัดของนักเขียนดโปรแกรม สภาพแวดล้อมในการทำงานของระบบคอมพิวเตอร์ เป็นต้น เนื่องจากในปัจจุบันมีภาษาคอมพิวเตอร์ให้เลือกได้หลายภาษา เช่น ภาษาปาสคาล ภาษาซี ภาษาจาวา และภาษาเดลฟาย ภึงแม้แต่ละภาษาจะมีรูปแบบและหลักการในการสร้างงานที่แตกต่างกันแต่ทุกภาษาจะต้องมีโครงสร้างควบคุมหลักทั้ง 3 แบบ ได้แก่ โดครงสร้างแบบลำดับ (sequential structure) โครงสร้างแบบทางเลือก (selection structure) และโครงสร้างแบบวนซ้ำ(repetition structure)
6.3.1 โครงสร้างแบบลำดับ ( sequential structure )
โปรแกรมที่ทำงานเป็นขั้นตอนเพื่อแก้ปัญหาจะทำงานตามคำสั่งที่เขียนไว้ตามลำดับ ตั้งแต่คำสั่งแรกไปจนถึงคำสั่งสุดท้าย โดยที่คำสั่งในที่นี้อาจเป็นคำสั่งเดี่ยวๆ หรือเป็นคำสั่งเชิงซ้อนทีมีหลายคำสั่งย่อยประกอบกันในลักษณะเป็นโครงสร้างแบบทางเลือกหรือแบบวนซ้ำก็ได้
โครงสร้างแบบเรียงลำดับเมื่อเขียนเป็นผังงาน จะมีลักษณะดังเช่นรูปที่ 6.9 และมีกระบวนการทำงานพื้ฐานอยู่ 3 ชนิด ดังแสดงในรูปที่ 6.10 ได้แก่
-การคำนวณ เป็นกระบวนการที่คอมพิเตอร์ทำการคำนวณ ประมวลผล ซึ่งจะรวมไปถึงการกำหนดค่าให้กับตัวแปร เพื่อให้สามารถนำค่าของตัวแปรนั้นมาใช้ในภายหลังได้
- การรับข้อมูลเข้า เป็นกระบวนการรับข้อมูลจากอุปกรณ์ของหน่วยรับเข้า เช่น คีย์บอร์ด เพื่อนำค่าไปกำหนดให้กับตัวแปร และเก็บไว้ในหน่วยความจำ
- การส่งข้อมูลออก เป็นกระบวนการนำค่าของข้อมูลไปแสดงผลยังอุปกรณ์ของหน่วยส่งออก เช่น จอภาพหรือเครื่องพิมพ์ ข้อมูลที่จะส่งออกโดยทั่งไปจะเป็นค่าคงที่ หรือค่าของตัวแปร
ในการดำเนินการเพื่อแก้ปัญหาด้วยคอมพิวเตอร์ กระบวนการเหล่านี้ต้องถูกแปลงให้อยู่รูปของคำสั่งหลายคำสั่งประกอบกันเพื่อให้ทำงานตามขั้นตอนที่ได้ออกแบบไว้ เช่น กรบวนการการคำนวณในการเพิ่มค่าของตัวแปร counter ขึ้นอีกหนึ่ง จะใช้คำสั่ง ” counter < counter + 1  ” กระบวนการรับข้อมูลเข้าเพื่อเก็บไว้ในตัวแปร x จะใช้คำสั่ง  ” input x” และกระบวนการส่งข้อมูลออกไปยังจอภาพเพื่อแสดงผลของตัวแปร average จะใช้คำสั่ง “print avereage” เป็นต้น
6.3.2 โครงสร้างแบบทางเลือก (selection structure)
ปัญหาบางอย่างต้องการการตัดสินใจ เพื่อเลือกว่าจะใช้วิธีการใด โดยต้องมีการตรวจสอบว่าเงื่อนไขที่ใช้ในการตัดสินใจว่าเป็นจริงหรือเท็จ ถ้าเป็นจริงจะไปเลือกทำคำสั่งชุดหนึ่ง แต่ถ้าเป็นเท็จจะไปเลือกทำคำสั่งอีกชุดหนึ่ง ซึ่งชุดคำสั่งเหล่านี้จะประกอบด้วยโครงสร้างแบบลำดับนั่นเอง
6.3.3 โครงสร้างแบบวนซ้ำ (repetition structure)
ในการแก้ปัญหาบางอย่างอาจต้องมีการทำงานในบางคำสั่งหรือชุดของคำสั่งซ้ำกันมากกว่าหนึ่งรอบขึ้นไป โครงสร้างแบบมีการวนซ้ำนี้ต้องมีการตัดสินใจร่วมอยู่ด้วยเสมอ เพื่อเป็นเงื่อนไขที่ตัดสินใจว่าเมื่อใดจะวนซ้ำ หรือเมื่อไรจะถึงเวลาหยุดวนซ้ำโดยทั่วไปผังงานของการวนว้ำจะมีลักษณะดังรูปที่ 6.14 หรือรูปที่ 6.15 โดยมีความแตกต่างกันตือ ในรูปที่  6.14 เป็นการวนซ้ำแบบที่ต้องตรวจสอบเงื่อนไขที่จะใช้วนซ้ำก่อนที่จะทำงานในชุดคำสั่งในโครงสร้างแบบวนซ้ำ เรียกว่า การวนซ้ำแบบ while ซึ่งจะสังเกตได้ว่าถ้าเงื่อนไขไม่เป็นจริงตั้งแต่แรก คำสั่งแบบโครงสร้างในการวนซ้ำจะไม่ถูกเรียกให้ทำงานเลยแต่สำหรับ 6.15 เป็นการวนซ้ำแบบมีการตรวจสอบเงื่อนไขที่จะให้วนซ้ำหลังจากที่ได้ทำงานตามชุดคำสั่ง ในโครงสร้างแบบวนซ้ำไปรอบหนึ่งแล้วเรียกว่า การวนว้ำแบบ until สำหรับตัวอย่างของการวนซ้ำ เช่น การรับค่าตัวเลขเข้ามาหลายค่า ในโครงสร้าเพื่อคำนวนหาผลรวม ในตัวอย่างที่ 6.7 ถือเป็นการวนซ้ำแบบ until

สิ่งที่ควรระวังในการใช้งานขั้นตอนวิธีแบบมีการวนซ้ำคือ ต้องตรวจสอบว่าได้กำหนดเงื่อนไขอย่างรัดกุมและถูกต้อง มิเช่นนั้นแล้วอาจเกิดกรณีแบบวนซ้ำไม่รู้จบ (infinte loop) หรือกรณีที่วนซ้ำไม่ไ้ด้ตามจำนวนรอบที่ต้องการ

วันจันทร์ที่ 1 กรกฎาคม พ.ศ. 2556

ผลกระทบจากการใช้งานอินเทอร์เน็ตและบัญญัติ 10 ประการในการใช้งานคอมพิวเตอร์

5.5 ผลกระทบอินเทอร์เน็ต

5.5 ผลกระทบการใช้งานอินเทอร์เน็ต 

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

    เนื่องจากสมาชิกของโลกไซเบอร์สามารถสร้างตัวตนใหม่ที่อาจมีบุคลิก นิสัย รูปลักษณ์ หรือแม้แต่อายุที่แตกต่างไปจากตัวตนที่แท้จริง ซึ่งอาจใช้อินเทอร์เน็ตในทางที่ผิด ทำให้เกิดปัญหาในด้านต่างๆ เช่น

    1.ปัญหาสุขภาพและความสัมพันธ์ทางครอบครัว

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

    2.ปัญหาอาชญากรรมทางอิเล็กทรอนิกส์ มีผู้ใช้อินเทอร์เน็ตเป็นช่องทางในการก่ออาชญากรรมหลายรูปแบบ เช่น 
    เจาะระบบรักษาความปลอดภัย ให้สามารถเข้าถึงระบบคอมพิวเตอร์ เพื่อกระทำการใดๆ กับระบบคอมพิวเตอร์ ซอฟต์แวร์ หรือข้อมูลที่มิชอบต่างๆ อาจทำให้เกิดความเสียหายในเชิงธุรกิจ การบิดเบือนข้อเท็จจริง

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

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

เกร็ดน่ารู้

    โปรแกรม phishing filtering จะช่วยคัดกรองหน้าเว็บที่ต้องสงสัยต่างๆ ให้กับผู้ใช้ ผู้ใช้สามารถเลือกใช้ตัวป้องกันการแสดงหน้าต่าง ป๊อปอัพในโปรแกรมเว็บเบราว์เซอร์ หรือผู้ใช้เพิ่มความระมัดระวังในการให้ข้อมูลส่วนตัวต่างๆ โดยการตรวจสอบแหล่งทีมาของอีเมลก่อนให้ข้อมูล

    เผยแพร่ภาพอนาจาร การเผยแพร่ภาพอนาจารต่างๆ โดยใช้วิธีการที่หลากหลาย เช่น ผ่านเกมออนไลน์ ผ่านการสร้างไฟล์ไวรัสเจาะเข้ามาที่ระบบคอมพิวเตอร์ เมื่อผู้ใช้เปิดอินเทอร์เน็ตไฟล์ไวรัสจะแสดงภาพอนาจารต่างๆ หรือผ่านโปรแกรมค้นหา โดยการตั้งคำหลักที่หลากหลายให้กับภาพอนาจาร เมื่อผู้ใช้ค้นหาด้วยคำหลักที่ตรงกับที่ได้ตั้งไว้ก็จะปรากฏภาพอนาจารในผลที่ได้จากการสืบค้นหาข้อมูล

    3. ปัญหาการล่อลวงในสังคม

    จากการทีผู้ใช้งานในอินเทอร์เน็ตบางคน สร้างตัวตนขึ้นมาใหม่ในการติดต่อสนทนากับผู้อื่น โดยให้ข้อมูลที่เป็นเท็จ เช่น เพศ อายุ ภาพถ่าย และอาชีพ เพื่อล่อลวงให้คู่สนทนาสนใจตัวตนใหม่ และนัดพบเพื่อการกระทำอันตรายต่างๆ จนเกิดปัญหาร้ายแรงต่อทรัพย์สินหรือต่อตนเอง

ข้อควรปฏิบัติเพื่อความปลอดภัยในการใช้งานในระบบเครือข่าย

    1. ตั้งรหัสผ่านที่ยากแก่การเดา เช่น หลีกเลี่ยงในการใช้ชื่อเล่น วันเดือน ปี เบอร์โทรศัพท์

    2. เปลี่ยนรหัสผ่านสม่ำเสมอ

    3. ติดตั้ง ใช้งาน และปรับปรุงโปรแกรมป้องกันมัลแวร์สม่ำเสมอ

    4. ศึกษาความรู้เกี่ยวกับความปลอดภัยในการรับไฟล์ ดาวน์โหลดจากอินเทอร์เน็ต เช่น อีเมล หรือหน้าเว็บต่างๆ

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

มุมนักคิด ในสังคมปัจจุบันมีผู้ใช้อินเทอร์เน็ตไม่เหมาะสมในลักษณะใดอีกบ้าง และ มีวิธีใดบ้างที่จะช่วยรณรงค์ให้ใช้อินเทอร์เน็ตในทางสร้างสรรค์

บัญญัติ 10 ประการในการใช้งานคอมพิวเตอร์ 

    1. ต้องไม่ใช้คอมพิวเตอร์ทำร้ายผู้อื่น เช่น ไม่ควรโพสต์ข้อความกล่าวหาบุคคลอื่นในเว็บบอร์ดให้ผู้อื่นได้รับความเสียหาย ไม่ควรโพสต์รูปอนาจาร

    2. ต้องไม่ใช้คอมพิวเตอร์รบกวนผู้อื่น เช่น เปิดฟังเพลงด้วยคอมพิวเตอร์ หรือ เล่นเกมรบกวนผู้อื่นที่อยู่ในบริเวณใกล้เคียง

    3. ต้องไม่เปิดดูไฟล์ของผู้อื่นก่อนได้รับอนุญาต เช่น แอบเปิดอ่านอีเมลของเพื่อน

    4. ต้องไม่ใช้คอมพิวเตอร์ในการโจรกรรมข้อมูล ข่าวสาร เช่น การแอบเจาะระบบเพื่อขโมยข้อมูลการค้าของบริษัท ขโมยรหัสผ่านบัตรเครดิต

    5. ต้องไม่ใช้คอมพิวเตอร์สร้างหลักฐานเท็จ เช่น การแอบเจาะระบบเพื่อเปลี่ยนแปลงคะแนน

    6. ต้องไม่ใช้คอมพิวเตอร์ในการคัดลอก หรือ ใช้โปรแกรมที่มีลิขสิทธิ์โดยไม่ได้รับอนุญาต เช่น ดาวน์โหลดโปรแกรมที่มีลิขสิทธิ์มาใช้ โดยมีโปรแกรมแก้ไขเพื่อให้ใช้งานได้

    7. ต้องไม่ใช้คอมพิวเตอร์ในการ ละเมิดการใช้ทรัพยากรคอมพิวเตอร์โดยที่ตนเองไม่มีสิทธิ์ เช่น ไม่ใช้คอมพิวเตอร์ หรือ ไม่ใช้อุปกรณ์คอมพิวเตอร์ที่ไม่ได้รับสิทธิ์ในการเข้าใช้

    8. ต้องไม่ใช้คอมพิวเตอร์เพื่อนำเอาผลงานของผู้อื่นมาเป็นของตนเอง

    9. ต้องคำนึงถึงผลกระทบที่เกิดจากโปรแกรมที่ตัวเองพัฒนาขึ้น

    10. ต้องใช้คอมพิวเตอร์ โดยเคารพกฎ ระเบียบ กติกา และมารยาทของสังคมนั้น