การเพิ่มโหนดใหม่นะคะเข้าไปที่ลิงก์ลิสต์ ได้ยินไหม ล่ามได้ยินไหมเอ่ยร้อนนะโอเค ได้นะคะ ฮํลโหลค่ะ พี่ล่ามได้ยินไหพี่ล่ามคะ ได้ยินไหมคะ ยิ้มใส่ใครค่ะ วันนี้นะคะ เดี๋ยวจะมา... เดี๋ยวจะมาต่อในเรื่องของลิงก์ลิสต์นะคะ คราวที่แล้วเราเพิ่มถูกไหมคะ เราเพิ่มโหนดใหม่ เข้าไปในลิงก์ลิสต์ เพิ่มข้างหน้า แล้วก็เพิ่มข้างหลังนะคะ วันนี้เราจะมาพูดถึงการลบบ้าง การลบก็คือการเอาโหนดออกการลบ ก็คือการที่เราดึงโหนดออก ทำยังไงไม่ให้มันปรากฎอยูาใน ของเรานะคะ เราก็ต้องสร้างเส้นเชื่อมใหม่นะ เราต้องลากเส้นเชื่อมใหม่นะคะเราสามารถลบได้ข้างหน้า ตรงกลางและข้างหลังเหมือนกันคราวนี้ ครูมีลิงก์ลิสต์นะคะอันนี้คื่อ ลิงก์ลิสต์นะ จากภาพนี่คือลิงก์ลิสต์ ลิงก์ลิสต์ที่เราเห็นทีหน้าจอ มีทั้งหมดกี่โหนด โหนด คือ สี่เหลี่ยมถูกไหม มีทั้งหมด 3 node ด้วยกันโหนดที่ 2 และโหนดที่ 3 นะคะรู้ได้อย่างไรว่าอันไหนคือต้นลิสต์หรือด้านหน้าของลิสต์ รู้ได้อย่างไรคะ รู้ได้อย่างไรว่าอันไหนเป็นอันแรก 3, 7 หรือ 10ก็คือโหนดนี้ใช่ไหมคะ รู้ได้ยังไงก็เพราะว่ามี hadชี้อยู่ เราก็เลยรู้ว่าโหนดที่มีข้อมูลหมายเลข 3 คือ โหนดที่อยู่ต้นลิสต์หรืออยู่หัวแถวนะคะ ถัดมาถ้าตัวนี้นะคะ ครูถามต่อว่าสมมติครูเข้าถึงข้อมุลแบบนี้ แบบนี้ head.data จะตอบเเท่ากับเท่าไหร่head.data จะเท่ากับ 3 ทันไหมคะ head ก็คือตัวชี้นะคะ haed ก็คือตัวชี้มันชี้อยู่ที่ไหน ชี้อยู่ที่นี่ .data .data ก็คือข้อมูล .data .data ก็คือข้อมูล ถ้าพูดถึง .data แล้วข้อมูลชี้อยู่นี่ เก็บข้อมูลอะไรก็คือ 3 นะคะ ถ้าครูต้องการ ลบโหนด 3 นี้ทิ้งไปครูต้องทำอย่างไร ครุก็แค่ย้าย heahead ใช่ไหมคะ มาที่โหนดถัดไป เพราะ head ชี้ที่ไหนตัวนั้นคือหัวแถว หรือต้นลิสต์ เพราะฉะนั้น ถ้าเรต้องการลบโหนที่มันอยู่ด้านหน้าสุดเราจะทำอย่างไร เราจะเขียนสั่งให้เอา haead ชี้โหนด 7 เราจะใช้คำสั่งอะไร ตอนนี้โหนด 7 คือเส้นนี้ชี้อยู่คือ เส้นนี้ที่มันเชื่อมอยู่ด้านหลังชี้อยู่ เส้นนี้มันออกมาจากโหนกไหน ซึ่งมี head ชี้อยู่ เส้นนี้ก็เลย head.nextเราจะย้าย head ก็ใช้คำสั่ง head ไปชี้ที่ head .nexthead.next ชี้อยู่ตรงไหน .next คือช่อง ช่องนี้ช่องที่ 2 ตรงนี้ มันชี้มาที่ไหน ชี้มาที่ 7 นะคะ เพราะฉะนั้น head จะย้ายมาอยู่ที่ 7 นะ จะชี้อยู่ที่ 7 นะคะ โอเคนะคะคราวนี้ลบข้างหน้า ได้แล้วต่อไปมาลบตรงกลางนะคะ มาลบตรงกลางบ้างลบตรงกลางคือลบอะไร ลบโหนด 7 นะคะ โหนด 7 จะอยู่ระหว่าง 3 กับ 10 เราจะลบตัวนี้ทิ้งไป เราจะทำอย่างไร อันดับแรกต้อวาดรูปถูกไหมคะ จะได้รู้ว่าจาก 3 นี่ ต้องเชื่อมมาที่ 10 ใช่ไหมคะ จาก 3 เราจะเชื่อมมาเป็น 10 แล้วเส้นนี้ เราต้องเขียนคำสั่งอะไรสังเกต โหนด 3 มีตัวชี้ ที่ชื่อว่า previousNode โหนด 7 มีตัวนี้ใช่ไหมคะ CurrentNodeครูจะลบตัวนี้ออกเส้นนี้ ออกมาจากโหนด 3 ถูกหรือเปล่า โหนด 3 มันมีอะไรชี้อยู่ e.next ชี้มาที่ไหน ชี้มาที่ 10 แล้ว 10 อะไรชี้อยู่ เส้นนี้ก็คือ .next ชี้อยู่ ได้ไหมคะ ใช่ไหมคะมาดูใหม่นะ เส้นนี้ นะคะเราดูพร้อมกัน เส้นนี้เราต้องการเขียนคำสั่งเส้นสีแดงที่ครูรนะคะ เส้นนี้มันออกจากไหน ออกมาจากตัวนี้ชี้อยู่ ก็เป็น previousNode. ออกมาจากช่องนี้ ช่องที่ 3 ของโหนดจะมีชื่อว่า next นะคะ เป็น previousNode.next คือมันออกมาจุด จุดนี้ ใช่ไหมคะ แล้วตอนนี้ 10 มีอะไรชี้อยู่ มีแค่เส้นเส้นนี้ชี้อยู่ใช่ไหมคะ เส้นนี้มาจากไหน ออกมาจากจุดนี้ ก็คือ currentNode ออกมาจากช่องที่ชื่อว่้า Nextนะคะ มันก็เลยเป็น previousNode.next เท่ากับ currentNode.next เดี๋ยวดูอีกตัวหนึ่ง ลบท้ายสุดสุดท้าย ลบ ท้ายสุดสุดท้าย โหนดสุดท้ายเลยลบโหนดสุดท้ายที่มี p ชี้อยู่ ทำอย่างไร ก็ให้ p=None ตัวนี้ก็จะหายไป p=nullทุกคนเอาชีตเก่ามาไหม หยิบชีสเก่ามาสิคะชีสคราวที่แล้ว เรายังเหลือข้อ 4 นะที่ยังทำไม่เสร็จ เรายังเหลือข้อ 4 นะคะ ในข้อ 4 ครูต้องการลบโหนด 20 ซึ่งอยู่ตรงกลางพอดีเลย อยู่ตรงกลางพอดีเลย ซึ่งอยู่ตรงพอดีเลย เหมือนกับโจทย์ข้อนี้เลย เราจะเขียนคำสั่งแบบไหนเขียนให้ครูดูหน่อย ครูจะลบโหนดตรงกลางเหมือนกันนะ โหนดล่างนี่ ด้านซ้ายมีอะไรชี้อยู่ตัวที่ลบมีอะไรชี้อยู่ มีอะไรชี้อยู่ ลองดูสิคะ แป๊บหนึ่งนะ ดู ๆ เดี๋ยวนะคะ คราวนี้ดูเรามีโหนด 3 โหนดฝใช่ไหมคะ ที่ครูให้ในชีตนะ ข้อ 4 โหนดแรกเก็บข้อมูล 13 โหนดที่เก็บข้อมูล 20 แล้วโหนดสุดท้ายเก็บข้อมูล 33 head ชี้อยู่ รู้เลย 13 คือ โหนดที่ 1 นะคะ ตามมาด้วย 20 แล้วก็ 33 ดูจากไหนนี่ไง มันมีตัวชี้ ชี้ไปตัวถัดไป ครูต้องการลบโหนดที่ ลบโหนดที่ชี้อยู่ ก็คือลบโหนด 20 ครูต้องการลบโหนดนี้ ครูอยากลบโหนด 20 ทิ้งไป อันดับแรกสุดเลยต้องวาดเส้นก่อน ถูกไหมมันจะเชื่อมแบบไหนล่ะ เราก็ลองวาดนะคะ เส้นนี้ ครูจะวาดสีชมพู สุดท้ายต้องต่อด้วย 33 โหนดนี้จะหายไปเพราะครูต้องการลบโหนด 20 นะคะ ครู... 3 ครูจะเขียนคำสั่งแบบไหนอันดับแรก ดูพร้อมกันจุดเริ่มต้นตรงนี้ จุดตรงนี้มันออกมาจากโหนด 13 ใช่ไหมคะ แล้วโหนด 13 มีอะไรชี้อยู่ มี previous ถูกไหมคะ ภูกไหมคะ prve มันออกมาจากช่องนี้ใช่ไหมคะ ช่องที่ 2 ของโหนด วึ่งช่องนี้มีชื่อเรียกว่า next ก็จะเป็น previous.next เท่ากับมันชี้ไปที่ไหน มันชี้ไปที่ 33 ใช่ไหมคะ มันชี้ไปที่ 33 แล้ว 33 มีอะไรชี้อยู่มันไม่มีเส้นข้างนอกชี้ มันมีแค่เส้นนี้เส้นเดียวถูกไหมคะมีลูกศรนี้ชี้มาอยู่อันแล้วเส้นนี้คำสั่งคืออะไร เราก็ดูต่อ มันออกมาจากโหนดนี้ใช่ไหมคะ โหนด 20 โหนด 20 มีอะไรชี้อยุ่ มี Cruccชี้อยู่ ตามด้วย มันออกมาจากช่องซื่อว่าnext ก็จะได้เป็น previous.next เท่ากับ durre..next อันนี้เสร็จหรือยังคะ เสร็จหมดหรือยัง ข้างหลังเสร็จหมดหรือยังคะ บนกระดาน ลอกตามครูเสร็จแล้ว คราวนี้นย้อนกลับมาดู ลิงก์ลิสต์ที่เราเรียนมาเมื่อสัดาห์ที่แล้ว แล้ววันนี้เรียนเพิ่มเรื่องของการลบ ลองเริ่มต้นนะ เอาแบบง่าย ๆ ก่อนนะคะ เราลองทวนนะคราวที่แล้วนะ ครูมีโจทย์ให้นะคะ ครูมีลิงก์ลิสมาแล้วก็มีตัวชี้ให้เรียบร้อยแล้ว ข้อแรกครูถามว่าลิงก์ลิสต์ ที่ครูกำหนดให้มีกี่โหนด ตอบพร้อมกันได้ไหมคะ ลิงก์ลิสต์ที่ครูกำหนดให้ด้านบนมีกี่โหนดมีกี่สี่เหลี่ยม 4 ใช่ไหม มีอยู้ 4 โหนดแล้วโหนดข้อมูลอะไรเป็นโหนดแรก 5 ใช่ไหมโหนดแรกเก็บข้อมูลอะไรคะ รู้ได้อย่างไร head ตอบที่นะคะ ตอบว่า 5 ใช่ไหม ถัดมา เราจะเข้าถึงข้อมูลที่อยู่ในลิงก์ลิสต์ เราใช้คำสั่งเหล่านี้ นะคะ นี่มีอยู่ 5 ข้อ ยังจำได้ไหมว่าคราวที่แล้วเราเคยทำ head.data ตอบอะไร ถ้าลงท้ายด้วย data เอาสิ่งที่อยู่ในช่องมาตอบ ถ้าครูลงท้ายด้วย next หาตัวชี้มาตอบ ช่วยครูทำหน่อย 7 ข้อตอนนี้ เป็นการทบทวนนะคะลองดูสิ เราเรียนสัปดาห์ที่แล้วมาถึงสัปดาห์นี้เรายังจำได้อยู่ไหม คราวนี้ดูวิธีการสังเกตนะ เวลาเราเขียนคำสั่งนะคะ แล้วเราต้องการเอาคำตอบนำมาใส่ จะเห็นว่าตัวสุดท้ายที่ครูเขียนถูกไหมคะ ก่อนเครื่องหมายเท่ากับนี่ เป็นได้ 2 ค่ามีอะไร มี data กับ next ถูกไหมนะคะ ไม่มีตัวอื่นเลย อันแรกก็ deta อันที่ 3 ก็ deta แล้วก็ next นะคะ มันเป็นได้ 2 ค่าก็คือ next กับ data เขียนได้ 2 แบบนะคะ แล้วจะเอาอะไรมาใส่ก็คือ เอาอะไรมาตอบ ถ้าลงท้ายด้วย data ให้เอาข้อมูลที่อยู่ในโหนดหรือในช่องสี่เหลี่ยมนี่มาตอบ ถ้าลงท้ายด้วย next ให้เอาตัวชี้มาตอบถูกไหมคะ เราชี้อยุ่ที่โหนดไหนก้ดุว่าโหนดอก็เอาตัวชี้นั่นล่ะมาตอบนะคะมาดูพร้อมกัน ข้อแรก เดี๋ยวครูเขียนให้ก่อนนะ ลิงก์ลิสอย่างที่เราตอบอยู่แล้ว มีอยู่ 4 โหนดนะคะ โหนดอะไรเป็นโหนดแรก ก็คือโหนดเท่าไหร่คะ โหนด 5 head.data แสดงว่าต้องเอาข้อมูลมาใส่ใช่ไหมคะ head คือตัวชี้นี่ head ชี้อยู่ที่ไหน .data คือเอาอะไรมาใส่คะ 5 ใช่ไหม ก็คือ .data ถัดมา head.next..next.data head ชี้อยู่ที่นี่ใช่ไหมคะ .next เขยิบมาถูกไหม head.next แสดงว่ามันเดินไป 1 ช่อง next ช่องถัดไปแล้ว .data ที่ครูชี้อยู่นี่ มีข้อมูลอะไร 10 ใช่ไหมคะ คือ 10 ถัดมา p.next p ชี้อยู่ตรงนี้ เห็นไหมคะ ที่ครูชี้อยู่p.next next คือ เดินไปถัดไป ครูชี้อยุ่ที่ 20 แล้วคำตอบ ครูถาม next ครูถามคำตอบก็ .next แล้ว 20 มีอะไรชี้อยู่ q q ชี้อยู่นะคะ ถัดมา ข้อ 6p.next.data ที่ครูชี้อยู่นี่ ข้อมูล คือ 20 โอเค q.nextq.next ตกขอบเลย เพราะฉะนั้นตอบอะไรคะ none q.next ไม่มีอะไรแล้ว เหมือนตกขอบเลยก็ไม่ต้องเอา none มามาใส่นะคะ เช็กดูสิคะ เหมือนกับของเราไหม ได้ไหมคะ มาเราเข้าถึงข้อมูลโดยการใช้คำสั่งแล้วนะคะ ถ้าครูอยากจะเพิ่มโหนดใหม่เข้าไปนี่ อยากจะเพิ่มโหนดใหม่ อยากจะเพิ่ม โหนดใหม่เข้าไปที่ท้ายลิสต์ ก็คือเอาเป็นตัวสุดท้ายนะคะ 20 แล้วต่อด้วย 30 30 ตัวนี้โหนดใหม่ที่สร้างขึ้นมาจะต่อท้าย 20 ก่อนจะเขียนคำสั่งถูกไหม วาดเส้นเสียหน่อย จะได้รู้ว่ามันต่อท้ายอย่างไรนะคะ เดี๋ยวลอกโจทย์ก่อน เดี๋ยวครูรอแปให้เวลาลอกโจทย์ก่อน เสร็จหรือยังคะถ้าใครทำได้ ลองเขียนคำสั่งเส้นนี้สีชมพูนะคะ ให้ครูหน่อย ว่าจะสร้างเส้นนี้ขึ้นมา ต้องใช้คำสั่งอะไร ครูแก้นิดหนึ่งนะ ขออภัย ครูแก้โหนดที่สรา้งใหม่หน่อยนะเพราะ ชื่อมันซ้ำกันครูลืมดู เป็นตัว t เป็นตัว T ตัว T ต้นไม้ เส้นที่เราสร้างขึ้นมาใหม่เราจะเขียนคำสั่งให้กับเส้นนี้ ให้กับเส้นนี้ เราก็ดูว่าจุดที่เราออกมานี่นะคะ โหนด 20 นี่มันมีอะไรชี้อยู่ มันมี p ชี้อยู่ใช่ไหมคะ ก็ p. ด้วย ช่องที่ชื่อว่า next เป็น t.next แล้วมมันชี้มาที่ไหน ชี้มาที่ 30 แล้ว 30 มีอะไรชี้อยู่ ก็คือมี t นะคะ ก็จะได้เป็น p.next = t ได้ไหมคะ ได้ไหมคะ เสร็จหรือยัง คราวนี้ถัดมามี 2 ข้อ ช่วยครูทำหน่อย เพิ่มโหนดใหม่ ระหว่าง 20 กับ 30 เอา 20 แล้วตามด้วย 25 แล้วก็ตามด้วย 30 นะคะ ข้อถัดมาลบโหนด 20 ก็คือลบโหนดที่อยู่ต้นลิสต์จะใช้คำสั่งอะไร เพิ่มโหนดใหม่นะคะ เราก็วาดเส้นเชื่อมเหมือนเดิมจาก 20 มา 25 จาก 25 ไป 30 ใช่ไหม ลบโหนด 20 ก็ตัดตัวนี้ทิ้ง คราวนี้นะคะ เดี๋ยวมาดูกัน ตัวแรกนะคะ เส้นที่ 1 อันนี้คือ เส้นที่ี 2 เส้นที่ 1 ครูจะเขียนคำสั่งว่ายังไงครูเริ่มต้นจากตัวนี้นะคะ head ชี้อยู่ head ชี้อยู่นะคะ ครูเริ่มต้นจากตรงนี้ แล้วมันมีอะไรชี้อยู่ นะคะ ช่องนี้มีชื่อว่า next ก็คือ head.next ชี้มาที่ไหนชี้มาที่ 25 แล้ว 25 มีอะไรชี้อยู่ อันนี้คือเส้นที่ 1 นะคะ ถัดมาเส้นที่ 2 มันออจจากตรงไหน ออกจากตรงนี้ มีอะไรชี้อยู่ p ช่องนี้มีชื่อว่า next p.nextเท่ากับ ชี้ไปข้างบนนี้อะไรชี้อยู่ p ชี้อยู่ ถัดมา ครูจะลบโหนด 20 ลบตัวนี้ททิ้งไปครูอยู่ตัวนี้ใช่เลแสดงว่าเราลบโหนดแรก เราลบโหนดแรกเราต้องทำอะไรคะ ต้องย้าย head ใช่หรือเปล่า แล้วย้าย head ไปไว้ที่ไหน มาไว้ที่ 30 แล้ว 30 มีอะไรชี้อยุ่ p ก็คือ head=pโอเค โอเค ลิงก์ลิสต์ เนื้อหาก็จะประมาณนี้นะคะ ให้เรารู้คอนเซ็ปของลิงก์ลิสต์นะ ว่าเวลาเราจะเข้าถภึงข้อมุลเวลาจะเพิ่ม ลบนะคะ เดี๋ยวครูให้เบรก 5 นาที เดี๋ยวครูจะติวให้ทั้งหมดเลยเราจะนัดสอบกันสัปดาห์หน้านะคะ เราจะนัดสอบกันสัปดาห์หน้าจะมีสอบอะไรบ้าง ตั้งแต่เรื่องแรกเลย อัลกอริทึมคืออะไร big-O Big O ใช่ไหมคะ การวัดประสิทธิภาพ Big O ลิสต์ Dictionary และ ลิงก์ลิสต์ นะคะ 5 เรื่องครูให้เบรคก่อน 5 นาทีนะและหลังจาก เดี๋ยวครูจะทวนให้นะคะ พร้อมนะคะ เดี๋ยวเราจะมาทวนนะคะ เนื้อหาที่เราเรียนผ่านมาว่าเราเรียนเรื่องอะไรไปบ้างนะคะ สรุปสาระสำคัญ เรื่องแรกที่เราเรียน นะคะ เราพูดถึงอัลกอริทึม ยังจำได้ไหมว่าอัลกอริทึมคืออะไรเอ่ยอัลPauseกอริทึม นะคะ ก็คือขั้นตอนที่เราใช้ในการแก้ปัญหา ซึ่งปัญหาเดียวกันนะคะ เราอาจจะมรวิธีการแก้ไขปัฐหา ที่แตกต่างกัน นั่นคือขึ้นอยู่กับอัลกอริทึมหรือวิธีคิดที่เราใช้นะคะ เรามีอัลกอริทึมเพื่ออะไร เรามีโจทย์ถูกไหมคะ เราจะหาคำตอบจากโจทย์ นั้นได้อย่างไร เราต้องมีวิธีทำ ซึ่งไอ้ตัววิธีทำตัวนั้นหรือนะคะ ถ้าเราทำกับข้าว อัลกอริทึมก็คือการทำกับข้าว เห็นไหมว่าถ้าเราต้องการไข่เจียวสัก 1 จาน เรามีอัลกอริทึมในการทำไข่เจียวนั้นนั้นอย่างไร ก็ต้องมีตั้งแต่การเตรียมไข่ ถูกไหมคะ ตั้งกระทะตอกไข่จีไข่อะไรก็ว่ากันไป นะคะ คราวนี้ครูยกตัวอย่างนะ เช่นการทำไข่ต้มเช่น การทำไข่ต้ม ครูก้จะมีขั้นตอน 1, 2, 3, 4, 55 เริ่มตั้งแต่ ต้มน้ำ ต้มน้ำให้เดือด ใส่ไข่ลงไปรอ 10 นาทีดับไฟ แล้วก็ปอกไข่ เอาไข่ขึ้นมาแล้วก็ปอกไข่ เอาไข่ขึ้นมาแล้วก็ปลอกไขา่เพื่อให้ได้ไข่ต้มเราจะข้ามขั้นตอนไม่ได้ใช่ไหมคะ เราต้องทำตามขั้นตอนนี้ เพื่อให้ได้ผลลัพธ์ตามที่เราต้องการนะคะ คราวนี้เรามีอัลกอริทึมนะคะ เช่น อีกอย่างหนึ่ง แม่ให้เงินไป 100 บาท ให้ไปซื้อหมูปิ้งถูกไหมคะ ที่เขาขายเป็นชุดน่ะ สมมติชุดละ 20 บาท เราจะไปซื้ออย่างไร ถูกไหมคะเราก็เดินไปซื้อ สั่งถูกไหม ว่าต้องซื้อหมูปิ้งกี่ชุด นะคะ เสร็จแล้วพอเขาใส่มาให้เราก็ต้องมีการตรวจสอบถูกไหมคะ ว่าเขาให้ถูกหรือเปล่าใช่ไหมคะ แล้วก็ถือกลับมาให้แม่ อัลกอริทึมที่เราเขียนนะคะ สิ่งเหล่านี้จะถูกแปลงไปเป็นโปรแกรม เช่นอีกอย่างหนึ่ง ให้คำนวณการหาพื้นที่สามเหลี่ยม สูตรก็คือ 102 คูณฐานแล้วก็คูณสูง เราต้องรู้ว่า ฐานคืออะไร สูงคืออะไร และเอามาคำนวณโดยการใส่สูตรเพื่อหาพื้นที่ พอเราได้วิธีคิดแบบนี้เราก็เอาไปเขียนโปรแกรมถูกไหมคะ จากขั้นตอนที่เราคิดเมื่อกี้ เราก็เอาไปเขียนโปรแกรมนะคะ คราวนี้พอเราเอาอัลกอริทึมของเรานี่ไปสู่การเขียนโปรแกรมนะคะ มันจะต้องมีการวัดปรการวัดประสิทธิภาพของอัลกอริทึมในคลาสนี้เราวัดโดยการสนใจในเรื่องของเวลาที่ใช้ในการประมวลผล เราสนใจว่าเวลาที่ใช้ในการประมวลผลของอัลกอริทึมของเรา มันมีค่าเท่าไหร่นะคะ ซึ่งเราจะใช้ ตัววัดที่ชื่อว่า Big-O นะคะ เราจะใช้ตัววัดที่ชื่อว่า Big-Oวัดประสิทธิภาพ ใช้สัญลักษณ์ คือ ตัว O ตัวใหญ่นะคะในการวัดประสิทธิภาพของอัลกอริทึม เราก็ต้องมาดูก่อนว่าแล้วอัลกอริทึมที่เราเขียน นะคะ ที่เขียนเป็นโปรแกรมนี่เป็นแบบไหน เรมีคำสั่งที่เรียงลำดับเขียนเรียงลำดับลงมา เป็นคำสั่งที่มีเงื่อนไขหรือเป็นคำสั่ง ที่ใช้ในการวนลูบหรือการทำซ้ำหลาย ๆ รอบ แต่ว่ารูปแบบนะคะ การดำเนินการแต่ละรูปแบบ มีวิธีคิด การหาค่า big oที่ต่างกัน เช่น ตัวแรกการหาค่า Big-O แบบค่าคงที่หมายถึงอะไร แบบค่าคงที่เราไม่ได้ทำซ้ำนะ ค่าคงที่ เราจะคิด เราจะวัดว่าคำสั่งแต่ละคำสั่งที่ไม่ใช่การวนลูปและไม่ใช่การตรวจสอบเงื่อนไขแต่บ่ะคำสั่งทำงานกี่ครั้ง กี่ครั้ง เมื่อเรากดปุ่ม Run นะ เมื่อเราเขียนโปรแกรมเสร็จ เรากดปุ่มรันปุ๊บคำสั่งที่เราเขียนขึ้นแต่ละบรรทัดทำงานกี่ครั้งคำสั่งแต่ละบรรทัด ทำงานกี่ครั้ง จากโปรแกรมที่ครูให้ไป ครูมีโปรแกรมอยู่ 2 บรรทัดนะคะ บรรทัดแรกเป็นการกำหนดค่าเรนิ่มต้น ค่าเริ่มต้น บรรทัดที่ 2 เป็นการคำนวณใช่ไหมคะ บรรทัดแรกกำหนดค่าเริ่มต้น บรรทัดที่ 2 เป็นการคำนวณ เขียนโปรแกรมเสร็จ บรรทัดที่ 1 จะเริ่มทำงานที่บรรทัดที่ 1 ก่อนทำเสร็จจะเลื่อนมาเป็นบรรทัดที่ 2 มันมียู่ 2 คำสั่งใช่ไหม เสร็จแล้วมันก็จบการทำงาน เพราะฉะนั้น คำสั่งแต่ละตัว จะทำงานเพียง 1 ครั้งเท่านั้นนะคะ จะทำงานเพียง 1ค ครั้งเท่านั้น จากนั้นมาหาค่าฟังก์ชัน เพื่อจะเอามาคำนวณค่า Big-O เรารู้ว่าแต่ละบรรทัดทำงาน 1 ครั้ง เราก็เอาตัวเลข 1 ในแต่ละบรรทัดมาบวกกัน ไม่ว่าจะเป็น 2 นะคะ ไม่มีการทำงานวนซ้ำถูกไหม เพราะฉะนั้นเราจะบอกได้ว่า ถ้าคำสั่งที่เราเขียนขึ้นเป็นคำสั่งที่ทำงานเรียงลกดับลงมาเรื่อย ๆ จะทำงานเพียงบรรทัดละ 1 ครั้ง Big-O จะตอบว่า O1 O1 ถึงแม้ว่าตรงนี้จะบวกกันกี่ครั้งก็ตาม แต่มันทำงานแต่ละคำสั่งเพียง 1 ครั้งนะคะ ก็จะต้องเท่ากับ O1 ถัดมากรณีที่เป็นการตรวจสอบเงื่อนไขกรณีที่เป็นการตรวจสอบเงื่อนไข การตรวจสอบเงื่อนไขนะคะ เราใช้คำสั่ง if เราใช้คำสั่ง if เป็นการตรวจสอบเงื่อนไข ตรวจสอบเงื่อนไขหลัง if ถ้า เป็นจริงถึงเราทำบรรทัดถัดไป ถ้าไม่ใช่ มาทำหลัง elsif คือ ทางเลือกถูกไหมคะ ทำหรือไม่ทำ สินใจทำหรือไม่ทำจริงหรือเท็จ ถ้าไม่จริงทำหลัง else นะคะ สมมติครูกำหนดให้ n=2 n = 2 ครูมาตตรวจสอบเช่น เช่นนะคะ nคราวนี้มาดูนะคะ คราวนี้มาดูนะคะ เสียงดังไปไหมคราวนี้ดูนะคะ จากตารางตัวนี้นะคะ ครูกำหนดให้ตรง loop for เป็น lendgn คือ 3 นะ เพราะฉะนั้น ค่าที่เป็นไปได้ของต่า i นี่มันควรจะเป็น ค่าอะไรบ้าง มันก็คือเป็นค่า 0 ค่า 1 แล้วก็ค่า 2นะคะ ค่า i ที่เป็นไปได้นี่จะมีอยู่ 3 ค่าด้วยกัน เอามาจากไหนเอามาจากที่ครูกำหนดนั้นเอง ด้านบนน่ะ len เพราะฉะนั้น i เป็นไปได้ ก็คือมี 0, 1, 2 ใช่ไหมคะ มี 0 1 แล้วก็ 2 คราวนี้ถัดมา ค่า i เป็น 0 คำสั่ง forทำงานอยู่แล้วใช่ไหมคะ แล้วคำสั่ง total ก็ทำ i เป็น 1 คำสั่ง for ก็ทำเพราะมันเป็นช่วงตัวเลขที่กำหนดเอาไว้ คำสั่ง total ก็ทำนะคะ i เป็น 2 for ก็ทำ แล้วก็ totot กจำนวนครั้งทั้งหมดนะคะ คือทำ 3 ครั้งซึ่งเลข 3 ตัวนี้มันไปตรงกับค่าที่ n เป็นคนกำหนด ไปตรงกับค่า n ที่เรากำหนด ดังนั้น ครูกำหนด n เป็นตัวเลข... ครั้งของการทำงาน ก็จะเป็น n ครั้ง ครูกำหนด n 3 ตัวที่ทำงาน 3 ครั้งใช่หรือเปล่า ครูกำหนด n เป็น 5 จำนวณรอบของการทำงานก็คือ 5 นะคะ จากนั้นเมื่อเรารู้แล้วว่าตรงคำสั่ง for นี่ เมื่อกำหนดให้เป็น N เป็นค่าอะไรก็ตามจะทำงานเท่านั้นครั้ง เราจึงบอกได้ว่า ไม่ว่าn จะแทนด้วยเลขอะไร ก็จะทำงานเท่ากับ n ครั้ง เราก็เลยจะเขียนด้านบน นะคะ เขียนด้านบนตรงนี้ว่าบรรทัดนี้ทำงาน n ครั้ง แล้วบรรทัดของ total ก็ทำงาน n ครั้ง จากนั้นเรามาหาฟังก์ชัน ถูกไหมคะ แต่ละฟังก์ชันมันทำงานกี่ครั้ง ก็คือเอาแต่ละบรรทัดมาบวกกัน บรรทัดแรกทำงาน 1 ครั้งเพราะมันไม่ได้อยู่ภายใต้ loop ไม่ได้อยู่ภายใต้การทำงานแบบวนซ้ำเลย เป็น 1 + n n ก็คือบรรทัดที่ 2 ถูกไหมคะ ทำงาน n ครั้ง ตามด้วย n ตัวนี้คือบรรทัดที่ 3 n + n ก็ได้เป็น 2n + 1 นะคะ การหาค่า Big-O เลือก n ที่มากที่สุดแล้วตัดสำพระสิทธิ ออกOn คราวนี้ลองดูนะคะอันนี้คือบรรทัดที่ 1 นะ บรรทัดที่ 2 บรรทัดที่ 3 สมมติมาให้อยู่ 3 บรรทัด บรรทัดแรกเป็นการกำหนดค่าเริ่มต้นให้กับ x นะคะบรรทัดที่ 2 เป็นการทำงานแบบวนซ้ำนะคะ โดยกำหนดให้ for i in range แล้วก็มีค่า n ถ้า i อยู่ภายใต่เงื่อนไขตัวนี้ก็จะมาทำงานคำสั่ง printนะคะ ครูกำหนดให้ n=5 เพราะฉะนั้น range จะมีค่าเท่ากับเท่าไหร่ lมีค่าเป็นอะไรคะ เริ่มต้นที่เลขอะไร เลขอะไรคะ เราควรเริ่มต้นที่เลขอะไรถ้าครูเขียน range 5 แบบนี้ ควรเริ่มต้นที่ 0 0, 1 0, 1, 2, 3, 4 พอหรือยังคะ พอแล้ว เพราะมีกี่ตัวแล้วนี่ 1 2 3 4 5 ครบแล้วโอเค เพราะฉะนั้น i ที่เป็นไปได้ก็จะมีเลขจะมีค่าอะไรคะ ตามนี้เลย 0, 1 ค่า i ที่เป็นไปได้ใช่ไหมคะ ก็จะมี 0, 1, 2, 3, 5 นี่ไม่เกี่ยวโอเค เห็นไหมคะ ตามนี้เลยที่เราเขียนเอาไว้ข้างต้น เสร็จแล้วตัวเลขเหล่านี้ก็ต้องทำงานดดยการวน loop for ก็ติ๊กถูกให้หมดเลย print ใช่ไหมคะ ก็ต้องทำงานด้วย โอเคเพราะฉะนั้น ตรง... for ทำงาน 5 ครั้ง print ทำงานกี่ครั้ง1, 2, 3, 4, 5 ทำงาน 5 ครั้ง สิ่งที่เราเห้นอะไรไหม 5 ตัวนี้ตรงกันไหม ตรงกัน เพราะฉะนั้น เมื่อเราแทนด้วย n ใด ๆ n ครั้งนะ ตัวเลขตัวนี้ มันเท่ากันใช่ไหมคะ เราก็เลยเอาค่า n นี่ มาใส่ เห็นไหมคะว่าเมื่อเป็น n แทนด้วยตัวเลขอะไรก็ตามนี่ก็จะได้ทั้งหมด n ครั้ง ถัดมาเราจะมาหาค่าฟังก์ชัน ถูกไหมคะ เราต้องรู้ว่าแล้วแต่ละบรรทัดทำงานกี่ครั้ง บรรทัดที่ 1 ทำงานกี่ครั้งคะ มันไม่ได้อยู่ใน Loop เลย เพราะฉะนั้นมันทำงาน 1 ครั้งอยู่ใน Loop ใด ๆ เลยก็ตาม ไม่ได้อยู่ภายใต้ loop ใดเลยก็ตามจะทำงาน 1 ครั้ง บรรทัดที่ 2 คำสั่งนี้ จะทำงาน n ครั้ง ใช่ไหมคะ ตามที่เรากำหนดข้างล่าง print ก็เหมือนกัน จะทำงานเห็นไหมคะ n ครั้ง เพราะฉะนั้น ค่าฟังก์ชันที่ได้ ก็คืเอา 1 บวกอะไรคะ n + อะไรอีกคะ +ืกี่ n 2n + 1 เพราะฉะนั้น Big-Oo1Big-O ก็คือ O1 เดี๋ยวครูเขียนให้ใหม่ Big-O จะเท่ากับ o 1พอได้ไหมคะ โอเคนะ ครูผ่านนะคะ ผ่านนะคะ ถัดมา ถัดมา ตัวเมื่อกี้คือการวัดประสิทธิภาพใช่ไหมคะ ถัดมาก็คือ lisกับ Dictionary List กับ Dictionary ฃต่างกันอย่างไร ดูวิธีการเขียนนะ ถ้า list จะใช้สัญลักษณ์แบบข้างบนนี้ เห็นไหมคะ อันนี้คือลิสต์ ถ้าเป็น Dictionary เป็นปีกกาเปิดไม่ใช่ ถ้า Dictionary เป็นก้ามปูเขาเรียกว่าอะไรล่ะ "ปีกกา" ถ้าเป็น Dictionary เป็นกาเปิด ถ้าเป้นลิสต์เป็นก้ามปุ ฃคือก้ามปูนะคะ ดูสัญลักษณ์นะคะ จะต่างกันนะคะ แล้วรูปแบบของการเขียนก็ต่างกัน Dictionary จะมีเซมิโคลอน นะคะ แต่ list ไม่มีนะคะ ในลิสต์เราเก็บฉะเพราะค่า จะมีเฉพาะ Value หรือค่าเท่านั้น ใน Dictionary จะมีคีย์ด้วยและ value นะคะ ใน Dictionary จะมีคีย์แลพ valueเวลาเราเอามาวาด นะคะ จากลิสต์ข้างบนนี่เราลองเอามาวาดในช่องเก็บข้อมูลลิสต์ จะใส่เป็น value ลงไป แล้วหมายเลขช่อง คือ ค่า index หมายเลขช่อง คือ ค่า index ที่เริ่มต้นจาก 0, 1, 2 ไล่ไปเรื่อย ๆ แต่ในขณะที่ Dictionary จะมีคีย์กับ value key เอามาจากไหน ก็เอามาจากใน Dictionary นั่นล่ะ แล้วแต่ว่ามันจะเขียบนแบบไหน เราก็เอาตัวที่อยุ่ข้างหน้าเซมิโคลอน มาใส่เป็น Key หลัง ; เป็น value มันก็จะตรงกันเห็นไหมคะ 1. คือ One 2. คือ Tอันนี้คือวิธีการสังเกต เพื่อหย่อย และวิธีการสร้างตารางเพื่อหย่อนใส่ เราจะได้เข้าใจว่า เวลาเราจะเข้าถึงข้อมูลแต่ละตัวเราต้องอ้างอิงถึงหมายเลขตัวชี้คืออะไร ตัว listนะคะ เวลาเราจะเข้าถึงข้อมูลที่เป็นลิสต์ เราอ้างอิงโดยการใช้ index เราอ้างอิงถึงการใช้ Index อย่างครูจะเข้าถึงข้อมูล Apple ชื่อลิสต์ แล้วครูก็รู้ว่าแอปเปิลมันอยู่หมายเลข index ที่เท่าไร ครูก็ใส่ 0 ลงไปมันจะมีค่าเท่ากับ apple นะคะ ครูอยากได้ banana banana มี index เป็น 1 ครูก็ใส่ค่าชื่อลิสต์แล้วก็ใส่หมายเลข index ก็จะได้ค่า banana ออกมา คราวนี้ในขณะที่ Dictionary เวลาเราจะเข้าถึงข้อมูล เราใช้ Key เป็นตัวอ้างอิง เช่น เราอยากจะเข้าถึง Dictionary ที่ชื่อว่า y เข้าถึงคีย์ 1 คำตอบที่ได้ คือ 1 y key 3 คำตอบก็คื่อ tนะคะ โอเค ถ้าเราต้องการ หาขนาดของ list หรือของ Dictionary เราใช้คำสั่ง raneมันมีข้อมูลกี่ตัว ดูที่เครื่องหมายคอมมาถูกไหมคะ 1 ตัวจะนับก็คือเครื่องหมาย , 1 ตัว 2 ตัว 3 ตัวไล่ไป จะใช้คำสั่ง len l-e-n แล้วก็ใส่ชื่อลิสต์ลงไปนะคะ เช่น... เดี๋ยวนะตรงนี้ต้องได้ 5 นะคะ ไม่ใช่ 6 พอดีครูมองผิด ต้องเป็น 5 นะ เช่นครูใช้คำสั่ง len x นะคะ ลิสต์ที่ชื่อว่า x นี่มีข้อมูลกี่ตัวคะ มีทั้งหมดกี่ตัว 5 ตัว ถูกไหม ใช้ len x คือ x มีข้อมูลกี่ตัว ก็คือมี 5 ตัวจะเข้าถึงข้อมุลแต่ละตัวครูก็ใช้ ๅณืกำป ครูก็ใช้ index ถ้าจะเข้าถึงข้อมูล 2 อ้างถึง index หมายเลข 0ถ้าครูอยากได้ข้อมูล ออกมาทั้งหมดทีเดียวที่อยู่ใน list ครูก็ใช้คำสั่งของการวน loop ก็คือfor นะคะ for i in x ค่า i ตัวนี้ก็จะัเอาค่า 2 ออกมาแล้วก็วนลูบออกมาเป็น 4 ตัวถัดไปเป็น 6 ไปตัวถัดไปคือ 6 วนลูปไปตัวถัดไป คือ 8 และตัวสุดท้าย คือ 10 นะคะ การเข้าถึงข้อมูลหลายค่า คราวนี้มาดูพร้อมกัน การเข้าถึงข้อมูลหลายค่า เช่น ครูมีลิสต์มาให้นี่ ชื่อว่า My list นะคะมี list ข้อมุลมาให้ มีอยู่ 9 ตัวนะ ครูใช้คำสั่ง len จะได้คำตอบคือ 9 รู้ได้อย่างไร นับว่ามีกี่ตัวนะคะ นับทีละตัวว่ามีเท่าไหร่เช่น เช่น ครูใช้คำสั่ง len นะ ตัวที่ 1 ตัวที่ 2 ตัวที่ 3 ตัวที่ 4 5, 67, 8, 9 นะคะ มี 9 ตัว ครูต้องการเข้าถึงข้อมูลทีเดียวหลายตัว ไม่เอามาทีละค่านะคะ ครูอยากได้ทีเดียวหลายตัวจำได้ไหม เราสามารถเข้าถึงข้อมูลได้ทีละหลายคัวโดยการใช้ ",งบอกว่าเอาถึงไหน ดึงข้อมูลเอามาถึงไหน ตัวแรก 2 จนถึง 5 ทำอย่างไรคะ 2 จนถึง 5 เราก็เริ่มปิดไอ้ตัวที่ไม่ใช่ 2 เราก็เริ่มดูที่ 2 จนถึง 5 เราเอาตัวสุดท้ายด้วยไหม ไม่เอา ขยับปิดมันไว้เลยตัว 5 ก็คือตัวที่เราปิด เพราะฉะนั้น คำตอบคืออะไรคะ o-g-rหาช่วยครูหน่อยอีก 4 ตัว ลอกตัวนี้ลงสมุด ตัวนี้ แล้วก็หาคำตอบ 4 ตัวนี้นี้ให้ครูหน่อย ทำเขียนลงในสมุดสิคะ ตอบอะไรนะ ทีนี้มาดูด้วยกัน โอเค ลองดูพร้อมกับครูก่อน 1 ข้อ จะได้รู้จะทำแบบไหนนะคะ ข้างบนเป็นหมายเลข Index ลิสต์เราคือชื่อว่า my_list ครูต้องการ index 1 จนถึง 01 คือตัวนี้ ครูเริ่มไว้ที่ 1 จนถึง 4คือตัวนี้ใช่ไหมคะ ครูปิดที่ 4 ใช่ไหมคะครูต้องปิดที่ 4 ด้วย ก็ได้คำตอบข้อแรกของครูคืออะไร ครูปิดที่ 4 ด้วย 1 จนถึง 4 จะได้ตอบเท่ากับ... gr-o-g ใช่ไหมคะถัดมา 5 ปิดไว้ ถึง 7 เพราะฉะนั้น จะได้อะไรคะ ถึง 7 นักเรียนได้อะไรคะ m ใช่ไหม ได้ a กับ n ถัดมานะคะ 3-5 จะได้เท่ากับg กับ r โอเค ถัดมา 0-2 จะได้เท่ากับ 2 ตรงนี้จะได้เท่ากับ p กับ r จะได้เท่ากับ p กับ rกับ r ได้ไหมคะ ครูเพิ่มอีก 2 ข้อนะคะ ตัวนี้ตอบอะไร ดูต่อ 5 ถึง 8 ตรงนี้ตอบอะไรคะ5-8 จะเป็น a, m, i ทุกคนต้องอย่าลืมใส่ ใช่ ด้วยนะคะ ต้องอย่าลืมปีกกาด้วย ตัวสุดท้าย4-5 ตอบเท่ากับ r โอเค ทุกคนจะได้นะ ได้ ถัดมาโอเค สมมติครูอยากจะเพิ่มข้อมูลนะคะ ในการเพิ่มข้อมูลมันจะไปต่อด้านท้ายนะ เวลาเราจะเพิ่มข้อมูล เราจะไปต่อท้ายใช่ไหมคะ ไปต่อท้ายของเดิมที่มีอยู่ เราจะใช้คำสั่งที่ชื่อวjkเราจะใช้คำสั่งที่ชื่อว่า append เป็นการเพิ่มข้อมูลเข้าไปต่อท้ายลิสต์ขอวิธีเขียนทำอย่างไร มีชื่อ list.appen แล้วก็ใส่ข้อมูลที่เราจะเพิ่มเข้าไป มันจะมีช่องที่อยู่ด้านท้ายนี่โผล่ขึ้นมา มมันจะมีช่องที่อยู่ด้านท้ายเพิ่ม มันจะมีช่องที่อยู่ด้านท้ายใช่ไหมคะ เราเพิ่มเข้าไปไง มันเลย index เพิ่มขึ้นมาอีก 1 ตัว เป็น index หมายเลข 9 แล้วใส่ s เข้าไป เพิ่มได้แล้วเอาออกล่ะ ลบ ๆ ใช้คำว่า "del" ย่อมาจาก delete Del D-e-l ลบอะไรลบ ช่องไหน ช่องหมายเลข 9 มันก็จะเอาตัว s ออก ตัว s ตรงนี้ก็จะหายไปนะคะถัดมา Dictionary อย่างที่ครูบอก Dictionary กับ list ไม่เหมือนกันนะคะ dictionaryต้องมี key กับ value แต่ลิสต์มีเฉพาะ value อย่างเดีัยว มีแต่ value อย่างเดียว เห็นไหมคะ ว่า Dictionary จะมี ; เห็นไหมนะคะโอเค ถ้าเราจะเข้าถึงข้อมูล ที่อยู่ใน Dictionary เราก็อ้างอิงไปถึง key ใช่ไหมคะ แต่ถ้าเราต้องการดึงข้อมูลทั้งหมดนะคะ ทั้ง key กับ value เราก็ใช้การวนลูปแล้วก็ใและใช้คำสั่งที่ชื่อว่า item ใส่ชื่อ dictionary.item มันก็จะเข้าค่า key คือตัว k แล้วก็ value คือตัว k คือเสร็จแล้วก็จะ print ออกมานะคะ key v ก็คือ valueถ้าครูมี Dictionary นะคะ ที่ชื่อว่า Score โดยการเก็บคะแนนของนักศึกษาแต่ละคน เช่น เจมส์มี 25 โทมัส 50 Danny 79 เห็นไหมคะ เสร็จแล้วครูก็จะเอามาใส่ในช่องข้างบนคือ key ใช่ไหมคะ ข้างบนคือ keyข้างล่าง คือ value คะแนนของ Thomas คะแนนของ Thomus ชื่อ Dictionary แล้วก็ใส่ key คือ tomus ตรงนี้จะตอบเท่าไหร่คะ thomas 50 คะแนน ถ้าอยากจะเปลี่ยนค่าคะแนนของ Thomas score แล้วก็ใส่ keแล้วก็ใส่คะแนนใหม่เข้าไปเลย มันก็จะเอาฝั่งขวามาหย่อนใส่ฝั่งที่ของ Thomusค่าคะแนนก็จะเปลี่ยนเป็น 55 โอเคนะจะเป็นลิงก์ลิสต์ก่อนจบ ทบทวด ลิงก์ลิสต์ 1 โหนดมี 2 ช่อง คือ data ก็บ next ใช่ไหมคะ จำได้ไหมตอบอันนี้ให้ครูอีกรอบหนึ่ง ก่อนเลิกเรียนมาเยอะแล้วก่อนจบ มาพูดถึงลิงก์ลิสตืปิดท้ายด้ยังตอบถูกอยู่ไหม ลองดูสิ มาดูสิคะว่าตอบอะัไรhead.data ตอบอะไร 3head.next..datasก็คือ 7 t.next t.next t.next.next next ก็เป็น none ถ้า data ค่อยเอา data มาตอบp.data 7 p.next.data10 ก็คือ 10 เห็นไหมคะว่า ถ้าลงท้ายด้วย dataก็เอาข้อมูลข้างในมาใส่ ถ้าลงท้ายด้วย next ต้องเอาตัวชี้แต่บังเอิน next มันตกขอบไปแล้วมันก็เลยกลายเป็น none โอเคคราวนี้กลับไปทบทัวสิ่งเหล่านี้ครู post ไว้ทีอยู่แล้วนะคะ ให้เอากลับไปทบทวน สัปดาห์หน้าวันอังคาร 13.00 น. ตรงนะคะ เตรียใอุปกรณืไม้บรรทัดปากกา มาให้เรียบร้อยนะคะ สอบนะ ครูจะสอบนะคะ เป็นแบบ open bookเปิดทุกอย่าง ยกเว้นถามเพื่อนนะคะ ไม่ได้ ไม่ให้ถามเพื่อน แต่ให้เปิดชีสครูได้ เปิดแบบฝึกหัดได้นะคะ แต่ไม่ให้ถามกันเท่านั้นเองนะ ครูออกแบบนี้ ีที่เราติวกันวันนี้นะคะ ให้บอกคอนเซปแต่ละเรื่องนะคะ ว่าเป็นแบบไหนโอเค แบบฝึกหัดวันนี้ อ๋อที่มันเป้น 2 ชุดใช่ไหมคะ ถ่ายรูปส่งมาให้ Classroom นะ แบบฝึกหัดที่เราทำกันเมื่อต้นชั่วโมงนะคะ ครูจะเปิด Classroom ให้แนะคะ แล้วก็ถ่ายรูปส่งด้วยนะ คะ ทุกกคนถ่ายรูปแบบฝึกหัดนะคะ แล้วก็เอาลง Classroom เพื่อนที่ไม่มานะ ฝากติวด้วยนะคะ ฝากไปสอนเพื่อนด้วย ชื่ออะไรนะคะ อ๋อมาทุกคนนะคะ ยกเว้นวริศา ใครยังไม่มีตัวไหนนะ ถามเพื่อนนะ ชีตหรือว่าแบบฝึกหัดที่ครูให้ไป โอเค วันนี้ก็น่าจะเท่านี้ค่ะ ค่ะ สวัสดีคะ