1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [VIDEO PLAYBACK] 3 00:00:16,626 --> 00:00:19,410 >> -A Chiến thắng của toán học và kỹ năng cơ khí 4 00:00:19,410 --> 00:00:23,270 là tuyệt vời tự động mới này máy tính tại Đại học Harvard. 5 00:00:23,270 --> 00:00:27,140 Vấn đề phức tạp trong toán học đưa qua máy ở dạng mã hoá 6 00:00:27,140 --> 00:00:31,710 trên băng được giải quyết chính xác trong một phút phần của thời gian cần thiết 7 00:00:31,710 --> 00:00:32,819 tính con người. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Được thiết kế để tiến hành mọi hình thức nghiên cứu toán học và khoa học, 10 00:00:48,220 --> 00:00:53,840 não cơ khí khổng lồ sẽ làm việc cho Hải quân Hoa Kỳ cho đến khi chiến tranh kết thúc. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [END PLAYBACK] 13 00:01:06,570 --> 00:01:08,590 >> DAVID J. Malan: Đây, là CS50. 14 00:01:08,590 --> 00:01:10,590 Quá khứ là một huyền diệu nơi, nhưng nếu bạn đã bao giờ 15 00:01:10,590 --> 00:01:13,366 tự hỏi những gì thiết bị đó là tại Trung tâm Khoa học Harvard, 16 00:01:13,366 --> 00:01:16,150 nó thực sự là một phần của Harvard Mark I, và nó 17 00:01:16,150 --> 00:01:18,710 trên màn hình hiện nay từ nhiều năm qua. 18 00:01:18,710 --> 00:01:20,590 Và những gì bạn sẽ thấy nhúng trong vấn đề tập hợp 19 00:01:20,590 --> 00:01:24,416 một là một cái nhìn đằng sau hậu trường vào những gì thiết bị đã làm, và không có gì, 20 00:01:24,416 --> 00:01:27,540 từ Giáo sư Harry Lewis, người đang ở trong Sở khoa học máy tính ở đây. 21 00:01:27,540 --> 00:01:29,440 Vì vậy, thêm vào đó trong chỉ một chút. 22 00:01:29,440 --> 00:01:33,990 >> Nhưng hôm nay chúng ta bắt đầu quá trình chuyển đổi từ tuần trước đến nay, 23 00:01:33,990 --> 00:01:37,290 và chúng tôi sẽ mang lại đề cập đến của một bức ảnh ở đây 24 00:01:37,290 --> 00:01:38,630 đó là thực tế khá nổi tiếng. 25 00:01:38,630 --> 00:01:42,270 Có ai biết cái này ở đây là trên màn hình? 26 00:01:42,270 --> 00:01:43,880 Ít nhất là theo huyền thoại. 27 00:01:43,880 --> 00:01:44,837 Yeah. 28 00:01:44,837 --> 00:01:45,920 Đung Các virus đầu tiên. 29 00:01:45,920 --> 00:01:49,570 DAVID J. Malan: Vì vậy, nó được cho là các lỗi thực tế đầu tiên trong một máy tính. 30 00:01:49,570 --> 00:01:52,490 Bây giờ trong thực tế các lỗi từ, cho một sai lầm trong một chương trình, 31 00:01:52,490 --> 00:01:55,250 đã được với chúng tôi cho một số thời gian trong thế giới vật chất, 32 00:01:55,250 --> 00:01:58,190 và điều này là một trong những người đầu tiên lần ghi nơi ai đó thực sự 33 00:01:58,190 --> 00:02:02,280 gảy một loài bướm đêm lớn ra của Mark Máy tính II, đặt nó trong các chất kết dính, 34 00:02:02,280 --> 00:02:05,006 và sau đó ghi nó như các lỗi được biết đến đầu tiên 35 00:02:05,006 --> 00:02:06,630 đã thực sự được tìm thấy thể chất. 36 00:02:06,630 --> 00:02:10,104 Vì vậy, do đó đã được nhập đó vào truyền thuyết ngày nay. 37 00:02:10,104 --> 00:02:12,020 Tất cả mọi thứ từ cuối cùng tuần là có sẵn trực tuyến. 38 00:02:12,020 --> 00:02:14,840 Trong tài nguyên đặc biệt mà có lẽ bạn không nhất thiết phải chú ý, đặc biệt 39 00:02:14,840 --> 00:02:15,881 nếu đến đây trong người. 40 00:02:15,881 --> 00:02:20,230 Vì vậy, một trong những nghiên cứu sinh giảng dạy mỗi năm làm cho một bộ kinh điển của các ghi chú, 41 00:02:20,230 --> 00:02:22,010 vì vậy bạn không cần giữ Cúi đầu xuống, cố gắng 42 00:02:22,010 --> 00:02:24,410 để ghi lại bất cứ điều gì nhất mà có thể xảy ra ở lớp. 43 00:02:24,410 --> 00:02:25,940 Vì vậy, nhận ra rằng những cái gọi là [? Scribd?] Ghi chú 44 00:02:25,940 --> 00:02:29,350 đang trực tuyến, chắc chắn các slide và mã nguồn mà chúng tôi sử dụng trong lớp học. 45 00:02:29,350 --> 00:02:31,436 Chúng tôi làm cho bảng điểm toàn văn cũng có sẵn. 46 00:02:31,436 --> 00:02:34,310 Vì vậy, nếu bạn mơ hồ nhớ một số hạn, và muốn nhìn nó lên một chút 47 00:02:34,310 --> 00:02:37,280 dễ dàng hơn, nhận ra rằng tất cả đó là tìm kiếm trực tuyến. 48 00:02:37,280 --> 00:02:38,930 Cũng như walkthroughs là tốt. 49 00:02:38,930 --> 00:02:42,710 Thật vậy, hôm nay chúng ta bắt đầu nhìn vào một ngôn ngữ lập trình cấp thấp hơn, 50 00:02:42,710 --> 00:02:45,290 sớm được biết đến chúng tôi như C, và nó rất dễ dàng 51 00:02:45,290 --> 00:02:48,820 để loại bị mất chỉ sau một vài những khoảnh khắc thời gian, và sau đó sắp xếp của tự hỏi 52 00:02:48,820 --> 00:02:52,370 làm thế nào chúng ta thực sự đã để một số chi tiết ví dụ phức tạp từ đơn giản. 53 00:02:52,370 --> 00:02:54,975 Và như vậy chúng ta sẽ nhận ra anh đào chọn một số trong lớp học 54 00:02:54,975 --> 00:02:57,850 trong những ví dụ đại diện, nhưng nhận ra rằng còn nhiều hơn nữa cũng là 55 00:02:57,850 --> 00:03:01,140 có sẵn trực tuyến để bạn có thể làm việc qua nó ở tốc độ của riêng bạn, 56 00:03:01,140 --> 00:03:02,950 Tuy nhiên bạn cảm thấy thoải mái nhất. 57 00:03:02,950 --> 00:03:05,200 >> Nhưng chúng ta rời đi với chương trình mà là chỉ này. 58 00:03:05,200 --> 00:03:09,690 Vì vậy, tôi nhấp vào lá cờ màu xanh lá cây, và những gì chương trình này làm gì? 59 00:03:09,690 --> 00:03:10,710 Nói, hello, thế giới. 60 00:03:10,710 --> 00:03:13,180 Nó làm cho con mèo nói xin chào trong thế giới nhỏ bé của mình 61 00:03:13,180 --> 00:03:15,990 ở phía trên bên tay trái giao diện người dùng của Scratch. 62 00:03:15,990 --> 00:03:18,810 Nhưng chúng tôi bắt đầu giới thiệu một số thuật ngữ trong tuần trước. 63 00:03:18,810 --> 00:03:23,614 Và như vậy, những thứ như thế này chúng ta gọi là gì? 64 00:03:23,614 --> 00:03:25,280 Những gì có thể là thuật ngữ chung cho điều này? 65 00:03:25,280 --> 00:03:26,266 Yeah. 66 00:03:26,266 --> 00:03:28,210 Một phương pháp hay một tuyên bố. 67 00:03:28,210 --> 00:03:29,280 Chắc chắn, đó là một hành động. 68 00:03:29,280 --> 00:03:30,140 Làm cái này. 69 00:03:30,140 --> 00:03:32,400 Và chưa có hình dạng khác đến đầu, 70 00:03:32,400 --> 00:03:35,360 bên cạnh những cái gọi là tuyên bố, họ cũng là 71 00:03:35,360 --> 00:03:38,221 những điều như thế này, mà chúng ta gọi là gì? 72 00:03:38,221 --> 00:03:38,720 Yeah. 73 00:03:38,720 --> 00:03:39,634 Vì vậy, một vòng lặp. 74 00:03:39,634 --> 00:03:42,050 Và trong trường hợp này, điều này lặp đi lặp lại, rõ ràng, 10 lần. 75 00:03:42,050 --> 00:03:43,040 Có một khối mãi mãi. 76 00:03:43,040 --> 00:03:44,164 Có một vài người khác. 77 00:03:44,164 --> 00:03:48,309 Và hôm nay chúng ta sẽ xem làm thế nào để dịch này đến một thế giới hiện đại hơn, 78 00:03:48,309 --> 00:03:50,850 nếu bạn sẽ, mặc dù nó sẽ xuất hiện ở cái nhìn đầu tiên 79 00:03:50,850 --> 00:03:52,024 được nhiều hơn nữa phức tạp. 80 00:03:52,024 --> 00:03:53,190 Nhưng những người đã thực sự vòng. 81 00:03:53,190 --> 00:03:56,182 Và sau đó chúng tôi có những thứ như này, trong đó có hình dạng này, 82 00:03:56,182 --> 00:03:57,515 và về cơ bản câu hỏi. 83 00:03:57,515 --> 00:03:58,890 Và chúng tôi nói đến điều này như những gì? 84 00:03:58,890 --> 00:03:59,762 >> Đung biểu thức Boolean. 85 00:03:59,762 --> 00:04:00,320 >> DAVID J. Malan: Yeah. 86 00:04:00,320 --> 00:04:01,340 Biểu thức Boolean. 87 00:04:01,340 --> 00:04:04,502 Cái gì đó là đúng hoặc sai, có hay không, một hay không, 88 00:04:04,502 --> 00:04:05,960 tuy nhiên bạn muốn xem thế giới. 89 00:04:05,960 --> 00:04:08,335 Nhưng chúng ta gọi là những người Boolean biểu thức, và chúng tôi cắm chúng 90 00:04:08,335 --> 00:04:09,900 vào điều kiện, hoặc các chi nhánh. 91 00:04:09,900 --> 00:04:12,170 Và trong thế giới của Scratch, tất cả mọi thứ độc đáo 92 00:04:12,170 --> 00:04:15,460 interlock về hình dạng của nó, nếu nó làm cho tinh thần hợp lý để làm như vậy, 93 00:04:15,460 --> 00:04:18,490 nhưng bạn không phải chỉ dừng lại ở làm một điều có điều kiện, 94 00:04:18,490 --> 00:04:20,450 bạn có thể có một phương ngôn ngã ba trên đường 95 00:04:20,450 --> 00:04:24,040 và làm một trong hai điều này hay đó nếu điều kiện là đúng hay không. 96 00:04:24,040 --> 00:04:26,040 Và sau đó, như bạn sẽ thấy, nếu bạn chưa có, 97 00:04:26,040 --> 00:04:27,480 bạn có thể ngay cả những tổ khối. 98 00:04:27,480 --> 00:04:32,110 Vì vậy, Scratch phát triển để điền vào hình dạng mà bạn có thể muốn chèn vào nó, 99 00:04:32,110 --> 00:04:35,330 do đó, bạn thực sự có thể bày tỏ nhất logic nào mà bạn có thể muốn làm. 100 00:04:35,330 --> 00:04:38,220 >> Bây giờ một vài lời thông báo cho cả hai ở đây và New Haven. 101 00:04:38,220 --> 00:04:39,370 Vì vậy, cắt- bắt đầu ngày hôm nay. 102 00:04:39,370 --> 00:04:42,120 Các URL cho điều này là về các khóa học của trang web, cho những người không quen. 103 00:04:42,120 --> 00:04:43,970 Phần sẽ là một cơ hội để có được với nhau 104 00:04:43,970 --> 00:04:46,553 trong một môi trường nhiều hơn nữa thân mật hơn [? Sanders?] Cho phép, 105 00:04:46,553 --> 00:04:50,347 với 10-20 người bạn cùng lớp với một giảng dạy nghiên cứu tại bản nhạc khác nhau, 106 00:04:50,347 --> 00:04:51,930 và bước khác nhau, nếu bạn lựa chọn. 107 00:04:51,930 --> 00:04:54,080 Thật vậy khóa học Mời phần khác nhau 108 00:04:54,080 --> 00:04:57,340 cho những người kém thoải mái, hơn thoải mái, và một nơi nào đó ở giữa, 109 00:04:57,340 --> 00:04:59,860 và vai trò của ngón tay cái ở đây, là không có định nghĩa chính thức, 110 00:04:59,860 --> 00:05:04,600 nhưng nếu bạn không thoải mái, bạn loại biết nó. 111 00:05:04,600 --> 00:05:07,470 Bạn là một chút dũng cảm về ý tưởng của bước chân, có lẽ, trở lại 112 00:05:07,470 --> 00:05:10,130 trong lớp học, hoặc hiển thị lên đến một trong giữa phần. 113 00:05:10,130 --> 00:05:12,770 Nếu bạn đã được lập trình từ khi bạn sáu tuổi, thoải mái hơn, 114 00:05:12,770 --> 00:05:13,400 có lẽ với bạn. 115 00:05:13,400 --> 00:05:16,150 Và nếu đó là loại một toss-up, đó là chính xác những gì ở giữa 116 00:05:16,150 --> 00:05:17,190 có nghĩa là phải. 117 00:05:17,190 --> 00:05:18,410 >> Bây giờ, trong khi chờ đợi, cho một lớp học kích thước này, 118 00:05:18,410 --> 00:05:21,326 nó đưa chúng ta một thời gian để phần tất cả mọi người, vì vậy chúng tôi đã được gọi là, 119 00:05:21,326 --> 00:05:24,030 siêu phần, sắp tới này cuối tuần và đầu tuần tới, 120 00:05:24,030 --> 00:05:26,570 vì vậy hãy xem tại trang web của khóa học cho những người đang tất nhiên rộng, 121 00:05:26,570 --> 00:05:28,610 và cũng quay cho những người không thể làm cho họ. 122 00:05:28,610 --> 00:05:33,470 Và phần mình sẽ bắt đầu trong tuần ba của CS50 chỉ số zero. 123 00:05:33,470 --> 00:05:35,880 Vấn đề đặt 0 là đã trên trang web của khóa học. 124 00:05:35,880 --> 00:05:40,010 Và nhận ra rằng bạn có chín muộn ngày học kỳ này. 125 00:05:40,010 --> 00:05:43,240 Vì vậy, đây là một bản nâng cấp từ cuối cùng năm, khi chúng tôi đã có năm ngày cuối. 126 00:05:43,240 --> 00:05:46,210 >> Vì vậy, nếu bạn đang tự hỏi, chúng ta có chín bộ vấn đề. 127 00:05:46,210 --> 00:05:53,200 Bạn có chín ngày cuối năm, mỗi trong số đó bạn chỉ có thể dành một tuần vào các ngày. 128 00:05:53,200 --> 00:05:56,089 Điều đó làm cho hiệu quả tất cả vấn đề đặt ra do Thứ sáu, 129 00:05:56,089 --> 00:05:58,630 nhưng mục tiêu là để đặt một ít chút áp lực tâm lý 130 00:05:58,630 --> 00:06:01,100 trên bạn thử để có được điều trong hôm thứ Năm 131 00:06:01,100 --> 00:06:03,960 vì như bạn sẽ sớm khám phá, cho tốt hơn hoặc tồi tệ hơn, nhất 132 00:06:03,960 --> 00:06:07,820 tất cả mọi thứ trong thế giới phần mềm kết thúc mất nhiều thời gian hơn bạn dự đoán. 133 00:06:07,820 --> 00:06:10,620 Vì vậy, xem xét nó một loại cơ hội để giúp đỡ 134 00:06:10,620 --> 00:06:13,880 mình để nhắm mục tiêu thứ năm, nhưng thoải mái trong đó, có, 135 00:06:13,880 --> 00:06:14,950 tất cả mọi thứ là do thứ Sáu. 136 00:06:14,950 --> 00:06:17,590 Và nếu bạn gửi cho họ trên Thứ năm, đó là tuyệt vời. 137 00:06:17,590 --> 00:06:21,020 Không có điểm thưởng hoặc thêm tín dụng để đáp ứng hạn chót. 138 00:06:21,020 --> 00:06:23,250 Nó có nghĩa là một chỉ nạng. 139 00:06:23,250 --> 00:06:25,810 >> Và giờ hành chính, cả hai ở đây và ở New Haven, 140 00:06:25,810 --> 00:06:28,840 trong người, nếu bạn muốn đáp ứng với bất kỳ của các khóa học của chúng tôi 141 00:06:28,840 --> 00:06:31,060 giảng dạy và nghiên cứu sinh CA để được hỗ trợ. 142 00:06:31,060 --> 00:06:31,640 >> Được rồi. 143 00:06:31,640 --> 00:06:33,110 Vì vậy, bây giờ, chúng ta hãy làm điều này nhiều hơn thực tế. 144 00:06:33,110 --> 00:06:35,470 Và trong một khoảnh khắc nó sẽ bắt đầu để có được nhiều hơn một chút phức tạp, nhưng rất 145 00:06:35,470 --> 00:06:37,310 nhanh chóng vào thứ Sáu và tuần tiếp theo chúng ta sẽ có 146 00:06:37,310 --> 00:06:41,230 có thể làm được nhiều hơn chúng ta có thể như vậy, đến nay trong Scratch. 147 00:06:41,230 --> 00:06:44,350 Vì vậy, chúng tôi giới thiệu mã cuối cùng tuần, mặc dù pictoral. 148 00:06:44,350 --> 00:06:45,620 Đó là mảnh ghép. 149 00:06:45,620 --> 00:06:48,800 Và chúng tôi chính thức rằng nó là một cái gì đó gọi là mã nguồn, 150 00:06:48,800 --> 00:06:50,330 nhưng sẽ không như thế nào? 151 00:06:50,330 --> 00:06:52,550 Vâng, nó nhìn một chút một cái gì đó như thế này. 152 00:06:52,550 --> 00:06:55,410 Và, trên thực tế, chỉ để loại trêu chọc, nơi chúng tôi có thể đi với điều này. 153 00:06:55,410 --> 00:06:57,800 Tôi sẽ đi trước và mở ra một cửa sổ ở đây, 154 00:06:57,800 --> 00:06:59,810 và tôi chỉ cần đi để chọn New File. 155 00:06:59,810 --> 00:07:03,200 Và tôi sẽ lưu tập tin này như một cái gì đó giống như chào dot c. 156 00:07:03,200 --> 00:07:05,700 Thêm vào đó lựa chọn từ chỉ trong một khoảnh khắc. 157 00:07:05,700 --> 00:07:08,630 Và đây là cách ai đó có thể đi về cách viết một chương trình. 158 00:07:08,630 --> 00:07:13,990 Bao gồm các tiêu chuẩn I / O dot h, int main bãi bỏ, và sau đó mở ngoặc móc, gần 159 00:07:13,990 --> 00:07:19,430 ngoặc móc, printf chào dấu phẩy thế giới, backslash n, dấu chấm phẩy, Save, thực hiện. 160 00:07:19,430 --> 00:07:19,930 ĐƯỢC. 161 00:07:19,930 --> 00:07:21,670 Tôi đã viết đầu tiên của tôi chương trình, nhưng nó sẽ 162 00:07:21,670 --> 00:07:23,878 để được vô underwhelmed bởi vì khi tôi thực sự 163 00:07:23,878 --> 00:07:27,352 chạy chương trình này, tất nhiên, bằng văn bản trước tiên hãy hello, 164 00:07:27,352 --> 00:07:30,310 và sau đó dot giảm hello, và chúng tôi sẽ đi qua này chi tiết hơn 165 00:07:30,310 --> 00:07:31,730 trong một thời điểm, đó là tất cả nó. 166 00:07:31,730 --> 00:07:33,270 Không bật mở bất kỳ cửa sổ. 167 00:07:33,270 --> 00:07:35,070 Nó không làm bất cứ điều gì đặc biệt ưa thích. 168 00:07:35,070 --> 00:07:38,830 Tất cả nó là những gì tôi nói với nó để làm, nhưng làm thế nào để chúng ta có được điều đó? 169 00:07:38,830 --> 00:07:40,560 Và làm thế nào để chúng ta xây dựng trên đó? 170 00:07:40,560 --> 00:07:43,430 Vâng, chúng ta hãy giới thiệu một vài khái niệm khác nhau ở đây. 171 00:07:43,430 --> 00:07:47,170 >> Vì vậy, một, chúng tôi về để bắt đầu bằng cách sử dụng một chương trình được gọi là một trình biên dịch. 172 00:07:47,170 --> 00:07:51,470 Một trình biên dịch tồn tại cho Mac OS, Windows, Linux, bất kỳ số lượng các hệ thống điều hành, 173 00:07:51,470 --> 00:07:54,540 và chúng tôi sẽ sớm giới thiệu bạn đến môi trường mà chúng ta sẽ sử dụng, 174 00:07:54,540 --> 00:07:57,410 nhưng một trình biên dịch chỉ là một vị tướng hạn cho một phần của phần mềm 175 00:07:57,410 --> 00:08:01,940 mà mất mã nguồn và sản xuất mã đối tượng từ nó. 176 00:08:01,940 --> 00:08:03,940 Nói cách khác, nếu bạn có như nguồn đầu vào của bạn 177 00:08:03,940 --> 00:08:08,250 mã, một cái gì đó giống như những gì tôi chỉ cần gõ, cuối cùng nó tạo mã đối tượng. 178 00:08:08,250 --> 00:08:11,780 Và mã số đối tượng thực sự là chỉ một cách nói nó ra 179 00:08:11,780 --> 00:08:12,926 của zero và một người. 180 00:08:12,926 --> 00:08:14,800 Nói cách khác, nguồn mã, mặc dù nó 181 00:08:14,800 --> 00:08:17,240 đi để tìm một chút phức tạp, và một chút ít thân thiện 182 00:08:17,240 --> 00:08:19,590 Scratch hơn ở cái nhìn đầu tiên, nó ít nhất là một cái gì đó 183 00:08:19,590 --> 00:08:21,120 con người chúng ta có thể hiểu được. 184 00:08:21,120 --> 00:08:24,360 Nó loại có vẻ giống như Anh mặc dù nó rất gọn gàng. 185 00:08:24,360 --> 00:08:28,040 Trong khi lập trình trong số không và của một người, như người tiền nhiệm của chúng tôi đã phải làm, 186 00:08:28,040 --> 00:08:30,920 Cách đây vài năm, không phải là một thách thức đặc biệt thú vị. 187 00:08:30,920 --> 00:08:33,710 Tuy nhiên, đây là những gì máy tính vẫn hiểu. 188 00:08:33,710 --> 00:08:37,010 Vì vậy, trình biên dịch được chúng tôi từ mã nguồn để phản đối mã. 189 00:08:37,010 --> 00:08:39,860 Nó giống như việc mở một tập tin với các biên dịch, và khi bạn lưu nó, 190 00:08:39,860 --> 00:08:41,419 bạn sẽ có được những số không và những người thân. 191 00:08:41,419 --> 00:08:43,419 Vì vậy, chúng tôi sẽ xem làm thế nào để làm mà chỉ trong một khoảnh khắc. 192 00:08:43,419 --> 00:08:47,400 >> Nhưng chúng ta hãy bây giờ cố gắng để cung cấp một cầu nối giữa tuần trước và điều này, 193 00:08:47,400 --> 00:08:50,660 do đó ngay cả khi chúng tôi nhận được hung lên về những thứ như dấu ngoặc, 194 00:08:50,660 --> 00:08:54,100 và dấu chấm phẩy và dấu ngoặc đơn, và tất cả những tri thức thú vị 195 00:08:54,100 --> 00:08:57,620 các khía cạnh của lập trình, mà rất dễ hiểu chuyến đi người dậy sớm vào, 196 00:08:57,620 --> 00:09:00,930 nhận ra rằng tất cả các ý tưởng ngày hôm nay, cũng giống như cuối cùng. 197 00:09:00,930 --> 00:09:03,975 Vì vậy, cuối cùng, chúng ta đã thấy ví dụ này ở đây, chương trình Hello World. 198 00:09:03,975 --> 00:09:07,500 Vâng, bắt đầu từ ngày hôm nay, nếu chúng ta muốn để thực hiện điều đó cùng một chương trình, 199 00:09:07,500 --> 00:09:10,800 nó sẽ tìm một chút gì đó như thế này. 200 00:09:10,800 --> 00:09:14,040 Và chúng tôi sẽ giải thích trước dài những gì int, và chính, và bãi bỏ, và tất cả điều đó 201 00:09:14,040 --> 00:09:18,770 là, nhưng ít nhất tôi thấy ở đây đã quen thuộc Hello World. 202 00:09:18,770 --> 00:09:20,860 >> Trong khi đó, những thứ như chức năng, nói hello, 203 00:09:20,860 --> 00:09:23,570 rất đơn giản là có được một tuyên bố rất đơn giản như thế này. 204 00:09:23,570 --> 00:09:26,930 Printf hello thế giới, với một số trích dẫn, với một dấu gạch chéo ngược, 205 00:09:26,930 --> 00:09:29,780 với một dấu chấm phẩy, nhưng thêm vào đó để đến. 206 00:09:29,780 --> 00:09:34,066 Loops, trong khi đó, đây là một vòng lặp, Tất nhiên, nói hello thế giới mãi mãi, 207 00:09:34,066 --> 00:09:36,690 và điều này sẽ trông một ít tệ hơn trong cuối cùng, 208 00:09:36,690 --> 00:09:39,530 nhưng nếu tôi nói điều gì đó như thế, trong khi sự thật, tôi 209 00:09:39,530 --> 00:09:44,050 sau đó có thể in ra Xin chào thế giới một lần nữa và một lần nữa và một lần nữa và một lần nữa. 210 00:09:44,050 --> 00:09:46,660 Và sau đó khi bạn có thể loại của bắt đầu để suy ra ở đây, 211 00:09:46,660 --> 00:09:49,070 ước này bằng cách sử dụng dấu ngoặc nhọn là loại 212 00:09:49,070 --> 00:09:52,050 giống như ôm lấy dòng thụt vào mã ở đó. 213 00:09:52,050 --> 00:09:55,840 Các dòng printf của nhiều mã như các mảnh ghép màu vàng lên trên. 214 00:09:55,840 --> 00:09:58,740 Vì vậy, chúng tôi sẽ không nói mãi mãi, chúng ta sẽ nói trong khi sự thật, 215 00:09:58,740 --> 00:10:01,020 nhưng chúng ta sẽ thấy tại sao đó là chỉ trong một chút. 216 00:10:01,020 --> 00:10:04,210 >> Trong khi đó, nếu chúng ta có một vòng lặp như thế này, nơi bạn lặp lại một cái gì đó hữu hạn 217 00:10:04,210 --> 00:10:07,730 lần con số, một trong những quá nó sẽ mất một ít được sử dụng 218 00:10:07,730 --> 00:10:12,820 để, nhưng nó sẽ nói cho int i được không, tôi ít hơn 10, i ++, 219 00:10:12,820 --> 00:10:14,056 và sau đó printf nữa. 220 00:10:14,056 --> 00:10:15,430 Nhưng có sẽ là mô hình. 221 00:10:15,430 --> 00:10:18,434 Và đối với những người bạn quen thuộc với AP Khoa học máy tính, hoặc Java, 222 00:10:18,434 --> 00:10:21,100 hoặc bất kỳ số lượng các ngôn ngữ khác, hầu như tất cả các cấu trúc 223 00:10:21,100 --> 00:10:23,820 vậy, đến nay nên xem xét chủ yếu quen thuộc. 224 00:10:23,820 --> 00:10:24,680 >> Vì vậy biến. 225 00:10:24,680 --> 00:10:29,270 Vì vậy, đây là một đoạn trích Scratch đơn giản mà thiết đặt một biến gọi là truy cập đến số không, 226 00:10:29,270 --> 00:10:33,150 và sau đó mãi mãi nói quầy, và sau đó nó thay đổi truy cập bởi một. 227 00:10:33,150 --> 00:10:37,030 Vì vậy, nó bắt đầu bằng số không, và sau đó một, hai, ba. 228 00:10:37,030 --> 00:10:42,560 Vâng, làm thế nào chúng ta có thể giới thiệu rằng trong ngôn ngữ này mới một chút tương tự như vậy? 229 00:10:42,560 --> 00:10:45,460 Int truy cập bằng không, trong khi sự thật, mà 230 00:10:45,460 --> 00:10:48,100 là ý tưởng tương tự từ trước làm một cái gì đó mãi mãi, 231 00:10:48,100 --> 00:10:49,530 và tôi chỉ cần đi để printf. 232 00:10:49,530 --> 00:10:53,310 Và bây giờ nó nhận được một chút kỳ lạ, phần trăm tôi, nhưng thêm vào đó để đến, 233 00:10:53,310 --> 00:10:55,140 nhưng những ý tưởng này hoàn toàn giống nhau. 234 00:10:55,140 --> 00:10:58,820 Chúng tôi bây giờ chỉ cần phải tuân thủ cú pháp mà các máy tính là 235 00:10:58,820 --> 00:11:00,010 sẽ yêu cầu của chúng tôi. 236 00:11:00,010 --> 00:11:04,620 >> Biểu thức boolean, một cái gì đó như sx ít hơn y, hoặc x ít hơn y, 237 00:11:04,620 --> 00:11:06,354 và y ít hơn z. 238 00:11:06,354 --> 00:11:09,270 Nó sẽ tìm một chút gì đó như thế này, với dấu ngoặc đơn chỉ 239 00:11:09,270 --> 00:11:13,020 giống như trong toán học cho các biện pháp tốt để chỉ đảm bảo rằng thứ tự của các hoạt động 240 00:11:13,020 --> 00:11:14,750 như chúng tôi dự định. 241 00:11:14,750 --> 00:11:15,600 Và bây giờ, điều kiện. 242 00:11:15,600 --> 00:11:21,220 Vì vậy, nếu x nhỏ hơn y, nói x là ít hơn y, else if x lớn hơn y, 243 00:11:21,220 --> 00:11:26,020 nói x lớn hơn y, nếu không một cách hợp lý, x phải bằng y. 244 00:11:26,020 --> 00:11:28,710 Vì vậy, bạn có thể thực hiện một cái gì đó như thế này trong Scratch, 245 00:11:28,710 --> 00:11:31,230 hoặc bạn có thể thực hiện nó trong cú pháp này. 246 00:11:31,230 --> 00:11:35,090 Và một lần nữa, các dấu ngoặc nhọn là loại cho chúng ta những hình dạng giống như các câu đố 247 00:11:35,090 --> 00:11:40,750 miếng, nhưng cú pháp, bây giờ, có lẽ bắt đầu làm theo một số mô hình. 248 00:11:40,750 --> 00:11:42,910 >> Vì vậy, điều này cho chúng ta ở đây? 249 00:11:42,910 --> 00:11:45,260 Vì vậy, chúng tôi trở lại sau đó vào chương trình chính của chúng tôi. 250 00:11:45,260 --> 00:11:47,930 Hãy thực sự, bây giờ, làm điều gì đó với nó. 251 00:11:47,930 --> 00:11:50,660 Vì vậy, trong này đầu tiên đường chúng ta thấy rõ nét bao gồm, 252 00:11:50,660 --> 00:11:53,160 tiêu chuẩn I / O, dot h, và sau đó một số góc lạ 253 00:11:53,160 --> 00:11:57,330 khung dưới đây mà. int main bãi bỏ, và sau đó printf hello thế giới. 254 00:11:57,330 --> 00:11:58,200 Vì vậy, chỉ có một bước. 255 00:11:58,200 --> 00:12:02,440 Một người không bao giờ được lập trình trước, ít nhất là giải thích một trong những dòng này. 256 00:12:02,440 --> 00:12:04,490 Có lẽ sử dụng một số biệt ngữ của tuần trước. 257 00:12:04,490 --> 00:12:06,942 Printf là gì, ví dụ? 258 00:12:06,942 --> 00:12:07,442 Yeah. 259 00:12:07,442 --> 00:12:08,410 >> Đung [Không nghe thấy] 260 00:12:08,410 --> 00:12:08,610 >> DAVID J. Malan: Yeah. 261 00:12:08,610 --> 00:12:11,380 Đó là một chức năng, hoặc một tuyên bố, từ ngữ cuối tuần trước. 262 00:12:11,380 --> 00:12:13,470 Và đó là một hành động đó là làm một cái gì đó. 263 00:12:13,470 --> 00:12:15,855 Bây giờ chức năng này, hoặc tuyên bố này, không 264 00:12:15,855 --> 00:12:17,550 nó xuất hiện để có một số loại đầu vào? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 Và trong ý nghĩa gì không nó dường như để có đầu vào, nếu như vậy? 267 00:12:24,380 --> 00:12:26,180 Đầu vào, những gì tôi có nghĩa là bằng cách đó? 268 00:12:26,180 --> 00:12:26,720 Yeah. 269 00:12:26,720 --> 00:12:27,595 >> Đung [Không nghe thấy] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 DAVID J. Malan: Yeah. 272 00:12:31,440 --> 00:12:34,890 Vì vậy, Scratch ra một vài mảnh ghép nơi bạn có thể tham số hóa nó. 273 00:12:34,890 --> 00:12:37,980 Bạn có thể nói lặp lại chặn bao nhiêu lần để lặp lại, 274 00:12:37,980 --> 00:12:40,320 vì vậy đó là một đầu vào của các loại, và cũng giống như Scratch 275 00:12:40,320 --> 00:12:43,060 đã có một placeholder nhỏ màu trắng cho số bạn sẽ gõ vào, 276 00:12:43,060 --> 00:12:45,810 vì vậy chúng ta sử dụng trong này ngoặc thế giới văn bản 277 00:12:45,810 --> 00:12:49,910 để cung cấp cho chúng ta rằng hình tròn vào đó chúng ta có thể cắm đầu vào của chúng tôi. 278 00:12:49,910 --> 00:12:53,180 Sau khi tất cả, hàng chục năm trước khi ngôn ngữ này, được gọi là C, 279 00:12:53,180 --> 00:12:55,950 được phát minh không có ai dự đoán nó là một người trong chúng ta, 280 00:12:55,950 --> 00:12:59,420 những vài năm sau đó, chúng tôi muốn muốn có một chức năng mà nói xin chào. 281 00:12:59,420 --> 00:12:59,920 Phải không? 282 00:12:59,920 --> 00:13:02,880 Nó muốn được tốt đẹp nếu có một mảnh ghép, hoặc một từ khóa, 283 00:13:02,880 --> 00:13:05,502 đó được gọi là hello, mà nghĩa đen chỉ nói xin chào. 284 00:13:05,502 --> 00:13:06,460 Nhưng chúng tôi không cần điều đó. 285 00:13:06,460 --> 00:13:09,320 Chúng tôi có thể có một cái gì đó thấp hơn nhiều mức độ, như một bản in generic 286 00:13:09,320 --> 00:13:12,760 lệnh, mà mất đầu vào, và in bất cứ điều gì chúng ta muốn. 287 00:13:12,760 --> 00:13:14,960 Vì vậy, nhận thấy bây giờ các mô hình mà sẽ bắt đầu xuất hiện. 288 00:13:14,960 --> 00:13:19,310 Mở dấu ngoặc, dấu ngoặc đóng cửa dường như ôm lấy đầu vào, 289 00:13:19,310 --> 00:13:21,770 và sau đó tôi thấy đôi báo giá trên cả hai đầu. 290 00:13:21,770 --> 00:13:25,110 Hiện vẫn còn là dấu gạch chéo ngược lạ n, nhưng hy vọng bây giờ bạn 291 00:13:25,110 --> 00:13:29,900 có thể bắt đầu hình dung ít nhất đó printf được dùng trong một số hình thức của đầu vào. 292 00:13:29,900 --> 00:13:31,850 Không phải là người dùng thân thiện như Scratch, nhưng nó chỉ là 293 00:13:31,850 --> 00:13:34,920 như khi cắm vào một số giá trị đó. 294 00:13:34,920 --> 00:13:38,306 >> Được rồi, giờ chúng ta hãy thực sự làm điều gì đó với điều này. 295 00:13:38,306 --> 00:13:40,930 Vì vậy, một số bạn có thể biết từ có đi mua sắm các lớp trước, 296 00:13:40,930 --> 00:13:42,638 trò chuyện với bạn bè, rằng trong nhiều năm 297 00:13:42,638 --> 00:13:44,590 chúng tôi sử dụng một cái gì đó gọi là các thiết bị CS50. 298 00:13:44,590 --> 00:13:49,160 Đây là một thuật ngữ mô tả một công nghệ được gọi là máy ảo, mà 299 00:13:49,160 --> 00:13:51,870 là một phần của phần mềm của bạn người tiền nhiệm sẽ tải về off 300 00:13:51,870 --> 00:13:53,360 website của khóa học miễn phí. 301 00:13:53,360 --> 00:13:56,550 Họ cũng sẽ tải về một mảnh miễn phí mềm được gọi là một hypervisor, 302 00:13:56,550 --> 00:14:00,590 một cái gì đó gọi là như VMware, hoặc VirtualBox, hoặc số bất kỳ 303 00:14:00,590 --> 00:14:04,450 các công cụ khác, và trên họ Mac hoặc PC hoặc bất cứ máy tính mà họ đã có năm ngoái 304 00:14:04,450 --> 00:14:06,620 và trong những năm qua, họ sẽ nhấp đúp chuột vào một biểu tượng 305 00:14:06,620 --> 00:14:08,860 chạy phần mềm này gọi là hypervisor. 306 00:14:08,860 --> 00:14:12,220 Và sau đó bên trong của chương trình đó họ sẽ mở các thiết bị CS50. 307 00:14:12,220 --> 00:14:14,710 Và hiệu quả là cho dù một người tiền nhiệm của bạn 308 00:14:14,710 --> 00:14:17,780 đang chạy Mac OS hay Windows, người ấy sau đó 309 00:14:17,780 --> 00:14:22,910 sau đó đã có một cửa sổ mới của họ màn hình chạy môi trường CS50 của. 310 00:14:22,910 --> 00:14:27,370 Vì vậy, một máy ảo cho phép bạn chạy một hệ điều hành bên trong của người khác, 311 00:14:27,370 --> 00:14:28,785 và đó chính xác là những gì chúng tôi đã làm. 312 00:14:28,785 --> 00:14:31,410 Ở hầu hết các quá trình chúng tôi sử dụng một hệ điều hành được gọi là 313 00:14:31,410 --> 00:14:34,070 Linux, đặc biệt Ubuntu Linux, và điều này 314 00:14:34,070 --> 00:14:37,590 là một cách rất tốt đẹp trong những năm vừa qua đảm bảo rằng tất cả mọi người trong khóa học 315 00:14:37,590 --> 00:14:38,840 chỉ có cùng một môi trường. 316 00:14:38,840 --> 00:14:41,339 Và bạn có thể sử dụng bất kỳ loại máy tính mà bạn thực sự muốn. 317 00:14:41,339 --> 00:14:43,930 Trong số những nhược điểm, mặc dù, là nó giống như hai gigabyte 318 00:14:43,930 --> 00:14:45,480 để tải về điều này. 319 00:14:45,480 --> 00:14:50,310 Nó không nhất thiết phải làm việc siêu tốt trên những người có máy tính mà có lẽ chỉ 320 00:14:50,310 --> 00:14:54,570 đã có một buổi biểu diễn hay như vậy về RAM, hoặc không quá nhiều gigahertz tốc độ CPU, 321 00:14:54,570 --> 00:14:56,750 và như vậy trong năm nay, cho này và lý do khác, 322 00:14:56,750 --> 00:14:59,140 Chúng ta đã được chuyển với môi trường này. 323 00:14:59,140 --> 00:15:03,730 Cái gọi là CS50 IDE, đó là dựa trên phần mềm mã nguồn mở, 324 00:15:03,730 --> 00:15:07,380 và một nền tảng được hỗ trợ rằng một công ty gọi là Cloud9 325 00:15:07,380 --> 00:15:11,110 hỗ trợ ở châu Âu, mà cho phép chúng ta có cơ bản 326 00:15:11,110 --> 00:15:15,770 rằng môi trường y như trong năm qua, nhưng trong cái gọi là đám mây. 327 00:15:15,770 --> 00:15:17,532 >> Vì vậy, những đám mây là gì? 328 00:15:17,532 --> 00:15:20,480 Bạn đã có thể nhấp biểu tượng của nó trên máy Mac hoặc máy PC của bạn. 329 00:15:20,480 --> 00:15:22,210 Các đám mây là gì? 330 00:15:22,210 --> 00:15:22,709 Yeah? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 A to hơn chút. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Yeah. 335 00:15:31,010 --> 00:15:33,770 Nó chỉ là một loạt các máy tính ở những nơi khác mà lưu trữ dữ liệu và chạy 336 00:15:33,770 --> 00:15:34,880 phần mềm và các loại tương tự. 337 00:15:34,880 --> 00:15:39,390 Vì vậy, nó thực sự chỉ đến từ de jure mô tả [? có thể cho thuê?] 338 00:15:39,390 --> 00:15:40,930 máy tính mà sống ở nơi khác. 339 00:15:40,930 --> 00:15:42,810 Mà bạn, mình, không nhất thiết phải sở hữu. 340 00:15:42,810 --> 00:15:45,256 Vì vậy, khi dữ liệu của bạn, hoặc bạn các chương trình, đều ở trong đám mây, 341 00:15:45,256 --> 00:15:47,630 nó chỉ có nghĩa là nó về một người nào đó khác của các máy tính ở những nơi khác, 342 00:15:47,630 --> 00:15:50,510 và không, rất có thể, trên của bạn máy tính xách tay hoặc máy tính để bàn vật lý. 343 00:15:50,510 --> 00:15:52,990 Và đó là những gì CS50 IDE tại là. 344 00:15:52,990 --> 00:15:55,670 >> Từ đó về sau bạn sẽ đi đến một số URL mà sẽ giới thiệu bạn 345 00:15:55,670 --> 00:16:00,090 để, trong vấn đề thiết lập 1, sau này tuần, mà sẽ sau đó, khi đăng nhập, 346 00:16:00,090 --> 00:16:01,480 cung cấp cho bạn môi trường này. 347 00:16:01,480 --> 00:16:03,896 Và nhiều Scratch như có một vài tấm khác nhau có liên quan, 348 00:16:03,896 --> 00:16:06,030 do đó, hiện IDE CS50 của có chính xác điều đó. 349 00:16:06,030 --> 00:16:09,480 Ở phía bên tay trái trên cùng ở đây, bạn sẽ thấy một trình duyệt tập tin quen thuộc. 350 00:16:09,480 --> 00:16:11,930 Vì vậy, bất kỳ các tập tin mà bạn đưa vào môi trường này 351 00:16:11,930 --> 00:16:13,346 chỉ cần đi để được liệt kê ở đó. 352 00:16:13,346 --> 00:16:14,350 Tập tin và thư mục. 353 00:16:14,350 --> 00:16:16,790 Ngày đầu ngay tại đây, bạn sẽ nhìn thấy một nơi 354 00:16:16,790 --> 00:16:18,420 mà bạn thực sự có thể viết mã của bạn. 355 00:16:18,420 --> 00:16:21,860 Ban đầu trong C, sau này trong hạn trong PHP và JavaScript, 356 00:16:21,860 --> 00:16:24,739 và, có lẽ đối với thức dự án, Ruby hay Java hay Python 357 00:16:24,739 --> 00:16:27,280 hoặc bất kỳ số nào của ngôn ngữ là hỗ trợ trong môi trường này. 358 00:16:27,280 --> 00:16:30,130 Nó không phải ở tất cả các ràng buộc để CS50 cụ thể. 359 00:16:30,130 --> 00:16:33,390 >> Và sau đó ở góc dưới đây, đặc biệt là đối với những người thoải mái hơn, 360 00:16:33,390 --> 00:16:35,590 bạn có một cái gì đó được gọi là một cửa sổ terminal. 361 00:16:35,590 --> 00:16:38,770 Và cửa sổ thiết bị đầu cuối này cho phép bạn thực hiện bất kỳ lệnh mà bạn 362 00:16:38,770 --> 00:16:40,860 muốn trong môi trường điện toán đám mây này. 363 00:16:40,860 --> 00:16:42,860 Nó cho phép bạn cài đặt bất kỳ phần mềm bổ sung 364 00:16:42,860 --> 00:16:46,810 mà bạn muốn, vì bạn đã được gọi là root, administrator đặc quyền. 365 00:16:46,810 --> 00:16:49,930 Vì vậy, nói cách khác, mặc dù điều này cuối cùng được tổ chức trong các đám mây, 366 00:16:49,930 --> 00:16:52,400 và mặc dù chúng ta có đơn giản hóa nó đến mức độ nào 367 00:16:52,400 --> 00:16:57,110 theo mặc định, nghĩa là giới thiệu, nhờ Dan Armendáriz, và Dino, 368 00:16:57,110 --> 00:17:01,070 và Dan Bradley vào đội của CS50 qua qua nhiều tháng, một ít thoải mái 369 00:17:01,070 --> 00:17:05,140 chế độ mà giấu đi rất nhiều phiền nhiễu ban đầu khó hiểu. 370 00:17:05,140 --> 00:17:10,119 Tất cả mọi thứ tồn tại để đại diện cho một hệ thống máy tính điển hình 371 00:17:10,119 --> 00:17:12,319 mà bạn có thể sử dụng trong thế giới thực. 372 00:17:12,319 --> 00:17:15,640 >> Vì vậy, những gì hiện này nghĩa là tất cả, và những gì chúng ta có thể thực sự làm gì với nó? 373 00:17:15,640 --> 00:17:19,124 Hãy thực sự mất một peek tại một chương trình. 374 00:17:19,124 --> 00:17:21,290 Vì vậy, tôi sẽ mở ra môi trường thực tế ở đây, 375 00:17:21,290 --> 00:17:23,894 mà chỉ là chúng ta Chrome trình duyệt, mà có thể là Firefox, 376 00:17:23,894 --> 00:17:26,640 có thể là Internet Explorer, hoặc một số trình duyệt khác. 377 00:17:26,640 --> 00:17:28,400 Nó đầy đủ chiếu ở đây cho thời điểm này. 378 00:17:28,400 --> 00:17:31,580 Và tôi muốn thực sự trêu chọc ngoài những gì chương trình này được. 379 00:17:31,580 --> 00:17:36,170 Vì vậy, chúng ta hãy có một cái nhìn, bằng cách phóng to lên đầu, vào những gì tôi đã làm, và làm thế nào tôi đã ở đây. 380 00:17:36,170 --> 00:17:38,315 Vì vậy, đây là những chính xác dòng cùng của mã. 381 00:17:38,315 --> 00:17:40,440 Vì vậy, đây là tuyên bố, như bạn đã đề cập trước đó. 382 00:17:40,440 --> 00:17:42,580 Các chức năng mà nói xin chào. 383 00:17:42,580 --> 00:17:45,870 Các dấu ngoặc nhọn, trên dòng bốn dòng sáu, 384 00:17:45,870 --> 00:17:49,290 có lẽ là loại phong bì dòng để liên kết nó 385 00:17:49,290 --> 00:17:50,890 với bản chất của chương trình của tôi. 386 00:17:50,890 --> 00:17:54,890 Vì vậy, trên thực tế, chính từ khoá này, đó là lên có trên dòng ba, 387 00:17:54,890 --> 00:17:59,450 bạn có thể nghĩ về nó như tương đương về điều đó khi lá cờ màu xanh lá cây nhấp, 388 00:17:59,450 --> 00:18:01,080 chặn tại Scratch. 389 00:18:01,080 --> 00:18:05,280 Vì vậy, đó là tất cả chúng ta có ở đây, là khi lá cờ màu xanh lá cây nhấp, in, hoặc nói, 390 00:18:05,280 --> 00:18:06,700 Chào thế giới. 391 00:18:06,700 --> 00:18:11,210 >> Nhưng chúng ta hãy đoán, bây giờ, những gì đầu tiên, dòng phức tạp hơn này, là. 392 00:18:11,210 --> 00:18:15,100 Sharp bao gồm, mở góc cạnh khung, tiêu chuẩn I / O dot h, 393 00:18:15,100 --> 00:18:17,320 đóng khung góc cạnh. 394 00:18:17,320 --> 00:18:19,850 Những gì được rằng có lẽ làm, đặc biệt là nếu bạn đã lập trình 395 00:18:19,850 --> 00:18:21,390 trước trong một số ngôn ngữ khác. 396 00:18:21,390 --> 00:18:21,890 Yeah? 397 00:18:21,890 --> 00:18:22,765 >> Đung [Không nghe thấy] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 DAVID J. Malan: Yeah. 400 00:18:25,970 --> 00:18:26,470 Chính xác. 401 00:18:26,470 --> 00:18:29,455 Vì vậy, đây là đem lại cho bạn truy cập vào một thư viện, có thể nói, các chức năng. 402 00:18:29,455 --> 00:18:31,830 Và một thư viện hàm là chức năng mà người khác 403 00:18:31,830 --> 00:18:34,406 đã viết, hoặc gần đây hoặc lâu trước đây, vì vậy mà bạn 404 00:18:34,406 --> 00:18:35,780 không cần phải phát minh lại bánh xe. 405 00:18:35,780 --> 00:18:39,020 Ví dụ, chúng ta làm không phải biết, trong năm 2015, 406 00:18:39,020 --> 00:18:42,280 làm thế nào để viết code mà puts một ký tự trên màn hình của tôi. 407 00:18:42,280 --> 00:18:44,820 Một người nào đó đã tìm thấy ra với các chức năng printf 408 00:18:44,820 --> 00:18:47,280 vì vậy mà tôi có thể sắp xếp các trừu tượng đi từ đó, hoặc lớp 409 00:18:47,280 --> 00:18:49,350 trên đầu trang của mình mã, và bây giờ chỉ mất 410 00:18:49,350 --> 00:18:52,760 cho cấp mà bất kỳ chương trình tôi viết có thể in cái gì đó ra màn hình. 411 00:18:52,760 --> 00:18:58,150 Vì vậy, dòng đầu tiên này có trong bước một bao gồm cái gọi là tập tin tiêu đề 412 00:18:58,150 --> 00:18:59,980 cho các thư viện chuẩn. 413 00:18:59,980 --> 00:19:02,630 Vì vậy, xem, ngôn ngữ trong mà bây giờ chúng tôi đang làm việc 414 00:19:02,630 --> 00:19:05,010 có một thư viện chuẩn với nhiều chức năng. 415 00:19:05,010 --> 00:19:07,240 Printf là một trong số họ, và mà dòng mã đầu tiên 416 00:19:07,240 --> 00:19:10,040 có nghĩa là cung cấp cho tôi quyền truy cập những chức năng, vì vậy mà tôi 417 00:19:10,040 --> 00:19:12,300 không cần phải phát minh lại bánh xe đó. 418 00:19:12,300 --> 00:19:15,940 >> Bây giờ chúng ta hãy đi đến cửa sổ phía dưới và làm chính xác những gì tôi đã làm trước đây. 419 00:19:15,940 --> 00:19:18,520 Một thời gian trước đây, khi tôi còn lượn chớp nhoáng qua các mã, 420 00:19:18,520 --> 00:19:24,540 gõ nó ra lần đầu tiên, Tôi rất nhanh chóng đánh máy, làm hello. 421 00:19:24,540 --> 00:19:28,250 Những gì là tất cả về bạn sẽ đoán? 422 00:19:28,250 --> 00:19:29,150 Tôi đang làm gì thế? 423 00:19:29,150 --> 00:19:29,649 Yeah? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Đừng bận tâm. 426 00:19:32,310 --> 00:19:32,970 Đó là OK. 427 00:19:32,970 --> 00:19:33,492 Yeah. 428 00:19:33,492 --> 00:19:34,450 Đung Biên dịch nó. 429 00:19:34,450 --> 00:19:34,700 DAVID J. Malan: Yeah. 430 00:19:34,700 --> 00:19:35,770 Nó đã được chỉ biên dịch. 431 00:19:35,770 --> 00:19:36,270 Phải không? 432 00:19:36,270 --> 00:19:39,280 Ngay cả nếu điều này là hoàn toàn xa lạ cho bạn, nó là tiếng Anh khá giống. 433 00:19:39,280 --> 00:19:41,155 Đó chắc chắn không phải là số không và những người thân, vì vậy tôi vẫn 434 00:19:41,155 --> 00:19:44,220 cần phải chạy nó thông qua cái gọi là chương trình, một trình biên dịch, đó là đi 435 00:19:44,220 --> 00:19:46,060 để lấy nó như là đầu vào và sản lượng sản xuất. 436 00:19:46,060 --> 00:19:48,270 Và ít nhất, bây giờ, trong môi trường Linux này, 437 00:19:48,270 --> 00:19:51,030 nhưng điều này không phải là điều kiện tiên quyết, đây chỉ là nơi chúng ta sẽ bắt đầu, 438 00:19:51,030 --> 00:19:53,960 bạn thường tương tác với hệ thống máy tính như thế này 439 00:19:53,960 --> 00:19:55,770 bởi một dòng lệnh để gọi là. 440 00:19:55,770 --> 00:19:57,790 Vì vậy, với một nhấp nháy kịp thời và bàn phím của bạn, 441 00:19:57,790 --> 00:20:01,630 và không quá nhiều chuột, và không quá nhiều cửa sổ và biểu tượng và menu, 442 00:20:01,630 --> 00:20:02,980 chứ không phải tất cả mọi thứ là văn bản. 443 00:20:02,980 --> 00:20:06,180 Và mặc dù điều này cảm thấy, lúc đầu Trong nháy mắt, có lẽ, như một bước lùi, 444 00:20:06,180 --> 00:20:08,437 nó thực sự là một nhiều hơn cách mạnh mẽ và biểu cảm 445 00:20:08,437 --> 00:20:10,270 kiểm soát một máy tính đặc biệt là khi bạn, 446 00:20:10,270 --> 00:20:12,950 chính mình, trở thành nhiều hơn thoải mái từ ít hơn. 447 00:20:12,950 --> 00:20:16,790 Nó sẽ cho phép bạn làm nhiều thứ hơn chỉ là những gì Microsoft 448 00:20:16,790 --> 00:20:20,390 hoặc Apple cho phép bạn làm với hệ điều hành đồ họa của họ. 449 00:20:20,390 --> 00:20:23,270 >> Vì vậy, khi tôi nhấn Enter, bây giờ, không có gì xảy ra thời gian này 450 00:20:23,270 --> 00:20:25,960 vì rõ ràng các chương trình hello là đến ngày. 451 00:20:25,960 --> 00:20:28,250 Và những gì đã được lệnh Tôi chạy sau đó? 452 00:20:28,250 --> 00:20:32,370 Dot giảm hello, và hello world. 453 00:20:32,370 --> 00:20:34,350 Bây giờ chúng ta hãy bước sao cho chỉ một khoảnh khắc. 454 00:20:34,350 --> 00:20:39,510 Nó chỉ ra rằng thực hiện chào chỉ là một cách đơn giản của việc biên soạn một chương trình. 455 00:20:39,510 --> 00:20:41,670 Hãy chỉ giới thiệu một phần của thuật ngữ, 456 00:20:41,670 --> 00:20:43,470 nhưng sau đó di chuyển đi từ nó, vì nó không 457 00:20:43,470 --> 00:20:46,640 tất cả những gì thú vị cho mục đích của ngày hôm nay. 458 00:20:46,640 --> 00:20:51,000 Trình biên dịch, chúng ta sẽ bắt đầu sử dụng được gọi là Clang, cho ngôn ngữ C. 459 00:20:51,000 --> 00:20:54,280 Và đây là một chương trình đó là chạy chỉ như chúng tôi đã làm tại các dòng lệnh đó. 460 00:20:54,280 --> 00:20:56,580 Và vì vậy nếu tôi muốn biên dịch một chương trình mà tôi 461 00:20:56,580 --> 00:21:00,790 đã viết trong một tập tin hello dot c, Tôi nghĩa là chỉ cần gõ vang chào c 462 00:21:00,790 --> 00:21:02,100 nhập. 463 00:21:02,100 --> 00:21:04,880 >> Điều buồn cười là, vì những lý do lịch sử, 464 00:21:04,880 --> 00:21:07,750 nếu tôi không xác định tên của chương trình 465 00:21:07,750 --> 00:21:11,690 mà tôi muốn đến đầu ra, nếu tôi không làm chỉ định một tên tập tin cho những số không 466 00:21:11,690 --> 00:21:14,990 và những người thân, rất kỳ lạ năm ước đã được thông qua trước 467 00:21:14,990 --> 00:21:17,390 nơi mà nó cảm thấy một loại câu trả lời tốt vào thời điểm đó, 468 00:21:17,390 --> 00:21:21,650 cũng cho phép chỉ là tùy tiện gọi Chương trình đầu tiên chúng tôi biên dịch một dấu chấm ra. 469 00:21:21,650 --> 00:21:22,900 A đến đầu tiên trong bảng chữ cái. 470 00:21:22,900 --> 00:21:23,920 Ra, nó là đầu ra. 471 00:21:23,920 --> 00:21:26,210 Vì vậy, chúng tôi sẽ gọi chương trình theo mặc định một dấu chấm ra. 472 00:21:26,210 --> 00:21:29,550 Và đó là tốt bởi vì nếu tôi muốn chạy chương trình trong văn bản này dựa 473 00:21:29,550 --> 00:21:33,590 môi trường, tôi chỉ cần gõ dot chém một dot ra nhập. 474 00:21:33,590 --> 00:21:35,250 Và nó sẽ chạy chính xác như trước. 475 00:21:35,250 --> 00:21:36,880 Vì vậy, chúng ta hãy xem đó thật nhanh. 476 00:21:36,880 --> 00:21:40,370 >> Vì vậy, nếu tôi quay lại với tôi mã nguồn trong CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 và tôi thay vì làm điều này, kêu vang chào cot c nhập, thấy không có gì có thể xảy ra, 478 00:21:47,860 --> 00:21:49,790 nhưng hầu như luôn luôn môi trường Linux này, 479 00:21:49,790 --> 00:21:53,310 khi không có gì xấu có thể xảy ra, mà có nghĩa là một cái gì đó tốt thực sự xảy ra. 480 00:21:53,310 --> 00:21:56,270 Nếu bạn không nhìn thấy một lỗi tin nhắn, tất cả có lẽ là tốt. 481 00:21:56,270 --> 00:22:01,930 Và quả thực, nếu bây giờ tôi làm dot chém một dấu chấm ra vào, tôi đã chạy cùng một chương trình của tôi. 482 00:22:01,930 --> 00:22:04,610 Tôi vẫn còn có các chương trình hello từ trước đó bởi vì thực sự, nó 483 00:22:04,610 --> 00:22:07,430 sẽ đẹp hơn rất nhiều chỉ loại make thay vì ghi nhớ 484 00:22:07,430 --> 00:22:10,240 những câu thần chú của lệnh, nhưng chúng ta hãy xem làm thế nào chúng tôi 485 00:22:10,240 --> 00:22:12,890 có thể cải tiến này, dù sao. 486 00:22:12,890 --> 00:22:15,340 >> Vì vậy, đây là lệnh để biên dịch mã. 487 00:22:15,340 --> 00:22:19,100 Đây là lệnh để chạy các mã biên dịch sau đó. 488 00:22:19,100 --> 00:22:20,546 Làm thế nào tôi có thể chỉ định một tên tập tin? 489 00:22:20,546 --> 00:22:22,670 Vâng chúng ta hãy chỉ giới thiệu thêm một mảnh của thuật ngữ. 490 00:22:22,670 --> 00:22:24,461 Khi bạn đang ở đây văn bản dựa trên môi trường, 491 00:22:24,461 --> 00:22:27,400 bạn sẽ muốn chỉ định điều được gọi là đối số dòng lệnh. 492 00:22:27,400 --> 00:22:31,380 Mà chỉ là một cách nói, Nói cách khác tại dấu nhắc đó 493 00:22:31,380 --> 00:22:33,860 tinh chỉnh các hành vi của bất cứ điều gì chương trình bạn đang chạy. 494 00:22:33,860 --> 00:22:37,320 Vì vậy, đặc biệt là chương trình tôi chạy, bằng cách gõ tên kêu vang, 495 00:22:37,320 --> 00:22:38,504 là chương trình được gọi là Clang. 496 00:22:38,504 --> 00:22:40,920 Vì vậy, đây là hoặc các trường học cũ tương đương với nhấn đôi 497 00:22:40,920 --> 00:22:42,860 trên Microsoft Word hay biểu tượng của một số chương trình. 498 00:22:42,860 --> 00:22:46,360 Tôi đang thay vì chỉ cần gõ tên của nó, nhưng trong phiên bản này của lệnh, 499 00:22:46,360 --> 00:22:51,334 Sau đó tôi có dash o không gian xin chào xin chào dot gian c. 500 00:22:51,334 --> 00:22:53,500 Vì vậy, ngay cả khi bạn chưa bao giờ chơi trong thế giới này trước khi, 501 00:22:53,500 --> 00:22:58,160 chỉ mất một đoán những gì không dash o xin chào làm gì? 502 00:22:58,160 --> 00:23:00,620 Hoặc những gì nó nói vang để làm gì? 503 00:23:00,620 --> 00:23:01,386 Yeah. 504 00:23:01,386 --> 00:23:02,455 >> Đung [Không nghe thấy] 505 00:23:02,455 --> 00:23:03,330 DAVID J. Malan: Yeah. 506 00:23:03,330 --> 00:23:08,614 Nó chỉ đặt đầu ra của tập tin được xin chào thay vì sillier một dấu chấm ra. 507 00:23:08,614 --> 00:23:09,780 Và, thực sự, chúng ta hãy cố gắng này. 508 00:23:09,780 --> 00:23:14,250 Vì vậy, nếu bây giờ tôi làm, đầu tiên chúng ta hãy làm điều này, r m hello. 509 00:23:14,250 --> 00:23:15,590 Đó là loại bỏ. 510 00:23:15,590 --> 00:23:18,450 Và nó sẽ nói remove tập tin thường xuyên hello, mà 511 00:23:18,450 --> 00:23:22,210 là không cần thiết phức tạp, nhưng nó chỉ phương tiện nào bạn muốn xóa các tập tin, 512 00:23:22,210 --> 00:23:23,230 và tôi gõ y cho có. 513 00:23:23,230 --> 00:23:27,340 Và hãy chú ý, nếu bạn đã liếc nhìn đầu trái, nó đã biến mất từ ​​trên đó. 514 00:23:27,340 --> 00:23:32,180 Bây giờ tôi làm vang dash o, và Tôi sẽ đi trước và làm hello, 515 00:23:32,180 --> 00:23:34,890 trong tất cả các mũ, hello dot c. 516 00:23:34,890 --> 00:23:37,775 Bây giờ, nếu tôi làm dấu chấm dấu gạch chéo hello, những gì bạn mong đợi? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Có lẽ đó là trường hợp nhạy cảm. 519 00:23:42,430 --> 00:23:43,070 Có lẽ nó không phải. 520 00:23:43,070 --> 00:23:44,030 Hãy xem. 521 00:23:44,030 --> 00:23:45,230 Không có tập tin hoặc thư mục. 522 00:23:45,230 --> 00:23:47,438 Và chúng ta có thể loại ăn gian bằng cách chỉ cần nhìn vào góc trên bên trái. 523 00:23:47,438 --> 00:23:49,630 Điều gì đã làm tôi rõ ràng lưu các chương trình như? 524 00:23:49,630 --> 00:23:51,070 Tất cả các mũ chào. 525 00:23:51,070 --> 00:23:53,020 Vì vậy, thực sự, đó là đi để làm cho một sự khác biệt. 526 00:23:53,020 --> 00:23:54,540 Vì vậy bây giờ hello thế giới đang trở lại. 527 00:23:54,540 --> 00:23:56,969 Bây giờ điều này là tất cả tốt và tốt, và tất cả đều rất tâm-tê liệt, 528 00:23:56,969 --> 00:23:59,760 để loại get sa lầy trong những chi tiết, nhưng sự hiểu biết họ 529 00:23:59,760 --> 00:24:00,500 tốt. 530 00:24:00,500 --> 00:24:02,675 >> Gõ ra những ngày càng câu thần chú dài 531 00:24:02,675 --> 00:24:05,980 sẽ không thể đặc biệt vui vẻ, vì vậy mọi người trên thế giới 532 00:24:05,980 --> 00:24:08,260 phát minh ra một chương trình khác, Cách đây vài năm, được gọi là 533 00:24:08,260 --> 00:24:12,190 thực hiện, đó khá đơn giản cho phép bạn gõ make, 534 00:24:12,190 --> 00:24:14,530 tên của chương trình bạn muốn làm, và làm cho 535 00:24:14,530 --> 00:24:18,580 là thông minh trong đó nó sẽ tìm trong thư mục hiện hành, hay còn gọi là thư mục, 536 00:24:18,580 --> 00:24:21,440 và nếu bạn có một tập tin hello dot c, 537 00:24:21,440 --> 00:24:25,800 đó là file nó sẽ biên dịch cho bạn vào một chương trình gọi là hello. 538 00:24:25,800 --> 00:24:29,950 Vì vậy, đó là một cách đơn giản hơn nhiều làm các lệnh bí ẩn hơn 539 00:24:29,950 --> 00:24:30,800 mà chúng ta đã làm trước đó. 540 00:24:30,800 --> 00:24:34,080 Và chúng tôi đã được cấu hình trước CS50 IDE biết 541 00:24:34,080 --> 00:24:38,560 mà nó phải làm dash o và một số cờ khác, hoặc đối số dòng lệnh, 542 00:24:38,560 --> 00:24:40,670 rằng chúng ta sẽ thấy trước khi dài. 543 00:24:40,670 --> 00:24:43,700 >> Nhưng chúng ta hãy bây giờ thực sự làm một cái gì đó thú vị hơn. 544 00:24:43,700 --> 00:24:46,950 Chỉ cần gõ ra thế giới hello tất cả thời gian không phải là tất cả những gì hấp dẫn. 545 00:24:46,950 --> 00:24:52,280 Vì vậy, hãy để tôi đi trước và thay đổi chương trình này và nói, xin chào David. 546 00:24:52,280 --> 00:24:54,120 Bây giờ tôi sẽ đi xuống đây. 547 00:24:54,120 --> 00:24:57,360 Tôi sẽ đi trước và làm làm hello. 548 00:24:57,360 --> 00:25:00,652 Và một lần nữa, bây giờ bạn đang thấy làm cho bạn thấy các con 549 00:25:00,652 --> 00:25:03,360 chuỗi các lệnh mà nó làm vì chúng ta đã cấu hình sẵn 550 00:25:03,360 --> 00:25:05,200 nó theo cách đó, nhưng chúng tôi không cần phải lo lắng cho doanh nghiệp 551 00:25:05,200 --> 00:25:10,735 nó đang làm gì khác hơn là dot biên dịch giảm hello, hello thế giới. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Có chuyện gì vậy? 554 00:25:15,510 --> 00:25:16,177 Yeah. 555 00:25:16,177 --> 00:25:17,370 >> Đung [Không nghe thấy] 556 00:25:17,370 --> 00:25:18,203 >> DAVID J. Malan: Yes. 557 00:25:18,203 --> 00:25:19,600 Vì vậy, sai lầm noobie. 558 00:25:19,600 --> 00:25:22,394 Tôi nhận thấy điều này là siêu tinh tế, nhưng các dấu hoa thị ở đây, trong các tab, 559 00:25:22,394 --> 00:25:25,060 chỉ có nghĩa là bạn không lưu nó, và các trình duyệt và các chương trình khác 560 00:25:25,060 --> 00:25:25,930 làm điều này đôi khi. 561 00:25:25,930 --> 00:25:27,939 Vì vậy, kiểm soát s hoặc lệnh s nên lưu nó. 562 00:25:27,939 --> 00:25:29,730 Bây giờ hãy để tôi đi trước và chạy lại chương trình. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 Biên dịch lại. 565 00:25:34,260 --> 00:25:36,050 Đúng, vì vậy nó là một quá trình gồm nhiều bước. 566 00:25:36,050 --> 00:25:39,400 Không ai trong số đó là đặc biệt phức tạp, nhưng bất cứ lúc nào chúng ta thay đổi các tập tin, 567 00:25:39,400 --> 00:25:43,450 chúng ta cần phải thay đổi, dẫn tới số không và những người thân, và dấu chấm dấu gạch chéo hello. 568 00:25:43,450 --> 00:25:43,950 Wow. 569 00:25:43,950 --> 00:25:46,450 Vì vậy, đây là rất underwhelming rằng chúng tôi chỉ in ra này. 570 00:25:46,450 --> 00:25:48,360 Hãy làm mọi thứ một ít năng động hơn, bây giờ. 571 00:25:48,360 --> 00:25:52,280 >> Vâng nó quay ra, mà thích Scratch, C hỗ trợ biến. 572 00:25:52,280 --> 00:25:54,790 Và hóa ra nếu bạn muốn phải có một biến mà các cửa hàng, 573 00:25:54,790 --> 00:25:57,300 không phải là một số mặt hàng như chúng tôi thường đã làm với Scratch, 574 00:25:57,300 --> 00:26:01,300 nhưng cũng giống như một từ, hoặc một cụm từ, hoặc một cái tên, bạn 575 00:26:01,300 --> 00:26:04,837 có thể chỉ định một biến là kiểu string. 576 00:26:04,837 --> 00:26:06,670 Vì vậy, chúng ta sẽ thấy nhiều hơn những chỉ trong một khoảnh khắc, 577 00:26:06,670 --> 00:26:09,090 nhưng nó quay ra rằng C, và rất nhiều ngôn ngữ như nó, 578 00:26:09,090 --> 00:26:11,240 có loại rất cụ thể của biến. 579 00:26:11,240 --> 00:26:13,810 Nó không giống như đại số, nơi bạn có được một x, một y, và z 580 00:26:13,810 --> 00:26:16,940 và những người chỉ luôn số, trong một ngôn ngữ lập trình 581 00:26:16,940 --> 00:26:20,030 bạn có thể lưu trữ các số, bạn có thể lưu trữ các ký tự riêng lẻ, 582 00:26:20,030 --> 00:26:24,619 bạn có thể lưu trữ toàn bộ chữ, bạn có thể lưu trữ toàn bộ hình ảnh, toàn bộ các file âm thanh, 583 00:26:24,619 --> 00:26:25,160 và như thế. 584 00:26:25,160 --> 00:26:28,362 Vì vậy, chúng ta cần phải xác định những gì kiểu của biến của chúng tôi là. 585 00:26:28,362 --> 00:26:31,570 Và theo quy ước tôi sẽ gọi cho tôi s biến chỉ vì nó ngắn gọn, 586 00:26:31,570 --> 00:26:33,510 và s là viết tắt của chuỗi. 587 00:26:33,510 --> 00:26:36,400 >> Và sau đó tôi sẽ lưu trữ bên trong của biến này, 588 00:26:36,400 --> 00:26:39,570 chỉ thích với Scratch khi tôi sử dụng khối bộ, 589 00:26:39,570 --> 00:26:41,950 Tôi sẽ sử dụng Toán tử gán trong C, 590 00:26:41,950 --> 00:26:45,290 mà độc đáo đủ là bằng nhau ký, nhưng các dấu bằng thực hiện điều này. 591 00:26:45,290 --> 00:26:53,220 Nó di chuyển một cái gì đó từ bên phải vào phía bên tay trái của biểu thức. 592 00:26:53,220 --> 00:26:57,170 Vì vậy, những gì tôi đã làm, một điều rõ ràng dòng năm, là tôi đã khai báo một biến. 593 00:26:57,170 --> 00:27:01,284 Tôi đã nói với các máy tính, cho tôi bộ nhớ cho một biến, gọi nó là, 594 00:27:01,284 --> 00:27:03,950 và biết trước rằng tôi sẽ được đặt một chuỗi trong nó. 595 00:27:03,950 --> 00:27:05,950 Và một chuỗi chỉ là một chuỗi các ký tự. 596 00:27:05,950 --> 00:27:09,190 Đây là một từ hoặc một cụm từ, hoặc đoạn văn, nhưng đó là một chuỗi các ký tự. 597 00:27:09,190 --> 00:27:10,610 Nó không phải con số. 598 00:27:10,610 --> 00:27:13,800 Chuỗi những gì tôi có được đưa vào biến đó? 599 00:27:13,800 --> 00:27:16,185 Vâng, rõ ràng trích dẫn unquote, "Hannah". 600 00:27:16,185 --> 00:27:17,810 Bây giờ nhận thấy mô hình đó là mới nổi. 601 00:27:17,810 --> 00:27:19,260 Có một biểu hiện bên tay trái. 602 00:27:19,260 --> 00:27:21,810 Có một biểu hiện tay phải, ngăn cách bởi dấu bằng. 603 00:27:21,810 --> 00:27:24,390 Và chỉ mất một đoán, nếu dù sao cũng không quen thuộc, 604 00:27:24,390 --> 00:27:27,430 với những gì các dấu chấm phẩy là làm. 605 00:27:27,430 --> 00:27:28,865 Có gì đó có lẽ làm cho chúng ta? 606 00:27:28,865 --> 00:27:29,365 Yeah? 607 00:27:29,365 --> 00:27:29,840 >> Đung [Không nghe thấy] 608 00:27:29,840 --> 00:27:29,980 >> DAVID J. Malan: Yeah. 609 00:27:29,980 --> 00:27:31,170 Nó chỉ chấm dứt dòng. 610 00:27:31,170 --> 00:27:31,669 Phải không? 611 00:27:31,669 --> 00:27:34,260 Các máy tính muốn được thẳng thừng nói, theo nghĩa đen, phải làm gì. 612 00:27:34,260 --> 00:27:36,343 Cũng giống như bơ đậu phộng và thạch bánh sandwich dụ, 613 00:27:36,343 --> 00:27:39,360 nếu bạn không xác định chính xác những gì bạn có ý định, 614 00:27:39,360 --> 00:27:42,190 nó có thể được để lại bản án hoặc báo lỗi. 615 00:27:42,190 --> 00:27:44,890 Dấu chấm phẩy có nghĩa là, đó là nó cho lệnh này. 616 00:27:44,890 --> 00:27:48,310 Nó là siêu chính xác, và nó một điều rất dễ để lại tắt. 617 00:27:48,310 --> 00:27:52,240 Vì vậy, hiện nay chương trình này dường như không được hành xử khác đi cho đến khi tôi 618 00:27:52,240 --> 00:27:53,500 làm cho nó năng động hơn. 619 00:27:53,500 --> 00:27:57,107 Vì vậy, thay vì khó có thể của riêng tôi tên, hãy để tôi đặt một giá trị giữ chỗ. 620 00:27:57,107 --> 00:28:00,190 Và nó chỉ ra rằng, và tôi biết điều này từ khi đọc các tài liệu hướng dẫn, 621 00:28:00,190 --> 00:28:04,080 và sử dụng các chức năng trong nhiều năm qua, mà printf được thiết kế năng động. 622 00:28:04,080 --> 00:28:07,510 Bạn không cần phải biết trước những từ bạn muốn để đặt vào nó. 623 00:28:07,510 --> 00:28:11,290 Thay vào đó bạn có thể có một giữ chỗ, giống như trăm s, mà 624 00:28:11,290 --> 00:28:15,500 sẽ nói với các máy tính, đặt một chuỗi ở đây. 625 00:28:15,500 --> 00:28:17,740 >> Những chuỗi chúng ta muốn đặt ở đó? 626 00:28:17,740 --> 00:28:22,430 Will chỉ ra rằng giữa các ngoặc đơn, mà nhớ, phân chia ranh giới 627 00:28:22,430 --> 00:28:28,020 đầu vào cho một hàm, nếu bạn có dấu phẩy tách ra danh sách những thứ ở đây, 628 00:28:28,020 --> 00:28:31,790 chúng tôi thực sự vượt qua trong nhiều đầu vào cho một chức năng. 629 00:28:31,790 --> 00:28:33,901 Vì vậy, giống như một số Scratch khối, bạn có thể không 630 00:28:33,901 --> 00:28:36,150 đã chơi với họ cho dự án của bạn chưa hoặc ở tất cả, 631 00:28:36,150 --> 00:28:38,250 một số khối Scratch có hai đầu vào. 632 00:28:38,250 --> 00:28:41,220 Hai hộp màu trắng bạn có thể gõ số hoặc chữ vào. 633 00:28:41,220 --> 00:28:45,210 Vì vậy, để không C có chức năng như printf rằng có thể mất hai yếu tố đầu vào. 634 00:28:45,210 --> 00:28:48,050 Và một lần nữa, dấu phẩy này được phân loại chúng. 635 00:28:48,050 --> 00:28:51,070 Vì vậy, trong tiếng Anh, một lần nữa ngay cả khi bạn đã bao giờ được lập trình trước, 636 00:28:51,070 --> 00:28:55,320 bởi rằng logic printf là một chức năng, có hai đầu vào, một trong số đó 637 00:28:55,320 --> 00:28:58,810 là một giữ chỗ, những gì bạn sẽ hy vọng printf sẽ làm gì với nhập này? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 Nó sẽ nói lời chào Hannah, hy vọng. 640 00:29:03,220 --> 00:29:05,274 Vì vậy, để làm được điều này chúng ta cần phải lưu nó. 641 00:29:05,274 --> 00:29:06,190 Tôi sẽ để thu nhỏ. 642 00:29:06,190 --> 00:29:10,701 Tôi sẽ quay trở lại xuống đây và nói, làm cho chào nhập. 643 00:29:10,701 --> 00:29:11,200 Oh. 644 00:29:11,200 --> 00:29:14,830 Một cái gì đó sai, và thực sự này là khá áp đảo. 645 00:29:14,830 --> 00:29:18,400 Tôi có sáu dòng code và giống như 12 dòng lỗi. 646 00:29:18,400 --> 00:29:22,120 Vì vậy, mong muốn này. 647 00:29:22,120 --> 00:29:24,260 Vì vậy, những gì đang xảy ra ở đây? 648 00:29:24,260 --> 00:29:27,370 Vì vậy, các quy tắc tốt nhất của ngón tay cái ở đây, đặc biệt là khi bạn đang bắt đầu, 649 00:29:27,370 --> 00:29:29,370 không bị phân tâm bởi các công cụ ở phía dưới. 650 00:29:29,370 --> 00:29:31,220 Trong thực tế, tôi rất cố tình chỉ cuộn lên 651 00:29:31,220 --> 00:29:33,930 vì rất thường xuyên, một máy tính không phải tất cả mà tươi sáng của một thiết bị. 652 00:29:33,930 --> 00:29:35,054 Nó sẽ bị lẫn lộn. 653 00:29:35,054 --> 00:29:37,220 Nếu nó thấy một điều rằng nó không hiểu, 654 00:29:37,220 --> 00:29:40,030 nó có thể nhầm lẫn khác dòng mã là không chính xác, 655 00:29:40,030 --> 00:29:41,649 mặc dù họ hoàn toàn tốt đẹp. 656 00:29:41,649 --> 00:29:43,940 Vì vậy, bạn luôn muốn làm việc từ trên xuống thông qua các lỗi. 657 00:29:43,940 --> 00:29:47,850 Và phải thừa nhận rằng đây là siêu phức tạp tại thời điểm này. 658 00:29:47,850 --> 00:29:50,830 >> Lỗi, sử dụng không khai báo nhận dạng chuỗi. 659 00:29:50,830 --> 00:29:52,130 Tôi đã có nghĩa là tiêu chuẩn trong? 660 00:29:52,130 --> 00:29:53,720 Không, tôi có nghĩa là chuỗi. 661 00:29:53,720 --> 00:29:55,830 Và nó chỉ tay vào, có lẽ đó là một lỗi đánh máy. 662 00:29:55,830 --> 00:30:00,570 Loại giống như, kiểm tra chính tả trong một cách rất geeky, nhưng lý do ở đây, 663 00:30:00,570 --> 00:30:02,840 và bạn sẽ biết điều này chỉ bằng cách thực hành, là 664 00:30:02,840 --> 00:30:06,390 mà nó chỉ ra rằng chuỗi không tồn tại trong C. Trong thực tế, C 665 00:30:06,390 --> 00:30:08,820 là một ngôn ngữ đặc biệt cũ, và đó là mức rất thấp, 666 00:30:08,820 --> 00:30:11,361 và nó không nhiều tính năng mà bạn có thể đã trưởng thành 667 00:30:11,361 --> 00:30:14,620 với nếu bạn có, trên thực tế, lập trình trong Java, như một số bạn có, 668 00:30:14,620 --> 00:30:16,980 nhưng bạn có thể dạy cho nó những điều mới. 669 00:30:16,980 --> 00:30:20,900 Và quả thực, chúng tôi đã thực hiện CS50 này, mặc dù vào cuối học kỳ, 670 00:30:20,900 --> 00:30:23,512 tất cả các bánh xe đào tạo sẽ được đưa ra, 671 00:30:23,512 --> 00:30:25,220 những gì chúng ta làm trong những cặp vợ chồng đầu tiên của tuần 672 00:30:25,220 --> 00:30:29,830 ban đầu là chúng tôi cũng có bạn bao gồm CS50 dot h. 673 00:30:29,830 --> 00:30:31,230 Mà là một tập tin tiêu đề. 674 00:30:31,230 --> 00:30:32,440 Thêm vào đó trong tương lai. 675 00:30:32,440 --> 00:30:36,430 >> Đó là một tập tin có chứa các chức năng mà chúng tôi đã viết cho bạn. 676 00:30:36,430 --> 00:30:39,180 Và trong số những chức năng là chức năng để nhận được đầu vào 677 00:30:39,180 --> 00:30:43,520 từ người sử dụng, giống như dây đàn, và số, và số thực, và nhiều hơn nữa. 678 00:30:43,520 --> 00:30:45,550 Nhưng nó cũng có một vài phím tắt. 679 00:30:45,550 --> 00:30:48,200 Nó định nghĩa một Boolean như một kiểu dữ liệu. 680 00:30:48,200 --> 00:30:50,340 C không có đúng hay sai. 681 00:30:50,340 --> 00:30:53,880 Nhưng chúng tôi có thể cung cấp cho nó những khái niệm đúng hay sai theo cách của thư viện này. 682 00:30:53,880 --> 00:30:57,670 Và nó cũng không có một chuỗi xây dựng cho đến khi chúng tôi bao gồm các dòng này. 683 00:30:57,670 --> 00:31:01,090 Vì vậy, dòng mã này nói trình biên dịch, hey, Clang, nhìn 684 00:31:01,090 --> 00:31:03,570 trong tập tin này cho toàn bộ bó mã mà CS50 685 00:31:03,570 --> 00:31:06,330 đã viết như vậy mà bất cứ ai sử dụng tập tin này 686 00:31:06,330 --> 00:31:09,330 có thể đưa cho các cấp các tính năng mà họ đã thêm. 687 00:31:09,330 --> 00:31:11,220 >> Vì vậy, bây giờ để tôi đi trước và xóa màn hình, 688 00:31:11,220 --> 00:31:14,178 và nếu tò mò Tôi chỉ nói rằng kiểm soát l mỗi lần để xóa màn hình, 689 00:31:14,178 --> 00:31:15,500 hoặc bạn có thể gõ rõ ràng. 690 00:31:15,500 --> 00:31:19,220 Tôi chỉ sẽ đi trước và bây giờ loại làm hello, và tất cả là tốt. 691 00:31:19,220 --> 00:31:22,550 Vẫn còn một đầu ra phức tạp, nhưng nó không phải là một thông điệp sai lầm. 692 00:31:22,550 --> 00:31:28,300 Bây giờ nếu tôi làm dot giảm hello, và như là một sang một bên, dấu chấm dấu gạch chéo là không quen thuộc với hầu hết. 693 00:31:28,300 --> 00:31:30,430 Nó chỉ có nghĩa là, dot phương tiện thư mục hiện hành. 694 00:31:30,430 --> 00:31:33,120 Vì vậy, nếu bạn đã từng sử dụng DOS, hoặc Linux hoặc Unix 695 00:31:33,120 --> 00:31:35,410 bạn có thể làm điều gì đó như cd dot dot, nơi 696 00:31:35,410 --> 00:31:39,220 dot dot nghĩa là đi ngược trong thời gian, hoặc đi thụt lùi, hoặc cao hơn 697 00:31:39,220 --> 00:31:40,370 trong thư mục của bạn. 698 00:31:40,370 --> 00:31:43,090 Dot chỉ có nghĩa là nhìn vào thư mục hiện hành. 699 00:31:43,090 --> 00:31:45,670 Tôi muốn xin chào, đó là quyền ở đây. 700 00:31:45,670 --> 00:31:47,750 Và quả thực, bây giờ nó nói xin chào Hannah. 701 00:31:47,750 --> 00:31:51,120 Và nếu tôi thay đổi nó một lần nữa Maria, biên tập lại 702 00:31:51,120 --> 00:31:55,650 nó sẽ làm cho hello, dot slash hello, chương trình tiếp tục thay đổi. 703 00:31:55,650 --> 00:31:58,060 >> Nhưng điều này vẫn còn một chương trình khá ngu ngốc. 704 00:31:58,060 --> 00:32:00,972 Nếu tôi muốn gửi chương trình này, hoặc đưa nó cho một người bạn, 705 00:32:00,972 --> 00:32:03,430 hay đưa cho Maria hay Hannah cho rằng vấn đề, đó là tốt. 706 00:32:03,430 --> 00:32:07,300 Tôi có thể tùy chỉnh nó cho cả hai người, nhưng nó sẽ không bao giờ phải năng động. 707 00:32:07,300 --> 00:32:10,870 Họ không thể thay đổi nó khi nó đã biên soạn xuống những số không và những người thân. 708 00:32:10,870 --> 00:32:12,350 Vì vậy, những gì chúng tôi đã làm một cái gì đó thông minh hơn? 709 00:32:12,350 --> 00:32:17,100 Nếu như, thay vì cứng mã hóa vào chương trình tên của người này, 710 00:32:17,100 --> 00:32:20,890 nếu chúng ta chỉ nhận được chuỗi theo nhu cầu? 711 00:32:20,890 --> 00:32:22,430 >> Vì vậy, nói cách khác, hãy để tôi làm điều này. 712 00:32:22,430 --> 00:32:24,030 Tôi sẽ phải biên dịch lại chương trình này. 713 00:32:24,030 --> 00:32:25,710 Và hãy để tôi phóng to ở phía dưới bây giờ. 714 00:32:25,710 --> 00:32:29,920 Hãy chào dot slash hello. 715 00:32:29,920 --> 00:32:31,710 Bây giờ không có gì đang xảy ra. 716 00:32:31,710 --> 00:32:35,860 Chúng ta có thể có được một tình nguyện viên nhanh chóng để làm một cái gì đó xảy ra? 717 00:32:35,860 --> 00:32:36,360 Nào lên. 718 00:32:36,360 --> 00:32:37,020 Tên bạn là gì? 719 00:32:37,020 --> 00:32:37,445 >> Pancho: Pancho. 720 00:32:37,445 --> 00:32:38,361 >> DAVID J. Malan: Pacho? 721 00:32:38,361 --> 00:32:39,609 Nào lên. 722 00:32:39,609 --> 00:32:42,150 Một khi bạn nhận được lên đây, đây là sẽ rất tượng, 723 00:32:42,150 --> 00:32:44,060 nhưng nó thú vị hơn hơn tôi gõ nó. 724 00:32:44,060 --> 00:32:49,007 Nếu bạn muốn đi trước và gõ của bạn tên, tôi đã thực hiện chương trình này chỉ dành cho bạn. 725 00:32:49,007 --> 00:32:49,840 Chỉ cần gõ tên của bạn. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Nhập. 728 00:32:53,900 --> 00:32:54,489 Wonderful. 729 00:32:54,489 --> 00:32:55,780 Được rồi, cảm ơn bạn rất nhiều. 730 00:32:55,780 --> 00:32:56,708 >> Pancho: Cảm ơn bạn rất nhiều. 731 00:32:56,708 --> 00:32:57,636 >> DAVID J. Malan: OK. 732 00:32:57,636 --> 00:32:59,028 >> [Vỗ tay] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> Điều đó rất tốt bụng. 735 00:33:01,840 --> 00:33:03,145 Ở đây bạn đi. 736 00:33:03,145 --> 00:33:03,770 Chúng ta đã làm gì? 737 00:33:03,770 --> 00:33:05,930 Vì vậy, cuối cùng chúng ta, ít nhất, thực hiện chương trình này năng động. 738 00:33:05,930 --> 00:33:08,400 Bây giờ nó vẫn còn chắc chắn bởi thiết kế tượng, 739 00:33:08,400 --> 00:33:11,480 nhưng cuối cùng chúng tôi có khả năng bây giờ để viết mã trước, nhiều 740 00:33:11,480 --> 00:33:13,770 như các tác giả của printf, và sau đó tự động 741 00:33:13,770 --> 00:33:17,550 thích ứng dựa trên đầu vào chúng tôi trao, hoặc bởi các lập trình viên, 742 00:33:17,550 --> 00:33:20,610 hoặc bởi những con người thực sự tương tác với chương trình. 743 00:33:20,610 --> 00:33:22,990 Vì vậy, hãy cố gắng thực sự bây giờ để làm một số cấu trúc khác 744 00:33:22,990 --> 00:33:26,625 và xem nếu chúng ta không có thể làm cho các chương trình mình phức tạp hơn. 745 00:33:26,625 --> 00:33:29,250 Vì vậy, chúng ta hãy đi trước và thay vì một văn bản này từ đầu, 746 00:33:29,250 --> 00:33:31,540 Tôi sẽ đi vào ngày hôm nay mã nguồn, và tất cả điều này 747 00:33:31,540 --> 00:33:34,290 có sẵn trên các khóa học của trang web, và bạn có thể kéo và thả nó 748 00:33:34,290 --> 00:33:36,590 vào môi trường của riêng bạn đến thứ sáu một khi vấn đề 749 00:33:36,590 --> 00:33:38,506 tập 1 cho bạn hướng dẫn, hoặc bạn có thể 750 00:33:38,506 --> 00:33:41,200 làm điều đó tại dòng lệnh như tốt, nhưng hơn nữa đến trong p set 1. 751 00:33:41,200 --> 00:33:44,940 >> Hãy xem những gì trong chương trình này đây gọi là, bộ cộng dot c. 752 00:33:44,940 --> 00:33:47,970 Bây giờ tôi đã nhận xét nó, nhưng những gì mới? 753 00:33:47,970 --> 00:33:51,230 Thoạt nhìn, những dòng mã là hoàn toàn mới? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Có lẽ là không cơ bản xa lạ bây giờ. 756 00:33:56,780 --> 00:33:58,417 >> Đung [Không nghe thấy] 757 00:33:58,417 --> 00:34:00,250 DAVID J. Malan: Yeah, vì vậy int x bằng được n. 758 00:34:00,250 --> 00:34:03,760 Chúng tôi chưa bao giờ thấy bất kỳ này trước đây, nhưng có lẽ là int 759 00:34:03,760 --> 00:34:08,179 các biểu tượng cho các loại biến, [? từ?] một số nguyên. 760 00:34:08,179 --> 00:34:09,040 Vì vậy, int cho số nguyên. 761 00:34:09,040 --> 00:34:11,420 Nó chỉ được nhiều hơn gọn gàng. x chỉ là tùy ý. 762 00:34:11,420 --> 00:34:13,920 x và y và z vẫn còn khá hợp lý cho số, 763 00:34:13,920 --> 00:34:16,790 nhưng nói chung chúng ta sẽ sử dụng từ một lần chương trình của chúng tôi trở nên phức tạp hơn. 764 00:34:16,790 --> 00:34:18,940 Nhận int, tất nhiên, nhiều như get string, 765 00:34:18,940 --> 00:34:21,629 có lẽ sẽ có được một int từ người sử dụng, 766 00:34:21,629 --> 00:34:23,670 và sau đó chúng ta sẽ làm điều tương tự với y. 767 00:34:23,670 --> 00:34:27,610 Và rõ ràng, mặc dù điều này dòng cuối cùng, 24, trông phức tạp hơn, 768 00:34:27,610 --> 00:34:32,679 nó sẽ nói số tiền này và đó là điều này khác. 769 00:34:32,679 --> 00:34:35,840 >> Và thông báo phần trăm i có thể biểu thị những gì? 770 00:34:35,840 --> 00:34:38,190 Vai trò gì phần trăm i dường như phục vụ? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 Nó chỉ là placeholders. 773 00:34:41,719 --> 00:34:42,219 Phải không? 774 00:34:42,219 --> 00:34:45,149 Phần trăm s đã cho chuỗi, phần trăm tôi là cho số nguyên. 775 00:34:45,149 --> 00:34:47,690 Có sẽ là phần trăm f cho giá trị điểm, trôi nổi 776 00:34:47,690 --> 00:34:49,273 chỉ là một số với một điểm thập phân. 777 00:34:49,273 --> 00:34:50,590 Nói cách khác, một số thực. 778 00:34:50,590 --> 00:34:55,270 Vì vậy, hãy thực sự biên dịch này chương trình thật nhanh và đừng làm cho bộ cộng. 779 00:34:55,270 --> 00:34:57,962 Lỗi chính. 780 00:34:57,962 --> 00:34:58,670 Tốt cơ hội. 781 00:34:58,670 --> 00:35:02,970 Vì vậy, ý ở đây, tất cả các thời gian này người dùng của tôi đặt tên cho tài khoản này được jharvard. 782 00:35:02,970 --> 00:35:06,620 Tôi đang ở trong CS50 IDE, aka IDE50. 783 00:35:06,620 --> 00:35:11,030 Và bây giờ trong màu xanh ở đây, là một đề cập đến, nhưng từ môi trường, của nơi tôi. 784 00:35:11,030 --> 00:35:16,050 Và trên thực tế, nếu tôi phóng to lên đến đỉnh ở đây, nhận thấy rằng tôi có một IDE50 785 00:35:16,050 --> 00:35:19,490 và tôi thấy từ này, nếu bạn loại quay đầu sang một bên, không gian làm việc. 786 00:35:19,490 --> 00:35:23,890 Tóm lại, thực tế là Tôi đang nhìn thấy dấu ngã dấu gạch chéo không gian làm việc 787 00:35:23,890 --> 00:35:26,910 có nghĩa là trong văn bản này môi trường lệnh dựa, 788 00:35:26,910 --> 00:35:32,300 Tôi đang ở tương đương văn bản của này đồ họa thư mục ở đây. 789 00:35:32,300 --> 00:35:35,730 Vì vậy, khi tôi làm dấu chấm dấu gạch chéo bộ cộng, nó nói không có quy tắc 790 00:35:35,730 --> 00:35:37,372 để thực hiện mục tiêu cộng stop. 791 00:35:37,372 --> 00:35:39,830 Tôi không biết điều đó có nghĩa là, nhưng nó không tốt cho một số lý do. 792 00:35:39,830 --> 00:35:43,310 Không có tập tin hoặc thư mục thậm chí còn rõ ràng hơn. 793 00:35:43,310 --> 00:35:45,670 Nó ở đâu rồi? 794 00:35:45,670 --> 00:35:47,820 Dựa vào nơi tôi nhấp để mở các tập tin trước đó. 795 00:35:47,820 --> 00:35:49,442 Nơi nó có thể được? 796 00:35:49,442 --> 00:35:52,050 >> Đây có thể là trong nguồn một w, vào ngày thứ Tư 797 00:35:52,050 --> 00:35:53,960 và tôi có thể nhìn thấy nó, thực sự, nếu tôi mở mà lên. 798 00:35:53,960 --> 00:35:57,220 Có bộ cộng dot c, nhưng trong môi trường dựa trên văn bản này, 799 00:35:57,220 --> 00:35:59,380 một lần nữa, tôi phải siêu rõ ràng. 800 00:35:59,380 --> 00:36:03,950 Nếu tôi muốn thay đổi thư mục vào một trong những nguồn thứ tư, tôi cần phải gõ, 801 00:36:03,950 --> 00:36:07,210 cd không gian một trong những nguồn Thứ tư nhập và bây giờ 802 00:36:07,210 --> 00:36:09,810 thay đổi nhanh chóng của tôi để cho tôi một gợi ý trực quan mà 803 00:36:09,810 --> 00:36:12,330 Tôi nhiều nơi khác trong môi trường của tôi, 804 00:36:12,330 --> 00:36:15,710 nhưng bây giờ tôi có thể nào làm cho bộ cộng, có vẻ như để làm việc, 805 00:36:15,710 --> 00:36:18,190 dot giảm bộ cộng, cung cấp cho tôi một số nguyên. 806 00:36:18,190 --> 00:36:19,080 One. 807 00:36:19,080 --> 00:36:20,070 Hai. 808 00:36:20,070 --> 00:36:21,630 Tổng của một và hai là ba. 809 00:36:21,630 --> 00:36:24,140 Nhưng nếu tôi không hợp tác, chúng ta hãy xem những gì có được int nào. 810 00:36:24,140 --> 00:36:25,200 Hãy cho tôi một số nguyên. 811 00:36:25,200 --> 00:36:26,590 Không. 812 00:36:26,590 --> 00:36:27,350 Thử lại. 813 00:36:27,350 --> 00:36:29,060 ĐƯỢC. 814 00:36:29,060 --> 00:36:30,520 Fine. 815 00:36:30,520 --> 00:36:32,130 50. 816 00:36:32,130 --> 00:36:32,680 50. 817 00:36:32,680 --> 00:36:33,010 Được rồi. 818 00:36:33,010 --> 00:36:34,055 Vì vậy, cuối cùng nó hợp tác. 819 00:36:34,055 --> 00:36:36,430 Và đó là một số trong những chức năng mà các chức năng này 820 00:36:36,430 --> 00:36:37,760 có thể đã được xây dựng vào cho bạn. 821 00:36:37,760 --> 00:36:43,330 >> Vì vậy, bên trong việc thực hiện của nhận int, lập trình những gì 822 00:36:43,330 --> 00:36:47,990 xây dựng từ cuối tuần trước có lẽ là ở đó để buộc hành vi này của retry, 823 00:36:47,990 --> 00:36:49,962 thử lại, thử lại? 824 00:36:49,962 --> 00:36:51,670 Ừ, có lẽ một số loại vòng lặp. 825 00:36:51,670 --> 00:36:54,160 Nó sẽ trông cú pháp khác nhau từ khối Scratch của, 826 00:36:54,160 --> 00:36:55,880 nhưng đó là thực sự những gì bên trong các tập tin. 827 00:36:55,880 --> 00:36:58,505 Và trong một thời gian vài tuần chúng tôi sẽ thực sự nhìn vào thư viện CS50 828 00:36:58,505 --> 00:37:02,000 như những gì bên trong, nhưng có một vòng lặp áp đặt chính xác điều đó. 829 00:37:02,000 --> 00:37:04,840 >> Hãy chơi một chút ngớ ngẩn trò chơi ở đây với tập tin này. 830 00:37:04,840 --> 00:37:06,550 Điều kiện không điểm c. 831 00:37:06,550 --> 00:37:08,960 Chúng tôi chỉ cần đi để thường bắt đầu đếm từ số không. 832 00:37:08,960 --> 00:37:11,220 Và tôi tiếp tục di chuyển qua một số công cụ ở đầu trang. 833 00:37:11,220 --> 00:37:15,390 Trong màu xanh ở đây, phân ranh giới với tất cả của các ngôi sao và các dấu gạch chéo, 834 00:37:15,390 --> 00:37:17,310 những người bạn của những người lập trình trước khi, đó là những gì? 835 00:37:17,310 --> 00:37:18,690 Tại sao chúng ta tiếp tục bỏ qua nó? 836 00:37:18,690 --> 00:37:19,110 Cái gì? 837 00:37:19,110 --> 00:37:19,490 >> Đung Đó là một nhận xét. 838 00:37:19,490 --> 00:37:19,800 >> DAVID J. Malan: Yeah. 839 00:37:19,800 --> 00:37:20,633 Nó chỉ là một nhận xét. 840 00:37:20,633 --> 00:37:24,160 Đây là một nhận xét cho con người để đọc, mà trong trường hợp của chúng tôi, 841 00:37:24,160 --> 00:37:27,120 cho chúng ta biết những gì tên của tập tin là, ai đã viết nó, và những gì nó làm, 842 00:37:27,120 --> 00:37:28,610 do đó bạn không có để đọc thông qua các mã 843 00:37:28,610 --> 00:37:30,110 để biết những tập tin này là tất cả về. 844 00:37:30,110 --> 00:37:33,110 Nó chỉ là một mô tả, nhưng chức năng đó là không thích hợp. 845 00:37:33,110 --> 00:37:35,930 Và tôi thậm chí có thể xóa nó khỏi tập tin của tôi và nó không có ảnh hưởng. 846 00:37:35,930 --> 00:37:38,740 Các dòng ngon ngọt là những đầu tiên hai ở đây, bây giờ. 847 00:37:38,740 --> 00:37:41,405 int void main là tương đương của chúng tôi khi lá cờ màu xanh lá cây nhấp, 848 00:37:41,405 --> 00:37:44,030 vì vậy chúng ta sẽ rời khỏi đó được cho ngày hôm nay, và chúng tôi sẽ trở lại, 849 00:37:44,030 --> 00:37:46,940 cuối cùng, như những gì int hiệu đang có, nhưng bây giờ, 850 00:37:46,940 --> 00:37:49,500 chú ý những gì tôi đã thực hiện ở đây cũng vậy, bạn cũng có thể, 851 00:37:49,500 --> 00:37:51,736 nếu bạn có một trong dòng nhận xét, nếu bạn có 852 00:37:51,736 --> 00:37:54,670 một suy nghĩ bạn muốn chia sẻ về một dòng mã cụ thể, 853 00:37:54,670 --> 00:37:58,910 ước trong C là để làm dấu gạch chéo gạch chéo, và sau đó một vài từ ngắn gọn, 854 00:37:58,910 --> 00:38:01,500 không phải là một câu hoàn chỉnh, nói chung không phải là một đoạn văn, 855 00:38:01,500 --> 00:38:05,310 mà chỉ giải thích cho bạn, hoặc bạn TF, hoặc độc giả khác hoặc đồng nghiệp, 856 00:38:05,310 --> 00:38:06,990 mã những gì bạn đang làm. 857 00:38:06,990 --> 00:38:10,150 Vì vậy, thay vì phải tìm kiếm tại đây và suy ra từ đường dây 858 00:38:10,150 --> 00:38:12,550 chín và 10, là những gì này làm, phù tám 859 00:38:12,550 --> 00:38:14,945 Tôi chỉ đưa ra một lời nhận xét để yêu cầu người dùng cho một số nguyên, 860 00:38:14,945 --> 00:38:17,820 sau đó tôi không phải suy nghĩ quá khó về những dòng chín và 10. 861 00:38:17,820 --> 00:38:19,720 Tôi chỉ biết rằng đó là những gì chung họ đang làm. 862 00:38:19,720 --> 00:38:20,460 >> Làm thế nào? 863 00:38:20,460 --> 00:38:22,060 Vâng, đây là dấu nhắc. 864 00:38:22,060 --> 00:38:23,610 Dưới đây là những nhận của int. 865 00:38:23,610 --> 00:38:25,984 Và dựa trên trước hành vi, nó có vẻ như get int 866 00:38:25,984 --> 00:38:29,080 là đủ thông minh để đảm bảo rằng những con người hợp tác và cung cấp cho nó 867 00:38:29,080 --> 00:38:30,090 một số nguyên. 868 00:38:30,090 --> 00:38:32,270 Nhưng bây giờ chúng ta thấy điều này. 869 00:38:32,270 --> 00:38:33,740 Và đây là gợi nhớ của Scratch. 870 00:38:33,740 --> 00:38:36,140 Tôi khẳng định rằng tôi là phân tích đầu vào của người dùng, 871 00:38:36,140 --> 00:38:39,050 nhưng hơi thiếu chính xác. 872 00:38:39,050 --> 00:38:43,200 Và điều này dường như trong C là như thế nào chúng ta bày tỏ một nếu người nào khác, một chi nhánh, 873 00:38:43,200 --> 00:38:46,320 một ngã ba đường, nhưng tôi nói hơi không chính xác. 874 00:38:46,320 --> 00:38:50,470 Các lỗi trong chương trình này là gì? 875 00:38:50,470 --> 00:38:51,610 Về tiếp tục trở lại? 876 00:38:51,610 --> 00:38:52,223 Yeah. 877 00:38:52,223 --> 00:38:53,150 >> Đung [Không nghe thấy] zero. 878 00:38:53,150 --> 00:38:54,025 >> DAVID J. Malan: Yeah. 879 00:38:54,025 --> 00:38:57,630 Vì vậy, nếu tôi gõ bằng không, chúng ta hãy xem xét chính xác là trường hợp trường hợp, hoặc góc, 880 00:38:57,630 --> 00:38:58,450 nếu bạn sẽ. 881 00:38:58,450 --> 00:39:02,790 Vì vậy, nếu tôi gõ trong số không, mà của khối là sẽ rõ ràng lấy nó? 882 00:39:02,790 --> 00:39:04,660 Nếu hoặc những gì khác? 883 00:39:04,660 --> 00:39:07,340 Các khác, và nó sẽ nói, bạn đã chọn một số âm. 884 00:39:07,340 --> 00:39:10,476 Và quả thực, bằng không không phải là nghĩa là tích cực hay tiêu cực, 885 00:39:10,476 --> 00:39:11,850 và do đó sẽ là sai lầm. 886 00:39:11,850 --> 00:39:12,930 Đó sẽ là một lỗi. 887 00:39:12,930 --> 00:39:14,580 Vậy làm thế nào chúng ta có thể khắc phục điều này? 888 00:39:14,580 --> 00:39:16,360 Một người nào đó đã không bao giờ được lập trình trước? 889 00:39:16,360 --> 00:39:16,570 Bạn có muốn-- 890 00:39:16,570 --> 00:39:17,480 >> Đung [Không nghe thấy] 891 00:39:17,480 --> 00:39:17,990 >> DAVID J. Malan: rút lại? 892 00:39:17,990 --> 00:39:18,570 >> Đung [Không nghe thấy] 893 00:39:18,570 --> 00:39:18,930 >> DAVID J. Malan: Oh, bạn có? 894 00:39:18,930 --> 00:39:20,350 Một người nào đó đã không bao giờ được lập trình trước. 895 00:39:20,350 --> 00:39:21,750 Muốn thử tay của bạn tại này, trong màu áo đỏ? 896 00:39:21,750 --> 00:39:22,600 Nào lên. 897 00:39:22,600 --> 00:39:25,320 Oh yeah, đi trên lên, nếu bạn không nhớ. 898 00:39:25,320 --> 00:39:27,586 Vì vậy, chưa bao giờ được lập trình trước, tên của bạn là gì? 899 00:39:27,586 --> 00:39:28,210 Lauren: Lauren. 900 00:39:28,210 --> 00:39:29,626 DAVID J. Malan: Lauren, tất cả các quyền. 901 00:39:29,626 --> 00:39:31,150 Vì vậy, khắc phục lỗi này cho chúng tôi. 902 00:39:31,150 --> 00:39:35,070 Bạn đã không nhìn thấy C, có lẽ, và có lẽ không có ngôn ngữ khác. 903 00:39:35,070 --> 00:39:38,380 Vì vậy, sửa chữa chương trình này cho chúng ta. 904 00:39:38,380 --> 00:39:39,100 Nice to meet ya. 905 00:39:39,100 --> 00:39:39,615 Không áp lực. 906 00:39:39,615 --> 00:39:40,156 Lauren: Yeah. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> DAVID J. Malan: Nhưng một lần nữa, nếu điều này canh bạc diễn ra theo đúng kế hoạch, 909 00:39:46,270 --> 00:39:48,350 takeaway đây sẽ được, chỉ một lần nữa, để bắt đầu 910 00:39:48,350 --> 00:39:51,080 để nhận mẫu và suy ra từ cú pháp hiện có 911 00:39:51,080 --> 00:39:55,420 làm thế nào khác bạn có thể thể hiện chính mình, không có ý định chơi chữ, để 912 00:39:55,420 --> 00:39:58,410 để nắm bắt một số kịch bản bổ sung. 913 00:39:58,410 --> 00:39:59,603 Vì vậy, chúng tôi đang nói gì khác nếu. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf, tốt. 916 00:40:05,230 --> 00:40:09,120 Và thông báo với CS50 IDE, và IDE frankly-- 917 00:40:09,120 --> 00:40:11,110 là viết tắt của Integrated Môi trường phát triển. 918 00:40:11,110 --> 00:40:14,110 Nó chỉ là một cách nói một chương trình giúp chương trình bạn. 919 00:40:14,110 --> 00:40:16,779 Nó không thân thiện với người sử dụng những thứ như khi bạn gõ một dấu ngoặc đơn, 920 00:40:16,779 --> 00:40:18,320 nó tự động cho bạn khác. 921 00:40:18,320 --> 00:40:20,760 Các giả định được rằng bạn đang cuối cùng sẽ muốn gõ đó, 922 00:40:20,760 --> 00:40:22,400 và nó cũng không nó với dấu ngoặc kép. 923 00:40:22,400 --> 00:40:24,190 >> Vì vậy, tôi thích dòng 23. 924 00:40:24,190 --> 00:40:26,400 99% số đường có. 925 00:40:26,400 --> 00:40:29,920 Một người nào đó muốn kêu vang trong với một tip? 926 00:40:29,920 --> 00:40:31,420 Tôi nghe thấy dấu chấm phẩy từ khán giả. 927 00:40:31,420 --> 00:40:32,080 Tốt. 928 00:40:32,080 --> 00:40:33,260 Vì vậy, để hoàn thành đó. 929 00:40:33,260 --> 00:40:37,930 Và bây giờ, tôi chỉ có một ít sửng sốt với dòng 21. 930 00:40:37,930 --> 00:40:41,370 Làm thế nào để chúng tôi muốn bày tỏ điều này? 931 00:40:41,370 --> 00:40:43,370 Câu hỏi những gì chúng ta muốn để hỏi, bạn nghĩ sao? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Vì vậy, trước đây, chúng tôi hỏi những câu hỏi, nếu n là lớn hơn không, làm được điều này. 934 00:40:50,330 --> 00:40:51,870 Khác, làm điều đó. 935 00:40:51,870 --> 00:40:54,317 Vì vậy, chúng ta cần phải chọn một câu hỏi để hỏi ở đây. 936 00:40:54,317 --> 00:40:55,192 Đung [Không nghe thấy] 937 00:40:55,192 --> 00:40:56,530 DAVID J. Malan: Tốt. 938 00:40:56,530 --> 00:40:58,290 Vì vậy, nếu n bằng số không. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Tuyệt vời. 941 00:41:02,100 --> 00:41:03,080 Vì vậy, chúng ta hãy tạm dừng ở đây. 942 00:41:03,080 --> 00:41:04,850 Cảm ơn bạn rất nhiều vì đã bất chấp này. 943 00:41:04,850 --> 00:41:10,890 Hãy để tôi cung cấp cho bạn một chút cũng xứng đáng bóng căng thẳng, có lẽ có. 944 00:41:10,890 --> 00:41:11,900 Vì vậy, chúng tôi hầu như ở đó. 945 00:41:11,900 --> 00:41:14,790 Trong thực tế, Lauren, nếu bạn không tâm, hãy để tôi làm một tinh chỉnh ở đây, 946 00:41:14,790 --> 00:41:17,850 chỉ để phù hợp ngay cả với những gì chúng ta đã thấy trong Scratch, những gì 947 00:41:17,850 --> 00:41:21,080 Tôi muốn làm gì với dòng 21 và 24, chỉ một lần nữa dựa 948 00:41:21,080 --> 00:41:23,290 về cách chúng tôi đã làm điều này trong Scratch, có lẽ? 949 00:41:23,290 --> 00:41:24,230 >> Đung Di chuyển nó lên. 950 00:41:24,230 --> 00:41:25,605 >> DAVID J. Malan: Yeah, di chuyển nó lên. 951 00:41:25,605 --> 00:41:30,260 Vì vậy, các điều kiện khác, thứ ba, hoặc thứ tư, hay thứ năm, hoặc chi nhánh cuối cùng, 952 00:41:30,260 --> 00:41:34,100 thực sự nên đến sau, và đó chỉ là theo quy ước, 953 00:41:34,100 --> 00:41:36,047 chỉ bởi vì nếu bạn sẽ. 954 00:41:36,047 --> 00:41:37,380 Vì vậy, tôi cần phải thực hiện việc điều chỉnh này. 955 00:41:37,380 --> 00:41:39,660 Và tôi cần phải đặt của tôi ngoặc móc trở lại đây. 956 00:41:39,660 --> 00:41:42,700 Và bây giờ, chương trình này sẽ được biên dịch. 957 00:41:42,700 --> 00:41:46,140 Chúng tôi rất gần, nhưng có một lỗi rất, rất tinh tế. 958 00:41:46,140 --> 00:41:47,200 Hãy xem những gì sẽ xảy ra. 959 00:41:47,200 --> 00:41:49,660 >> Đầu tiên, hãy để tôi đi trước và thu nhỏ. 960 00:41:49,660 --> 00:41:53,405 Tôi sẽ đi trước và gõ làm cho tình trạng zero. 961 00:41:53,405 --> 00:41:55,070 Oh, tôi nói dối. 962 00:41:55,070 --> 00:41:58,760 Bây giờ các trình biên dịch là thực sự là khá thông minh. 963 00:41:58,760 --> 00:42:00,950 Và tôi thực sự không hiểu nó thông báo lỗi. 964 00:42:00,950 --> 00:42:04,310 Sử dụng các kết quả của một bài tập như một điều kiện không có dấu ngoặc, 965 00:42:04,310 --> 00:42:05,740 rõ ràng là xấu. 966 00:42:05,740 --> 00:42:07,100 Nhưng điều đó có nghĩa gì? 967 00:42:07,100 --> 00:42:10,860 >> Vâng một lần nữa, tìm kiếm mô hình trong code mà chúng ta đã thấy trước đây, 968 00:42:10,860 --> 00:42:16,640 là những gì dòng 17 thực sự làm, mặc dù Lauren dành hơi 969 00:42:16,640 --> 00:42:18,790 nếu không? 970 00:42:18,790 --> 00:42:19,290 Yeah. 971 00:42:19,290 --> 00:42:21,565 >> Đung [Không nghe thấy] 972 00:42:21,565 --> 00:42:22,440 DAVID J. Malan: Yeah. 973 00:42:22,440 --> 00:42:26,610 Vì vậy, hãy nhớ các dấu bằng, rõ ràng như chúng ta đã sử dụng nó trước, là không công bằng. 974 00:42:26,610 --> 00:42:29,240 Phân công của nó, từ phải sang trái. 975 00:42:29,240 --> 00:42:33,810 Vì vậy, dòng 17 tại thời điểm này là một điều kiện, và nó 976 00:42:33,810 --> 00:42:37,890 thực thi mã bên trong dấu ngoặc đơn, nhưng khi mã thực thi, 977 00:42:37,890 --> 00:42:42,140 những gì đang xảy ra với giá trị của số không? 978 00:42:42,140 --> 00:42:45,250 Điều gì đang xảy ra với các giá trị của n? 979 00:42:45,250 --> 00:42:46,810 Trở thành zero. 980 00:42:46,810 --> 00:42:50,520 Vì vậy, nếu n đang trở thành số không, và một lần nữa, như mỗi cuối tuần, 981 00:42:50,520 --> 00:42:54,690 chúng ta thường nói không mà là sai lầm và một là sự thật, 982 00:42:54,690 --> 00:42:57,410 hoặc có chỉ là một và không là số không. 983 00:42:57,410 --> 00:42:59,590 Vì vậy, đúng và sai, một và 0. 984 00:42:59,590 --> 00:43:06,090 Nếu n là số dòng 17 đã được cho giá trị 0, là số không đúng? 985 00:43:06,090 --> 00:43:06,590 Không. 986 00:43:06,590 --> 00:43:08,280 Theo định nghĩa, không sai. 987 00:43:08,280 --> 00:43:10,860 Đó là ước chúng tôi sẽ bám vào di chuyển về phía trước. 988 00:43:10,860 --> 00:43:17,320 Vì vậy, sẽ dòng 18, 19, và 20 bao giờ áp dụng với doanh nghiệp, hợp lý? 989 00:43:17,320 --> 00:43:18,320 Họ có thể không. 990 00:43:18,320 --> 00:43:21,640 Vì vậy, chúng tôi hỏi những câu hỏi nhưng không hoàn toàn chính xác, 991 00:43:21,640 --> 00:43:25,620 và bạn sẽ không biết điều này trừ khi bạn đã nhìn thấy nó, các giải pháp trong C 992 00:43:25,620 --> 00:43:29,610 là khi bạn muốn bày tỏ bình đẳng, bạn nói equals bằng. 993 00:43:29,610 --> 00:43:33,140 Vì vậy, dấu bằng đã được sử dụng hết bằng cách chuyển nhượng, từ phải sang trái. 994 00:43:33,140 --> 00:43:35,110 Bằng bằng phương tiện bằng. 995 00:43:35,110 --> 00:43:37,950 Và nếu bạn thực sự muốn tâm trí của bạn bị bẻ cong, trong JavaScript và PHP, 996 00:43:37,950 --> 00:43:40,490 có bằng tương đương với bằng, mà có nghĩa là một cái gì đó khác hoàn toàn, 997 00:43:40,490 --> 00:43:41,990 nhưng chúng tôi sẽ nhận được để mà chẳng bao lâu. 998 00:43:41,990 --> 00:43:45,760 >> Vì vậy, đây là một sửa chữa đơn giản, nhưng nhận ra siêu dễ dàng để làm cho sai lầm này, 999 00:43:45,760 --> 00:43:48,700 và sau đó tự hỏi và đấu tranh phút, nếu không phải là một giờ, 1000 00:43:48,700 --> 00:43:51,490 tại sao là mã của tôi không thực hiện như tôi mong muốn? 1001 00:43:51,490 --> 00:43:54,140 Đó là bởi vì bạn không biết nó chính xác những gì bạn muốn nói. 1002 00:43:54,140 --> 00:43:56,450 Vì vậy, đó là gần như hoàn hảo, và nó là tuyệt vời 1003 00:43:56,450 --> 00:44:00,760 mà chúng tôi tình cờ gặp hai ít những điều bởi vì bây giờ nếu chúng ta sửa chữa chúng, 1004 00:44:00,760 --> 00:44:06,240 và tôi làm cho tình trạng không dot giảm tình trạng không, 1005 00:44:06,240 --> 00:44:07,490 Tôi muốn xin một số nguyên. 1006 00:44:07,490 --> 00:44:08,090 Hãy xem. 1007 00:44:08,090 --> 00:44:09,160 Không. 1008 00:44:09,160 --> 00:44:10,740 Nó sẽ buộc tôi phải làm điều đó. 1009 00:44:10,740 --> 00:44:11,990 Vì vậy, 42. 1010 00:44:11,990 --> 00:44:13,590 Tôi đã chọn một số dương. 1011 00:44:13,590 --> 00:44:16,470 Vì vậy, bây giờ làm thế nào để tôi chứng minh Chương trình này có đúng không? 1012 00:44:16,470 --> 00:44:19,990 Nếu bạn là một nhà toán học, bạn có thể không thực sự chứng minh điều này bằng cách thử và sai, 1013 00:44:19,990 --> 00:44:20,490 phải không? 1014 00:44:20,490 --> 00:44:23,180 Bạn có thể không chỉ chứng minh bằng Ví dụ, nhưng ít nhất 1015 00:44:23,180 --> 00:44:25,494 như một lập trình chúng tôi không sẽ cố gắng để chứng minh cho doanh nghiệp 1016 00:44:25,494 --> 00:44:27,660 rằng đây thực sự chính xác, nhưng tôi nên có lẽ 1017 00:44:27,660 --> 00:44:29,470 kiểm tra một số trường hợp người đại diện. 1018 00:44:29,470 --> 00:44:31,070 >> Tôi đã thử nghiệm 42. 1019 00:44:31,070 --> 00:44:33,030 Tôi có thể kiểm tra 43. 1020 00:44:33,030 --> 00:44:34,910 Tôi có thể kiểm tra 44. 1021 00:44:34,910 --> 00:44:35,640 Kiểm tra 45. 1022 00:44:35,640 --> 00:44:36,140 Phải không? 1023 00:44:36,140 --> 00:44:37,860 Nhưng tôi có thể làm điều này trong một thời gian rất dài. 1024 00:44:37,860 --> 00:44:39,925 Điều gì sẽ là một số chi tiết trường hợp thú vị để thử? 1025 00:44:39,925 --> 00:44:41,050 Đung [Không nghe thấy] zero. 1026 00:44:41,050 --> 00:44:41,740 DAVID J. Malan: Vì vậy, bằng không. 1027 00:44:41,740 --> 00:44:42,297 Chắc chắn. 1028 00:44:42,297 --> 00:44:44,880 Và tốt, chúng tôi đã có thời gian này, nhờ mã mới của Lauren. 1029 00:44:44,880 --> 00:44:46,213 Một trường hợp tốt để thử là gì? 1030 00:44:46,213 --> 00:44:47,320 Đung một tiêu cực. 1031 00:44:47,320 --> 00:44:50,070 >> DAVID J. Malan: một Negative, và có lẽ một cái gì đó lớn hơn một chút, 1032 00:44:50,070 --> 00:44:52,617 như vậy có lẽ tiêu cực 42, nhưng nói chung, khi 1033 00:44:52,617 --> 00:44:54,450 thử nghiệm các chương trình của bạn di chuyển về phía trước, bạn 1034 00:44:54,450 --> 00:44:56,325 sẽ muốn suy nghĩ cho chính mình, giống như những gì 1035 00:44:56,325 --> 00:44:58,050 là những trường hợp khác nhau cơ bản. 1036 00:44:58,050 --> 00:45:01,720 Và tôi dám nói một trường hợp tiêu cực, một trường hợp dương tính, và một trường hợp không 1037 00:45:01,720 --> 00:45:03,365 khá nhiều đạn này ra ngoài. 1038 00:45:03,365 --> 00:45:04,990 Chúng ta hãy nhìn vào một biến thể của mặc dù điều này. 1039 00:45:04,990 --> 00:45:06,930 Điều kiện một. 1040 00:45:06,930 --> 00:45:11,224 Đây là một giải pháp chính xác ở đây, do đó bạn sẽ thấy hai và trực tuyến, 1041 00:45:11,224 --> 00:45:13,390 nếu bạn đi bộ qua walkthrough, sẽ thường 1042 00:45:13,390 --> 00:45:18,090 tăng các bậc thang cho đến khi chúng tôi có được chính xác cách tiếp cận đúng. 1043 00:45:18,090 --> 00:45:20,070 Điều gì nếu chúng tôi muốn hỏi hai câu hỏi cùng một lúc? 1044 00:45:20,070 --> 00:45:22,200 >> Hãy để tôi mở ra để thay thế. 1045 00:45:22,200 --> 00:45:26,740 Non-switch, vì những lý do chúng ta sẽ thấy một thời điểm khác. 1046 00:45:26,740 --> 00:45:29,610 Có gì mới cú pháp ở đây? 1047 00:45:29,610 --> 00:45:32,760 Tôi hiện đang chơi một trò chơi nơi mà máy tính là nói 1048 00:45:32,760 --> 00:45:35,550 tôi, cho tôi một số nguyên từ một đến 10, 1049 00:45:35,550 --> 00:45:37,180 và sau đó tôi đánh giá đầu vào của người dùng. 1050 00:45:37,180 --> 00:45:39,180 Trong tiếng Anh, dựa trên mã bạn nhìn thấy ở đây 1051 00:45:39,180 --> 00:45:41,530 trong xanh, những gì được chương trình này đang làm gì? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 Đung [Không nghe thấy] chọn một số lớn hay nhỏ. 1054 00:45:46,380 --> 00:45:46,484 DAVID J. Malan: Yeah. 1055 00:45:46,484 --> 00:45:49,450 Nó chỉ xét xử xem Tôi chọn một lớn, hoặc trung bình, 1056 00:45:49,450 --> 00:45:53,900 hoặc số lượng nhỏ dựa trên rất định nghĩa độc đoán của nhỏ, trung bình, 1057 00:45:53,900 --> 00:45:58,510 và lớn ở đây, nhưng thông báo cú pháp đó mới là điều này. 1058 00:45:58,510 --> 00:46:02,340 Có không ít hơn int hoặc bằng đăng nhập, hoặc lớn hơn hay bằng, 1059 00:46:02,340 --> 00:46:05,430 đang ở đâu trong khác, mà bạn có thể diễn tả trong như Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Vì vậy, trong một ngôn ngữ lập trình bạn thường chỉ cần làm hai nhân vật, 1061 00:46:08,180 --> 00:46:09,450 một sau khi khác. 1062 00:46:09,450 --> 00:46:12,695 Và những gì hiện này có lẽ đại diện, dấu và ký hiệu. 1063 00:46:12,695 --> 00:46:13,570 Đung [Không nghe thấy] 1064 00:46:13,570 --> 00:46:13,680 DAVID J. Malan: Yeah. 1065 00:46:13,680 --> 00:46:16,910 Nó chỉ có nghĩa và bởi vì nó chỉ ra rằng các tác giả của C 1066 00:46:16,910 --> 00:46:19,120 sử dụng một ký hiệu duy nhất, mà bạn có thể nghĩ 1067 00:46:19,120 --> 00:46:22,430 sẽ là hoàn hảo cho các khái niệm của và, đã được sử dụng hết, 1068 00:46:22,430 --> 00:46:27,300 dấu và ký hiệu như vậy thực sự nắm bắt được những trường hợp chúng tôi thực sự muốn. 1069 00:46:27,300 --> 00:46:30,610 >> Vì vậy, bây giờ chúng ta vấp ngã trên hai điều. 1070 00:46:30,610 --> 00:46:32,640 Hãy để tôi đi trước và mở một. 1071 00:46:32,640 --> 00:46:36,590 Cái gì mà là một chút đáng lo ngại. 1072 00:46:36,590 --> 00:46:37,970 Thiếu chính xác dot c. 1073 00:46:37,970 --> 00:46:40,260 Hãy để tôi giới thiệu hai điều ở đây. 1074 00:46:40,260 --> 00:46:44,720 Một, thông báo rằng chúng tôi có thể làm toán học, như chỉ là trước khi 1075 00:46:44,720 --> 00:46:47,797 chúng tôi đã làm cộng của hai số, x và y. 1076 00:46:47,797 --> 00:46:49,380 Được chương trình này dường như đang làm gì? 1077 00:46:49,380 --> 00:46:52,140 Tôi đã không nhận xét được chưa, và tôi đã giới thiệu phần trăm f, 1078 00:46:52,140 --> 00:46:55,720 nhưng tôi nhanh chóng nói trước đó phần trăm f có nghĩa là dấu chấm động 1079 00:46:55,720 --> 00:46:56,970 giá trị, đó là số thực. 1080 00:46:56,970 --> 00:46:59,520 Một cái gì đó với một số thập phân điểm, đó không phải là một số nguyên. 1081 00:46:59,520 --> 00:47:02,270 Bạn nghĩ gì về chương trình này là cố gắng cho tôi thấy trên màn hình? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Yeah? 1084 00:47:06,050 --> 00:47:07,550 Đung Kết quả của một trong hơn 10. 1085 00:47:07,550 --> 00:47:07,780 DAVID J. Malan: Yeah. 1086 00:47:07,780 --> 00:47:09,680 Kết quả của một chia cho 10 là gì. 1087 00:47:09,680 --> 00:47:12,721 Đúng, bởi vì tất cả các bạn có thể lớn lên và biết rằng một trong hơn 10 1088 00:47:12,721 --> 00:47:14,502 là gì? 1089 00:47:14,502 --> 00:47:16,220 Yeah, nó chỉ là 1/10 hoặc 0.1. 1090 00:47:16,220 --> 00:47:16,720 Phải không? 1091 00:47:16,720 --> 00:47:19,010 Vì vậy, chúng ta hãy xem những gì là thực sự. 1092 00:47:19,010 --> 00:47:21,010 Vì vậy, hãy để tôi đi trước và lưu này. 1093 00:47:21,010 --> 00:47:21,970 Hãy để tôi đi xuống đây. 1094 00:47:21,970 --> 00:47:26,360 Hãy thiếu chính xác dấu chấm dấu gạch chéo không chính xác, và thông báo, quá, 1095 00:47:26,360 --> 00:47:29,380 trong một môi trường Linux, bạn không phải loại ra thiếu chính xác và mất 1096 00:47:29,380 --> 00:47:30,010 tất cả các ngày dài. 1097 00:47:30,010 --> 00:47:32,910 Đó là nói chung, nếu bạn nhấn Tab, nó sẽ kết thúc suy nghĩ của bạn cho bạn, 1098 00:47:32,910 --> 00:47:36,660 dựa trên các từ được có sẵn trong thư mục hiện hành. 1099 00:47:36,660 --> 00:47:37,160 ĐƯỢC. 1100 00:47:37,160 --> 00:47:37,970 Vì vậy, bạn đã đúng. 1101 00:47:37,970 --> 00:47:41,239 Một chia cho 10, trong thực tế, 0.1. 1102 00:47:41,239 --> 00:47:42,280 Nhưng tôi là một chút tò mò. 1103 00:47:42,280 --> 00:47:44,196 Và hóa ra printf hỗ trợ một số tính năng 1104 00:47:44,196 --> 00:47:48,700 nhờ đó mà bạn có thể chỉ định nhiều hơn số mặc định của điểm thập phân. 1105 00:47:48,700 --> 00:47:52,140 Vì vậy, nếu tôi muốn nhìn thấy 10 chữ số thập phân điểm tôi có thể làm phần trăm, 1106 00:47:52,140 --> 00:47:55,510 cho biểu tượng giữ chỗ, chấm 10 cho, cho tôi 10 điểm thập phân, 1107 00:47:55,510 --> 00:47:58,140 và sau đó vẫn còn dấu chấm động giá trị, và, như một sang một bên, 1108 00:47:58,140 --> 00:48:01,550 backslash n này là gì dường như chúng tôi tiếp tục sử dụng? 1109 00:48:01,550 --> 00:48:03,450 Hóa ra đó là một biểu tượng cho một dòng mới. 1110 00:48:03,450 --> 00:48:05,970 Đó là cách rất rõ ràng nói đến máy tính, 1111 00:48:05,970 --> 00:48:08,759 di chuyển con trỏ đến tiếp theo dòng sau khi bạn đã hoàn tất. 1112 00:48:08,759 --> 00:48:10,800 Và chúng ta sẽ thấy những gì xảy ra khi chúng ta không làm điều đó. 1113 00:48:10,800 --> 00:48:12,430 >> Hãy để tôi làm biên dịch lại thiếu chính xác. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Bây giờ chấm giảm sự thiếu chính xác. 1116 00:48:18,356 --> 00:48:18,930 ĐƯỢC. 1117 00:48:18,930 --> 00:48:19,780 Vẫn đúng. 1118 00:48:19,780 --> 00:48:21,512 Một chia cho 10. 1119 00:48:21,512 --> 00:48:23,220 Bây giờ tôi nhận được một chút tò mò, mặc dù. 1120 00:48:23,220 --> 00:48:27,599 Điều gì nếu tôi nhìn 20 chữ số thập phân chỉ ra, biên dịch lại, chạy lại, 1121 00:48:27,599 --> 00:48:29,390 và như là một dành cho tốc độ, bạn cũng có thể sử dụng 1122 00:48:29,390 --> 00:48:31,800 lên và xuống mũi tên để di chuyển qua lịch sử của bạn, 1123 00:48:31,800 --> 00:48:35,476 vì vậy bạn không cần phải giữ gõ lại các lệnh này, nhập. 1124 00:48:35,476 --> 00:48:36,910 Huh. 1125 00:48:36,910 --> 00:48:39,220 Tôi đã không biết rằng ở trường lớp. 1126 00:48:39,220 --> 00:48:43,260 Được rồi, vậy cho tôi xem như 29 địa điểm ra ngoài. 1127 00:48:43,260 --> 00:48:44,300 Có lẽ nó chỉ là một sự may mắn. 1128 00:48:44,300 --> 00:48:46,907 Có thể máy tính của tôi là hành động kỳ lạ. 1129 00:48:46,907 --> 00:48:47,990 Đó không phải là một điều, phải không? 1130 00:48:47,990 --> 00:48:50,300 Nó đang làm một cái gì đó deterministically. 1131 00:48:50,300 --> 00:48:53,410 Vì vậy, làm cho sự thiếu chính xác. 1132 00:48:53,410 --> 00:48:54,890 OK, đó là điều sai lầm. 1133 00:48:54,890 --> 00:48:57,620 Vì vậy, những gì đang xảy ra? 1134 00:48:57,620 --> 00:49:00,160 >> Vì vậy, rõ ràng của bạn giáo viên đã được nói dối 1135 00:49:00,160 --> 00:49:03,900 cho bạn tất cả các thời gian này cho lý do mà chúng ta sẽ thấy trước khi dài. 1136 00:49:03,900 --> 00:49:05,569 Nhưng chúng ta hãy kết thúc bằng một chương trình khác. 1137 00:49:05,569 --> 00:49:07,860 Đây là một chương trình nhỏ ai đó đã viết một số năm trước đây, 1138 00:49:07,860 --> 00:49:08,990 và nó thực sự là một phần của một cuộc thi. 1139 00:49:08,990 --> 00:49:11,198 Không ai thực sự viết code như thế này, và nếu bạn làm thế, 1140 00:49:11,198 --> 00:49:12,880 đây là phong cách là một vấn đề. 1141 00:49:12,880 --> 00:49:14,660 Nhưng người làm điều này cho quyền khoe khoang. 1142 00:49:14,660 --> 00:49:17,260 Để viết khó hiểu nhất tìm chương trình đó 1143 00:49:17,260 --> 00:49:19,110 dù sao cũng làm một cái gì đó thú vị. 1144 00:49:19,110 --> 00:49:23,930 Và lưu ý tôi nghĩ chúng ta sẽ để lại trên ngày hôm nay, trước khi Colton lượt chúng ta ra khỏi đây, 1145 00:49:23,930 --> 00:49:27,840 là để chạy chương trình này, trong đó, thậm chí chỉ trong sử dụng 1146 00:49:27,840 --> 00:49:31,450 C trong này dựa text- môi trường, cho chúng ta này. 1147 00:49:31,450 --> 00:49:32,264 Chết tiệt. 1148 00:49:32,264 --> 00:49:34,930 >> [Cười] 1149 00:49:34,930 --> 00:49:36,800 >> Stand by. 1150 00:49:36,800 --> 00:49:39,340 [Không nghe thấy] c dash l m. 1151 00:49:39,340 --> 00:49:42,885 Bạn sẽ nhìn thấy những phép thuật câu thần chú mà chúng ta sẽ thấy trước khi dài. 1152 00:49:42,885 --> 00:49:45,780 [Không nghe thấy] Tất cả các quyền. 1153 00:49:45,780 --> 00:49:51,592 Và bây giờ bạn có thể thậm chí làm những việc như thế này. 1154 00:49:51,592 --> 00:49:52,340 Đó là nó. 1155 00:49:52,340 --> 00:49:56,410 Đối với CS50 chúng tôi, sẽ nhìn thấy bạn vào thứ sáu. 1156 00:49:56,410 --> 00:49:58,910 >> [MUSIC CHƠI] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [Vỗ tay] 1159 00:52:41,440 --> 00:52:42,812