1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> DAVID J. Malan: Vì vậy, đây là CS50. 3 00:00:13,800 --> 00:00:18,970 Và đây là của riêng Colton Ogden CS50 của, cho nhiều người là âm nhạc, bạn có thể 4 00:00:18,970 --> 00:00:22,820 tải về tại soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Vì vậy, hôm nay chúng tôi tập trung tất cả các chi tiết về nghệ thuật của chương trình. 6 00:00:26,690 --> 00:00:28,980 Và chúng ta, nơi chúng tôi rời vào tuần trước, tập trung 7 00:00:28,980 --> 00:00:31,660 trên Scratch, mà là này ngôn ngữ lập trình đồ họa. 8 00:00:31,660 --> 00:00:35,490 Và có những điều xuống đến một mức độ thấp hơn, sử dụng một chương trình truyền thống 9 00:00:35,490 --> 00:00:38,420 ngôn ngữ được gọi là C. Nhưng trên đường đi, thực hiện 10 00:00:38,420 --> 00:00:40,730 rằng những ý tưởng cùng chúng tôi nói về thứ sáu tuần trước 11 00:00:40,730 --> 00:00:44,390 sẽ tái diễn không chỉ ở đây ngôn ngữ C, nhưng trong hầu hết mỗi khác 12 00:00:44,390 --> 00:00:46,350 mà chúng ta nhìn vào học kỳ này. 13 00:00:46,350 --> 00:00:50,247 >> Vì vậy, chúng tôi gọi điều này ở đây những gì thời gian qua? 14 00:00:50,247 --> 00:00:51,830 Đây là đại diện của một tuyên bố. 15 00:00:51,830 --> 00:00:53,080 Vì vậy, chúng tôi gọi đó là một tuyên bố. 16 00:00:53,080 --> 00:00:54,100 Và nó có một cái gì đó. 17 00:00:54,100 --> 00:00:56,910 Đây là một hướng dẫn rằng một máy tính hoặc cào có thể thực hiện. 18 00:00:56,910 --> 00:00:59,910 Và từ đó trở đi, chúng ta cũng bắt đầu gọi một cái gì đó như thế này một chức năng, 19 00:00:59,910 --> 00:01:02,070 vì những lý do chúng ta sẽ sớm thấy. 20 00:01:02,070 --> 00:01:03,681 >> Trong khi đó, chúng tôi nhìn thấy những thứ như thế này. 21 00:01:03,681 --> 00:01:05,680 Và đây là những thường được biết đến như những gì xây dựng? 22 00:01:05,680 --> 00:01:06,240 >> TƯỢNG: Loop. 23 00:01:06,240 --> 00:01:06,860 >> DAVID J. Malan: Vì vậy, một vòng lặp. 24 00:01:06,860 --> 00:01:07,943 Vì vậy, khá đơn giản. 25 00:01:07,943 --> 00:01:09,470 Nó nghĩa là những gì nó nói. 26 00:01:09,470 --> 00:01:12,210 Và trong Scratch, nếu bạn muốn nhồi nhét mảnh ghép ở đó, 27 00:01:12,210 --> 00:01:13,950 mảnh sẽ phát triển để phù hợp với nó. 28 00:01:13,950 --> 00:01:16,790 Và chúng ta sẽ thấy rằng trong C chúng ta có thể làm điều tương tự. 29 00:01:16,790 --> 00:01:20,000 >> Một loại vòng lặp, mặc dù, trong Scratch có thể là mãi mãi, 30 00:01:20,000 --> 00:01:21,820 hoặc có bất kỳ số các cách tiếp cận khác. 31 00:01:21,820 --> 00:01:24,150 Nhưng chúng ta hãy hơn nhìn chung chung, với một khuôn mặt 32 00:01:24,150 --> 00:01:27,402 đó là khả năng khá quen thuộc, tại vòng chung hơn. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: Một điều mà máy tính 34 00:01:29,110 --> 00:01:31,860 đang thực sự tốt là lặp đi lặp lại lệnh. 35 00:01:31,860 --> 00:01:33,910 Là một người, bạn sẽ nhận được thực sự buồn chán nếu bạn 36 00:01:33,910 --> 00:01:36,730 phải làm điều tương tự rất nhiều lần liên tiếp. 37 00:01:36,730 --> 00:01:40,530 Tuy nhiên, một máy tính có thể làm điều tương tự hàng triệu hoặc thậm chí hàng tỉ lần, 38 00:01:40,530 --> 00:01:43,290 và không cảm thấy buồn chán, và có thể thực ra đó thực sự tốt. 39 00:01:43,290 --> 00:01:45,650 >> Ví dụ, nếu tôi muốn chúc tất cả mọi người 40 00:01:45,650 --> 00:01:48,840 trên Facebook mừng sinh nhật bằng cách gửi cho họ một email, 41 00:01:48,840 --> 00:01:51,550 nó có thể mất tôi nhiều hơn một thế kỷ để thực sự viết ra 42 00:01:51,550 --> 00:01:53,000 tất cả những email cho tất cả mọi người. 43 00:01:53,000 --> 00:01:57,780 Nhưng chỉ với một vài dòng mã, tôi có thể có một hệ thống gửi email đến tất cả mọi người 44 00:01:57,780 --> 00:01:59,930 trên Facebook có nhu cầu chúng một sinh nhật hạnh phúc. 45 00:01:59,930 --> 00:02:02,730 Vì vậy, đó là những gì đang có và tại sao vòng họ có giá trị và một cái gì đó 46 00:02:02,730 --> 00:02:04,740 mà máy tính có thể làm rất tốt. 47 00:02:04,740 --> 00:02:05,630 >> DAVID J. Malan: Vì vậy, nếu bạn đã được người nhận 48 00:02:05,630 --> 00:02:07,820 của một số CS50 và Không gian Dropbox của cuối năm, 49 00:02:07,820 --> 00:02:10,590 đó là thực sự chính xác những gì chúng tôi làm, sử dụng mã giống như vậy. 50 00:02:10,590 --> 00:02:12,600 Chúng tôi về cơ bản có một lớn bảng tính vào đó 51 00:02:12,600 --> 00:02:15,016 folks đã được nhập của họ tên và địa chỉ email. 52 00:02:15,016 --> 00:02:18,160 Và chúng tôi đã viết một chút nhỏ bé của mã có thể duyệt qua các địa chỉ 53 00:02:18,160 --> 00:02:21,860 và nhổ ra địa chỉ duy nhất tại bất cứ trường hợp nộp nhiều lần. 54 00:02:21,860 --> 00:02:25,120 Và sau đó, chúng tôi gửi một tự động email từ bot CS50 của, 55 00:02:25,120 --> 00:02:27,190 bao gồm các phiếu mua hàng. 56 00:02:27,190 --> 00:02:29,290 >> Bây giờ chúng ta cũng xem xét này xây dựng thời gian qua. 57 00:02:29,290 --> 00:02:33,100 Và đây là một đặc biệt ví dụ về những gì? 58 00:02:33,100 --> 00:02:35,050 Vì vậy, yeah, một biểu thức Boolean. 59 00:02:35,050 --> 00:02:37,050 Và hình dạng có nghĩa là để nắm bắt đó là tốt. 60 00:02:37,050 --> 00:02:39,966 Tất cả câu hỏi đó của tạo đúng hay sai trong Scratch 61 00:02:39,966 --> 00:02:41,590 sẽ xem xét một chút gì đó như thế này. 62 00:02:41,590 --> 00:02:43,200 Và chúng tôi gọi đây là một biểu thức Boolean. 63 00:02:43,200 --> 00:02:46,170 Đó là thực sự đúng hay sai, có hoặc không. 64 00:02:46,170 --> 00:02:49,150 Đó là một cách trả lời một câu hỏi. 65 00:02:49,150 --> 00:02:52,420 >> Và khi đó bạn có thể sử dụng các Boolean biểu thức bên trong cấu trúc 66 00:02:52,420 --> 00:02:54,720 như thế này, trong đó Tất nhiên là điều kiện 67 00:02:54,720 --> 00:02:57,259 hoặc các chi nhánh, ngôn ngã ba trên đường. 68 00:02:57,259 --> 00:02:59,550 Và họ có thể nhìn không chỉ như thế này, nhưng họ cũng có thể 69 00:02:59,550 --> 00:03:02,080 elses đã liên kết với chúng. 70 00:03:02,080 --> 00:03:05,820 Và bạn thực sự có thể có một cách ba ngã ba đường hoặc bốn cách ngã ba 71 00:03:05,820 --> 00:03:08,340 trên đường, chỉ đơn giản bằng làm tổ những điều này, 72 00:03:08,340 --> 00:03:10,510 như bạn sẽ thấy trong Scratch nếu bạn chưa có. 73 00:03:10,510 --> 00:03:13,550 Và như bạn có thể làm trong C là tốt. 74 00:03:13,550 --> 00:03:16,810 >> Chúng ta hãy chung chung khác nhìn vào một alumnist, là tốt, người 75 00:03:16,810 --> 00:03:21,490 có thể trình bày một cách tiếp cận khác nhau những điều được gọi là điều kiện. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: người làm quyết định mỗi ngày. 77 00:03:24,060 --> 00:03:27,530 Ví dụ, trước khi bạn đi ra ngoài bạn loại có một tuyên bố nếu nói rằng, 78 00:03:27,530 --> 00:03:31,480 nếu trời mưa thì tôi cần để có được chiếc áo khoác của tôi. 79 00:03:31,480 --> 00:03:36,820 Và máy tính là tuyệt vời khi bạn quyết định những loại báo cáo, 80 00:03:36,820 --> 00:03:42,280 rằng họ đáng tin cậy có thể thực hiện những điều đó với tốc độ không thể tin được. 81 00:03:42,280 --> 00:03:48,240 Và do đó, một chương trình máy tính thực sự là một chút toán học và một số 82 00:03:48,240 --> 00:03:53,050 nếu báo cáo nơi các quyết định được thực hiện. 83 00:03:53,050 --> 00:03:55,020 >> DAVID J. Malan: Vì vậy, bạn có thể biết, đó là 84 00:03:55,020 --> 00:03:57,880 những người như Bill Gates, Paul Allen, và những người khác 85 00:03:57,880 --> 00:04:00,240 mà thực sự đã khởi đầu cái gọi là máy tính cá nhân 86 00:04:00,240 --> 00:04:01,990 cuộc cách mạng cách đây vài năm. 87 00:04:01,990 --> 00:04:04,140 Tôi nghĩ rằng, trước khi chúng ta đi sâu vào một số quản trị, 88 00:04:04,140 --> 00:04:09,920 chúng tôi liên quan một câu chuyện từ Albuquerque, New Mexico bảo tàng Lịch sử Tự nhiên 89 00:04:09,920 --> 00:04:13,650 và khoa học, nơi một số Bill Gates và những câu chuyện đầu tiên của Paul Allen 90 00:04:13,650 --> 00:04:17,470 được kể lại như thế nào chúng ta có bây giờ máy tính ngày nay và Mac và nhiều hơn nữa. 91 00:04:17,470 --> 00:04:22,390 Đối với điều này, tuy nhiên, chúng ta cần hai tình nguyện viên những người có tiếng nói tường thuật rất tốt 92 00:04:22,390 --> 00:04:23,735 đọc một kịch bản to. 93 00:04:23,735 --> 00:04:25,530 >> Được rồi, làm thế nào về ở phía sau đó. 94 00:04:25,530 --> 00:04:26,120 Nào lên. 95 00:04:26,120 --> 00:04:27,770 Và làm thế nào về trước đây. 96 00:04:27,770 --> 00:04:28,340 Thôi nào xuống. 97 00:04:28,340 --> 00:04:29,600 Có địa điểm của bạn ở đây. 98 00:04:29,600 --> 00:04:32,444 Như các bạn đưa ra, một cặp vợ chồng các thông báo hành chính. 99 00:04:32,444 --> 00:04:34,360 khi cắt, quá trình này lựa chọn một phần, 100 00:04:34,360 --> 00:04:36,068 sẽ bắt đầu này Thứ Tư đến thứ Sáu. 101 00:04:36,068 --> 00:04:38,400 Nhiều hơn về điều này sắp tới Thứ Tư trong bài giảng. 102 00:04:38,400 --> 00:04:41,770 >> Phần siêu, trong khi đó, là cái gì mà chúng tôi cung cấp vào tuần tới 103 00:04:41,770 --> 00:04:45,310 theo đó cả lớp được mời để tham gia vào quy mô khá lớn 104 00:04:45,310 --> 00:04:47,690 phần, một phần thoải mái hơn, một ít thoải mái. 105 00:04:47,690 --> 00:04:51,340 Và chúng tôi sẽ thông báo cụ thể trong đó, cũng như, cuối tuần này. 106 00:04:51,340 --> 00:04:53,310 >> Phần Trong khi đó, bản thân, sẽ bắt đầu 107 00:04:53,310 --> 00:04:57,241 trong tuần ba của khóa học, chỉ số không, có nghĩa là những người đang có một vài tuần 108 00:04:57,241 --> 00:04:57,740 ra. 109 00:04:57,740 --> 00:04:58,450 Vì vậy, không phải lo lắng. 110 00:04:58,450 --> 00:05:01,014 Bạn chưa bỏ lỡ bất cứ điều gì theo con đường này. 111 00:05:01,014 --> 00:05:03,930 Trong khi đó trong khi chờ đợi, nếu bạn có bất kỳ câu hỏi hành chính, 112 00:05:03,930 --> 00:05:08,120 gửi email cho bản thân mình và Devon và Gabe và Rob tại địa chỉ này ở đây. 113 00:05:08,120 --> 00:05:10,320 >> Cuối cùng, vấn đề đặt 0 là, tất nhiên, ra ngoài. 114 00:05:10,320 --> 00:05:12,320 Bạn có thể nhận thấy nó trên trang web của khóa học. 115 00:05:12,320 --> 00:05:14,840 Nó sẽ cung cấp cho bạn tất cả câu trả lời cho câu hỏi 116 00:05:14,840 --> 00:05:18,250 bạn có thể có cùng đường cho bắt đầu với bộ vấn đề. 117 00:05:18,250 --> 00:05:21,430 Tuy nhiên, nếu bạn thấy mình cần một bàn tay giúp đỡ, 118 00:05:21,430 --> 00:05:25,020 bởi tất cả các phương tiện tham gia giờ làm việc, Thứ hai, thứ ba, thứ tư, thứ năm 119 00:05:25,020 --> 00:05:27,290 trong tuần này vào buổi tối trong bốn nhà ăn. 120 00:05:27,290 --> 00:05:31,650 Xem URL có cho các nội nơi giờ làm việc được. 121 00:05:31,650 --> 00:05:34,000 >> Bây giờ Hãy cùng gặp gỡ của chúng tôi hai vị khách ở đây hôm nay. 122 00:05:34,000 --> 00:05:34,740 Tên của bạn là gì? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL: Jay Paul. 124 00:05:35,290 --> 00:05:36,880 >> DAVID J. Malan: Jay Paul, rất vui được gặp bạn. 125 00:05:36,880 --> 00:05:37,330 >> Hikari: Hikari. 126 00:05:37,330 --> 00:05:37,975 >> DAVID J. Malan: Hikari? 127 00:05:37,975 --> 00:05:38,250 >> Hikari: Hikari. 128 00:05:38,250 --> 00:05:38,810 >> DAVID J. Malan: Hikari. 129 00:05:38,810 --> 00:05:39,790 Rất vui được gặp bạn là tốt. 130 00:05:39,790 --> 00:05:42,123 Jay Paul và Hikari có trong trước mặt họ các nhạc 131 00:05:42,123 --> 00:05:45,100 đứng hai kịch bản mà tôi in Sáng nay từ New Mexico 132 00:05:45,100 --> 00:05:46,692 Bảo tàng Lịch sử và Khoa học Tự nhiên. 133 00:05:46,692 --> 00:05:48,400 Và những gì tôi nghĩ Tôi muốn làm trên trên 134 00:05:48,400 --> 00:05:52,830 được đi cùng tụng của bạn của kịch bản và lịch sử này 135 00:05:52,830 --> 00:05:54,700 với một số hình ảnh trực quan, không có bất ngờ. 136 00:05:54,700 --> 00:05:57,512 >> Và những gì tôi đã thực hiện trước được prehighlight trên kịch bản của bạn 137 00:05:57,512 --> 00:05:59,470 những gì bạn nên đọc, và những gì bạn nên đọc. 138 00:05:59,470 --> 00:06:00,920 Và chúng ta sẽ cơ bản đoạn văn chỉ thay thế. 139 00:06:00,920 --> 00:06:03,211 Vì vậy, nó giống như có lẽ bạn đã thực hiện trong lớp học tiếng Anh. 140 00:06:03,211 --> 00:06:06,875 Đó là thực sự buộc khán giả tin vào câu chuyện của bạn ở đây. 141 00:06:06,875 --> 00:06:07,600 Thì chúng tôi? 142 00:06:07,600 --> 00:06:13,272 Vì vậy, câu chuyện ở đây là, chúng ta có một BASIC, và nó bắt đầu ở Cambridge. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Đó là mùa đông, năm 1974, ở Cambridge, Massachusetts 144 00:06:18,750 --> 00:06:20,240 nơi mùa đông có thể lạnh. 145 00:06:20,240 --> 00:06:22,800 Một râu, tóc dài bỏ học giữa chừng tên 146 00:06:22,800 --> 00:06:27,280 Paul Allen đã được drudging trên Harvard Square, hấp thụ trong suy nghĩ của mình. 147 00:06:27,280 --> 00:06:31,050 Mối bận tâm chính của ông trong những ngày là làm thế nào để có được người bạn của mình, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 bỏ học và đi vào kinh doanh với anh ta. 149 00:06:34,974 --> 00:06:37,890 Hikari: Hai đã đi thông qua một số dự án kinh doanh 150 00:06:37,890 --> 00:06:40,850 cùng nhau, bắt đầu từ Lakeside trường học ở Seattle nơi 151 00:06:40,850 --> 00:06:45,220 họ được trả trong thời gian máy tính miễn phí để kiểm tra một máy tính PDP-10 tại một thời điểm địa phương 152 00:06:45,220 --> 00:06:46,580 Công ty chia sẻ. 153 00:06:46,580 --> 00:06:50,930 Kế hoạch gần đây nhất đã từ bỏ trường và hình thành một công ty phần mềm. 154 00:06:50,930 --> 00:06:53,440 Allen đã rời Washington Đại học Quốc gia. 155 00:06:53,440 --> 00:06:58,380 Nhưng vào phút cuối cùng, Gates quyết định gắn bó với Harvard. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Ngày hôm đó, qua Harvard Quảng trường, Allen phát hiện ra tháng giêng, 157 00:07:02,080 --> 00:07:07,530 1975 vấn đề Popular Electronics với tiêu đề đất dừng lại, 158 00:07:07,530 --> 00:07:11,900 Thế giới đầu tiên của máy tính mini Kit để Rival mô hình thương mại. 159 00:07:11,900 --> 00:07:14,430 Bên dưới tiêu đề là một hình ảnh của một hộp nhỏ 160 00:07:14,430 --> 00:07:16,160 trang trí bằng đèn chiếu sáng và thiết bị chuyển mạch. 161 00:07:16,160 --> 00:07:19,770 Nó được gọi là MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 Và Allen biết đây là những gì ông đã được tìm kiếm. 163 00:07:24,100 --> 00:07:26,350 >> Hikari: Days of thảo luận. 164 00:07:26,350 --> 00:07:30,170 Allen và Gates đã hiểu được tầm quan trọng của Altair. 165 00:07:30,170 --> 00:07:32,480 Họ đã nói chuyện thường về bộ vi xử lý 166 00:07:32,480 --> 00:07:35,250 và đang chờ đợi để xem những gì sẽ được thực hiện với họ. 167 00:07:35,250 --> 00:07:39,770 Bây giờ đã có một bộ máy tính mini trên trang bìa của Popular Electronics. 168 00:07:39,770 --> 00:07:42,830 Nó dường như không có phần mềm được nêu ra. 169 00:07:42,830 --> 00:07:46,830 Họ tưởng tượng một quốc gia lập trình viên giảm dần về MITS. 170 00:07:46,830 --> 00:07:49,590 Và do đó, họ được gọi là Ed Roberts, người đứng đầu của công ty, 171 00:07:49,590 --> 00:07:53,330 đòi phải có một phiên bản của Ngôn ngữ lập trình BASIC gần như đã sẵn sàng 172 00:07:53,330 --> 00:07:54,710 cho Altair. 173 00:07:54,710 --> 00:07:55,570 Họ không. 174 00:07:55,570 --> 00:07:58,910 Và Roberts phải biết họ không. 175 00:07:58,910 --> 00:08:03,170 Ông đã nhận được 10 cuộc gọi mỗi ngày từ người đã có một BASIC gần như đã sẵn sàng. 176 00:08:03,170 --> 00:08:05,570 Và phản ứng cổ phần của mình là: "Người đầu tiên 177 00:08:05,570 --> 00:08:11,090 những người cho thấy có một làm việc BASIC được hợp đồng. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Gates và Allen chưa bao giờ thấy một Altair. 179 00:08:13,910 --> 00:08:17,600 Họ chưa bao giờ thấy các Intel bộ vi xử lý 8080 180 00:08:17,600 --> 00:08:19,060 ở trung tâm của Altair. 181 00:08:19,060 --> 00:08:21,470 Tuy nhiên, một vài năm trước đó Allen đã viết một chương trình 182 00:08:21,470 --> 00:08:25,220 trên một máy tính mà máy tính lớn mô phỏng hoạt động của Intel trước đó 183 00:08:25,220 --> 00:08:26,217 bộ vi xử lý. 184 00:08:26,217 --> 00:08:28,300 Và khoảng thời gian này họ sẽ làm điều tương tự. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> Hikari: Với bộ xử lý Intel 8080 của nhãn hiệu ở bên cạnh, 187 00:08:34,380 --> 00:08:37,770 Allen ngồi xuống một Máy tính Harvard PDP-10 188 00:08:37,770 --> 00:08:42,010 và viết giả lập và phần mềm các công cụ cần thiết để làm chương trình này. 189 00:08:42,010 --> 00:08:45,820 Trong khi đó Gates dừng lại đi đến các lớp học và cống hiến 190 00:08:45,820 --> 00:08:48,120 để thiết kế BASIC, sử dụng mọi thủ đoạn 191 00:08:48,120 --> 00:08:53,130 ông biết để có được kích thước xuống dưới 4 kilobyte. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: Out ở Albuquerque, Ed Roberts nhận được điện thoại từ Gates 193 00:08:55,870 --> 00:08:59,754 hỏi để biết chi tiết về cách thức Altair thói quen xử lý cụ thể. 194 00:08:59,754 --> 00:09:01,170 Không ai hỏi rằng trước đây. 195 00:09:01,170 --> 00:09:02,670 Và Roberts bắt đầu được quan tâm. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> Hikari: Với sự phát triển các công cụ và thiết kế sẵn sàng, 198 00:09:07,970 --> 00:09:10,780 Gates và Allen đã viết các mã trên PDP-10, 199 00:09:10,780 --> 00:09:16,060 tranh thủ một sinh viên Harvard, Monte Davidoff, để viết thói quen toán. 200 00:09:16,060 --> 00:09:19,450 Sau một đêm chung kết lập trình, Allen đã lên máy bay 201 00:09:19,450 --> 00:09:22,970 để cung cấp BASIC để MITS. 202 00:09:22,970 --> 00:09:25,800 Ông đã trải qua máy bay đi ra đáng lo ngại. 203 00:09:25,800 --> 00:09:28,490 Và trở lại ở Cambridge Gates đã lo lắng. 204 00:09:28,490 --> 00:09:32,100 Họ đã thử nghiệm của họ và BASIC nó đã làm việc trên giả lập. 205 00:09:32,100 --> 00:09:35,444 Nhưng nếu giả lập đã sai? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Khi máy bay gần Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen nhận ra rằng họ BASIC, giờ đã được sắp chứa 208 00:09:40,070 --> 00:09:42,460 trên một cuộn nhỏ đấm băng giấy, sẽ 209 00:09:42,460 --> 00:09:44,970 là vô ích mà không có một riêng biệt chương trình, được gọi là bộ nạp, mà 210 00:09:44,970 --> 00:09:47,550 sẽ nói với Altair như thế nào để đọc các băng giấy phúc 211 00:09:47,550 --> 00:09:49,620 đưa vào máy điện tín. 212 00:09:49,620 --> 00:09:52,970 Ông lấy ra máy tính xách tay của mình và nhanh chóng viết vội xuống một chương trình tải 213 00:09:52,970 --> 00:09:56,819 bằng ngôn ngữ hội, sau đó tự dịch đó vào 1 và 0 214 00:09:56,819 --> 00:09:57,985 Altair sẽ hiểu. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> Hikari: Allen đã mong một sạch sẽ, nhỏ, công ty công nghệ cao 217 00:10:03,830 --> 00:10:05,470 được điều hành bởi những người đàn ông trong bộ quần áo kinh doanh. 218 00:10:05,470 --> 00:10:09,210 Vì vậy, ông đã rất ngạc nhiên khi Roberts gặp ông tại sân bay trông giống như một trang trại 219 00:10:09,210 --> 00:10:10,270 tay. 220 00:10:10,270 --> 00:10:12,070 Roberts cũng đã rất ngạc nhiên. 221 00:10:12,070 --> 00:10:16,340 Khi ông ta đã bỏ Harvard lập trình viên tại một khách sạn đắt tiền, 222 00:10:16,340 --> 00:10:20,790 Allen đã phải thú nhận rằng ông không thể đủ khả năng phòng. 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL: MITS, tự nó, là nằm trong một trung tâm dải bụi. 224 00:10:24,510 --> 00:10:27,040 Bên trên lộn xộn bàn làm việc là một Altair 225 00:10:27,040 --> 00:10:30,390 tải lên với 5 KB bộ nhớ và kết nối bằng cáp 226 00:10:30,390 --> 00:10:32,030 đến một máy điện báo. 227 00:10:32,030 --> 00:10:37,200 Roberts và kỹ sư trưởng, Bill Yates, chờ đợi chờ đợi 228 00:10:37,200 --> 00:10:40,660 như Allen bật loader của mình chương trình vào Altair. 229 00:10:40,660 --> 00:10:44,980 Các điện tín bắt đầu chugging vì nó kéo băng giấy thông qua việc đọc băng. 230 00:10:44,980 --> 00:10:47,215 Phải mất có lẽ 15 phút để tải chương trình. 231 00:10:47,215 --> 00:10:52,110 Sau đó, điện tín đột ngột in một bộ nhớ nhanh chóng, sau đó một dấu nhắc đã sẵn sàng, 232 00:10:52,110 --> 00:10:55,340 và Allen bắt đầu gõ một vài thử nghiệm lệnh. 233 00:10:55,340 --> 00:10:57,400 Trước sự ngạc nhiên của mọi người, phần mềm làm việc. 234 00:10:57,400 --> 00:10:58,525 Đã có lỗi, tất nhiên. 235 00:10:58,525 --> 00:11:02,070 Nhưng điều chính là nó làm việc. 236 00:11:02,070 --> 00:11:06,570 >> Hikari: Sau đó, trên đường đến một $ 3,00 ăn trưa tại nhà hàng Pancho, một con ong bay 237 00:11:06,570 --> 00:11:10,470 trong cửa sổ của xe bán tải xe tải và Allen cắn vào cánh tay. 238 00:11:10,470 --> 00:11:13,070 Nhưng ở thời điểm đó không có gì có thể làm hỏng tâm trạng. 239 00:11:13,070 --> 00:11:17,210 Altair BASIC bây giờ đã có của nó, phần mềm thương mại đầu tiên cho một ngôi nhà 240 00:11:17,210 --> 00:11:23,260 máy tính, được thực hiện bởi Paul Allen và Bill Gates, kinh doanh như Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> DAVID J. Malan: Nhiều nhờ hai độc giả của chúng tôi. 242 00:11:25,336 --> 00:11:30,690 >> [Vỗ tay] 243 00:11:30,690 --> 00:11:32,520 >> DAVID J. Malan: Bây giờ bạn có sự lựa chọn của bạn, 244 00:11:32,520 --> 00:11:35,880 trước khi đi, một lấp lánh hoặc ánh sáng trong dark-- oh, 245 00:11:35,880 --> 00:11:40,810 chờ đợi một giây, wait-- lấp lánh và phát sáng trong bóng tối con voi 246 00:11:40,810 --> 00:11:42,534 từ của Cheng Gong CS50 của. 247 00:11:42,534 --> 00:11:43,450 Hikari: Aw, cảm ơn bạn. 248 00:11:43,450 --> 00:11:45,324 DAVID J. Malan: Tất cả Được rồi, cảm ơn bạn rất nhiều. 249 00:11:45,324 --> 00:11:49,855 [Vỗ tay] 250 00:11:49,855 --> 00:11:51,105 DAVID J. Malan: Vì vậy, câu chuyện thực sự. 251 00:11:51,105 --> 00:11:54,380 Điều này là để nói rằng tất cả các máy móc và dễ dàng mà chúng tôi 252 00:11:54,380 --> 00:11:56,270 sử dụng chúng ngay bây giờ và mất cho các cấp, thực sự 253 00:11:56,270 --> 00:12:00,070 bắt đầu ở đây, chỉ cần một vài bước từ nhà hát thực tế này. 254 00:12:00,070 --> 00:12:03,930 Và bây giờ ngày hôm nay, nếu bạn đã không được, đây là Maxwell Dworkin, máy tính 255 00:12:03,930 --> 00:12:05,810 xây dựng khoa học, cũng quanh góc. 256 00:12:05,810 --> 00:12:09,760 Và trên tầng hai này xây dựng không treo ba trang 257 00:12:09,760 --> 00:12:12,740 từ mã nguồn gốc Bill Gates và Paul Allen đã viết. 258 00:12:12,740 --> 00:12:14,770 Trong thực tế, nếu sử dụng bạn phóng to trong bạn có thể thấy không chỉ 259 00:12:14,770 --> 00:12:17,350 tên của họ trong loại ban đầu, mà còn 260 00:12:17,350 --> 00:12:22,100 chữ ký của họ rằng họ trang trí một vài năm trở lại khi họ cuối cùng đã đến thăm. 261 00:12:22,100 --> 00:12:25,800 >> Nhưng điều đặc biệt hấp dẫn về việc này là những gì họ đặt ra để làm 262 00:12:25,800 --> 00:12:29,760 đã viết một chương trình mà có thể cho phép người khác để viết 263 00:12:29,760 --> 00:12:30,950 chương trình riêng của họ. 264 00:12:30,950 --> 00:12:34,280 Vào thời điểm đó tất cả những gì đã có máy tính này được thực hiện bởi MITS Altair. 265 00:12:34,280 --> 00:12:40,020 Và tất cả họ cần là một số cách làm cho nó dễ dàng cho người có sở thích và con người 266 00:12:40,020 --> 00:12:45,300 muốn chúng tôi trong căn phòng này để thực sự chương trình mà không nhất thiết phải hiểu biết 267 00:12:45,300 --> 00:12:49,060 Mã lắp ráp, hoặc máy mã, hoặc Thiên Chúa cấm, 0 và số 1. 268 00:12:49,060 --> 00:12:51,190 Chúng tôi lập trình, như những người trong căn phòng này, chúng tôi 269 00:12:51,190 --> 00:12:54,070 muốn có thể thể hiện mình nhiều hơn nữa như mã giả 270 00:12:54,070 --> 00:12:57,330 thậm chí nếu đó là một nit hơn chút cầu kỳ hơn chúng tôi nói chuyện tuần trước. 271 00:12:57,330 --> 00:13:00,970 Chúng tôi không muốn viết mã như thế này, mà Paul Allen và Bill Gates đã làm. 272 00:13:00,970 --> 00:13:04,850 Chúng tôi, thay vào đó, muốn viết mã có vẻ nhiều hơn một chút thân thiện. 273 00:13:04,850 --> 00:13:07,150 >> Bây giờ đây là một ngôn ngữ được gọi là BASIC. 274 00:13:07,150 --> 00:13:11,497 Và số dòng có là những gì bạn sử dụng chỉ đơn giản là đánh số các dòng mã 275 00:13:11,497 --> 00:13:12,330 rằng bạn đang viết. 276 00:13:12,330 --> 00:13:14,038 Chúng tôi thậm chí không phải làm điều đó trong những ngày này. 277 00:13:14,038 --> 00:13:16,060 Nhưng bạn có thể thấy ở đây cách IN "hello, thế giới" 278 00:13:16,060 --> 00:13:18,660 sẽ thực sự có lẽ chỉ in đó. 279 00:13:18,660 --> 00:13:22,710 Và vì vậy những gì Bill và Paul đã làm được trao quyền cho mọi người để viết mã như thế này 280 00:13:22,710 --> 00:13:27,240 thay vì of-- nếu bạn có một cái nhìn tại khoa học máy tính wall-- mã như thế này. 281 00:13:27,240 --> 00:13:29,290 >> Trong thực tế, thời gian gần đây CS50 có cơ hội 282 00:13:29,290 --> 00:13:32,540 ngồi xuống với Giáo sư Harry Lewis trong các bộ phận khoa học máy tính, người 283 00:13:32,540 --> 00:13:34,640 thực sự dạy Bill Gates cách đây vài năm, 284 00:13:34,640 --> 00:13:38,460 và đang đứng ở đây trước ba trang của đoạn trích. 285 00:13:38,460 --> 00:13:39,560 Chúng ta hãy có một cái nhìn. 286 00:13:39,560 --> 00:13:45,520 >> Harry LEWIS: Những gì bạn có ở đây là một danh sách của một tác phẩm đầu tiên của phần mềm 287 00:13:45,520 --> 00:13:50,240 được viết bởi Bill Gates và Paul Allen, người sáng lập của Microsoft. 288 00:13:50,240 --> 00:13:52,570 Vì vậy, mã này là thú vị vì hai lý do. 289 00:13:52,570 --> 00:13:55,480 Trước hết, nó đã trở thành Sản phẩm đầu tiên của Microsoft, 290 00:13:55,480 --> 00:14:01,810 đó là một thông dịch viên cho ngôn ngữ lập trình BASIC. 291 00:14:01,810 --> 00:14:04,940 Và thứ hai, đây là một trong những nỗ lực đầu tiên 292 00:14:04,940 --> 00:14:10,580 để tạo ra một thông dịch viên quá bình thường mọi người có thể sử dụng máy tính cá nhân. 293 00:14:10,580 --> 00:14:12,670 >> Vì vậy, Bill Gates là một đại học tại Đại học Harvard. 294 00:14:12,670 --> 00:14:14,820 Tôi bắt đầu giảng dạy tại Đại học Harvard năm 1974. 295 00:14:14,820 --> 00:14:16,560 Điều này đã được thực hiện vào năm 1975. 296 00:14:16,560 --> 00:14:20,180 Vì vậy, nó đã sớm trong sự nghiệp của mình và bắt đầu sự nghiệp của tôi. 297 00:14:20,180 --> 00:14:23,790 Tôi thực sự dạy Bill trong một khóa học khoảng thời gian này. 298 00:14:23,790 --> 00:14:27,130 Paul Allen không phải là một Harvard sinh viên, nhưng anh 299 00:14:27,130 --> 00:14:31,020 đã được một trường trung học bạn cùng lớp của Bill Gates. 300 00:14:31,020 --> 00:14:33,740 Nếu bạn đến xem vào danh sách, bạn sẽ 301 00:14:33,740 --> 00:14:36,230 thực sự tìm thấy một phần ba tên, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 là người bạn cùng lớp của Gates đây tại Đại học Harvard. 303 00:14:39,260 --> 00:14:41,340 >> OK, vì vậy đây là một bình luận thú vị ở đây. 304 00:14:41,340 --> 00:14:47,150 Nó nói "Trong 4K có thể xóa căn bậc hai nhưng đối với vòng vẫn phải làm việc. " 305 00:14:47,150 --> 00:14:53,080 OK, vậy điều đó có nghĩa là có là hai cách để biên dịch chương trình này. 306 00:14:53,080 --> 00:14:57,860 Một là để chạy trên một phiên bản máy tính Altair này 307 00:14:57,860 --> 00:15:04,310 mà chỉ có 4K lời bộ nhớ, 4096 từ bộ nhớ. 308 00:15:04,310 --> 00:15:07,050 Tuy nhiên, phiên bản lớn có 8K. 309 00:15:07,050 --> 00:15:09,770 Và vì thế cái này nói là mà trong phiên bản 4K 310 00:15:09,770 --> 00:15:12,770 bạn phải xóa một số code để làm cho nó phù hợp. 311 00:15:12,770 --> 00:15:14,790 Và một trong những điều đó sẽ bị xóa 312 00:15:14,790 --> 00:15:16,290 sẽ là thói quen căn bậc hai. 313 00:15:16,290 --> 00:15:20,360 Nhưng dường như các cho vòng nên vẫn 314 00:15:20,360 --> 00:15:26,392 làm việc ngay cả khi bạn đang biên soạn lại cho chỉ là phiên bản 4K của máy tính. 315 00:15:26,392 --> 00:15:29,350 DAVID J. Malan: Vì vậy, một trong những chủ đề, như chúng ta sẽ thấy trong khoa học máy tính, 316 00:15:29,350 --> 00:15:31,430 là khái niệm về lớp và trừu tượng, 317 00:15:31,430 --> 00:15:34,670 và thực sự đứng trên vai folks người đã đi trước chúng ta, không 318 00:15:34,670 --> 00:15:37,890 không giống như một số Bill Gates và Paul Allen câu chuyện ở đây. 319 00:15:37,890 --> 00:15:40,080 Và điều này có nghĩa là mà ngày nay chúng ta có thể cho 320 00:15:40,080 --> 00:15:43,490 cấp rằng điều này là thực sự dễ dàng hơn cho chúng tôi để viết mã. 321 00:15:43,490 --> 00:15:47,170 Thật vậy mã, như chúng tôi đã nói hôm thứ Sáu, là kỹ thuật được gọi là mã nguồn. 322 00:15:47,170 --> 00:15:52,210 Và đó là tiếng Anh này giống như cú pháp đó là thích hợp hơn và tốt hơn quy định 323 00:15:52,210 --> 00:15:55,480 hơn một cái gì đó giống như mã giả, cho mà không có định nghĩa chính thức. 324 00:15:55,480 --> 00:15:58,320 >> Và hôm nay những gì chúng ta đang đi tập trung vào là mã nguồn 325 00:15:58,320 --> 00:16:01,010 trông như thế này, mà phải thừa nhận là ở cái nhìn đầu tiên 326 00:16:01,010 --> 00:16:02,690 trông hoàn toàn khó hiểu. 327 00:16:02,690 --> 00:16:08,540 Và thẳng thắn mà nói, đó là cách thẩm mỹ hơn phức tạp hơn so với các chương trình cơ bản là. 328 00:16:08,540 --> 00:16:13,300 Tất cả các chương trình này không có gì, thu hồi, là chúng ta đã nói gì? 329 00:16:13,300 --> 00:16:14,990 Nó chỉ in "hello thế giới." 330 00:16:14,990 --> 00:16:19,600 Và nhìn vào tất cả những thứ chúng ta cần để quấn quanh cụm từ rất đơn giản. 331 00:16:19,600 --> 00:16:21,750 Nhưng chẳng bao lâu tất cả những dòng này và nhiều hơn nữa 332 00:16:21,750 --> 00:16:24,800 sẽ làm cho cảm giác tốt hơn nhiều cho bạn. 333 00:16:24,800 --> 00:16:26,940 >> Và dòng chảy như sau. 334 00:16:26,940 --> 00:16:31,220 Điều chúng ta cần lúc xử lý của chúng tôi là để có mã, như mã nguồn 335 00:16:31,220 --> 00:16:32,340 mã mà chúng tôi chỉ thấy. 336 00:16:32,340 --> 00:16:35,060 Và chúng ta cần một chương trình mới để chạy nó thông qua. 337 00:16:35,060 --> 00:16:39,130 Chúng ta cần thuật toán có thể chuyển đổi mã nguồn, như thế này, 338 00:16:39,130 --> 00:16:41,932 vào mã đối tượng, 0 và số 1. 339 00:16:41,932 --> 00:16:43,890 Nói cách khác, những gì chúng ta sẽ tìm hiểu hôm nay 340 00:16:43,890 --> 00:16:46,620 là làm thế nào để làm điều này, viết mã nguồn lên hàng đầu, 341 00:16:46,620 --> 00:16:49,930 vượt qua nó như là đầu vào đặc biệt chương trình được biết đến như một trình biên dịch, 342 00:16:49,930 --> 00:16:52,140 và chúng ta sẽ sản xuất mã đối tượng. 343 00:16:52,140 --> 00:16:54,600 Mà chỉ là một cách ưa thích của nói rằng chúng tôi sẽ có một cái gì đó 344 00:16:54,600 --> 00:16:58,350 trông như thế này, vượt qua nó vào một chương trình được gọi là một trình biên dịch, 345 00:16:58,350 --> 00:17:01,210 sản xuất mã đối tượng trông như thế này. 346 00:17:01,210 --> 00:17:04,720 >> Vì vậy, đây là nghĩa đen các mô hình 0 và số 1 347 00:17:04,720 --> 00:17:08,550 được hiểu một Máy tính Intel những ngày này, 348 00:17:08,550 --> 00:17:12,480 rằng nếu giải thích bởi CPU, bộ não bên trong của một máy tính, 349 00:17:12,480 --> 00:17:16,130 nghĩa là sẽ in ra, khá đơn giản, "hello thế giới." 350 00:17:16,130 --> 00:17:19,670 Bây giờ có cách nào hơn 0 và số 1 hơn bạn hy vọng có thể là cần thiết cho điều đó. 351 00:17:19,670 --> 00:17:22,520 Nhưng đó là bởi vì chúng tôi đang xây dựng về một việc tốt phức tạp 352 00:17:22,520 --> 00:17:24,270 rằng chúng ta từ nay về sau có thể đưa cho các cấp. 353 00:17:24,270 --> 00:17:27,869 Nói cách khác, có rất nhiều người thông minh đã cho chúng ta rất nhiều công cụ mát mẻ 354 00:17:27,869 --> 00:17:32,480 và phần mềm mạnh mẽ mà chúng ta bây giờ có thể làm cho các dự án của riêng của chúng tôi. 355 00:17:32,480 --> 00:17:33,400 >> Vì vậy, chúng ta hãy bắt đầu. 356 00:17:33,400 --> 00:17:36,640 Trong khi đó, cuối tuần trước, và Vấn đề cho Set 0 trong tuần này, 357 00:17:36,640 --> 00:17:39,000 bạn sẽ được chơi trong một thế giới trông như thế này. 358 00:17:39,000 --> 00:17:42,180 Bắt đầu từ hôm nay và vấn đề Set 1 tuần tới, các mã 359 00:17:42,180 --> 00:17:45,410 sẽ xem xét nhiều hơn một chút khó hiểu, nhưng chức năng là 360 00:17:45,410 --> 00:17:46,940 sẽ được như vậy. 361 00:17:46,940 --> 00:17:50,770 Vì vậy, thông báo, hàng đầu là Scratch, phía dưới là C. Thành thật mà nói Scratch 362 00:17:50,770 --> 00:17:52,780 rất nhiều người dùng hơn thân thiện và dễ tiếp cận. 363 00:17:52,780 --> 00:17:56,890 Nhưng nếu bây giờ bạn so sánh trực quan trên xuống phía dưới, có loại một 00:59 364 00:17:56,890 --> 00:17:59,690 tương ứng giữa các mảnh ghép và ngôn ngữ 365 00:17:59,690 --> 00:18:00,870 chúng tôi về để chơi với. 366 00:18:00,870 --> 00:18:04,420 Đặc biệt, nói, màu xanh mảnh ghép lên hàng đầu, 367 00:18:04,420 --> 00:18:08,370 rõ ràng là tương đương với những gì từ khóa hoặc cụm từ đặc biệt trong ngôn ngữ này 368 00:18:08,370 --> 00:18:09,062 được gọi là C? 369 00:18:09,062 --> 00:18:09,770 TƯỢNG: printf. 370 00:18:09,770 --> 00:18:10,728 DAVID J. Malan: printf. 371 00:18:10,728 --> 00:18:12,140 Điều đó có nghĩa là định dạng in ấn. 372 00:18:12,140 --> 00:18:15,240 Và đó chỉ là một ưa thích cách nói printf trong C 373 00:18:15,240 --> 00:18:18,615 là có được một tuyên bố hoặc một chức năng mà in một cái gì đó ra màn hình. 374 00:18:18,615 --> 00:18:19,990 Nó làm gì in trên màn hình? 375 00:18:19,990 --> 00:18:23,627 Bất cứ điều gì bạn yêu cầu bên trong trong dấu ngoặc kép, bên trong dấu ngoặc đơn. 376 00:18:23,627 --> 00:18:25,460 Vì vậy, một lần nữa, thừa nhận, có rất nhiều thứ 377 00:18:25,460 --> 00:18:27,990 mà bạn phải ghi nhớ, ngoặc đơn, dấu ngoặc kép, dấu chấm phẩy, 378 00:18:27,990 --> 00:18:28,656 và tất cả điều này. 379 00:18:28,656 --> 00:18:30,600 Nhưng tất cả điều đó là loại của bên cạnh điểm. 380 00:18:30,600 --> 00:18:33,660 Các takeaway thú vị cho bây giờ là khối nói trong Scratch 381 00:18:33,660 --> 00:18:37,520 là khá nhiều tương đương với lệnh printf trong C. 382 00:18:37,520 --> 00:18:41,390 >> Trong khi đó, các mảnh ghép vàng lên hàng đầu, khi lá cờ màu xanh lá cây nhấp, 383 00:18:41,390 --> 00:18:44,736 có lẽ là tương đương những gì từ khóa ở đây? 384 00:18:44,736 --> 00:18:45,360 TƯỢNG: Main. 385 00:18:45,360 --> 00:18:46,359 DAVID J. Malan: Vậy chính. 386 00:18:46,359 --> 00:18:47,410 Có lẽ int, có thể có hiệu lực. 387 00:18:47,410 --> 00:18:51,280 Nhưng chính loại âm thanh như điều quan trọng, và thực sự nó là. 388 00:18:51,280 --> 00:18:54,080 Vì vậy, khi lá cờ màu xanh lá cây nhấp là, một lần nữa, các mảnh ghép 389 00:18:54,080 --> 00:18:56,390 mà đá ra một toàn bộ chương trình cào. 390 00:18:56,390 --> 00:19:02,140 Nhưng chúng ta sẽ bây giờ bắt đầu gọi rằng chính, chức năng này được gọi là chính. 391 00:19:02,140 --> 00:19:06,410 >> Bây giờ trong khi đó chúng tôi sẽ khái quát này như sau. 392 00:19:06,410 --> 00:19:08,780 Chúng ta có thể gọi nói một chức năng. 393 00:19:08,780 --> 00:19:10,580 Và nó có thể trông đặc biệt như thế này. 394 00:19:10,580 --> 00:19:11,770 Vâng, những gì về các vòng lặp? 395 00:19:11,770 --> 00:19:16,540 Nếu chúng ta muốn bắt đầu chuyển đổi hoặc dịch ở Scratch C, 396 00:19:16,540 --> 00:19:19,400 điều này ở đây dường như chỉ nói "hello world" mãi mãi. 397 00:19:19,400 --> 00:19:23,060 Vì vậy, nếu bạn kết hợp các kịch bản với một con mèo trong Scratch, 398 00:19:23,060 --> 00:19:26,560 nó chỉ là sẽ tiếp tục nói trong một số loại phim hoạt hình bong bóng, 399 00:19:26,560 --> 00:19:29,922 "Hello world, hello thế giới, xin chào thế giới ", quảng cáo nauseum, mãi mãi. 400 00:19:29,922 --> 00:19:33,130 Nếu chúng tôi muốn làm một cái gì đó tương tự trong C, nó sẽ tìm một chút khó hiểu. 401 00:19:33,130 --> 00:19:35,463 Nhưng chúng ta có thể đạt được cùng một kết quả, như chúng ta sẽ thấy cuối cùng 402 00:19:35,463 --> 00:19:36,861 tìm hiểu, với cú pháp như thế này. 403 00:19:36,861 --> 00:19:39,360 Tôi sẽ sử dụng printf một lần nữa, bởi vì vào cuối ngày 404 00:19:39,360 --> 00:19:42,040 Tôi muốn in "hello thế giới." 405 00:19:42,040 --> 00:19:45,610 Và tôi dường như sử dụng một từ khóa đó không phải là mãi mãi. 406 00:19:45,610 --> 00:19:47,320 Đó là thay vì từ thời gian. 407 00:19:47,320 --> 00:19:49,650 Nhưng chỉ trong ngữ nghĩa Tiếng Anh, trong khi loại 408 00:19:49,650 --> 00:19:52,120 cho thấy một số loại vòng lặp hoặc chu kỳ. 409 00:19:52,120 --> 00:19:55,070 >> Vì vậy, đó sẽ xảy ra là các từ khóa C sử dụng. 410 00:19:55,070 --> 00:20:00,700 Và trong khi sự thật, tại sao trong khi thực sự hiệu quả có nghĩa là mãi mãi? 411 00:20:00,700 --> 00:20:04,240 Vâng, trong khi, như chúng ta sẽ sớm đánh giá cao tất cả các chi tiết, 412 00:20:04,240 --> 00:20:08,140 có ngoặc này bên cạnh nó nơi bạn có thể đặt một biểu thức Boolean. 413 00:20:08,140 --> 00:20:11,360 Và chừng nào mà biểu thức là đúng, mã này, 414 00:20:11,360 --> 00:20:14,750 như ký hiệu giữa hai dấu ngoặc nhọn như chúng tôi sẽ gọi cho họ, 415 00:20:14,750 --> 00:20:16,880 chỉ sẽ tiếp tục chạy một lần nữa và một lần nữa. 416 00:20:16,880 --> 00:20:18,410 >> Vì vậy, sự thật là sự thật. 417 00:20:18,410 --> 00:20:20,900 Vì vậy, trong khi phương tiện đúng chỉ làm điều này mãi mãi. 418 00:20:20,900 --> 00:20:23,480 Nó gần như một ngu ngốc xây dựng để thể hiện chính mình. 419 00:20:23,480 --> 00:20:26,590 Nhưng không có mãi mãi từ khóa trong C. Có thời gian. 420 00:20:26,590 --> 00:20:29,390 Và có một rất đơn giản Biểu thức Boolean như thật. 421 00:20:29,390 --> 00:20:32,210 Và như vậy, chúng ta sẽ thấy, đạt được kết quả tương tự. 422 00:20:32,210 --> 00:20:33,890 >> Làm thế nào khác bạn có thể thực hiện một vòng lặp? 423 00:20:33,890 --> 00:20:36,980 Vâng, có lẽ bạn sẽ Scratch cứng mã một số cụ thể 424 00:20:36,980 --> 00:20:39,430 lặp đi lặp lại trong vòng lặp ở đây. 425 00:20:39,430 --> 00:20:43,210 Và đó là chính xác những gì chúng tôi có thể làm trong phiên bản này của C, 426 00:20:43,210 --> 00:20:46,140 nhờ đó chúng ta có một cái gọi là vòng lặp for. 427 00:20:46,140 --> 00:20:49,850 Và cho vòng lặp ở đây sẽ để lặp lại, hơi khó hiểu, 428 00:20:49,850 --> 00:20:54,100 từ giá trị 0 lên trên đến dưới 10. 429 00:20:54,100 --> 00:20:55,955 >> Bây giờ biến trong Scratch. 430 00:20:55,955 --> 00:20:57,830 Bạn có thể không có Nhân dịp sử dụng các. 431 00:20:57,830 --> 00:21:02,516 Nhưng thời điểm này, những gì nói chung, của một biến, chúng tôi đã nói tuần trước? 432 00:21:02,516 --> 00:21:03,015 Đó là những gì? 433 00:21:03,015 --> 00:21:03,780 >> TƯỢNG: điểm. 434 00:21:03,780 --> 00:21:05,200 >> DAVID J. Malan: Để điểm? 435 00:21:05,200 --> 00:21:05,700 Oh, chỉ. 436 00:21:05,700 --> 00:21:07,620 OK, theo dõi các điểm, Ví dụ, trong một trò chơi. 437 00:21:07,620 --> 00:21:09,510 Hay rộng hơn làm những gì với các biến? 438 00:21:09,510 --> 00:21:10,450 Các tiện ích của chúng là gì? 439 00:21:10,450 --> 00:21:10,825 >> TƯỢNG: bộ nhớ. 440 00:21:10,825 --> 00:21:11,750 >> DAVID J. Malan: Vâng, vì vậy bộ nhớ. 441 00:21:11,750 --> 00:21:13,000 Đó là một cái gì đó để lưu trữ. 442 00:21:13,000 --> 00:21:17,336 Và các loại ngớ ngẩn hình ảnh tôi sử dụng Lần cuối cùng giống như bát thủy tinh này. 443 00:21:17,336 --> 00:21:19,710 Và nếu chúng ta muốn lưu trữ một cái gì đó bên trong của một biến, 444 00:21:19,710 --> 00:21:21,918 Ví dụ ngay bây giờ giá trị là sáu bởi vì có 445 00:21:21,918 --> 00:21:23,450 sáu quả bóng ping pong ở đây. 446 00:21:23,450 --> 00:21:26,158 Nó chỉ là một số loại lưu trữ thùng chứa bên dưới mui xe 447 00:21:26,158 --> 00:21:30,030 được thực hiện với các bit, 0 và số 1, Tuy nhiên một máy tính sẽ xảy ra để làm điều đó. 448 00:21:30,030 --> 00:21:32,900 >> Vì vậy, trong Scratch, nếu chúng ta muốn có một biến, 449 00:21:32,900 --> 00:21:34,840 chúng ta có thể sử dụng một khối màu cam như thế này. 450 00:21:34,840 --> 00:21:37,050 Chúng tôi sẽ gọi truy cập đó trong trường hợp đặc biệt này. 451 00:21:37,050 --> 00:21:38,890 Tôi khởi tạo nó là 0. 452 00:21:38,890 --> 00:21:41,080 Và những gì sau đó tôi làm gì? 453 00:21:41,080 --> 00:21:44,780 Mãi mãi, nói truy cập, mà nếu bạn chơi với năm Scratch, 454 00:21:44,780 --> 00:21:45,780 bạn chỉ thấy cào. 455 00:21:45,780 --> 00:21:49,920 Con mèo hay bất cứ điều gì bạn đưa vào trang phục anh sẽ nói số trong câu hỏi. 456 00:21:49,920 --> 00:21:52,840 >> Thay đổi sắc bén của 1 là như incrementing bởi 1. 457 00:21:52,840 --> 00:21:56,580 Và vì vậy đây sẽ đếm từ những gì vì vậy những gì? 458 00:21:56,580 --> 00:21:59,114 Từ 0 đến tận vô cùng, hoặc cho đến khi nghỉ Scratch, 459 00:21:59,114 --> 00:22:01,030 hoặc cho đến khi bạn loại mất quan tâm đến xem 460 00:22:01,030 --> 00:22:02,650 cao như thế nào anh ta thực sự có thể tin tưởng. 461 00:22:02,650 --> 00:22:04,800 >> Vậy làm thế nào chúng ta có thể chuyển đổi này vào C? 462 00:22:04,800 --> 00:22:06,480 Nó sẽ tìm một chút khó hiểu. 463 00:22:06,480 --> 00:22:08,896 Nhưng một lần nữa, nếu bạn nhìn vào mỗi của những dòng cá nhân 464 00:22:08,896 --> 00:22:10,410 họ loại dòng sản phẩm nói chung. 465 00:22:10,410 --> 00:22:13,526 Vì vậy, dường như int sẽ có một số ý nghĩa đặc biệt trong C. 466 00:22:13,526 --> 00:22:14,400 Chúng ta sẽ thấy rằng một lần nữa. 467 00:22:14,400 --> 00:22:15,810 Là một dành nó có nghĩa là số nguyên. 468 00:22:15,810 --> 00:22:16,990 Vì vậy, nó chỉ có nghĩa là số lượng. 469 00:22:16,990 --> 00:22:18,920 Vì vậy, đó là loại bát thủy tinh tôi muốn, một 470 00:22:18,920 --> 00:22:21,120 có thể lưu trữ số, không ping pong bóng. 471 00:22:21,120 --> 00:22:25,520 Và tôi sẽ sử dụng dấu bằng đó để gán cho nó một giá trị 0. 472 00:22:25,520 --> 00:22:29,440 Vì vậy, đó là khá giống như bộ truy cập đến 0, nhưng trong C. 473 00:22:29,440 --> 00:22:32,840 >> Trong khi đó, trong khi sự thật, đó là tương đương, tất nhiên, để mãi mãi, 474 00:22:32,840 --> 00:22:35,980 mặc dù đó là một chút khó hiểu, và sau đó bên trong dấu ngoặc nhọn. 475 00:22:35,980 --> 00:22:39,188 Và bạn có thể nghĩ về những dấu ngoặc nhọn, mà bạn có thể gõ trên bàn phím, 476 00:22:39,188 --> 00:22:43,110 như thực sự là như độ cong trong các khối màu vàng trong vòng Scratch. 477 00:22:43,110 --> 00:22:45,700 Nó bao gồm nhiều dòng mã. 478 00:22:45,700 --> 00:22:48,120 >> Printf là nhận được một chút đáng sợ tại vì tôi 479 00:22:48,120 --> 00:22:51,120 thấy không chỉ trích trong ngoặc đơn. 480 00:22:51,120 --> 00:22:55,160 Nhưng những gì khác là mới cú pháp trong ví dụ này? 481 00:22:55,160 --> 00:22:57,300 Có một phần trăm d. 482 00:22:57,300 --> 00:22:58,551 Và sau đó là có dấu gạch chéo ngược n. 483 00:22:58,551 --> 00:23:00,883 Chúng tôi thấy rằng trước đây, thậm chí mặc dù tôi không đề cập đến nó. 484 00:23:00,883 --> 00:23:01,886 Sau đó, có một dấu phẩy. 485 00:23:01,886 --> 00:23:03,010 Và sau đó có một truy cập. 486 00:23:03,010 --> 00:23:05,010 >> Nhưng chúng ta sẽ thấy chỉ trong một thời điểm rằng đây chỉ là 487 00:23:05,010 --> 00:23:09,080 một cách tiêu chuẩn nói in một "Số thập phân", trích dẫn, unquote, 488 00:23:09,080 --> 00:23:10,500 một số số thập phân. 489 00:23:10,500 --> 00:23:13,370 Nhưng tôi sẽ cho biết sau những gì mà số thập phân là. 490 00:23:13,370 --> 00:23:16,835 Vì vậy, thực tế là có một dấu phẩy phù nói printf này, 491 00:23:16,835 --> 00:23:18,710 có nghĩa là đi trước và in ấn một số số thập phân. 492 00:23:18,710 --> 00:23:23,110 Oh, và bằng cách này, con số này bất cứ điều gì giá trị của biến này. 493 00:23:23,110 --> 00:23:25,880 Và như vậy để kiếm thêm này rõ ràng, chúng ta sẽ thấy một ví dụ 494 00:23:25,880 --> 00:23:30,930 chẳng bao lâu liên quan đến chính xác printf trong bối cảnh của chương trình thực tế C. 495 00:23:30,930 --> 00:23:33,472 >> Bây giờ chỉ cần để quấn lên một số các cấu trúc. 496 00:23:33,472 --> 00:23:36,680 Biểu thức Boolean, bạn có thể không có Nhân dịp sử dụng các chương trình của bạn 497 00:23:36,680 --> 00:23:39,450 nhưng bạn có thể rất tốt, đặc biệt là nếu điều kiện sử dụng. 498 00:23:39,450 --> 00:23:43,460 Và thế là hai ví dụ từ Scratch có nghĩa là nếu x nhỏ hơn y, 499 00:23:43,460 --> 00:23:48,770 hoặc nếu x nhỏ hơn y và y là ít hơn z, làm thế nào chúng ta có thể dịch đó? 500 00:23:48,770 --> 00:23:50,810 >> Vâng, trong C nó chỉ sẽ trông như thế này. 501 00:23:50,810 --> 00:23:55,300 Một chút khó hiểu, nhiều dấu ngoặc đơn, một số dấu và kỳ lạ, nhưng về cơ bản 502 00:23:55,300 --> 00:23:59,160 ý tưởng là đơn giản như họ trong các mảnh ghép trên thế giới. 503 00:23:59,160 --> 00:24:02,690 Chúng tôi chỉ đơn giản là kiểm tra nếu một cái gì đó ít hơn cái gì khác. 504 00:24:02,690 --> 00:24:03,910 >> Làm thế nào về điều kiện? 505 00:24:03,910 --> 00:24:09,710 Tóm lại bằng tiếng Anh, những gì thực hiện điều này đoạn mã Scratch bạn sẽ nói gì? 506 00:24:09,710 --> 00:24:11,050 >> TƯỢNG: So sánh hai con số. 507 00:24:11,050 --> 00:24:13,760 >> DAVID J. Malan: So sánh hai số, và nếu x nhỏ hơn y 508 00:24:13,760 --> 00:24:14,860 nó nói càng nhiều. 509 00:24:14,860 --> 00:24:18,080 Nếu x lớn hơn y nó nói càng nhiều, khác 510 00:24:18,080 --> 00:24:20,740 nếu x bằng y nó nói càng nhiều. 511 00:24:20,740 --> 00:24:22,180 Bây giờ, nơi đã x và y đến từ đâu? 512 00:24:22,180 --> 00:24:22,680 Ai mà biết được. 513 00:24:22,680 --> 00:24:25,380 Đoạn này Scratch đang ra khỏi bối cảnh. 514 00:24:25,380 --> 00:24:29,050 Nhưng những gì chúng tôi muốn làm bây giờ là dịch này chỉ là một chút thời gian để xem. 515 00:24:29,050 --> 00:24:31,660 >> Vì vậy, khi bạn cảm thấy thoải mái tuần này Vấn đề Set 516 00:24:31,660 --> 00:24:34,190 0 chơi trong thế giới này bên trái, nhận ra 517 00:24:34,190 --> 00:24:36,940 rằng những ý tưởng không thay đổi tuần này hoặc tới hoặc xa hơn nữa. 518 00:24:36,940 --> 00:24:38,690 Chúng tôi chỉ đơn giản là sẽ bắt đầu viết những điều 519 00:24:38,690 --> 00:24:41,240 theo một cách khác với chúng tôi bàn phím thay vì chuột của chúng tôi. 520 00:24:41,240 --> 00:24:44,577 >> Vì vậy, nếu x nhỏ hơn y, và có một số dấu ngoặc đơn ở đó, 521 00:24:44,577 --> 00:24:47,160 sau đó có một số dấu ngoặc nhọn một lần nữa để loại đóng gói nó 522 00:24:47,160 --> 00:24:48,970 giống như những mảnh ghép màu vàng làm. 523 00:24:48,970 --> 00:24:53,000 Và tôi sẽ printf x nhỏ hơn y và vv. 524 00:24:53,000 --> 00:24:56,540 >> Những gì là tốt đẹp về C, như bạn có thể thấy ở đây, 525 00:24:56,540 --> 00:25:00,480 là bạn không được làm tổ này, làm tổ, làm tổ đó là cần thiết 526 00:25:00,480 --> 00:25:02,220 sẽ đẩy mã của bạn ở bên phải. 527 00:25:02,220 --> 00:25:04,990 Thay vào đó bạn có thể có tất cả mọi thứ Đội hình gọn gàng như thế này. 528 00:25:04,990 --> 00:25:08,960 Nhưng đó chỉ là một thẩm mỹ chi tiết chúng ta sẽ thấy một lần nữa trước khi dài. 529 00:25:08,960 --> 00:25:09,660 >> Tất cả các quyền. 530 00:25:09,660 --> 00:25:13,290 Vì vậy, đưa chúng ta trở lại chương trình tìm kiếm khó hiểu này. 531 00:25:13,290 --> 00:25:15,180 Hãy thực sự viết một số mã. 532 00:25:15,180 --> 00:25:16,830 Bây giờ làm thế nào để bạn đi về cách viết mã? 533 00:25:16,830 --> 00:25:21,310 Tất cả những năm mà bạn đã sở hữu một máy Mac hoặc máy PC, máy tính để bàn hoặc máy tính xách tay, 534 00:25:21,310 --> 00:25:24,520 bạn đã thực sự có khả năng để bắt đầu viết mã lập trình. 535 00:25:24,520 --> 00:25:27,050 Nhưng có lẽ bạn đang bị mất tích một loại đặc biệt của chương trình. 536 00:25:27,050 --> 00:25:28,470 Bạn chắc chắn có thể viết mã. 537 00:25:28,470 --> 00:25:30,740 Nhưng bạn có thể không nhất thiết, ra khỏi hộp, 538 00:25:30,740 --> 00:25:34,210 chuyển đổi mã nguồn vào mã đối tượng, 0 và số 1 539 00:25:34,210 --> 00:25:35,619 không có gì trên máy tính của bạn? 540 00:25:35,619 --> 00:25:36,410 TƯỢNG: biên dịch. 541 00:25:36,410 --> 00:25:37,630 DAVID J. Malan: Vì vậy, một trình biên dịch, phải. 542 00:25:37,630 --> 00:25:39,730 Bây giờ hầu hết các bạn có thể không sở hữu một trình biên dịch, 543 00:25:39,730 --> 00:25:41,259 chưa bao giờ tải về một trình biên dịch. 544 00:25:41,259 --> 00:25:44,300 Nhưng bạn sẽ thấy bạn có thể tải nó giống như hầu hết bất kỳ phần mềm khác. 545 00:25:44,300 --> 00:25:47,470 Trong thế giới của Mac OS, có lẽ bạn tải về hoặc đã tải về đã 546 00:25:47,470 --> 00:25:50,437 một cái gì đó gọi là Xcode hay GCC hoặc kêu vang. 547 00:25:50,437 --> 00:25:52,270 Nếu bạn đến từ Windows trên thế giới có lẽ bạn 548 00:25:52,270 --> 00:25:56,190 đã tải về Visual Studio, Visual Basic, môi trường như thế. 549 00:25:56,190 --> 00:25:59,200 Có hàng tá các trình biên dịch những ngày mà bạn có thể sử dụng. 550 00:25:59,200 --> 00:26:01,940 Nhưng ngắn của nó ở đây là nó sẽ là một nỗi đau 551 00:26:01,940 --> 00:26:04,480 và, thẳng thắn, một công nghệ cơn ác mộng cho hàng trăm 552 00:26:04,480 --> 00:26:07,680 của những người khác nhau cấu hình máy tính cho tất cả 553 00:26:07,680 --> 00:26:09,800 cấu hình máy của họ trong cách chính xác cùng 554 00:26:09,800 --> 00:26:11,700 để tất cả chúng ta có thể trên cùng một trang. 555 00:26:11,700 --> 00:26:15,240 >> Vì vậy, những gì chúng ta, thay vào đó, làm trong CS50 được chúng tôi cung cấp cho bạn 556 00:26:15,240 --> 00:26:18,349 một môi trường tiêu chuẩn, một Môi trường Linux đó là 557 00:26:18,349 --> 00:26:20,140 sẽ xem xét một chút một cái gì đó như thế này. 558 00:26:20,140 --> 00:26:22,980 Bạn sẽ thấy nhiều hơn về điều này trong các Vấn đề Set 1 đặc điểm kỹ thuật mà 559 00:26:22,980 --> 00:26:25,330 sẽ đi trực tuyến tối thứ sáu này. 560 00:26:25,330 --> 00:26:28,360 >> Và điều này có nghĩa là bạn từ nay về sau 561 00:26:28,360 --> 00:26:32,060 sẽ có thể tải về và cài đặt một chương trình 562 00:26:32,060 --> 00:26:33,650 gọi là CS50 gia dụng. 563 00:26:33,650 --> 00:26:36,275 Và bạn sẽ phải tải về và cài đặt một chương trình gọi là 564 00:26:36,275 --> 00:26:40,300 một hypervisor, đó chỉ là một là cách ưa thích đạt được điều này. 565 00:26:40,300 --> 00:26:44,600 Cho dù bạn sở hữu một máy Mac hoặc PC hoặc một Máy tính Linux hoặc một máy tính Solaris, 566 00:26:44,600 --> 00:26:46,830 hoặc bất cứ hoạt động điên hệ thống bạn đang chạy, 567 00:26:46,830 --> 00:26:49,820 bạn sẽ tải về một chương trình gọi là hypervisor đó là 568 00:26:49,820 --> 00:26:53,350 sẽ chạy CS50 Thiết bị trên máy tính của bạn 569 00:26:53,350 --> 00:26:55,430 không có vấn đề gì hệ điều hành của bạn. 570 00:26:55,430 --> 00:27:00,640 Một hypervisor nói cách khác là chuyển đổi các công cụ của chúng tôi để bất cứ ngôn ngữ, 571 00:27:00,640 --> 00:27:03,850 bất cứ hướng dẫn của bạn máy tính của riêng hiểu. 572 00:27:03,850 --> 00:27:04,962 >> Vì vậy, đây là một giới hạn. 573 00:27:04,962 --> 00:27:06,920 Và một lần nữa, đây là loại các chuyên đề trong máy tính 574 00:27:06,920 --> 00:27:08,722 khoa học, xây dựng trên đầu trang của sự vật. 575 00:27:08,722 --> 00:27:09,680 Bạn có thể có Windows. 576 00:27:09,680 --> 00:27:10,710 Bạn có thể có hệ điều hành Mac. 577 00:27:10,710 --> 00:27:12,960 Nhưng bắt đầu từ tuần tới bạn sẽ đã tải về 578 00:27:12,960 --> 00:27:14,980 một mảnh miễn phí của phần mềm gọi là hypervisor. 579 00:27:14,980 --> 00:27:17,800 Bạn sẽ đã tải về một mảnh phần mềm được gọi là CS50 gia dụng. 580 00:27:17,800 --> 00:27:21,050 >> Điều đó sẽ chạy trong hypervisor, đó là sẽ chạy trên máy tính của bạn. 581 00:27:21,050 --> 00:27:23,030 Và kết quả cuối cùng là rằng tất cả chúng ta sẽ 582 00:27:23,030 --> 00:27:26,220 có một cửa sổ đơn giản như này trên máy Mac hoặc máy PC của bạn 583 00:27:26,220 --> 00:27:30,160 cung cấp cho chúng ta những ảo ảnh của tất cả các chạy hệ điều hành tương tự, 584 00:27:30,160 --> 00:27:32,800 mà không có bất kỳ khác ảnh hưởng đến máy tính của bạn. 585 00:27:32,800 --> 00:27:34,870 Và bạn có thể toàn màn hình và về cơ bản nó cư xử 586 00:27:34,870 --> 00:27:37,550 như thể bạn đang chạy một hệ điều hành được gọi là Linux, 587 00:27:37,550 --> 00:27:40,270 đó là những gì CS50 Thiết bị dựa trên. 588 00:27:40,270 --> 00:27:42,930 >> Vì vậy, hãy thực sự sử dụng này bây giờ viết một chương trình. 589 00:27:42,930 --> 00:27:45,450 Bạn có thể viết một chương trình sử dụng Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Bạn có thể viết một chương trình sử dụng TextEdit, hoặc Notepad, 591 00:27:48,160 --> 00:27:51,880 hoặc WordPad, hoặc khá nhiều bất kỳ từ chương trình xử lý bạn đã từng sử dụng. 592 00:27:51,880 --> 00:27:55,174 Nhưng thực tế là bạn không nên sử dụng thực sự của những chương trình. 593 00:27:55,174 --> 00:27:57,840 Bạn chắc chắn không nên sử dụng một cái gì đó giống như Microsoft Word, mà 594 00:27:57,840 --> 00:28:01,120 có phải đối mặt với đậm và in nghiêng, và phông chữ lớn hơn và phông chữ nhỏ hơn, 595 00:28:01,120 --> 00:28:03,560 bởi vì máy tính không quan tâm đến bất kỳ điều đó. 596 00:28:03,560 --> 00:28:05,600 Tất cả các máy tính sẽ quan tâm là 597 00:28:05,600 --> 00:28:09,040 Tiếng Anh như hướng dẫn được viết bằng C. 598 00:28:09,040 --> 00:28:12,050 >> Vì vậy, những gì chúng tôi sẽ làm bên trong của gia dụng CS50 599 00:28:12,050 --> 00:28:14,290 được sử dụng một chương trình tự do có sẵn, và nó 600 00:28:14,290 --> 00:28:17,360 cài đặt sẵn trong này thiết bị, được gọi là Gedit. 601 00:28:17,360 --> 00:28:22,280 Và Gedit chỉ là một siêu đơn giản soạn thảo văn bản như hệ điều hành Mac của TextEdit, 602 00:28:22,280 --> 00:28:26,200 như Notepad của Windows đó là sẽ tìm kiếm một chút gì đó như thế này. 603 00:28:26,200 --> 00:28:28,910 >> Vì vậy, hãy thực sự không nhìn vào slide này. 604 00:28:28,910 --> 00:28:32,580 Nhưng chúng ta hãy thực sự đi vào môi trường riêng của mình. 605 00:28:32,580 --> 00:28:36,090 Tôi sẽ đi trước và đăng nhập, trong cửa sổ khác này, 606 00:28:36,090 --> 00:28:40,910 để CS50 gia dụng của tôi, mà tôi đã cài đặt sẵn trên máy tính xách tay của tôi ở đây. 607 00:28:40,910 --> 00:28:43,771 >> Chú ý rằng, giống như Windows và Mac OS, nó có một số đơn. 608 00:28:43,771 --> 00:28:45,520 Giống như Windows nó đặt nó xuống đó thay vì 609 00:28:45,520 --> 00:28:47,020 Mac OS, trong đó đặt nó xuống đó. 610 00:28:47,020 --> 00:28:48,930 Nhưng thực tế là nó tất cả các loại giống nhau. 611 00:28:48,930 --> 00:28:50,770 Và đây là một toàn bộ loạt các phần mềm. 612 00:28:50,770 --> 00:28:51,770 Có Dropbox. 613 00:28:51,770 --> 00:28:54,780 Có một bó toàn bộ các phụ kiện, các chương trình đồ họa mà chúng ta sẽ 614 00:28:54,780 --> 00:28:56,430 sử dụng sau này trong thời gian cho bài tập. 615 00:28:56,430 --> 00:28:59,650 Có một trình duyệt web được xây dựng trong quá rằng đây là một máy tính đầy đủ chính thức 616 00:28:59,650 --> 00:29:01,240 bên trong máy tính. 617 00:29:01,240 --> 00:29:04,170 >> Nhưng tôi sẽ bấm vào đây tận cùng bên trái biểu tượng màu trắng ở đây, 618 00:29:04,170 --> 00:29:05,890 đó là biểu tượng cho Gedit. 619 00:29:05,890 --> 00:29:09,650 Và nó sẽ mở một cửa sổ có ba tấm với nó, 620 00:29:09,650 --> 00:29:12,590 một bên trái, một đầu, và một phía dưới. 621 00:29:12,590 --> 00:29:16,071 >> Bây giờ là trong một này ngay hàng đầu mà Tôi sẽ thực sự viết một số mã. 622 00:29:16,071 --> 00:29:16,820 Vì vậy, hãy làm điều này ,. 623 00:29:16,820 --> 00:29:19,040 Tôi sẽ đi vào File, Save. 624 00:29:19,040 --> 00:29:22,100 Và bạn có thể không bao giờ đã thấy cửa sổ đặc biệt này trước đây. 625 00:29:22,100 --> 00:29:23,620 Nhưng điều này cũng giống như hệ điều hành Mac hoặc Windows. 626 00:29:23,620 --> 00:29:25,490 Nó chỉ là một cửa sổ với tất cả các thư mục 627 00:29:25,490 --> 00:29:27,290 mà tôi có bên trong của máy tính này. 628 00:29:27,290 --> 00:29:30,320 >> Và tôi sẽ tiết kiệm nội dung tập tin hello.c. 629 00:29:30,320 --> 00:29:32,690 Và tôi sẽ đi phía trước và nhấn Save. 630 00:29:32,690 --> 00:29:36,364 Và bây giờ thấy tôi có một tab ở phía trên bên trái được gọi là hello.c. 631 00:29:36,364 --> 00:29:38,280 Vì vậy, có lẽ là khá quen thuộc ngay cả khi bạn đã không 632 00:29:38,280 --> 00:29:40,240 sử dụng chương trình đặc biệt này trước đây. 633 00:29:40,240 --> 00:29:44,890 >> Và bây giờ tôi sẽ đánh vào những trình tự khá khó hiểu của các lệnh 634 00:29:44,890 --> 00:29:46,360 mà chúng ta đã thấy một thời điểm trước đây. 635 00:29:46,360 --> 00:29:49,330 Bao gồm, tiêu chuẩn I / O.h. 636 00:29:49,330 --> 00:29:50,600 Thêm chi tiết về sớm đó. 637 00:29:50,600 --> 00:29:55,670 Int void main, mở xoăn cú đúp, đóng ngoặc móc. 638 00:29:55,670 --> 00:30:01,570 Và sau đó bên trong có tôi nghĩ là nơi mà chúng tôi đã có "hello world", dấu chấm phẩy. 639 00:30:01,570 --> 00:30:03,100 Và bây giờ tiết kiệm. 640 00:30:03,100 --> 00:30:08,780 >> Vì vậy, đây là một chương trình viết bằng C, bằng văn bản, do đó, trong mã nguồn. 641 00:30:08,780 --> 00:30:10,720 Nhưng tôi không thể chỉ cần chạy chương trình này. 642 00:30:10,720 --> 00:30:13,390 Tôi gần như muốn tăng gấp đôi nhấp chuột vào một biểu tượng nào đó, 643 00:30:13,390 --> 00:30:16,390 nhưng không có biểu tượng tồn tại khác hơn các tập tin mã nguồn. 644 00:30:16,390 --> 00:30:20,359 Gì, một lần nữa, là quá trình bây giờ mà Tôi cần phải chạy tập tin này thông qua? 645 00:30:20,359 --> 00:30:21,150 TƯỢNG: biên dịch. 646 00:30:21,150 --> 00:30:22,399 DAVID J. Malan: Vì vậy, một trình biên dịch. 647 00:30:22,399 --> 00:30:24,890 Vì vậy, trong các máy tính khác nhau mà bạn làm điều này trong nhiều cách khác nhau. 648 00:30:24,890 --> 00:30:27,480 Nhưng những gì chúng tôi đã thực hiện ở đây trong các gia dụng CS50 đó là 649 00:30:27,480 --> 00:30:31,260 đại diện như thế nào có lẽ bạn làm điều này trên nhiều hệ thống khác nhau, 650 00:30:31,260 --> 00:30:34,036 Tôi chỉ đơn giản là sẽ chạy một lệnh gọi thực hiện. 651 00:30:34,036 --> 00:30:35,660 Và làm là nghĩa đen sẽ làm điều đó. 652 00:30:35,660 --> 00:30:36,640 Hãy cho tôi một chương trình. 653 00:30:36,640 --> 00:30:39,060 >> Vì vậy, chắc là sẽ chạy một trình biên dịch cho tôi. 654 00:30:39,060 --> 00:30:42,160 Và tên của chương trình Tôi muốn làm là xin chào. 655 00:30:42,160 --> 00:30:43,510 Bây giờ làm là một chương trình. 656 00:30:43,510 --> 00:30:47,170 Và chắc là đủ để thông minh nhận ra rằng nếu tôi nói làm hello, 657 00:30:47,170 --> 00:30:50,980 nó sẽ tự động tìm kiếm cho một tập tin gọi là hello.c 658 00:30:50,980 --> 00:30:53,420 chỉ vì đó là cách nó được cấu hình. 659 00:30:53,420 --> 00:31:00,300 >> Vì vậy, khi bây giờ tôi nhấn Enter ở đây, điều này điên dòng khó hiểu chỉ đã thực hiện. 660 00:31:00,300 --> 00:31:02,720 Và tôi tin tưởng, trước khi dài, trong vòng chỉ vài ngày, 661 00:31:02,720 --> 00:31:05,590 bạn sẽ hiểu những gì tất cả điều đó có nghĩa là vô nghĩa. 662 00:31:05,590 --> 00:31:11,150 Nhưng bây giờ, chỉ biết rằng làm thực hiện nguyên nhân gây ra một trình biên dịch. 663 00:31:11,150 --> 00:31:13,290 Nói cách khác, nó được tìm thấy một trình biên dịch trên máy tính của tôi 664 00:31:13,290 --> 00:31:14,820 đó là cài đặt sẵn trên gia dụng CS50 665 00:31:14,820 --> 00:31:16,560 rằng chúng tôi sẽ giao cho bạn trong vấn đề Set 1. 666 00:31:16,560 --> 00:31:20,990 Và sau đó đã hello.c như đầu vào, và sản xuất rõ ràng 667 00:31:20,990 --> 00:31:23,040 0 và số 1 là đầu ra. 668 00:31:23,040 --> 00:31:29,410 >> Và theo mặc định những gì nó làm là nó tiết kiệm những số 0 và số 1 trong một tập tin hello. 669 00:31:29,410 --> 00:31:33,180 Và mặc dù cú pháp này quá might được mới cho bạn, chỉ đơn giản bằng cách nói rằng dấu chấm 670 00:31:33,180 --> 00:31:37,110 giảm chào là có được các phương tiện mà tôi chạy chương trình này. 671 00:31:37,110 --> 00:31:40,360 >> Cho bây giờ và cho ít nhất một vài tuần, gần như tất cả các chương trình 672 00:31:40,360 --> 00:31:44,230 chúng tôi viết được sẽ được cửa sổ văn bản màu đen và trắng. 673 00:31:44,230 --> 00:31:47,006 Không có chuột, không nhấp vào, không có cửa sổ, không có biểu tượng. 674 00:31:47,006 --> 00:31:49,630 Chúng tôi sẽ giữ nó đơn giản và tập trung vào những ý tưởng cơ bản 675 00:31:49,630 --> 00:31:52,490 ban đầu trước khi chúng ta có được một cái gì đó mức độ cao hơn, ví dụ, 676 00:31:52,490 --> 00:31:56,410 như thoát ra khỏi trò chơi mà chúng tôi nói chuyện về trong bài giảng đầu tiên vào tuần trước. 677 00:31:56,410 --> 00:32:00,820 >> Vì vậy, khi tôi nhấn Enter ở đây, đó là tương đương trong một văn bản chỉ môi trường 678 00:32:00,820 --> 00:32:03,272 tăng gấp đôi nhấp vào một biểu tượng gọi là hello. 679 00:32:03,272 --> 00:32:05,480 Những gì bạn mong đợi sẽ xảy ra khi tôi nhấn Enter sau đó? 680 00:32:05,480 --> 00:32:07,120 >> TƯỢNG: Nó sẽ in "hello thế giới." 681 00:32:07,120 --> 00:32:10,000 >> DAVID J. Malan: Hy vọng nó sẽ in "hello thế giới." 682 00:32:10,000 --> 00:32:11,370 Và thực sự nó đã làm. 683 00:32:11,370 --> 00:32:13,690 Bây giờ có được một số cú pháp khó hiểu ở đây. 684 00:32:13,690 --> 00:32:15,950 Chúng ta hãy quay lại chỉ một thời điểm và xem chúng ta 685 00:32:15,950 --> 00:32:19,530 không thể suy luận ra chỉ bằng cách mày mò, cố gắng và thất bại, 686 00:32:19,530 --> 00:32:21,130 như những gì đang xảy ra ở đây. 687 00:32:21,130 --> 00:32:23,609 Nếu tôi thoát khỏi những dấu gạch chéo ngược n? 688 00:32:23,609 --> 00:32:25,650 Bây giờ một số bạn của những người đã lập trình trước khi có thể 689 00:32:25,650 --> 00:32:27,054 biết ngay lập tức điều đó có nghĩa. 690 00:32:27,054 --> 00:32:29,220 Nhưng đối với những người bạn của những người đã không bao giờ được lập trình trước, 691 00:32:29,220 --> 00:32:34,052 ít nhất là nghĩ đến bản thân những gì đang xảy ra thay đổi khi tôi chạy chương trình này? 692 00:32:34,052 --> 00:32:37,010 Vì vậy, tôi sẽ quay trở lại xuống của tôi màu đen và trắng cửa sổ, 693 00:32:37,010 --> 00:32:39,290 là cửa sổ trong đó Tôi có thể biên dịch này. 694 00:32:39,290 --> 00:32:41,130 Tôi sẽ phải biên dịch lại hello. 695 00:32:41,130 --> 00:32:43,520 Chúng ta sẽ xem cùng trình tự khó hiểu của các lệnh. 696 00:32:43,520 --> 00:32:45,719 Và tôi sẽ làm dấu chấm dấu gạch chéo hello. 697 00:32:45,719 --> 00:32:48,260 Và bây giờ một người nào đó, nếu bạn muốn, người không bao giờ được lập trình trước, 698 00:32:48,260 --> 00:32:49,770 những gì có thể khác nhau thời gian này? 699 00:32:49,770 --> 00:32:50,020 Yeah. 700 00:32:50,020 --> 00:32:51,840 >> TƯỢNG: Nó sẽ không dừng lại in "hello thế giới." 701 00:32:51,840 --> 00:32:52,660 >> DAVID J. Malan: Nó sẽ xin lỗi đối với:? 702 00:32:52,660 --> 00:32:54,210 >> TƯỢNG: Nó sẽ không dừng lại in nó? 703 00:32:54,210 --> 00:32:55,810 >> DAVID J. Malan: Nó sẽ không ngừng in "hello thế giới." 704 00:32:55,810 --> 00:32:56,560 Vì vậy, không phải là một ý tưởng tồi. 705 00:32:56,560 --> 00:32:58,633 Ý kiến ​​khác? 706 00:32:58,633 --> 00:32:59,132 Yeah. 707 00:32:59,132 --> 00:33:00,060 >> TƯỢNG: Thông báo lỗi? 708 00:33:00,060 --> 00:33:01,750 >> DAVID J. Malan: Lỗi tin nhắn, OK, có thể được. 709 00:33:01,750 --> 00:33:02,250 Còn gì nữa? 710 00:33:02,250 --> 00:33:05,479 TƯỢNG: Nó có thể in khung với các dấu chấm phẩy là tốt? 711 00:33:05,479 --> 00:33:08,270 DAVID J. Malan: Có thể in khung với các dấu chấm phẩy là tốt. 712 00:33:08,270 --> 00:33:11,950 Vì vậy, có lẽ dấu gạch chéo ngược mà sau đó là một số loại terminous đó là quan trọng. 713 00:33:11,950 --> 00:33:14,860 Bất kỳ suy nghĩ khác? 714 00:33:14,860 --> 00:33:16,412 >> Vì vậy, tất cả những ý tưởng tốt. 715 00:33:16,412 --> 00:33:18,370 Và trên thực tế, nó sẽ được một thông báo lỗi. 716 00:33:18,370 --> 00:33:20,400 Đó có thể là có khả năng nhất là câu trả lời nói chung 717 00:33:20,400 --> 00:33:22,420 trong vài tuần tới khi chúng tôi tìm hiểu mã ở đây. 718 00:33:22,420 --> 00:33:27,680 >> Nhưng bây giờ nhớ rằng máy tính chỉ làm những gì bạn nói cho họ biết phải làm gì. 719 00:33:27,680 --> 00:33:30,400 Giống như đậu phộng vô lý ví dụ bơ và mứt. 720 00:33:30,400 --> 00:33:33,860 Máy tính con người của chúng tôi đã được chỉ phải làm những gì bạn nói với họ làm. 721 00:33:33,860 --> 00:33:36,250 Vì vậy, trong trường hợp này, nếu bạn không cho máy tính 722 00:33:36,250 --> 00:33:41,190 để di chuyển mà con trỏ nhấp nháy đến dòng tiếp theo, nó sẽ không làm điều đó. 723 00:33:41,190 --> 00:33:45,390 Vì vậy, khi tôi chạy chương trình này bây giờ, nhận thấy sự khác biệt. 724 00:33:45,390 --> 00:33:46,900 >> Trông giống như một lỗi. 725 00:33:46,900 --> 00:33:49,190 Đây là một lỗi thẩm mỹ, có lẽ. 726 00:33:49,190 --> 00:33:53,310 Nhưng những gì là khác nhau về vấn đề này sản lượng so với tác phẩm mới nhất rõ ràng? 727 00:33:53,310 --> 00:33:53,810 Yeah. 728 00:33:53,810 --> 00:33:54,920 >> TƯỢNG: Nó đã không làm một dòng mới. 729 00:33:54,920 --> 00:33:56,586 >> DAVID J. Malan: Nó đã không làm một dòng mới. 730 00:33:56,586 --> 00:33:58,740 Bây giờ những người bạn của những người có các trang web có thể được thực hiện 731 00:33:58,740 --> 00:34:01,910 trước đây, bạn có thể biết của BR thẻ hoặc các thẻ đoạn, 732 00:34:01,910 --> 00:34:03,120 Rất tinh thần tương tự. 733 00:34:03,120 --> 00:34:06,680 Một trình duyệt web sẽ bỏ qua cho đến khi bạn bạn nói nó chính xác phải làm gì. 734 00:34:06,680 --> 00:34:10,020 Tương tự như vậy, là một ngôn ngữ như C chỉ sẽ làm những gì bạn nói với nó để làm. 735 00:34:10,020 --> 00:34:12,730 >> Vì vậy, lý do mà tất cả các ví dụ, 736 00:34:12,730 --> 00:34:15,350 vậy, đến nay, có loại tình cờ có dấu gạch chéo ngược này 737 00:34:15,350 --> 00:34:18,560 trong đó, đó là phương tiện mà bạn thể hiện bản thân 738 00:34:18,560 --> 00:34:21,380 như là một ký tự dòng mới, vậy để nói chuyện. 739 00:34:21,380 --> 00:34:26,219 Và bạn có thể loại đánh giá cao, có lẽ, rằng điều này sẽ xem xét ngu ngốc 740 00:34:26,219 --> 00:34:27,070 nếu không có gì khác. 741 00:34:27,070 --> 00:34:29,150 Nếu tôi muốn một dòng mới, chỉ nhấn Enter và sau đó loại 742 00:34:29,150 --> 00:34:32,219 giết mổ của các mã như thế nên không thực sự chà bạn đúng cách. 743 00:34:32,219 --> 00:34:33,830 Và thậm chí nếu bạn không thực sự quan tâm vào thời điểm này, 744 00:34:33,830 --> 00:34:35,830 bạn sẽ nhận ra rằng đây không phải là đặc biệt 745 00:34:35,830 --> 00:34:37,870 phần tìm kiếm tốt mã. 746 00:34:37,870 --> 00:34:39,969 >> Và vì vậy những gì thế giới năm quyết định trước đây là 747 00:34:39,969 --> 00:34:43,420 rằng khi bạn muốn đặt con trỏ vào một dòng mới một cách rõ ràng, 748 00:34:43,420 --> 00:34:46,332 bạn phải nói một cách rõ ràng dòng mới, dấu gạch chéo ngược n. 749 00:34:46,332 --> 00:34:48,040 Và có một số khác biểu tượng như thế. 750 00:34:48,040 --> 00:34:50,719 Nhưng bây giờ chúng tôi sẽ chỉ tập trung vào các dấu gạch chéo ngược n. 751 00:34:50,719 --> 00:34:53,790 >> Bây giờ chúng ta hãy làm cho chương trình một chút thú vị hơn. 752 00:34:53,790 --> 00:34:59,200 Tôi sẽ đi trước và thời gian này mở ra một tập tin mới. 753 00:34:59,200 --> 00:35:02,520 Tôi sẽ tiết kiệm này là hello-1.c. 754 00:35:02,520 --> 00:35:05,540 Và chỉ cần cho đá, tôi sẽ đi đặt nó vào thư mục Dropbox của tôi. 755 00:35:05,540 --> 00:35:09,030 >> Như bạn sẽ thấy trong CS50 tài liệu cho các thiết bị, 756 00:35:09,030 --> 00:35:11,210 cuối tuần này cho Vấn đề Set 1, chúng tôi sẽ khuyến khích 757 00:35:11,210 --> 00:35:13,230 bạn sử dụng Dropbox hoặc một số dịch vụ tương đương, 758 00:35:13,230 --> 00:35:15,430 bởi vì sau đó tất cả các mã của bạn sẽ được sao lưu tự động. 759 00:35:15,430 --> 00:35:17,830 Và đó là lý do tại sao tôi đã đi vào thư mục này ở đây. 760 00:35:17,830 --> 00:35:20,230 >> Và bây giờ tôi sẽ viết chương trình hơi khác nhau. 761 00:35:20,230 --> 00:35:24,740 Bao gồm, tiêu chuẩn I / O.h, int void main. 762 00:35:24,740 --> 00:35:29,660 Và sau đó ở đây printf, hello thế giới, đó là chính xác giống như trước đây. 763 00:35:29,660 --> 00:35:32,450 >> Nhưng bây giờ tôi muốn in một cái gì đó đó là một chút khác nhau. 764 00:35:32,450 --> 00:35:34,800 Tôi muốn in ra, nói: "Xin chào, David." 765 00:35:34,800 --> 00:35:37,590 Được rồi, như vậy rõ ràng, nó phải hy vọng 766 00:35:37,590 --> 00:35:40,360 là trường hợp đó nếu tôi biên dịch lại chương trình này, chạy nó, 767 00:35:40,360 --> 00:35:41,840 nó sẽ nói "xin chào, David." 768 00:35:41,840 --> 00:35:45,160 >> Nhưng nếu tôi muốn giới thiệu loại này biến, 769 00:35:45,160 --> 00:35:49,240 khái niệm về một container đó sẽ để lưu trữ D-một-v-i-d và mã nó không khó 770 00:35:49,240 --> 00:35:50,600 vào chương trình của tôi. 771 00:35:50,600 --> 00:35:53,430 Vâng những gì nếu tôi bắt đầu làm một cái gì đó như thế này? 772 00:35:53,430 --> 00:35:57,120 >> String, vì vậy đây là một biến. 773 00:35:57,120 --> 00:36:00,250 Nếu bạn muốn có một chuỗi, còn gọi là một từ hoặc một cụm từ. 774 00:36:00,250 --> 00:36:03,485 Một chuỗi các ký tự là những gì chúng tôi trong chương trình gọi là một chuỗi. 775 00:36:03,485 --> 00:36:06,610 Chúng tôi chỉ cần đi để quát gọi nó s, bởi vì nó là một cái tên đơn giản, tốt đẹp. 776 00:36:06,610 --> 00:36:08,010 Nhưng tôi có thể gọi nó là bất cứ điều gì. 777 00:36:08,010 --> 00:36:12,920 >> Tôi sẽ nói string s bình đẳng quote unquote, "David", dấu chấm phẩy. 778 00:36:12,920 --> 00:36:18,330 Và bây giờ tôi muốn chèn D-một-v-i-d vào những gì tôi đang in. 779 00:36:18,330 --> 00:36:23,720 Và trước khi chúng tôi nhìn thấy một lời trêu ghẹo trên màn hình của một số cú pháp đặc biệt 780 00:36:23,720 --> 00:36:26,050 cho phép chúng tôi thay thế trong một giá trị. 781 00:36:26,050 --> 00:36:29,250 Điều gì là đặc biệt biểu tượng một vài slide trước? 782 00:36:29,250 --> 00:36:30,040 >> Vì vậy, phần trăm. 783 00:36:30,040 --> 00:36:33,830 Vào thời điểm đó là phần trăm d cho số thập phân. 784 00:36:33,830 --> 00:36:35,850 Điều đó không thực sự có vẻ liên quan ở đây. 785 00:36:35,850 --> 00:36:38,650 Hóa ra có của một biểu tượng phần trăm, 786 00:36:38,650 --> 00:36:42,810 đó là phần trăm, mà đứng cho một giữ chỗ cho một chuỗi. 787 00:36:42,810 --> 00:36:49,350 >> Vì vậy, bây giờ, rất đơn giản, tôi là sẽ đi làm hello-1, 788 00:36:49,350 --> 00:36:54,210 bởi vì tập tin này được gọi là hello-1.c, và nhấn Enter. 789 00:36:54,210 --> 00:36:56,230 Và tôi hơi say lên. 790 00:36:56,230 --> 00:36:57,394 Có chuyện gì vậy? 791 00:36:57,394 --> 00:37:00,560 Vâng, đây là nơi chúng ta phải bắt đầu đánh giá cao rằng chúng ta đang ở trong lệnh này 792 00:37:00,560 --> 00:37:02,810 môi trường dòng, điều này văn bản chỉ môi trường. 793 00:37:02,810 --> 00:37:06,114 Không có cách kích chuột vào biểu tượng như các thư mục ngay bây giờ. 794 00:37:06,114 --> 00:37:07,280 Và nghĩ lại một chút thời gian trước đây. 795 00:37:07,280 --> 00:37:10,740 Trong những thư mục đã làm tôi nói Tôi đã tiết kiệm mã của tôi? 796 00:37:10,740 --> 00:37:11,657 Vì vậy, các thư mục Dropbox. 797 00:37:11,657 --> 00:37:12,989 Có thể được gọi là bất cứ điều gì. 798 00:37:12,989 --> 00:37:14,530 Nhưng nó sẽ xảy ra được gọi là Dropbox. 799 00:37:14,530 --> 00:37:18,380 Vì vậy, tôi bằng cách nào đó cần nhấp đúp chuột vào thư mục Dropbox để có được 800 00:37:18,380 --> 00:37:21,657 vào nó và nhận được ở tôi mã được gọi là hello-1.c. 801 00:37:21,657 --> 00:37:24,490 Trong thực tế, hãy để tôi đi trước và giảm thiểu cửa sổ này cho một thời điểm. 802 00:37:24,490 --> 00:37:27,560 Cũng giống như Windows và Mac OS, có các thư mục trong Linux. 803 00:37:27,560 --> 00:37:29,410 Có các thư mục trong CS50 gia dụng. 804 00:37:29,410 --> 00:37:32,380 Nó chỉ là ngay bây giờ chúng ta đang nhốt mình với môi trường văn bản này. 805 00:37:32,380 --> 00:37:34,700 >> Nhưng nếu tôi tăng gấp đôi nhấp chuột trên Dropbox, nhận thấy có 806 00:37:34,700 --> 00:37:37,210 là các tập tin mà tôi muốn biên dịch. 807 00:37:37,210 --> 00:37:41,430 Nhưng tôi cần điều này màu đen và trắng cửa sổ thiết bị đầu cuối, vậy để nói chuyện. 808 00:37:41,430 --> 00:37:45,750 Nhưng tôi cần, do đó, để di chuyển vào các thư mục và thư mục. 809 00:37:45,750 --> 00:37:48,290 Vì vậy, một chút phức tạp, nhưng bạn sẽ nhận được sử dụng làm điều này. 810 00:37:48,290 --> 00:37:50,430 >> Trong thế giới của Linux, mà lại là các hoạt động 811 00:37:50,430 --> 00:37:54,860 Hệ thống chúng tôi đang chạy bên trong CS50 Thiết bị, có một lệnh gọi là đĩa CD. 812 00:37:54,860 --> 00:37:58,310 Có nghĩa là tôi có thể làm đĩa CD, không gian, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, thay đổi thư mục. 814 00:37:59,900 --> 00:38:00,400 Đúng. 815 00:38:00,400 --> 00:38:02,890 Quay trở lại những ngày khi mọi người phát minh ra máy tính và hoạt động 816 00:38:02,890 --> 00:38:05,806 hệ thống như thế này, họ muốn gõ các tổ hợp phím ít nhất có thể. 817 00:38:05,806 --> 00:38:08,760 Vì vậy, cách đơn giản nhất để nói thay đổi thư mục là đĩa CD. 818 00:38:08,760 --> 00:38:13,910 >> Vì vậy, nếu tôi nhấn CD, không gian Dropbox, thông báo những gì đã thay đổi ở đây. 819 00:38:13,910 --> 00:38:16,480 Bên trong dấu ngoặc đơn thiết bị này là loại 820 00:38:16,480 --> 00:38:19,360 humoring của tôi và nhắc nhở tôi đang ở đâu. 821 00:38:19,360 --> 00:38:21,480 Vì vậy, các thư mục mở là Dropbox. 822 00:38:21,480 --> 00:38:24,950 Nếu bây giờ tôi gõ ls danh sách, một lần nữa cô đọng, 823 00:38:24,950 --> 00:38:27,540 bởi vì mọi người không muốn nhập trở lại trong ngày l-i-s-t. 824 00:38:27,540 --> 00:38:29,300 Vì vậy, thay vào đó họ đã làm cho nó ls. 825 00:38:29,300 --> 00:38:30,110 >> Enter. 826 00:38:30,110 --> 00:38:35,740 Thông báo tôi thấy hai điều, hello-1.c, và sau đó điều khó hiểu này, nguồn 1m. 827 00:38:35,740 --> 00:38:38,310 Đó chỉ là cách của tôi nói mã nguồn cho tuần 1 thứ Hai. 828 00:38:38,310 --> 00:38:42,020 Đó là một thư mục tải về từ CS50 trang web của tôi được thực hiện trước ngày hôm nay 829 00:38:42,020 --> 00:38:43,990 và chỉ cần đặt nó vào trong thiết bị trước. 830 00:38:43,990 --> 00:38:47,550 >> Nhưng bây giờ điều duy nhất chúng tôi quan tâm là làm cho chương trình này. 831 00:38:47,550 --> 00:38:50,440 Vì vậy, khi tôi gõ làm hello-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Chết tiệt. 833 00:38:51,320 --> 00:38:53,060 Một cái gì đó đã đi sai. 834 00:38:53,060 --> 00:38:54,580 Vì vậy, hãy trêu chọc này ngoài. 835 00:38:54,580 --> 00:38:58,489 Và không may này là nơi mà mọi thứ có được một chút căng thẳng lúc đầu, 836 00:38:58,489 --> 00:39:00,280 ít nhất là nếu bạn đã không bao giờ được lập trình trước. 837 00:39:00,280 --> 00:39:00,980 >> My god. 838 00:39:00,980 --> 00:39:04,990 Tôi đã viết một chương trình hai dòng và Tôi có bốn dòng lỗi. 839 00:39:04,990 --> 00:39:07,180 Vì vậy, những gì đang xảy ra ở đây. 840 00:39:07,180 --> 00:39:11,370 Đầu tiên và quan trọng nhất luôn luôn di chuyển trở lại lên và tìm thấy những thông báo lỗi đầu tiên, 841 00:39:11,370 --> 00:39:15,730 bởi vì đôi khi các trình biên dịch chỉ bị lẫn lộn bởi những gì bạn và tôi. 842 00:39:15,730 --> 00:39:17,000 Trình biên dịch là khá ngớ ngẩn. 843 00:39:17,000 --> 00:39:18,360 Họ sẽ chỉ làm những gì bạn nói với họ làm gì. 844 00:39:18,360 --> 00:39:21,484 Và nếu bạn nhầm lẫn giữa chúng, họ chỉ sẽ loại ném lên bàn tay của họ 845 00:39:21,484 --> 00:39:25,010 và có thể ném thông báo lỗi hơn hơn là thực sự có liên quan. 846 00:39:25,010 --> 00:39:26,380 >> Vì vậy, chúng ta hãy nhìn vào đầu tiên. 847 00:39:26,380 --> 00:39:27,540 Siêu khó hiểu lúc đầu tiên. 848 00:39:27,540 --> 00:39:31,050 Tuy nhiên, thông báo, đây là tên của tập tin trong đó tôi hơi say lên rõ ràng. 849 00:39:31,050 --> 00:39:36,570 Colon 5, đại tràng 5 chỉ có nghĩa là trên dòng 5 ở nhân vật thứ năm. 850 00:39:36,570 --> 00:39:39,760 Vì vậy, cột thứ năm của nhân vật, nếu bạn sẽ, lỗi. 851 00:39:39,760 --> 00:39:41,870 Sử dụng chuỗi định không khai báo. 852 00:39:41,870 --> 00:39:43,120 Ý của bạn là n tiêu chuẩn? 853 00:39:43,120 --> 00:39:44,850 >> Không, tôi có nghĩa là chuỗi. 854 00:39:44,850 --> 00:39:47,640 Và sau đó nó loại sao chép và dán 855 00:39:47,640 --> 00:39:50,700 những gì tôi đánh máy để thực sự thu hút của tôi chú ý đến nơi mà tôi hơi say lên. 856 00:39:50,700 --> 00:39:54,260 Vì vậy, đối với một số lý do C, hoặc ít nhất là trình biên dịch 857 00:39:54,260 --> 00:39:56,470 không hiểu chuỗi từ. 858 00:39:56,470 --> 00:39:57,890 Và đó là bởi vì chúng tôi đã làm cho nó lên. 859 00:39:57,890 --> 00:40:01,440 Vì vậy, chuỗi không tồn tại trong C. CS50 không, 860 00:40:01,440 --> 00:40:03,380 trong vài tuần đầu tiên duy nhất của lớp, 861 00:40:03,380 --> 00:40:05,700 được chúng tôi cung cấp một số đào tạo bánh xe, vậy để nói chuyện. 862 00:40:05,700 --> 00:40:11,160 Và chúng tôi đặt những bánh xe đào tạo bên trong một file đặc biệt gọi CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Vì vậy, đây là lần thứ hai trong hai tập tin tên mà dường như kết thúc trong dot h. 864 00:40:14,970 --> 00:40:16,300 Chúng ta hãy quay lại. 865 00:40:16,300 --> 00:40:19,360 Printf là một tuyên bố hoặc chức năng mà dường như in cái gì đó 866 00:40:19,360 --> 00:40:20,580 ra màn hình. 867 00:40:20,580 --> 00:40:23,470 Nhưng bạn không nhìn thấy tôi thực hiện printf, phải. 868 00:40:23,470 --> 00:40:26,360 Một người nào đó trước năm thực hiện printf. 869 00:40:26,360 --> 00:40:30,420 Trong những tập tin bạn sẽ đặt ông hoặc cô ấy để thực hiện 870 00:40:30,420 --> 00:40:34,270 cho printf, mã cho printf? 871 00:40:34,270 --> 00:40:36,860 >> Trong một tập tin gọi là tiêu chuẩn I / O.h. 872 00:40:36,860 --> 00:40:39,930 Trong thực tế, nó có thể là trong hai tập tin, tiêu chuẩn I / O.h, 873 00:40:39,930 --> 00:40:42,650 viết tắt của tiêu đề tập tin, và tiêu chuẩn I / O.c, 874 00:40:42,650 --> 00:40:44,060 viết tắt của mã nguồn C. 875 00:40:44,060 --> 00:40:48,220 Vì vậy, anh ta hoặc cô cách đây vài năm ngồi phịch mã mà họ viết vào tập tin đó 876 00:40:48,220 --> 00:40:51,240 để những người như chúng tôi năm sau đó có thể bao gồm nó, 877 00:40:51,240 --> 00:40:53,040 có thể nói, trong các chương trình của chúng ta. 878 00:40:53,040 --> 00:40:56,320 >> Và quả thực, đó là những gì các dấu thăng theo sau là từ bao gồm không. 879 00:40:56,320 --> 00:41:00,250 Có vẻ trên ổ đĩa cứng địa phương, tìm thấy các tập tin được gọi là tiêu chuẩn I / O.h, 880 00:41:00,250 --> 00:41:03,840 và sau đó có hiệu quả và bản sao dán nó bên trong các tập tin riêng của tôi. 881 00:41:03,840 --> 00:41:07,210 Vì vậy, bây giờ chương trình của tôi biết làm thế nào để in ra màn hình. 882 00:41:07,210 --> 00:41:11,120 >> Vì vậy, theo đó logic, nơi là chuỗi được xác định? 883 00:41:11,120 --> 00:41:12,260 >> TƯỢNG: CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> DAVID J. Malan: CS50.h. 885 00:41:13,290 --> 00:41:15,540 Và quả thực, đó là những gì chúng tôi, các cán bộ nòng cốt, đã làm. 886 00:41:15,540 --> 00:41:19,590 Chúng tôi đã phát minh ra một vài loại dữ liệu, có thể nói, giống như một chuỗi, 887 00:41:19,590 --> 00:41:22,370 ngoài những người bạn nhận được miễn phí, giống như một int. 888 00:41:22,370 --> 00:41:26,010 Và chúng ta sẽ thấy những người khác giống như một char cho một nhân vật và một vài chi tiết. 889 00:41:26,010 --> 00:41:30,670 Bên trong CS50.h rõ ràng là ít nhất một số đề cập đến chuỗi. 890 00:41:30,670 --> 00:41:34,980 >> Vì vậy, bây giờ hãy để tôi đi trước và chạy lại làm hello-1. 891 00:41:34,980 --> 00:41:37,100 Tôi sẽ phóng to một lần nữa và qua các ngón tay của tôi. 892 00:41:37,100 --> 00:41:41,370 Bây giờ đã được thực hiện bởi một Tôi cố định thay đổi hầu hết mọi thứ. 893 00:41:41,370 --> 00:41:42,100 Nhưng chết tiệt. 894 00:41:42,100 --> 00:41:44,290 Nhiều phần trăm so với đối số dữ liệu. 895 00:41:44,290 --> 00:41:45,980 Tôi đã làm gì sai đây? 896 00:41:45,980 --> 00:41:47,420 >> Vì vậy, nó vẫn còn khá khó hiểu. 897 00:41:47,420 --> 00:41:51,560 Tuy nhiên, lỗi này là dòng 7 và 21 nhân vật. 898 00:41:51,560 --> 00:41:53,880 Vì vậy, chúng ta hãy đi tìm ở đây. 899 00:41:53,880 --> 00:41:55,350 Đó là một chút tinh tế. 900 00:41:55,350 --> 00:41:59,167 Nhưng nếu bạn nghĩ về những gì những ý tưởng cơ bản ở đây là, 901 00:41:59,167 --> 00:42:00,500 có lẽ chúng ta có thể trêu chọc này ngoài. 902 00:42:00,500 --> 00:42:02,300 >> Vì vậy, printf là tên của hàm. 903 00:42:02,300 --> 00:42:04,960 Ngoặc đơn, cho đến nay, là giống như những gì chúng tôi đặt xung quanh 904 00:42:04,960 --> 00:42:07,005 những thứ chúng tôi đang đi qua là đầu vào cho một chức năng. 905 00:42:07,005 --> 00:42:08,921 Được rồi, chỉ là một Công ước nhân tùy ý. 906 00:42:08,921 --> 00:42:09,919 Sử dụng dấu ngoặc đơn. 907 00:42:09,919 --> 00:42:12,460 Bên trong những dấu ngoặc đơn chúng tôi đã đặt dấu ngoặc kép, 908 00:42:12,460 --> 00:42:14,810 và sau đó một chuỗi như "hello thế giới." 909 00:42:14,810 --> 00:42:18,160 >> Nhưng trong ví dụ trước đó rất một thời gian ngắn đã làm chúng ta nhìn vào với Scratch. 910 00:42:18,160 --> 00:42:22,590 Và chúng tôi đã có phần trăm d, những gì khác là bên trong những dấu ngoặc đơn 911 00:42:22,590 --> 00:42:23,730 mà tôi gọi bằng lời nói? 912 00:42:23,730 --> 00:42:24,230 Yeah. 913 00:42:24,230 --> 00:42:28,166 >> TƯỢNG: Vì vậy, đó là những gì bạn đang dùng [Không nghe được] từ bên trong [không nghe được] 914 00:42:28,166 --> 00:42:30,200 những gì các [không nghe được]? 915 00:42:30,200 --> 00:42:31,200 DAVID J. Malan: Chính xác. 916 00:42:31,200 --> 00:42:32,700 Vì vậy, chúng tôi đã có phần trăm d. 917 00:42:32,700 --> 00:42:36,620 Nhưng sau đó chúng tôi đã có gần báo giá, dấu phẩy, truy cập. 918 00:42:36,620 --> 00:42:37,120 Đúng. 919 00:42:37,120 --> 00:42:40,680 Chúng tôi xác định những gì chúng ta muốn làm như giữ chỗ. 920 00:42:40,680 --> 00:42:44,621 Vì vậy, những gì tôi sẽ làm ở đây là dấu phẩy, những gì bạn muốn tôi để đặt? 921 00:42:44,621 --> 00:42:45,120 TƯỢNG: S. 922 00:42:45,120 --> 00:42:46,828 DAVID J. Malan: S, vì s trong trường hợp này 923 00:42:46,828 --> 00:42:48,700 là tên của kho nổi chứa. 924 00:42:48,700 --> 00:42:50,180 Đó là tên của bát thủy tinh. 925 00:42:50,180 --> 00:42:53,610 Trong khi đó, trước khi nó được truy cập trong đó Ví dụ đơn giản Scratch chúng tôi xem xét. 926 00:42:53,610 --> 00:42:56,630 Vì vậy, bây giờ đã thực hiện hai thay đổi, hãy để tôi phóng to 927 00:42:56,630 --> 00:42:59,800 và cố gắng một lần nữa để biên dịch chương trình này. 928 00:42:59,800 --> 00:43:01,596 >> Bây giờ tôi thấy rằng dòng khó hiểu. 929 00:43:01,596 --> 00:43:03,470 Nhưng đó thực sự là tên của trình biên dịch. 930 00:43:03,470 --> 00:43:04,886 Kêu vang là tên của trình biên dịch. 931 00:43:04,886 --> 00:43:07,100 Hãy chỉ là tiết kiệm cho tôi đau đầu của từng 932 00:43:07,100 --> 00:43:09,830 cách gõ lệnh dài điên ra. 933 00:43:09,830 --> 00:43:14,900 Vì vậy, bây giờ nếu tôi chấm giảm hello-1, Tôi sẽ thấy "hello, David." 934 00:43:14,900 --> 00:43:16,450 >> Khá tượng, mặc dù, phải không? 935 00:43:16,450 --> 00:43:18,158 Chúng tôi đã có thể làm này đơn giản hơn rất nhiều 936 00:43:18,158 --> 00:43:20,940 mà không nói về các biến và CS50.h và tất cả điều đó. 937 00:43:20,940 --> 00:43:23,080 Vì vậy, hãy làm cho nó một ít thú vị hơn. 938 00:43:23,080 --> 00:43:31,010 >> Ngoài CS50.h, có những thứ như chuỗi 939 00:43:31,010 --> 00:43:34,550 tuyên bố, thư viện CS50 cũng có một vài chức năng. 940 00:43:34,550 --> 00:43:38,520 Vì vậy, cũng giống như năm trước, ai đó đã viết printf và đặt nó trong tiêu chuẩn I / O.h 941 00:43:38,520 --> 00:43:39,530 và một số tập tin khác. 942 00:43:39,530 --> 00:43:44,010 >> Chúng tôi, các nhân viên CS50, đã viết một chức năng gọi là getchar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, và chúng tôi đưa những người bên trong một file 944 00:43:47,610 --> 00:43:49,890 gọi là CS50.h và CS50.c. 945 00:43:49,890 --> 00:43:51,880 Và chúng tôi đặt chúng bên trong của CS50 gia dụng. 946 00:43:51,880 --> 00:43:53,880 Và mọi người cũng có thể tải chúng trực tuyến nếu họ 947 00:43:53,880 --> 00:43:55,880 muốn đặt chúng vào họ máy tính riêng là tốt. 948 00:43:55,880 --> 00:44:00,880 Đó là để nói rằng chúng tôi đã tạo ra chức năng mà có được đầu vào từ người sử dụng. 949 00:44:00,880 --> 00:44:02,930 Tôi không biết những gì tất cả của các kiểu dữ liệu đang có. 950 00:44:02,930 --> 00:44:06,490 GetInt là loại đơn giản, giống như có một số nguyên bằng cách nào đó từ người sử dụng. 951 00:44:06,490 --> 00:44:09,980 Và GetString có lẽ là như get một từ hoặc một câu từ người sử dụng. 952 00:44:09,980 --> 00:44:11,770 >> Vì vậy, hãy tập trung vào đó. 953 00:44:11,770 --> 00:44:14,710 Và tôi sẽ quay trở lại vào thiết bị và tôi sẽ đi trước 954 00:44:14,710 --> 00:44:20,790 và lưu tập tin này là, chúng ta hãy gọi nó hello-2.c như là phiên bản thứ hai của tôi. 955 00:44:20,790 --> 00:44:23,030 Và chúng ta hãy thực hiện một vài thay đổi. 956 00:44:23,030 --> 00:44:25,800 >> Lần này thay vì David cứng mã hóa, mà 957 00:44:25,800 --> 00:44:29,120 làm cho một vô cùng phù hợp nhưng chương trình tượng, 958 00:44:29,120 --> 00:44:32,640 nếu tôi thay vì làm GetString? 959 00:44:32,640 --> 00:44:35,660 Bây giờ thấy GetString có dấu ngoặc mở, 960 00:44:35,660 --> 00:44:38,500 ngoặc đóng, bởi vì nó không cần bất kỳ đầu vào. 961 00:44:38,500 --> 00:44:40,850 Nó chỉ đi được một chuỗi từ người sử dụng. 962 00:44:40,850 --> 00:44:42,460 >> Và bây giờ là một từ về cú pháp khác. 963 00:44:42,460 --> 00:44:45,439 Dấu chấm phẩy chỉ kết thúc một dòng mã. 964 00:44:45,439 --> 00:44:46,730 Bạn không cần phải cho họ ở khắp mọi nơi. 965 00:44:46,730 --> 00:44:48,896 Nhưng điều đó chỉ có nghĩa là tôi thực hiện với dòng mã này. 966 00:44:48,896 --> 00:44:51,080 Hãy để tôi chuyển sang một tuyên bố hoặc chức năng. 967 00:44:51,080 --> 00:44:53,010 Chuỗi khai báo một biến. 968 00:44:53,010 --> 00:44:55,920 Chuỗi là giống như nói cho tôi một bát, xin vui lòng. 969 00:44:55,920 --> 00:44:57,940 Và hãy để tôi đặt một chuỗi trong đó. 970 00:44:57,940 --> 00:44:59,430 >> Và bây giờ dấu bằng. 971 00:44:59,430 --> 00:45:03,510 Dấu bằng là gì về cơ bản tương đương? 972 00:45:03,510 --> 00:45:04,500 >> TƯỢNG: Chỉ định. 973 00:45:04,500 --> 00:45:06,190 >> DAVID J. Malan: Vâng, gán một giá trị. 974 00:45:06,190 --> 00:45:09,872 Vì vậy, nếu tôi, ví dụ, cuộc gọi chức năng này GetString, 975 00:45:09,872 --> 00:45:12,830 và chúng ta sẽ thấy trong một thời điểm đó là sẽ nhắc nhở người dùng cho một chuỗi. 976 00:45:12,830 --> 00:45:17,810 Điều này giống như cho phép sau đó tôi viết D-một-v-i-d trên một mảnh giấy. 977 00:45:17,810 --> 00:45:21,060 Và khi tôi nói chuỗi s bằng GetString, 978 00:45:21,060 --> 00:45:24,140 bằng không thực sự có ý nghĩa bình đẳng trong lập trình C. 979 00:45:24,140 --> 00:45:27,880 Nó có nghĩa là phân công từ cánh phải phía bên tay phải phía bên tay trái. 980 00:45:27,880 --> 00:45:29,510 >> Vì vậy, tôi đã nhận được một chuỗi. 981 00:45:29,510 --> 00:45:32,785 Và dấu bằng có nghĩa là đặt nó trong lưu container gọi là s. 982 00:45:32,785 --> 00:45:36,730 Và sau đó vượt qua được điều này để printf để thực sự làm điều này. 983 00:45:36,730 --> 00:45:39,790 >> Vì vậy, kết quả cuối cùng sau đó sẽ để tìm một chút khác nhau. 984 00:45:39,790 --> 00:45:40,840 Chúng ta hãy làm cho hello-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Hoặc có thể làm việc. 987 00:45:45,260 --> 00:45:46,450 Bạn sau cùng. 988 00:45:46,450 --> 00:45:47,940 Hãy hello-2 làm việc. 989 00:45:47,940 --> 00:45:52,640 Dot giảm hello-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Tôi dường như có vô hạn vòng lặp hoặc một cái gì đó. 991 00:45:54,620 --> 00:45:55,453 Không có gì đang xảy ra. 992 00:45:55,453 --> 00:45:56,134 Tại sao? 993 00:45:56,134 --> 00:45:57,805 >> TƯỢNG: Nó làm cho một vòng lặp vô hạn. 994 00:45:57,805 --> 00:45:59,430 DAVID J. Malan: Đây là một vòng lặp vô hạn. 995 00:45:59,430 --> 00:46:02,710 Đó là loại chờ tôi thực sự cung cấp nó với một số đầu vào. 996 00:46:02,710 --> 00:46:05,800 Vì vậy, hãy để tôi đi trước và gõ David, và nhấn Enter. 997 00:46:05,800 --> 00:46:07,230 Và bây giờ nó nói "xin chào, David." 998 00:46:07,230 --> 00:46:09,040 Nếu tôi chạy nó một lần nữa. 999 00:46:09,040 --> 00:46:11,530 Hãy gõ Rob, "hello, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> Bây giờ điều này là tồi tệ nhất giao diện người dùng bao giờ hết. 1001 00:46:13,900 --> 00:46:16,110 Người sử dụng là rõ ràng phải biết phải làm gì. 1002 00:46:16,110 --> 00:46:17,120 Nhưng không có vấn đề. 1003 00:46:17,120 --> 00:46:19,570 Sử dụng những cùng xây dựng khối giống như trong Scratch, 1004 00:46:19,570 --> 00:46:24,980 chúng ta có thể giải quyết vấn đề và nói một cái gì đó giống như tên của bạn xin vui lòng, ruột kết, 1005 00:46:24,980 --> 00:46:27,820 không gian, đóng cửa giá, gần ngoặc đơn, dấu chấm phẩy. 1006 00:46:27,820 --> 00:46:30,680 Vì vậy, rất nhiều lần nữa dại với cú pháp. 1007 00:46:30,680 --> 00:46:34,040 >> Tuy nhiên, thông báo tôi đã chỉ cần thêm một mảnh ghép trên này 1008 00:46:34,040 --> 00:46:35,280 và ở trên này. 1009 00:46:35,280 --> 00:46:38,870 Vì vậy, bây giờ nếu tôi chạy lại này, xin chào-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Chờ một phút. 1011 00:46:41,180 --> 00:46:41,830 Có chuyện gì vậy? 1012 00:46:41,830 --> 00:46:43,570 Nó không có hành vi nào khác. 1013 00:46:43,570 --> 00:46:44,200 Yeah. 1014 00:46:44,200 --> 00:46:46,010 >> TƯỢNG: Bạn đã không làm cho chạy một lần nữa. 1015 00:46:46,010 --> 00:46:47,968 >> DAVID J. Malan: Tôi không chạy làm lại, phải. 1016 00:46:47,968 --> 00:46:49,430 Vì vậy, tôi đã thay đổi mã nguồn của tôi. 1017 00:46:49,430 --> 00:46:50,638 Nhưng một lần nữa, có dòng chảy đó. 1018 00:46:50,638 --> 00:46:54,530 Mã nguồn thông qua các trình biên dịch cho bạn mã đối tượng mới, hoặc 0 và số 1. 1019 00:46:54,530 --> 00:47:00,209 Vì vậy, tôi cần phải thực sự chạy lại làm hello-2 Nhập. 1020 00:47:00,209 --> 00:47:01,750 OK, một cái gì đó dường như đã xảy ra. 1021 00:47:01,750 --> 00:47:04,220 Dot giảm hello-2. 1022 00:47:04,220 --> 00:47:05,390 Tên của bạn xin vui lòng. 1023 00:47:05,390 --> 00:47:09,990 Để cho rõ ràng bây giờ, tại sao con trỏ trên cùng một dòng? 1024 00:47:09,990 --> 00:47:10,490 Chính xác. 1025 00:47:10,490 --> 00:47:13,020 Tôi không đặt dấu gạch chéo ngược n ở đây trong mã của tôi. 1026 00:47:13,020 --> 00:47:16,110 Vì vậy, bây giờ tôi có thể viết một cái gì đó giống như Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Tôi có thể chạy nó một lần nữa và gõ một cái gì đó giống như Gabe, Enter, 1028 00:47:18,710 --> 00:47:22,250 và chúng tôi có được một chương trình khác một lần nữa và một lần nữa và một lần nữa. 1029 00:47:22,250 --> 00:47:28,940 >> Bây giờ cuối cùng chúng ta sẽ cần sử dụng một số khả năng khác nhau. 1030 00:47:28,940 --> 00:47:32,860 Chúng tôi cần phải giới thiệu một số cuối cùng điều kiện để làm những việc có điều kiện. 1031 00:47:32,860 --> 00:47:35,550 Có lẽ vòng vì vậy chúng tôi có thể làm điều một lần nữa và một lần nữa. 1032 00:47:35,550 --> 00:47:38,220 >> Có lẽ nó sẽ được tốt đẹp nếu chúng ta có thể thực hiện chức năng của chúng ta, 1033 00:47:38,220 --> 00:47:41,355 như chúng ta có thể thực hiện của chúng ta printf hoặc phiên bản riêng của chúng tôi GetString 1034 00:47:41,355 --> 00:47:45,870 và GetFlow, bởi vì cuối cùng thậm chí sử dụng này môi trường dòng lệnh 1035 00:47:45,870 --> 00:47:49,780 chúng ta có thể làm nhiều nhất thị giác thú vị của sự vật. 1036 00:47:49,780 --> 00:47:51,950 >> Thật vậy, trong kết luận hãy để tôi làm điều này. 1037 00:47:51,950 --> 00:47:54,020 Tôi sẽ đi trước và đóng các cửa sổ 1038 00:47:54,020 --> 00:47:57,400 và mở biểu tượng này ở đây, mà chỉ là một lớn hơn 1039 00:47:57,400 --> 00:48:00,020 phiên bản mà nhúng cửa sổ terminal. 1040 00:48:00,020 --> 00:48:02,329 Vì vậy, không chỉ có Gedit nơi dành cho mã của tôi, 1041 00:48:02,329 --> 00:48:05,620 mà còn được xây dựng trong cửa sổ thiết bị đầu cuối, các cửa sổ màu đen và trắng, nơi tôi có thể chạy 1042 00:48:05,620 --> 00:48:06,230 lệnh. 1043 00:48:06,230 --> 00:48:08,600 >> Tôi chỉ tình cờ mở một phiên bản lớn hơn về điều này. 1044 00:48:08,600 --> 00:48:11,170 Và bây giờ tôi sẽ đi vào thư mục mà tôi đã đã 1045 00:48:11,170 --> 00:48:13,150 đặt trước trên trang web của khóa học. 1046 00:48:13,150 --> 00:48:16,720 Và tôi sẽ đi trước và mở một tập tin gọi là thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 được viết bởi một người khác. 1048 00:48:18,710 --> 00:48:21,220 >> Và nếu chúng ta nhìn vào điều này, đây không phải là các loại mã 1049 00:48:21,220 --> 00:48:24,370 chúng tôi sẽ có văn bản từ mục tiêu của mã này 1050 00:48:24,370 --> 00:48:28,450 là viết đẹp nhất tìm mã mà mình có thể, 1051 00:48:28,450 --> 00:48:31,290 không phân biệt có hay không một người khác có thể bao giờ 1052 00:48:31,290 --> 00:48:33,660 hiểu mã này. 1053 00:48:33,660 --> 00:48:37,050 >> Thật vậy, mỗi năm có những gì được gọi là một cuộc thi C làm rắc rối, mà 1054 00:48:37,050 --> 00:48:39,570 là dành cho chuyên viên máy tính thực tế, những người viết mã mà không ai có thể đọc, 1055 00:48:39,570 --> 00:48:42,050 nhưng điều đó làm điều gì đó, hoặc thực sự đơn giản, thực sự tuyệt vời. 1056 00:48:42,050 --> 00:48:43,890 Và chúng tôi nghĩ rằng chúng tôi muốn kết thúc với cái nhìn này 1057 00:48:43,890 --> 00:48:48,300 vào vật gì đó khá tuyệt vời bạn có thể đã nhìn thấy một lần trước. 1058 00:48:48,300 --> 00:48:52,650 Nhưng chúng tôi sẽ kết thúc vào ngày này Đáng chú ý, dấu chấm dấu gạch chéo, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 Điều này sau đó là những gì đang chờ đợi. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Đó là nó cho CS50. 1062 00:48:58,500 --> 00:48:59,935 Chúng ta sẽ thấy bạn vào ngày thứ Tư. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [MUSIC CHƠI] 1065 00:49:10,016 --> 00:53:31,883