[Chơi nhạc] DAVID Malan: Được rồi. Chào mừng trở lại. Đây là CS50, và đây là Một tuần, tiếp. Vì vậy, một trong những lý do chúng tôi đã đi qua xung quanh công nghệ như Google Glass là họ đến với một cái gì đó được biết đến như là một API, một Giao diện lập trình ứng dụng. Và điều này có nghĩa là đó là với tập tin bên phải và với quyền tài liệu, bạn thực sự có thể viết phần mềm cho các thiết bị thậm chí như thế này. Và vì vậy những gì chúng tôi có trong tâm trí hướng học kỳ cuối cùng là, nếu một dự án liên quan đến, nói, Google Glass có thể hấp dẫn, chúng ta sẽ thấy những gì chúng tôi có thể làm trong về hooking bạn với một số phần cứng mượn cũng như truy cập công khai API để bạn có thể thực sự bắt đầu tạo ra phần mềm chạy trên Google cùng thủy tinh. Một thiết bị mà chúng tôi đã được chơi với cuối năm mà chúng tôi nghĩ có thể là vui vẻ vào cuối học kỳ là điều này rất ít ở đây. Nó được gọi là Leap Motion, và những gì bạn đang về để xem là kỹ thuật một quảng cáo cho các thiết bị, nhưng nó không nói chuyện với những gì đặc biệt này thiết bị có khả năng. Và nó cũng đi kèm với một API thông qua mà bạn có thể viết phần mềm để kiểm soát máy tính của bạn một cách rất thích bộ phim một phút này đây. [VIDEO xem lại] [END xem video] Vì vậy, ngay bây giờ, thiết bị này sẽ xảy ra với được thực hiện như một chút USB kết nối mà bạn có thể cắm vào của bạn máy tính, nhưng tôi sẽ không ngạc nhiên nếu trước khi lâu chúng tôi có các loại công nghệ trong các đợt tiếp theo của máy tính và máy Mac để bạn có thể, thực sự, tương tác với nó trong một cách như thế. Trong thực tế, những gì tôi nghĩ rằng tôi muốn làm, cũng là Tôi kéo lên một cuộc biểu tình nhỏ chương trình mà đi kèm với phần mềm này. Vì vậy, tôi đã đặt các cảm biến nhỏ ở phía trước của máy tính xách tay của tôi. Và như bạn thấy, nó đã nhận ra rằng tay của tôi là có kiểm soát nó. Và tất cả các ứng dụng này không có gì swimmingly những điều nhỏ nhặt như thế này. Nhưng bạn có thể thấy rằng, thực sự, Tôi có năm ngón tay đó. Nếu chúng ta có thể có được nó để làm tất cả 10, bạn có thể tưởng tượng một chiếc piano gọn gàng ứng dụng hoặc tương tự. Vì vậy, nếu bạn muốn đưa ra sau khi lớp hôm nay và chơi với điều đó như tốt, bạn được hoan nghênh. Vì vậy, thêm vào đó đến kết thúc học kỳ. Vì vậy, một vài hành chính thông báo. Một, làm phần vào thứ sáu này vào buổi trưa tại cs60.net/section. URL đó là trên của khóa học trang chủ là tốt. Trong khi đó, mặc dù, supersections sẽ ra mắt vào chủ nhật này. Supersections là một điều một thời gian, bởi vì chúng tôi phải mất một thời gian để làm việc ra người, trong đó phần và ở đâu. Vì vậy, vào chủ nhật tới, sẽ có một phần dành cho những người kém thoải mái, một phần cho những thoải mái hơn. Và những người bạn ở đâu đó trong giữa được chào đón để đi đến một hoặc cả hai hay không. Cả hai sẽ được quay. Họ sẽ có trong một khán phòng lớn hơn một phần thông thường sẽ được in Nhưng mục tiêu ở đây là để trang bị cho bạn một số tiện nghi với vấn đề thiết lập một, với C, với các thiết bị CS50, điều này cuối tuần, thậm chí trước khi bạn tìm hiểu của bạn chuyển nhượng phần chính thức. Vì vậy, bạn sẽ gặp TF của bạn và nhỏ hơn của bạn nhóm sectionmates trong khoảng thời gian một tuần. Giờ làm việc, trong khi đó, đã xảy ra. Làm tận dụng lợi thế của họ đêm nay hoặc đêm vào ngày mai nếu bạn muốn. Vấn đề đặt 0 là do vào thứ Sáu. Đây là một ngày muộn hơn thường xuyên theo lịch trình hôm thứ Năm. Nhưng với vấn đề tập 1, bạn sẽ thấy nó bao gồm một số khởi động các bài tập mà bạn mình có thể mở rộng của bạn Thứ năm thời hạn đến thứ Sáu. Vấn đề tập 1, trong khi đó, sẽ ra mắt trên trang web của khóa học này đến Thứ sáu, nếu bạn muốn cuộn tròn với nó như tôi đã làm một lần khi một thời gian trễ Tối thứ Sáu trong phòng của bạn. Vì vậy, cs50.net/appliance là nơi mà bạn có thể nhận được các thiết bị CS50 mà chúng ta bắt đầu sử dụng vào thứ hai. Chúng tôi sẽ sử dụng nó nhiều hơn một chút ngày hôm nay. Nhưng yên tâm rằng các vấn đề thiết lập 1 đặc điểm kỹ thuật sẽ hướng dẫn bạn qua chính xác các bước bạn cần để có được và chạy. Do đó, không lo lắng về làm điều đó trước khi Pset 1 nếu bạn không muốn. Được rồi. Vì vậy, chúng ta nhìn vào thứ hai tại mã nguồn, nhưng trong bối cảnh mới ngôn ngữ lập trình, cụ thể là C. Và C, không giống như Scratch, không phải là đồ họa. Nó không giải đố miếng. Đó là tiếng như nhiều cú pháp. Và có một vài bước có liên quan trong việc viết và chạy một chương trình trong C, bởi vì ngoài nguồn mã như thế này, bạn cần một cái gì đó được gọi là một trình biên dịch. Và trong cách hiểu thông thường, những gì không một trình biên dịch làm cho chúng ta? Vâng. HỌC SINH: Nó chuyển đổi mã mà bạn viết thư cho 0 và 1. DAVID Malan: Tốt. Vì vậy, nó chuyển đổi các mã chúng tôi viết thư cho 0 và 1. Nó chuyển đổi cái gọi là mã nguồn để mã đối tượng, thì sau đó trông một chút gì đó như thế này. Và đó là CPU, bộ não bên trong máy tính của bạn, mà vì những người tạo ra các máy tính, biết những gì các trình tự của 0 và 1 trung bình. Có lẽ nó có nghĩa là in. Có lẽ nó có nghĩa là bổ sung. Có lẽ nó có nghĩa là trừ. Có lẽ nó có nghĩa là hiển thị hình ảnh. Có mẫu được xác định trước của các bit rằng thế giới đã quyết định có ý nghĩa những điều nào đó. Nhưng đối với hầu hết các phần trong khóa học này, chúng tôi sẽ làm việc ở một mức độ cao hơn, và chúng tôi sẽ đưa cho các cấp rằng có tồn tại những thứ như trình biên dịch mà có thể thực hiện chức năng mã nguồn của chúng tôi trong cách chúng ta có ý định. Vì vậy, các chương trình chúng tôi đã viết đầu tiên vào tuần trước và sau đó bắt đầu cổng, vì vậy để nói, để C qua này Thứ hai, là này. Khi lá cờ màu xanh lá cây nhấp, chào hỏi. Đây là, tất nhiên, viết bằng cào. Và tôi cho rằng tương đương chương trình trong C nhìn một chút một cái gì đó như thế này. Vì vậy, những gì tôi nghĩ chúng tôi sẽ làm lúc đầu là, chúng ta hãy trêu chọc nhau những gì có vẻ, lúc đầu Trong nháy mắt, phải thừa nhận rằng, như khá phức tạp cú pháp, nhưng bạn sẽ bắt đầu nhận thấy mô hình khá nhanh chóng. Những gì chúng tôi cũng sẽ làm hôm nay là cung cấp bạn với một mô hình về tinh thần đối với một số kinh điển, một số cấu trúc tiêu chuẩn trong lập trình. Và sau đó chúng tôi sẽ thực sự có được bàn tay của chúng tôi bẩn với một số ví dụ là tốt. Vì vậy, cho những người bạn thoải mái hơn, nhận ra rằng trong tuần này và sau đó tiếp theo tuần rất có thể là một chút xem xét. Nhưng đặc biệt là khi các phiên bản của hacker vấn đề thiết lập 1 đi ra ngoài trên trang web khóa học vào thứ sáu, tôi nghĩ bạn sẽ thấy rằng ngay cả khi bạn điền vào một số khoảng trống trong tuần tới hoặc hai, bạn sẽ bắt đầu để có được hơn bao giờ hết thách thức và gặp phải những điều mới và mới hơn. Vì vậy, hãy trêu chọc chương trình này ngoài một vài dòng tại một thời điểm. Ở phía trên, chúng tôi có những gì kỹ thuật được gọi là một chỉ thị tiền xử lý. Đây chỉ là một dòng mã mà nói bao gồm các nội dung của một tập tin, được gọi là tiêu chuẩn I / N, đầu vào tiêu chuẩn - hoặc, xin lỗi, I / O chuẩn, tiêu chuẩn đầu vào / đầu ra,. h, trong các chương trình của riêng tôi. Vì vậy, nói cách khác, nếu tôi đã viết này chương trình với một trình soạn thảo văn bản đơn giản như gedit, tương đương đơn giản hơn một cái gì đó như Microsoft Word, mà hướng dẫn, # bao gồm stdio.h, chỉ là sẽ cho trình biên dịch, lấy Nội dung của tập tin khác, stdio.h, và dán chúng ở đây. Bây giờ, tại sao tôi quan tâm? Chúng tôi đã khẳng định được những gì bên trong của tập tin này gọi là stdio.h, được lưu trữ nơi nào đó trên ổ cứng của tôi, hoặc trong này trường hợp, ở đâu đó trong các thiết bị CS50? Người khác đặt nó ở đó cho tôi. Nhưng những gì trong đó? Yeah, vì vậy đó là một tuyên bố một chức năng gọi là printf. Vì vậy, printf nhớ lại các chức năng mà hiển thị từ và ký tự và con số trên màn hình tại đấu thầu của tôi. Nhưng tôi đã không viết nó. CS50 đã không viết nó. Năm trước một người nào đó đã viết nó, và họ về cơ bản đã cho chúng tôi công thức cho nó trong một tập tin gọi là stdio.h. Vì vậy, dòng đầu tiên chỉ mang lại cho tôi truy cập các chức năng mà người khác đã viết năm trước đây, trong số đó là printf. Bây giờ, các dòng tiếp theo tôi sẽ vẫy tôi tay tại, ít nhất là cho đến tuần tới. Nhưng bây giờ, biết rằng int main (void) là về cơ bản tương đương này vàng mảnh ghép khi lá cờ màu xanh lá cây nhấp vào. Thế giới, năm trước đây, quyết định rằng nếu bạn đang viết một chương trình trong ngôn ngữ được gọi là C, bạn bắt đầu chương trình của bạn với một dòng trông như thế. Chỉ trong khoảng thời gian một tuần, nó sẽ làm cho cảm giác những gì int là, những gì là khoảng trống. Nhưng bây giờ, chỉ cần nghĩ về nó như mảnh ghép màu vàng. Bây giờ tiếp theo, chúng ta có một cú đúp xoăn sau bởi khác gần xoăn đôi, vậy để nói chuyện. Và chúng ta sẽ thấy những suốt chương trình trong C, cũng như JavaScript và PHP. Và những chỉ gói gọn dòng liên quan đến mã. Mở xoăn cú đúp cơ bản cho biết, ở đây có một số mã. Và đóng xoăn cú đúp, đó là nghiêng theo một hướng khác, chỉ phương tiện, đó là nó cho mã có liên quan. Do đó, dòng ngon ngọt trong này đầu tiên chương trình là cuối cùng, printf, quote-unquote, xin chào thế giới. Và tôi gọi là điều giữa trích dẫn những gì thời gian qua không? Vì vậy, đó là một chuỗi. Và một chuỗi chỉ là iPod hạn cho một chuỗi các ký tự, một từ, một cụm từ. Thậm chí một chữ cái có thể được trích dẫn đôi. Nhưng đó là một chuỗi các không hoặc nhiều ký tự. Dấu gạch chéo ngược-n, tuy nhiên, có vẻ một chút lạ. Nhưng nó chỉ đơn giản có nghĩa là một cái gì đó đơn giản với máy tính. Dấu gạch chéo ngược-n là gì? Dòng mới. Vì vậy, đó chỉ là trình tự đặc biệt nhân vật mà thế giới đã quyết định có nghĩa là đặt một ngắt dòng phải có, vì trình biên dịch sẽ thực sự có được nhầm lẫn, thông thường, nếu bạn, rất dễ hiểu, nhưng không chính xác, chỉ cần bắt đầu nhấn Enter để đưa dòng mới trong mã của bạn. Bạn cần phải có nhiều hơn một chút rõ ràng với dấu gạch chéo ngược-n. Và chúng ta sẽ thấy có một vài khác mô hình cho các ký tự đặc biệt. Ví dụ, nếu bạn muốn cho bạn tâm đi lang thang đến một trường hợp góc, giả sử rằng tôi muốn in một giá gấp đôi trên màn hình lý do gì, mà dường như có một chút vấn đề, phải không? Bởi vì nếu tôi đặt một giá gấp đôi trong giữa "hello, thế giới," cho bất cứ điều gì lý do, tại sao điều ấy có có khả năng có vấn đề? Nó phá vỡ các chuỗi. Trình biên dịch chỉ là một chương trình. Một chương trình như một trình biên dịch chỉ cần đi đọc trên mã của bạn xuống dưới, trái sang phải. Và nếu thấy ba dấu ngoặc kép thay hai, nó sẽ không biết nếu bạn có nghĩa là điều bên trái là chuỗi, hoặc là điều để quyền, hoặc toàn bộ điều. Đó là không rõ ràng, và vì vậy những gì một điển hình trình biên dịch sẽ làm là chỉ cần lăn tăn, và cung cấp cho bạn một số thông báo lỗi, và làm cho bạn đối phó với vấn đề. Vì vậy, cho rằng dấu gạch chéo ngược-n có nghĩa là một mới dòng, những gì sẽ bản năng của bạn bây giờ bắt đầu được nếu bạn muốn bao gồm một cái gì đó bất thường như một đôi trích dẫn bên trong này nếu không trích dẫn chuỗi? Dấu gạch chéo ngược-nháy kép. Và vì vậy chúng ta sẽ thấy điều này loại hoa văn quá. Nếu bạn muốn làm một chút gì đó lạ, bạn sẽ thấy rằng các giải pháp thường theo một khuôn mẫu, và các dấu gạch chéo ngược biểu thị một dãy thoát. Và nó chỉ có nghĩa là một cái gì đó đặc biệt mà chúng ta cần để đại diện cho một trong cách khác nhau. Như làm thế nào để bạn đại diện một dấu gạch chéo ngược, tốt, chúng tôi sẽ quay trở lại đó. Nhưng câu trả lời, cũng là thực sự một chút rõ ràng. Vì vậy, bây giờ chúng ta giới thiệu một số khác cấu trúc lập trình mà bạn đã thấy trong Scratch. Bạn đã có thể dùng cho các cấp đã nếu bạn đã nhảy vào vấn đề thiết lập 0. Nhưng bây giờ chúng ta giới thiệu cú pháp trong C cho những khác khá trực quan ý tưởng, ít nhất là một số người trong số họ. Vì vậy, khái niệm về một điều kiện hoặc chi nhánh, trong khi trước đó chúng tôi đại diện nó với mã trông như thế này ở bên trái trong Scratch - nếu x nhỏ hơn y, sau đó nói như vậy - thay vì tại trong C - hãy để tôi trau dồi trong trên các trường hợp đơn giản - chúng tôi chỉ đơn giản là sẽ nói, nếu, mở ngoặc đơn, một cái gì đó là sự thật - một Biểu thức boolean là sẽ đi nơi mà tôi đã nói điều kiện - ngoặc gần, sau đó làm gì bên trong những dấu ngoặc nhọn. Vì vậy, ở đây, các dấu ngoặc nhọn là loại giống như Scratch của Mảnh ghép hình chữ U. Làm những gì bên trong các dấu ngoặc nhọn. Trong trường hợp này, cắt giảm cắt giảm. Và nhận thấy đây là một tiền đạo cắt giảm, không phải là một dấu gạch chéo ngược. Dấu gạch chéo, dấu gạch chéo, cho những người đã được lập trình trước, chỉ có nghĩa là - nó chỉ là một bình luận. Một nhận xét không phải là một dòng mã, cho mỗi gia nhập. Đó là một dòng tiếng Anh mà bạn, con người, đã viết cho chính mình để có thể nhắc nhở bạn làm điều gì đó, để giải thích cho chính mình, để giải thích cho người khác, những gì mã của bạn đang làm. Nó chỉ là một bình luận mô tả. Bây giờ, tất nhiên, chúng ta có thể có một cách hai ngã ba trên đường chỉ bằng cách làm này, một ba cách ngã ba trên đường bằng cách làm này, và nếu bạn tiếp tục này mô hình, bạn có thể có bốn chiều, năm chiều, sáu cách dĩa trong đường nếu bạn cần phải xử lý, thực sự, có nhiều điều kiện. Và sau đó nhận thấy sự song song đây - if (điều kiện), if (điều kiện), và chỉ có một mà là một chút lạ là cuối cùng, Chỉ có điều là khác. Nhưng một lần nữa, đây là giống hệt nhau, khái niệm, những gì chúng tôi đã thực hiện đã có, mặc dù cú pháp sẽ mất một ít để làm quen. Bây giờ, trong ví dụ này, có một số cú pháp khác lạ. Chúng ta thấy printf một lần nữa, mở ngoặc đơn, và dấu ngoặc đóng. Và bên trong có một chuỗi trích dẫn. Các dấu ngoặc đơn, trong bối cảnh printf, đi bên trái và đúng đắn những gì? Chúng ta mô tả rằng trích dẫn chuỗi như nói chung? Vì vậy, nó là một đối số. Bất cứ lúc nào bạn có một chức năng, như printf, và sau đó một dấu ngoặc mở và một Dấu ngoặc đơn thân và một cái gì đó bên trong nó, cho dù đó là một chuỗi, hoặc một số nguyên, hoặc bất cứ điều gì khác, điều trong giữa những dấu ngoặc đơn được gọi là một cuộc tranh cãi. Và một cuộc tranh cãi chỉ ảnh hưởng đến hành vi của chức năng. Trong trường hợp này, nó khá rõ ràng như thế nào. x