--- title: ฝึก Revoice โครงสร้างข้อมูลและอัลกอริทึม 26 ก.ค. 2022 (ตัดเฉพาะเสียงพูดช่วงนาทีที่ 0:20:01-0:40:00 มาทดสอบ) นาโน subtitle: date: วันพุธที่ 3 สิงหาคม 2565 เวลา 13.00 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) มาดูพร้อมกัน ท้องแรกเดี๋ยวคุณครูเขียนให้ก่อนนะลิงค์ลิสต์อย่างที่ครูบอกแล้วมีอยู่ 4 หน่วยนะคะ โหลดอะไรเป็นโหมดแรก Note 5 AIS dot Data แสดงว่าต้องเอาข้อมูลมาใส่ใช่ไหมคะ Test คือตัวชี้ อยู่ที่ไหนอยู่ที่ตัวแรก dot Data เอาตัวอะไรมาใส่คะ ก็คือ dot Data มา ดอทเน็ต dot Data Test Test ที่นี่ใช่ไหมคะ ขยับมาถูกไหม dot Net แสดงว่ามันเดินไป 1 ช่อง ช่องผัดไทย แล้วถ้าที่ครูที่อยู่มีข้อมูลอะไร ใช่ไหมคะ คือสิ ผัดมา ดีดอทเน็ต อยู่ตรงนี้ถูกไหมคะ ดีที่ครูชี้อยู่ next คือเดินไปถัดไป ภูชี้ฟ้าอยู่ที่ 20 แล้วคำตอบครูถามเล็ก เพราะฉะนั้นครูต้องตอบตัวชี้แล้ว 20 มีอะไรชี้อยู่ QC อยู่นะคะ มา ข้อ 6 ดอทเน็ต dot Data ครูชี้อยู่ข้อมูลคือ 20 OK คิวดอทเน็ต คิวดอทเน็ต ตกขอบเลย เพราะฉะนั้นตอบอะไรคะ ดัน คิวดอทเน็ต ไม่มีอะไรแล้วเหมือนตกขอบเลย ก็เลยต้องเอานั่นมาใส่นะคะ เช็คดูสิคะ เหมือนของเราไหม OK ได้ไหมคะ เราเข้าถึงข้อมูลโดยการใช้คำสั่งแล้วนะคะ ถ้าครูอยากจะเพิ่มโน้ตใหม่ เข้าไป นี่อยากจะเพิ่มโน้ตใหม่เข้าไปนะคะ อาจจะเพิ่มโน้ตใหม่ เข้าไปที่ ขาย List คือเอาเป็นตัวสุดท้ายนะคะ 20 แล้วต่อด้วย 30 30 ตัวนี้โหลดใหม่ที่สร้างขึ้นมา ต่อท้าย 20 ก่อนจะเขียนคำสั่งถูกไหม วาดเส้นเสียหน่อยจะได้รู้ว่ามันต่อท้ายอย่างไรนะคะ เดี๋ยวลอกจดก่อนเดี๋ยวรอแป๊บนึงให้เวลาลอกโจทย์ก่อน ถ้าใครทำได้ลองเขียนคำสั่งเส้นนี้สีชมพูนะคะ ให้ครูหน่อย ว่าจะสร้างเส้นนี้ขึ้นมาต้องใช้คำสั่งอะไร ครูแก้นิดนึงนะ ขออภัยครูแก้หนวดที่สร้างใหม่นะคะ เพราะชื่อมันซ้ำกัน ครูลืมดู เป็นตัวที บวชชีต้นไม้ เส้นที่เราสร้างขึ้นมาใหม่นะคะ เราจะเขียนคำสั่งให้กับเส้นนี้ เราก็ดูว่าจุดที่เราออกมานี่ โหลด 20 มันมีอะไรชี้อยู่ มันมี TC อยู่ใช่ไหมคะ พ่อ p. ด้วย มันออกมาจากช่องที่ชื่อว่าเนส mt.aso แล้วมันขึ้นมาที่ไหน ขึ้นมาที่ 30 แล้ว 30 มีอะไรชี้อยู่ คือมีทีนะคะ จะได้เป็น TV ดอทเน็ต ต้องกลับที ได้ไหมคะ ได้ไหมคะ หรือยัง คราวนี้ตัดมา มี 2 ข้อ ให้ครูทำหน่อย เพิ่มโน้ตใหม่ ระหว่าง 20 กลับ 30 เอา 20 แล้วตามด้วย 25 บาทแล้วตามด้วย 30 นะคะ ข้อถัดมาลบโหนด 20 คือลบโหนดที่อยู่ต้น List จะใช้คำสั่งอะไร เพิ่มโน้ตใหม่นะคะ เราก็ว่าเส้นเชื่อมเหมือนเดิม ฝาก 20 มา 25 325 ไป 30 ไปไหม ลบโหมด 20 ตัดตัวนี้ทิ้ง เช้านี้นะคะเดี๋ยวมาดูกัน มาแลกเส้นที่ 1 อันนี้เส้นที่ 2 เส้นที่ 1 นะคะ กูจะเขียนคำสั่งว่าอย่างไร หนูเริ่มต้น ตรงนี้นะคะ แล้วอะไรชี้อยู่ Tu เห็นไหมคะ ครูเริ่มต้นจากตรงนี้ แล้วมันมีอะไรชี้อยู่คือมีเหตุที่อยู่นะคะ ห้องนี้มีชื่อว่าเล็ก คือเฮ็ด ดอทเน็ต มาที่ไหน สีมาที่ 25 แล้ว 25 มีอะไรชี้อยู่ มี PC อยู่ อันนี้คือเส้นที่ 1 นะคะ ผัดมาม่า วันที่ 2 มันออกจากตรงไหน ออกจากตรงนี้ ถูกไหมที่ครูชี้อยู่ มีอะไรชี้อยู่ ช่องนี้มีชื่อว่าเนส ดอทเน็ต ชี้ไปข้างบนนี้อะไรชี้อยู่ มีสีอยู่ จัดมา ครูจะลบโหนด 20 ลบตัวนี้ทิ้งไป มันอยู่ตัวแรกใช่หรือเปล่า แสดงว่าเราลบโหนดแรก เมื่อเราลบหมดแรก เราต้องทำอะไรคะ I hate ใช่หรือเปล่า I hate ไปไว้ที่ไหน ไปไว้ที่ 30 แล้ว 30 มีอะไรที่อยู่ ก็คือเห็ด เท่ากับที OK OK Link List เนื้อหาก็จะประมาณนี้นะคะ ให้เรารู้ Concept ของลิงค์ลิสต์นะ ว่าเวลาเราจะเข้าถึงข้อมูล เวลาเราจะเพิ่มจะลบนะคะ เดี๋ยวครูให้เบรคอีก 5 นาที เดี๋ยวครูจะติวให้ทั้งหมดเลยนะ นัดสอบกันสัปดาห์หน้านะคะ เราจะนับ ตอบกันสัปดาห์หน้าน่ะ จะมีสอบอะไรบ้างตั้งแต่เรื่องแรกเลยอัลกอริทึ่มคืออะไร ใช่ไหมคะ การวัดประสิทธิภาพ Big O Dictionary และ Link List นะคะ เรื่อง บ่ให้เบรคก่อน 5 นาทีนะ เดี๋ยวหลังจากนั้นเดี๋ยวครูจะทวนให้นะคะ พร้อมนะคะ เดี๋ยวเราจะมาท้วงนะคะเนื้อหาที่เราเรียนผ่านมา ว่าเราเรียนเรื่องอะไรไปบ้างนะคะ สรุปสาระสำคัญ เรื่องแรกที่เราเรียนนะคะ เราพูดถึงเอา เริ่ม ยังจำได้ไหม algorithm แปลว่าอะไร algorithm นะคะ ขั้นตอน ที่เราใช้ในการแก้ปัญหา ปัญหาเดียวกันนะคะ เราอาจจะมีวิธีการแก้ไขปัญหาที่แตกต่างกัน มันคือขึ้นอยู่กับ algorithm หรือวิธีคิดที่เราใช้นะคะ เอาไว้ทำอะไร โจทย์นะคะ เราจะหาคำตอบค่ะกดดันได้อย่างไร เราต้องมีวิธีทำ ไอ้ตัววิธีทำตัวนั้นล่ะ ก็คือ algorithm หรือนะคะ เราทำกับข้าว algorithm ก็คือวิธีการทำกับข้าว ไม่ว่าเราต้องการไข่เจียวสัก 1 จาน เรามี algorithm ในการทำไข่เจียวนั้นอย่างไร ตั้งแต่การเตรียมไข่ใช่ไหมคะ ตั้งกระทะการตอกไข่ตีไข่ก็ว่ากันไปนะคะ คราวนี้ครูยกตัวอย่างเช่นการทำไข่ต้ม การทำไข่ต้ม ครูก็จะมีขั้นตอนนะคะ 1 2 3 4 5 เริ่มตั้งแต่ต้มน้ำต้มน้ำให้เดือด ใส่ไข่ลงไป รอ 10 นาที ดับไฟ แล้วก็ปลอกไข่ เอาไข่ขึ้นมาแล้วก็ปลอกไข่ algorithm ตัวนี้ เพื่อให้ได้ไข่ต้ม เราจะข้ามขั้นตอนไม่ได้ใช่ไหมคะ เราต้องทำตามขั้นตอนนี้ เพื่อให้ได้ผลลัพธ์ ตามที่เราต้องการนะคะ เช้านี้เรามี algorithm นะคะ อีกอย่างหนึ่ง แม่ให้เงินไป 100 บาท ให้ไปซื้อหมูปิ้งถูกไหมคะ ที่เขาขายเป็นชุดน่ะ ชุดละ 20 บาท เราจะไปซื้ออย่างไรถูกไหมคะ เราก็เดินไปซื้อสั่งถูกไหม ซื้อหมูปิ้งกี่ชุดนะคะ แล้วนี่ พ่อเขาใส่มาให้เราก็ต้องมีการตรวจสอบไหม ว่าเขาให้ถูกหรือเปล่าใช่ไหมคะ แล้วค่อยถือกลับมาให้แม่ algorithm ที่เราเขียนนะคะ สิ่งเหล่านี้จะถูกแปลงไปเป็นโปรแกรม นะคะ อีกอย่างหนึ่งให้คำนวณการหาพื้นที่สามเหลี่ยม ก็คือหนึ่งส่วนสองคูณฐานคูณสูงใช่ไหมคะ เราต้องรู้ว่าฐานคืออะไร สูงคืออะไร และเอามาคำนวณโดยการใส่สูตรเพื่อหาพื้นที่ พอเราได้วิธีคิดแบบนี้ เราก็เอาไปเขียนโปรแกรมถูกไหมคะ ขั้นตอนที่เราคิดเมื่อกี้ ว่าจะต้องทำอะไรก่อน ควรจะต้องเอาไปเขียนโปรแกรมนะคะ คราวนี้พอเราอัลกอริทึ่มของเราไปสู่การเขียนโปรแกรมนะคะ มันต้องมีการวัดประสิทธิภาพของ algorithm การวัดประสิทธิภาพของอัลกอริทึมในคลาสนี้ เราวัด โดยการสนใจในเรื่องของเวลาที่ใช้ในการประมวลผล เราสนใจว่าเวลาที่ใช้ในการประมวลผลนะคะ ของ algorithm ของเรา มันมีค่า นะคะ เราจะใช้ตัววัด ที่ชื่อว่า bigo นะคะ เราจะใช้ตัววัดที่ชื่อว่าบิ๊กโอในการวัดประสิทธิภาพ ใช้สัญลักษณ์คือตัว O ตัวใหญ่นะคะ ในการวัดประสิทธิภาพของ algorithm เราก็ต้องมาดูก่อนว่าแล้วอัลกอริทึ่มที่เราเขียนนะคะ ที่เราเขียนเป็นโปรแกรมนี่ เรามีคำสั่งแบบไหน เรามีคำสั่งที่เรียงลำดับ เขียนเรียงลำดับลงมา เป็นคำสั่งที่มีเงื่อนไข หรือเป็นคำสั่งที่ใช้ในการวนลูป คือทำซ้ำหลายๆรอบ แต่ละรูปแบบนะคะการดำเนินการแต่ละรูปแบบ วิธีวิธีคิด การหา บีโก้ที่ต่างกันเช่นตัวแรก การหาค่า Big O แบบค่าคงที่หมายถึงอะไร แบบค่าคงที่เราไม่ได้ทำซ้ำนะ คงที่นะคะ เราจะคิด เราจะวัดว่าคำสั่งแต่ละคำสั่งที่ไม่ใช่การวนลูป และไม่ใช่ ตรวจสอบเงื่อนไข คำสั่งทำงานกี่ครั้ง เราทำงานกดปุ่ม Run นะ เราเขียนโปรแกรมเสร็จเรากดปุ่ม Run ปุ๊บ คำสั่งที่เราเขียนขึ้นแต่ละบรรทัด จะทำงานกี่ครั้งนะคะ คำสั่งแต่ละบรรทัด ทำงานกี่ครั้ง โปรแกรมที่ครูให้ไปครูมีโปรแกรม 2 บรรทัดนะคะ บรรทัดแรก การกำหนดค่าเริ่มต้น บรรทัดที่ 2 เป็นการคำนวณใช่ไหมคะ บรรทัดแรกเป็นการกำหนดค่าเริ่มต้นบรรทัดที่ 2 เป็นการคำนวณ เวลาเรากดปุ่ม Run ปุ๊บ เขียนโปรแกรมเสร็จ บรรทัดที่ 1 จะเริ่มทำงาน ที่บรรทัดที่ 1 ก่อน ทำเสร็จ จะเลื่อนมาเป็นบรรทัดที่ 2 มันมีอยู่ 2 คำสั่งใช่ไหมคะ แล้วมันก็จบการทำงาน เพราะฉะนั้น คำสั่งแต่ละตัว มาทำงานเพียง 1 ครั้งเท่านั้น นะคะ ทำงานเพียง 1 ครั้งเท่านั้น งั้นมาหาค่าฟังก์ชันนะคะ เพื่อ จะเอามาคำนวณค่าบิน เรารู้ว่าแต่ละบรรทัดทำงาน 1 ครั้ง เราก็เอาตัวเลข 1 ในแต่ละบรรทัดมาบวกกัน เป็น 2 นะคะ วิธีการทำการวนซ้ำ ถูกไหม เพราะฉะนั้นเราจะบอกได้ว่า คำสั่งที่เราเขียนขึ้น เป็นคำสั่งที่ทำงานเรียงลำดับลงมาเรื่อยๆ ทำงานเพียงบรรทัดละ 1 ครั้ง จะตอบว่าโอ 1 นะคะ จะตอบว่าโอ 1 แม้ตรงนี้จะบวกกันกี่ครั้งก็ตาม แต่มันจะทำงานแต่ละคำสั่งเพียง 1 ครั้งนะคะ ก็จะตอบว่าโอ 1 ผัดมา กรณีที่เป็นการตรวจสอบเงื่อนไข กรณีที่เป็นการตรวจสอบเงื่อนไข การตรวจสอบเงื่อนไขนะคะ เราใช้คำสั่ง อีฟ คำสั่ง is เป็นการตรวจสอบเงื่อนไข ตรวจสอบเงื่อนไขหลังอีฟ วันไหนคะ เป็นจริง ถึงจะมาทำบรรทัดถัดไป ถ้าไม่เชื่อ มาทำหลังเอว คือทางเลือกถูกไหมคะ คือการตัดสินใจ ทำหรือไม่ทำ จริงหรือเท็จ ถ้าไม่จริงทำหลังเอวนะคะ สมมุติ รูปมดให้ n = 2 n = 2 ครูมาตรวจสอบ