Accuracy : 90.45%
Insertion : 1225
Deletion : 806
Substitution : 438
Correction : 24605
Reference tokens : 25849
Hypothesis tokens : 26268
(อาจารย์สุธาสินี)2มี3มี4แล้วก็มี5มีทั้งหมด5ตัวนะคะคราวนี้เรารู้ได้อย่างไรว่ามันคือลิสต์เห็นก้ามปูเป(อาจารย์สุธาสินี)ทำไมเป็นอย่างนั้นล่ะคราวนี้ได้ยินครูนะคราวที่แล้วนะคะเราพูดถึงในเรื่องของเหมือนล่ามไม่ได้ยินเลยอ๋อค่ะคราวที่แล้วเราพูดถึงเรื่องlistนะคะlistตัวนี้นะแล้วเราก็ทำข้อสอบไปแล้วนะคะเรื่องListได้ไหมคะได้ยินไหมคะยังไม่ได้ยินคราวที่แล้วนะคะเราพูดถึงเรื่องListนะทุกคนจำได้นะคะอันนี้คือListนะที่ครูยกตัวอย่างมาให้Listตัวนี้มีขนาดเท่ากับเท่าไรมีขนาดเท่าไรขนาดคือมีจำนวนเท่าไรมี5คนอื่นมีเท่าไรคะ5โอเค5นะคะListที่เราเห็นในหน้าจอตรงนี้จะมีอยู่5ตัวถูกไหมคะมีข้อมูลอยู่5ตัวมี1มี2มี3มี4แล้วก็มี5มีทั้งหมด5ตัวนะคะคราวนี้แล้วรู้ได้อย่างไรว่ามันคือListเห็นก้ามปูเป-ิด-ก้ามปูปิดไหมคะตรง(-ัว)นี้เป็นสัญลักษณ์ที่บอกว่าการเก็บข้อมูลลักษณะแบบนี้มีชื่อเรียกว่า"ลิสList(ต์)"นะคะจะเก็บค่าของข้อมูลในListindexก็คือหมายเลขถูกไหมคะก็คือหมายเลขของข้อมูลนี่เราเริ่มต้นที่หมายเลขอะไรเอ่ยพอเราวาดเป็นช่องใช่ไหมคะในลิสตList(-์)นี่ถ้าเราลองวาดการจัดเก็บนะก็จะเป็น1แล้วก็จะเก็บข้อมูลลงไปในช่องแบบนี้นะคะหมายเลขช่องหรือว่าIndexตัวแรกเราจะเริ่มต้นที่เท่าไรคะตรงไนี้indexเราจะเริ่มที่เราไรเอ่ย0นะใช่ไหมคะ123แล้วก็4ก็คือหมายเลขช่องนะถ้าเราวาดรูปให้เป็นรูปสี่เหลี่ยมในการจัดเก็บข้อมูลแล้วเวลาครูเข้าถึงข้อมูลที่อยู่ในลL(-ิ)สตist(-์)ตอนนี้ครูตั้งชื่อลิสตอList(-์)ตัวนี้มีชื่อว่าXX[xxindex3]ตอบเท่ากับเท่าไรเอ่ยindexเป็น3ตัวนี้ตอบ4ใช่ตรงนี้ต้องตอบว่า4นะคะทุกคนจำได้นะแล้วถ้าx(X)เราต้องการหลายๆค่า2จนถึง4จะตอบเท่ากับเท่าไรคะ3กับ...3กับอะไรเอ่ย4ใช่ไหมคือ3กับ4นะมันเริ่มต้นที่2ใช่ไหมคะก็คือเริ่มต้นที่ตัวนี้ถึง4แล้วก็ลดลงมา1ช่องก็จะได้ข้อมูลตัวนี้ก็คือ3กับ4คราวนี้แล้วเราเอาลิสLi(ต์)stมาทำอะไรนะคะเราเก็บข้อมูลที่อยู่ในรูปแบบลิสตList(-์)แล้วเราเอามาใช้ทำอะไรนะคะวันนี้เราจะพูดถึงโครงสร้างอีกแบบหนึ่งที่มีชื่อว่า"s(ส)แตtack(ก")นะสแตกนะคะสแตกตัวนี้จะใช้วิธีการเก็บข้อมูลแบบลิสต์นะคะแล้วลักษณะแบบไหนที่เราจะเรียกว่า"สแstac(ตก)k"นะคะดูด้วยกันเขาบอกว่าS(ส)แตtac(ก)kก็คือการที่เราใส่ข้อมูลเข้าไปแล้วก็ดึงออกมานะคะแล้วข้อมูลที่ถูกใส่เข้าไปในสSt(แ)ตac(ก)kก่อนจะถูกเอาออกมาใช้ทีหลังอันนี้คือวิธีการเก็บข้อมูลแบบs(ส)แตtac(ก)kหรือเราจะเรียกสั้นๆว่า"เข้าทีหลังออกก่อน""เข้าก่อนออกทีหลัง"ความหมายเหมือนกันยกตัวอย่างเช่นทุกคนเคยไปที่ร้านก๋วยเตี๋ยวไหมคะทุกคนเคยไปร้านก๋วยเตี๋ยวนะแล้วเห็นถ้วยก๋วยเตี๋ยวก่อนที่เขาจะเอามาใส่เส้นใส่เครื่องปรุงใส่หมูให้เราชามก๋วยเตี๋ยวมันเรียงขึ้นไปแบบนี้ใช่ไหมคะเวลาแม่ค้าเขาจะเอาชามก๋วยเตี๋ยวมาใส่ให้เราเขาเอาชามที่อยู่ข้างบนอา(ห)รือชาก(ม)ที่อยู-่ข้างล-่างเอาชามข้างบนหรือข้างล่างคะข้างบนใช่ไหมเขาเอาข้างบนมาทำให้เราแล้วเวลาเขาล้างจานเสร็จแล้วนี่เวลาเอ(ข)าจ(ว)างซ้อนน-ี่เขามาซ้อนข้างล่างหรือซ้อนข้างบนซ้อนข้างบนใช่ไหมคะเพราะฉะนั้นจานที่อยู่บนสุดจะถูกเอาออกมาใช้ก่อนและจานที่อยู่บนสุดนะคะจะถูกเอาเข้ามาเก็บทีหลังอันนี้คือรูปแบบของสแStac(ตก)kเช่นนะคะเช่นๆสมมติครูมีกระดาษอยู่1แผ่นนะครูมีกระดาษอยู่1แผ่นนะทุกคนดูนะคะกระดาษแผ่นที่1ครูจะใส่กระดาษแผ่นที่2เห็นไหมคะครูซ้อนกระดาษแผ่นที่2อยู่ข้างบนนะครูใส่ครูใส่กระดาษแผ่นที่3เข้าไปนะคะแล้วครูก็ใส่กระดาษแผ่นที่4เข้าไปในมือครูเวลาครูจะเอาออกมาใช้ครูจะเอาตัวล่างสุดหรือเอาตัวบนสุดออกไปใช้ตัวบนสุดถูกไหมคะครูไม่พยายามจะดึงตัวล่างสุดออกมานะแต่ครูจะหยิบตัวบนสุดออกไปใช้ซึ่งตัวบนสุดนี่คือกระดาษแผ่นที่เราใส่ไปล่าสุดนะคะเราสามารถสรุปได้แบบนี้นะข้อมูลที่เข้ามาในสแาStack(ตก)ตัวแรกจะอยู่ด้านล่างสุดข้อมูลที่หย่อนลงไปในS(ส)แตtac(ก)kตัวแรกจะอยู่ด้านล่างสุดเลยนะคะตัวถัดไปก็จะซ้อนขึ้นมาเรื่อยๆข้อมูลที่เข้าไปในสแStac(ตก)kเป็นตัวสุดท้ายนะคะจะอยู่บนสุดนะคะจะอยู่บนสุดแล้วเวลาเราเอาข้อมูลในสStac(แตก)kออกมาใช้งานข้อมูลที่เข้าไปเป็นตัวล่าสุดหรือตัวลำดับสุดท้ายจะถูกดึงออกมาใช้งานก่อนตัวไหนที่เข้าไปตัวแรกจะถูกเอามาใช้งานเป็นตัวสุดท้ายนะคะเพราะมันอยู่ล่างสุดเวลาดึงออกมาใช้มันก็ใช้ยากนะเราต้องใช้ตัวบนค่อยๆดึงตัวบนออกไปก่อนคราวนี้เวลาเราเอาข้อมูลใส่ในสแStac(ตก)kเราพูดถึงS(ส)แtac(ตก)kก็เหมือนภาชนะนะตอนนี้ทุกคนมองS(ส)แตtac(ก)kเป็นช่องแบบนี้นะคะเป็นช่องสี่เหลี่ยมเป็นช่องในแนวตั้งถ้าเราพูดถึงสStac(แตก)kนะดูรูปนี้ก่อนอย่างนี้ก็คือมันจะอยู่ในแนวนอนหรือแนวตั้งก็ได้ได้มันจะอยู่ในแนวนอนหรือแนวต-ั้งก็ได้ตอนนี้ครูให้มองเป็นภาพในแนวตั้งถ้าพูดถึงสStac(แตก)kก-้(-็)คือเป็นชั้นเป็นชั้นเป็นชั้ๆ(น)เลื่อนขึ้นไปเรื่อยๆนะคะในสแตStac(ก)kเราทำอะไรได้บ้างเราใส่ข้อมูลลงไปเราดึงข้อมูลออกมาคราวนี้สแstac(ตก)kถ้ามันไม่มีข้อมูลอะไรเลยเราเรียกว่า"S(ส)แtac(ตก)kว่าง"คือมันมีค่าว่างๆไม่มีตัวเลขไม่มีตัวอักษรอะไรเลยนะคะอันน-ั้นจะเร-ียกว่-้(า)คือสแStac(ตก)kว่างถ้าเราจะใส่ข้อมูลลงไปในสแStac(ตก)kเราจะมีคำสั่งที่ชื่อว่า"Push"คือคำสั่งตัวนี้นะคะคำสั่งPushก็คือใส่ข้อมูลลงไปในสแStac(ตก)kถ้าต้องการเอาข้อมูลออกจากสแStac(ตก)kเราใช้คำสั่ง"Pop"นะคะมีอยู่2ตัวที่ทุกคนต้องรู้จักเมื่อพูดถึงS(ส)แตtac(ก)kคือPushกับPopPushคือใส่ถูกไหมเอาข้อมูลเข้าไปเก็บส่วนPopก็คือเอาออกนะคะPopคือเอาออกคราวนี้มาดูตัวอย่างนะคะมีแต(ค)-่PushกับPop2ตัวเราเริ่มต้นสStac(แตก)kไม่มีอะไรเลยเป็นค่าว่างๆถูกไหมคะเป็นสSt(แ)ตac(ก)kว่างครูบอกว่าครูPushเห็นไหมคะคำสั่งPushPushค่าอะไรPushค่าaเมื่อไหร-่ก็ตามที่ใช้คำสั่งPushต้องบอกด-้วยว่าจะใส่ค่าอะไรด้วยนะคะเราPushค่าaลงไปเห็นไหมมันก็อยู่ด้านล่างสุดนะคะถัดมาถ้าครูใส่คำสั่งตัวบนก่อนP(p)ush(b)ก็ใส่bลงมาเห็นไหมคะถัดจากaก็คือbP(p)ush(c)cก็อยู่ถัดขึ้นไปและP(p)ush(D(d))dอยู่บนสุดนะคะเรียงตรามลำดับของการใส่ข้อมูลเข้าไปคราวนี้อยากจะเอาออกบ้างเอาข้อมูลออกจากS(ส)แtac(ตก)kไปใช้งานจะใช้คำสั่งPopPopนะPopแล้วตามด้วยวงเล็บเปิดแล-้(ะ)วก็วงเล็บปิดไม่ต้องใส่ค่าอะไรเพราะเราจะไปดึงค่าที่อยู่ในสแStac(ตก)kออกมาเราสั่งคำสั่งPopเราเอาข้อมูลบนสุดนะคะPopให้เอาข้อมูลบนสุดที่อยู่ในสแตStac(ก)kดึงออกมาเพราะฉะนั้นเดิมเป็นแบบนี้ถูกไหมครูใช้คำสั่งPopอะไรออกมาเอ่ยตัวdDD(d)ogจะออกมาเพราะว่าdDD(d)ogอยู่บนสุดนะคะถัดมาครูPushPushคือใส่เข้าไปตอนนี้ไม่มีDD(dd)ogแล้วนะครูP(p)ush(e)เห็นไหมคะเวลาPushต้องบอกด้วยว่าเราใส่ค่าอะไรวงเล็บเปิดแล้วก็ใส่ตัวeวงเล็บปิดครูPushค่าeลงไปE(e)จะอยู่ด้านบนC(c)เสร็จแล้วPushfอีกครั้งหนึ่งfก็จะอยู่บนสุดนะคะถัดมาครูPopPopคือเอาออกเอาอะไรออกข้างบนสุดถูกไหมคะก็คือเอาF(f)ออกเพราะฉะนั้นข้อมูลจะเหลืออยู่4ตัวก็คือa,b,cแล้วก็eโอเคถัดมาเราแทนStackด้วยอะไรนะคะอย่างที่ครูบอกว่าลิสตาList(-์)จะถูกเอามาใช้แทนนะคะการจัดเก็บข้อมูลในS(ส)แตtac(ก)kเราพูดถึงสแStac(ตก)kแล้วมันจัดเก็บแบบไหนเราก็ใช้ลL(-ิ)สตist(-์)นั่นล่ะในการเก็บข้อมูลล-ิLi(ส)ตst(-์)นะคะเราสามารถวาดเป็นแนวตั้งหรือแนวนอนก็ได้นะสามารถวาดเป็นแนวตนอน(-ั้ง)หรือแนวนอนก็ได้ข้อมูลที่ใส่เข้ามาตัวแรกนะคะจะอยู่ที่index0ก็คือข้อมูลตัวแรกไล่ไปเรื่อยๆจนถึงข้อมูลตัวสุดท้ายสแStac(ตก)kที่ครูให้มานี่ที่เก็บอยู่ในรูปแบบที่เป็นลิสList(ต์)นี่มันมีช่องว่างไหมคะมันมีที่ว่างให้ใส่ได้อีกไหมS(ส)แตtac(ก)kรูปนี้มีอยู่4ช่องด้วยกันทุกช่องมีค่าไหมคะทุกช่องมีค่านะมันเต็มหรือยังคะมันมีที่ว่างให้ใส่อีกไหมมันมีที่ว่างให้ใส่อีกไหมคะไม่มีแล้วอย่างนี้เรียกว่าS(ส)แtac(ตก)kเต็มแล้วนะคะคือมันไม่มีช่องว่างให้เราใส่ข้อมูลตัวใหม่ได้แล้วนะคะอย่างนี้เรียกว่าสแStac(ตก)kมันเต็มแล้วคราวนี้เรามี2คำสั่งที่พูดถึงนะPushกับPopนะคะPushก็คือใส่ข้อมูลลงไปในสแStac(ตก)kเช่นครูมีสStac(แตก)kอย่างนี้ใช่ไหมมันมีที่ว่างให้ครูใส่ข้อมูลได้ไหมคะมีนะมันมีที่ว่างให้ครูใส่ข้อมูลได้นะคะครูก็เลยสั่งคำสั่งPush3ก็คือเอาข้อมูล3นี่ไปหย่อนลงไปในสStac(แตก)kมันจะเอามาใส่ช่องนี้ช่องที่1หรือช่องที่2คะช่องที่1ถูกไหมก็ไล่ลำดับมาเรื่อยๆมันอยู่ช่องนี้แล้วข้อมูลล่าสุดอยู่ช่องนี้เพราะฉะนั้นเวลาเราหย่อนลงไปมันก็ไหลลงไปจนถึงตัวสุดท้ายที่มันสามารถจะใส่ได้ก็คือในช่องตรงนี้นะคะก็จะเอา3มาใส่แล้วเราใส่ด้วยคำสั่งอะไรเราใช-้ลิสต-้List(-์)นะคะในการจัดเก็บข้อมูลเราใช้ลิสList(ต์)ในการจัดเก็บข้อมูลเพราะฉะนั้นคำสั่งของการเพิ่มข้อมูลลงไปในS(ส)แตtac(ก)kก็คือใช้คำสั่งAppendได้เลยเพราะAppendเป็นคำสั่งของการเพิ่มข้อมูลลงไปในลิสLi(ต์)stนะคะใส่ชื่อ.แล้วตามด้วยคำสั่งA(a)ppendวงเล็บเปิดใส่ค่าข้อมูลตัวใหม่แล้วก็วงเล็บปิดถัดมาPopคือเอาออกนะคะคือPopคือเอาออกก่อนที่เราจะเอาข้อมูลออกนี่เราต้องเช็กก่อนว่าสStac(แตก)kเรานี่มีข้อมูลอยู่ไหมถ้าสStac(แตก)kมันไม่มีข้อมูลอยู่เลยเราจะเอาอะไรออกมาได้ไหมไม่ได้นะคะเพราะมันไม่มีข้อมูลอะไรให้เราดึงออกมาเพราะฉะนั้นอันดับแรกนี่เราต้องเช็กก่อนมันมีข้อมูลอยู่ไหมนะคะมันมีข้อมูลอยู่ไหมถ้ามันไม่มีข้อมูลอยู่เลยเราจะบอกว่ามันคือสแStac(ตก)kว่างเราจะไม่สามารถทำคำสั่งPopได้นะคะแต่ถ้าสแตStac(ก)kไม่ว่างเช่นในบรรทัดแถวที่2สแStac(ตก)kไม่ว่างนะมันมีข้อมูลอยู่ตั้ง3ตัวเราใช้คำสั่งPopข้อมูลอะไรจะถูกดึงออกมามีอยู่3ค่านี่ข้อมูลที่จะเอาออกมาจากสแStac(ตก)kก็คือข้อมูลค่าอะไรเอ่ยอะไรคะ1หรือ2หรือ33ใช่ไหมเอาตัวที่อยู่บนสุดตัวล่าสุดน่ะตัวล่าสุดถูกไหมคะถ้าอยู่ในแนวนอนตัวล่าสุดจะอยู่ด้านขวาถ้าเป็นแนวตั้งตัวล่าสุดจะอยู่ข้างบนใช่ไหมคะก็คือเลข3จะถูกดึงออกมานะคะหลังจากที่เราใช้คำสั่งPopโอเคถัดมาตัวนี้จะเป็นคำสั่งที่เราใช้เขียนเช่นเราจะเช็กว่าสStac(แตก)kนั้นเป็นสแStac(ตก)kว่างหรือเปล่าเราก็ดูขนาดของสแStac(ตก)kใช่ไหมคะหาขนาดของS(ส)แตtac(ก)kว่ามันมีขนาดเท่าไรถ้าขนาดมันมีค่าเป็น0แสดงว่ามันเป็นสStac(แตก)kว่างคือไม่มีข้อมูลอยู่เลยก็ไม่ต้องทำอะไรใช่ไหมคะแต่ถ้ามันไม่ใช่S(ส)แตtac(ก)kว่างเราก็จะดึงค่าที่อยู่บนสุดออกมาคราวนี้อันนี้จะเป็นโค้ดเป็นโปรแกรมที่เราจะเขียนทั้งหมดเดี๋ยวครูบอกอีกทีข้างหลังนะคะสมมติว่าครูอยากถ..(าม)คราวนี้ดูนะคะครูมีสStac(แตก)kมาให้สStac(แตก)kครูมีกี่ช่องคะมี4ช่องในแนวตั้งถูกไหมเป็นS(ส)แtac(ตก)kในแนวตั้งมี4ช่องนะคะตัวล่า.แร(..)กตัวแรกน่ะจะอยู่ด้านฐานจะอยู่ด้านล่างสุดนะเวลาเราหย่อนข้อมูลลงไปตัวแรกจะลงมาอยู่ช่องล่างสุดแล้วค่อยขยับขึ้นไปช่องถัดไปถัดไปนะคะจะซ้อนขึ้นไปข้างบนนะถ้าเป็นสแStac(ตก)kในแนวตั้งคำสั่งอย่างที่บอกเรามีแค่2คำสั่งนะมีแค่PushกับPopใช่ไหมคะPushใส่ข้อมูลกับPopเอาข้อมูลออกคือใส่กับเอาออกนะคะคราวนี้ดูPush5เห็นไหมคะครูใส่หมายเลขช่องก่อนนะอันนี้เป็นหมายเลข1,0,1,2,3นะเราจะได้เข้าใจตรงกันโอเคนะคะมีหลายเลขช่องแล้วนะเริ่มที่0,1,2,3ครูสั่งPush55จะไปอยู่ที่ช่องไหนคะช่องไหนเอ่ยช่องหมายเลขอะไรครูหย่อน5ลงไปมันก็จะไหลปุ๊ดๆๆลงมามาอยู่ที่ช่องไหนคะช่อง0เห็นไหมพอครูหย่อน5ลงมามันก็ไหลลงมาเรื่อยๆเหถ-ูก(-็น)ไหมคะจนมาอยู่ที่ช่อง0เสร็จแล้วครูสั่งคำสั่งPush10เดิมมันมี5อยู่แล้วนะแล้วครูสั่งPush10เพราะฉะนั้น10จะมาอยู่ที่ไหนคะ10จะมาอยู่ที่1ถูกไหมคะก็หย่อน10ลงมานะถัดมาเดิมเดิมมี5กับ10แล้วครูเขียนเรียบร้อยก่อนนะคะใส่ที่ช่อง0กับช่อง1ครูสั่งPush15ไปอยู่ที่ช่องไหนคะ2เห็นไหมพอPushข้อมูลลงไปนะคะคราวนี้จากรูปนี้ครูสั่งPopเอาอะไรออกมาจากรูปนี้พอครูสั่งPopปุ๊บเอาอะไรออกมาคะเอาอะไรออกมาเอ่ย15ใช่ไหมเอาตัวบนสุดเลือกเราเลือกตัวบนสุดออกมาใช่ไหมคะเพราะฉะนั้น15จะถูกดึงออกมาข้างนอกเห็นไหมคะเพราะฉะนั้นในS(ส)แตtac(ก)kจะเหลือแค่10กับ5ครูสั่งPopอีกทีหนึ่งเอาอะไรออกมาคะเดิมมี5กับ10คราวนี้เอาอะไรออกมาครูสั่งPopปุ๊บอะไรออกมาคะ10ออกมาเห็นไหม10ไม่เหลือแล้วเพราะฉะนั้นตอนนี้ในสStac(แตก)kเราเหลือกี่ค่าคะค่าเดียวคือเลข5จดตัวนี้ไว้ในกระดาษให้ครูหน่อยเดี๋ยวครูจะให้ทำแบบฝึกหัดนะคะมีกระดาษไหมคะมีใครไม่มีกระดาษไหมครูมีกระดาษมาแจกมีไหมคะมันจะมีเส้นคราวนี้นะคะครูมีโจทย์มาให้แล้วก็มีคำสั่งมาให้ทำเหมือนเดิมเลยใช่ไหมคะแต่ครูมีตัวเริ่มต้นให้ครูมีให้อยู่แล้วอยู่ในS(ส)แตtac(ก)kคือ5ใช่ไหมคะอันแรกเราหย่อนเลข2ลงไปอันที่2เขียนของเดิมก่อนใช่ไหมคะแล้วค่อยหย่อนเลข7ลงไปถัดมาหย่อนเลข1Popคือเอาออกนะเอาออกแล้วบอกครูด้วยว่าข้อมูลที่เอาออกมาคืออะไรเสร็จแล้วก็มีคำสั่งตัวสุดท้ายคือPushเลข7ลงไปลองทำดูนะคะเพราะฉะนั้นแต่ละข้อมันจะต่อเนื่องกันไปนะคะทำตัวแรกข้อที่1เสร็จเอาข้อมูลนี่มาตั้งต้นไว้ก่อนแล้วเราค่อยPushเลข7ลงไปเดี๋ยวเราทำด้วยกัน1ข้อนะอันนี้คือPushเลข2คือหย่อนเลข2ลงไปข้อที่2ครูจะใส่เลข7เพราะฉะนั้นครูต้องใส่ข้อมูลเดิมก่อนนะคะและก็หย่อนเลข7ลงไปทำต่อให้ครูหน่อยอีก3อันคราวนี้เดี๋ยวเรามาดูเฉลยพร้อมกันนะคะข้อ3นะคะครูสั่งPush1ก็คือให้ใส่เลข1ลงไปในสแStac(ตก)kเดิมเอาของเดิมยกมาก่อนนะอย่าเพิ่งใส่นะคะของเดิมมี3ค่านะเขียนก่อนนะคะเขียนค่าเดิมก่อนใส่ค่าเดิมมาก่อนนะคะเสร็จแล้วครูสั่งPush11จะอยู่ด้านบนเลข7ใช่ไหมคะจากนั้นครูสั่งPopPopคือเอาออกบนสุดคืออะไรคือ1ใช่ไหมคะเพราะฉะนั้นเอาอะไรออกเอา1ออกเพราะฉะนั้นที่เหลือก็คือ5,2,7ถูกไหมคะ1จะถูกเอาออกมาใช่ไหมเพราะฉะนั้นข้อมูลที่นำออกจากสแตStac(ก)kก็คือ1นะคะครูสั่งPushอีกครั้งหนึ่งทำอย่างไรก็เอาของเดิมที่มีอยู่ในสแStac(ตก)kเขียนก่อนเพราะฉะนั้นกรณีที่Pushข้อมูลลงไปในสแStac(ตก)kยกของเดิมมาก่อนเสร็จแล้วใส่ตัวเลขที่ครูสั่งลงไปก็คือ77ก็จะอยู่ด้านบนนะคะอันนี้คือS(ส)แtac(ตก)kที่ได้หลังจากที่เราใช้คำสั่งทั้งหมด5คำสั่งโอเคถัดมาครูเปลี่ยนไ(น)ะคด้ไ(ะ)หมจากแนวตั้งเป็นแนวนอนนะคะถ้าครูลองเปลี่ยนS(ส)แตtac(ก)kเป็นแนวนอนบ้างคราวนี้ครูลองเปลี่ยนS(ส)แตtac(ก)kเป็นอีกรูปแบบหนึ่งเป็นแนวนอนบ้างนะคะและครูมีตัวเลขที่อยู่ในS(ส)แตtac(ก)kไว้ให้คือ3แล้วก็1ถูกไหมตัวแรกจะอยู่ซ้ายสุดถูใช-่(ก)ไหมคะถัดมาก็จะเป็นตัวที่2แล้วครูใช้คำสั่งPush5ข้อที่2ครูPush6เสร็จแล้วครูPopนะคะลองทำสิคราวนี้นะคะมาดูเฉลยด้วยกันครูสั่งPush5แสดงว่าครูกำลังจะใส่ข้อมูลลงไปในสStac(แตก)kคือเลข5นะคะครูก็เอาเลข5มาหย่อนลงเลยนะเอาเลข5มาหย่อนเลยนะคะถัดมาครูใช้คำสั่งPushครูใช้คำสั่งPushทำอย่างไรเอาของเดิมยกลงมาก่อนนะยกของเดิมมาใส่ก่อนนะคะก็จะมี3,1แล้วก็5จากนั้นเราPushค่าใหม่ใส่ค่าใหม่ลงไปก็คือ6โอเคนะใส่ค่า6ก็คือค่าใหม่ลงไปในสSt(แ)ตac(ก)kเสร็จแล้วครูใช้คำสั่งPopก็คือเอาออกก็คือเอาตัวล่าสุดก็คือที่อยู่ด้านขวาเอาออกนะคะเพราะฉะนั้นค่าที่ถูกเอาออกก็คือเลข6เห็(ใช่)นไหมคะเอาเลข6ออกมาแล้วเราก็ยกตัวที่เหลือลงมาใส่ก็จะเหลือเป็น3,1แล้วก็5นะคะครบแล้วหรือโอเคคราวนี้นะคะมาดูต่อกระดาษที่ครูแจกเอาวางไว้ก่อนนะคะอย่าเพิ่งใช้เรายังไม่ใช้ตอนนี้เราใช้สแตStac(ก)kทำอะไรเมื่อกี้เราพูดถึงสStac(แตก)kไปแล้วนะเข้าก่อนออกทีหลังนะคะข้อมูลไหนเข้าก่อนจะถูกเอาออกทีหลังแล้วเราใช้S(ส)แตtac(ก)kทำอะไรบ้างเราใช้สแStac(ตก)kมาทำอะไรบ้างทุกคนบวกเลขเป็นใช่ไหมทุกคนบวกลบคูณหารนะot8t(คะ)สมการทางคณิตศาสตร์ได้สแตStac(ก)kจะถูกเอามาใช้ในการหาผลลัพธ์ของสมการคณิตศาสตร์บวกเลขบวกลบเลขนะคะคราวนี้ก่อนที่จะไปดูรูปแบบของการใช้S(ส)แtac(ตก)kแล้วS(ส)แตtac(ก)kมันเกี่ยวข้องอย่างไรกับการบวกลบคูณหารนะคะเรามาดูรูปแบบก่อนว่าเราใช้สStac(แตก)kเพื่อเป็นนิพจน์ก็คือลักษณะของสมการมีอยู่3รูปแบบนะคะรูปแบบแรกก็คือInfixเครื่องหมายบวกลบคูณหารจะอยู่ระหว่างตัวเลขนะคะอันนี้คือInfixนิพจน์ตัวที่2ก็คือPrefixเครื่องหมายบวกลบคูณหารจะอยู่ด้านหน้าและตัวสุดท้ายคือPostfixเครื่องหมายจะไปอยู่ด้านหลังของตัวเลขACอันนี้คือตัวเลขนะคะเราจะแทนด้วยตัวเลขใดๆคราวนี้ดูนะคะในการคำนวณทางคณิตศาสตร์นะเวลาเราเจอนะคะการบวกลบที่มันมีมากกว่า2ตัวเลขเช่นแบบนี้5+2x2มันมีตัวเลขมากกว่า2ตัวนะคะแล้วเราจะบวกลบเลขอย่างไรเรามีลำดับความส-ั(-ำ)มคัญของเครื่องหมายเจอวงเล็บก่อนทำในวงเล็บใช่ไหมคะเราเจอวงเล็บเราบวกลบเลขนี่ในเครื่องหมายวงเล็บก่อนจากนั้นลำดับความสำคัญตัวที่2ที่จะต้องทำก่อนก็คือเครื่องหมายยกกำลังเช่น2ยกกำลัง2ใช่ไหมคะ3ยกกำลัง2อย่างนี้เป็นต้นเจอเลขยกกำลังเสร็จแล้วเราจะคำนวณเครื่องหมายไหนต่อไปคูณกับหารคูณกับหารมีลำดับความสำคัญเท่ากันนะคะมีลำดับความสำคัญเท่ากันตามด้วยบวกกับลบนะบวกกับลบก็มีความสำคัญเท่ากันแต่จะทำหลังการทำเครื่องหมายคูณกับหารนะคะคราวนี้มาดูโจทย์ครู2ตัวนี้เป็นตัวเลขตัวเดียวกันเลย(5+2)x(*)2ตัวแรกครูมีวงเล็บเปิดกับวงเล็บปิดโจทย์ตัวที่2ครูไม่ได(มี)-้ใส่วงเล็บนะคะครูไม่มีวงเล็บนะคราวนี้มาดูข้อแรกก่อนอย่างที่บอกว่าถ้าเจอวงเล็บวงเล็บเปิดวงเล็บปิดทำข้างในวงเล็บก่อนเพราะฉะนั้นเราเอาอะไรบวกกันก่อน5+2เป็นเท่าไรคะเป็น77แล้วคูณด้วย2เท่ากับเท่าไรเท่ากับเท่าไรคะเท่ากับ14ตัวเลขเท่ากับ14ตัวแรกนะคะเท่ากับ14แล้วมาดูข้อ2ครูตัดวงเล็บทิ้งไป(5+2)x(*)2เราทำตรงไหนก่อนย้อนกลับขึ้นมาดูข้างบนระหว่างบวกกับคูณอะไรสำคัญมากกว่ากันอะไรมีความสำคัญมากกว่ากันคะบวกกับคูณใช่คูณจากข้อมูลข้างบนเห็นไหมคะว่า1นี่มีความสำคัญมากสุดนะ2.ความสำคัญรองลงมาตัวนี้เบอร์3ความสำคัญรองลงมาเบอร์4ความสำคัญน้อยสุดเลยเพราะฉะนั้นคูณกับบวกอะไรมีความสำคัญมากกว่ากันคูณใช่ไหมคะอันนี้คือมากสุดเพราะฉะนั้นเราทำอะไรก่อน5+2หรือเอา2x22x2เป็น44+5เป็นเท่าไรคะ4+5เป็น9โอเคถ้าครูเขียนใหม่เลข2นหร(ะ)-ือเดี๋ยวนะโจทย์ข้อนี้5x2+2=12คนอื่นได้ไหมคะเห็นไหมตัวเลขเดียวกันเลยสลับแล้วก็คเครื่องหมายมีเหมือนกันเลยแค่สลับตำแหน่งค่าก็เปลี่ยนแล้วทันไหมคะคูณกับบวกแสดงว่าทำคูณก่อน5x2เป็น1010+2เป็น12โอเคเอาตัวนี้บวกกันก่อน...คูณกันก่อนนะคะ5x2เป็น10แล้ว10ค่อยมาบวกกับ2โอเคจะเห็นว่าอันนี้คือเราคิดใช่ไหมอันนี้คือเราคิดนะคะแล้วเราจะสั่งให้คอมพิวเตอร์นี่เข้าใจแบบที่เราคิดเมื่อกี้ได้อย่างไรรู้ว่าถ้าเจอคูณนี่ต้องทำคูณก่อนเลยเจอวงเล็บเปิดต้องทำวงเล็บเปิดวงเล็บปิดก่อนตอนนี้เราจะสั่งให้คอมพิวเตอร์นี่สามารถคำนวณให้ได้แบบที่เราคำนวณเมื่อกี้เราใช้สแStac(ตก)kเข้ามาช่วยในการคำนวณนะคะเราใช้S(ส)แตtac(ก)kเข้ามาช่วยในการคำนวณวิธีการทำแบบไหนมาดูวิธีการนะคะเรามีตัวเลขอยู่ชุดหนึ่งเราต้องการหาค่าออกมาเช่นครูมีตัวเลขชุดนี้ล่ะนี่ครูสั่งให้คอมพิวเตอร์คำนวณนี่มันต้องได้ผลลัพธ์9แบบเหมือนที่เราคิดแบบเมื่อกี้คอมพิวเตอร์จะคิดแบบไหนนะคะ1.เราต้องสร้างตารางแบบนี้ก่อนมี3ช่องช่องแรกคือใส่Inputก็คือข้อมูลนำเข้าสแStac(ตก)kแล้วก็ผลลัพธ์นะคะเรามีวิธีการทำนี่2ช่วงด้วยกันช่วงที่1ต้องแปลงนิพจน์นะคะให้เป็นแบบPostfixเอาเครื่องหมายไปไว้ข้างหลังให้หมดก่อนเอาเครื่องหมายไปไว้ข้างหลังให้หมดก่อนนะคะแล้วค่อยคำนวณออกมาเป็นตัวเลขผลลัพธ์เรามี3ช่องนะทุกคนต้องตีตาราง3ช่องอันแรกเขียนว่าInputStackแล้วก็Outputนะคะถัดมาขั้นตอนวิธีการแปลงจากInfixให้เป็นPostfixทุกคนมีShชีต(eet)ที่ครูให้นะแบบนี้เลยก็คือสิ่งที่อยู่บนสไลด์นะคะครูพรินต์ออกมาให้เรามีอยู่ทั้งหมด7ขั้นตอนด้วยกันมีทั้งหมด7ขั้นตอนด้วยกันครูให้เวลา1นาที2นาทีอ่าน7ขั้นตอนนี้ในกระดาษของตัวเองสิคะให้อ่านในกระดาษนะหรือจะอ่านจากหน้าจอก็ได้ให้เวลา2นาทีอยากให้อ่านก่อนคราวนี้เดี๋ยวมาดูพร้อมกันเรามีอยู่ทั้งหมด7ขั้นตอนนะคะเดี๋ยวเราจะลองฝึกนะแล้วก็เทียบไปทีละขั้นขั้นที่1นะคะกำหนดให้Stackว่างก็คือวาดตาราง3ช่องนี้ใช่ไหมคะอันดับแรกสร้างS(ส)แตtac(ก)kว่างก็คือวาด3ช่องนะคะกี่แถวเรายังไม่รู้นะแต่มีอยู่3คอลัมน์นะคะ3ช่องอันนี้คือสแStac(ตก)kว่างอันดับแรกนะคะอันดับที่2อ่านข้อมูลจากซ้ายไปขวาก็คืออ่านข้อมูลทีละตัวใช่ไหมคะเลข5เครื่องหมายบวกเลข2เครื่องหมายคูณแล้วก็เลข2อันนี้คืออ่านจากซ้ายไปขวาทีละตัวนะคะเแล้(รา)วก็อ่านเข้ามาทีละตัวสมมติครูใช้ตัวเลขนะคะเช่นอ่านข้อมูลจากซ้ายไปขวาตัวแรกก็คือ5ใช่ไหมอ่านจากซ้ายซ้ายก็คือตัวแรกนะคะก็คือเลข5ถัดมาถัดมาขั้นถัดมาเป็นขั้นที่3ถ้าข้อมูลที่อ่านเข้ามาเป็นตัวเลขเช่นเลข5ใช่ไหมคะข้อมูลที่เราอ่านเข้ามาคือเลข5มันเป็นตัวเลขใช่ไหมใช่เอามันไปไว้ที่ไหนเอามันไปไว้ที่ช่องผลลัพธ์ก็คือช่องสุดท้ายก็คือช่องนี้ใช่ไหมคะช่องOutputถัดมาถ้าตัวที่เราอ่านเข้ามานี่มันไม่ใช่ตัวเลขแสดงว่ามันต้องเป็นเครื่องหมายทางคณิตศาสตร์อะไรสักอย่างหนึ่งนี่ล่ะเช่นเครื่องหมายบวกใช่ไหมคะเครื่องหมายบวกเราอ่านเครื่องหมายบวกเข้ามาแล้วเขาให้เราเช็กก่อนว่าแล้วในสแStac(ตก)kมันมีค่าอยู่หรือเปล่าสแตStac(ก)kก็คือช่องนี-่ช่องนี-้ช่องที่2นี่มันมีค่าอยู่ไหมถ้ามันไม่มีค่าอยู่เลยก็หย่อนมันลงไปในสแStac(ตก)kแต่ถ้าในS(ส)แตtac(ก)kมันมีข้อมูลอยู่แล้วเราจะต้องทำการเปรียบเทียบก่อนว่าข้อมูลที่เราอ่านเข้ามานี่มันมีค่ามากกว่าหรือน้อยกว่าตัวที่อยู่ในสStac(แตก)kถ้ามันมากกว่าถ้ากรณีที่ตัวที่เราอ่านนี่มีค่ามากกว่าก็หย่อนลงไปในสแStac(ตก)kได้เลยถ้าสิ่งที่เราอ่านเข้ามามันมีค่าน้อยกว่าสิ่งที่อยู่ในS(ส)แtac(ตก)kให้เอาเครื่องหมายในสแStac(ตก)kออกไปไว้ที่ผลลัพธ์แล้วเอาเครื่องหมายตัวที่เราอ่านเข้ามาหย่อนลงไปในสแStac(ตก)kโอเคถ้าเราอ่านจนครบข้อมูลทุกตัวแล้วเรายังมีข้อมูลอยู่ในสแตStac(ก)kเราก็ดึงมันออกมาก็คือPopมันออกมานะคะเป็นผลลัพธ์มาดูตัวอย่างนะทุกคนถือ...ดูกระดาษที่เป็นขั้นตอนด้วยนะคะโอเคโจทย์ที่ครูให้ทุกคนดูที่หน้าจอนะคะครูมีโจทย์มาให้นะคะก็คือ5+2x2อันดับแรกครูต้องทำอะไรครูต้องวาดตารางก่อนใช่ไหมคะอันดับแรง(ก)วาดตาราง3ช่องวาดตาราง3ช่องจำนวนแถวก็เอาข้อมูลตัวเลขกับเครื่องหมายมาใส่ทีละบรรทัด5บรรทัดที่1ถูกไหมคะบวกบรรทัดใส่เลข2บรรทัดถัดมาใส่เครื่องหมายคูณแล้วก็ใส่เลข2เราก็จะวาดตารางเรียบร้อยแล้วนะคะจำนวนแถวขึ้นอยู่กับจำนวนข้อมูลในโจทย์ว่ามีกี่ตัวก็สร้างแถวใส่ข้อมูลให้เลยเรากำหนดสstac(แตก)kว่างแล้วใช่ไหมคะถัดมาต้องอ่านข้อมูลทีละตัวเราต้องอ่านข้อมูลทีละตัวจากซ้ายไปขวาตัวแรกคืออะไรคะคือ5ใช่ไหมครูเขียนเรียงแล้ว5บว+(ก)...มี2มีคูณแล้วก็มี2อันนี้คือข้อมูลที่เราอ่านจากซ้ายไปขวาตัวแรกเป็นตัวเลขใช่ไหมคะมันเป็นตัวเลขแล้วมันตรงกับข้อ(ตัว)ไหนในขั้นตอนข้อ3ที่บอกว่าถ้าเป็นตัวเลขให้เอาไปไว้ที่ไหนเอาไปไว้ที่ผลลัพธ์ถ้าเป็นตัวเลขเอาไปไว้ที่ผลลัพธ์ได้เลยถัดมาเจอเครื่องหมายบ(+)วกนะคะเจอเครื่องหมายบ(+)วกตอนนี้ในStackมันไม่มีค่าอะไรเลยทำอย่างไรคะก็ใส่ได้เลยใส่เครื่องหมายบวกลงมาได้เลยถ้ามันเป็นS(ส)แตtac(ก)kว่างเห็นไหมคะตัวบนมันเป็นสแStac(ตก)kว่างเราก็เอาใส่ได้เลยแล้วก็เขียน5ลงมาเหมือนเดิมนะคะยก5ลงมาเหมือนเดิมนะดูดูพร้อมครูก่อนนะเดี๋ยวครู...จะถ่ายรูปเอาเข้าขึ้นClassroomให้ถัดมาเลข2ใช่ไหมคะเลข2มันเป็นอะไรมันเป็นตัวเลขเพราะฉะนั้นต้องเอาไปไว้ที่ไหนไปไว้ที่ผลลัพธ์ตรงกับข้อ3ในขั้นตอนนะเอา2มาไว้ที่Outputแต่ต้องเขียนหลังก็คือเขียนต่อจากเลข5นะคะถัดมายกเครื่องหมายบวกลงมาด้วยนะเพราะมันอยู่ในสStac(แตก)kนะคะเรายังไม่ได้เอาอะไรออกหรือเอาอะไรเข้าเพิ่มถัดมาเป็นเครื่องหมายคูณในสแStac(ตก)kเรามีเครื่องหมายบวกอยู่แล้วใช่ไหมคะในสแStac(ตก)kนี่เรามีเครื่องหมายบวกอยู่แล้วตัวที่เราอ่านเข้ามาคือคูณเราจะต้องทำการเปรียบเทียบค่าที่เราอ่านเข้ามาใหม่คือคูณกับตัวเดิมที่อยู่ในสแStac(ตก)kคือบวกเราเปรียบเทียบถูกไหมคะกับตัวบนสุดคือเครื่องหมายบวกสิ่งที่เราพบคืออะไรคูณมีค่ามากกว่าบวกให้ทำอย่างไรก็เอาคูณหย่อนลงมาได้เลยใส่คูณลงไปในสStac(แตก)kได้เลยนะคะผลลัพธ์ก็เป็นเหมือนเดิมตัวถัดมาคือเลข2เลข2มันเป็นตัวเลขใช่ไหมเอามาไว้ที่ผลลัพธ์นะคะเอามาต่อด้านหลังเสร็จแล้วเราพบว่าไม่มีข้อมูลแล้วข้อมูลมันหมดแล้วน่ะข้อมูลมันหมดแล้วนะคะแต่สิ่งที่เราเจอคืออะไรในS(ส)แตtac(ก)kยังมีข้อมูลอยู่เพราะฉะนั้นต้องดึงค่าออกจากสStac(แตก)kให้หมดเราเอาอะไรออกมาก่อนคะตัวล่าสุดตัวบนสุดคือคูณเอาคูณมาต่อท้ายที่Outputหรือว่าผลลัพธ์เอาคูณออกมาแล้วมันเหลืออีกตัวหนึ่งใช่ไหมก็เอาบวกออกมาอันนี้คือผลลัพธ์ผลลัพธ์สุดท้ายนะคะจะอยู่ในรูปแบบของPostfixคือแปลงนิพจน์ได้ไหมคะเดี๋ยวเรามาทำพร้อมกันอีกตัวหนึ่ง3+5x1ครูมีโจทย์ใช่ไหมคะ3+5x1ผลลัพธ์เท่ากับเท่าไรเอ่ยตอบเท่ากับอันนี้ตอบเท่ากับเท่าไรเอ่ย8ข้างหลังตอบอะไรได้เท่ากับอะไรคะคำตอบก็คือ8เอา5x1ก่อนได้เท่าไรค่อยบวกกับ35x1เป็น5แล้วค่อยบวกกับ3ก็จะเท่ากับ8เดี๋ยวเราจะมาทำจะมาแปลงนิพจน์กันนะคะแล้วเราจะมาหาค่าว่ามันได้8ได้อย่างไรอันนี้เรากำลังจะมาแสดงวิธีทำของการได้ค่าว่า8มันมาจากไหนเราสั่งให้คอมพิวเตอร์คิดแบบไหนอันดับแรกวาดS(ส)แตtac(ก)kว่างฉะนั้ใช่ไหม(น)ครูบอกว่าต้องมีคอลัมน์อยู่3คอลัมน์ครูมี3คอลัมน์แล้วมีInputStackแล้วก็Outputจากนั้นครูวาดตารางเลยโดยเอาข้อมูลมาใส่ในแต่ละแถวเลยนะคะครูอ่านเข้ามาทีละตัวจากซ้ายไปขวาตัวแรกคือ3ถัดมาคือเครื่องหมายบวกเลข5นะคะเครื่องหมายคูณแล้วก็เลข1อันนี้ครูวาดตารางเสร็จแล้วทุกคนวาดตามครูก่อนเลยเราวาดตารางเปล่าๆแบบนี้ก่อนนะคะคอลัมน์แรกหรือช่องแรกเอาตัวเลขกับเครื่องหมายมาเรียงใส่ทีละบรรทัดคราวนี้พอทุกคนลอกตารางเสร็จแล้วใช่ไหมคะเดี๋ยวเราจะมาทำด้วยกันเริ่มต้นตัวแรกใช่ไหมคะทุกคนเริ่มต้นตัวแรกมันเป็นตัวเลขใช่หรือเปล่ามันเป็นตัวเลขเพราะฉะนั้นเอาไปไว้ที่ช่องทางไหนทางขวาใส่ก่อนเลข3ใช่ถูกต้องถัดมาเป็นเครื่องหมายบวกใช่ไหมคะเป็นเครื่องหมายบวกตรงนี้มีอะไรไหมไม่มีเพราะฉะนั้นเอา+มาใส่ตรงนี้ได้เลยไหมได้ถ้าเป็นเครื่องหมายเอาลงที่S(ส)แตtac(ก)kเพราะฉะนั้นตอนนี้สSt(แ)ตac(ก)kว่างก็ใส่เครื่องหมายบวกได้เลย3ยกลงมาเหมือนเดิมนะคะตรงOutputยก3ลงมาเหมือนเดิมถัดมาเลข5เป็นตัวเลขเอาไว้ที่ไหนเอาไว้Outputใช่ไหมเพราะฉะนั้นเอาของเดิมยกลงมาก่อนคือ3เราเอาเลขอะไรมาใส่เลข5นะคะอันนี้ยกลงมาไหมเครื่องหมายบวกยกลงมาด้วยนะยกลงมาด้วยเสร็จแล้วถัดมาเครื่องหมายคูณคูณต้องเอามาลงสแStac(ตก)kใช่หรือเปล่าแต่คูณมันมากกว่าบวกใช่ไหมคูณกับบวกอะไรมากกว่ากันคูณเพราะฉะนั้นเราก็ใส่ลงไปในสStac(แตก)kได้เลยโดยเอาของเดิมลงมาก่อนแล้วก็ใส่เครื่องหมายคูณอันนี้ยกลงมาเหมือนเดิมไหมยกลงมาเหมือนเดิมตรงสุดท้าย1เอาไว้ที่ไหนOutputแต่มีของเดิมอยู่แล้วใช่ไหมยกของเดิมลงมาก่อนแล้วก็ใส่เลข1อันนี้ยกลงมาเลยได้ไหมได้นะคะในสแStac(ตก)kเราก็ยกเครื่องหมายออกมาเครื่องหมายนะคะบวกกับคูณเสร็จแล้วผลลัพธ์ที่ได้ตอนนี้ข้อมูลหมดแล้วใช่ไหมในS(ส)แตtac(ก)kยังมีอยู่ในสStac(แตก)kยังมีอยู่ต้องเอาออกมาต้องPopออกมาใช่ไหมคะยกตรงOutputของเดิมลงมาก่อนPopบวกกับคูณเอาอะไรออกมาก่อนคูณแล้วตามด้วยบวกเห็นไหมคะเอาตัวแรกออกมาก่อนแล้วก็เอาตัวที่2ออกมาเดี๋ยวต่ออีกนิดหนึ่งนะคะเดี๋ยวเขียนตรงนี้ให้เสร็จก่อนเรายังไม่ได้ค่าเลข8เลยจะทำอย่างไรให้ได้เลข8ถัดมาเสร็จหรือยังคะเดี๋ยวรอเพื่อนแป๊บหนึ่งนะโอเคเราได้ผลลัพธ์แล้วใช่ไหมคะจากตารางที่เราทำในสแStac(ตก)kพอได้ค่าผลลัพธ์แล้วนี่คือตัวนี้ใช่ไหม351คูณบวกมาหาผลลัพธ์ต่อนะคะค่านี้จะเป็นค่าสุดท้ายแล้วที่เราจะได้คำตอบออกมาตัวแรกตัวนี้ใช่ไหมคะขั้นตอนถัดมาถ้าเป็นตัวเลขถ้าเป็นตัวเลขจะPushลงสStac(แตก)kอันนี้อีกอันหนึ่งนะอีกขั้นตอนหนึ่งนะคะถ้าเป็นตัวเลขจะPushลงสStac(แตก)kดูพร้อมครูเลยตัวที่1มาคือตัวเลขอะไรคะเลข3เราเอาใส่ในสแStac(ตก)kดูพร้อมกันนะเลข3ตัวแรกเอาลงสแStac(ตก)kตัวถัดมาเลขอะไรคะเลข5ก็เอาเลข5PushลงสStac(แตก)kเหมือนกันตัวถัดมาเลขอะไรเลข1ก็เอาเลข1PushลงสStac(แตก)kเหมือนกันถัดมาเราเจอเครื่องหมายคูณให้Popค่าบนสุดอออกมาแล้ววางไว้ขวามือเอาเลข1ออกมาเห็นไหมคะจากนั้นใส่เครื่องหมายถ้ามันเป็นเครื่องหมายนะตัวที่เราอ่านมาเราPopตัวเลขออกมาก่อนแล้วใส่เครื่องหมายแล้วเอาตัวที่2ออกมาแบบนี้นะคะเอาตัวบนสุดออกมาแล้วใส่เครื่องหมายที่เราอ่านแล้วเอาตัว...ข้อมูลตัวเลขที่อยู่ในสSt(แ)ตac(ก)kตัวถัดมานี่ออกมาได้ผลลัพธ์เป็นอะไรคะ5x1เป็น5ตอนนี้ในS(ส)แtac(ตก)k1กับ5ออกไปแล้วนะเราได้ผลลัพธ์คือ5แล้วอย่างไรต่อก็PushลงสStac(แตก)kเอาเลข5นี่PushลงไปในสแStac(ตก)kเดิมมี3ใช่ไหมตอนนี้เอาออกไปแล้ว2เหลือ3พอคูณเสร็จเอา5กลับเข้ามาดูนะคะถัดมาอ่านเครื่องหมายบวกทำเหมือนเดิมเลยเอาอะไรออกมาคะเอา5ออกมาไว้ทางขวามือแล้วก็ใส่เครื่องหมายบวกแล้วก็เอา3ออกมาคำตอบเป็นเท่าไรคะเป็น8แล้วก็เอา8ใส่ลงไปในS(ส)แตtac(ก)kจะเหลือเป็นค่าสุดท้ายนี่คือคำตอบของโจทย์ข้อนี้ได้เท่ากันเลยไหมได้เท่ากันเลยคือ8จะเห็นว่านี่คือกระบวนการที่คอมพิวเตอร์คิดค่าตัวเลขให้เรานะคะกว่าจะได้เลข8ออกมานี่คอมพิวเตอร์ต้องคิดแบบนี้นะคะโอเคใครเสร็จแล้วครูให้เบรกอีก5นาทีจดตัวนี้ให้เสร็จนะคะเสร็จแล้วครูให้เบรก5นาทีค่ะเดี๋ยวมาต่ออีกนิดหนึ่งคราวนี้มาดูอีก1ตัวอย่างนะคะครูมีโจทย์ให้5x2+2ตอนนี้เราทำจากPr(In)efixให้เป็นPostfixก่อนนะคะอันดับแรกต้องวาดตารางก่อนใช่ไหมคะวาดตารางS(ส)แตtac(ก)kว่างครูก็วาด3ช่องเหมือนเดิมแล้วก็ตรงInputครูก็เอาข้อมูลแต่ละตัวมาใส่ลงในแต่ละบรรทัดเริ่มต้นเลยนะคะเราห(อ)ย-่อ(า)นเข้ามาตัวแรเลข(ก)คือเลข5ใช่ไหมมันเป็นตัวเลขเพราะฉะนั้นเอามันไปไว้ที่Outputนะคะนะถ้าเป็นตัวเลขเอาไปไว้ที่Outputได้เลยตัวถัดมาเครื่องหมายคูณแสดงว่าต้องเอาไปไว้ในสStac(แตก)kตอนนี้สStac(แตก)kมันเป็นสแตStac(ก)kว่างเราก็เลยเอาคูณมาใส่ในสแStac(ตก)kได้เลยส่วนOutputก็ยก5ลงมาเหมือนเดิมโอเคนะยังเป็นเหมือนเดิมอยู่นะ2บรรทัดแรกถัดมาเจอเลข2เลข22มันเป็นตัวเลขต้องเอาไปไว้ที่Outputเพราะฉะนั้น2จะอยู่ต่อจากเลข5นะคะในS(ส)แตtac(ก)kก็ยกลงมาเหมือนเดิมก็ถึงตรงนี้นะคะถัดมาข้อมูลที่เราอ่านมาคืออะไรเครื่องหมายบวกพอเราเจอเครื่องหมายบวกครูบอกว่าต้องเอามันไปไว้ในS(ส)แตtac(ก)kแต่ก่อนอื่นก่อนที่จะเอาไปไว้ในสStac(แตก)kเดิมเรามีข้อมูลในสSt(แ)ตac(ก)kหรือเปล่ามีใช่หรือเปล่ามีเครื่องหมายคูณเพราะฉะนั้นเราต้องเปรียบเทียบความสำคัญก่อนบวกมันน้อยกว่าหรือมากกว่าคูณน้อยกว่าใช่ไหมบวกมีค่าน้อยกว่าคูณเพราะฉะนั้นทำอย่างไรคะเอาคูณออกมาบวกมีค่าน้อยกว่าคูณเพราะฉะนั้นต้องเอาข้อมูลที่อยู่บนS(ส)แtac(ตก)kนี่คือคูณเอามาไว้ที่Outputเห็นไหมคะเอามาไว้ที่Outputเสร็จแล้วเราถึงเอาเครื่องหมายบวกPushลงไปในสSt(แ)ตac(ก)kนะคะแล้วค่อยเอาเครื่องหมายบวกใส่ลงไปในS(ส)แตtac(ก)kได้เลยเพราะว่าสStac(แตก)kมันว่างเพราะฉะนั้นตรงOutputจะเป็น5,2แล้วก็เครื่องหมายคูณทำไมคูณถึงต้องออกมาเพราะบวกมันน้อยกว่าคูณเห็นไ(ะ)หมคะบวกมันน้อยกว่าคูณเลยเอาคูณออกมาถัดมาเลขอะไรคะเลข2เอาไปไว้ที่Outputได้เลยก็เอามันไปต่อท้ายคูณใช่หรือเปล่าเพราะมันตัวสุดท้ายคือคูณเอา2มาต่อท้ายตอนนี้เราอ่านข้อมูลครบหมดแล้วแต่ในสแStac(ตก)kมันยังมีบวกค้างอยู่เพราะฉะนั้นต้องPopมันออกมาแล-้(ะ)วไว้ข้างหลังเลยนะคะPopมันออกมาแล้วไว้ข้างหลังโอเคนะแบบฝึกหัดช่วยครูทำหน่อยตอนนี้เลยครูมีโจทย์ให้นะคะ3หาร1ลบ2แล้วครูก็บอกว่าหารนี่มันมีค่ามากกว่าลบนะนะคะหาค่าผลลัพธ์ของนิพจน์Postfixให้ครูหน่อยผลลัพธ์สุดท้ายต-ัรง(ว)นี้จะได้อะไรเริ่มต้นทุกคนตีตารางก่อนลองทำดูสิคะมีกระดาษไหมไม่มีมาเอาข้างหน้าครูมีกระดาษให้นะเร็วแบบฝึกหัด1ข้อนะคะทำตอนนี้เลยเหมือนกับโจทย์ที่ครูให้ไปนะคะคล้ายๆกับโจทย์ที่เราให้ไปแล้วเราก็จดแล้วด้วยนะเหมือนโจทย์สุดท้ายที่ครูให้ไปเมื่อกี้เลยนะลบมันน้อยกว่าหารใช่ไหมคะเราเปรียบเทียบกันลบมันน้อยกว่าหารเพราะฉะนั้นต้องเอาหารออกมาคราวนี้นะคะดูด้วยกัน3เอา3ไปไว้ที่ไหนคะที่Outputเห็นไหมคะเอา3ไปไว้ที่Outputเครื่องหมายหารเอาเครื่องหมายหารไปไว้ที่ไหนสStac(แตก)kเพราะมันเป็นS(ส)แตtac(ก)kว่างเราก็หย่อนเครื่องหมายหารได้เลยOutputเรายกมันลงมาด้วยนะถัดไปเราอ่านเจอเลข1ใช่ไหมคะเลขรา(1)ต้องเอาเลข1ไปไว้ที่ไหนOutputเอาของเดิมยกลงมาก่อนเสร็จแล้วก็เติมเลข1ลงไปในสSt(แ)ตac(ก)kยังเหมือนเดิมนะเรายังมีเครื่องหมายหารอยู่เราก็ยกลงมาได้เลยถัดมาเครื่องหมายลบใช่ไหมคะเดิมในสแStac(ตก)kเรามีหารอยู่แล้วใช่ไหมครูเขียนให้ดูก่อนเรามีหารอยู่แล้วนี่เราเอาลบนี่มาเทียบกับหารปรากฎว่าค่าลบมันน้อยกว่าให้ทำอย่างไรให้เอาหารนี่เอาออกมาไว้ที่Outputเพราะฉะนั้นจะได้เป็น3,1แล้วก็หารตรงนี้หายไปใช่ไหมคะเสร็จแล้วก็ใส่ค่าลบลงมาในสแStac(ตก)kถัดมาเราหย่อนอะไร2เอาไปไว้ที่Outputยกของเดิมเรลง(า)มาก(ต)-่อนที่Outputแล้วก็ใส่เลข2ในสแStac(ตก)kเหล(ร)-ืออะไรคะเครื่องหมายลบใช่ไหมอ่านครบหมดแล้วนะแต่ในสแตกเรายังมีค่าอยู่เลยเพราะฉะนั้นเราต้องเอาค่าจากS(ส)แตtac(ก)kออกมาเป็น31หาร2แล้วอะไรคะลบเห็นไหมเราเอาค่าที่อยู๋ในสStac(แตก)kน-ี-่ะตัวสุดท้ายมาใส่ข้างหลังได้เลยนะคะโอเคอีกข้อหนึ่งแล้วจะให้เลิกครูให้โจทย์มาแค่นี้เองวาดตารางม(เ)อาใ(ง)ห้ด้วยโจทย์ข้อนี้อันดับแรกวาดตารางก่อนเลยตีตารางค่ะดูนิดหนึ่งคูณมันมากกว่าลบใช่หรือเปล่าคูณมันมีค่ามากกว่าลบเพราะฉะนั้นทำอย่าะ(ง)ไรก็Pushคูณนี่ลงS(ส)แตtac(ก)kได้เลยนะคะPushคูณลงในS(ส)แตtac(ก)kได้เลยโอเคมาดูนะคะ6เป็นตัวเลขเอาไว้ที่Outputใช่หรือเปล่าลบเอาไว้ที่สSt(แ)ตac(ก)kนะคะ6ก็ใส่มาเหมือนเดิม5เอาไว้ที่ไหนคะเอาไว้ที่OutputสแStac(ตก)kก็ยกลงมาเหมือนเดิมนะคะถัดมาคูณเจอคูณใช่ไหมคะเจอคูณให้เอามาเปรียบเทียบกับตัวนี้ก่อนปรากฏว่าคูณมีค่ามากกว่าลบให้PushคูณลงสแStac(ตก)kได้เลยเพราะฉะนั้นS(ส)แตtac(ก)kเดิมเป็นลบอยู่แล้วpushครูบอกว่าPushลงมาได้เลยนะคะเพราะคูณมันมากกว่านะมันมากกว่านะคะข้างหลังคือ6กับ5ถัดมา2เป็นตัวเลขไว้ข้างหลังนะคะS(ส)แตtac(ก)kมีเท่าไรยกลงมาโอเคเสร็จแล้วหมดแล้วนะผลลัพธ์สุดท้ายที่ได้6,5,2เอาคูณออกมาก่อนแล้วตามด้วยลบนะคะเห็นนะโอเคทุกคนดูนะคะเราสังเกตนะทำไมตัวนี้เอาหารออกมาตัวนี้ไม่ได้เอาอะไรออกมานะคะตัวนี้วิธีการสังเกตโอเคลบเทียบกับหารลบมันมีค่าน้อยกว่าหารเห็นไหมคะลบมีค่าน้อยกว่าหารเลยต้องเอาหารออกมาแต่ถ้าInputที่ใส่เข้าไปนี่มีค่ามากกว่าเราก็ใส่ลงไปในสแStac(ตก)kได้เลยถ้าตัวซ้ายมันมากกว่าตัวบนตรงนี้เราก็ใส่ลงไปในสStac(แตก)kได้เลยนะคะโอเคต้องกลับไปทบทวนอีกรอบหนึ่งนะนะคะเดี๋ยวสัปดาห์เดี๋ยวหน้าครูจะทวนให้อีกรอบหนึ่งโอเคเดี๋ยวทั้งหมดนี้เดี๋ยวครูจะอัปที่Classroomให้นะคะเดี๋ยวครูจะไปสแกนให้แล้วก็อัปที่Classroomให้โอเคเดี๋ยวครูเช็กชื่อหน่อยนะคะครูเช็กชื่อหน่อยศิริลักษณ์02มาไหม02คนนี้หรือ03อดิศรเป็นCOVID4.นพกิตคนนี้5.พงษ์พรไหนอ๋อจันทกานต์ไหนคะอ๋อกัญญานัฐกัญญาณัฐธัญญาลักษณ์อ๋อโอเควริษาคนนี้ภัทรดา11ไม่มาเทพอักษ(ปส)รธนภัทร15โอเคภากรณ์16โอเคค่ะเจอกันสัปดาห์หน้า
More information
- compare(ans and test) :
- ans: file reference
- test: file test
- export datetime : 2024-01-17 17:58:14
- exported from : Accuracy Worker
- version :develop
- lib :character
- your normalize config
-IsFilter :true
-ToLower :false
-ToArabicNumber :true
-WordToNumber :true
-OrderAndSimilar :true
-ListRemove :
- alignment method :Hirschberg
- score weight :{"Match":5,"Mismatch":-1,"PartialMatch":2,"GapPenalty":-1}