ALLISON BUCHHOLTZ-AU: Hey, tất cả mọi người. Chào mừng bạn đến phần. Hôm nay chỉ là có được tất cả các bài kiểm tra xem xét về bài kiểm tra của bạn vào ngày thứ Tư. Tôi hy vọng tất cả mọi người nhớ rằng họ có một bài kiểm tra hôm thứ Tư. Và nếu bạn không, tốt, bây giờ bạn đã được nhắc nhở. Vì vậy, thứ tư chắc chắn rằng bạn xuất hiện cho các lớp học hoặc phòng khác cần thiết. Các bạn sẽ được awesome. Nó sẽ là tuyệt vời. Và tôi sẽ làm tất cả mọi thứ tôi có thể để giúp bạn chuẩn bị cho bài kiểm tra ngày hôm nay của bạn bây giờ. Và cũng trong trường hợp bạn không biết, có một quá trình phiên xét rộng ngày hôm nay tại 07:00 trong Các phòng thí nghiệm Tây Bắc phòng B103. Bạn có thể thấy tôi một lần nữa cho một encore như Tôi sẽ dẫn một phần của phiên xét cũng. Vì vậy, nếu bạn không thể có đủ của tôi bây giờ, bạn có thể trở lại đêm nay. Tất cả các bên phải, mọi thứ vì vậy đầu tiên đầu tiên. Chỉ cần một số lời khuyên bài kiểm tra trước khi chúng tôi thực sự nhảy vào để đánh giá. Vì vậy, như với bất kỳ kỳ thi, thực hành chắc chắn sẽ giúp bạn ra ngoài. Có các kỳ thi từ quá khứ sáu hoặc bảy năm trên đó, vì vậy đó là rất nhiều thực hành tài liệu cho các bạn có. Và trên thực tế, ngày nay thực sự chỉ là sẽ được đi trên bất kỳ chủ đề rằng các bạn có câu hỏi trên là tốt như làm việc thông qua các vấn đề thực hành từ bài kiểm tra không. Vì vậy, tôi sẽ ném lên bài kiểm tra không từ năm ngoái trên đây, và chúng ta có thể làm việc thông qua bất kỳ vấn đề mà các bạn muốn. Vì vậy, thực hành. Bạn sẽ bắt đầu làm điều đó ngày hôm nay. Mã trên giấy. Vì vậy, yeah, nếu tất cả mọi người thực sự có thể nhận ra giấy, mà sẽ là tuyệt vời, bởi vì bạn không sẽ có máy tính của bạn trên thi và viết ra mã bằng tay thường là khó khăn hơn nhiều hơn bạn có thể mong đợi. Bạn đang sử dụng để chỉ nhìn thấy nó và gõ nó, và bạn có trình biên dịch của bạn giúp bạn ra khi bạn có lỗi, nhưng bạn không nhận được rằng vào kỳ thi. Vì vậy, nó thực sự quan trọng để thực sự có thể viết ra các mã, và bộ nhớ cơ bắp làm nó bằng tay thực sự sẽ giúp bạn. Vì vậy, chúng tôi đang nhận được một chút gần. Đó là thứ hai. Kỳ thi của bạn là vào thứ Tư. Nhưng nếu bạn có thời gian, chắc chắn có một của các kỳ thi từ năm ngoái hay năm trước dưới sự hạn chế thời gian một tiếng rưỡi đồng hồ. Chỉ cần gõ ra một giờ và một nửa thời gian, và ngồi mình xuống, và chỉ làm việc thông qua các vấn đề như khi bạn đang thực sự dùng nó, bởi vì một trong những điều lớn nhất mà chúng tôi nghe về các câu đố là họ rất dài. Đó là rất nhiều tài liệu. Có rất nhiều câu hỏi, và hầu hết mọi người có thể không hoàn thành. Tôi biết rằng tôi hoàn toàn đã không hoàn thành câu đố của tôi khi tôi lấy lớp. Ngày lưu ý rằng, như một ít phần thoải mái, hiểu rằng khóa học này là có nghĩa là để phục vụ cho mọi người ở tất cả các cấp. Lý do toàn bộ chúng tôi có bạn chia ít thoải mái, một nơi nào đó giữa, và thoải mái hơn là loại làm cho nó công bằng hơn. Và nếu bạn đang không thoải mái, đó là không cần thiết cho mỗi gia nhập để có được tất cả mọi thứ. Cũng giống như nếu bạn đã nhận được tất cả mọi thứ, bạn có lẽ sẽ được trong phần thoải mái hơn. Vì vậy, rõ ràng là không đánh bại chính mình lên quá khó khăn nếu bạn không thể hoàn thành kỳ thi. Đi nó từ tôi, tôi đã không làm điều đó. Tôi vẫn còn một bộ tập trung. Tôi vẫn đang giúp giảng dạy khóa học. Bạn sẽ bị phạt. Được rồi. Và cuối cùng, nhận được một số giấc ngủ. Rõ ràng với bất kỳ kỳ thi chúng tôi luôn luôn nói điều này. Nhồi nhét vào đêm hôm trước và không nhận được bất kỳ giấc ngủ không not-- có lẽ nếu đó làm việc cho bạn, hãy cho nó. Nhưng đối với phần lớn các người, nhận được một số giấc ngủ, phần còn lại để cho bộ não của bạn và phục hồi trước khi đến cho kỳ thi thực sự sẽ giúp bạn. Ngoài ra còn có gần như sẽ chắc chắn là kẹo tại các kỳ thi, vì vậy bạn phải mong chờ. Các bạn sẽ làm rất tốt. Nó sẽ được tốt. Và bây giờ trong các giờ tiếp theo và một nửa tôi sẽ cố gắng và chuẩn bị cho bạn một cách tốt nhất tôi có thể. Vì vậy, tôi có trình bày từ cơ bản tất cả các phần đến nay. Tôi sẽ không đi qua tất cả trong số họ bởi vì đó không phải là khả thi trong một giờ và một nửa là tốt như làm việc thông qua các vấn đề thực tế. Vì vậy, thay vào đó tôi có một danh sách các chủ đề. Đây là tất cả những điều chúng tôi có thể hỏi bạn về. Nếu có bất cứ điều gì mà thực sự nhảy ra mà bạn muốn đi qua, mà bạn muốn tôi đi qua khái niệm, Tôi có thể thử và cung cấp cho cho bạn một cái nhìn tổng quan đó. Hoặc nếu bạn muốn nhảy ngay vào làm vấn đề thực hành với nhau, chúng ta có thể làm điều đó. Nó thuộc vào các bạn. Hiện có không có nhiều bạn. Vì vậy, nó là bất cứ điều gì các bạn muốn làm. Tôi muốn là nhất hữu ích đối với các bạn. Vì vậy, tôi sẽ cho bạn chỉ cần nhìn. Đung Một điều các biểu đồ mà chúng tôi giữ nói về stack và heap. Chỉ cần toàn bộ ý tưởng đằng sau đó và điều đó có nghĩa. ALLISON BUCHHOLTZ-AU: Yeah, OK. Đây là tất cả các con đường ở kết thúc, vì vậy hãy để tôi di chuyển qua. Đung Chúng tôi không cần phải làm điều đó bây giờ, nhưng bất cứ điều gì. ALLISON BUCHHOLTZ-AU: Đã có anything-- này. Là loại mờ cho người dân? ĐỐI TƯỢNG: Yeah, tôi thứ hai. Và có thể chúng tôi cũng làm tràn bộ đệm? ALLISON BUCHHOLTZ-AU: Buffer overflow? OK. Vì vậy, tràn bộ đệm là khá dễ dàng chỉ để nói về. Đó là cơ bản bộ đệm bạn nghĩ về một số bộ nhớ mảng mà bạn có, phải không? Chúng tôi thường nói về tràn bộ đệm khi bạn không kiểm tra bao nhiêu người sử dụng được đưa vào, phải không? Và ý tưởng được với tràn bộ đệm là họ đang đặt ở xa quá nhiều dữ liệu cho các không gian mà bạn đã được phân bổ cho họ, phải không? Vì vậy, nếu bạn nói, cho tôi một số thông báo, chúng tôi giả định rằng họ sẽ cung cấp cho chúng ta một thông điệp chiều dài hợp lý. Có lẽ một vài dòng, không có điều gì. Vì vậy, chúng tôi không kiểm tra. Thay vào đó họ ăn chúng tôi trong một toàn bộ cuốn sách đó là một tin nhắn, và nó tràn lượng không gian mà chúng tôi đã được phân bổ cho việc này. Và những gì xảy ra là nó có thể ghi đè lên những nơi mà nó không được. Vì vậy, tôi biết Giáo sư Malan nói một cái gì đó về cuộc tấn công tràn bộ đệm. Vì vậy, đó là nơi mà người sử dụng sẽ đầu vào một số lượng lớn dữ liệu với hy vọng rằng anh sẽ ghi đè lên quá khứ kết thúc của bộ đệm của bạn và thay thế something-- Tôi tự hỏi Tôi chúng tôi có những slide tại đây. Tôi không nghĩ rằng chúng tôi có những slide tại đây. Nhưng về cơ bản, ông ghi đè một số phần của bộ nhớ cho phép anh ta truy cập các bộ phận của máy tính của bạn rằng bạn sẽ không bình thường có thể truy cập. Điều lớn nhất với tràn bộ đệm chỉ là để hiểu rằng nó xảy ra khi bạn không kiểm tra bao nhiêu bạn người dùng được đưa vào. Khi bạn không loại bảo vệ chống lại điều đó. Và tại đơn giản nhất điều, nó chỉ sử dụng của bạn nhập một số lượng lớn của dữ liệu trong một nỗ lực để ghi đè lên một số bảo mật phần bộ nhớ của bạn. Đó là tất cả nó được. Vì vậy, ở đây, chồng và heap. Về cơ bản tất cả điều này chỉ là một đại diện của bộ nhớ và nơi mà mọi thứ được lưu trữ. Đó là thực sự loại tất cả các bạn cần biết. Những điều lớn nhất mà bạn cần phải biết là that-- cho tôi xem có một better-- đây. Vì vậy, đây là stack ở đây. Vì vậy, chồng đã làm với tất cả các chức năng của bạn mà bạn đang gọi điện thoại bất cứ lúc nào. Và điều quan trọng cần nhớ đi tắt của tuần trước với malloc là bạn không thực sự có kiểm soát cần thiết trên nó. Tất cả phụ thuộc vào khi nào đó chức năng đang thực hiện. Và khi họ đang thực hiện, họ có những gì được gọi là các khung stack mà đi lên ở đây. Vì vậy, nó sẽ xảy ra tất cả các loại mà không có bất kỳ đầu vào thực tế từ bạn. Bạn viết chương trình của bạn, và bạn cho nó chạy, và ngăn xếp loại có quan tâm của chính nó như là nó cần. Vì vậy, nếu trong chính bạn đang gọi điện thoại khối lập phương, mà sẽ được chuyển đến đây. Nó sẽ tạo ra một khung. Nhưng không có gì bạn làm một cách rõ ràng là để tạo ra rằng stack frame khác hơn viết các chức năng để bắt đầu với, OK? Những gì là loại dưới của bạn kiểm soát là đống với malloc. Vì vậy, bất cứ khi nào bạn malloc một cái gì đó, bạn đang dùng bộ nhớ từ đống. Và đó là bộ nhớ mà bạn có, vì thiếu một từ tốt hơn, kiểm soát rõ ràng hơn, vì nhớ với malloc nó về cơ bản có cho đến khi bạn nói cách khác. Đối với những người bạn của những người phần xem tuần trước, nó ở đó cho đến khi bạn nói cho nó để đi. Nó sẽ ở đó trừ khi nếu không thì nói không. Vì vậy, các đống chỉ là một cái gì đó bạn có thể nghĩ như là bộ nhớ rằng bạn có kiểm soát. Và đó là những chỉ hai điều khác nhau lớn. Ngoài ra, bạn không nên có phải lo lắng quá nhiều về stack và heap câu hỏi hoặc thường chỉ hơn nếu bạn có các thông số địa phương hoặc một chức năng nó sẽ là trên stack hay heap. Rõ ràng trong trường hợp này nó sẽ là stack. Nếu bạn đang mallocing một cái gì đó, nơi được đó đến từ đâu? Heap. Nếu bạn nhìn vào các câu đố thực tế, những nói chung là các loại câu hỏi mà họ có. Bạn không phải lo lắng quá nhiều về nó. Bạn nhận được vào một cách rõ ràng hơn về stack và heap sau này hoặc trong các lớp học CS khác. Vì vậy, chỉ có loại một Ý tưởng chung của việc này là gì sẽ được tốt, mà tôi chỉ cần loại đã đi qua. Bất kỳ chủ đề khác? Có? Đung bạn có thể đi qua con trỏ một lần nữa thực sự nhanh chóng? ALLISON BUCHHOLTZ-AU: Con trỏ? Bạn có muốn khái niệm tổng quan về con trỏ hoặc để bạn thực hành với con trỏ? Đung Loại giống như cú pháp. ALLISON BUCHHOLTZ-AU: Cú pháp? Yeah. OK, chúng tôi đang nhận được ở đó. Yeah, vì vậy đây là chỉ cần loại một cái gì đó khi bạn có một hàm đệ quy, mỗi khi hàm đệ quy là gọi là, nó chỉ cần thêm stack frame khác. Khá nhiều một ví dụ làm thế nào bạn không thực sự có kiểm soát khung trên stack của bạn. OK, con trỏ. Tất cả các bên phải, do đó tạo ra con trỏ. Hãy nhớ rằng, nó chỉ cần gõ sao. Vì vậy, bất cứ loại dữ liệu bạn sẽ được trỏ đến. Vì vậy, đây sẽ là một con trỏ đến một int. Đây sẽ là một con trỏ đến một char. Đây sẽ là một con trỏ đến một phao. Vì vậy, nó về cơ bản bất cứ điều gì bạn muốn nó được trỏ đến, sao là cách bạn khai báo con trỏ, OK? Nhưng sau đó rõ ràng là được một chút khó khăn khi bạn có con trỏ hoặc bạn có ngôi sao bất cứ điều gì. Vì vậy, sự khác biệt lớn là khi bạn đang declaring-- vì vậy chúng tôi có some-- như vậy này có một số ngôi sao int. Vì vậy, đây là một số con trỏ gọi x đến một int, phải không? Vì vậy, hãy nhớ điều này không là này gọi hệ thống x. Và điều này sẽ có một số địa chỉ, phải không? Vì vậy, chúng ta hãy chỉ nói rằng đây là địa chỉ của chúng tôi. Con trỏ chứa địa chỉ. Vì vậy, điều này nói rằng là lúc này vị trí, chúng tôi đang lưu trữ một int. Vì vậy, một cách khác chúng ta có thể nghĩ về này là đây là một số int. Chúng tôi đã không thực sự được giao cho bất cứ điều gì chưa, nhưng nó chỉ là một int. Vì vậy, chúng ta có thể làm được nếu chúng ta sao x bằng 5, điều này sẽ trở thành một 5, OK? Điều này nói đến bất cứ điều gì là x chỉ tay vào, để đi đến địa chỉ này và làm cho nó bằng 5. Vì vậy, chúng tôi chỉ định 5 đến địa chỉ này, phải không? Và sau đó nếu bạn làm điều này, này cung cấp cho chúng tôi địa chỉ của. Đây là địa chỉ của nhà điều hành. Vì vậy, địa chỉ của x là gì? Chúng tôi không biết. Chúng tôi đã không được gán cho nó một địa chỉ. Chúng ta có thể nói đó là some-- bây giờ chúng tôi đã nó một địa chỉ, do đó địa chỉ là 4. Và trên thực tế, nếu chúng ta đi qua một cái gì đó như thế này, loại những gì chúng tôi đã làm. Vì vậy, làm việc thông qua here-- tôi tìm nó sẽ giúp nếu bạn vẽ ra con trỏ. Nếu bạn đang ở trên kỳ thi của bạn, tôi khuyên bạn nên vẽ hộp. Vì vậy, đầu tiên này, int x = 5. Điều này chỉ có nghĩa là chúng tôi có một số đặt trong bộ nhớ đó là 5, phải không? Và bảng của chúng tôi ở đây nói với chúng ta rằng đó là tại địa chỉ 0x04. Và sau đó chúng tôi tạo ra một số con trỏ. Vì vậy, hãy phá vỡ này xuống cùng một lúc. Vì vậy, điều này tạo ra một số hộp đến một int, phải không? Nó sẽ giữ một số địa chỉ của nó. Vì vậy, đây là một số con trỏ. Và phấn này thực sự là nhỏ. Vì vậy, chúng tôi có một số con trỏ ở đây. Và bảng của chúng tôi nói với chúng ta đó là địa chỉ là 0x08. Cool. Và chúng tôi đang giao đến địa chỉ của x. Hãy nhớ rằng, con trỏ chứa địa chỉ, OK? Vì vậy, nếu chúng ta muốn giữ x, chúng tôi có sử dụng toán tử địa chỉ, mà là ký hiệu, để có được địa chỉ của x, mà trong trường hợp này, 0x04. Và sau đó nếu chúng ta có một số bản sao int, điều này chỉ tạo ra một số hộp khác giữ một bản sao int được gọi là. Và nếu chúng ta gán nó vào this-- vì vậy đây là tham khảo nó. Vì vậy, nó nói đi đến bất cứ điều gì địa chỉ trỏ giữ. Con trỏ giữ địa chỉ này, vì vậy chúng tôi muốn đi qua đây, và chúng ta nói, OK, những gì trong đó? Đó là 5. Vì vậy, bản sao sẽ trở thành 5. Có ý nghĩa? Nếu tôi cố gắng để gán này để chỉ con trỏ. Những gì hiện con trỏ thực sự bình đẳng? Nó sẽ chỉ được bất cứ điều gì con trỏ chứa, phải không? Và sau đó những gì nếu tôi đã làm điều này? Điều gì sẽ sao chép được bây giờ? Đung 0x08. ALLISON BUCHHOLTZ-AU: Yep, địa chỉ của con trỏ của chúng tôi. Bất kỳ phần nào của đó mà cần phải được tái giải thích? Cool. Có chắc chắn là một rất vấn đề thú vị trên một bài kiểm tra chúng tôi có thể quá mức mà cung cấp cho bạn thực hành nhiều hơn. Những kẻ từ tuần trước có thể cho bạn biết nó không phải là xấu. Chúng tôi đã thông qua toàn bộ biểu đồ, và tất cả mọi người đã làm tuyệt vời. OK, vì vậy đó là cái nhìn tổng quan cú pháp của con trỏ. Điều lớn nhất là sự hiểu biết như thế nào để tạo ra chúng, làm tham khảo, và địa chỉ, OK? Cool. Bất kỳ chủ đề khác trước khi chúng ta đi sâu vào thực tế. Ngoài ra nếu chúng ta đang trải qua các vấn đề thực hành và có điều gì đó bạn muốn có một bồi dưỡng kiến ​​thức, chúng ta có thể làm điều đó quá. Bạn có một cái gì đó? Đung Struct và danh sách liên kết. ALLISON BUCHHOLTZ-AU: Struct và danh sách liên kết, OK. Vì vậy, cấu trúc. Chúng tôi thực sự đang đi qua đêm nay này quá. OK, vì vậy cấu trúc. Cấu trúc cơ bản chỉ là một cách để bạn có thể giữ nhiều giá trị của các loại khác nhau. Vì vậy, với một mảng chúng tôi chế hơn để một kiểu dữ liệu. Mảng của chúng tôi hoặc có chỉ là con số, hay chỉ là ký tự, hoặc chỉ là phao nổi. Nhưng có lẽ bạn cần chứa nhiều hơn thế. Có lẽ bạn cần phải hold-- nếu bạn đang nói về một học sinh, bạn sẽ có ngôi nhà của họ, họ Số ID, tuổi tác của họ, nơi họ sinh sống, phải không? Và tất cả những người đang có các loại khác nhau của các loại. Vì vậy, bạn không thể lưu trữ tất cả những người trong một mảng. Vì vậy, những gì bạn có thể làm là bạn có thể tạo ra một cấu trúc, mà bạn có thể nghĩ như bạn kiểu dữ liệu cá nhân của riêng. Vì vậy, thay vì chỉ có ints và thay vì chỉ có phao nổi, bạn có thể có một sinh viên loại đó có tất cả các lĩnh vực trong đó. Vì vậy, cách chúng ta khởi tạo cấu trúc của chúng tôi thực sự is-- kể từ khi bài viết của tôi là khủng khiếp, chúng tôi sẽ chuyển đổi sang gõ. Woo. OK, vì vậy nếu chúng tôi muốn tạo ra một struct-- Tôi chỉ cần đi để nó xuống đây. Bỏ qua bất cứ điều gì trong chính mà chúng ta sẽ sử dụng sau này. Vì vậy, cách bạn muốn làm đó là với typedef struct. Và chúng ta chỉ cần gọi học sinh này bởi vì đó là những gì tôi đã được sử dụng. OK, vì vậy typedef có nghĩa là bạn xác định một loại mới, OK? Có những sắc thái vào khi bạn làm chỉ là một cấu trúc so với một cấu trúc typedef. Đối với tất cả ý nghĩa và mục đích, các bạn chỉ sẽ cho rằng họ xấp xỉ như nhau và chỉ sử dụng typedef struct cho bây giờ. Nó sẽ trở thành cách rõ ràng hơn trong của bạn tiếp theo P thiết lập những gì những khác biệt, nhưng tôi không nghĩ rằng bạn cần lo lắng về điều đó ngay bây giờ. Tôi sẽ có nhiều thay bạn biết làm thế nào để tạo ra một, truy cập vào nó, và gán [? giá trị. ?] Một loại mới của cấu trúc, và chúng ta đang gọi nó là học sinh. Vì vậy, sau khi chúng tôi tạo xong này, cho tất cả ý nghĩa và mục đích, bạn sẽ có một loại được gọi là học sinh. Và bạn có thể nghĩ về nó chỉ như là một loại giống như một int, hoặc float, hoặc một char. Nó chỉ là một loại, OK? Vì vậy, trong vụ việc này, chúng ta có gì? Chúng tôi có thể là một tên. Vì vậy, có lẽ chúng ta muốn có một tên chuỗi. Và chúng tôi có thể là một int đó là một ID. Và chúng tôi có một trong đó là số điện thoại. Và chúng tôi đã some-- chúng ta hãy xem. Những gì người khác chúng ta có thể có? Chúng tôi sẽ có một số chuỗi tại nhà của mình. Tất cả những điều mà một học sinh có. Vì vậy, điều này tạo ra một cấu trúc doanh nghiệp. Vậy làm thế nào chúng ta có thể tạo ra một học sinh? Nếu chúng ta có một số biến đó là sẽ nói về Walker ở đây, vì vậy chúng tôi have-- chúng tôi chỉ sẽ gọi cho người đi bộ này. Ông cần một loại. Loại của bạn là gì? ĐỐI TƯỢNG: Sinh viên. ALLISON BUCHHOLTZ-AU: Sinh viên. Vì vậy, điều này chỉ tạo ra một đối tượng bạn có thể nghĩ rằng có tất cả những điều này. Bạn chỉ cần tạo ra một sinh viên người đi bộ. Vì vậy, bây giờ chúng tôi cần để có thể để gán tất cả các, phải không? Vì vậy, không ai nhớ làm thế nào chúng ta truy cập trong một cấu trúc? Đung Period. ALLISON BUCHHOLTZ-AU: Thời gian chính xác. Vì vậy, nếu chúng ta muốn gán anh ta một tên, chúng ta có thể làm điều đó. Rõ ràng điều này sẽ be-- phần này ở đây sẽ nằm trong chính, vì vậy thực sự cho phép tôi làm điều này. Tuyên bố này trên chính vì vậy chúng ta có thể sử dụng nó trong chính. Vì vậy, bây giờ tôi muốn nó làm ID, và chúng tôi sẽ chỉ làm một số đó, và sau đó chúng tôi sẽ gán một ngôi nhà. Bam. Cool. Vì vậy, nên bây giờ chúng tôi cần truy cập bất cứ điều gì sau on-- có thể we-- nếu chúng ta cần phải truy cập vào bất cứ điều gì, chúng ta hãy làm một bản sao ID int. Và tôi muốn sao chép ID của Walker vào điều này. Làm thế nào tôi có thể làm điều đó? Bạn cần truy cập trong khung tập đi struct để [? đi đến đó?] [? E?]. Và cùng một cách mà chúng tôi giao nó lên đây, làm thế nào chúng ta có thể truy cập vào nó khi chúng ta muốn cho rằng giá trị cho cái gì khác? Đung Walker.id. ALLISON BUCHHOLTZ-AU: Yeah, chính xác. Vì vậy, đó là khá nhiều tất cả bạn cần phải biết cấu trúc. Bạn chỉ cần nghĩ về chúng như một biến khác. Về cơ bản một tạo của bạn kiểu biến riêng, OK? Bạn sử dụng nó để khai báo biến trong bất kỳ cách nào. Ở đây khung tập đi vẫn là một biến. Nó chỉ có một sinh viên loại bây giờ thay vì một kiểu int, hoặc một chuỗi loại, hoặc một loại char. Nếu có được một cách dễ dàng để nói chuyện về cấu trúc, nó có nghĩa là chỉ một tạo kiểu dữ liệu của riêng bạn cho phép bạn nhóm tất cả những khác nhau loại dữ liệu với nhau. Điều đó làm cho tinh thần? OK. Đó và truy cập với dấu chấm. Khá nhiều tất cả các bạn cần. OK, nơi mà PowerPoint của tôi đi đâu? Ở đây nó được. Vâng điều này là lạ. Aha. OK, mát mẻ. Bất kỳ những thứ khác hoặc làm chúng tôi muốn đi đến thực hành? Thực hành? OK. Tuyệt vời. Tôi sẽ thoát khỏi này. Nếu tại bất kỳ điểm nào trong câu hỏi thực hành, Tôi rất vui khi tân trang lại và đi qua mọi thứ. Vì vậy, tôi có bài kiểm tra bằng không ở đây. Nếu các bạn muốn kéo nó trên máy tính của bạn, chỉ muốn chụp năm phút để duyệt qua. Có thể lựa chọn một số hàng đầu câu hỏi mà bạn muốn đi qua. Nếu các bạn không thể quyết định, chúng tôi sẽ chỉ từ từ bắt đầu làm việc thông qua họ, nhưng tôi chắc chắn đó sẽ là một số câu hỏi mà bạn đặc biệt mong muốn nói về và có tôi làm việc thông qua với tất cả các bạn. Vì vậy, chỉ cần đi trước và mất năm phút. Di chuyển qua. Và đây là bài kiểm tra từ năm 2013. Đung Zero? ALLISON BUCHHOLTZ-AU: Yeah, bài kiểm tra không. Chúng tôi không làm bài kiểm tra một công cụ. Chúng tôi sẽ làm điều đó trong một vài tuần. Ngoài ra đối với những người bạn của những người đến cuối năm, chúng tôi có kẹo, do đó, các bạn muốn kẹo? Đung chắc. ALLISON BUCHHOLTZ-AU: Tôi chỉ sẽ vượt qua xung quanh. Hey, nếu các bạn có được ở đây sớm, bạn sẽ có được thêm kẹo. Đó là tốt. Ben, bạn có muốn kẹo? Bạn muốn có một số trong những? Ngoài ra còn có Snickers nếu bất cứ ai muốn Snickers. Tôi sẽ để lại chúng ở đây và ở đây. Cảm thấy tự do. Bạn có muốn nữa? ĐỐI TƯỢNG: Tất cả các thiết lập. Cám ơn. ALLISON BUCHHOLTZ-AU: Và tôi đã có một tốt đẹp ít đống có lúc đầu. Các bạn có được để có những bài kiểm tra và Tôi nhận được để có một bài kiểm tra phân loại bên. Đó là sự hỗn loạn. 900 kỳ thi. Nó sẽ là rất nhiều niềm vui. Sẽ là tuyệt vời. Tôi khá chắc chắn đó là một của các liên kết nhân viên lớn nhất đêm của năm. Có ai làm bài kiểm tra không từ năm ngoái chưa ra khỏi sự tò mò? ĐỐI TƯỢNG: Các bộ phận của nó. ALLISON BUCHHOLTZ-AU: Các bộ phận của nó, OK. Bạn đã có câu hỏi về bất kỳ của họ? Đung tôi đã đã đến giờ làm việc. Cảm ơn bạn mặc dù. ALLISON BUCHHOLTZ-AU: Vâng, hy vọng nó vẫn là loại hữu ích. Khi nào bạn đi đến giờ làm việc cho điều đó? Đung My TF có họ chiều nay. ALLISON BUCHHOLTZ-AU: Oh. Ai TF của bạn là? Đung Fred [? Wujaya?]. ALLISON BUCHHOLTZ-AU: Có rất nhiều TF. Vì vậy, nhiều. Được rồi. Bất cứ ai có bất kỳ để bắt đầu mà tôi có thể ghi lại rằng chúng tôi muốn làm việc trên? Tôi giả sử con trỏ một với bảng. Đi cho nó. Đung Có lẽ một trong những chuyển đổi. ALLISON BUCHHOLTZ-AU: Vì vậy, số 12? Tôi giả sử số 8 và 9 là có thể những người muốn đi qua. Đung Và 10 và 11. ALLISON BUCHHOLTZ-AU: Và các bạn biết bạn sẽ có được một trang ghi chú, phải không? ĐỐI TƯỢNG: Vâng, như vậy là những gì chúng tôi được phép đặt vào đó. ALLISON BUCHHOLTZ-AU: Bạn đang được cho phép để đặt bất cứ điều gì bạn muốn. Và nó có thể được đánh máy. Theo như tôi nhớ, chúng ta đang gõ. Đung Bạn có thể làm trở lại và cả hai bên? ALLISON BUCHHOLTZ-AU: Yeah, cả hai bên. Vì vậy, một cái gì đó giống như heap và [? kết thúc trở lại?] đống, chạy của bạn lần. Hữu ích. Có lẽ điều ít về con trỏ để nhắc nhở bạn. Cú pháp cho điều này. Có giống như một bộ xương chương trình có thể được siêu hữu ích. Tôi biết rằng tôi luôn luôn quên chính xác những gì Tôi phải viết cho int chính, bởi vì tôi luôn chỉ cần sao chép dán từ tập hợp P trước đây của tôi hoặc nó đã có, vì vậy Tôi chưa bao giờ thực sự đã viết nó, do đó, có có thể là siêu hữu ích. OK, vậy tại sao chúng ta không bắt đầu với số 8 sau đó? Được rồi. OK. Vì vậy, xem xét các chương trình dưới đây. Vì vậy, rõ ràng là khi chúng ta thấy con trỏ, nó có thể là một ý tưởng tốt để bắt đầu vẽ, phải không? Tôi muốn biết nơi mà tất cả của tôi phần lớn phấn đi. Đây là loại gây phiền nhiễu. Vì vậy, chúng tôi có ở đây một số chức năng trao đổi rằng sẽ mất trong hai con trỏ. Vì vậy, trong trường hợp này, họ thực sự cần được chuyển đổi điều so với trao đổi ban đầu của chúng tôi Chức năng này chỉ mất trong bản. Vì vậy, những gì nó sẽ làm gì is-- hãy bắt đầu với chính, bởi vì đó là nơi mà 1 là. Vì vậy, chúng tôi có một số int x 1. Chúng tôi có một số y đó là bằng 2. Và sau đó chúng tôi có một số trao đổi đó là sẽ có những người. Và chúng ta hãy xem những gì chúng tôi có ở đây. Và trong table-- của chúng tôi oh boy. Làm thế nào tôi sẽ làm điều này? Tôi sẽ vẽ bảng của tôi ở đây. Hầu như không làm cho nó có. Hầu như không làm cho nó. 1, 2, 3, 4, 5, 6, 7. Và họ cung cấp cho chúng ta biết rằng 1 là 1, và 1 2. Cool. Tuyệt vời. Vì vậy, 3. Và có [? một 1.?] Được rồi. Và sau đó địa chỉ của x là 0x123. Và y là Ox127. Cool. Được rồi. Tôi muốn các bạn làm việc này cho công việc chỉ like-- vào nó với những người xung quanh bạn. Tôi ước tôi đã nói rằng trong khi tôi đã được thiết lập. Làm việc trên nó. Hãy thử và làm việc trên nó bằng cách mình cho một vài phút, và sau đó tôi sẽ làm việc trên nó với bạn. Bởi vì cách duy nhất bạn thực sự sẽ tìm hiểu là bằng cách làm điều đó cho mình. Không có lo lắng. Chúc may mắn. OK, tại sao chúng ta không chậm bắt đầu làm việc thông qua này. Vì vậy, tất cả mọi người sau khi nhận được một dòng, x là 1. Sau hai dòng, x và y là 1 và 2, phải không? Cool. Vì vậy, dòng ba là nơi mà mọi thứ có được thú vị của khóa học. Vì vậy, những gì chúng tôi đã làm ở đây hiện nay chúng tôi đã đổi chỗ. Chúng ta nói rằng x và y có những điểm, hoặc họ có địa chỉ của x và y, phải không? Vì vậy, trong trường hợp này, ba, giá trị của a là gì? một đã được thông qua tại, đã được trao giá trị của địa chỉ của x, phải không? Đung 1? ALLISON BUCHHOLTZ-AU: Vì vậy, chúng tôi thêm nó vào x? Địa chỉ của x là gì? Đung 0x123. ALLISON BUCHHOLTZ-AU: Chính xác. Nhưng là những gì một thực sự trỏ đến? Nếu chúng ta tới đích một, những gì giá trị của nó sẽ cung cấp cho chúng tôi. ĐỐI TƯỢNG: 1. ALLISON BUCHHOLTZ-AU: Nó sẽ cung cấp cho chúng tôi 1, bởi vì những gì chúng ta đang nói là đi đến này địa chỉ, cho chúng tôi biết những gì giá trị là. Vì vậy, những gì sẽ được b? Đung 0x127. ALLISON BUCHHOLTZ-AU: Chính xác. Vì vậy, nó là địa chỉ của y. Và sau đó những gì [? tới đích? ?] Đung 2. ALLISON BUCHHOLTZ-AU: OK, vậy bây giờ bốn. Chúng tôi nói một là equal-- tốt bây giờ chúng tôi đã thực hiện int temp là tương đương với ngôi sao của một. Vì vậy, những gì thay đổi? Chỉ có một điều rằng những thay đổi ở đây. Nó là gì? Đung Temp. ALLISON BUCHHOLTZ-AU: Các temp. Vì vậy, chúng ta có thể viết lại tất cả các. Một chiến lược tốt cho các chỉ là tìm ra những gì thay đổi, bởi vì thường xuyên nhất chỉ có một điều đó là sẽ thay đổi tại bất kỳ điểm nào, OK? Vì vậy, chúng tôi đã phân công tạm thời. Bây giờ điểm tiếp theo của chúng tôi, năm, chúng tôi đã thực hiện một ngôi sao bằng ngôi sao b. Vì vậy, những gì thay đổi bây giờ? Đung Sao a. ALLISON BUCHHOLTZ-AU: Sao một, vì vậy mọi thứ khác vẫn như cũ. Và những gì một ngôi sao bằng nhau? Đung 2. ALLISON BUCHHOLTZ-AU: 2. Đáng yêu. Tuyệt vời. OK, và sau đó chúng ta có b bắt đầu bằng temp. Vì vậy, điều thay đổi duy nhất là sao b. Mọi thứ khác vẫn như cũ. Và sao b là những gì bằng bây giờ? Và bạn đã hoàn thành bàn. Bởi vì bây giờ cuối cùng, nếu chúng ta nói x và y, chúng ta biết rằng tại point-- này chúng ta biết rằng khi chúng ta về thay đổi của một ngôi sao đến 2, những gì mà đã làm là nó nói OK, tại giải quyết 0x123 ở đây, thay đổi nó. Bây giờ đây là 2. Và sau đó vào thời điểm này, chúng tôi đã nói OK, đi đến ngôi sao b. Vì vậy, đi theo địa chỉ 0x127 và làm cho nó 1. Vì vậy, bây giờ ở kết thúc khi rất chúng ta thực sự trở lại cho chính, chúng tôi thực sự có mà x là bằng 2 và y bằng 1. Mọi người đều tốt với điều đó? OK, mát mẻ. Số 9. Các bạn làm việc này. Tôi sẽ thiết lập một hội đồng quản trị vì vậy chúng tôi có thể rút ra qua nó. Nó sẽ là một vụ nổ. Các bảng lớn có thể được thực sự đáng sợ, tôi biết. Nhưng nếu bạn chỉ đưa họ một hàng tại một thời gian, họ nhận được ít hơn rất nhiều đáng sợ. Được rồi. Vì vậy, bạn biết rằng điều này sẽ có trải qua chính đầu tiên, phải không? Khởi x và y và sau đó cố gắng để trao đổi chúng. Vì vậy, thậm chí là trao đổi ở trên, cách thực sự nó đi được mà chúng ta đang trải qua chính, và sau đó nó gọi lên để trao đổi, tất cả phải không? Vì vậy, tất cả mọi người biết điều đó. Vì vậy, mà một trong những bạn kẻ muốn bắt đầu với? Có ai thực sự chắc chắn về một trong những? Hoặc thậm chí một phần chắc chắn? Tại sao chúng ta không bắt đầu với x? Những gì chúng tôi nghĩ rằng x là? ĐỐI TƯỢNG: 1. ALLISON BUCHHOLTZ-AU: 1. Thế thì tại sao là 2. Và đó là bởi vì các sự khác biệt lớn ở đây là chúng ta chỉ đi qua bản, phải không? Chúng tôi không đi ngang qua tham khảo. Vì vậy, thậm chí vào cuối chương trình này x và y đã ở lại như nhau, bởi vì họ chỉ là bản sao trong các chức năng trao đổi. Họ không thực sự thay đổi, phải không? Vì vậy, những gì về a, b, và temp? Đung một là b. ALLISON BUCHHOLTZ-AU: một là b. Vì vậy, trong trường hợp này, một là x, đó là 1, phải không? Vì vậy, ở đây, chúng ta hãy đi qua nó. Vì vậy, ngay từ đầu, và một b là 1 và 2 và không xác định. Vì vậy, ban đầu tạm thời được giao cho một, do đó nhiệt độ là 1. một là bằng b, Vì vậy, chúng tôi nhận được 2, và b bằng temp. Bây giờ chúng ta có được 1. Đung Trong một trước đó trao đổi ký hiệu x và y ký hiệu. Chính xác nào đó nghĩa là gì? ALLISON BUCHHOLTZ-AU: Vì vậy, đó có nghĩa là bạn đang đi ngang qua tham khảo. Vì vậy, có nghĩa là bạn đang thực sự đi qua trong các địa chỉ của nơi x và y được lưu trữ. Đung Nhưng bạn không trao đổi địa chỉ. ALLISON BUCHHOLTZ-AU: Bạn không phải là trao đổi địa chỉ. Bạn đang trao đổi những gì trong đó. Giống như những gì ở địa chỉ đó, và đó là lý do tại sao nó hoạt động. So với trong chương trình này ở đây những gì bạn đang làm là bạn đang tạo ra các bản sao. Vì vậy, bạn có x và y tồn tại như các biến riêng của họ ra khỏi đây. Nhưng sau đó khi bạn vượt qua chúng vào trao đổi, đó là như nếu bạn đang tạo toàn bộ này khác. Vì vậy, bạn sẽ không bao giờ thực sự x cảm động và y. Đung Nếu ký hiệu x được những gì đang có địa chỉ của x, điều gì sẽ x sao được? ALLISON BUCHHOLTZ-AU: ký hiệu x là những gì ở địa chỉ của x, sau đó star-- tốt, trong trường hợp này, x không phải là một con trỏ. ĐỐI TƯỢNG: Oh, OK. Vì vậy, bạn chỉ làm điều này bởi vì nó không phải là một con trỏ. ALLISON BUCHHOLTZ-AU: Đúng vậy. Bạn chỉ có thể làm ngôi sao của cái gì đó là một con trỏ. Có lẽ bạn có thể làm điều đó với những điều mà không phải, nhưng biên dịch mà bạn làm điều đó những điều điên rồ sẽ xảy ra. Và tôi là không chính xác chắc chắn những gì sẽ xảy ra. Bạn luôn có thể lấy địa chỉ của một cái gì đó, nhưng bạn không thể tới đích cái gì đó không phải là một con trỏ. Nếu điều đó có ý nghĩa, đó là một sự phân biệt tốt để có. Vì vậy, không quá xấu, phải không? Các bảng là hy vọng nhận được một chút ít đáng sợ. Được rồi. Ah, những người vui vẻ. Vì vậy, bây giờ, viết mã của riêng bạn. Vì vậy, tôi sẽ để cho các bạn làm việc về điều này trong khoảng bốn phút, và sau đó chúng ta có thể nói chuyện khoảng cách để tiếp cận nó. Hãy nói chuyện với những người xung quanh bạn. Ngoài ra điều này là thú vị. Nó giống như một cô gái tất cả phần ngay bây giờ. Khá thú vị. Ngoại trừ Chang. Nhưng Chang là không thực sự là một phần của phần. Tuyệt vời. Perfect. Vì vậy, tôi sẽ cung cấp cho bạn một vài gợi ý. Trong trường hợp bạn có hơn một ký tự, nơi bạn có cái gì khác như 123 hay 1000 gì đó, bạn cần để có thể lặp thông qua và chuyển đổi mỗi người. Vì vậy, có một cặp vợ chồng cách bạn có thể làm điều đó, nhưng bạn chắc chắn sẽ có một vòng lặp ở đâu đó để lặp thông qua họ, đó là loại giống như các giveaway với ngay cả khi bạn gọi strlen, đó là loại thích oh có thể bạn muốn sử dụng độ dài của chuỗi một cách nào đó. Được rồi. Vì vậy, những gì bạn nghĩ có thể là một trong những điều đầu tiên chúng tôi muốn làm gì? Có một vài trường hợp ở đây chúng ta cần phải tính đến, phải không? Hoặc là chúng ta có một cái gì đó là null. Chúng ta có gì? Trường hợp. Null. Chúng ta có những trường hợp đó nó có một cái gì đó khác hơn là 09, phải không? Vì vậy, hãy nói rằng nó có chữ cái. Hoặc chúng ta có các trường hợp đó là hợp lệ. Ba trường hợp để nghĩ đến. Vì vậy, mà một trong những bạn nghĩ rằng có thể cách đơn giản nhất để chăm sóc đầu tiên? Đung Null. ALLISON BUCHHOLTZ-AU: Trường hợp này là null. Vì vậy, những gì chúng ta sẽ làm gì ở đó? Đung [không nghe được]. ALLISON BUCHHOLTZ-AU: Yeah. Và làm những gì tôi muốn làm gì? Đung Quay trở lại 0. ALLISON BUCHHOLTZ-AU: Chính xác. Tuyệt vời. OK. Vì vậy bây giờ là trường hợp mà nó có chữ và các trường hợp đó là hợp lệ. Chúng tôi thực sự có thể chăm sóc điều này trong một vòng lặp, OK? Vì vậy, một cách để làm it-- những gì có thể một cách đơn giản để kiểm tra xem nó là hợp lệ. Chúng tôi sẽ phải đi qua mỗi chữ cái và làm những gì? Đung Kiểm tra nếu nó in-- ALLISON BUCHHOLTZ-AU: Đúng, bạn có thể kiểm tra nếu nó là từ 0 đến 9, phải không? Và sau đó trong trường hợp rằng đó là hợp lệ, chúng tôi sẽ kết thúc lặp lại thông qua chuỗi của chúng tôi dù sao, phải không? Vậy tại sao chúng ta không cố gắng và kết hợp chúng thành một. Chúng ta sẽ lặp thông qua chuỗi ra, và như chúng ta làm điều đó, chúng ta sẽ lần đầu tiên làm một kiểm tra để xem nếu thư mà hoặc nếu nhân vật đó là hợp lệ. Nếu có, chúng ta sẽ thực hiện hoạt động mà chúng ta cần chuyển đổi nó. Nếu không nó sẽ trở về 0, phải không? Vì vậy, trước khi chúng tôi làm điều đó, chúng tôi có thể muốn một số biến rằng chúng ta có thể trở lại vào cuối đó sẽ là giá trị thực tế của chúng tôi. Vì vậy, chúng ta sẽ khởi tạo một số giá trị là 0. Và đó chỉ là cách chúng tôi bắt đầu. Vì vậy, tôi sẽ thoát khỏi điều này. Vậy làm thế nào chúng ta sẽ lặp thông qua chuỗi này. Đung Đối với loop. ALLISON BUCHHOLTZ-AU: A cho vòng lặp. Vì vậy, cho chúng ta là gì? Đung i là 0. ALLISON BUCHHOLTZ-AU: Mm-hm. Và chúng tôi lặp lại cho đến khi là gì? Đung chiều dài str của s. ALLISON BUCHHOLTZ-AU: OK, bây giờ nhớ có một cách tốt hơn. [Không nghe được]. ĐỐI TƯỢNG: Vâng, chúng ta có thể làm n bằng. ALLISON BUCHHOLTZ-AU: Chính xác. Đung i nhỏ hơn n. ALLISON BUCHHOLTZ-AU: Và tại sao chúng tôi muốn làm điều đó? Bạn có nhớ lý do? ĐỐI TƯỢNG: Chúng ta phải tính toán lại nó. ALLISON BUCHHOLTZ-AU: Becasue cách này bạn chỉ cần phải tính toán strlen một lần. Nếu bạn làm tôi ít hơn strlen s, đó là có nghĩa là nó sẽ tính toán lại chiều dài mỗi lần bạn chạy cho vòng lặp, mà không phải là một chi phí rất lớn năng lượng, nhưng nó thực hành tốt hơn để thử và làm những việc như thế một lần. Trừ khi có thể bạn có một chuỗi điên mà thay đổi với mỗi lần lặp. Nhưng nếu nó không đổi, lưu nó. Được rồi. Và sau đó tôi cộng cộng. Tuyệt vời. Chúng tôi đang trên đường đi của chúng tôi. ĐỐI TƯỢNG: Thật nhanh chóng. Đầu tiên, vì vậy hãy nói rằng chúng ta chỉ đã làm tôi ít hơn strlen của s, được họ phân loại chúng tôi về thiết kế ở tất cả hoặc chỉ đúng đắn? Chúng không phải. Chúng tôi đang phân loại về tính đúng đắn cho các câu đố như xa như tôi biết. Tôi không thể làm cho một ngày đầy đủ bảo lãnh, nhưng đối với hầu hết các phần, phần lớn là đúng đắn, bởi vì bạn đang theo rất nhiều thời gian hạn chế. Thiết kế thường có nghĩa là bạn có thời gian để suy nghĩ về sự sang trọng của tình hình của bạn. OK, vì vậy chúng tôi đang lặp lại thông qua. Vì vậy, chúng ta cần phải hoặc là kiểm tra xem nhân vật này là hợp lệ hoặc nếu chúng tôi có thể thực hiện của chúng tôi bình thường [? một để i?] chức năng. Chúng tôi có thể lo lắng về những gì đó là trong một giây. Vậy tại sao chúng ta không take-- nếu có ai có thể nghĩ về một cách để kiểm tra xem nếu điều này là hợp lệ. Chúng tôi biết nó sẽ là một số nếu điều kiện, phải không? Và hãy nhớ đây là trong ASCII, vì vậy thế nào có thể chúng ta thấy nếu nó không phải là 0,1, 2, 3, 4, 5, 6, 7, 8, hoặc 9. Đung Nếu alpha. ALLISON BUCHHOLTZ-AU: Vì vậy, nếu alpha sẽ chỉ cho chúng tôi biết nếu đó là một lá thư. Và nếu họ cung cấp cho chúng ta một biểu tượng, đó là vẫn không khá sẽ kiểm tra. Vì vậy, nếu bạn kéo lên ASCII của bạn bảng, chúng ta biết rằng từ 0 đến 9 đang ở trong một phân đoạn. Cho tôi biết những con số mà họ tương ứng với nếu có thể. Đung 40. ALLISON BUCHHOLTZ-AU: Vì vậy, phạm vi là như 40-- Đung lẽ. 48-57. Tôi không chắc. ALLISON BUCHHOLTZ-AU: 40-57? Đung 48, tôi nghĩ. ALLISON BUCHHOLTZ-AU: 48-57. Vì vậy, chúng ta biết rằng những ASCII symbols-- nếu giá trị không phải là ASCII giữa 48 và 57, đó là không hợp lệ, phải không? Vì vậy, chúng ta có thể sử dụng để lợi thế của chúng tôi có thể? Làm thế nào chúng ta sẽ có được lá thư này, off đầu tiên? Làm sao chúng ta truy cập này nhân vật này? Đung của khung i. ALLISON BUCHHOLTZ-AU: Mm-hm. Bởi vì chúng ta có thể nghĩ chuỗi như mảng, hãy nhớ. Vì vậy, những gì chúng tôi muốn nói không? Chúng tôi muốn nói nếu điều này is-- tôi sẽ cung cấp cho bạn một gợi ý. Đó là một ít hơn. Những gì để bạn nghĩ rằng nó cần phải được ít hơn? Đung 57? ALLISON BUCHHOLTZ-AU: 47, phải không? Nhưng nó cũng đại diện cho rằng như bạn 0 trong duy nhất [? nan?], bởi vì đó là nhân vật 0. Bạn cũng có thể đặt 47. Có bảng ASCII, như bạn nhìn thấy, chỉ là một cái gì đó bạn nên có trên tờ bài kiểm tra của bạn. Vì vậy, nếu đây là trường hợp, nếu đó là một ít hơn 0-- không nhất thiết và. Nó chỉ hoặc sẽ là nhỏ hơn hoặc lớn hơn 9. Vì vậy, bạn có thể điền cuối cùng này cho tôi? Vì vậy, hoặc s của tôi là gì, Rhea? Đung Lớn hơn 9. ALLISON BUCHHOLTZ-AU: Có. Điều đó có ý nghĩa để tất cả mọi người, làm thế nào chúng tôi đến đó? Những vấn đề này, chúng giống như khi bạn thấy các giải pháp, nó giống như oh, OK. Và đây là lý do tại sao thực tế sẽ giúp bạn. OK, vì vậy chúng tôi trở về 0. Đáng yêu. Được rồi. Nếu không làm những gì chúng tôi muốn làm gì? Đây là một phần thú vị mà nó nhiều hơn một chút như toán học so với CS trong quan điểm của tôi. Có ai có một ý tưởng làm thế nào chúng ta có thể làm điều này? Vì vậy, điều quan trọng để nhận ra là nhân vật đầu tiên chúng tôi đang dùng là có được các chữ số thứ tự cao nhất, phải không? Vì vậy, nếu chúng ta nhìn vào chuyển đổi 123, lần đầu tiên chúng ta lặp là có được 1, nhưng chúng ta cần đó là 100 vào cuối, phải không? Vì vậy, có một điều bạn có thể làm là với mỗi chữ số tiếp theo mà bạn có, bạn nhân giá trị của bạn bằng 10, do đó do thời gian bạn đạt được kết thúc, tất cả mọi thứ đã được chuyển lên trên, phải không? Vì vậy, lần đầu tiên bạn chạy nó, bạn có 1 là giá trị của bạn. Lần thứ hai bạn chạy nó, bạn nhân giá trị của bạn bằng 10. Nó sẽ cập nhật nó để nó bây giờ 10, và bạn thêm vào giá trị tiếp theo của bạn. Và sau đó bạn nhân rằng bằng 10 và thêm vào giá trị tiếp theo của bạn. Và đây là lý do tại sao họ nói điều này là nhiều hơn nữa như thử nghiệm một thuật toán toán học so với CS, nhưng tôi lạc đề rồi. Tôi không viết các câu đố. Vì vậy, có một điều chúng ta có thể làm là chúng tôi nói lần giá trị tương đương với 10. Vì vậy, điều này sẽ thay đổi chữ số của bạn mỗi khi một lần. Và sau đó chúng tôi chỉ muốn thêm. Chúng tôi muốn thêm vào những gì chúng tôi chỉ có, phải không? Vì vậy, làm thế nào để chúng ta thực sự chuyển đổi của chúng tôi Ký tự ASCII vào số mà nó đại diện? Vì vậy, chúng ta biết rằng 0 là bằng 47, phải không? Vì vậy, nếu 0 là 47, những gì chúng ta sẽ phải làm gì để nó để thực sự làm cho nó là một int 0? Đung Đó là 48. ALLISON BUCHHOLTZ-AU: 48? Xin lỗi. Chúng tôi sẽ trừ đi 48, phải không? Ghi toán ASCII? Chúng ta có thể đối xử với họ chỉ như số bình thường. Nếu bạn đối xử với họ như những con số, họ trở thành số một cách hiệu quả. Vì vậy, nếu chúng ta có s của tôi, mà hãy nói rằng trong trường hợp này là bằng 0. Vì vậy, s của tôi trong trường hợp này sẽ là ASCII-- int ASCII cho nó sẽ là 47. Vì vậy, chúng ta có thể subtract-- hoặc 48. Bạn có thể làm điều đó, là một cách. Có ai biết một tốt hơn cách chúng ta có thể làm 48? Chúng tôi chỉ nói 0 is-- đi vào ASCII bạn có thể làm quote 0. Vì vậy, hiện nó loại làm cảm giác cách làm việc này? Đung Tại thời điểm này, là giá trị 0 bởi vì ngay cả khi bạn nhân nó với 10, bạn đang bắt đầu với số không, vì vậy nó phải được chuyển? ALLISON BUCHHOLTZ-AU: Vì vậy, trong trường hợp này, bạn muốn nhân nó trước khi bạn thêm, bởi vì trong trường hợp này, vâng, nó sẽ vẫn be-- con trỏ của tôi là mất tích. Giá trị trong trường hợp này, đầu tiên khi chúng ta chạy nó sẽ bằng không. Vì vậy, bạn chỉ cần thêm vào đó chữ số đầu tiên. Thời gian tiếp theo Điều quan trọng là bạn lặp đi lặp lại, bạn muốn thay đổi nó lên trước khi bạn thêm chữ số tiếp theo của bạn trên. Điều đó làm rõ cho bạn? OK. Đôi khi bạn sẽ có được những điều kỳ lạ mathy hơn. Nếu bạn đã có hầu hết này, bạn vẫn sẽ để get-- bạn sẽ làm khá tốt. Tín dụng một phần là rất điều lớn về câu đố, CS50. Vì vậy, viết những gì bạn biết. Nếu bạn có tất cả mọi thứ ngoại trừ ở đây, bạn vẫn đi làm thực sự tốt vấn đề. Bởi vì bạn đang hiển thị, OK, tôi gần như biết. Tôi biết rằng tôi cần phải lặp qua. Tôi biết những gì tôi cần phải kiểm tra. Tôi chỉ không hoàn toàn được làm thế nào để chuyển đổi nó. Bạn sẽ được OK. Vâng, bạn sẽ mất một vài điểm, nhưng bạn vẫn sẽ nhận được một số lượng tốt của các điểm cho một cái gì đó như vậy nếu bạn thiếu hai dòng. Tôi sẽ như OK, người này biết những gì họ đang làm. Toán là khó khăn. Vì vậy, tôi sẽ nói rằng bạn muốn được tốt. OK, vì vậy bạn đã sẵn sàng cố gắng strlen với con trỏ tại rằng các bạn là bậc thầy con trỏ? Vì vậy, tôi sẽ cho các bạn làm việc trên đó cho một chút. Nếu có ai cần một bồi dưỡng. Vì vậy, bạn muốn sử dụng con trỏ số học, và sau đó nếu s là null, thực hiện của bạn sẽ trở về 0. Những điều như thế này mà làm cho bạn thực sự hạnh phúc chỉ cần gọi strlen vào cuối ngày. Tôi nghĩ rằng điều này có thể là một chút dễ dàng hơn so với lần trước, mà là tốt. Tôi sẽ cung cấp cho các bạn một phút, và sau đó chúng tôi sẽ làm việc thông qua nó. Và sau đó chúng tôi nhận được để đi đến chuyển mạch. OK, anh chàng đã sẵn sàng? Có lẽ một chút. Vì vậy, tôi đã đưa cho bạn của bạn hai lựa chọn, phải không? Hoặc kiểm tra cho null và trở về 0 nếu nó được, hoặc thực sự tính toán chiều dài. Vì vậy, những ai muốn viết kiểm tra null? Đi cho nó. Đung Nếu ngoặc s tương đương với bằng rỗng trở về 0. ALLISON BUCHHOLTZ-AU: Lovely. Tôi yêu khi một nửa vấn đề của bạn chỉ được kiểm tra cho null. Tôi biết với các bạn cuối cùng tuần tôi đã được như kiểm tra cho null nghĩa là tất cả các thời gian. OK, so-- Đung Nếu trở về 0 là chỉ có một dòng, Chúng ta vẫn cần các dấu ngoặc nhọn? ALLISON BUCHHOLTZ-AU: Bạn không kỹ thuật cần chúng như dài, bạn phù hợp. Đó là thực hành tốt chỉ để có được trong thói quen của việc sử dụng dấu ngoặc nhọn, nhưng về mặt kỹ thuật không. Bạn không cần họ cho một dòng. Chúng tôi chỉ có xu hướng giới thiệu nó cho những người bắt đầu chương trình. Vì vậy, bây giờ những gì chúng tôi có thể muốn làm ở đây? Vì vậy, bây giờ chúng ta biết rằng chuỗi của chúng tôi là hợp lệ. Chúng tôi muốn giữ lại tính toán chiều dài. Những gì có thể là người đầu tiên điều chúng tôi muốn làm gì? ĐỐI TƯỢNG: Tạo int đó là chiều dài. ALLISON BUCHHOLTZ-AU: Chính xác. Đung Và chúng tôi muốn đặt nó vào? ALLISON BUCHHOLTZ-AU: 0. Perfect. Được rồi. Bây giờ những gì muốn làm gì? Đây thực sự là số lượng lớn của nó. Đi cho nó. Đung Vì vậy, bạn có thể làm cho vòng lặp. Và sau đó kể từ khi bạn gọi của bạn nhận được địa chỉ của điều đầu tiên, bạn sẽ bắt đầu với tôi bằng 0. Và sau đó miễn là x cộng với tôi không phải là trở lại giảm 0. ALLISON BUCHHOLTZ-AU: The terminator null. Đung The terminator null. Sau đó, bạn thêm một đến chiều dài. ALLISON BUCHHOLTZ-AU: Yeah. OK, vì vậy cho phép lần lượt là vào mã rất cụ thể. Nhưng đó là ý tưởng hoàn hảo. Đó là chính xác những gì chúng tôi đang làm. Chúng ta sẽ được iterating thông qua với con trỏ. Vì vậy, những gì chúng tôi muốn làm là thay vì một int ở đây, bởi vì chúng tôi không đề cập đến một nó. Chúng tôi đang đề cập đến sự bắt đầu của một chuỗi, bắt đầu là một số địa chỉ, phải không? Vì vậy, chúng tôi muốn có một con trỏ. Vì vậy, chúng ta sẽ có một số ngôi sao char, bởi vì nó tương ứng với chúng ta, phải không? Vì vậy, đây là một số điểm chúng ta đang khởi tạo để bắt đầu của chuỗi, OK? Vì vậy, chúng ta hãy chỉ gọi nó là i. Nếu đó là sự bắt đầu của chuỗi, những gì nó sẽ được giao cho? Không 0. Chúng tôi muốn nó là bắt đầu của chuỗi của chúng tôi. Đại diện cho những gì bắt đầu chuỗi của chúng tôi đã được trao cho chúng ta? Đung Chỉ cần s. ALLISON BUCHHOLTZ-AU: s. Vì vậy, điều này tạo ra một số con trỏ mới đại diện cho sự khởi đầu của chuỗi của chúng tôi, OK? Một cách khác để nghĩ về nó giống như đây là mảng của chúng tôi. Đó là chuỗi của chúng tôi, s. Vì vậy, hãy nói điều này là vị trí đầu tiên, và đây là 0x4. 04. Đây là của chúng ta, mà giữ địa chỉ đó. Và chúng tôi vừa tạo ra một số khác gọi là i mà chỉ đề cập đến những điều tương tự. Vì vậy, chúng đều chỉ trỏ để bắt đầu chuỗi của chúng tôi. Đây chỉ là một đại diện đồ họa. Vì vậy, bây giờ những gì chúng tôi muốn làm là chúng tôi muốn lặp điều kiện của chúng tôi cho lặp lại thông qua chuỗi của chúng tôi. Bây giờ đi mua sắm. Có để mua sắm, guys. Là chúng tôi muốn giữ cho đến khi cập nhật chúng ta đến terminator null, phải không? Vì vậy, những gì mà có thể như thế nào? Chúng ta có muốn tôi, hay chúng ta muốn sao tôi là câu hỏi? Là terminator vô địa chỉ hoặc một cái gì đó nằm tại một địa chỉ? Tọa lạc tại một địa chỉ, phải không? Vì vậy, chúng ta cần tới đích của bất cứ điều gì ở đây, bởi vì đây chỉ là một số địa chỉ. Để thực sự có được để bắt đầu chúng ta cần phải tới đích này để chúng tôi thực sự có được những gì trong vị trí đầu tiên này. Vì vậy, nếu chúng ta làm sao tôi, những gì chúng ta không muốn nó bằng nhau? Đung lại dấu gạch chéo? ALLISON BUCHHOLTZ-AU: Có. Điều đó có ý nghĩa với tất cả mọi người? Chúng tôi cần phải đi vào chuỗi của chúng tôi và hãy chắc chắn rằng nó không phải là kết thúc. Và sau đó chúng tôi chỉ có thể cập nhật như thế này. Cập nhật bình thường. Vì vậy, miễn là đây là những met, những gì chúng ta cần phải làm gì? Đung Chiều dài cộng với cộng với. ALLISON BUCHHOLTZ-AU: Mm-hm. Và sau khi cho vòng lặp chấm dứt, những gì chúng tôi muốn trở lại? Đung Chiều dài? ALLISON BUCHHOLTZ-AU: Chiều dài. Có bạn đi. Rõ ràng là thịt của một này là sự hiểu biết này cho vòng lặp. Có tất cả mọi người được làm thế nào mà làm việc? Tôi đang hạnh phúc để đi qua nó một lần nữa. Đung thứ hai một phần, vì vậy sao tôi có, đó là địa chỉ của first-- ALLISON BUCHHOLTZ-AU: Đó không phải là địa chỉ. Đó là những gì tại. Đung Đó là thực tế ở đó. ALLISON BUCHHOLTZ-AU: Đó là những gì thực sự ở đó. Vì vậy, đây là saying-- cho tôi thực hiện điều này tốt hơn. Vì vậy, đây là 0x04, và tôi chỉ cần đi để nói rằng tôi sẽ làm cho tên này của tôi. OK. Vâng, tôi biết tôi phải xem xét lại bài kiểm tra tối nay. Rất nhiều đánh giá bài kiểm tra. Vì vậy, hãy nói rằng chuỗi này là tên của tôi, Allison. Chút lộn xộn, nhưng nó có. Và s đại diện cho vị trí nơi mà các chuỗi bắt đầu, vì vậy tôi sẽ thực hiện điều này real-- đây là địa chỉ của một, nơi string bắt đầu, phải không? Vì vậy, những gì chúng ta làm ở đây là chúng ta muốn sử dụng con trỏ để lặp qua. Vì vậy, chúng tôi tạo ra một số con trỏ, i, mà cũng bằng sự bắt đầu của chuỗi. Và tại mỗi điểm, chúng tôi muốn tiếp tục đi qua các mảng ở đây cho đến khi chúng ta nhấn terminator null. Vì vậy, chúng tôi luôn luôn muốn kiểm tra những gì tại mỗi địa chỉ này. Vì vậy, chúng tôi tới đích, để lần đầu tiên chúng tôi làm điều đó, chúng tôi nói, OK, những gì tại địa chỉ 0x04? Đây là một một. OK, chúng tôi đang tốt. Tăng chiều dài. Di chuyển sang một trong những tiếp theo. Vì vậy, i-- nhớ con trỏ tăng theo kích thước của bất cứ điều gì họ đang trỏ đến. Vì vậy, trong trường hợp này, vì nó một char, nó sẽ cập nhật một. Vì vậy, bây giờ chúng tôi sẽ xem xét 5, có nghĩa là nó đang xảy ra ở đây. Vì vậy, nó nói OK, đi đến 0x05. Có gì trong đó? Đây là một l. Và nó sẽ tiếp tục làm điều đó cho đến khi nó chạm này. Và nó nói OK, những gì trong bất cứ địa chỉ này? Terminator null, OK. Exit. Và chỉ trả lại chiều dài. Bởi vì bạn cần những gì thực sự ở địa chỉ đó, không phải là địa chỉ chính nó. Có rất ít những nơi bạn thực sự cần địa chỉ. Hầu hết thời gian khi bạn đang sử dụng và nó khi bạn đầu tiên gán một con trỏ hoặc khi bạn đang đi qua nó vào chức năng khác. OK, tất cả mọi người tốt không? Loại? OK. Vì vậy, có vẻ như chúng tôi đã có khoảng 12 phút còn lại, vì vậy chúng tôi sẽ đi vào có lẽ vấn đề cuối cùng của chúng tôi, và sau đó có bất kỳ các khái niệm đã đi lên trong khi chờ đợi chúng ta có thể nhanh chóng đi qua đó. Vì vậy, chuyển đổi bánh răng được cuối cùng vấn đề ở đây, chuyển đổi báo cáo. Vì vậy, công việc của bạn là để viết lại này để nó cư xử như nhau nhưng không sử dụng thiết bị chuyển mạch. Tay phấn. Vì vậy, bất kỳ câu hỏi về điều này off the bat? Không có? OK. Có tất cả mọi người hiểu rằng nếu trường hợp không có bất cứ điều gì sau khi nó, nó có nghĩa là nó phải thực hiện theo các bước tiếp theo? Vì vậy, trường hợp 1 và 2 trong trường hợp này làm chính xác những điều tương tự. Đôi khi một điểm của sự nhầm lẫn. Được rồi. Bất cứ ai có bất kỳ ý tưởng? Yeah? Đung Vì vậy, bạn có thể chỉ cần làm nếu báo cáo. ALLISON BUCHHOLTZ-AU: Mm-hm. Vì vậy, một đầu tiên của chúng tôi là gì? Đung Nếu n bằng bằng 1, và 2 dòng cho hay n equals bằng 2, sau đó in nhỏ. Và sau đó bạn có thể làm khác nếu? Hoặc có thể bạn chỉ cần làm một nếu? ALLISON BUCHHOLTZ-AU: Bạn có thể làm khác nếu? Đung nó có vấn đề gì nếu bạn làm gì nếu? ALLISON BUCHHOLTZ-AU: Vì vậy, nó. Có anyone-- vậy, bạn sẽ nhận được đầu ra tương tự nếu bạn sử dụng chỉ IFS so với nếu bạn sử dụng IFS khác. Các bạn có thể nghĩ về lý do lý do tại sao bạn có thể muốn sử dụng một khác nếu so với rất nhiều IFS? Đã có hiệu quả. Yeah? Đung Nó sẽ kiểm tra tất cả các IFS mỗi lần. ALLISON BUCHHOLTZ-AU: Vì vậy, ngay cả khi nó chạm đầu tiên này, nó sẽ đi kiểm tra mỗi một khác. Vì vậy, bạn muốn sử dụng nếu người nào khác IFS trong các trường hợp mà chỉ có một trong số họ bao giờ sẽ được áp dụng. Vì vậy, loại trừ lẫn nhau là những gì chúng ta có xu hướng nói. Nếu bạn có một bó của IFS, nó có nghĩa là rằng có thể nhiều hơn một trong số họ các vấn đề, và có thể nhiều hơn một trong số họ có thể là sự thật. Và bạn muốn cả hai để thực hiện nếu họ thật sự. Nếu bạn chỉ muốn một trong số họ để làm việc trong những trường hợp loại trừ lẫn nhau, bạn muốn sử dụng khác nếu, vì tất cả đã làm với hiệu quả. Mã của bạn chỉ được thiết kế tốt hơn nếu nó tuân thủ các thực hành này. Vì vậy, trong trường hợp này chúng tôi sẽ có một người nào khác nếu. Và điều này sẽ là gì? Đung n bằng bằng 3. ALLISON BUCHHOLTZ-AU: Perfect. Vừa Print. Và sau đó trong cuối cùng của chúng tôi trường hợp, chúng ta có gì? Khác hoặc khác nếu? Đung khác. ALLISON BUCHHOLTZ-AU: Do chúng tôi want-- Bạn muốn else if bởi vì chúng tôi có trường hợp cụ thể. Nó không phải loại một nắm bắt tất cả. Nếu bạn đã có một mặc định trong một switch-- nhớ chuyển mạch bạn có thể có trường hợp, và sau đó bạn có mặc định. Nếu bạn đã có một mặc định, đó là loại các tuyên bố khác của bạn ở đó. Nhưng nếu nó chỉ có trường hợp, điều đó có nghĩa bạn cần kiểm tra để xem nếu nó là mỗi người. Vì vậy, trong trường hợp này, nó sẽ là 4 hoặc 5. Chúng tôi muốn có một bản in ra. Đó là lớn. Và có bạn đi. Và đó sẽ là chương trình của bạn. Vì vậy, trong trường hợp này nếu chúng tôi đã có một mặc định một cái gì đó, chúng tôi sẽ có một người nào khác trong bất cứ điều gì nó muốn chúng tôi làm. Vì vậy, đó là một sự phân biệt tốt để biết, để hiểu. Điều đó giúp với thiết bị chuyển mạch cho bạn? Perfect. Được rồi. Chúng tôi có khoảng tám phút còn lại. Do you guys có bất kỳ khái niệm cao cấp khác? Câu hỏi nói chung? Có? Đung tôi đã có một câu hỏi về một trong số họ đó là về ngẫu nhiên máy phát điện số trên bài kiểm tra không. ALLISON BUCHHOLTZ-AU: Oh, một trong đó. Đó là một trong là một trong những nơi khác nó là toán học hơn than-- có. Các giải pháp để that-- thậm chí tôi khi Tôi nhìn thấy nó, tôi giống như những gì này là. Đung Đó là số 7. ALLISON BUCHHOLTZ-AU: Thật kỳ lạ trong quan điểm của tôi. Vì vậy, về cơ bản bạn muốn sử dụng drand48, mà sẽ cung cấp cho bạn một số số giữa 0 và 1. Và bạn muốn sử dụng nó để bạn bằng cách nào đó có được a-- và nó nhiều hơn nữa của một vấn đề toán học với tôi hơn tôi nghĩ rằng một vấn đề CS. Cách mà bạn làm it-- và đôi khi nó sẽ chỉ được như thế. Một lần nữa, đây là những trường hợp nó là loại giống như viết những gì bạn có thể và tín dụng một phần. Vì vậy, nếu chúng ta muốn quay trở lại, chúng ta biết rằng chúng tôi sẽ được sử dụng drand48 một cách nào đó, phải không? Vậy tại sao chúng ta không chỉ ghi rằng xuống. Chúng tôi đang sử dụng nó một cách nào đó. Cách mà họ có các bạn sử dụng nó là như thế này, mà tôi sẽ cố gắng giải thích. Vì vậy, về cơ bản những gì xảy ra ở đây là bởi vì nó là giữa 0 và 1, những gì bạn đang làm là bạn đang nhân by-- này là có rất nhiều câu hỏi toán học. Chỉ cần đầy đủ từ chối trách nhiệm, đây là hoàn toàn là một câu hỏi toán học. Những gì bạn đang làm là vì 0 và 1 và bạn muốn nó được trong vòng phạm vi này, bạn thực sự tìm ra cách lớn phạm vi là, và sau đó bạn về cơ bản quy mô nó lên, đó là những gì đang thực hiện. b trừ cung cấp cho bạn một phạm vi đó, sự khác biệt giữa những con số. Bạn có thể nhân giữa 0 và 1, và sau đó thêm một chỉ có nghĩa là bạn nhân rộng nó lên để nó giữa a và b, mà tôi đã không thực sự thích vấn đề này. Như tôi đã nói, bài kiểm tra này có nghĩa là để bao gồm những người kém thoải mái, một nơi nào đó ở giữa, và thoải mái hơn. Vì vậy, nếu họ làm cho nó để rằng đó là một cái gì đó rằng tất cả mọi người tại ít nơi thoải mái sẽ nhận được, chúng ta sẽ có quá nhiều người ghi perfects, và thoải mái hơn sẽ cảm thấy nhàm chán. Vì vậy, họ luôn luôn có những loại câu hỏi trêu ghẹo não có nghĩa là để có một chút khó khăn hơn rằng có một số tư duy sáng tạo. Khi bạn nhìn thấy chúng, không nhận được quá stumped. Tôi chắc chắn sẽ nói lật thông qua bài kiểm tra đầu tiên của bạn. Giải quyết các vấn đề mà bạn biết bạn có thể, bởi vì không có sử dụng bị mắc kẹt về một vấn đề khi có ba hoặc bốn hoặc năm trên trang sau đó bạn có thể dễ dàng làm được. ĐỐI TƯỢNG: Tại sao chính xác làm bạn nhân với phạm vi? ALLISON BUCHHOLTZ-AU: Bạn nhân phạm vi đó bạn know-- nó giống như bao nhiêu sau một nào bạn muốn? Vì vậy, bạn có thể nghĩ đến, bởi vì nó trả về một số giữa 0 và 1, bạn có thể nghĩ về nó như là một tỷ lệ phần trăm. Vì vậy, nó về cơ bản nói rằng nếu chúng ta có dòng số lượng của chúng tôi ở đây, một là ở đây, và b là ở đây. Bạn giống như bao nhiêu một quá khứ không? Là tất cả chúng ta đang làm. Vì vậy, bạn chỉ cần yêu cầu cho các tỷ lệ phần trăm của phạm vi này, mà là những gì nó đem lại cho bạn. Và sau đó bạn về cơ bản chỉ quy mô nó lên bằng cách thêm một. Đó là một lời trêu ghẹo não toán học. Nếu có bất kỳ lời khuyên phút cuối cùng, tôi sẽ nói lật qua các câu hỏi, tìm ra những người bạn biết rằng như thế, oh Tôi đã nhận này. Hầu như chắc chắn họ sẽ là câu hỏi mà bạn sẽ không biết hoặc rằng bạn sẽ có thời gian cho, do đó nhấn mạnh của bạn, OK? Các bạn sẽ tuyệt vời. Có rất nhiều câu hỏi cho một lý do, để bạn có thời gian để loại có cơ hội để chứng minh những gì bạn đang thực sự tốt tại. Vì vậy, nó là OK nếu bạn không tốt ở tất cả mọi thứ. Chơi với thế mạnh của bạn. Có? Đung Vì vậy, điều này sẽ trả lại cái gì đó là cắt ngắn? Có, nó sẽ, vì drand lợi nhuận giữa 0 và 1. Nó sẽ trả lại một int, bởi vì nó sẽ cắt ngắn khi chúng tôi thêm một hoặc nhân với nó. Cool. Bất kỳ câu hỏi phút cuối cùng? Các bạn sẽ làm rất tốt. Bạn đang đi đến là tuyệt vời. Và thậm chí nếu không, sẽ có có kẹo ở đây vào tuần tới. Và em sẽ yêu anh. Tôi sẽ yêu các bạn không phân biệt. Tất cả các bên phải, tất cả mọi người, chúc may mắn. Có một thời gian tuyệt vời. Bạn sẽ được tốt. Và bạn biết gì không? Trong hai ngày nó sẽ là hơn, trong khi tôi có hai midterms vào thứ năm, vì vậy ít nhất là các bạn sẽ được thực hiện. Được rồi, tôi sẽ gặp các bạn vào tuần tới.