[MUSIC CHƠI] DAVID Malan: Tất cả quyền này là CS50 và đây là kết thúc của một tuần. Vì vậy, tôi muốn giới thiệu trước đây của tôi advisee, Andel Duff, người không chỉ làm cho iPhone 5 đứng, cũng như này bục giảng, ông cũng làm cho xe ô tô. Ansel Duff: Thế nào rồi, tất cả mọi người? Tôi chỉ muốn nói với bạn một chút chút về Formula SAE, trong đó có tôi là đội trưởng. Đây là một nhóm nghiên cứu MIT. Tôi chỉ muốn nói với bạn chàng trai một chút về nó và hy vọng tạo ra một số lợi ích. Vì vậy, hãy để tôi chạy qua một vài điều về đội tuyển của chúng tôi. Vì vậy, chúng tôi hoàn toàn chạy sinh viên, trong đó tất cả của các thành viên thiết kế, mô phỏng, kiểm tra, và nhà sản xuất một hệ thống phụ của chiếc xe. Chúng tôi có cửa hàng máy tính của riêng của chúng tôi và nhà để xe, và N52-- hoặc xin lỗi, N51-- đó là cùng một tòa nhà như Bảo tàng Khoa học MIT. Và chúng tôi là những người mà lái xe. Có một cuộc thi quốc gia vào đầu mùa hè, và sau đó có loạt đá luân lưu nhỏ hơn các cuộc thi trong suốt cả năm. Và sau đó chúng tôi đào tạo lái xe ngày để các thành viên mới làm quen. Ngày của chúng tôi là xây dựng trên Thứ Bảy 11:00-20:00. Bữa trưa và bữa tối được chăm sóc của, từ của Bertucci và Beantown tương ứng. Chúng tôi có một cuộc họp hàng tuần và hội thảo, đó là tín chỉ khóa học. Đó là mới như của học kỳ này, và nó cũng sẽ được cho học kỳ tiếp theo, vì vậy bạn có thể vượt qua-reg cho điều đó. Và sau đó chúng tôi có thiết kế, cửa hàng, và CAD ngày trong tuần, trong khi đó các thành viên sẽ độc lập CAD phần, cổ phiếu để vân vân. Vì vậy, cho điện kỹ thuật tại đội chúng tôi có kéo của chúng tôi, hệ thống điện cao thế, chạy ở một danh nghĩa 300 volt, trong đó bao gồm động cơ, bộ điều khiển động cơ, và gói pin. Sau đó, chúng ta có một thấp hệ thống điện, chạy 12 V, trong đó bao gồm điều khiển, các nút CAN, não hộp, và bảng điều khiển. Theo CS đi, chúng tôi có bảo trì trang web mà chúng ta cần thực hiện cho các sự kiện, thành viên thay đổi, hình ảnh mới, và các tài liệu PR. Và sau đó chúng tôi có mã điều khiển xe để kiểm soát độ bám đường của chúng tôi, ra mắt kiểm soát, kiểm soát dấu gạch ngang, mô-men xoắn véc-tơ, và hệ thống phanh tái tạo, trong đó chạy thường trong MATLAB, Simulink, và LabVIEW. Giới thiệu với bạn một chút về chiếc xe. Vì vậy, nó là khoảng 500 pounds. Đó là quy tắc hạn chế đến 85 KW. Nó có 2 EMRAX 207 động cơ trong trở lại, một cho mỗi bánh xe phía sau. Nó có tùy chỉnh xây dựng gói pin từ các tế bào túi A123 lăng trụ, tổng cộng 300 volt và 5,6 kilowatt giờ. Và đó là ổ đĩa trực tiếp với tỷ lệ 2,64-1 ổ đĩa. Dưới đây là một số hình ảnh chúng tôi mất của nó ở cạnh tranh. Dưới đây là hình nón trở lại, mũi, và đây là động cơ, những đĩa lớn màu đen bên dưới et mens manus. Dưới đây là một hoạt động mà tôi kéo ra khỏi chương trình thi đấu của chúng tôi. Và đây chỉ là so sánh xe của chúng tôi để một vài chiếc xe thương mại có sẵn, như KTM XBOW, Ariel Atom, và Caterha M 7-280. Nếu bạn đã quen thuộc với giá cả, điện kéo trọng lượng, đô la cho mỗi mã lực, đô la cho mỗi mô-men xoắn, và xe của chúng tôi thổi chúng ra khỏi nước. Nếu bạn có bất kỳ câu hỏi, ghi lại địa chỉ email này. Bắn chúng tôi qua email fsae@mit.edu. Chúng tôi vui mừng để nói về bất cứ điều gì bạn muốn. Sinh viên Harvard là loại các dân tộc thiểu số trong nhóm. Nếu bạn có thắc mắc về mà hãy làm bắn email cho chúng tôi, rất vui khi được nói chuyện, và tôi sẽ để quay trở lại giao cho David. Cảm ơn. Tôi đánh giá cao nó, các cậu. [Vỗ tay] DAVID Malan: Ansel đã dành mùa hè làm việc với chúng tôi ở đây trong khuôn viên trường trong CS50 mùa hè này. Và ngoài làm việc trên những thứ như bóng đèn nhị phân, ông thực sự thực sự mở ra của chúng tôi eyes-- và mỏ particular-- với những gì thực sự là giao điểm của không phải của phần cứng và phần mềm có thể được. Trong thực tế có rất nhiều những điều ông chỉ đi thăm bạn thông qua là cuối cùng tạo ra đầu tiên trong các phần mềm, và sau đó cuối cùng là chế tạo trong thế giới thực trong phần cứng. Vì vậy, nếu bạn quan tâm đến khám phá ngã tư đó, có lẽ mất nhóm đó. Bây giờ trong khi đó, những người bạn của là người hâm mộ của công nghệ, và các sản phẩm của Apple trong đặc biệt biết rằng có là một vài thông báo ngày hôm qua. Nhưng chúng tôi nghĩ rằng chúng tôi sẽ hiển thị một bạn có mặt trên một vài ngày trước đó bạn có thể không nhìn thấy. Jorgen EGHAMMER: Bạn biết đấy, một lần trong một cái gì đó một lúc đi cùng mà thay đổi cách chúng ta sống. Một thiết bị rất đơn giản và trực quan sử dụng nó cảm thấy gần như quen thuộc. Giới thiệu 2.015 cửa hàng IKEA. Nó không phải là một cuốn sách kỹ thuật số hoặc một cuốn sách điện tử, đó là một cuốn sách, cuốn sách. Điều đầu tiên cần lưu ý là không có cáp, thậm chí không một dây cáp điện. 2015 Danh mục IKEA đi kèm sạc đầy, và tuổi thọ pin là vĩnh cửu. Giao diện là 7,5 8 inch, nhưng có thể mở rộng đến 15 8 inch. Việc chuyển hướng dựa trên cảm ứng xúc giác công nghệ mà bạn thực sự có thể cảm thấy. Nội dung được cài đặt sẵn qua 328 trang độ nét cao về cảm hứng cho những ý tưởng trang trí nội thất. Để bắt đầu duyệt, chỉ cần chạm và kéo. Phải sang trái để di chuyển về phía trước, trái sang phải để di chuyển về phía sau. Chú ý cái gì khác? Đúng vậy. Không tụt hậu. Mỗi trang tinh thể rõ ràng tải ngay lập tức, không có vấn đề làm thế nào nhanh chóng, bạn di chuyển. Nếu bạn muốn có được một cái nhìn tổng quát, chỉ cần giữ nó trong lòng bàn tay của bạn, và chỉ sử dụng ngón tay cái của bạn, tốc độ trình duyệt nội dung. Nếu bạn tìm thấy một cái gì đó bạn muốn lưu cho sau này, bạn chỉ có thể đánh dấu nó. Và ngay cả khi bạn đóng ứng dụng, bạn có thể dễ dàng tìm thấy các dấu một lần nữa. Tuyệt vời. [Cười] [Vỗ tay] Vì vậy mà chúng tôi mang đến cuối tuần một. Một vài thông báo bây giờ. Vì vậy, cắt Cắt giờ được tiến hành. Tới URL này ở đây đôi khi từ nay đến thứ sáu vào buổi trưa để thực sự xác định xem bạn có trong số những người ít thoải mái, hơn thoải mái, hoặc một nơi nào đó ở giữa. Điều này thường là một trong những những điều mà bạn chỉ cần loại biết. Và trong thực tế, những người bạn của những người ít thoải mái có thể biết càng nhiều, những người bạn của những người có nhiều thoải mái biết càng nhiều, và một lần nữa nếu bạn không khá chắc chắn mà những xô bạn rơi vào bạn có lẽ ở đâu đó ở giữa. Nhưng yên tâm, bạn có thể trao đổi sau một vài tuần nếu cần thiết. Trong khi đó, trong tuần tới chúng ta không bắt đầu phần cho mỗi gia nhập, nhưng siêu phần, trong đó dành cho tất cả sinh viên. Điều này đến chủ nhật tại một địa điểm để được công bố trên trang web trình chúng tôi sẽ có một cho những người kém thoải mái, cũng như một cho những người thoải mái hơn. Và những người ở đâu đó ở giữa có thể chọn trong hai, hoặc cả hai nếu bạn muốn, để ngồi ở trên. Và tâm điểm của những sẽ là cuối cùng trên C, mà chúng tôi sẽ tiếp tục của chúng tôi cuộc trò chuyện của ngày hôm nay. Vấn đề đặt 0 trong khi đó là hy vọng trong tay của bạn. Chính thức vào ngày mai do, Thứ năm, vào buổi trưa. Trừ khi quý vị rút tiền trong một 5 ngày cuối của bạn, mà sẽ mang lại cho nó cho đến thứ sáu vào buổi trưa. Vấn đề thiết lập 1 trong khi đó sẽ đăng trên trang web của khóa học. Và đây sẽ là lần đầu tiên của chúng tôi bước đột phá như là một lớp vào C. Và đó là vấn đề thiết lập thông số sẽ hướng dẫn bạn thông qua nhiều cơ chế gì chúng tôi bắt đầu nói về ngày Thứ hai, và chúng tôi sẽ tiếp tục nói về ngày hôm nay. C, Linux, CS50 thiết bị, tất cả điều đó sẽ chờ đợi bạn trong các đặc điểm kỹ thuật. Giờ làm việc trong khi đó đang được tiến hành, trong phòng ăn học. Đi đến URL này đây để xem lịch trình tối nay và ngày mai, nếu bạn muốn tham dự. Các câu hỏi trong khi đó, để bạn có cơ hội để đặt câu hỏi không đồng bộ, 24/7, nhận ra bạn không giới hạn phần và văn phòng giờ, mà là công cụ này ở đây, CS50 Thảo luận tại URL đó sẽ được trực tuyến của khóa học phần mềm bảng thông báo, thông qua đó bạn có thể đặt câu hỏi các bạn cùng lớp và cũng có nhân viên. Vì vậy, hãy nhớ rằng tài nguyên là tốt. Trong khi đó một truyền thống bắt đầu vào thứ sáu này. Như bạn có thể nhìn lướt qua từ teaser video thứ tư trước, chúng ta có một truyền thống nhất mỗi thứ sáu trong nhiệm kỳ lấy khoảng 50 sinh viên và nhân viên một nhà hàng địa phương gọi là Fire và Ice, mà tại đó chúng tôi thường tham gia của một số cựu sinh viên hoặc bạn bè từ ngành công nghiệp để thường khao khát để tạo ra một lớp lớn cảm thấy nhỏ hơn. Vì vậy, đó là một bữa ăn trưa hoàn toàn bình thường. Một bó của chúng tôi, các nhân viên đặc biệt, sẽ đóng ghế âm nhạc và trò chuyện với học sinh về 50 tuổi, cuộc sống bên ngoài 50, cuộc sống trong tương lai, thế giới thực, Tôi đang nói về cơ hội việc làm với bạn bè trong ngành công nghiệp. Vì vậy, nếu bạn muốn tham gia với chúng tôi thứ sáu này, đi đến URL này ở đây. Không gian là có hạn, nhưng chúng tôi sẽ làm điều này recurringly trong suốt thời hạn. Đi để có cs50.harvard.edu/rsvp. Và nếu bạn không nhận được trong thời gian này, không phải lo lắng. Chúng tôi sẽ làm điều đó một lần nữa trong những tuần sắp tới là tốt. Vì vậy, đây là hình ảnh chúng ta vẽ tuần trước, và bạn đã có thể được thâm nhập cho đến nay. Nhưng chúng ta hãy cố gắng kết nối này ngay bây giờ với những gì chúng ta sẽ làm gì hôm nay trở đi. Tôi có thể có một tình nguyện viên? Được rồi, hoặc nhiều. Làm thế nào về đây trên kết thúc, trong màu áo xanh. Lên đây, tên của bạn là gì? Alana: Alana. DAVID Malan: Alana. Vì vậy, Alana, chỉ một moment-- tốt đẹp để đáp ứng anh-- sẽ đóng vai trò chức năng này tại đây. Các khối màu tím chúng tôi đã gọi là vậy, đến nay một chức năng. Vì vậy, những gì tôi sẽ đi trước đây và cung cấp Alana là tên thẻ nhỏ, để làm cho rõ ràng vai trò những gì bạn đang chơi. Vì vậy, bạn sẽ là khối nói. Nếu bạn muốn đi trước và đặt trên. Và chúng ta sẽ giữ này siêu đơn giản. Nếu mục tiêu trong tầm tay chỉ đơn giản là bây giờ để thực hiện với Alana, cái gọi là nói khối, đây là cách nó sẽ làm việc. Tôi have-- hãy gọi nó là một cuộc tranh luận hay tham số, nó thực sự chỉ là một tờ giấy trắng. Và đó là màu trắng để loại được gợi nhớ của hộp màu trắng vào đó bạn có thể viết lời. Trong khi đó tôi sẽ đi đây. Tôi sẽ đi trước và viết H-E-L-L O-dấu phẩy thế giới. Và bây giờ tôi, nói như các lập trình viên, không thực sự biết làm thế nào để nói điều gì đó. Tôi có thể đến với các từ, nhưng tôi không nhất thiết phải biết làm thế nào để thể hiện bản thân mình bằng lời nói hoặc trên màn hình. Và vì vậy những gì tôi sẽ làm là đưa tác phẩm này chức năng, có input-- hoặc đối số, như chúng ta sẽ gọi nó là, Tôi đã viết trên mảnh paper-- và tôi sẽ thuê ngoài nó. Và quả thực đó là vai trò của chức năng trong một ngôn ngữ lập trình có thể chơi. Một cái gì đó như tiếng nói khối có thể được thuê ngoài cho những người thực sự biết những gì cô ấy hoặc anh ta nói về. Vì vậy, nếu bạn sẽ bước qua đây chỉ là một thời điểm, Tôi sẽ vượt qua đầu vào này để Alana, và yêu cầu bạn nói đầu vào này. Alana: Xin chào, thế giới. DAVID Malan: Đó là nó. Vì vậy, có một chức năng. Bây giờ chúng ta có thể mang nó nhiều hơn một chút, chúng ta có thể tiến lên một bước ở đây. Bởi vì đó là rõ ràng underwhelming. Vì vậy, bây giờ chúng ta chuyển đổi này để một chút gì đó phức tạp hơn. Vì vậy, điều này tất nhiên là phiên bản C của chúng tôi. Vì vậy, bây giờ nếu bạn muốn đi mà một off, mà thẻ tên tắt, và chúng ta hãy có bạn đưa vào một tên mới. Nhưng về cơ bản bạn đóng vai trò tương tự, nó chỉ như vậy sẽ xảy ra được gọi là printf bây giờ. Câu chuyện là, tất nhiên, sẽ có thể be-- cũng giống như là underwhelming-- sẽ là như sau. Bây giờ bạn có chức năng printf. Tôi là người gọi, hoặc lập trình viên, những người muốn đứng trên vai những người người trong quá khứ như bạn, người đã tìm ra cách để thực sự viết một cái gì đó xuống. Và vì vậy thời gian này, thay vì nói nó cho phép của thực sự sử dụng màn hình của chúng tôi ở đây. Vì vậy, nếu bạn muốn bước ở đây, tôi sẽ để vượt qua điều này như một lần nữa đầu vào cho bạn bè printf của tôi. Nếu bạn có thể đi trước và in đó trên màn hình, chỉ đơn giản bằng cách vẽ với bạn ngón tay trên màn hình màu đen. Tuyệt vời. Được rồi, vì vậy rất nhiều hồi hộp cho làm thế nào mà sắp diễn ra. Vì vậy, bây giờ chúng ta hãy xem mọi thứ lên một notch cuối cùng, nếu chúng ta có thể, như sau. Vì vậy, đây là một chương trình C như chúng tôi đã nói thời gian qua. Và điều này chỉ làm những gì bạn đã làm, nó in ra màn hình, xin chào, thế giới. Mặc dù có rõ ràng là rất nhiều thứ mất tập trung ở đó. Nhưng chúng ta có những điều lên một notch và giới thiệu phiên bản này, mà nhớ lại là phiên bản thứ ba chúng tôi đã kết thúc với thời gian qua. Và bây giờ có rõ ràng hai ứng dụng printf. Có 2 cuộc gọi đến Alana trong trường hợp này cho printf, nhưng cũng có một cuộc gọi chức năng khác. Có chức năng rõ ràng là gì? GetString. Chúng ta có thể có được một tình nguyện viên nhiều hơn? OK, đi lên trên. Tên của bạn là gì? JAVIER: Javier. DAVID Malan: Javier, đi lên trên. Vì vậy, vai trò của Javier là mảnh giấy này. Mà tôi sẽ gọi quát s. Bây giờ đây là một biến, nó kiểu string, như ngụ ý do đó dòng thứ hai ở giữa có. Và tôi muốn bạn để đi làm cho tôi một chuỗi. Cụ thể đi xuống dàn nhạc phần và làm cho tôi tên của một ai đó, và trở lại với một biến chứa giá trị đó. Nó có thể là bất cứ ai bạn muốn. Ở đây chúng ta đi. Được rồi, Javier là viết ra tên. Tất cả các quyền. Chúng ta có thể có thể đoán như thế nào điều này sẽ diễn ra. Chúng tôi đang có lẽ belaboring điểm gì một chức năng là làm, nhưng dù sao cũng cảm ơn bạn rất nhiều. Vì vậy, Javier đã trở lại chuỗi này ở đây, trong đó, không thể hoàn toàn thấy, Jonathan là một chuỗi mà chúng tôi đã nhận được. Vì vậy, bây giờ những gì tôi thực sự sẽ để cung cấp cho Alana mặc dù là một chút gì đó khác nhau. Bởi vì trong phiên bản này của chương trình, lần đầu tiên có ghi tên của bạn. Vì vậy, các tham số đầu tiên Tôi cần phải cung cấp Alana có là có được nghĩa là họ tên của bạn. Được rồi, vì vậy đơn giản như vậy Tôi sẽ bàn này cho bạn. Và khi tôi viết lên Đối số tiếp theo, nếu bạn muốn đi trước và viết này trên bảng, chúng ta hãy đi trước và làm ví dụ cuối cùng ở đây để làm rõ ràng cuối cùng là những gì đã xảy ra. Vì vậy, họ tên của bạn, viết nó về phía đầu nếu bạn không nhớ, chỉ để chúng tôi có chỗ cho một dòng thứ hai. Bởi vì điều cuối cùng tôi sẽ đến nay cung cấp cho bạn không phải là một, nhưng hai mảnh giấy. Tất cả các quyền. H-E-L-L-O dấu phẩy và sau đó một dòng trống. Vì vậy, những gì tôi về bàn Alana giờ là một chút gì đó khác nhau. Không chỉ là cô nhận được điều này, nơi điền vào chỗ trống đại diện percent-- rằng những gì là giữ chỗ, chúng tôi đã sử dụng? Yeah, vì vậy phần trăm s. Trong khi đó tôi sẽ vượt qua của mình trong một cuộc tranh luận thứ hai, là chính xác những gì Javier lấy từ Jonathan. Vì vậy, hãy để tôi cung cấp cho bạn hai. Nếu bạn muốn, đi trước và in hiệu lực đó. Cuối cùng là những gì xảy ra bây giờ là, Alana lại đang chơi vai trò của printf. Javier đã chơi vai trò của GetString. Vì vậy, đó sẽ là món quà lưu niệm của bạn. Và cuối cùng những gì đang xảy ra, mặc dù này hello-- vâng đi trước và dấu phẩy. Alana: Tôi có nhận được điều này được nêu hay không? DAVID Malan: Đúng, bạn nhận được cả hai cùng một lúc. Vì vậy, ý tưởng là bạn bây giờ có thể lật trang để xử lý thứ hai của hai yếu tố đầu vào. Vì vậy, đây chỉ là búa nhà chỉ rằng trong khi thực hiện Alana dòng màu xanh lá cây này ở đây, và sau đó Javier đã làm điều này một cho chúng tôi và trả lại cho tôi một cái gì đó chúng tôi sẽ gọi s, nhưng nó đã thực sự chỉ là mảnh giấy của riêng mình. Và bây giờ Alana đã làm dòng thứ ba này. Và mặc dù tất cả những điều này có vẻ nên vô cùng khó hiểu có lẽ ở cái nhìn đầu tiên, nó thực sự là đơn giản như vậy. Đi qua đầu vào xung quanh, nhận được kết quả đầu ra, hoặc được thể chất giao lại một cái gì đó, hoặc nhìn thấy một tác dụng phụ như thế này. Một cái gì đó trực quan bằng văn bản trên màn hình. Vì vậy, chúng ta hãy đi trước và cảm ơn Alana và Javier, người đã xuống đây, cho tham gia với chúng tôi ở đây. [Vỗ tay] Vì vậy, bây giờ chúng ta hãy đưa cho các cấp như thế nào đơn giản tất cả có thể được. Và chúng ta hãy tiến hành thực làm điều gì đó trong mã thực tế. Vì vậy, trên màn hình, đây là một ảnh chụp màn hình của cái gọi là thiết bị CS50. Và nếu bạn có để ở, như một 02:00 vào buổi chiều thứ tư, giải thích cho một số người bạn những gì các thiết bị CS50 là, làm thế nào bạn có thể xác định nó trong một câu? Bất kỳ một câu? Vâng? HỌC SINH: Nó giống như một chương trình mà làm cho máy tính của mọi người chạy với cùng một hệ thống. DAVID Malan: Tốt! Đó là một chương trình cho phép tất cả mọi người của máy tính để chạy với cùng một hệ thống. Đó là loại của riêng bạn bản sao của một hoạt động hệ thống điều đó xảy ra được gọi là Ubuntu Linux. Và nó chạy hiệu quả bên trong một cửa sổ trên máy Mac hoặc máy PC của bạn, do đó cách này phải ra khỏi cổng trong tuần 1, tất cả mọi người ở đây trong lớp có quyền truy cập vào các công cụ tương tự, cùng cấu hình, và không có đường cong học tập cụ thể sang một máy Mac hoặc PC nói riêng. Bây giờ chúng ta mở ra, bên trong CS50 thiết bị ngày Thứ hai, chương trình này ở đây. Nó xảy ra được gọi là gedit. Nhưng đó là thực sự chỉ một trình soạn thảo đồ họa. Đó là một cái gì đó như Notepad hoặc Text Chỉnh sửa trên Windows hoặc Mac OS tương ứng. Và tôi đã đề xuất có thực sự ba phần quan trọng đối với màn hình này. Phía trên là nơi bạn sẽ viết mã của bạn. Và đó là nơi chúng tôi đã dành nhiều của chúng tôi ba ví dụ trong bài giảng hôm thứ hai. Phía dưới, chúng tôi gọi là gì, cửa sổ màu đen này, yeah? HỌC SINH: biên dịch? DAVID Malan: biên dịch chúng tôi truy cập bằng cách của cửa sổ đó. Nhưng nói chung hơn. Yeah, nó chỉ là một cửa sổ terminal. Đây là một hạn tuổi già mà chỉ mô tả bản chất là một nhấp nháy nhanh chóng, mà năm trước đây sử dụng được trên một trong những màn hình kiểu CRT lớn. Nhưng ngày nay nó sắp xếp ảo trong phần mềm. Và các cửa sổ thiết bị đầu cuối hãy cho chúng tôi gõ lệnh. Nó loại các phiên bản đơn giản giao diện người dùng hoặc giao diện người dùng. Nó không phải là một đồ họa giao diện người dùng hoặc giao diện, đó là một giao diện dựa trên văn bản hoặc một giao diện dòng lệnh. Và quả thực đó là nơi cuối cùng Tôi đã có thể viết một số mã. Một khi tôi đã viết một số mã mặc dù, nhớ lại rằng tôi đã sử dụng lệnh này. Và khi nó tên loại cho thấy, điều này cho phép tôi để thực hiện một chương trình gọi là Hello. Nhưng những gì được nó thực sự làm gì? Cũng làm được việc của tôi đầu vào, mã nguồn của tôi, và chuyển đổi nó với những gì, cuối cùng? Mã đối tượng. Và mã đối tượng chỉ là một ưa thích cách nói số không và những người thân. Và một khi tôi muốn để chạy mã đối tượng, khi tôi muốn vượt qua như là đầu vào những số không và những người vào máy tính của tôi não, cái gọi là CPU hoặc đơn vị xử lý trung tâm, Tôi đã phải chạy chương trình. Nhưng đó không phải là khá đơn giản vào thứ Hai như chỉ tăng gấp đôi cách nhấn vào một số biểu tượng. Thay vì những gì đã làm tôi phải làm để chạy một chương trình? Rằng lệnh thứ hai là gì? Tôi nghe một dấu gạch chéo ít? Có, yeah? HỌC SINH: Dot giảm và Tên của chương trình. DAVID Malan: Chính xác. Dot giảm và tên của chương trình. Bây giờ đã làm điều này có nghĩa là gì? Vâng chấm chỉ là một cách phức tạp nói mục hiện hành. Dù bạn đang ở trong thư mục là tham chiếu như là, được biểu diễn như là dấu chấm. Các dấu gạch chéo chỉ là những gì bạn đã nhìn thấy trong Mac OS và Windows trong nhiều năm, đó là một dấu phân cách giữa một thư mục hoặc thư mục và phần còn lại của một số tên. Trong Windows nó sẽ xảy ra đi ngược lại, trong Linux và Mac Hệ điều hành nó sẽ xảy ra đi về phía trước. Nhưng nó chỉ là dấu phân cách, vì vậy nó chỉ là một chi tiết cú pháp nhàm chán. Phần ngon ngọt của khóa học là tên của chương trình, Hello. Và đó là những gì làm được tạo ra cho chúng ta. Nó xuất ra tập tin đó cho chúng ta. Nhưng làm thế nào chúng tôi có được đến thời điểm đó? Bây giờ chúng ta yêu cầu câu hỏi, những gì đã thực sự xảy ra ở đây, ít nhất là với Đối với một số cú pháp này? Vì vậy, trong một câu hay như vậy, làm thế nào chúng tôi giải thích đi Dòng đầu tiên này đó là đánh dấu màu xanh? Những gì là dòng đầu tiên làm, Đối với chương trình của tôi với? Vâng? HỌC SINH: [không nghe được]. DAVID Malan: Nói lại lần nữa? HỌC SINH: Bao gồm và tải về chức năng qua [không nghe được]. DAVID Malan: Tốt. Bao gồm cả, tôi sẽ không nói tải về, nhưng chúng ta hãy nói bao gồm cả chức năng người đã viết trong quá khứ. Và những chức năng được thực hiện nơi nào đó trong máy tính của tôi. Một người nào đó đã viết một tập tin năm trước, và tập tin là một nơi nào đó bên trong CS50 thiết bị, hoặc trên ổ cứng của tôi nói chung. Và vì vậy dòng này là cơ bản nói, đi tìm tập tin đó, tiêu chuẩn I / O dot h, và sao chép và dán nội dung của nó ngay trên đầu trang của tập tin của tôi vì vậy mà tôi không cần phải làm điều đó bằng tay mình. Và trong số các mảnh juiciest bên trong tập tin mà chúng ta tuyên bố chức năng là những gì? Chức năng những gì chúng tôi đã nói được tuyên bố hoặc được đề cập trong tiêu chuẩn I / O chấm h có khả năng nhất? Printf, phải không? Chúng tôi đã không viết printf trên Thứ hai, nó chỉ tồn tại. Giống như Alana chỉ đến lên sân khấu và cô chỉ tồn tại và biết làm thế nào để vẽ một cái gì đó trên màn hình, do đó, hiện printf tồn tại trong nhiều năm. Và vì vậy đây là cách chúng tôi truy cập vào nó. Bây giờ nếu chúng ta di chuyển vào đây, chính là tương tự chúng tôi nói với các mảnh ghép gọi khi lá cờ màu xanh lá cây nhấp trong thế giới của Scratch. Nó chỉ là loại của tên mặc định mà con người quyết định sẽ đại diện cho mặc định điểm khởi đầu cho một chương trình. Các đoạn mã lập trình mà được thực hiện đầu tiên. Trong khi đó các dấu ngoặc nhọn là giống như hình dạng cong của rất nhiều những mảnh đầu màu vàng. Họ loại đóng gói toàn bộ loạt các hướng dẫn với nhau. Vì vậy, nó chỉ là loại liên kết với nhau một số chức năng liên quan. printf tất nhiên là một chức năng mà in màn hình, như chúng ta chỉ cần làm. Những gì về những dấu ngoặc đơn? Làm thế nào bạn sẽ define-- ngay cả khi bạn đã không bao giờ được lập trình trước, nhưng chỉ dựa bây giờ ngày càng tăng hy vọng trực giác, những gì được dấu ngoặc làm cho chúng ta ở đây? Hoặc những gì họ xung quanh? Vâng? HỌC SINH: Họ đang nói gì bạn sẽ in với printf. DAVID Malan: Vâng, họ đang nói gì bạn sẽ in với printf. Hay rộng hơn, họ xung quanh các yếu tố đầu vào cho hàm. Vì vậy, bạn gần như có thể nghĩ những dấu ngoặc đơn như là giống như kim loại clip trên vào clipboard này. Đó là những gì đang nắm giữ, đó là những gì sẽ được sử dụng để cung cấp luận cứ vào chức năng, mà trong trường hợp này được gọi là printf. Vì vậy, nói chung hầu hết các Hiện chúng ta gọi là một chức năng, chúng ta sẽ thấy một cặp dấu ngoặc đơn. Có lẽ với một cái gì đó trong nó, như bây giờ, có lẽ không có gì trong đó. Nhưng đó là nơi bạn sẽ đặt đầu vào hoặc cái gọi là đối số đến một chức năng. Đây là một lập luận như vậy. Tôi đã nêu bật tất cả mọi thứ giữa dấu ngoặc kép, bởi vì nó chỉ ra bằng ngôn ngữ này được gọi là C, khi bạn muốn đại diện cho một string-- đó là một từ hoặc một cụm từ hoặc thậm chí một paragraph-- bạn phải bao quanh nó với dấu ngoặc kép. Không có dấu ngoặc kép đơn, dấu ngoặc kép. Và đó chính xác là những gì tôi đã thực hiện ở đây. Trong khi đó có một sôi nổi biểu tượng về phía cuối đó. Các dấu gạch chéo ngược n. Chúng tôi đã nói gì đó đại diện? Vâng? HỌC SINH: Một dòng mới. DAVID Malan: dòng mới. Phải, bạn không thường nhấn Enter khi bạn muốn chương trình nhổ ra một dòng mới. Thay vào đó bạn nói với nó một cách rõ ràng với mảnh thừa nhận phức tạp này cú pháp, dấu gạch chéo ngược n, mà bạn muốn có một dòng sản phẩm mới đến đó. Cuối cùng là dấu chấm phẩy. Chúng tôi đã không thực sự nói chuyện quá nhiều về điều này, và cho đến nay đây sẽ là nguyên nhân suy sụp của một số về sự tồn tại của bạn cho vấn đề đầu tiên thiết lập, khi bạn chỉ thất bại trong việc nhận ra bạn đã quên một cái gì đó ngu ngốc như một dấu chấm phẩy. Và nói chung đặt nó sẽ khắc phục vấn đề đó. Nhưng những gì nó làm cho chúng tôi, bạn sẽ nói gì? HỌC SINH: [không nghe được]. DAVID Malan: Xin lỗi? HỌC SINH: [không nghe được]. DAVID Malan: Kết thúc một tuyên bố. Nó giống như thời kỳ ở sự kết thúc của một câu tiếng Anh, trong khi đó ngôn ngữ này C nó kết thúc một tuyên bố. Một hướng dẫn của chương trình mã mà bạn chỉ muốn nói, Tôi đang thực hiện với điều này. Bây giờ nhận thấy rằng là người duy nhất ở đây. Vì vậy, bạn không muốn để có được trong một thói quen đặt dấu chấm phẩy sau mỗi lần đóng ngoặc. Ví dụ có không bên cạnh làm mất hiệu lực, và chúng tôi sẽ trở lại trong tương lai những gì có nghĩa là vô hiệu. Nhưng trong trường hợp này printf của bạn là một chức năng, hoặc một tuyên bố được sử dụng, và vì vậy chúng tôi muốn có mà ga cuối ở cuối của nó. Và tôi cố tình chọn vào C. Và thẳng thắn rất nhiều ngôn ngữ như C, C ++, Java, JavaScript, và bất kỳ số lượng các ngôn ngữ khác có rất nhiều các loại chi tiết cú pháp. Đó chắc chắn nếu bạn là người mới chương trình thực sự có thể chuyến đi bạn lên. Và bạn sẽ, đánh dấu của tôi từ, một số bạn sẽ có kinh nghiệm này trong giờ hành chính hoặc cuối vào ban đêm làm việc trên một số p-set, nơi chương trình chết tiệt của bạn chỉ cần không biên dịch, nó không chạy, bạn có không có ý tưởng gì sai, có vẻ như hoàn toàn logic đúng cho bạn. Và đó là bởi vì bạn quên một cái gì đó như đánh một dấu chấm phẩy ở cuối của một số dòng. Nhưng đó là những loại vật bạn sẽ ngay lập tức tìm hiểu xem. Và thực sự đó là những điều đó và lực lượng đặc nhiệm của của CA có được đào tạo loại để xem nhanh hơn so với bạn. Và vì vậy đây chỉ là để nói, khi bạn đi sâu vào vấn đề thiết lập 1 đặc biệt, không nhận được thất vọng bởi công cụ này. Một khi bạn loại thích nghi với thế giới, bạn bắt đầu thấy những điều mà bạn có thể không nhìn thấy ở cái nhìn đầu tiên trong tuần đầu tiên này. Vì vậy, mã nguồn là một cái gì đó như thế. Chúng tôi muốn vượt qua nó vào trình biên dịch được gọi là. Và đó là trình biên dịch chúng tôi đã nói cung cấp đầu ra được gọi là mã đối tượng, cái gọi là số không và những người thân. Nhưng từ đó, điều đó cho chúng ta? Nó cũng cho chúng ta những mô hình. Và một lần nữa máy tính của bạn, Intel bên trong của bạn, hiểu được những mô hình số không và những người thân. Và đôi khi mô hình đại diện một số thập phân thực tế như chúng ta đã thấy tuần trước, đôi khi nó đại diện cho một thư như chúng ta đã thấy tuần trước, đôi khi nó đại diện cho một hướng dẫn, như in cái gì đó ra màn hình. Vì vậy, printf cho instance-- nhưng thay vào đó, hãy để tôi quay lại. Chúng tôi đã dùng cho các cấp rằng những số không và những người thân sản xuất bởi lệnh này thực hiện. Nhưng làm cho không phải là một trình biên dịch. Làm cho không phải là điều ở giữa đó là sản xuất các số không và những người thân. Thay vì thực hiện chỉ là một rất thuận tiện chương trình có tên có mục đích trong cuộc sống chủ yếu là để tìm ra làm thế nào để biên dịch chương trình của bạn. Và chúng tôi sử dụng nó trong các tuần đầu tiên bởi vì nó chỉ tiết kiệm cho chúng tôi rất nhiều rắc rối. Nhưng những gì làm cho thực sự là làm khi bạn biên dịch hello, là, như chúng tôi đã nói thời gian qua, đó là tìm kiếm trên ổ cứng của bạn hoặc trong thư mục hiện hành, cho tập tin gọi là gì, rõ ràng? Hello.c, phải không? Đó chỉ là loại một quy ước. Đó là tùy ý, nhưng đó là cách mọi thứ. Thực hiện, nếu bạn chỉ cần chỉ định tên của một chương trình mà chưa tồn tại, nó sẽ tìm kiếm mã nguồn trong một tập tin, theo mặc định có nghĩa là hello.c. Và nếu nó tìm thấy nó, tuyệt vời. Nó sẽ chuyển đổi mã nguồn mã vào đối tượng mã cho bạn. Nhưng mỗi khi tôi đã nhấn Enter sau khi chạy làm hello, làm bạn nhớ lại lần cuối cùng nhìn thấy một khá dài và trình tự khó hiểu các chữ màu trắng khác và ký tự trên màn hình? Vâng đó là lệnh thực tế, trình biên dịch thực tế, đã được chạy. Vì vậy, các trình biên dịch thực tế chúng ta sẽ sử dụng hầu hết học kỳ là một cái gì đó gọi là kêu vang. Một số bạn có thể đã sử dụng Visual Studio trước khi, hoặc GCC, hoặc bất kỳ số lượng các trình biên dịch khác. Chúng tôi sẽ sử dụng kêu vang. Và kêu vang cho phép chúng ta thực sự chuyển đổi rằng mã nguồn để đối tượng mã. Những gì thực hiện điều này thực sự có nghĩa là trong thực tế? Vâng hãy để tôi đi vào một trong thư mục của tôi từ thời gian qua. Bên trong thiết bị CS50. Và hãy để tôi đi trước và tạo này cùng một tập tin, bao gồm tiêu chuẩn I / O dot h. Int void main. Và chúng ta sẽ quay trở lại trong tương lai khi những gì int phương tiện và những khoảng trống phương tiện. Nhưng bây giờ chúng ta hãy làm dấu gạch chéo ngược chào thế giới n, giống như chúng tôi đã làm trên diễn đàn. Hãy để tôi lưu tập tin này được gọi là hello.c. Và bây giờ nếu tôi muốn biên dịch này Tôi could-- cho tôi phóng to chạy in-- thực hiện chào nhập. Và điều này một lần nữa lại dòng rất khó hiểu. Nhưng bây giờ ít nhất một từ có thể nhảy ra ở bạn. Kêu vang là dòng chúng ta đã thấy trước đây. Bây giờ có rất nhiều công cụ khác thẳng thắn rằng chúng tôi sẽ vẫy tay của chúng tôi tại cho ngày hôm nay. Nhưng có một vài tập con, một vài nhân vật trong đây được quan tâm. Nhưng tôi sẽ đi trước và làm điều này. Tôi sẽ chạy đầu tiên hello, chỉ để chứng minh rằng điều này đang làm việc vì nó là thứ hai. Nhưng bây giờ tôi sẽ xóa các chương trình. Và cũng giống như chúng tôi đã có những tên ngắn thời gian qua, lệnh để loại bỏ một cái gì đó là rm, loại bỏ, nhập. Bạn sẽ nhận được một số câu hỏi khá khó hiểu. Khó để tin rằng bạn có thể làm thậm chí câu hỏi này khó hiểu. Tuy nhiên, loại bỏ các tập tin thường xuyên chào chỉ có nghĩa là bạn có muốn xóa hello. Và tôi có thể đi trước và gõ y cho có, Enter, và bây giờ nó đã biến mất. Điều này có nghĩa là bây giờ, nếu tôi xóa màn hình của tôi, là thay vì làm cho bạn hello-- biết những gì, tôi nhận được tốt lúc này. Tôi sẽ chạy trình biên dịch bản thân mình. Tôi không cần một số chương trình để tìm ra những gì được gọi là tập tin của tôi. Tôi đã viết hello.c, tôi biết những gì nó được gọi là, Tôi rõ ràng có khả năng gõ đó. Vì vậy, tôi sẽ đi trước và đừng kêu vang hello.c Enter. Dường như làm việc. Và không có thêm đầu ra, vì kêu vang là trình biên dịch. Đó là những gì đang chuyển đổi mã nguồn để số không và những người thân. Vì vậy, nếu bây giờ tôi làm dấu chấm giảm chào Enter, hm. Thông báo lỗi mới ngày hôm nay. Vì vậy, bash chỉ là tên của nhấp nháy nhắc nhở rằng chúng ta đang sử dụng. Đó là một tổng sự đơn giản, nhưng bây giờ đó là tất cả có nghĩa là, đó là dấu nhắc nhấp nháy. Và đó là lý do tại sao nó la hét vào chúng tôi. Không có tập tin hoặc thư mục là nhiều hơn một chút đơn giản. Nhưng chắc chắn tôi đã có mã đối tượng. Tuy nhiên, nắm bắt được, mà nếu tôi gõ lệnh để xem nội dung này thư mục, đó là những gì? ls cho danh sách. Có một loạt các công cụ ở đây, một số trong đó đi kèm với thiết bị, như thư mục Desktop của tôi, Downloads thư mục, thư mục Dropbox, và tất cả những thứ đó. Nhưng điều thú vị là hello.c, mà Tôi tạo ra một chút thời gian trước đây với gedit. Và kỳ lạ nhất là những gì tìm kiếm tên ở đây, có lẽ chúng ta đã không nhìn thấy lần cuối cùng ở tất cả? a.out, phải không? Vì vậy, trở lại trong ngày, nó chỉ quyết định khi bạn biên dịch một chương trình lần đầu tiên, và bạn không chỉ định tên của một tập tin, chúng ta hãy gọi nó là một. Và chỉ có nghĩa là a.out này đầu ra của trình biên dịch. Vì vậy, nó là một cái tên khủng khiếp cho một chương trình. Nhưng theo logic đó, dot giảm cho thư mục hiện hành, giảm a.out, nên có nghĩa là có trong thực tế tôi xin chào chương trình thế giới. Bây giờ một chút ấm lên tập thể dục, quá. Nếu tôi muốn đổi tên này tập tin, chỉ ra rằng bạn di chuyển một tập tin từ một tên khác. A.out Vì vậy, mv, và sau đó tôi có thể gọi nó chào Enter. Vì vậy, đây là một lệnh Linux. DOS đã có nhiều năm trước đây, Windows có một cửa sổ terminal của một số loại giống như thế này, Linux và Mac máy tính có dấu nhắc nhấp nháy này. Mặc dù hầu hết chúng ta có thể hiếm khi sử dụng nó. Nhưng những gì tôi đã làm là chạy một chương trình, có tên là mv, và tôi đã cung cấp nó với hai đối số, vậy để nói chuyện. Hai yếu tố đầu vào. a.out là tên ban đầu. Xin chào là tên mới. Vì vậy, nếu bây giờ tôi làm dấu chấm dấu gạch chéo hello, Enter, mà tồn tại. Và nếu tôi làm dấu chấm dấu gạch chéo a.out, làm những gì bạn mong đợi tôi sẽ thấy? Bash, không có tập tin hoặc thư mục. Bởi vì tôi chỉ cần đổi tên nó. Vì vậy, điều này cần có một chút nhận được sử dụng để. Nhưng vấn đề đặt 1 đặc điểm kỹ thuật sẽ thực sự giữ bàn tay của bạn thông qua một số minutae này. Bởi vì đây là một hoàn thành mất tập trung trí tuệ từ thú vị hơn ý tưởng ở bàn tay, mà là thực sự tạo ra một cái gì đó ra khỏi mã. Nhưng chúng ta hãy làm một sửa đổi nay đến chương trình này. Nhớ lại rằng thời gian qua tôi đã làm một cái gì đó như thế này, printf xưng danh của mình. Và thực sự, chúng tôi chỉ làm điều này trên màn hình lớn ở đó. Và sau đó tôi đã làm chuỗi s được GetString dấu ngoặc mở, dấu ngoặc đóng. Và dấu ngoặc chỉ là viết tắt ký hiệu cho dấu ngoặc đơn. Vì vậy, không có bất kỳ đối số GetString? Không có đầu vào không có, nhưng nó cần các dấu ngoặc đơn, bởi vì đó là những gì demarcates sự kêu gọi của một chức năng. Vì vậy, tôi sẽ đi trước và cố gắng chạy trình biên dịch vào chương trình này ngay bây giờ. Kêu vang hello.c, bởi vì tôi không thay đổi tên của nó bây giờ. Và tôi có một loạt các sai sót. Hãy nhìn vào đây. Nếu tôi di chuyển lên một lần nữa, như tôi đã nói thời gian qua, đến, cùng một lỗi đầu tiên mà tôi nhận được thời gian qua. On line 6 hello.c tôi đã có một chuỗi định không khai báo, Tôi có nghĩa là tiêu chuẩn? Tôi thì không. Bởi vì những gì sai lầm tôi đã có trong này chương trình, nếu bạn nhớ lại lần trước không? Vâng, chúng ta cần cái gọi là bánh xe đào tạo rằng chúng tôi sẽ chỉ sử dụng cho một vài tuần. Nhưng tôi cần phải xác định rằng cũng có, một nơi nào đó bên trong của thiết bị, là một tập tin mà chúng tôi đã viết chỉ là một vài năm trước đây. Bên trong đó là chức năng như rõ ràng GetString. Vì vậy, bây giờ nếu tôi quay trở lại xuống đây, phóng to, và chạy lại kêu vang hello.c. Chết tiệt, một lỗi khác. Nhưng chúng tôi đã không nhìn thấy điều này trước đây. Điều này là nhiều hơn một chút bí truyền để tìm ra. Nhưng điều này là cố ý trên màn hình, bởi vì chúng tôi muốn kể câu chuyện này. Khi bạn biên dịch hello.c, cũng giống như các hình ảnh từ trước khi đề nghị, bạn chỉ chuyển đổi mà mã nguồn để số không và những người thân. Bây giờ nhân viên CS50 một vài năm trước đây đã viết CS50.h, và một tập tin tương ứng, CS50.c. Và chúng tôi, một vài năm trước đây, biên soạn các tập tin vào một tập tin điều đó xảy ra để được gọi là CS50.o. Hoặc nó có thể được đổi tên thành một vài điều khác nhau. Nhưng đó là một cách đơn giản suy nghĩ về nó. Vì vậy, chúng tôi biên soạn của CS50 thư viện thành số không và những người thân. Nhưng không nơi nào có tôi đã chỉ định mà tôi muốn kết hợp zero của tôi và những người cho thế giới chào của tôi chương trình với các số không và những người thân rằng nhân viên CS50 tạo ra một vài năm trước đây vào một chương trình hoàn chỉnh. Tất cả tôi đã chỉ định bằng văn bản hello.c kêu vang là biên dịch hello.c. Tôi đã không nói với kêu vang để liên kết trong số không và những người thân rằng nhân viên CS50 tạo cho bạn một số thời gian trước đây. Vì vậy, nó là một sửa chữa dễ dàng, dash l cho liên kết, CS50. Và chúng ta sẽ thấy điều này một lần nữa chẳng bao lâu nữa và một lần nữa. Nhưng hãy chú ý bây giờ không có khiếu nại. Vì vậy, bây giờ nếu tôi chạy dấu chấm dấu gạch chéo xin chào, bây giờ nó làm việc. Mặc dù đó là một chút sai lầm kể từ khi tôi chỉ tái tạo những tập tin? a.out. Vì vậy, hãy để tôi quay lại chỉ một khoảnh khắc. Các chương trình chúng tôi đã biên dịch có ba dòng mã. Khi tôi chạy hello thế giới, xin chào một thời điểm trước đây, tôi không thấy nêu tên của bạn. Và đó là bởi vì tôi chạy phiên bản cũ của chương trình. Nhưng nếu tôi thực sự chạy dấu chấm dấu gạch chéo a.out Nhập, ghi tên của bạn, Rob, xin chào, thế giới. Hm. Đó là loại lỗi. Có lẽ muốn nói Rob, phải không? Vì vậy, việc sửa chữa những gì ở đây trong mã. HỌC SINH: [không nghe được]. DAVID Malan: Chính xác. Vì vậy, tôi chỉ cần làm cho rằng ngắt cuối cùng vì vậy mà tôi đang đi qua trong một giữ chỗ, như một điền vào chỗ trống, như chúng ta đã làm một thời điểm trước đây. Nhưng phần trăm của giờ là mà điền vào chỗ trống. Vì vậy, cuối cùng chúng ta hãy tiết lộ mới nhất chi tiết để không có phép thuật. Tôi sẽ đi trước và thoát khỏi hellow. Tôi sẽ đi trước và thoát khỏi a.out. Vì vậy, bây giờ tôi không có chương trình, chỉ mã nguồn của tôi. Và tôi sẽ chạy một lệnh hơi dài, kêu vang dash o chào hello.c dấu gạch ngang LCS50. Bây giờ điều này đang bắt đầu loại đi trong một tai và ra khác có thể. Nhưng chỉ trêu chọc nhau những gì đang thực hiện. Kêu vang là trình biên dịch, dấu gạch ngang LCS50 cố tình vào cuối làm những gì trong một câu? Liên kết đến các thư viện CS50. Lấy các số không và những người mà các nhân viên thực hiện và nhồi nhét chúng vào chương trình của riêng tôi. Vì vậy, câu hỏi cuối cùng là ở bàn tay, là những gì có thể dash o chào làm, ngay cả khi bạn chưa bao giờ nhìn thấy cú pháp này trước khi? Xuất ra một chương trình đó là không đặt tên là a.out mặc định. Thay vào đó nó được đặt tên hello. Vì vậy, bây giờ không có a.out. Không có tập tin hoặc thư mục, vì tôi đã nói một cách rõ ràng gọi chương trình này xin chào, để Bây giờ tôi có thể gõ vào một tên như thế và có nó cư xử. Bây giờ mà nói, cậu bé là nhàm chán có nhớ tất cả điều đó minutia chút, phải không? Vì vậy, chúng ta hãy đi trước và thoát khỏi chào một lần nữa. Và bây giờ chúng ta quay trở lại một thế giới mà nó đủ để nói xin chào làm. Nhưng đó là sự kỳ diệu mà thực hiện là làm cho bạn, đó là sự nhàm chán mà nó làm cho bạn. Và như các chương trình của chúng tôi và vấn đề trở nên phức tạp hơn, làm cho thực sự sẽ là bạn của bạn. Bởi vì không phải là quá dài từ nay chúng ta sẽ có các chương trình được viết không phải với một tập tin, nhưng một số tập tin, và thực hiện sẽ tự động hóa quá trình biên dịch tất cả điều đó cho chúng ta với nhau. Vì vậy, bây giờ in. printf là bên trong của tập tin này, tiêu chuẩn I / O điểm h, chúng ta đã thấy trước đây, nhưng có nhiều printf hơn. Có n dấu gạch chéo ngược, nhưng cũng có một loạt các trình tự thoát khác. Và dãy thoát chỉ là một là cách nói một cái gì đó bắt đầu với một dấu gạch chéo ngược, không phải là một dấu gạch chéo, dấu gạch chéo ngược, và thực hiện một số điều đặc biệt. Và chúng tôi sẽ không dừng lại ở hầu hết các, nhưng tại sao lại có dấu gạch chéo ngược giá gấp đôi, Bạn nghĩ sao? Tại sao lại có chuỗi kỳ lạ này ký tự, dấu gạch chéo ngược giá gấp đôi, lý do tại sao có thể có ích? HỌC SINH: [không nghe được]. DAVID Malan: Chính xác, phải không? Hãy nhớ lại chương trình thế giới hello của chúng tôi mà chúng tôi đã nhìn thấy một vài lần bây giờ, mỗi lần chúng ta đã nhìn thấy rằng hello thế giới chương trình chúng tôi đã có dấu ngoặc kép bên trong trong số đó là chào dấu phẩy n thế giới dấu gạch chéo ngược. Nhưng nghĩ đến bản thân, nếu bạn thực sự muốn in ra một dấu ngoặc kép? Bản năng đầu tiên của bạn có thể được, tôi không biết tại sao tôi có thể muốn do-- đây, chúng ta có thể là một chút thụ động tích cực, xin chào bạn. Chúng tôi có thể muốn làm một cái gì đó như thế. Nhưng tại sao điều này bây giờ có vấn đề? Bỏ qua các dấu ngoặc kép nhọn sang một bên mà phát biểu quan trọng làm cho chúng ta tự động. Tại sao đây là vấn đề? Chính xác. Bởi vì chúng tôi có giống như 4 dấu ngoặc kép. Cũng là người đầu tiên có thể đi với một thứ hai, và có thể một phần tư đi với một phần ba, hay, ý tôi là tôi thậm chí không chắc chắn, cũng không phải là máy tính có được. Máy tính một lần nữa, các trình biên dịch một lần nữa, là khá ngớ ngẩn. Họ sẽ chỉ làm những gì bạn nói với họ làm gì. Và nếu bạn không rõ ràng họ có thể sẽ ném ra một lỗi. Nếu bạn không rõ ràng như thế nào để làm bơ đậu phộng và mứt bánh sandwich những điều kỳ lạ có thể đến nơi. Đó là ý tưởng tương tự. Bây giờ chỉ cần nói có một số dãy thoát khác, nhưng chúng ta sẽ đến với những trước khi dài. Về cơ bản những thoát chuỗi đại diện cho một cái gì đó mà bạn có thể không có khả năng quá dễ dàng vào bàn phím, mà không gây nhầm lẫn cho máy tính. Bây giờ trong khi đó chúng tôi có giữ chỗ trong printf. Phần trăm d, mà cũng có thể được viết ở hầu hết các trường hợp theo phần trăm tôi, là một giữ chỗ cho kiểu dữ liệu? Loại giá trị? Một số thập phân. Vì vậy, thực sự chúng tôi sẽ bắt đầu sử dụng phần trăm tôi bởi vì nó một chút đơn giản, giống như một số nguyên. Phần trăm i. Một số nguyên sẽ xảy ra là số thập phân. Tỷ lệ phần trăm của chúng tôi đã nói là một giữ chỗ cho một chuỗi. Mà chỉ là một từ, một cụm từ, một đoạn văn, một bài luận, bất cứ điều gì. Đó là một chuỗi các nhân vật của một số chiều dài. Và chúng ta sẽ thấy chẳng bao lâu một số người khác. Nhưng phần trăm c là cho một nhân vật duy nhất. Phần trăm e là cho một nổi số điểm, như một số thực có một điểm thập phân ở trong đó, mà tất nhiên là không phải là một số nguyên. Và có một toàn bộ bó của những người khác. Trong khi đó trong C, và trong rất nhiều ngôn ngữ, chúng tôi có các loại dữ liệu khác nhau. Các loại bát thủy tinh nếu bạn sẽ. Bát tôi đã sử dụng lần cuối cùng đã cho quả bóng ping pong, nhưng chúng ta cũng có thể lưu trữ khác nhau giá trị như ký tự và chuỗi và số nguyên trong một container, như một biến, và C có này. Char là loại dữ liệu, kiểu của biến, trong đó bạn có thể lưu một ký tự. Float là một loại biến trong mà bạn có thể lưu trữ một số thực. Int là của khóa học cho một int. Và khá lố bịch đặt tên một lâu dài là nơi bạn có thể lưu trữ cơ bản một số thực sự dài, thậm chí nhiều chữ số sau đó một điển hình int lưu trữ sức mạnh. Nhưng chúng tôi sẽ trở lại mà chẳng bao lâu. Trong CS50 chấm h trong khi đó tập tin tiêu đề khác mà chúng tôi đã nhìn thấy một cặp vợ chồng thời gian sử dụng, có hai loại dữ liệu khác không tồn tại trong C thường. Một là chuỗi, và chúng ta sẽ thấy trong một vài tuần về chuỗi thực sự là dưới mui xe. Và một là bool. Và một bool là một biến chỉ có thể đưa vào giá trị nhất định. Và chỉ dựa vào tuần trước giải thích về Scratch, và gần đây hơn C, những gì bạn sẽ đoán là hai giá trị có thể cho một số container là loại bool? Có và không. Một và không. Đúng hay sai. Và quả thực đó là người cuối cùng có xu hướng là thông thường trong một chương trình ngôn ngữ, nói điều gì đó như đúng hay sai. Trong khi đó, thư viện CS50 đến với một loạt các chức năng rằng các nhân viên đã viết cho bạn, bên cạnh việc chỉ nhận được một chuỗi. Chúng tôi đã viết trong các chức năng trước đó có thể nhận được một số nguyên từ người sử dụng, có được một nhân vật duy nhất, có được một phao, mà chỉ là một số với dấu thập phân. Nhận một lâu dài, thực sự có giá trị lớn từ người sử dụng. Vì vậy, chúng ta chỉ nhìn thấy điều này trong hành động theo hình thức GetString. Tuy nhiên, thông qua các chức năng này sẽ sớm có thể viết chương trình có được đầu vào từ người sử dụng. Trong khi đó xem xét việc này chương trình, và xem xét làm thế nào bây giờ chúng ta có thể bắt đầu thêm nó với cấu trúc mới. Một tour du lịch cơn lốc nhanh và sau đó chúng tôi sẽ xem xét tại một số văn bản số chương trình bằng tay mình. Từ nay trở đi nếu chúng ta muốn thực hiện một điều kiện, nó sẽ trông không giống như một đẹp chút khá mảnh ghép. Nó sẽ tìm kiếm nhiều hơn một chút phức tạp. Nhưng điều này là kinh điển cấu trúc của một tình trạng trong C. Từ khi hai ngoặc đơn, bên trong đó là có được một số loại của biểu thức Boolean. Bây giờ các dấu gạch chéo dấu gạch chéo ở giữa, đây là tại thời điểm giống như đang giả giữ chỗ. Nhưng đúng hơn, bất kỳ dòng mã trong C bắt đầu với dấu gạch chéo dấu gạch chéo là một nhận xét. Nó giống như một lưu ý dính mà có lẽ bạn đặt trên một bài luận, in trên giấy. Đó là một lưu ý cho chính mình. Nó không có chức năng ảnh hưởng đến chương trình. Đó là loại một lời nhắc nhở, nó là của riêng bạn tài liệu hướng dẫn như những gì đang xảy ra. Vì vậy, làm được điều này vào lúc này là sắp xếp của một giữ chỗ cho bất cứ điều gì bên trong những dấu ngoặc nhọn cuối cùng là sẽ làm một cái gì đó. Trong khi đó bạn có hai nhánh trong đường, nếu một người nào khác xây dựng như thế này. Bạn có thể nếu, elseif, khác. Bây giờ nó là đáng chú ý, đặc biệt là nếu bạn đã được Googling xung quanh trực tuyến với các nguồn lực ra khỏi tò mò, hoặc nếu bạn nhận một trong những khóa học của sách đề nghị trên C, bạn sẽ thấy rằng con người có rất nhiều sở thích khác nhau về cách thức thể hiện bản thân trong mã. Một số người thích đặt dấu ngoặc nhọn như tôi đã làm ở đây. Một số người thích đặt xoăn niềng răng ví dụ ở đây. Một số người thích đặt elses ở đây và sau đó điều này ở đây. Có nhiều cách để viết mã, và không ai trong số họ là đúng cho mỗi gia nhập. Mặc dù có một vài đó là khá sai. Nhưng có no-- nếu điều này là cuối cùng là một cuộc tranh luận rất tôn giáo. Trong thực tế, một trong những khó chịu nhất điều về khoa học máy tính là cách khăng khăng khoa học máy tính có thể được. Và bạn sẽ tìm thấy theo thời gian thậm chí bạn phát triển sở thích cá nhân như thế nào mã của bạn nên xem xét. Không chỉ cư xử, không chỉ tạo ra sản lượng, nhưng làm thế nào nó sẽ giống về mặt thẩm mỹ. Vì vậy, những gì chúng tôi sẽ làm là hướng dẫn bạn trên đường hướng, bây giờ ít nhất, một phong cách CS50 tiêu chuẩn ít nhất giữ những điều thống nhất và dễ đọc. Nhưng thêm về những phân biệt trước khi dài. Một biểu thức logic trong C, nếu bạn muốn nói rằng nếu tình trạng này là đúng sự thật và điều kiện khác là đúng, bạn không viết chữ và, như bạn sẽ bằng tiếng Anh. Bạn thay vì sử dụng dấu và ký hiệu, vì lý do chúng tôi sẽ quay trở lại. Nếu bạn muốn nói hoặc bạn sử dụng hai thanh dọc, mà trên bàn phím Mỹ nói chung là trên Nhập tiếp theo chìa khóa để dấu gạch chéo ngược. Và điều này chỉ có nghĩa là nếu tình trạng này hoặc điều kiện khác điều này là đúng làm điều này. Trong khi đó có này Điều điên rồ, mà bạn sẽ có dịp sử dụng một lần trong một thời gian. Nhưng nó chỉ là một sự thay thế cách để thể hiện bản thân. Điều này, bây giờ, chúng ta hãy quy định, nó chỉ một cách sôi nổi thể hiện nếu, elseif, elseif, elseif, elseif. Nó chỉ là định dạng về các trường hợp, nơi bạn có nghĩa là liệt kê các giá trị bạn có thể muốn kiểm tra. Trong khi đó vòng. Chúng tôi nhìn thấy một so sánh Scratch với một vòng lặp. Và tôi sẽ vẫy tay tại những gì mỗi người trong số những điều này có nghĩa là. Nhưng chú ý rằng một vòng lặp sẽ rất thường bắt đầu với các từ khóa cho. Hoặc nó sẽ bắt đầu với các từ khóa trong khi. Hoặc nó sẽ bắt đầu với các từ khóa làm, và kết thúc với khi từ khóa. Nhưng những gì chúng tôi đang về để xem là những thứ như thế này. Đây là nói chung trong C, làm thế nào có lẽ bạn khai báo một biến và cung cấp cho nó một giá trị. Trong C nó không hiệu quả, như trong Scratch, bạn chỉ nói cho tôi một biến gọi là một cái gì đó. Bạn phải nói cho C và nói biên dịch của bạn, cụ thể hơn, loại giá trị mà bạn muốn đặt trong bát thủy tinh. Có một số nguyên? Nếu vậy, bạn phải nghĩa đen nói int và sau đó tên của biến, sau đó một dấu chấm phẩy. Nếu bạn muốn thay vì chuỗi và gọi nó s như tôi đã làm mã của tôi ở đây ngày hôm nay, bạn sẽ nói string s dấu chấm phẩy. Một khi bạn muốn cung cấp cho nó một giá trị sau đó bạn có thể sử dụng các dấu bằng, hay còn gọi là điều hành phân công. Và chú ý mỗi các dòng mã có dấu chấm phẩy ở kết thúc của nó. Nhưng thẳng thắn này chỉ nhìn một chút xấu xí. Tại sao tôi không thể nói với máy tính, cung cấp cho tôi một biến và khởi tạo nó bằng không. Đó là, cho tôi một bát thủy tinh rỗng. Trong khi bạn có thể. Và thế là một trong những án kêu gọi bạn sẽ phải làm cho phong cách theo thời gian được, bạn viết mã của bạn như thế này, hoặc bạn có loại làm sạch nó lên và gây ấn tượng người bằng cách viết hai dòng như chỉ là một. Và điều này sẽ được xem xét nói chung là một cách thanh lịch hơn viết mã của bạn phong cách. Chức năng chúng tôi tất nhiên nhìn thấy. Họ sẽ có định dạng này. Tên của một chức năng, một số ngoặc, và sau đó có thể một số thứ bên trong. Hoặc bạn có thể thấy công dụng của nhiều chức năng phụ bên cạnh, giống như một cái gì đó như thế này. Bây giờ là một tiếp tuyến, không trò đùa này ngay bây giờ có ý nghĩa? [Cười] Nó không có nghĩa là nó buồn cười, nhưng nó không lẽ làm cho một chút cảm giác hơn. Vì vậy, bây giờ chúng ta hãy đi vào Thiết bị CS50 một lúc. Và hãy để tôi mở ra một teaser ở đây. Và thực sự là một trong những lý do giới thiệu cửa hàng IKEA và nhấp nháy hình của iPhone một chút trước đã thực sự gắn liền với nhau thực tế là chỉ một vài năm trước đây, vào năm 2007, đoạn mã này là phát hành, được một trong những thực hiện đầu tiên của một phần mềm mà những gì được gọi là jailbreak. Đối với những người không quen, jailbreaking một cái gì đó giống như một điện thoại hoặc một chiếc iPhone có nghĩa là về cơ bản tìm ra cách để làm điều với nó rằng công ty người đã làm cho nó không có ý định. Cũng giống như bạn muốn cài đặt một số phần mềm mà không có trong các cửa hàng ứng dụng, jailbreak điện thoại của bạn mà bạn làm những điều như thế và nhiều hơn nữa. Nhưng những gì thú vị trong 2007-- và có được hàng chục phiên bản khác nhau những điều này kể từ đó, trong tất cả các loại languages-- là chương trình này ở đây, được gọi là iUnlock, đã thực sự được viết bằng C. Và vì vậy tôi kéo lên mã nguồn cho điều này, chỉ để loại cho bạn một số những điểm tương đồng với các cấu trúc chúng tôi đã thảo luận cho đến nay. Bây giờ có cách phức tạp hơn ở đây hơn chúng ta đã nhìn thấy đã có trong lớp. Hãy để tôi di chuyển lên một chút ở đây. Nhưng hãy chú ý these-- cũng chúng tôi nhận thấy một vài things-- nhưng nhận thấy những dòng này ở đây, bao gồm cả tiêu chuẩn I / O dot h. Và cả-- dòng 24, please-- nhận tiêu chuẩn I / O điểm h và một bó toàn bộ khác các tập tin mà mọi người dường như khác đã viết. Và nếu chúng ta di chuyển xuống qua này, ít tùy tiện, việc thông báo tôi không biết làm thế nào để viết tất cả những điều bản thân mình nhất thiết nào, nhưng nếu có. Vì vậy, rõ ràng này có một chi nhánh. Và nếu tôi di chuyển xuống một chút tiếp tục có khác nếu. Nếu tôi di chuyển lên, tôi nghĩ trên đường 100, tôi thấy cho. Vì vậy, tôi không khá chắc chắn làm thế nào các công trình này chưa, nhưng đây là một vòng lặp đó sẽ hãy để tôi lặp lại một số lần. Và nếu tôi di chuyển tất cả các cách để phía dưới Tôi thấy rằng có một hoạt động ở đây được gọi là chính, và một số khoản tín dụng bổ sung cho niềm vui đọc sách của bạn. Vì vậy, đây là chỉ để say-- và chúng tôi sẽ đặt trực tuyến này trong mã nguồn của khóa học đang today-- mà ngay cả một số trong những các thiết bị mà chúng tôi đưa cho các cấp, vào cuối ngày bạn vẫn sử dụng các cấu trúc cơ bản mà chúng tôi đã được giới thiệu đã vậy, đến nay. Đó là đủ của một. Được rồi, vì vậy bây giờ chúng ta hãy thực sự xây dựng một cái gì đó. Chúng ta hãy đi xa hơn một cái gì đó giống như hello.c, và mở ra này, hãy viết chương trình này ở đây. Tôi sẽ đi trước và viết một chương trình gọi là adder.c, mục đích mà trong cuộc sống là có được giống như lần đầu tiên máy tính siêu đơn giản của tôi mà chỉ cần thêm một vài con số. Không phải vì đó là một khó khăn vấn đề, nhưng bởi vì nó cho phép tôi để bây giờ buộc cùng một vài điều. Vì vậy, tôi sẽ đi trước và bao gồm tiêu chuẩn I / O dot h và CS50 chấm h. Tôi sẽ nói int void main. Và một lần nữa trong tương lai chúng ta sẽ trở về với nó vào trong bối cảnh này hiệu phương tiện. Và bây giờ tôi sẽ nói điều gì đó giống như printf, cho tôi một số nguyên. Và bây giờ trên dòng thứ hai của tôi, làm thế nào để thể hiện bản thân mình như vậy mà tôi muốn khai báo một biến đó sẽ lưu trữ một int? Nghĩa là những gì tôi gõ nếu tôi muốn tạo ra một biến mà các cửa hàng một int bạn sẽ nói gì? int một bằng getInt. Chắc chắn, để hoạt động. Và để thống nhất với mã bạn sẽ xem trực tuyến, hãy để tôi thay đổi này để x, chỉ vì x là một tên biến phổ biến sử dụng, ít nhất là trong đại số. Bây giờ hãy để tôi đi trước và làm printf một lần nữa. Hãy cho tôi một số nguyên. Và bây giờ tôi sẽ loại của học hỏi từ mô hình này, Tôi sẽ nói int y được cho getInt. Và chúng tôi đã không được sử dụng GetInt trước đó, nhưng chỉ như GetString đi và nhận được một chuỗi, như Javier đã từ khán giả, tương tự như vậy không getInt bắt đầu nhấp nháy dấu nhắc. Và hiệu quả chờ đợi cho người sử dụng để cung cấp cho nó một số nguyên, bằng cách gõ nó trong và nhấn Enter. Bây giờ cuối cùng tôi sẽ làm này, printf tổng of-- và cho tôi có được now-- ưa thích trăm phần trăm tôi và tôi có mặt i điểm chấm than dấu gạch chéo ngược n. Và điều gì làm bạn nghĩ rằng tôi sẽ đến đưa vào bây giờ là đầu vào bổ sung printf? Tôi không muốn nói nghĩa là trích dẫn x unquote. Tôi muốn lớp trong x và sau đó, và bây giờ chúng ta có được ưa thích và chúng ta hãy giả định chúng ta có thể làm những gì chúng ta muốn. Những gì bạn muốn nói tới? x cộng với y. Và thực sự sẽ làm việc. Nó tối thiểu ngôn ngữ lập trình làm hiểu số học cơ bản, và vì vậy điều này nên trong thực tế công việc. Vì vậy, hãy để tôi đi trước và làm cho cộng trong cửa sổ màu đen và trắng của tôi xuống đây, Enter. Dòng khó hiểu nhưng không có lỗi tin nhắn, vì vậy đó là tốt. Dot giảm cộng, đưa cho tôi một số nguyên, 1. Hãy cho tôi một số nguyên, 2. Tổng của 1 và 2 là 3. Được rồi, do đó, một khá tầm thường chương trình, nhưng những gì nó được thực hiện? Nó cho phép tôi sử dụng một chức năng gọi đây, gọi chức năng khác ở đây, hai cuộc gọi đến getInt, một thứ ba cuộc gọi đến printf, và sau đó sử dụng các giữ chỗ. Vì vậy, nó là nhiều hơn một chút tinh vi hơn so với thời gian qua. Nhưng nếu tôi muốn có được một chút sành điệu? Hãy để tôi đi trước và bây giờ làm điều này. Hãy để tôi đi trước và tạo ra một tập tin mới được gọi là điều kiện số không. Và tôi sẽ tiết kiệm một thời gian cho các lớp học vì lợi ích và chỉ cần dán trong đó mã như là một điểm khởi đầu. Và bây giờ tôi chỉ cần đi đặt một cái gì đó mới đây ở giữa. Vì vậy, printf Tôi muốn xin một số nguyên. Và tất cả các mã này có sẵn trên trang web của khóa học, bạn không cần phải gõ tất cả ra trong lớp nếu bạn không muốn. int, và bây giờ tôi sẽ sử dụng, thay vì x và y, Tôi sẽ sử dụng n, đó là có lẽ là tên phổ biến nhất cho một số nguyên trong một chương trình máy tính. Và bây giờ tôi muốn làm một ít phán xét ở đây. Tôi sẽ xem nếu n là lớn hơn 0, sau đó Tôi sẽ nói Lỗi chính printf--, printf-- bạn chọn một số dương, chấm than dấu gạch chéo ngược điểm n. Đóng đó. Khác tôi sẽ in ra printf bạn chọn một số âm. Bây giờ trước khi bạn hét vào mặt tôi, chúng ta hãy chạy chương trình này. Hãy để tôi đi xuống đây. Và làm thế nào để biên dịch chương trình được gọi là điều kiện dash 0? Tạo điều kiện dash 0. Loại một tên ngu ngốc, nhưng-- chết tiệt. OK, lúc giảng dạy tốt. Tại sao mà phá vỡ? Điều gì đã làm tôi vô tình gọi tập tin này? Bạn có thể loại suy luận từ tab ở đây. Vì vậy, nó không phải là xấu mà tôi đã làm điều này, bởi vì đây có lẽ sẽ xảy ra với một số bạn. Vì vậy, tôi vô tình được đặt tên của tôi mã nguồn điều kiện 0. Tuy nhiên, mã nguồn của tôi nên theo quy ước được trong một tập tin gọi là điều kiện 0 dash c, hoặc bất cứ dấu chấm c. Vì vậy, hãy để tôi sửa lỗi này. Cũng giống như Microsoft Word tôi có thể đi lên để Save As và làm tình trạng 0 điểm c. Bây giờ chỉ để được gọn gàng tôi sẽ đi trước và loại bỏ điều kiện 0, đó là phiên bản cũ của tôi. Và bây giờ chúng ta hãy làm cho điều kiện 0, Enter. OK, có vẻ tốt. Điều kiện 0, Enter. Tôi muốn xin một số nguyên, 50, bạn chọn một số dương. Bây giờ làm thế nào về âm 50? Bạn đã chọn một số âm. Làm thế nào về bây giờ, 0. Đẹp, chắc chắn 0 không phải tiêu cực. Vì vậy, đây là loại một lỗi logic. Làm thế nào để sửa lỗi này? Khác nếu n là nhỏ hơn 0, làm được điều này, khác chúng ta có thể có một chi nhánh cách đây ba, printf bạn chọn 0. Vì vậy, bây giờ nếu tôi chạy này chương trình, sau khi biên dịch nó một lần nữa với thực hiện, và bây giờ chạy điều kiện 0, những gì tôi sẽ thấy ở đây 0 mang lại cho tôi ra đó. Vì vậy, chúng ta đi đâu với điều này? Nó cũng rất dễ dàng để đánh mất của rừng cây. Và vì vậy cho phép chúng ta kết luận với video 2 phút và 1/2 này mà cuối cùng là một chút của một quảng cáo từ Google, nhưng đó thực sự là minh chứng cho những gì thậm chí sử dụng các xây dựng cơ bản khối cuối cùng chúng ta có thể làm một lần chúng ta có một chút về lập trình hiểu biết dưới thắt lưng của chúng tôi. [MUSIC CHƠI] SAROO Brierley (lồng tiếng): Đó là cách đây 26 năm, và tôi chỉ là về để biến 5. Chúng tôi tới ga xe lửa và chúng tôi lên tàu của chúng tôi với nhau. Anh trai tôi chỉ nói tôi sẽ ở đây, và tôi sẽ trở lại. Và tôi chỉ nghĩ rằng, bạn cũng biết, Tôi cũng có thể chỉ cần đi ngủ và anh ta sẽ chỉ đánh thức tôi dậy. Và khi tôi tỉnh dậy tiếp theo ngày, toàn bộ vận chuyển trống rỗng trên một chuyến tàu chạy trốn, một con ma tàu đưa tôi đi tôi không biết ở đâu. Tôi đã được thông qua ra đến Úc, một gia đình người Úc. Và mẹ đã trang trí của tôi phòng với bản đồ của Ấn Độ, mà cô đặt bên cạnh giường của tôi. Mỗi buổi sáng tôi thức dậy nhìn thấy bản đồ đó, và do đó nó loại lưu giữ những kỷ niệm sống. Mọi người sẽ nói, bạn cố gắng tìm một cây kim trong một đống cỏ khô, Saroo bạn sẽ không bao giờ tìm thấy nó. Tôi đã lóe lên trong những nơi mà tôi sử dụng để đi, nhấp nháy của gia đình tôi phải đối mặt. Có hình ảnh của mẹ tôi, ngồi xuống với đôi chân của mình vượt qua, chỉ xem cô ấy khóc. Cuộc sống chỉ là khó khăn như vậy. Đó là kho báu của tôi. Và tôi đã nhìn vào Google Map và thực hiện có Google Earth là tốt. Trong một thế giới mà bạn có thể phóng to, Tôi bắt đầu có tất cả những suy nghĩ và những gì khả năng rằng điều này có thể làm cho tôi. Tôi nói với bản thân mình, bạn biết, bạn đã có tất cả những kỷ niệm chụp ảnh và địa danh của nơi bạn đến từ, và bạn biết những gì thị trấn như thế nào. Đây có thể là một ứng dụng bạn có thể sử dụng để tìm đường trở lại. Tôi nghĩ, tôi cũng sẽ đặt một dấu chấm trên ga xe lửa Calcutta, và một đường bán kính, bạn đã biết, mà bạn nên tìm kiếm xung quanh khu vực này. Tôi loại đi qua các đường ray xe lửa. Và tôi bắt đầu sau đó, và Tôi đã đến một nhà ga xe lửa mà phản ánh cùng một hình ảnh đó là trong ký ức của tôi. Tất cả mọi thứ phù hợp. Tôi chỉ nghĩ rằng vâng, tôi biết nơi tôi sẽ. Tôi chỉ cần đi để cho các bản đồ mà tôi có trong đầu tôi dẫn tôi và đưa tôi trở lại quê hương của tôi. Tôi đã đến ngưỡng cửa của ngôi nhà mà tôi đã được sinh ra. Và đi bộ xung quanh khoảng 15 mét xung quanh góc, có là ba người phụ nữ đứng bên ngoài, liền kề với nhau. Và một trong những trung bước về phía trước, và Tôi chỉ nghĩ rằng, đây là mẹ của bạn. Cô đi về phía trước, mẹ ôm lấy tôi, và chúng tôi đã có khoảng năm phút. Cô nắm lấy tay tôi và cô đưa tôi đến nhà và nhận được điện thoại, nơi cô vang em gái tôi và anh trai tôi để nói rằng, bạn đã biết, anh em đang có chỉ tất cả bất ngờ xuất hiện như một bóng ma. Và sau đó gia đình được đoàn tụ một lần nữa. Tất cả mọi thứ là tất cả tốt, Tôi đã giúp mẹ tôi ra, cô ấy không có được slaving đi. Cô ấy có thể sống phần còn lại cuộc sống của cô trong hòa bình. Đó là một cây kim trong một đống cỏ khô, nhưng kim ở đó. Tất cả mọi thứ ở đó. Tất cả mọi thứ chúng tôi có trên thế giới là vòi nước của một nút. Tuy nhiên, bạn phải có ý chí và quyết tâm muốn nó. [MUSIC CHƠI] DAVID Malan: Tuyệt vời lời chứng thực ngọt ngào để chỉ là những gì bạn có thể bây giờ làm với công nghệ. Chúng ta sẽ thấy bạn vào tuần tới.