﻿1
00:00:23,918 --> 00:00:27,918
(อาจารย์สุธาสินี) ทำไมเป็นอย่างนั้นล่ะ

2
00:00:27,922 --> 00:00:31,922
คราวนี้ได้ยินครูนะ คราวที่แล้ว

3
00:00:31,926 --> 00:00:35,926
นะคะ เราพูดถึงในเรื่องของ

4
00:00:35,926 --> 00:00:39,926
เหมือนล่ามไม่ได้ยินเลย อ๋อ ค่ะ

5
00:00:39,929 --> 00:00:43,929
คราวที่แล้วเราพูดถึงเรื่อง list นะ lis

6
00:00:43,930 --> 00:00:47,930
t ตัวนี้นะ แล้วเราก็ทำข้อสอบไปแล้วนะคะ

7
00:00:47,933 --> 00:00:51,933
เรื่อง list

8
00:00:59,940 --> 00:01:03,940
ได้ไหมคะ

9
00:01:07,944 --> 00:01:11,944
ได้ยินไหมคะ

10
00:01:11,948 --> 00:01:15,948
ยังไม่ได้ยิน

11
00:01:43,966 --> 00:01:47,966
คราวที่แล้วนะคะ เราพูดถึงเรื่อง List นะ ทุกคน

12
00:01:47,969 --> 00:01:51,969
จำได้นะคะ อันนี้คือ List นะคะ ที่ครูยกตัวอย่างมาให้

13
00:01:51,970 --> 00:01:55,970
List ตัวนี้มีขนาดเท่ากับเท่าไร

14
00:01:55,973 --> 00:01:59,973
มีขนาดเท่าไร ขนาด คือ

15
00:01:59,976 --> 00:02:03,976
มีจำนวนเท่าไร มี 5 คนอื่นมีเท่าไรคะ

16
00:02:03,977 --> 00:02:07,977
5 โอเค 5 นะคะ

17
00:02:07,980 --> 00:02:11,980
List ที่เราเห็นในหน้าจอตรงนี้

18
00:02:11,983 --> 00:02:15,983
จะมีอยู่ 5 ตัวถูกไหมคะ มีข้อมูลอยู่ 5 ตัว

19
00:02:15,987 --> 00:02:19,987
มี 1 มี 2 มี 3 มี 4

20
00:02:19,990 --> 00:02:23,990
แล้วก็มี 5 มีทั้งหมด 5 ตัวนะคะ คราวนี้

21
00:02:23,991 --> 00:02:27,991
เรารู้ได้อย่างไรว่ามันคือ List เห็น

22
00:02:27,995 --> 00:02:31,995
ก้ามปูเปิด-ก้ามปูปิดไหมคะ

23
00:02:31,997 --> 00:02:35,997
เป็นสัญลักษณ์ที่บอกว่าการเก็บข้อมูลลักษณะ

24
00:02:35,998 --> 00:02:39,998
แบบนี้มีชื่อเรียกว่า "List" นะคะ

25
00:02:40,003 --> 00:02:44,003
จะเก็บค่าของข้อมูล

26
00:02:44,003 --> 00:02:48,003
ใน List index

27
00:02:48,007 --> 00:02:52,007
ก็คือหมายเลขถูกไหมคะ คือ หมายเลขของข้อมูล

28
00:02:52,010 --> 00:02:56,010
เราเริ่มต้นที่หมายเลขอะไรเอ่ย

29
00:02:56,014 --> 00:03:00,014
พอเราวาดเป็นช่องใช่ไหมคะ

30
00:03:00,018 --> 00:03:04,018
ใน List นี่ ถ้าเราลองวาด

31
00:03:04,019 --> 00:03:08,019
การจัดเก็บนะ ก็จะเป็น 1

32
00:03:12,026 --> 00:03:16,026
แล้วก็จะเก็บข้อมูลลงไปในช่องแบบนี้

33
00:03:16,029 --> 00:03:20,029
นะคะ หมายเลขช่องหรือว่า

34
00:03:20,032 --> 00:03:24,032
Index ตัวแรกเราจะเริ่มต้นที่

35
00:03:24,033 --> 00:03:28,033
เท่าไรคะ ตรงนี้ index เราจะเริ่มที่เราไรเอ่ย

36
00:03:28,033 --> 00:03:32,033
0 นะ ใช่ไหมคะ

37
00:03:32,036 --> 00:03:36,036
1 2 3 แล้วก็ 4

38
00:03:36,037 --> 00:03:40,037
แล้วก็ 4 ก็คือหมายเลขช่อง นะ ถ้าเราวาดรูปให้

39
00:03:40,037 --> 00:03:44,037
เป็นรูปสี่เหลี่ยมในการจัดเก็บข้อมูล แล้วเวลาครูเข้าถึง

40
00:03:44,038 --> 00:03:48,038
ข้อมูลที่อยู่ใน List ตอนนี้

41
00:03:48,041 --> 00:03:52,041
ครูตั้งชื่อ List ตัวนี้มีชื่อว่า x

42
00:03:52,044 --> 00:03:56,044
x index 3

43
00:03:56,049 --> 00:04:00,049
ตอบเท่ากับเท่าไรเอ่ย index

44
00:04:00,052 --> 00:04:04,052
เป็น 3 ตัวนี้ตอบ 4 ใช่

45
00:04:04,052 --> 00:04:08,052
ตรงนี้ต้องตอบว่า 4 นะคะ ทุกคนจำได้นะ

46
00:04:08,055 --> 00:04:12,055
แล้วถ้า x

47
00:04:12,060 --> 00:04:16,060
เราต้องการหลาย ๆ ค่า 2 จนถึง 4

48
00:04:16,063 --> 00:04:20,063
จะตอบเท่ากับเท่าไรคะ

49
00:04:20,066 --> 00:04:24,066
3 กับ...

50
00:04:24,067 --> 00:04:28,067
3 กับอะไรเอ่ย 4 ใช่ไหม

51
00:04:28,070 --> 00:04:32,070
คือ 3 กับ 4 นะ มันเริ่มต้นที่ 2 ใช่ไหมคะ ก็คือ

52
00:04:32,072 --> 00:04:36,072
เริ่มต้นที่ตัวนี้ ก็คือเริ่มต้ด้วยตัว

53
00:04:36,073 --> 00:04:40,073
ถึง 4 แล้วก็ลดลงมา 1 ช่อง ก็จะได้ข้อมูลตัวนี้

54
00:04:40,075 --> 00:04:44,075
ก็คือ 3 กับ 4

55
00:04:44,076 --> 00:04:48,076
คราวนี้ แล้วเราเอา

56
00:04:48,078 --> 00:04:52,078
List มาทำอะไรนะคะ เราเก็บข้อมูล

57
00:04:52,081 --> 00:04:56,081
ที่อยู่ในรูปแบบ List แล้วเราเอามาใช้ทำอะไรนะคะ

58
00:04:56,085 --> 00:05:00,085
วันนี้เราจะพูดถึงโครงสร้างอีกแบบหนึ่ง

59
00:05:00,087 --> 00:05:04,087
ที่มีชื่อว่า Stack นะ

60
00:05:04,087 --> 00:05:08,087
Stack นะคะ Stack ตัวนี้

61
00:05:08,091 --> 00:05:12,091
จะใช้วิธีการเก็บข้อมูลแบบ

62
00:05:12,097 --> 00:05:16,097
List นะคะ แล้วลักษณะแบบไหน

63
00:05:16,107 --> 00:05:20,101
ที่เราจะเรียกว่า "Stack" นะคะ ดูด้วยกัน

64
00:05:20,101 --> 00:05:24,101
เขาบอกว่า Stack

65
00:05:24,101 --> 00:05:28,101
ก็คือการที่เราใส่ข้อมูลเข้าไปแล้วก็ดึงออกมา

66
00:05:28,104 --> 00:05:32,104
นะคะ แล้วข้อมูล

67
00:05:32,108 --> 00:05:36,108
ที่ถูกใส่เข้าไปใน Stack ก่อน จะถูก

68
00:05:36,110 --> 00:05:40,110
เอาออกมาใช้ทีหลัง อันนี้ คือ

69
00:05:40,115 --> 00:05:44,115
วิธีการเก็บข้อมูลแบบ Stack หรือที่เรียกสั้น ๆ ว่า

70
00:05:44,115 --> 00:05:48,115
"เข้าทีหลังออกก่อน

71
00:05:48,116 --> 00:05:52,116
เข้าก่อนออกทีหลัง" ความหมายเหมือนกัน

72
00:05:56,119 --> 00:06:00,119
ยกตัวอย่างเช่น ทุกคนเคย

73
00:06:00,122 --> 00:06:04,122
ไปที่ร้านก๋วยเตี๋ยวไหมคะ ทุกคนเคยไปที่ร้านก๋วยเตี๋ยวนะ

74
00:06:04,124 --> 00:06:08,124
แล้วเห็นถ้วยก๋วยเตี๋ยวก่อนที่เขาจะ

75
00:06:08,127 --> 00:06:12,127
เอามาใส่เส้น ใส่เครื่องปรุง ใส่หมูให้เรา

76
00:06:12,131 --> 00:06:16,131
ชามก๋วยเตี๋ยวมันเรียงขึ้นไปแบบนี้

77
00:06:16,133 --> 00:06:20,133
ใช่ไหมคะ เวลาแม่ค้าเขาจะเอาชามก๋วยเตี๋ยวมาใส่ให้เรา

78
00:06:20,136 --> 00:06:24,136
เขาเอาชามที้อยู่ก๋วยเตี๋ยวมาใส่ให้เรา เขาเอาชามที่อยู่

79
00:06:24,137 --> 00:06:28,137
ข้างบน หรือชามที่อยู่ข้างล่าง

80
00:06:28,141 --> 00:06:32,141
เอาชามข้างบนหรือข้างล่างคะ ข้างบน

81
00:06:32,141 --> 00:06:36,141
เขาเอาข้างบนมาทำให้เรา

82
00:06:36,144 --> 00:06:40,144
แล้วเวลาเขาล้างจานเสร็จแล้วนี่ เอาจาน

83
00:06:40,147 --> 00:06:44,147
มาซ้อนนี่ เขาเอามาซ้อนข้างล่างหรือซ้อนข้างบน ซ้อนข้างบน

84
00:06:44,148 --> 00:06:48,148
ใช่ไหมคะ เพราะฉะนั้น จานที่

85
00:06:48,151 --> 00:06:52,151
อยู่บนสุดจะถูกเอาออกมาใช้ก่อน

86
00:06:52,155 --> 00:06:56,155
และจากที่อยู่บนสุดนะคะ จะถูก

87
00:06:56,156 --> 00:07:00,156
เอาเข้ามาเก็บทีหลัง อันนี้คือรูปแบบ

88
00:07:00,161 --> 00:07:04,161
ของ Stack เช่นนะคะ เช่น ๆ

89
00:07:04,162 --> 00:07:08,162
สมมติ ครูมีกระดาษ 1 แผ่นนะ

90
00:07:08,165 --> 00:07:12,165
ครูมีกระดาษอยู่ 1 แผ่น ทุกคนดูนะคะ

91
00:07:12,168 --> 00:07:16,168
กระดาษแผ่นที่ 1 ครูจะใส่กระดาษแผ่นที่ 2

92
00:07:16,171 --> 00:07:20,171
เห็นไหมคะ ครูซ่อนกระดาษแผ่นที่ 2 อยู่ข้างบน

93
00:07:20,176 --> 00:07:24,176
นะ ครูใส่ ครูใส่กระดาษ

94
00:07:24,177 --> 00:07:28,177
แผ่นที่ 3 เข้าไปนะคะ แล้วครูก็ใส่

95
00:07:28,180 --> 00:07:32,180
กระดาษแผ่นที่ 4 เข้าไปในมือครู เวลา

96
00:07:32,184 --> 00:07:36,184
ครูจะเอาออกมาใช้ ครูจะเอาตัวล่างสุด หรือตัวบนสุดออกมาใช้

97
00:07:36,186 --> 00:07:40,186
ตัวบนสุดถูกไหมคะ

98
00:07:40,189 --> 00:07:44,189
ครูไม่พยายามจะดึงตัวล่างสุดออกมานะคะ แต่ครูจะหยิบตัวบน

99
00:07:44,189 --> 00:07:48,189
สุดออกไปใช้ ซึ่งตัวบนสุดนี่

100
00:07:48,194 --> 00:07:52,194
คือ กระดาษแผ่นที่เราใส่ไปล่าสุดนะคะ

101
00:07:52,197 --> 00:07:56,197

102
00:07:56,200 --> 00:08:00,200
เราสามารถสรุปได้แบบนี้นะ ข้อมูลที่อยู่ใน Stack

103
00:08:00,204 --> 00:08:04,204
ตัวแรกจะอยู่ด้านล่างสุด

104
00:08:04,204 --> 00:08:08,204
ข้อมูลที่หย่อนลงไปใน Stack ตัวแรกจะอยู่ด้านล่างสุดเลย

105
00:08:08,206 --> 00:08:12,206
นะคะ ตัวถัดไปก็จะซ้อนขึ้นมา

106
00:08:12,209 --> 00:08:16,209
เรื่อย ๆ ข้อมูลที่

107
00:08:16,211 --> 00:08:20,210
เข้าไปใน Stack เป็นตัวสุดท้าย

108
00:08:20,210 --> 00:08:24,210
จะอยู่บนสุด นะคะ จะอยู่บนสุด แล้วเวลา

109
00:08:24,211 --> 00:08:28,211
เราเอาข้อมูลใน Stack ออกมาใช้งาน

110
00:08:28,212 --> 00:08:32,212
ข้อมูลที่เข้าไปเป็นตัวล่าสุด

111
00:08:32,215 --> 00:08:36,215
หรือตัวลำดับสุดท้าย จะถูก

112
00:08:36,219 --> 00:08:40,219
ดึงออกมาใช้งานก่อน ตัวไหน

113
00:08:40,220 --> 00:08:44,220
ที่เข้าไปตัวแรกจะถูกเอามาใช้งาน

114
00:08:44,220 --> 00:08:48,220
เป็นตัวสุดท้ายนะคะ เพราะมันอยู่ล่างสุด

115
00:08:48,223 --> 00:08:52,223
เวลาดึงออกมาใช้มันก็ใช้ยาก เราต้องใช้ตัวบน ค่อย ๆ ดึงตัวบน

116
00:08:52,225 --> 00:08:56,225
ออกไปก่อน

117
00:08:56,227 --> 00:09:00,227
คราวนี้เวลาเราเอาข้อมูลใส่ใน Stack

118
00:09:00,230 --> 00:09:04,230
เราพูดถึง Stack ก็เหมือนภาชนะนะ ตอนนี้ทุกคนมอง Stack

119
00:09:04,230 --> 00:09:08,230
เป็นช่องแบบนี้ เป็นช่องสี่เหลี่ย

120
00:09:08,233 --> 00:09:12,233
ม เป็นช่องในแนวตั้ง ถ้าเราพูดถึง Stack นะ

121
00:09:12,236 --> 00:09:16,236
ดูรูปนี้ก่อน อย่างนี้ มันจะอยู่ในแนวนอนหรือแนวตั้งก็ได้

122
00:09:16,238 --> 00:09:20,238
ตอนนี้ครูให้มองเป็นภาพในแนวนอนหรือแนวตั้งก็ได้

123
00:09:20,240 --> 00:09:24,240
ถ้าพูดถึง Stack ก็คือเป็นชั้น ๆ

124
00:09:24,240 --> 00:09:28,240
เลื่อนขึ้นไปเรื่อย ๆ นะคะ ใน Stack

125
00:09:28,244 --> 00:09:32,244
เราทำอะไรได้บ้าง เราใส่ข้อมูลลงไป

126
00:09:32,246 --> 00:09:36,246
เราดึงข้อมูลออกมา คราวนี้

127
00:09:36,249 --> 00:09:40,249
Stack ถ้ามันไม่มีข้อมูลอะไรเลย

128
00:09:40,250 --> 00:09:44,250
เราเรียกว่า "Stack ว่าง" คือ มันมีค่าว่าง ๆ

129
00:09:44,250 --> 00:09:48,250
ไม่มีตัวเลข ไม่มีตัวอักษรอะไรเลยนะ อันนี้

130
00:09:48,251 --> 00:09:52,251
คือ Stack ว่าง

131
00:09:52,254 --> 00:09:56,254
ถ้าเราจะใส่ข้อมูลลงไปใน Stack

132
00:09:56,257 --> 00:10:00,257
เราจะมีคำสั่งที่ชื่อว่า Push

133
00:10:00,260 --> 00:10:04,260
คือ คำสั่งตัวนี้นะคะ

134
00:10:04,261 --> 00:10:08,261
คำสั่ง Push ก็คือใส่

135
00:10:08,265 --> 00:10:12,265
ข้อมูลลงไปใน Stack ถ้าต้องการเอา

136
00:10:12,267 --> 00:10:16,267
ข้อมูลออกจาก Stack เราใช้คำสั่ง Pop นะคะ

137
00:10:16,270 --> 00:10:20,270
มีอยู่ 2 ตัวที่ทุกคนต้องรู้จัก

138
00:10:20,271 --> 00:10:24,271
เมื่อพูดถึง Stack คือ Push กับ Pop

139
00:10:24,272 --> 00:10:28,272
Push คือ ใส่ ถูกไหมเอ

140
00:10:28,275 --> 00:10:32,275
าข้อมูลเข้าไปเก็บ ส่วน Pop ก็คือเอาออกนะคะ Pop คือ เอาออก

141
00:10:36,280 --> 00:10:40,280
คราวนี้มาดูตัวอย่างนะคะ มีแต่ Push กับ Pop

142
00:10:40,282 --> 00:10:44,282
2 ตัว เราเริ่มต้น Stack ไม่มีอะไรเลย

143
00:10:44,283 --> 00:10:48,283
เป็นค่าว่าง ๆ ถูกไหมคะ เป็น Stack ว่าง

144
00:10:48,286 --> 00:10:52,286
ครูบอกว่าครู Push

145
00:10:52,290 --> 00:10:56,290
เห็นไหมคะ คำสั่ง Push Push ค่าอะไร Push ค่า a เมื่อไรก็ตาม

146
00:10:56,293 --> 00:11:00,293
ที่ใช้คำสั่ง Push ต้องบอก

147
00:11:00,296 --> 00:11:04,296
ด้วยว่าจะใส่ค่าอะไรด้วยนะคะ

148
00:11:04,297 --> 00:11:08,297
เรา Push ค่า a ลงไป

149
00:11:08,299 --> 00:11:12,299
เห็นไหม มันก็อยู่ด้านล่างสุดนะคะ ถัดมา

150
00:11:12,301 --> 00:11:16,301
ถ้าครูใส่คำสั่ง

151
00:11:16,305 --> 00:11:20,305
ตัวบนก่อน Push b ก็ใส่ b ลงมาเห็นไหมคะ

152
00:11:20,308 --> 00:11:24,308
ถัดจาก a ก็คือ b Push c

153
00:11:24,308 --> 00:11:28,308
c ก็อยู่ถัดขึ้นไป และ Push d d จะอยู่

154
00:11:28,312 --> 00:11:32,312
บนสุดนะคะ เรียงตรามลำดับของการ

155
00:11:32,314 --> 00:11:36,314
ใส่ข้อมูลเข้าไป

156
00:11:36,318 --> 00:11:40,318
คราวนี้อยากจะเอาออกบ้าง

157
00:11:40,318 --> 00:11:44,318
เอาข้อมูลออกจาก Stack ไปใช้งาน จะใช้คำสั่ง Pop

158
00:11:44,319 --> 00:11:48,319
Pop นะ Pop

159
00:11:48,322 --> 00:11:52,322
แล้วตามด้วยวงเล็บเปิดและวงเล็บปิด ไม่ต้องใส่ค่าอะไร

160
00:11:52,323 --> 00:11:56,323
เพราะเราจะไปดึงค่าที่อยู่ใน Stack ออกมา

161
00:12:00,330 --> 00:12:04,329
เราสั่งคำสั่ง Pop เราเอาข้อมูล

162
00:12:04,329 --> 00:12:08,329
บนสุดนะคะ Pop ให้เอาข้อมูลบนสุด

163
00:12:08,330 --> 00:12:12,330
ที่อยู่ใน Stack ดึงออกมา

164
00:12:12,333 --> 00:12:16,333
เพราะฉะนั้น เดิมเป็นแบบนี้ ถูกไหม

165
00:12:16,336 --> 00:12:20,336
ครูใช้คำสั่ง Pop อะไรออกมาเอ่ย

166
00:12:20,341 --> 00:12:24,341
ตัว D Dog จะออกมา เพราะ D Dog

167
00:12:24,342 --> 00:12:28,342
อยู่บนสุดนะคะ

168
00:12:28,342 --> 00:12:32,342
ถัดมา

169
00:12:32,346 --> 00:12:36,346
ครู Push Push คือใส่เข้าไป

170
00:12:36,350 --> 00:12:40,350
ไม่มี D Dog แล้วนะ ครู Push e เห็นไหมคะ เวลา Push

171
00:12:40,353 --> 00:12:44,353
ต้องบอกด้วยว่าเราใส่ค่าอะไร

172
00:12:44,356 --> 00:12:48,355
วงเล็บเปิดแล้วก็ใส่ตัว e วงเล็บปิด ครู Push ค่า e ลงไป

173
00:12:48,355 --> 00:12:52,355
e จะอยู่ด้านบน c เสร็จแล้ว Push

174
00:12:52,359 --> 00:12:56,359
อีกครั้งหนึ่ง f ก็จะอยู่บนสุดนะคะ

175
00:12:56,362 --> 00:13:00,362
ถัดมาครู Pop

176
00:13:00,365 --> 00:13:04,365
Pop คือ เอาออก เอาอะไรออก ข้างบนสุดคืออะไร คะ

177
00:13:04,367 --> 00:13:08,367
เอา F ออก เพราะฉะนั้น  ข้อมูล

178
00:13:08,369 --> 00:13:12,369
จะเหลืออยู่ 4 ตัว ก็คือ a, b, c แล้วก็ e

179
00:13:16,376 --> 00:13:20,376
โอเค ถัดมา

180
00:13:20,379 --> 00:13:24,379
เราแทน Stack ด้วยอะไร

181
00:13:24,380 --> 00:13:28,380
นะคะ อย่างที่ครูบอกว่า

182
00:13:28,383 --> 00:13:32,383
List จะถูกเอามาใช้แทนนะคะ การเก็บข้อมูล

183
00:13:32,387 --> 00:13:36,387
ใน Stack เราพูดถึง Stack แล้วมันจัดเก็บแบบไหน เราก็ใช้ List

184
00:13:36,390 --> 00:13:40,390
นั่นล่ะในการเก็บข้อมูล

185
00:13:40,391 --> 00:13:44,391
List นะคะ เราสามารถวาดเป็นแนวตั้งหรือแนวนอน

186
00:13:44,392 --> 00:13:48,392
ก็ได้นะ สามารถวาดเป็นแนวนอน

187
00:13:48,395 --> 00:13:52,395
หรือแนวนอนก็ได้ ข้อมูลที่ใส่เข้ามาตัวแรกนะคะ

188
00:13:52,398 --> 00:13:56,398
จะอยู่ที่ index 0 ก็คือข้อมูลตัวแรก

189
00:13:56,402 --> 00:14:00,402
ไล่ไปเรื่อย ๆ จนถึงข้อมูลตัวสุดท้าย

190
00:14:04,406 --> 00:14:08,406
Stack ที่ครูให้มานี่ ที่เก็บอยู่

191
00:14:08,408 --> 00:14:12,408
ในรูปแบบที่เป็น List นี่

192
00:14:12,411 --> 00:14:16,411
มันมีช่องว่างไหมคะ มันมีที่ว่างให้ใส่ได้อีกไหม Stack รูปนี้

193
00:14:16,414 --> 00:14:20,414
มีอยู่ 4 ช่องด้วยกัน ทุกช่องมีค่าไหมคะ

194
00:14:20,418 --> 00:14:24,418
ทุกช่องมีค่านะ

195
00:14:24,418 --> 00:14:28,418
มันเต็มหรือยังคะ

196
00:14:28,422 --> 00:14:32,422
มันมีที่ว่างให้ใส่อีกไหมคะ มันมีที่ว่างให้ใส่อีกไหมคะ ไม่มีแล้ว

197
00:14:32,422 --> 00:14:36,422
อย่างนี้เรียกว่า "Stack เต็มแล้ว

198
00:14:36,426 --> 00:14:40,426
" นะคะ คือ ไม่มีช่องว่างให้เราใส่ข้อมูลตัวใหม่ได้แล้ว

199
00:14:40,429 --> 00:14:44,429
นะคะ แบบนี้เรียกว่า "Stack มันเต็มแล้ว"

200
00:14:52,436 --> 00:14:56,436
คราวนี้ เรามี 2 คำสั่ง

201
00:14:56,440 --> 00:15:00,440
ที่พูดถึงนะ Push กับ Pop

202
00:15:00,441 --> 00:15:04,441
นะคะ Push ก็คือใส่ข้อมูลลงไปใน Stack

203
00:15:04,442 --> 00:15:08,442
เช่น ครูมี Stack

204
00:15:08,445 --> 00:15:12,445
อย่างนี้ใช่ไหม มันมีที่ว่างให้ครูใส่ข้อมูลได้ไหมคะ มีนะ มันมี

205
00:15:12,446 --> 00:15:16,446
ที่ว่างให้ครูใส่ข้อมูลได้นะคะ ครู

206
00:15:16,450 --> 00:15:20,450
ก็เลยสั่งคำสั่ง Push 3 ก็คือเอาข้อมูล 3 นี่

207
00:15:20,453 --> 00:15:24,453
ไปหย่อนลงใน Stack มันจะเอามาใส่ช่องนี ้

208
00:15:24,453 --> 00:15:28,453
ช่องที่ 1 หรือช่องที่ 2 คะ ช่องที่ 1

209
00:15:28,457 --> 00:15:32,457
ถูกไหม ก็ไล่ลำดับมาเรื่อย ๆ

210
00:15:32,460 --> 00:15:36,460
มันอยู่ช่องนี้แล้ว ข้อมูลล่าสุดอยู่ช่องนี้

211
00:15:36,460 --> 00:15:40,460
เพราะฉะนั้น เราหย่อนลงไป มันก็ไหลลงไปจนถึงตัวสุดท้าย

212
00:15:40,463 --> 00:15:44,463
ที่มันสามารถจะใส่ได้ ก็คือในช่องตรงนี้ ก็จะเอา 3

213
00:15:44,464 --> 00:15:48,464
มาใส่

214
00:15:48,466 --> 00:15:52,466
แล้วเราใส่ด้วยคำสั่งอะไร

215
00:15:52,469 --> 00:15:56,469
เราใช้ List นะคะ

216
00:15:56,472 --> 00:16:00,472
ในการจัดเก็บข้อมูล เราใช้ List ในการจัดเก็บข้อมูล

217
00:16:00,476 --> 00:16:04,476
เพราะฉะนั้น คำสั่งของการ

218
00:16:04,476 --> 00:16:08,476
เพิ่มข้อมูลลงไปใน Stack ก็คือใช้คำสั่ง

219
00:16:08,480 --> 00:16:12,480
Append ได้เลย เพราะ Append

220
00:16:12,482 --> 00:16:16,482
เป็นคำสั่งของการเพิ่มข้อมูลลงไป

221
00:16:16,483 --> 00:16:20,483
ในลิสต์นะคะ ใส่ชื่อ .

222
00:16:20,486 --> 00:16:24,486
แล้วตามด้วยคำสั่ง Append

223
00:16:24,487 --> 00:16:28,487
วงเล็บเปิดใส่ค่าข้อมูลตัวใหม่แล้วก็วงเล็บปิด

224
00:16:28,491 --> 00:16:32,491
ถัดมา

225
00:16:32,491 --> 00:16:36,491
Pop

226
00:16:36,495 --> 00:16:40,495
คือ เอาออกนะคะ คือ Pop คือ เอาออก

227
00:16:40,498 --> 00:16:44,498
ก่อนที่เราจะเอาข้อมูลออก

228
00:16:44,499 --> 00:16:48,499
นี่เราต้องเช็กก่อนว่า Stack เรา

229
00:16:48,499 --> 00:16:52,499
นี่มีข้อมูลอยู่ไหม ถ้า Stack

230
00:16:52,504 --> 00:16:56,504
มันไม่มีข้อมูลอยู่เลยเราจะเอาอะไรออกมาได้ไหม ไม่ได้

231
00:16:56,506 --> 00:17:00,506
นะคะ เพราะมันไม่มีข้อมูลอะไรให้เราดึงออกมา

232
00:17:00,509 --> 00:17:04,509
เพราะฉะนั้น อันดับแรกนี่ เราต้องเช็กก่อน

233
00:17:04,510 --> 00:17:08,510
มันมีข้อมูลอยู่ไหมนะคะ มันมีข้อมูลอยู่ไหม

234
00:17:08,513 --> 00:17:12,513
ถ้ามันไม่มีข้อมูลอยู่เลย เราจะบอกว่า

235
00:17:12,516 --> 00:17:16,516
มันคือ Stack ว่าง เราจะไม่สามารถทำคำสั่ง Pop

236
00:17:16,519 --> 00:17:20,519
ได้นะคะ แต่ถ้า

237
00:17:20,523 --> 00:17:24,523
Stack ไม่ว่าง เช่น

238
00:17:24,524 --> 00:17:28,524
ในบรรทัดแถวที่ 2 Stack ไม่ว่างนะ มันมีข้อมูลอยู่ตั้ง 3 ตัว

239
00:17:28,528 --> 00:17:32,528
เราใช้คำสั่ง Pop

240
00:17:32,530 --> 00:17:36,530
ข้อมูลอะไรจะถูกดึงออกมา มีอยู่ 3 ค่านี่

241
00:17:36,533 --> 00:17:40,533
ข้อมูลที่จะเอาออกมาจาก Stack

242
00:17:40,534 --> 00:17:44,534
ก็คือข้อมูลค่าอะไรเอ่ย

243
00:17:44,534 --> 00:17:48,534
อะไรคะ อะไรคะ 1 หรือ 2

244
00:17:48,537 --> 00:17:52,537
หรือ 3 3 ใช่ไหม

245
00:17:52,541 --> 00:17:56,541
เอาตัวที่อยู่บนสุด

246
00:17:56,543 --> 00:18:00,543
ตัวล่าสุดน่ะ ตัวล่าสุดถูกไหมคะ ถ้าอยู่ในแนวนอนตัวล่าสุดจะอยู่

247
00:18:00,546 --> 00:18:04,546
ด้านขวา

248
00:18:04,546 --> 00:18:08,546
ถ้าเป็นแนวตั้งตัวล่าสุดจะอยู่ข้างบนใช่ไหมคะ

249
00:18:08,546 --> 00:18:12,546
ก็คือเลข 3 จะถูก

250
00:18:12,550 --> 00:18:16,550
ดึงออกมานะคะ หลังจากที่เราใช้คำสั่ง Pop

251
00:18:20,553 --> 00:18:24,553
โอเค

252
00:18:24,554 --> 00:18:28,554
ถัดมาตัวนี้จะเป็นคำสั่ง

253
00:18:28,555 --> 00:18:32,555
ที่เราใช้เขียน เช่น

254
00:18:32,558 --> 00:18:36,558
เราจะเช็กว่า Stack นั้นเป็น Stack ว่าง

255
00:18:36,562 --> 00:18:40,562
หรือเปล่า เราก็ดูขนาดของ Stack ใช่ไหมคะ

256
00:18:40,565 --> 00:18:44,565
หาขนาดของ Stack ว่ามันมีขนาด

257
00:18:44,565 --> 00:18:48,565
เท่าไร ถ้าขนาดมันมีค่าเป็น 0

258
00:18:48,567 --> 00:18:52,567
แสดงว่ามันเป็น Stack ว่าง คือ ไม่มีข้อมูลอยู่เลย

259
00:18:52,570 --> 00:18:56,570
ก็ไม่ต้องทำอะไรใช่ไหมคะ แต่ถ้า

260
00:18:56,570 --> 00:19:00,570
มันไม่ใช่ Stack ว่าง เราก็

261
00:19:00,573 --> 00:19:04,573
จะดึงค่าที่อยู่บนสุดออกมา

262
00:19:04,573 --> 00:19:08,573
คราวนี้

263
00:19:08,577 --> 00:19:12,577
อันนี้จะเป็นโค้ด เป็นโปรแกรมที่เราจะเขียนทั้งหมด

264
00:19:12,580 --> 00:19:16,580
เดี๋ยวครูบอกอีกทีข้างหลัง

265
00:19:16,583 --> 00:19:20,583
นะคะ สมมติว่า

266
00:19:32,588 --> 00:19:36,588
ครูอยาก...

267
00:20:32,620 --> 00:20:36,620
คราวนี้ดูนะคะ

268
00:20:36,624 --> 00:20:40,624
ครูมี Stack มาให้ Stack ครูมีกี่ช่องคะ

269
00:20:40,627 --> 00:20:44,627
มี 4 ช่องในแนวตั้งถูกไหม

270
00:20:44,628 --> 00:20:48,628
เป็น Stack ในแนวตั้ง มี 4 ช่องนะคะ

271
00:20:48,628 --> 00:20:52,628
ตัวแรก ตัวแรกน่ะจะอยู่

272
00:20:52,633 --> 00:20:56,633
ด้านฐาน จะอยู่ด้านล่างสุดนะ เวลาเราหย่อนข้อมูลลงไป ตัวแรก

273
00:20:56,635 --> 00:21:00,635
จะลงมาอยู่ช่องล่างสุดแล้วค่อยขยับไปช่องถัดไป ถัดไป

274
00:21:00,639 --> 00:21:04,639
นะคะ จะซ้อนขึ้นไปข้างบนนะ ถ้าเป็น Stack ในแนวตั้ง

275
00:21:04,639 --> 00:21:08,639
คำสั่ง

276
00:21:08,642 --> 00:21:12,642
อย่างที่บอกเรามีแค่ 2 คำสั่งนะ มีแค่ Push กับ Pop

277
00:21:12,646 --> 00:21:16,646
ใช่ไหมคะ Push

278
00:21:16,649 --> 00:21:20,649
ใส่ข้อมูล

279
00:21:20,652 --> 00:21:24,652
กับ Pop

280
00:21:24,652 --> 00:21:28,652
เอาข้อมูลออก คือ ใส่กับเอาออก

281
00:21:28,652 --> 00:21:32,652
นะคะ คราวนี้ดู

282
00:21:32,656 --> 00:21:36,656
Push 5 เห็นไหมคะ ครูใส่หมายเลขช่องก่อนนะ

283
00:21:36,657 --> 00:21:40,657
อันนี้เป็นหมายเลข 1, 0, 1, 2, 3

284
00:21:40,661 --> 00:21:44,661
นะ เราจะได้เข้าใจตรงกัน โอเค

285
00:21:44,662 --> 00:21:48,662
นะคะ มีหลายเลขช่องแล้วนะ เริ่มที่ 0 1 2 3

286
00:21:48,665 --> 00:21:52,665
ครูสั่ง Push 5 5 จะ

287
00:21:52,665 --> 00:21:56,665
ไปอยู่ที่ช่องไหนคะ ช่องไหนเอ่ย

288
00:21:56,669 --> 00:22:00,669
ช่องหมายเลขอะไร ครูหย่อน 5

289
00:22:00,672 --> 00:22:04,672
ลงไปมันก็จะไหลลงมา มันอยู่ที่ช่องไหนคะ

290
00:22:04,673 --> 00:22:08,673
ช่อง 0 เห็นไหม พอครูหย่อน 5 ลงมา

291
00:22:08,676 --> 00:22:12,676
มันก็ไหลลงมาเรื่อย ๆ นะคะ จนมาอยู่ที่

292
00:22:12,678 --> 00:22:16,678
ช่อง 0 เสร็จแล้วครูสั่งคำสั่ง Push

293
00:22:16,681 --> 00:22:20,681
10 เดิมมันมี 5 อยู่แล้วนะ

294
00:22:20,684 --> 00:22:24,684
แล้วครูสั่ง Push 10 เพราะฉะนั้น 10 จะมาอยู่ที่ไหนคะ

295
00:22:24,685 --> 00:22:28,685
10 จะมาอยู่ที่

296
00:22:28,686 --> 00:22:32,686
1 ถูกไหมคะ ก็หย่อน 10 ลงมานะ

297
00:22:32,686 --> 00:22:36,686
ถัดมา เดิม

298
00:22:36,689 --> 00:22:40,689
เดิม มี 5 กับ 10 แล้ว ครูเขียนเรียบร้อยก่อน

299
00:22:40,690 --> 00:22:44,690
นะคะ ใส่ที่ช่อง 0 กับช่อง 1 ครู

300
00:22:44,690 --> 00:22:48,690
สั่ง Push 15 ไปอยู่ที่ช่องไหนคะ 2 ใช่ไหม

301
00:22:48,695 --> 00:22:52,695
พอ Push ข้อมูลลงไป

302
00:22:52,698 --> 00:22:56,698
คราวนี้จากรูปนี้ครูสั่ง Pop

303
00:22:56,702 --> 00:23:00,702
เอาอะไรออกมา

304
00:23:00,705 --> 00:23:04,705
จากรูปนี้พอครูสั่ง Pop ปุ๊บ เอาอะไรออกมาคะ

305
00:23:04,705 --> 00:23:08,705
เอาอะไรออกมาเอ่ย

306
00:23:08,708 --> 00:23:12,708
15 ใช่ไหม เอาตัวบนสุด

307
00:23:12,711 --> 00:23:16,711
เลือก

308
00:23:16,714 --> 00:23:20,714
เราเลือก

309
00:23:20,718 --> 00:23:24,718
ตัวบนสุดออกมาใช่ไหมคะ

310
00:23:24,718 --> 00:23:28,718
เพราะฉะนั้น 15 จะถูกดึง

311
00:23:28,718 --> 00:23:32,718
ออกมาข้างนอกเห็นไหมคะ

312
00:23:32,723 --> 00:23:36,723
เพราะฉะนั้น ใน Stack จะเหลือแค่ 10 กับ 5

313
00:23:36,725 --> 00:23:40,725
ครูสั่ง Pop อีกทีหนึ่ง

314
00:23:40,727 --> 00:23:44,727
เอาอะไรออกมาคะ เดิม

315
00:23:44,727 --> 00:23:48,727
มี 5 กับ 10

316
00:23:48,730 --> 00:23:52,730
คราวนี้เอาอะไรออกมา ครูสั่ง Pop ปุ๊บ อะไรออกมาคะ

317
00:23:52,733 --> 00:23:56,733
10 ออกมาเห็นไหม 10 ไม่เหลือแล้ว

318
00:23:56,736 --> 00:24:00,736
เพราะฉะนั้น ตอนนี้ ใน Stack เราเหลือกี่ค่าคะ

319
00:24:00,737 --> 00:24:04,737
ค่าเดียว คือ เลข 5

320
00:24:04,737 --> 00:24:08,737
จดตัวนี้ไว้ในกระดาษให้ครูหน่อย

321
00:24:12,741 --> 00:24:16,741
เดี๋ยวครูจะให้ทำแบบฝึกหัด

322
00:24:16,743 --> 00:24:20,743
นะคะ

323
00:25:20,792 --> 00:25:24,792
มีกระดาษไหมคะ มีใครไม่มีกระดาษไหม

324
00:25:24,793 --> 00:25:28,793
ครูมีกระดาษมาแจก มีไหมคะ

325
00:25:28,798 --> 00:25:32,798
มันจะมีเส้น

326
00:30:36,990 --> 00:30:40,990
คราวนี้นะคะ ครูมีโจทย์มาให้ แล้วก็มี

327
00:30:40,990 --> 00:30:44,990
คำสั่งมาให้

328
00:30:44,991 --> 00:30:48,991
ทำเหมือนเดิมเลยใช่ไหมคะ แต่ครูมีตัว

329
00:30:48,994 --> 00:30:52,994
เริ่มต้นให้ ครูมีให้อยู่แล้ว อยู่ใน Stack

330
00:30:52,997 --> 00:30:56,997
คือ 5 ใช่ไหมคะ อันแรกเราหย่อน

331
00:30:57,001 --> 00:31:01,001
เลข 2 ลงไป อันที่ 2 เขียนของเดิมก่อน

332
00:31:01,005 --> 00:31:05,005
ใช่ไหมคะ แล้วค่อยหย่อนเลข 7 ลงไป

333
00:31:05,005 --> 00:31:09,005
ถัดมาหย่อนเลข 1 Pop

334
00:31:09,008 --> 00:31:13,008
คือ เอาออกนะ เอาออกแล้วบอกครูด้วยว่า

335
00:31:13,011 --> 00:31:17,011
ข้อมูล

336
00:31:17,014 --> 00:31:21,014
ที่เอาออกมา

337
00:31:21,018 --> 00:31:25,018
คืออะไร เสร็จแล้ว

338
00:31:25,018 --> 00:31:29,018
ก็มีคำสั่งตัวสุดท้าย ก็คือ Push เลข 7 ลงไป

339
00:31:33,025 --> 00:31:37,025
ลองทำดูนะคะ

340
00:31:41,031 --> 00:31:45,031
เพราะฉะนั้น แต่ละข้อ

341
00:31:45,032 --> 00:31:49,032
มันจะต่อเนื่องกันไปนะคะ

342
00:31:49,036 --> 00:31:53,036
ทำตัวแรก ข้อที่ 1 เสร็จ เอาข้อมูลนี่

343
00:31:53,040 --> 00:31:57,040
มาตั้งต้นไว้ก่อน แล้วเราค่อย Push

344
00:31:57,043 --> 00:32:01,043
เลข 7 ลงไป เดี๋ยวเราทำด้วยกัน 1 ข้อนะ

345
00:32:01,046 --> 00:32:05,046
อันนี้คือ Push เลข 2 หย่อนเลข 2

346
00:32:05,047 --> 00:32:09,047
ลงไป

347
00:32:13,050 --> 00:32:17,050
ข้อที่ 2 ครูจะใส่เลข 7 เพราะฉะนั้น ครู

348
00:32:17,050 --> 00:32:21,050
ต้องใส่ข้อมูลเดิมก่อน

349
00:32:21,054 --> 00:32:25,054
นะคะ และก็หย่อนเลข 7 ลงไป ทำต่อให้ครูหน่อย

350
00:32:25,057 --> 00:32:29,057
อีก 3 อัน

351
00:40:33,380 --> 00:40:37,380
คราวนี้เดี๋ยวเรามาดู

352
00:40:45,386 --> 00:40:49,386
เฉลยพร้อมกันนะคะ ข้อ 3 นะคะ ครูสั่ง Push 1 ก็คือใส่เลข 1 ลง

353
00:40:49,390 --> 00:40:53,390
ใน Stack เดิม

354
00:40:53,391 --> 00:40:57,391
เอาของเดิมยกมาก่อนนะ อย่าเพิ่งใส่นะ คะ ของเดิม

355
00:40:57,393 --> 00:41:01,393
มี 3 ค่านะ เขียนก่อนนะคะ

356
00:41:01,396 --> 00:41:05,396
เขียนค่าเดิมก่อน ใส่ค่าเดิมมาก่อน

357
00:41:05,397 --> 00:41:09,397
นะคะ เสร็จแล้วครูสั่ง Push 1

358
00:41:09,398 --> 00:41:13,398
1 จะอยู่ด้านบนเลข 7

359
00:41:13,402 --> 00:41:17,402
ใช่ไหมคะ

360
00:41:17,405 --> 00:41:21,405
จากนั้นครูสั่ง Pop Pop คือ เอาออก

361
00:41:21,409 --> 00:41:25,409
บนสุดคืออะไร คือ 1 ใช่ไหมคะ เพราะฉะนั้น

362
00:41:25,410 --> 00:41:29,410
เอาอะไรออก เอา 1 ออก เพราะฉะนั้น ที่เหลือ

363
00:41:29,413 --> 00:41:33,413
ก็คือ 5, 2, 7 ใช่ไหมคะ 1

364
00:41:33,417 --> 00:41:37,417
จะถูกเอาออกมาใช่ไหม เพราะฉะนั้น ข้อมูล

365
00:41:37,419 --> 00:41:41,419
ที่นำออกจาก Stack ก็คือ 1

366
00:41:41,424 --> 00:41:45,424
นะคะ

367
00:41:45,424 --> 00:41:49,424
ครูสั่ง Push อีกครั้งหนึ่ง ทำอย่างไร

368
00:41:49,428 --> 00:41:53,428
ก็เอาของเดิมที่มีอยู่ใน Stack เขียนก่อน

369
00:41:53,430 --> 00:41:57,430
เพราะฉะนั้น กรณีที่ Push ข้อม

370
00:41:57,434 --> 00:42:01,434
ูลลงไปใน Stack ยกของเดิมมาก่อน

371
00:42:01,435 --> 00:42:05,435
เสร็จแล้ว

372
00:42:05,435 --> 00:42:09,435
ใส่ตัวเลขที่ครูสั่งลงไป ก็คือ 7 7

373
00:42:09,437 --> 00:42:13,437
ก็จะอยู่ด้านบนนะคะ อันนี้คือ

374
00:42:13,440 --> 00:42:17,440
Stack ที่ได้หลังจากที่เราใช้

375
00:42:17,442 --> 00:42:21,442
คำสั่งทั้งหมด 5 คำสั่ง

376
00:42:25,444 --> 00:42:29,444
โอเค

377
00:42:33,451 --> 00:42:37,451
ถัดมาครูเปลี่ยนได้ไหม จากแนวตั้ง

378
00:42:37,454 --> 00:42:41,454
เป็นแนวนอนนะคะ ถ้าครูลองเปลี่ยน Stack เป็นแนวนอน

379
00:42:41,454 --> 00:42:45,454
บ้าง

380
00:43:17,470 --> 00:43:21,470
คราวนี้ครูลองเปลี่ยน Stack เป็นอีกรูปแบบหนึ่ง

381
00:43:21,473 --> 00:43:25,473
เป็นแนวนอนบ้างนะคะ

382
00:43:25,474 --> 00:43:29,474
และครูมีตัวเลข

383
00:43:29,480 --> 00:43:33,478
ที่อยู่ใน Stack ไว้ให้ คือ 3

384
00:43:33,478 --> 00:43:37,478
แล้วก็ 1 ถูกไหม ตัวแรกจะอยู่ซ้ายสุดใช่ไหมคะ

385
00:43:37,482 --> 00:43:41,482
ถัดมาก็จะเป็นตัวที่ 2

386
00:43:41,485 --> 00:43:45,485
แล้วครูใช้คำสั่ง Push 5 ข้อที่ 2

387
00:43:45,486 --> 00:43:49,486
ครู Push 6 เสร็จแล้ว

388
00:43:49,490 --> 00:43:53,490
ครู Pop นะคะ ลองทำสิ

389
00:49:53,730 --> 00:49:57,730
คราวนี้นะคะ

390
00:49:57,733 --> 00:50:01,733
มาดูเฉลยด้วยกัน

391
00:50:01,736 --> 00:50:05,736
ครูสั่ง Push 5 แสดงว่า

392
00:50:05,737 --> 00:50:09,737
ครูกำลังจะใส่ข้อมูลลงใน Stack

393
00:50:09,737 --> 00:50:13,737
คือ เลข 5 นะคะ ครูก็เอาเลข 5 มาหย่อนลงเลยนะ

394
00:50:13,740 --> 00:50:17,740
เอาเลข 5 มาหย่อนเลยนะคะ

395
00:50:17,741 --> 00:50:21,741
ถัดมาครูใช้คำสั่ง Push

396
00:50:21,741 --> 00:50:25,741
ครูใช้คำสั่ง Push ทำอย่างไร เอา

397
00:50:25,741 --> 00:50:29,741
ของเดิมยกลงมาก่อนนะ ยกของเดิม

398
00:50:29,745 --> 00:50:33,745
มาใส่ก่อนนะคะ ก็จะมี 3,

399
00:50:33,747 --> 00:50:37,747
1 แล้วก็ 5

400
00:50:37,750 --> 00:50:41,750
จากนั้น เรา Push ค่าใหม่ ใส่ค่าใหม่

401
00:50:41,754 --> 00:50:45,754
ลงไป ก็คือ 6

402
00:50:45,754 --> 00:50:49,754
โอเคนะ ใส่ค่า 6 ก็คือค่าใหม่ลงไปใน Stack

403
00:50:49,757 --> 00:50:53,757
เสร็จแล้วครูใช้คำสั่ง Pop

404
00:50:53,762 --> 00:50:57,762
ก็คือเอาออก ก็คือเอาตัวล่าสุด

405
00:50:57,766 --> 00:51:01,766
ก็คือที่อยู่ด้านขวาเอาออก

406
00:51:01,767 --> 00:51:05,767
นะคะ เพราะฉะนั้น ค่าที่ถูกเอาออก ก็คือเลข 6

407
00:51:05,769 --> 00:51:09,769
เห็นไหมคะ เอาเลข 6 ออกมา

408
00:51:09,772 --> 00:51:13,772
แล้วเราก็ยกตัวที่เหลือ

409
00:51:13,775 --> 00:51:17,775
ลงมาใส่ ก็จะเหลือเป็น

410
00:51:17,776 --> 00:51:21,776
3, 1 แล้วก็ 5 นะคะ

411
00:52:33,808 --> 00:52:37,808
โอเค คราวนี้นะคะ มาดูต่อ

412
00:52:37,808 --> 00:52:41,808
กระดาษที่ครูแจกเอาวางไว้ก่อนนะคะ อย่าเพิ่งใช้ เรายังไม่ใช้ตอนนี้

413
00:52:49,815 --> 00:52:53,815
เราใช้ Stack ทำอะไร เมื่อกี้

414
00:52:53,818 --> 00:52:57,818
เราพูดถึง Stack ไปแล้วนะ เข้าก่อนออกทีหลัง

415
00:52:57,821 --> 00:53:01,821
นะคะ ข้อมูลไหนเข้าก่อน

416
00:53:01,824 --> 00:53:05,824
จะถูกเอาออกทีหลัง

417
00:53:05,825 --> 00:53:09,825
แล้วเราใช้ Stack ทำอะไรบ้าง

418
00:53:09,828 --> 00:53:13,828
เราใช้ Stack มาทำอะไรบ้าง

419
00:53:13,832 --> 00:53:17,832
ทุกคนบวกเลขเป็นใช่ไหม ทุกคนบวกลบคูณหาร

420
00:53:17,835 --> 00:53:21,835
สมการทางคณิตศาสตร์ได้ Stack

421
00:53:21,836 --> 00:53:25,836
จะถูกเอามาใช้ในการ

422
00:53:25,837 --> 00:53:29,837
หาผลลัพธ์ของสมการคณิตศาสตร์

423
00:53:29,840 --> 00:53:33,840
บวกเลข บวกลบเลขนะคะ

424
00:53:33,844 --> 00:53:37,844
คราวนี้ ก่อนที่จะไปดูรูปแบบของการ

425
00:53:37,847 --> 00:53:41,847
ใช้ Stack แล้ว Stack มันเกี่ย

426
00:53:41,850 --> 00:53:45,850
อย่างไรกับการบวก ลบ คูณ หาร นะคะ เรามาดูรูปแบบก่อน ว่า

427
00:53:45,850 --> 00:53:49,850
เราใช้ Stack เพื่อเป็นนิพนธ์

428
00:53:49,853 --> 00:53:53,853
ก็คือลักษณะของสมการ

429
00:53:53,857 --> 00:53:57,857
มีอยู่ 3 รูปแบบนะคะ รูปแบบแรก ก็คื

430
00:53:57,860 --> 00:54:01,860
อ

431
00:54:01,862 --> 00:54:05,862
เครื่องหมายบวก ลบ คูณ หาร จะอยู่ระหว่างตัวเลข

432
00:54:05,863 --> 00:54:09,863
นะคะ อันนี้คือ Infix นิพจน์ตัวที่ 2

433
00:54:09,866 --> 00:54:13,866
ก็คือ Prefix

434
00:54:13,866 --> 00:54:17,866
เครื่องหมาย บวก ลบ คูณ หาร จะอยู่ด้านหน้า

435
00:54:17,869 --> 00:54:21,869
และตัวสุดท้าย คือ

436
00:54:21,870 --> 00:54:25,870
Postfix เครื่องหมายจะไปอยู่ด้านหลังของตัวเลข

437
00:54:25,870 --> 00:54:29,870
AC อันนี้คือตัวเลขนะคะ

438
00:54:29,873 --> 00:54:33,873
เราจะแทนด้วยตัวเลขใด ๆ

439
00:54:33,874 --> 00:54:37,874
คราวนี้ดูนะคะ ในการคำนวณ

440
00:54:37,877 --> 00:54:41,877
ทางคณิตศาสตร์นะ

441
00:54:41,878 --> 00:54:45,878
เวลาเราเจอนะคะ การบวก ลบ

442
00:54:45,878 --> 00:54:49,878
ที่มันมีมากกว่า 2 ตัวเลข

443
00:54:49,882 --> 00:54:53,882
เช่นแบบนี้

444
00:54:53,885 --> 00:54:57,885
5 + 2 x 2 มันมีตัวเลขมากกว่า 2 ตัว

445
00:54:57,888 --> 00:55:01,888
นะคะ แล้วเรา

446
00:55:01,891 --> 00:55:05,891
จะบวกลบเลขอย่างไร

447
00:55:05,891 --> 00:55:09,891
เรามีลำดับความสำคัญของ

448
00:55:09,895 --> 00:55:13,895
เครื่องหมาย เจอวงเล็บ

449
00:55:13,898 --> 00:55:17,898
ก่อนทำในวงเล็บ

450
00:55:17,901 --> 00:55:21,901
ใช่ไหมคะ เราเจอในวงเล็บ เรา

451
00:55:21,904 --> 00:55:25,904
บวกลบเลขนี่ ในเครื่องหมายวงเล็บก่อน

452
00:55:25,905 --> 00:55:29,905
จากนั้น ลำดับความสำคัญตัวที่ 2 ที่ต้อง

453
00:55:29,909 --> 00:55:33,909
ทำก่อน ก็คือเครื่องหมาย

454
00:55:33,914 --> 00:55:37,914
ยกกำลัง เช่น 2 ยกกำลัง 2 ใช่ไหมคะ

455
00:55:37,916 --> 00:55:41,916
3 ยกกำลัง 2 อย่างนี้เป็นต้น

456
00:55:41,917 --> 00:55:45,917
เจอเลขยกกำลังเสร็จแล้ว

457
00:55:45,920 --> 00:55:49,920
เราจะคำนวณเครื่องหมายไหนต่อไป

458
00:55:49,921 --> 00:55:53,921
คูณกับหาร คูณกับหารมีลำดับความสำคัญ

459
00:55:53,924 --> 00:55:57,924
เท่ากันนะคะ มีลำดับความสำคัญ

460
00:55:57,925 --> 00:56:01,925
เท่ากัน ตามด้วยบวกกับลบ

461
00:56:01,928 --> 00:56:05,928
นะ บวกกับลบก็มีความสำคัญ

462
00:56:05,928 --> 00:56:09,928
เท่ากัน แต่จะทำ

463
00:56:09,929 --> 00:56:13,929
หลังการทำเครื่องหมายคูณกับหารนะคะ

464
00:56:17,932 --> 00:56:21,932
คราวนี้มาดูโจทย์ครู 2 ตัวนี้

465
00:56:21,934 --> 00:56:25,934
เป็นตัวเลขตัวเดียวกันเลย 5 + 2

466
00:56:25,935 --> 00:56:29,935
x 2 ตัวแรก

467
00:56:29,938 --> 00:56:33,938
ครูมีวงเล็บเปิดกับวงเล็บปิด โจทย์ตัวที่ 2 ครูไม่มี

468
00:56:33,941 --> 00:56:37,941
วงเล็บนะคะ ครูไม่มีวงเล็บนะ

469
00:56:37,944 --> 00:56:41,944
คราวนี้มาดูข้อแรกก่อน

470
00:56:41,947 --> 00:56:45,947
อย่างที่บอกว่าถ้าเจอวงเล็บ

471
00:56:45,948 --> 00:56:49,948
วงเล็บเปิด-วงเล็บปิด ทำ

472
00:56:49,950 --> 00:56:53,950
ข้างในวงเล็บก่อน

473
00:56:53,953 --> 00:56:57,953
เพราะฉะนั้น เราเอาอะไรบวกกันก่อน 5 + 2

474
00:56:57,957 --> 00:57:01,957
เป็นเท่าไรคะ เป็น 7

475
00:57:01,960 --> 00:57:05,960
7 แล้วคูณด้วย 2 เท่ากับเท่าไร

476
00:57:05,960 --> 00:57:09,960
เท่ากับเท่าไรคะ

477
00:57:09,964 --> 00:57:13,964
เท่ากับ 14

478
00:57:17,970 --> 00:57:21,970
ตัวเลขเท่ากับ 14 ตัวแรกนะคะ เท่ากับ 14

479
00:57:21,974 --> 00:57:25,974
แล้วมาดูข้อ 2 ครูตัด

480
00:57:25,974 --> 00:57:29,974
วงเล็บทิ้งไป 5 + 2 x 2

481
00:57:29,977 --> 00:57:33,977
เราทำตรงไหนก่อน

482
00:57:33,980 --> 00:57:37,980
ย้อนกลับขึ้นมาดูข้างบน ระหว่างบวกกับคูณ

483
00:57:37,984 --> 00:57:41,984
อะไรสำคัญมากกว่ากัน

484
00:57:41,986 --> 00:57:45,986
อะไรมีความสำคัญมากกว่ากันคะ

485
00:57:45,987 --> 00:57:49,987
บวกกับคูณ

486
00:57:53,994 --> 00:57:57,994
ใช่คูณ จากข้อมูลข้างบนเห็นไหมคะ ว่า 1 นี่

487
00:57:57,995 --> 00:58:01,995
มีความสำคัญมากสุดนะ 2. ความสำคัญรองลงมา

488
00:58:01,998 --> 00:58:05,998
ตัวนี้ เบอร์ 3 ความสำคัญ

489
00:58:05,998 --> 00:58:09,998
รองลงมา เบอร์ 4 ความสำคั

490
00:58:10,002 --> 00:58:14,002
ญน้อยสุดเลย เพราะฉะนั้น คูณกับบวก

491
00:58:14,005 --> 00:58:18,005
อะไรมีความสำคัญมากกว่ากัน

492
00:58:18,008 --> 00:58:22,008
คูณใช่ไหมคะ อันนี้คือมากสุด

493
00:58:22,011 --> 00:58:26,011

494
00:58:26,011 --> 00:58:30,011
เพราะฉะนั้น เรา

495
00:58:30,015 --> 00:58:34,015
ทำอะไรก่อน 5 + 2 หรือเอา 2

496
00:58:34,018 --> 00:58:38,018
x 2 2 x 2

497
00:58:38,021 --> 00:58:42,021
เป็น 4 4 บวกกับ 5

498
00:58:42,022 --> 00:58:46,022
เป็นเท่าไร 4 + 5 คะ

499
00:58:46,022 --> 00:58:50,022
เป็น 9

500
00:58:50,024 --> 00:58:54,024
โอเค

501
00:58:54,028 --> 00:58:58,028
ถ้าครูเขียนใหม่

502
00:59:06,034 --> 00:59:10,034
เลข 2 หรือ เดี๋ยวนะ

503
00:59:26,043 --> 00:59:30,043
โจทย์ข้อนี้

504
00:59:30,045 --> 00:59:34,045
5 x 2

505
00:59:34,048 --> 00:59:38,048
+ 2 เท่ากับ 12 คนอื่น

506
00:59:38,051 --> 00:59:42,051
ได้ไหมคะ เห็นไหม ตัวเลขเดียวกันเลย

507
00:59:42,055 --> 00:59:46,055
สลับแล้วก็เครื่องหมายมีเหมือนกันเล

508
00:59:46,055 --> 00:59:50,055
ย แค่สลับตำแหน่งค่าก็เปลี่ยนแล้ว

509
00:59:50,057 --> 00:59:54,057
ทันไหมคะ คูณกับบวกแสดงว่า

510
00:59:54,058 --> 00:59:58,058
ทำคูณก่อน 5 x 2

511
00:59:58,061 --> 01:00:02,061
เป็น 10 10 + 2 เป็น 12

512
01:00:06,062 --> 01:00:10,062
โอเค

513
01:00:10,065 --> 01:00:14,065
เอาตัวนี้บวกกันก่อน... คูณกันก่อนนะคะ

514
01:00:14,071 --> 01:00:18,071
5 x 2 เป็น 10 แล้ว 10 ค่อยมาบวกกับ

515
01:00:18,072 --> 01:00:22,072
2 โอเค

516
01:00:22,076 --> 01:00:26,076
จะเห็นว่า

517
01:00:26,076 --> 01:00:30,076
อันนี้คือเราคิดใช่ไหม

518
01:00:30,077 --> 01:00:34,077
อันนี้คือเราคิดนะคะ แล้วเราจะสั่งให้คอมพิวเตอร์เข้า

519
01:00:34,080 --> 01:00:38,080
เข้าใจแบบที่เราคิดเมื่อกี้ได้อย่างไร

520
01:00:38,083 --> 01:00:42,083
รู้ว่าถ้าเจอคูณนี่ต้องทำคูณก่อนเลย

521
01:00:42,085 --> 01:00:46,085
เจอวงเล็บเปิด ต้องทำวงเล็บเปิด

522
01:00:46,086 --> 01:00:50,086
วงเล็บปิดก่อน ตอนนี้เราจะสั่งให้คอมพิวเตอร์นี่สามารถคำนวณ

523
01:00:50,089 --> 01:00:54,089
ให้ได้แบบที่เราคำนวณเมื่อกี้

524
01:00:54,093 --> 01:00:58,093
เราใช้

525
01:00:58,094 --> 01:01:02,094
Stack เข้ามาช่วยในการคำนวณนะคะ

526
01:01:02,098 --> 01:01:06,098
เราใช้ Stack เข้ามาในการคำนวณ

527
01:01:06,098 --> 01:01:10,098
วิธีการทำแบบไหน

528
01:01:10,101 --> 01:01:14,101
มาดูวิธีการนะคะ เรามีตัวเลขอยู่ชุดหนึ่ง

529
01:01:14,103 --> 01:01:18,103
เราต้องการหาค่าออกมา เช่น

530
01:01:18,107 --> 01:01:22,107
ครูมีตัวเลขชุดนี้ล่ะ

531
01:01:22,110 --> 01:01:26,110
ครูสั่งให้คอมพิวเตอร์คำนวณ จะต้องได้ผลลัพธ์ 9

532
01:01:26,111 --> 01:01:30,111
แบบที่เราคิดเมื่อกี้ คอมพิวเตอร์จะคิดแบบไหนนะคะ

533
01:01:30,115 --> 01:01:34,115
1 เราต้องสร้างตารางแบบนี้ก่อน

534
01:01:34,118 --> 01:01:38,118
มี 3 ช่อง ช่องแรก คือ ใส่ Input

535
01:01:38,118 --> 01:01:42,118
ก็คือข้อมูลนำเข้า Stack

536
01:01:42,121 --> 01:01:46,121
แล้วก็ผลลัพธ์นะคะ

537
01:01:46,121 --> 01:01:50,121
เรามีวิธีการทำนี่ 2 ช่วงด้วยกัน ช่วงที่ 1

538
01:01:50,124 --> 01:01:54,124
ต้องแปลงนิพจน์

539
01:01:54,127 --> 01:01:58,127
แบบ Postfix

540
01:01:58,128 --> 01:02:02,128
เอาเครื่องหมายไปไว้ข้างหลังให้หมดก่อน เอาเครื่องหมาย

541
01:02:02,131 --> 01:02:06,131
ไปไว้ข้างหลังให้หมดก่อนนะคะ แล้วค่อยคำนวณออกมาเป็น

542
01:02:06,132 --> 01:02:10,132
ตัวเลข ผลลัพธ์

543
01:02:10,133 --> 01:02:14,133
เรามี 3 ช่องนะ ทุกคนต้องตีตาราง 3 ช่อง

544
01:02:14,134 --> 01:02:18,134
อันแรกเขียนว่า Input Stack แล้วก็ O

545
01:02:18,137 --> 01:02:22,137
utput นะคะ ถัดมา

546
01:02:22,140 --> 01:02:26,140
ขั้นตอนวิธีการแปลง

547
01:02:26,141 --> 01:02:30,141
จาก Infix ให้เป็น

548
01:02:30,142 --> 01:02:34,142
Postfix ทุกคนมีชีตที่ครูให้ แบบนี้เลย

549
01:02:34,145 --> 01:02:38,145
ก็คือสิ่งที่อยู่บนสไลด์นะคะ ครูพรินต์ออกมาให้

550
01:02:38,146 --> 01:02:42,146
เรามีอยู่ทั้งหมด 7 ขั้นตอนด้ว

551
01:02:42,149 --> 01:02:46,149
ยกัน มีทั้งหมด 7 ขั้นตอนด้วยกัน

552
01:02:46,150 --> 01:02:50,150
ครูให้เวลา

553
01:02:50,153 --> 01:02:54,153
2 นาที อ่าน 7 ขั้นตอน

554
01:02:54,157 --> 01:02:58,157
นี้ในกระดาษของตัวเองสิคะ

555
01:02:58,160 --> 01:03:02,160
ให้อ่านในกระดาษนะ หรือจะอ่านจากหน้าจอก็ได้

556
01:03:02,163 --> 01:03:06,163
ให้เวลา 2 นาที อยากให้อ่านก่อน

557
01:04:58,227 --> 01:05:02,227
คราวนี้เดี๋ยวมาดูพร้อมกัน

558
01:05:02,231 --> 01:05:06,231
เรามีอยู่ทั้งหมด 7 ขั้นตอนนะคะ เดี๋ยวเราจะ

559
01:05:06,232 --> 01:05:10,232
ลองฝึกนะ แล้วก็เทียบ

560
01:05:10,235 --> 01:05:14,235
ไปทีละขั้น

561
01:05:14,238 --> 01:05:18,238
ขั้นที่ 1 นะคะ กำหนดให้ Stack ว่าง

562
01:05:18,242 --> 01:05:22,242
ก็คือวาดตาราง 3 ช่องนี้

563
01:05:22,245 --> 01:05:26,245
ใช่ไหมคะ อันดับแรก สร้าง Stack ว่าง ก็คือวาด

564
01:05:26,245 --> 01:05:30,245
3 ช่องนะคะ กี่แถวยังไม่รู้นะ

565
01:05:30,248 --> 01:05:34,248
แต่มีอยู่ 3 คอลัมน์นะคะ 3 ช

566
01:05:38,254 --> 01:05:42,254
่อง อันนี้คือ Stack ว่าง อันดับแรกนะคะ อันดับที่ 2

567
01:05:42,257 --> 01:05:46,257
อ่านข้อมูลจากซ้ายไปขวา ก็คือ

568
01:05:46,258 --> 01:05:50,258
อ่านข้อมูลทีละตัวใช่ไหมคะ เลข 5

569
01:05:50,261 --> 01:05:54,261
เครื่องหมายบวก เลข 2 เครื่องหมายคูณ แล้วก็เลข 2

570
01:05:54,264 --> 01:05:58,264
อันนี้คืออ่านจากซ้ายไปขวา

571
01:05:58,268 --> 01:06:02,268
ทีละตัวนะคะ แล้วก็อ่านเข้ามาทีละตัว

572
01:06:02,273 --> 01:06:06,273
สมมติครูใช้ตัวเลขนะคะ

573
01:06:06,274 --> 01:06:10,274
ตัวเลขนะคะ เช่น

574
01:06:14,280 --> 01:06:18,280
อ่านข้อมูลจากซ้ายไปขวา ตัวแรก ก็คือ

575
01:06:18,282 --> 01:06:22,282
5 ใช่ไหม อ่านจากซ้าย ซ้าย ก็คือตัวแรก

576
01:06:22,283 --> 01:06:26,283
นะคะ ก็คือเลข 5 ถัดมา

577
01:06:26,284 --> 01:06:30,284
ขั้นถัดมาเป็นขั้นที่ 3

578
01:06:30,285 --> 01:06:34,285
ถ้าข้อมูลที่อ่านเข้ามา

579
01:06:34,285 --> 01:06:38,285
เป็นตัวเลข เช่น

580
01:06:38,285 --> 01:06:42,285
เลข 5 ใช่ไหม คะ ข้อมูลที่เราอ่านเข้ามา

581
01:06:42,285 --> 01:06:46,285
เป็นเลข 5 เป็นตัวเลขใช่ไหม ใช่ เอามัน

582
01:06:46,286 --> 01:06:50,286
ไปไว้ที่ไหน เอามันไปไว้ที่ช่องผลลัพธ์ ก็คือ

583
01:06:50,289 --> 01:06:54,289
ช่องสุดท้าย

584
01:06:54,290 --> 01:06:58,290
ก็คือช่องนี้ใช่ไหมคะ ช่อง Output

585
01:06:58,293 --> 01:07:02,293
ถัดมา ถ้าตัวที

586
01:07:02,296 --> 01:07:06,296
เราอ่านเข้ามานี่มันไม่ใช่ตัวเลข แสดงว่า

587
01:07:06,297 --> 01:07:10,297
มันต้องเป็นเครื่องหมายทางคณิตศาสตร์

588
01:07:10,297 --> 01:07:14,297
อะไรสักอย่างหนึ่งนี่ล่ะ เช่น เครื่องหมายบวก

589
01:07:14,300 --> 01:07:18,300
ใช่ไหมคะ เครื่องหมายบวก เราอ่านเครื่องหมายบวก

590
01:07:18,302 --> 01:07:22,302
เข้ามา

591
01:07:22,308 --> 01:07:26,306
แล้วเขาให้เราเช็กก่อนว่า

592
01:07:26,306 --> 01:07:30,306
แล้วใน Stack มันมีค่าอยู่หรือเปล่า Stack ก็คือช่องนี

593
01:07:30,309 --> 01:07:34,309
้ ช่องนี้นี่ มัน

594
01:07:34,312 --> 01:07:38,312
มีค่าอยู่ไหม ถ้ามันไม่มีค่าอยู่เลย

595
01:07:38,315 --> 01:07:42,315
ก็หย่อนมันลงไปใน Stack

596
01:07:42,316 --> 01:07:46,316
แต่ถ้าใน Stack มันมีข้อมูล

597
01:07:46,317 --> 01:07:50,317
อยู่แล้ว เราจะต้องทำการ

598
01:07:50,320 --> 01:07:54,320
เปรียบเทียบก่อน ว่าข้อมูล

599
01:07:54,323 --> 01:07:58,323
ที่เราอ่านเข้ามานี่

600
01:07:58,326 --> 01:08:02,326
มันมีค่ามากกว่า หรือน้อยกว่าตัวที่อยู่ใน

601
01:08:02,329 --> 01:08:06,329
Stack

602
01:08:06,330 --> 01:08:10,330
ถ้ามันมากกว่า

603
01:08:10,333 --> 01:08:14,333
ถ้ากรณีที่ตัวที่เราอ่านนี่มีค่ามากกว่า

604
01:08:14,334 --> 01:08:18,334
ก็หย่อนลงไปใน Stack ได้เลย

605
01:08:18,339 --> 01:08:22,339
ถ้าสิ่งที่

606
01:08:22,343 --> 01:08:26,343
เราอ่านเข้ามามันมีค่าน้อยกว่าสิ่งที่

607
01:08:26,345 --> 01:08:30,345
อยู่ใน Stack

608
01:08:30,348 --> 01:08:34,348
ให้เอาเครื่องหมายใน Stack

609
01:08:34,351 --> 01:08:38,351
ให้เอาเครื่องหมายใน Stack ออกไปไว้ที่ผลลัพธ์

610
01:08:38,354 --> 01:08:42,354
แล้วเอาเครื่องหมายตัวที่เราอ่านเข้ามาหย่อนลงไปใน Stack

611
01:08:42,355 --> 01:08:46,355
โอเค

612
01:08:46,356 --> 01:08:50,356
ถ้า

613
01:08:50,359 --> 01:08:54,359
เราอ่านจนครบข้อมูล

614
01:08:54,362 --> 01:08:58,362
ทุกตัวแล้ว เรายังมีข้อมูลอยู่ใน Stack

615
01:08:58,362 --> 01:09:02,362
เราก็ดึงมันออกมา ก็คือ Pop มันออกมา

616
01:09:02,362 --> 01:09:06,362
นะคะ เป็นผลลัพธ์

617
01:09:06,363 --> 01:09:10,363
มาดูตัวอย่างนะ ทุกคนถือ... ดูกระดาษที่เป็นขั้นตอน

618
01:09:10,366 --> 01:09:14,366
ด้วยนะคะ

619
01:09:26,379 --> 01:09:30,379
โอเค

620
01:09:30,382 --> 01:09:34,382
โจทย์

621
01:09:34,385 --> 01:09:38,385
ที่ครูให้ ทุกคนดูที่หน้าจอนะคะ

622
01:09:38,385 --> 01:09:42,385
ครูมีโจทย์

623
01:09:42,386 --> 01:09:46,386
มาให้นะคะ ก็คือ 5 + 2

624
01:09:46,386 --> 01:09:50,386
x 2

625
01:09:50,390 --> 01:09:54,390
อันดับแรกครูต้องทำอะไร

626
01:09:54,391 --> 01:09:58,391
ครูต้องวาดตารางก่อนใช่ไหมคะ อันดับแรกวาดตาราง 3 ช่อง

627
01:09:58,395 --> 01:10:02,395
วาดตาราง 3 ช่อง จำนวนแถว

628
01:10:02,399 --> 01:10:06,399
ก็เอาข้อมูลตัวเลขกับเครื่องหมาย

629
01:10:06,399 --> 01:10:10,399
มาใส่ทีละบรรทัด 5

630
01:10:10,403 --> 01:10:14,403
บรรทัดที่ 1 ถูกไหมคะ บวกบรรทัด

631
01:10:14,406 --> 01:10:18,406
ที่ 2 ใส่เลข 2 บรรทัดถัดมาใส่เครื่องหมายคูณ

632
01:10:18,410 --> 01:10:22,410
แล้วก็ใส่เลข 2

633
01:10:22,412 --> 01:10:26,412
เราก็จะวาดตารางเรียบร้อยแล้วนะคะ จำนวนแถว

634
01:10:26,413 --> 01:10:30,413
ขึ้นอยู่กับจำนวนข้อมูล

635
01:10:30,417 --> 01:10:34,417
ในโจทย์ว่ามีกี่ตัว ก็สร้างแถว

636
01:10:34,420 --> 01:10:38,420
ใส่ข้อมูลให้เลย

637
01:10:38,423 --> 01:10:42,423
เรากำหนด

638
01:10:42,427 --> 01:10:46,427
Stack ว่างแล้วใช่ไหมคะ

639
01:10:46,428 --> 01:10:50,428
ถัดมา ต้องอ่านข้อมูลทีละตัว

640
01:10:50,431 --> 01:10:54,431
เราต้องอ่านข้อมูลทีละตัวจากซ้าย

641
01:10:54,434 --> 01:10:58,434
ไปขวา ตัวแรกคืออะไรคะ

642
01:10:58,438 --> 01:11:02,438
คือ 5 ใช่ไหม ครูเขียนเรียงแล้ว

643
01:11:02,443 --> 01:11:06,441
5 บวก... มี 2 มีคูณ แล้วก็มี 2

644
01:11:06,441 --> 01:11:10,441
อันนี้คือข้อมูลที่เราอ่านจากซ้ายไปขวา

645
01:11:10,442 --> 01:11:14,442
ตัวแรกเป็นตัวเลขใช่ไหมคะ

646
01:11:14,445 --> 01:11:18,445
มันเป็นตัวเลขแล้วมันตรงกับตัวไหน

647
01:11:18,446 --> 01:11:22,446
ในขั้นตอน ข้อ

648
01:11:22,449 --> 01:11:26,449
3 ที่บอกว่าถ้าเป็นตัวเลข

649
01:11:26,450 --> 01:11:30,450
ให้เอาไปไว้ที่ไหน เอาไปไว้ที่

650
01:11:30,454 --> 01:11:34,454
ผลลัพธ์ ถ้าเป็น

651
01:11:34,455 --> 01:11:38,455
ตัวเลข เอาไปไว้ที่ผลลัพธ์ได้เลย

652
01:11:38,458 --> 01:11:42,458
ถัดมา

653
01:11:42,461 --> 01:11:46,461
เจอเครื่องหมายบวกนะคะ เจอเครื่องหมายบวก

654
01:11:46,462 --> 01:11:50,462
ตอนนี้ใน Stack มันไม่มีค่า

655
01:11:50,463 --> 01:11:54,463
อะไรเลย ทำอย่างไรคะ

656
01:11:54,466 --> 01:11:58,466
ก็ใส่ได้เลย ใส่เครื่องหมายบวก

657
01:11:58,469 --> 01:12:02,469
ลงมาได้เลย ถ้ามันเป็น Stack ว่าง เห็นไหมคะ

658
01:12:02,472 --> 01:12:06,472
ตัวบนเป็น Stack ว่าง เราก็เอาบวกใส่ได้เลย

659
01:12:06,474 --> 01:12:10,474
แล้วก็เขียน 5 ลงมาเหมือนเดิมนะคะ

660
01:12:10,476 --> 01:12:14,476
ยก 5 ลงมาเหมือนเดิมนะ

661
01:12:14,477 --> 01:12:18,477
ดู ดูพร้อมครูก่อนนะ

662
01:12:18,481 --> 01:12:22,481
เดี๋ยวครู...

663
01:12:22,484 --> 01:12:26,484
จะถ่ายรูป

664
01:12:26,486 --> 01:12:30,486
เอาขึ้น Classroom ให้

665
01:12:30,488 --> 01:12:34,488
ถัดมา เลข 2 ใช่ไหมคะ เลข 2 มันเป็นอะไร

666
01:12:34,492 --> 01:12:38,492
มันเป็นตัวเลข เพราะฉะนั้น ต้องเอาไปไว้ที่ไหน

667
01:12:38,495 --> 01:12:42,495
ไปไว้ที่ผลลัพธ์

668
01:12:42,496 --> 01:12:46,496
ตรงกับข้อ 3 ในขั้นตอนนะ

669
01:12:46,497 --> 01:12:50,497
เอา 2 มาไว้ที่ Output แต่ต้องเขียน

670
01:12:50,501 --> 01:12:54,501
หลัง ก็คือเขียนต่อจากเลข 5

671
01:12:54,504 --> 01:12:58,504
นะคะ

672
01:13:02,510 --> 01:13:06,510
ถัดมา

673
01:13:06,511 --> 01:13:10,511
ยกเครื่องหมายบวกลงมาด้วยนะ

674
01:13:10,515 --> 01:13:14,515
เพราะมันอยู่ใน Stack นะคะ เรายังไม่ได้เอาอะไรออก

675
01:13:14,518 --> 01:13:18,518
หรือเอาอะไรเข้าเพิ่ม

676
01:13:18,521 --> 01:13:22,521
ถัดมา เป็นเครื่องหมายคูณ

677
01:13:22,526 --> 01:13:26,526
ใน Stack

678
01:13:26,526 --> 01:13:30,526
เรามีเครื่องหมายบวกอยู่แล้วใช่ไหมคะ

679
01:13:30,529 --> 01:13:34,529
ใน Stack นี่เรามีเครื่องหมายบวกอยู่แล้ว

680
01:13:34,533 --> 01:13:38,533
ตัวที่เราอ่านเข้ามา คือ คูณ เรา

681
01:13:38,536 --> 01:13:42,536
จะต้องทำการเปรียบเทียบ

682
01:13:42,540 --> 01:13:46,540
ค่าที่เราอ่านเข้ามาใหม่ คือ คูณ

683
01:13:46,541 --> 01:13:50,541
กับตัวเดิมที่อยู่ใน Stack

684
01:13:50,541 --> 01:13:54,541
คือ บวก เราเปรียบเทียบ ถูกไหมคะ

685
01:13:54,547 --> 01:13:58,544
กับตัวบนสุด คือ เครื่องหมายบวก สิ่งท

686
01:13:58,544 --> 01:14:02,544
ี่เราพบคืออะไร คูณมีค่า

687
01:14:02,548 --> 01:14:06,548
มากกว่าบวก ให้ทำอย่างไร

688
01:14:06,549 --> 01:14:10,549
ก็เอาคูณหย่อนลงมาได้เลย

689
01:14:10,552 --> 01:14:14,552
ใส่คูณ

690
01:14:14,558 --> 01:14:18,558
ลงไปใน Stack ได้เลยนะคะ ผลลัพธ์ก็เป็นเหมือนเดิม

691
01:14:18,560 --> 01:14:22,560
ตัวถัดมาคือเลข 2

692
01:14:22,565 --> 01:14:26,564
เลข 2 มันเป็นตัวเลขใช่ไหม เอามาไว้ที่

693
01:14:26,564 --> 01:14:30,564
ผลลัพธ์นะคะ เอามาต่อด้านหลัง

694
01:14:30,567 --> 01:14:34,567
เสร็จแล้วเราพบว่า

695
01:14:34,570 --> 01:14:38,570
ไม่มีข้อมูลแล้ว ข้อมูลมันหมดแล้วน่ะ

696
01:14:38,574 --> 01:14:42,574
ข้อมูลมันหมดแล้วนะคะ แต่สิ่งที่เราเจอคืออะไร

697
01:14:42,574 --> 01:14:46,574
ใน Stack ยังมีข้อมูลอยู่

698
01:14:46,575 --> 01:14:50,575
เพราะฉะนั้น ต้องดึงค่า

699
01:14:50,578 --> 01:14:54,578
ออกจาก Stack ให้หมด เราเอาอะไรออกมาก่อนคะ

700
01:14:54,584 --> 01:14:58,582
ตัวล่าสุด ตัวบนสุด คือ คูณ

701
01:14:58,582 --> 01:15:02,582
เอาคูณมาต่อท้ายที่ Output หรือว่าผลลั

702
01:15:02,585 --> 01:15:06,585
พธ์ เอาคูณออกมาแล้วมันเหลืออีกตัวหนึ่งใช่ไหม

703
01:15:06,586 --> 01:15:10,586
ก็เอาบวกออกมา

704
01:15:10,588 --> 01:15:14,588
อันนี้คือผลลัพธ์ ผลลัพธ์สุดท้าย

705
01:15:14,590 --> 01:15:18,590
นะคะ

706
01:15:18,593 --> 01:15:22,593
จะอยู่ในรูปแบบของ Postfix คือ แปลงนิพจน์

707
01:15:26,597 --> 01:15:30,597
ได้ไหมคะ เดี๋ยวเรามาทำพร้อมกันอีกตัวหนึ่ง

708
01:15:30,600 --> 01:15:34,600

709
01:15:54,615 --> 01:15:58,615
3 + 5 x 1

710
01:16:10,624 --> 01:16:14,624
ครูมีโจทย์ใช่ไหมคะ 3 + 5 x 1

711
01:16:14,627 --> 01:16:18,627
ผลลัพธ์เท่ากับเท่าไรเอ่ย ตอบ

712
01:16:18,631 --> 01:16:22,631
เท่ากับ

713
01:16:22,635 --> 01:16:26,635
อันนี้ตอบเท่ากับเท่าไรเอ่ย

714
01:16:26,636 --> 01:16:30,636
8

715
01:16:30,639 --> 01:16:34,639
ข้างหลังตอบอะไร

716
01:16:34,642 --> 01:16:38,642
ได้เท่ากับอะไรคะ คำตอบ

717
01:16:38,645 --> 01:16:42,645
ก็คือ 8

718
01:16:42,649 --> 01:16:46,649
เอา 5 x 1 ก่อน ได้เท่าไร

719
01:16:46,649 --> 01:16:50,649
ค่อยบวกกับ 3

720
01:16:50,653 --> 01:16:54,653
5 x 1 เป็น 5 แล้วค่อยบวกกับ 3

721
01:16:54,653 --> 01:16:58,653
8

722
01:16:58,655 --> 01:17:02,655
เดี๋ยวเราจะมาทำ จะมาแปลงนิพจน์กัน

723
01:17:02,659 --> 01:17:06,659
นะคะ แล้วเราจะมาหาค่าว่ามันได้ 8 ได้อย่างไร

724
01:17:06,660 --> 01:17:10,660
อันนี้เรากำลังจะมาแสดงวิธีทำ

725
01:17:10,663 --> 01:17:14,663
ของการได้ค่าว่า 8 มันมาจากไหน เราสั่งให้คอมพิวเตอร์

726
01:17:14,666 --> 01:17:18,666
คิดแบบไหน อันดับแรกวาด Stack ว่าง

727
01:17:18,668 --> 01:17:22,668
ใช่ไหม ครูบอกว่าต้องมีคอลัมน์อยู่ 3 คอลัมน์

728
01:17:34,677 --> 01:17:38,677
ครูมี 3 คอลัมน์แล้ว มี

729
01:17:38,681 --> 01:17:42,681
Input Stack

730
01:17:42,684 --> 01:17:46,684
แล้วก็ Output

731
01:17:46,685 --> 01:17:50,685
จากนั้นครูวาดตารางเลย

732
01:17:50,689 --> 01:17:54,689
โดยเอาข้อมูลมาใส่ในแต่ละแถวเลยนะคะ

733
01:17:54,692 --> 01:17:58,692
ครูอ่านเข้ามาทีละตัว

734
01:17:58,696 --> 01:18:02,696
จากซ้ายไปขวา ตัวแรก คือ 3 ถัดมา

735
01:18:02,698 --> 01:18:06,698
คือเครื่องหมายบวก เลข 5

736
01:18:06,698 --> 01:18:10,698
นะคะ เครื่องหมายคูณ

737
01:18:10,702 --> 01:18:14,702
แล้วก็เลข 1 อันนี้ครูวดตารา

738
01:18:14,706 --> 01:18:18,706
งเสร็จแล้ว

739
01:18:26,711 --> 01:18:30,711
ทุกคน

740
01:18:30,712 --> 01:18:34,712
วาดตามครูก่อนเลย เราวาด

741
01:18:34,714 --> 01:18:38,714
ตารางเปล่า ๆ แบบนี้ก่อนนะคะ

742
01:18:38,716 --> 01:18:42,716
คอลัมน์แรก หรือช่องแรก เอา

743
01:18:42,718 --> 01:18:46,718
ตัวเลขกับเครื่องหมาย

744
01:18:46,719 --> 01:18:50,719
มาเรียงใส่ทีละบรรทัด

745
01:20:02,764 --> 01:20:06,764
คราวนี้

746
01:20:06,764 --> 01:20:10,764
พอทุกคนลอกตารางเสร็จแล้วใช่ไหมคะ เดี๋ยวเราจะมาทำด้วยกัน

747
01:20:10,769 --> 01:20:14,769
เริ่มต้นตัวแรก

748
01:20:14,769 --> 01:20:18,769
ใช่ไหมคะ ทุกคน เริ่มต้นตัวแรกมันเป็นตัวเลข

749
01:20:18,772 --> 01:20:22,772
ใช่หรือเปล่า เพราะฉะนั้น เอาไปไว้ที่ช่องทางไหน

750
01:20:22,772 --> 01:20:26,772
ทางขวา

751
01:20:26,774 --> 01:20:30,774
ใส่ก่อนเลข 3 ใช่ถูกต้อง

752
01:20:30,774 --> 01:20:34,774
ถัดมา

753
01:20:34,777 --> 01:20:38,777
เป็นเครื่องหมายบวกใช่ไหมคะ

754
01:20:38,778 --> 01:20:42,778
เป็นเครื่องหมายบวก ตรงนี้มีอะไรไหม ไม่มี

755
01:20:42,781 --> 01:20:46,781
เพราะฉะนั้น เอาบวกมาใส่ตรงนี้ได้เลยไหม

756
01:20:46,781 --> 01:20:50,781
ถ้าเป็นเครื่องหมาย เอาลงที่

757
01:20:50,782 --> 01:20:54,782
Stack เพราะฉะนั้น ตอนนี้ Stack

758
01:20:54,785 --> 01:20:58,785
ว่าง ก็ใส่เครื่องหมายบวกได้เลย

759
01:20:58,787 --> 01:21:02,787
3 ยกลงมาเหมือนเดิมนะคะ เหมือน

760
01:21:02,788 --> 01:21:06,788
ตรง Output ยก 3 ลงมาเหมือนเดิม

761
01:21:14,792 --> 01:21:18,792
ถัดมาเลข 5 เป็นตัวเลข

762
01:21:18,796 --> 01:21:22,796
เอาไว้ที่ไหน เอาไว้

763
01:21:22,799 --> 01:21:26,799
Output ใช่ไหม เพราะฉะนั้น เอาของเด

764
01:21:26,800 --> 01:21:30,800
ิมยกลงมาก่อน คือ 3 เราเอาเลขอะไรมาใส่

765
01:21:30,803 --> 01:21:34,803
เลข 5 นะคะ อันนี้

766
01:21:34,806 --> 01:21:38,806
ยกลงมาไหม เครื่องหมายบวกยกลงมาด้วยนะ

767
01:21:38,809 --> 01:21:42,809
ยกลงมาด้วย

768
01:21:50,814 --> 01:21:54,814
เสร็จแล้วถัดมา

769
01:21:54,817 --> 01:21:58,817
เครื่องหมายคูณ

770
01:21:58,821 --> 01:22:02,821
คูณต้องเอามาลง Stack ใช่หรือเปล่า แต่คูณ

771
01:22:02,823 --> 01:22:06,823
มันมากกว่าบวกใช่ไหม คูณ

772
01:22:06,823 --> 01:22:10,823
กับบวกอะไรมากกว่ากัน คูณ เพราะฉะนั้น

773
01:22:10,826 --> 01:22:14,826
เราก็ใส่ลงไปใน Stack ได้เลย โดย

774
01:22:14,829 --> 01:22:18,829
เอาของเดิมลงมาก่อน

775
01:22:18,832 --> 01:22:22,832
แล้วก็ใส่เครื่องหมายคูณ

776
01:22:22,836 --> 01:22:26,836
อันนี้ยกลงมาเหมือนเดิมไหม ยกลงมาเหมือนเดิม

777
01:22:30,839 --> 01:22:34,839
ตรงสุดท้าย 1 เอาไว้ที่ไหน

778
01:22:34,842 --> 01:22:38,842
Output แต่มีของเดิมอยู่แล้วใช่ไหม

779
01:22:38,846 --> 01:22:42,846
ยกของเดิมลงมาก่อน แล้วก็ใส่เลข 1

780
01:22:46,850 --> 01:22:50,850
อันนี้ยกลงมาเลยได้ไหม ได้นะคะ ใน Stack

781
01:22:50,854 --> 01:22:54,854
เราก็ยกเครื่องหมายออกมา เครื่องหมายนะคะ

782
01:22:54,858 --> 01:22:58,858
บวกกับคูณ

783
01:23:02,865 --> 01:23:06,865
เสร็จแล้ว

784
01:23:06,865 --> 01:23:10,865
ผลลัพธ์ที่ได้ ตอนนี้ข้อมูลหมดแล้วใช่ไหม

785
01:23:10,868 --> 01:23:14,868
ใน Stack ยังมีอยู่ ใน Stack ยังมีอยู่ ต้อง

786
01:23:14,872 --> 01:23:18,872
เอาออกมา ต้อง Pop ออกมาใช่ไหมคะ

787
01:23:18,875 --> 01:23:22,875
ยกตรง Output ของเดิมลงมาก่อน Pop

788
01:23:22,879 --> 01:23:26,879
บวกกับคูณเอาอะไรออกมาก่อน

789
01:23:26,883 --> 01:23:30,883
คูณแล้วตามด้วยบวก เห็นไหมคะ

790
01:23:30,885 --> 01:23:34,885
เอาตัวแรกออกมาก่อน แล้วเอาตัวที่ 2

791
01:23:34,888 --> 01:23:38,888
ออกมา

792
01:23:50,901 --> 01:23:54,901
เดี๋ยวต่ออีกนิดหนึ่งนะคะ เดี๋ยวเขียนตรงนี้ให้เสร็จก่อน

793
01:24:02,908 --> 01:24:06,908
เรายังไม่ได้ค่าเลข 8 เลย

794
01:24:06,908 --> 01:24:10,908
จะทำอย่างไรให้ได้เลข 8

795
01:24:10,911 --> 01:24:14,911

796
01:24:14,911 --> 01:24:18,911
8 ถัดมา เสร็จหรือยังคะ

797
01:24:18,914 --> 01:24:22,914
เดี๋ยวรอเพื่อน

798
01:24:22,919 --> 01:24:26,919
แป๊บหนึ่งนะ

799
01:24:34,927 --> 01:24:38,927
โอเค เราได้ผลลัพธ์

800
01:24:38,931 --> 01:24:42,931
แล้วใช่ไหมคะ จากตารางที่เราทำใน Stack

801
01:24:46,935 --> 01:24:50,935
พอได้ค่าผลลัพธ์แล้วนี่ คือ ตัวนี้

802
01:24:50,938 --> 01:24:54,938
ใช่ไหม 3 5 1 คูณ บวก

803
01:24:54,942 --> 01:24:58,942
มาหาผลลัพธ์ต่อนะคะ ค่านี้จะเป็นค่าสุดท้ายแล้ว

804
01:24:58,942 --> 01:25:02,942
ที่เราจะได้คำตอบออกมา

805
01:25:06,947 --> 01:25:10,947
ตัวแรกตัวนี้ใช่ไหมคะ

806
01:25:10,950 --> 01:25:14,950
ขั้นตอนถัดมา ถ้าเป็น

807
01:25:14,955 --> 01:25:18,955
ตัวเลข ถ้าเป็นตัวเลขจะ Push

808
01:25:18,958 --> 01:25:22,958
ลง Stack อันนี้อีกอันหนึ่งนะ อีก

809
01:25:22,961 --> 01:25:26,961
ขั้นตอนหนึ่งนะคะ ถ้าเป็นตัวเลขจะ Push

810
01:25:26,961 --> 01:25:30,961
ลง Stack ดูพร้อมครูเลย ตัวที่ 1 มา

811
01:25:30,965 --> 01:25:34,965
คือตัวเลขอะไรคะ เลข 3

812
01:25:34,968 --> 01:25:38,968
เราเอาใส่ใน Stack

813
01:25:38,971 --> 01:25:42,971
ดูพร้อมกันนะ เลข 3

814
01:25:42,974 --> 01:25:46,974
ตัวแรก เอาลง Stack ตัวถัดมา

815
01:25:46,976 --> 01:25:50,976
เลขอะไรคะ เลข 5

816
01:25:50,978 --> 01:25:54,978
ก็เอาเลข 5 Push ลง Stack เหมือนกัน

817
01:25:58,985 --> 01:26:02,985
ตัวถัดมาเลขอะไร

818
01:26:02,986 --> 01:26:06,986
เลข 1 ก็เอาเลข 1

819
01:26:06,986 --> 01:26:10,986
Push ลง Stack เหมือนกัน

820
01:26:18,990 --> 01:26:22,990
ถัดมา

821
01:26:22,994 --> 01:26:26,994
เราเครื่องหมายคูณ ให้

822
01:26:26,994 --> 01:26:30,994
Pop ค่าบนสุดอออกมา แล้ว

823
01:26:30,996 --> 01:26:34,996
วางไว้ขวามือ เอาเลข 1 ออกมา เห็นไหมคะ

824
01:26:34,998 --> 01:26:38,998
จากนั้นใส่เครื่องหมาย

825
01:26:38,998 --> 01:26:42,998
ถ้ามันเครื่องหมายนะ ตัวที่เราอ่านมา เรา Pop

826
01:26:43,001 --> 01:26:47,001
ตัวเลขออกมาก่อน แล้วใส่เครื่องหมาย

827
01:26:47,002 --> 01:26:51,002
แล้วเอาตัวที่ 2 ออกมาแบบนี้

828
01:26:51,002 --> 01:26:55,002
นะคะ เอาตัวบนสุดออกมา

829
01:26:55,005 --> 01:26:59,005
แล้วใส่เครื่องหมายที่เราอ่าน แล้วเอา

830
01:26:59,006 --> 01:27:03,006
ตัวข้อมูล

831
01:27:03,008 --> 01:27:07,008
ตัวเลขที่อยู่ใน Stack ตัวถัดมานี่ออกมา ได้ผลลัพธ์อะไรคะ

832
01:27:07,009 --> 01:27:11,009
5 x 1 เป็น 5

833
01:27:11,010 --> 01:27:15,010
ตอนนี้ใน Stack 1 กับ 5 ออก

834
01:27:15,013 --> 01:27:19,013
ไปแล้วนะ เราได้ผลลัพธ์

835
01:27:19,017 --> 01:27:23,017
คือ 5 แล้วอย่างไรต่อ

836
01:27:23,020 --> 01:27:27,020
ก็ Push ลง Stack

837
01:27:27,021 --> 01:27:31,021
เอาเลข 5 Push ลงไปใน Stack

838
01:27:31,024 --> 01:27:35,024
เดิมมี 3 ตอนนี้เอาออกไปแล้ว 2 เหลือ 3

839
01:27:35,027 --> 01:27:39,027
พอคูณเสร็จเอา 5 กลับเข้ามา

840
01:27:43,034 --> 01:27:47,034
ดูนะคะ ถัดมา

841
01:27:47,035 --> 01:27:51,035
อ่านเครื่องหมายบวก

842
01:27:51,038 --> 01:27:55,038
ทำเหมือนเดิมเลย เอาอะไรออกมาคะ

843
01:27:59,044 --> 01:28:03,044
เอา 5 ออกมาไว้ทางขวามือ แล้วก็ใส่เครื่องหมายบวก

844
01:28:03,048 --> 01:28:07,048
แล้วก็เอา 3 ออกมา คำตอบเป็นเท่าไรคะ

845
01:28:07,049 --> 01:28:11,049
อเป็น 8

846
01:28:15,053 --> 01:28:19,053
แล้วก็เอา 8 ใส่ลงไปใน Stack จะเหลือเป็นค่าสุดท้าย

847
01:28:19,058 --> 01:28:23,058
นี่คือคำตอบของ

848
01:28:23,060 --> 01:28:27,060
โจทย์ข้อนี้ ได้เท่ากันเลยไหม

849
01:28:27,061 --> 01:28:31,061
ได้เท่ากันเลย คือ 8

850
01:28:31,063 --> 01:28:35,063
จะเห็นว่านี่คือกระบวนการคอมพิวเตอร์คิดค่า

851
01:28:35,066 --> 01:28:39,066
ตัวเลขให้เรานะคะ กว่าจะได้เลข 8

852
01:28:39,070 --> 01:28:43,070
ออกมานี่ คอมพิวเตอร์ต้องคิดแบบนี้นะคะ

853
01:28:55,082 --> 01:28:59,082
โอเค

854
01:28:59,084 --> 01:29:03,084
ใครเสร็จแล้ว

855
01:29:03,086 --> 01:29:07,086
ครูให้เบรกอีก 5 นาที จดตัวนี้ให้เสร็จนะคะ

856
01:29:07,087 --> 01:29:11,087
เสร็จแล้วครูให้เบรก 5 นาที

857
01:39:27,481 --> 01:39:31,481
ค่ะ เดี๋ยวมาต่ออีกนิดหนึ่ง

858
01:39:35,488 --> 01:39:39,488
คราวนี้มาดูอีก 1 ตัวอย่างนะคะ

859
01:39:43,494 --> 01:39:47,494
ครูมีโจทย์ให้

860
01:39:51,499 --> 01:39:55,499
5 x 2

861
01:39:55,501 --> 01:39:59,501
+ 2

862
01:39:59,506 --> 01:40:03,506
ตอนนี้เราทำ

863
01:40:03,508 --> 01:40:07,508
จาก Prefix ให้เป็น

864
01:40:07,511 --> 01:40:11,511
Postfix ก่อนนะคะ

865
01:40:11,512 --> 01:40:15,512
อันดับแรก

866
01:40:15,514 --> 01:40:19,514
ต้องวาดตารางก่อนใช่ไหมคะ

867
01:40:19,515 --> 01:40:23,515
วาดตาราง Stack ว่าง

868
01:40:23,521 --> 01:40:27,518
ครูก็วาด 3 ช่องเหมือนเดิม แล้วก็

869
01:40:27,518 --> 01:40:31,518
ตรง Input ครูก็เอาข้อมูลแต่ละตัว

870
01:40:31,522 --> 01:40:35,522
มาใส่ลงในแต่ละบรรทัด

871
01:40:51,536 --> 01:40:55,536
เริ่มต้นเลย นะคะ หย่อนเข้ามาตัวเลข

872
01:40:55,539 --> 01:40:59,539
คือ เลข 5 ใช่ไหม มันเป็นตัวเลข เพราะฉะนั้น

873
01:40:59,542 --> 01:41:03,542
เอาไปไว้ที่ Output

874
01:41:03,544 --> 01:41:07,543
นะคะ นะ ถ้าเป็นตัวเลขเอาไปไว้ที่ Output

875
01:41:07,543 --> 01:41:11,543
ได้เลย ตัวถัดมา

876
01:41:11,545 --> 01:41:15,545
เครื่องหมายคูณ

877
01:41:15,549 --> 01:41:19,549
แสดงว่าต้องเอาไปไว้ใน Stack

878
01:41:19,552 --> 01:41:23,552
ตอนนี้ Stack มันเป็น Stack ว่าง

879
01:41:23,555 --> 01:41:27,555
เราก็เลยเอาคูณมาใส่ใน

880
01:41:27,557 --> 01:41:31,557
Stack ได้เลย ส่วน Output

881
01:41:31,558 --> 01:41:35,558
ก็ยก 5 ลงมาเหมือนเดิม

882
01:41:39,562 --> 01:41:43,562
โอเคนะ ยังเป็นเหมือนเดิมอยู่นะ

883
01:41:43,564 --> 01:41:47,564
2 บรรทัดแรก ถัดมา

884
01:41:47,565 --> 01:41:51,565
เจอเลข 2 เลข 2

885
01:41:51,568 --> 01:41:55,568
2 มันเป็นตัวเลข ต้องเอาไปไว้ที่

886
01:41:55,570 --> 01:41:59,570
Output เพราะฉะนั้น 2

887
01:41:59,571 --> 01:42:03,571
จะอยู่ต่อจากเลข 5 นะคะ ใน Stack

888
01:42:03,575 --> 01:42:07,575
ก็ยกลงมาเหมือนเดิม

889
01:42:11,576 --> 01:42:15,576
ถึงตรงนี้นะคะ

890
01:42:19,582 --> 01:42:23,582
ถัดมาข้อมูลที่เราอ่านมา

891
01:42:23,585 --> 01:42:27,585
คืออะไร เครื่องหมายบวก พอเราเจอ

892
01:42:27,585 --> 01:42:31,585
เครื่องหมายบวก ครูบอกว่าต้องเอามัน

893
01:42:31,586 --> 01:42:35,586
ไปไว้ใน Stack แต่ก่อนอื่น ก่อนที่จะ

894
01:42:35,590 --> 01:42:39,590
เอาไปไว้ใน Stack เดิม

895
01:42:39,594 --> 01:42:43,594
เรามีข้อมูลใน Stack หรือเปล่า มีใช่หรือเปล่า มีเครื่องหมายคูณ

896
01:42:43,598 --> 01:42:47,598
เพราะฉะนั้น เร

897
01:42:47,598 --> 01:42:51,598
าต้องเปรียบเทียบความสำคัญก่อน บวก

898
01:42:51,601 --> 01:42:55,601
มันน้อยกว่าหรือมากกว่าคูณ

899
01:42:55,604 --> 01:42:59,604
น้อยกว่าใช่ไหม บวก

900
01:42:59,608 --> 01:43:03,608
มีค่าน้อยกว่าคูณ เพราะฉะนั้น

901
01:43:03,611 --> 01:43:07,611
ทำอย่างไรคะ เอาคูณ

902
01:43:07,612 --> 01:43:11,612
ออกมา

903
01:43:11,613 --> 01:43:15,613
บวกมีค่าน้อยกว่าคูณ เพราะฉะนั้น

904
01:43:15,616 --> 01:43:19,616
ต้องเอา

905
01:43:19,617 --> 01:43:23,617
ข้อมูลที่อยู่บน Stack นี่ คือ คูณ เอามาไว้ท ี่

906
01:43:23,622 --> 01:43:27,620
Output เห็นไหมคะ

907
01:43:27,620 --> 01:43:31,620
เอามาไว้ที่ Output เสร็จแล้ว เราถึงเอา

908
01:43:31,624 --> 01:43:35,624
เครื่องหมายบวก Push ลงไปใน Stack

909
01:43:35,626 --> 01:43:39,626
นะคะ แล้วค่อยเอาเครื่องหมายบวก

910
01:43:39,629 --> 01:43:43,629
ใส่ลงไปใน Stack ได้เลย เพราะว่า Stack มันว่าง

911
01:43:43,630 --> 01:43:47,630
เพราะฉะนั้น ตรง Output จะเป็น

912
01:43:47,631 --> 01:43:51,631
5, 2 แล้วก็เครื่องหมายค

913
01:43:51,634 --> 01:43:55,634
ูณ ทำไมคูณ

914
01:43:55,635 --> 01:43:59,635
ถึงต้องออกมา เพราะบวกมันน้อยกว่าคูณ

915
01:43:59,640 --> 01:44:03,640
เห็นไหมคะ บวกมันน้อยกว่าคูณ

916
01:44:03,641 --> 01:44:07,641
เลยเอาคูณออกมา

917
01:44:07,642 --> 01:44:11,642
ถัดมาเลขอะไรคะ เลข 2

918
01:44:11,645 --> 01:44:15,645
เอาไปไว้ที่ Output ได้เลย ก็เอามันไปต่อท้ายคูณ

919
01:44:15,647 --> 01:44:19,647
ใช่หรือเปล่า เพราะมันมาต่อท้ายคูณใช้หรือเปล่า เพราะมันคือคูณ

920
01:44:19,651 --> 01:44:23,651
เอา 2 มาต่อท้าย

921
01:44:27,657 --> 01:44:31,657
ตอนนี้เราอ่านข้อมูลครบหมดแล้ว

922
01:44:31,660 --> 01:44:35,660
แต่ใน Stack มันยังมีบวกค้างอยู่ เพราะฉะนั้น

923
01:44:35,663 --> 01:44:39,663
ต้อง Pop มันออกมา แล้วไว้ข้างหลังเลยนะคะ

924
01:44:39,667 --> 01:44:43,667
Pop มันออกมาและไว้ข้างหลัง

925
01:45:23,690 --> 01:45:27,690
โอเคนะ

926
01:45:27,691 --> 01:45:31,691
แบบฝึกหัด ช่วยครูทำหน่อยตอนนี้เลย

927
01:45:31,694 --> 01:45:35,694
ครูมีโจทย์ให้นะคะ 3 หาร 1

928
01:45:35,697 --> 01:45:39,697
ลบ 2 แล้วครูก็บอกว่าหาร

929
01:45:39,701 --> 01:45:43,701
นี่ มันมีค่ามากกว่าลบนะ

930
01:45:43,703 --> 01:45:47,703
นะคะ หาค่าผลลัพธ์ของนิพจน์

931
01:45:47,704 --> 01:45:51,704
Postfix ให้ครูหน่อย

932
01:45:51,707 --> 01:45:55,707
ผลลัพธ์สุดท้ายตรงนี้จะได้อะไร เริ่มต้น

933
01:45:55,711 --> 01:45:59,711
ทุกคนตีตารางก่อน

934
01:46:07,717 --> 01:46:11,717
ลองทำดูสิคะ มีกระดาษไหม

935
01:46:11,720 --> 01:46:15,720
ไม่มีมาเอาข้างหน้า

936
01:46:15,720 --> 01:46:19,720
ครูมีกระดาษให้นะ

937
01:46:31,730 --> 01:46:35,730
แบบฝึกหัด 1 ข้อนะคะ ทำตอนนี้เลย

938
01:46:47,741 --> 01:46:51,741
เหมือนกับโจทย์ที่ครูให้ไป

939
01:46:51,744 --> 01:46:55,744
นะคะ คล้าย ๆ กับโจทย์ที่ครูให้ไป

940
01:46:55,747 --> 01:46:59,747
แล้วเราก็จดแล้วด้วยนะ

941
01:48:39,806 --> 01:48:43,806
เหมือนโจทย์สุดท้ายที่ครูให้ไปเมื่อกี้เลยนะ

942
01:48:43,810 --> 01:48:47,810
ลบ

943
01:48:47,810 --> 01:48:51,810
มันน้อยกว่าหารใช่ไหมคะ เรา

944
01:48:51,814 --> 01:48:55,814
เปรียบเทียบกัน ลบมันน้อยกว่าหาร

945
01:48:55,818 --> 01:48:59,818
เพราะฉะนั้น

946
01:48:59,821 --> 01:49:03,821
ต้องเอาหารออกมา

947
01:54:20,025 --> 01:54:24,025
คราวนี้นะคะ ดูด้วยกัน

948
01:54:28,030 --> 01:54:32,030
3

949
01:54:32,034 --> 01:54:36,034
เอา 3 ไปไว้ที่ไหนคะ ที่ Output

950
01:54:36,034 --> 01:54:40,034
ถูกไหมคะ เอา 3 ไปไว้ที่ Output

951
01:54:40,037 --> 01:54:44,037
เครื่องหมายหาร เอาเครื่องหมายหารไปไว้ที่ไหน Stack

952
01:54:44,038 --> 01:54:48,038
เพราะมันเป็น Stack ว่าง เราก็หย่อนเครื่องหมา

953
01:54:48,038 --> 01:54:52,038
ยหารได้เลย Output เรายกมันลงมาด้วยนะ

954
01:54:56,045 --> 01:55:00,045
ถัดไป เราอ่านเจอเลข 1 ใช่ไหมคะ เลข1 ต้องเอาไว้

955
01:55:00,049 --> 01:55:04,049
ที่ไหน Output

956
01:55:04,052 --> 01:55:08,052
ยกลงมาก่อน เสร็จแล้วก็เติมเลข 1 ลงไป

957
01:55:08,053 --> 01:55:12,053
ใน Stack ยังเหมือนเดิมนะ

958
01:55:12,056 --> 01:55:16,056
เรายังมีเครื่องหมายหารอยู่ เราก็ยกลงมาได้เลย

959
01:55:16,059 --> 01:55:20,059
ถัดมา

960
01:55:20,063 --> 01:55:24,063
เครื่องหมายลบใช่ไหมคะ เดิมใน Stack เรามี

961
01:55:24,066 --> 01:55:28,066
หารอยู่แล้วใช่ไหม ครูเขียนให้ดูก่อน

962
01:55:28,069 --> 01:55:32,069
เรามีหารอยู่แล้วนี่ เราเอาลบมาเทียบกับ

963
01:55:32,071 --> 01:55:36,071
หาร ปรากฎว่า

964
01:55:36,075 --> 01:55:40,075
ค่าลบมันน้อยกว่า

965
01:55:40,078 --> 01:55:44,078
ให้ทำอย่างไร

966
01:55:44,081 --> 01:55:48,081
ให้เอาหารนี่ เอาออกมาไว้ที่

967
01:55:48,083 --> 01:55:52,083
Output เพราะฉะนั้น จะได้เป็น

968
01:55:52,087 --> 01:55:56,087
3, 1 แล้วก็หาร ตรงนี้หายไปใช่ไหมคะ

969
01:55:56,088 --> 01:56:00,088
เสร็จแล้วก็ใส่ค่าลบ

970
01:56:00,091 --> 01:56:04,091
ลงมาใน Stack

971
01:56:04,094 --> 01:56:08,094
ถัดมาเราหย่อนอะไร

972
01:56:08,095 --> 01:56:12,095
ยกของเดิมลงมาก่อนที่ Output แล้วก็ใส่เลข 2

973
01:56:12,098 --> 01:56:16,098
ใน Stack เหลืออะไรคะ

974
01:56:16,101 --> 01:56:20,101
เครื่องหมายลบใช่ไหม อ่านครบหมดแล้วนะ

975
01:56:20,105 --> 01:56:24,105
แต่ใน Stack

976
01:56:24,107 --> 01:56:28,107
ยังมีค่าอยู่เลย เราต้องเอาค่าจาก Stack ออกมา เป็น

977
01:56:28,108 --> 01:56:32,108
3 1 หาร 2 แล้วอะไรคะ ลบ

978
01:56:32,110 --> 01:56:36,110
เห็นไหม

979
01:56:36,113 --> 01:56:40,113
เราเอาค่าที่อยู่ใน Stack ตัวสุดท้ายมาใส่ข้างหล

980
01:56:40,115 --> 01:56:44,115
ังได้เลยนะคะ

981
01:56:44,116 --> 01:56:48,116
โอเค

982
01:56:48,117 --> 01:56:52,117
อีกข้อหนึ่ง

983
01:56:52,120 --> 01:56:56,120
แล้วจะให้เลิก ครูให้โจทย์มาแค่นี้เอง วาดตารางเองด้วย

984
01:57:12,127 --> 01:57:16,127
โจทย์ข้อนี้อันดับแรก

985
01:57:16,130 --> 01:57:20,130
วาดตารางก่อนเลย ตีตารางค่ะ

986
01:59:48,225 --> 01:59:52,225
ดูนิดหนึ่ง

987
01:59:52,230 --> 01:59:56,230
คูณมันมากกว่าลบ

988
01:59:56,232 --> 02:00:00,232
ใช่หรือเปล่า คูณมันมีค่ามากกว่าลบ

989
02:00:00,237 --> 02:00:04,237
เพราะฉะนั้นทำอะไร ก็ Push คูณลง Stack ได้เลย

990
02:00:04,237 --> 02:00:08,237
นะคะ Push คูณ

991
02:00:08,238 --> 02:00:12,238
ลงใน Stack ได้เลย

992
02:04:12,357 --> 02:04:16,357
โอเค

993
02:04:16,360 --> 02:04:20,360
มาดูนะคะ

994
02:04:20,360 --> 02:04:24,360
6

995
02:04:24,362 --> 02:04:28,362
เป็นตัวเลขเอาไว้ที่ Output ใช่หรือเปล่า

996
02:04:28,363 --> 02:04:32,363
ลบเอาไว้ที่ Stack นะคะ

997
02:04:32,366 --> 02:04:36,366
6 ก็ใส่มาเหมือนเดิม

998
02:04:36,369 --> 02:04:40,369
5 เอาไว้ที่ไหนคะ ไว้ที่ Output ที่

999
02:04:40,372 --> 02:04:44,372
Stack ก็ยกลงมาเหมือนเดิมนะคะ

1000
02:04:44,375 --> 02:04:48,375
ถัดมาคูณ

1001
02:04:48,381 --> 02:04:52,381
เจอคูณ

1002
02:04:52,382 --> 02:04:56,382
ใช่ไหมคะ เจอคูณให้

1003
02:04:56,387 --> 02:05:00,387
เปรียบเทียบกับตัวนี้ก่อน ปรากฏว่าคูณมีค่ามากกว่าลบ

1004
02:05:00,389 --> 02:05:04,389
ให้ Push คูณลง Stack

1005
02:05:04,390 --> 02:05:08,390
ได้เลย เพราะฉะนั้น

1006
02:05:08,390 --> 02:05:12,390
Stack เดิมเป็

1007
02:05:12,394 --> 02:05:16,394
ลบอยู่แล้ว ครูบอกว่า Push ลงมาได้เลยนะคะ เพราะคูณ

1008
02:05:16,397 --> 02:05:20,397
มันมากกว่านะ มันมากกว่านะคะ

1009
02:05:20,399 --> 02:05:24,399
ข้างหลัง คือ 6 กับ 5

1010
02:05:24,401 --> 02:05:28,401
ถัดมา 2

1011
02:05:28,402 --> 02:05:32,402
เป็นตัวเลขไว้ข้างหลังนะคะ

1012
02:05:32,406 --> 02:05:36,406
Stack มีเท่าไรยกลงมา

1013
02:05:36,410 --> 02:05:40,410
โอเค เสร็จแล้ว หมดแล้วนะ ผลลัพธ์

1014
02:05:40,413 --> 02:05:44,413
สุดท้ายที่ได้ 6, 5, 2

1015
02:05:44,416 --> 02:05:48,416
เอาคูณออกมาก่อน แล้วตามด้วยลบนะคะ

1016
02:05:48,416 --> 02:05:52,416
เห็นนะ โอเค

1017
02:05:56,422 --> 02:06:00,422
ทุกคนดู

1018
02:06:00,425 --> 02:06:04,425
นะคะ

1019
02:06:16,435 --> 02:06:20,435
เราสังเกตนะ

1020
02:06:20,438 --> 02:06:24,438
ทำไมตัวนี้

1021
02:06:24,439 --> 02:06:28,439
เอาหารออกมา ตัวนี้ไม่ได้เอาอะไรออกมานะคะ วิธีการ

1022
02:06:28,439 --> 02:06:32,439
สังเกต โอเค

1023
02:06:32,442 --> 02:06:36,442
ลบเทียบกับหาร ลบ

1024
02:06:36,445 --> 02:06:40,445
มันมีค่าน้อยกว่าหาร เห็นไหมคะ

1025
02:06:40,446 --> 02:06:44,446
ลบมีค่าน้อยกว่าหาร

1026
02:06:44,449 --> 02:06:48,449
เลยต้องเอาหาร

1027
02:06:48,449 --> 02:06:52,449
ออกมา

1028
02:06:52,452 --> 02:06:56,452
แต่ถ้า Input

1029
02:06:56,455 --> 02:07:00,455
ที่ใส่เข้าไปนี่มีค่ามากกว่า เรา็

1030
02:07:00,459 --> 02:07:04,459
ใส่ลงไปใน Stack ได้เลย

1031
02:07:04,462 --> 02:07:08,462
ถ้าตัวซ้ายมันมากกว่าตัวบนตรงนี้

1032
02:07:08,463 --> 02:07:12,463
เราก็ใส่ลงไปใน Stack ได้เลยนะคะ

1033
02:07:16,468 --> 02:07:20,468
โอเค

1034
02:07:20,470 --> 02:07:24,470
ต้องกลับไปทบทวนอีกรอบหนึ่งนะ นะคะ

1035
02:07:24,473 --> 02:07:28,473
เดี๋ยวสัปดาห์หน้าเดี๋ยวครูจะทวน

1036
02:07:28,474 --> 02:07:32,474
ให้อีกรอบหนึ่ง

1037
02:07:36,480 --> 02:07:40,480
โอเค

1038
02:07:40,483 --> 02:07:44,483
เดี๋ยวทั้งหมดนี้ครูจะอัปที่ Classroom ให้นะคะ

1039
02:07:44,487 --> 02:07:48,487
เดี๋ยวครูจะไปสแกนให้ แล้วก็อัปโหลด

1040
02:07:48,487 --> 02:07:52,487
ที่ Classroom ให้ โอเค

1041
02:08:16,501 --> 02:08:20,501
เดี๋ยวครูเช็กชื่อหน่อยนะคะ

1042
02:08:48,521 --> 02:08:52,521
ครูเช็กชื่อหน่อย

1043
02:08:52,524 --> 02:08:56,524
ศิริลักษณ์

1044
02:08:56,528 --> 02:09:00,527
02

1045
02:09:00,527 --> 02:09:04,527
มาไหม 02

1046
02:09:04,530 --> 02:09:08,530
คนนี้หรือ

1047
02:09:08,531 --> 02:09:12,531
03

1048
02:09:12,531 --> 02:09:16,531
อดิศร เป็น COVID

1049
02:09:16,534 --> 02:09:20,534
4 นพกิต

1050
02:09:20,534 --> 02:09:24,534
คนนี้ 5.

1051
02:09:24,537 --> 02:09:28,537
พงพร ไหน

1052
02:09:28,537 --> 02:09:32,537
อ๋อ จันทกานต์

1053
02:09:32,540 --> 02:09:36,540
ไหนคะ

1054
02:09:36,544 --> 02:09:40,544
กัญญานัฐ

1055
02:09:40,545 --> 02:09:44,545
กัญญานัฐ ธัญญาลักษณ์

1056
02:09:44,546 --> 02:09:48,546
อ๋อ โอเค วริษา

1057
02:09:48,548 --> 02:09:52,548
คนนี้

1058
02:09:52,551 --> 02:09:56,551
ภัทรดา 11 ไม่มา

1059
02:09:56,554 --> 02:10:00,554
เทพอักษร

1060
02:10:00,558 --> 02:10:04,558
ธนภัทร 15 โอเค

1061
02:10:04,561 --> 02:10:08,561
ภากร

1062
02:10:08,562 --> 02:10:12,562
16 โอเค ค่ะ เจอกันสัปดาห์หน้า

