[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.98,0:00:03.73,Default,,0000,0000,0000,, Ta trở lại với chương trình của mình sử dụng một hàm Dialogue: 0,0:00:03.73,0:00:05.58,Default,,0000,0000,0000,, để vẽ Winston tới 4 lần. Dialogue: 0,0:00:05.58,0:00:08.16,Default,,0000,0000,0000,, Và tôi đã thay đổi để nó thực sự thể hiện anh ta bao nhiêu tuổi Dialogue: 0,0:00:08.16,0:00:10.59,Default,,0000,0000,0000,, tại mỗi thời điểm trong đời, và bạn sẽ sớm biết tại sao. Dialogue: 0,0:00:11.38,0:00:13.55,Default,,0000,0000,0000,, Nhưng trước tiên tôi cần nói với bạn vài điều về Winston: Dialogue: 0,0:00:13.55,0:00:15.90,Default,,0000,0000,0000,, Winston nghiện bánh rán. Dialogue: 0,0:00:15.90,0:00:18.44,Default,,0000,0000,0000,, Anh ấy ăn 3 cái một ngày. Dialogue: 0,0:00:18.44,0:00:21.33,Default,,0000,0000,0000,, Có lẽ đó là lý do tại sao khuôn mặt của anh ta to tròn và vàng như thế. Dialogue: 0,0:00:21.70,0:00:25.31,Default,,0000,0000,0000,, Vì vậy, để cảnh báo Winston về việc bánh rán có hại như thế nào, Dialogue: 0,0:00:25.31,0:00:28.26,Default,,0000,0000,0000,, Tôi muốn sửa đổi chương trình này để hiển thị Dialogue: 0,0:00:28.26,0:00:31.76,Default,,0000,0000,0000,, Anh ấy đã ăn tổng cộng bao nhiêu bánh rán tại mỗi thời điểm trong đời mình. Dialogue: 0,0:00:32.10,0:00:35.78,Default,,0000,0000,0000,, Ví dụ, khi anh ấy hai tuổi, Dialogue: 0,0:00:35.87,0:00:41.60,Default,,0000,0000,0000,, nghĩa là anh ta đã ăn 3 * 365 * 2, Dialogue: 0,0:00:41.60,0:00:45.87,Default,,0000,0000,0000,, cứ như vậy ba cái một ngày, * 365 ngày, * 2 năm. Dialogue: 0,0:00:45.87,0:00:50.33,Default,,0000,0000,0000,, Và ta sẽ chỉ hiển thị bên dưới phần tiêu đề, thật tuyệt vời! Dialogue: 0,0:00:50.33,0:00:53.94,Default,,0000,0000,0000,, 2000 chiếc bánh rán, quả là rất nhiều đối với một đứa trẻ 2 tuổi. Dialogue: 0,0:00:53.94,0:01:02.45,Default,,0000,0000,0000,, Bây giờ khi anh ấy 14 tuổi, hãy xem, anh ấy đã 3 * 365 * 14 Dialogue: 0,0:01:04.03,0:01:08.45,Default,,0000,0000,0000,, Và đó là 15.000 chiếc bánh rán. Được rồi. Dialogue: 0,0:01:08.45,0:01:12.62,Default,,0000,0000,0000,, Như vậy, tôi có thể tiếp tục làm toán, nhưng đã bắt đầu nhận thấy một mô hình. Dialogue: 0,0:01:13.15,0:01:16.72,Default,,0000,0000,0000,, Tôi đang lặp lại tính toán ở đây, Dialogue: 0,0:01:16.72,0:01:20.42,Default,,0000,0000,0000,, và chỉ thay đổi một điều về nó: số năm. Dialogue: 0,0:01:20.42,0:01:22.87,Default,,0000,0000,0000,, Bất cứ khi nào thấy mã lặp đi lặp lại như thế này, Dialogue: 0,0:01:22.87,0:01:28.35,Default,,0000,0000,0000,, Tôi luôn tự nghĩ, "Hmm, ta có thể biến nó thành một hàm hay không?" Dialogue: 0,0:01:28.35,0:01:31.84,Default,,0000,0000,0000,, Đúng vậy, chắc chắn rồi, ta có thể. Vì vậy, hãy làm ngay bây giờ. Dialogue: 0,0:01:32.80,0:01:34.42,Default,,0000,0000,0000,, Tôi sẽ định nghĩa hàm của mình ở đây Dialogue: 0,0:01:34.42,0:01:40.38,Default,,0000,0000,0000,, và gọi nó là calcTotalDonuts = function Dialogue: 0,0:01:40.92,0:01:44.23,Default,,0000,0000,0000,, Và nó sẽ lấy một tham số, số năm, Dialogue: 0,0:01:44.23,0:01:46.02,Default,,0000,0000,0000,, bởi vì đó là thứ duy nhất thay đổi Dialogue: 0,0:01:46.02,0:01:48.57,Default,,0000,0000,0000,, mỗi lần thực hiện tính toán. Dialogue: 0,0:01:49.32,0:01:52.88,Default,,0000,0000,0000,, Và sau đó bên trong, ta sẽ thực hiện tính toán, Dialogue: 0,0:01:52.88,0:01:59.60,Default,,0000,0000,0000,, và lưu nó vào một biến, như vậy nó sẽ là 3 * 365 * số năm. Dialogue: 0,0:02:00.68,0:02:03.10,Default,,0000,0000,0000,, Được rồi, vậy giờ ta có hàm đó, Dialogue: 0,0:02:03.10,0:02:08.60,Default,,0000,0000,0000,, Tôi sẽ thay thế biểu thức này ở đây bằng calcTotalDonuts, Dialogue: 0,0:02:08.60,0:02:11.57,Default,,0000,0000,0000,, gọi đến hàm và truyền vào "2". Dialogue: 0,0:02:12.74,0:02:16.88,Default,,0000,0000,0000,, Được rồi, ừm, giờ ta không thấy tổng số nào cả. Dialogue: 0,0:02:17.23,0:02:19.09,Default,,0000,0000,0000,, Hmm, được rồi, chuyện quái gì xảy ra thế? Dialogue: 0,0:02:19.09,0:02:22.62,Default,,0000,0000,0000,, Vâng, hàm của ta đã tính tổng, ở đây, Dialogue: 0,0:02:23.10,0:02:25.64,Default,,0000,0000,0000,, nhưng nó không nói cho ai biết về tổng số đó. Dialogue: 0,0:02:26.05,0:02:30.37,Default,,0000,0000,0000,, Giống như nếu một giáo viên gọi bạn trong lớp để trả lời một câu hỏi Dialogue: 0,0:02:30.37,0:02:31.74,Default,,0000,0000,0000,, và bạn trả lời nó trong đầu Dialogue: 0,0:02:31.74,0:02:33.65,Default,,0000,0000,0000,, bạn ngại nói ra câu trả lời. Dialogue: 0,0:02:33.65,0:02:36.100,Default,,0000,0000,0000,, Bạn đã hoàn thành công việc, nhưng giáo viên sẽ không bao giờ biết về nó. Dialogue: 0,0:02:37.35,0:02:39.68,Default,,0000,0000,0000,, Nếu ta muốn hàm này truyền một giá trị Dialogue: 0,0:02:39.68,0:02:45.17,Default,,0000,0000,0000,, cho thứ gì gọi nó, hàm phải trả về giá trị một cách rõ ràng. Dialogue: 0,0:02:45.71,0:02:49.32,Default,,0000,0000,0000,, Vì vậy, để một hàm trả về một giá trị, ta cần gõ return, Dialogue: 0,0:02:49.60,0:02:51.57,Default,,0000,0000,0000,, và sau đó là giá tị hàm muốn trả về. Dialogue: 0,0:02:51.57,0:02:55.14,Default,,0000,0000,0000,, Có thể đó là một biến hoặc một giá trị hoặc một biểu thức, Dialogue: 0,0:02:55.14,0:02:57.75,Default,,0000,0000,0000,, Vì vậy, ở đây ta sẽ gõ return TotalDonuts, được chưa nhỉ? Dialogue: 0,0:02:57.75,0:03:01.54,Default,,0000,0000,0000,, Vì vậy, bất cứ thứ gì hàm đó cũng sẽ nhận được phản hồi này. Dialogue: 0,0:03:01.88,0:03:04.42,Default,,0000,0000,0000,, Và bây giờ giá trị của ta đã hiển thị, yay! Dialogue: 0,0:03:04.77,0:03:06.65,Default,,0000,0000,0000,, Và thực sự ta có thể rút gọn hàm, Dialogue: 0,0:03:06.65,0:03:08.34,Default,,0000,0000,0000,, thậm chí không phải lưu trữ nó trong một biến, Dialogue: 0,0:03:08.34,0:03:10.05,Default,,0000,0000,0000,, ta chỉ cần lấy toàn bộ biểu thức này ở đây Dialogue: 0,0:03:10.05,0:03:14.27,Default,,0000,0000,0000,, đặt sau return, và sau đó nó chỉ là 1 dòng. Tốt rồi. Dialogue: 0,0:03:15.07,0:03:17.17,Default,,0000,0000,0000,, Như vậy bây giờ ta có thể tiếp tục Dialogue: 0,0:03:17.17,0:03:20.44,Default,,0000,0000,0000,, và tính tổng số bánh rán tại mỗi điểm trong đời Dialogue: 0,0:03:20.44,0:03:23.45,Default,,0000,0000,0000,, bằng cách chỉ gọi hàm này và truyền vào số năm. Dialogue: 0,0:03:24.21,0:03:28.70,Default,,0000,0000,0000,, Ừm, hãy xem, calcTotalDonuts(25), Dialogue: 0,0:03:28.70,0:03:34.06,Default,,0000,0000,0000,, vị trí là chính xác, calcTotalDonuts(65) Dialogue: 0,0:03:36.37,0:03:40.24,Default,,0000,0000,0000,, OK! Wow, như vậy nếu anh ta 65 tuổi, Dialogue: 0,0:03:40.24,0:03:44.41,Default,,0000,0000,0000,, anh ta sẽ ăn 70.000 chiếc bánh rán. Con số đó là rất nhiều. Dialogue: 0,0:03:45.14,0:03:48.05,Default,,0000,0000,0000,, Tôi không nghĩ Winston sẽ làm được đâu. (cười) Dialogue: 0,0:03:48.05,0:03:50.33,Default,,0000,0000,0000,, Nhưng bây giờ ta đã biến nó thành một hàm, Dialogue: 0,0:03:50.33,0:03:52.89,Default,,0000,0000,0000,, thật dễ dàng để thay đổi các phần của nó. Dialogue: 0,0:03:53.18,0:03:55.14,Default,,0000,0000,0000,, Giống như nếu Winston nhìn thấy điều này và nói, Dialogue: 0,0:03:55.14,0:03:58.86,Default,,0000,0000,0000,, "Whoa, whoa, nhiều quá. Nếu tôi chỉ ăn 1 cái mỗi ngày thì sao?" Dialogue: 0,0:03:58.86,0:04:02.24,Default,,0000,0000,0000,, Được rồi, ta có thể vào đây, thay đổi một số này, Dialogue: 0,0:04:02.73,0:04:04.33,Default,,0000,0000,0000,, và mọi thứ thay đổi. Dialogue: 0,0:04:04.33,0:04:07.97,Default,,0000,0000,0000,, Vậy là 23.000. Vẫn còn rất nhiều. Vì vậy, có thể Winston thích, Dialogue: 0,0:04:07.97,0:04:10.77,Default,,0000,0000,0000,, "Được rồi, được rồi, nếu tôi chỉ ăn 1 cái 1 tuần thì sao?" Dialogue: 0,0:04:10.77,0:04:12.48,Default,,0000,0000,0000,, Ừ, hợp lý đấy, được thôi. Dialogue: 0,0:04:12.48,0:04:15.02,Default,,0000,0000,0000,, Như vậy, sau đó ta có thể đổi 365 thành 50, Dialogue: 0,0:04:15.02,0:04:17.15,Default,,0000,0000,0000,, bởi vì có 50 tuần trong một năm, phải không? Dialogue: 0,0:04:18.10,0:04:22.80,Default,,0000,0000,0000,, Được rồi, tốt hơn nhiều, phải không? 3.000 bánh rán, có vẻ hợp lý. Dialogue: 0,0:04:22.80,0:04:26.75,Default,,0000,0000,0000,, Được rồi, bạn thấy đấy, với các hàm và giá trị trả về, Dialogue: 0,0:04:26.75,0:00:00.00,Default,,0000,0000,0000,, ta có thể lưu code {\i1} và cứu mạng (Winston) nữa. {\i0}