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