1 00:00:07,830 --> 00:00:12,200 [Powered by Google Translate] DAVID Malan: Đây là CS50, và đây là sự bắt đầu của Tuần 1. 2 00:00:12,200 --> 00:00:15,520 Những gì chúng tôi nghĩ rằng chúng tôi muốn làm là nhìn lại 3 00:00:15,520 --> 00:00:18,290 một cái gì đó nhiều người trong các bạn có thể đi ngang qua đối với một số 4 00:00:18,290 --> 00:00:20,570 Hiện tại và có thể nhìn một chút quen thuộc. 5 00:00:20,570 --> 00:00:23,720 Điều này ở đây, điều này tất nhiên là trong - 6 00:00:23,720 --> 00:00:24,155 Khán giả: Khoa học. 7 00:00:24,155 --> 00:00:26,030 DAVID Malan: Khoa học trung tâm. 8 00:00:26,030 --> 00:00:28,940 Vì vậy, đây thực sự là một trong những máy tính đầu tiên 9 00:00:28,940 --> 00:00:30,220 sao từ những năm 1940. 10 00:00:30,220 --> 00:00:33,790 Đó là một trong những máy tính điện đầu tiên 11 00:00:33,790 --> 00:00:35,730 đó là có khả năng đặc biệt dài, 12 00:00:35,730 --> 00:00:38,450 tính toán tự duy trì, và những gì chúng tôi thực sự nhìn thấy trong 13 00:00:38,450 --> 00:00:41,580 trung tâm khoa học chỉ là đôi chút về điều này. 14 00:00:41,580 --> 00:00:44,170 Những gì chúng tôi nghĩ rằng chúng tôi muốn làm sau đó là hãy xem lại video 15 00:00:44,170 --> 00:00:46,670 đã được thực hiện một số thời gian trước đây, giới thiệu này 16 00:00:46,670 --> 00:00:47,520 điều thế giới. 17 00:00:47,520 --> 00:00:50,200 Và bạn sẽ thấy từ âm nhạc và giọng nói đó thực sự là những 18 00:00:50,200 --> 00:00:52,070 là thời gian rất hạnh phúc. 19 00:00:54,885 --> 00:00:59,700 >> [VIDEO PLAYBACK] 20 00:00:59,700 --> 00:01:02,490 -A chiến thắng của kỹ năng toán học và cơ học này 21 00:01:02,490 --> 00:01:06,340 mới tự động máy tính tại Đại học Harvard. 22 00:01:06,340 --> 00:01:08,620 Vấn đề phức tạp trong toán học, thông qua các 23 00:01:08,620 --> 00:01:12,420 máy ở dạng mã hóa trên băng, chính xác giải quyết trong một 24 00:01:12,420 --> 00:01:15,200 phút phần của thời gian cần thiết cho con người 25 00:01:15,200 --> 00:01:16,450 tính toán. 26 00:01:27,050 --> 00:01:30,600 Được thiết kế để tiến hành tất cả các hình thức của toán học và khoa học 27 00:01:30,600 --> 00:01:34,610 nghiên cứu cơ khí, gã khổng lồ não sẽ làm việc cho Hoa 28 00:01:34,610 --> 00:01:36,570 States Navy cho đến khi chiến tranh kết thúc. 29 00:01:50,280 --> 00:01:52,980 >> DAVID Malan: Vì vậy, những gì bạn có thể không biết rằng đó là 30 00:01:52,980 --> 00:01:56,310 thiết bị này là một thuật ngữ tất cả chúng ta bây giờ có khá nhiều 31 00:01:56,310 --> 00:01:59,300 cho là đương nhiên được đặt ra, đó là một lỗi. 32 00:01:59,300 --> 00:02:01,140 Vì vậy, một trong những kỹ sư làm việc trong máy tính này 33 00:02:01,140 --> 00:02:05,280 nghĩa là tìm thấy một con bướm đêm nhỏ trong máy mà kết quả 34 00:02:05,280 --> 00:02:07,580 trong một số tính toán không chính xác. 35 00:02:07,580 --> 00:02:10,410 Và khi câu chuyện đi sâu bướm đã được ghi âm sẵn để đăng nhập này 36 00:02:10,410 --> 00:02:14,180 ở báo này, từ ngày 9 tháng 9 trong một cái gì đó-1940, 37 00:02:14,180 --> 00:02:16,550 và do đó đã được sinh ra cho thế giới thuật ngữ "lỗi". 38 00:02:16,550 --> 00:02:19,880 Vì vậy, từ nay trở đi chúng ta xem xét lỗi là bất kỳ loại sai lầm trong 39 00:02:19,880 --> 00:02:23,290 các chương trình, cho dù con người tạo ra hoặc trong trường hợp này, côn trùng. 40 00:02:23,290 --> 00:02:25,030 >> Vì vậy, một vài thông báo, như chúng ta tiến hành. 41 00:02:25,030 --> 00:02:29,160 Vì vậy, CS50 có truyền thống cung cấp bữa ăn trưa của các loại 42 00:02:29,160 --> 00:02:31,600 hầu hết các thứ Sáu trong học kỳ, nơi chúng tôi mất 30 43 00:02:31,600 --> 00:02:34,650 40 sinh viên Fire và Ice tại Quảng trường cho chơi game ngẫu nhiên 44 00:02:34,650 --> 00:02:36,390 chuyện tán gẫu, nói chuyện về khoa học máy tính, 45 00:02:36,390 --> 00:02:37,420 nói về tương lai. 46 00:02:37,420 --> 00:02:40,000 Chúng tôi mời các cựu sinh viên và bạn bè từ ngành công nghiệp trò chuyện 47 00:02:40,000 --> 00:02:40,690 sinh viên là tốt. 48 00:02:40,690 --> 00:02:44,020 Thực sự hướng tới một kết thúc làm cho một lớp học khá lớn là những gì 49 00:02:44,020 --> 00:02:46,740 tất cả các thân mật hơn, ít nhất là một lần trong thời gian cho 50 00:02:46,740 --> 00:02:47,710 tập hợp con của học sinh. 51 00:02:47,710 --> 00:02:50,940 Vì vậy, nếu bạn muốn tham gia với chúng tôi vào thứ sáu này, 1:15 PM, đi đến 52 00:02:50,940 --> 00:02:53,340 CS50.net/lunch RSVP. 53 00:02:53,340 --> 00:02:55,840 Và chúng tôi sẽ làm điều này recurringly, do đó, không phải lo lắng nếu bạn không 54 00:02:55,840 --> 00:02:57,930 những người đầu tiên 30 hay như vậy trong tuần này. 55 00:02:57,930 --> 00:02:59,070 >> Vì vậy, ghi chú ghi chép. 56 00:02:59,070 --> 00:03:01,500 Một từ trên các nguồn tài nguyên mà bây giờ sẽ bắt đầu được có sẵn 57 00:03:01,500 --> 00:03:03,040 học sinh trong lớp. 58 00:03:03,040 --> 00:03:05,540 Vì vậy, mà người đứng đầu của bạn không cần phải được trong quá trình giảng dạy 59 00:03:05,540 --> 00:03:08,560 scribbling xuống tất cả những gì tôi nói và vân vân, những gì chúng tôi làm 60 00:03:08,560 --> 00:03:10,765 thay vào đó là cung cấp đội ngũ giáo viên 61 00:03:10,765 --> 00:03:11,920 kinh điển tập hợp các ghi chú. 62 00:03:11,920 --> 00:03:14,850 Vì vậy, chúng tôi có một nghiên cứu sinh giảng dạy của chúng tôi, Andrew Sellergren, 63 00:03:14,850 --> 00:03:17,830 người ngồi xuống mỗi tuần, đánh giá các đoạn video, và sau đó 64 00:03:17,830 --> 00:03:19,730 viết xuống những gì chúng ta nghĩ là một cách khá 65 00:03:19,730 --> 00:03:21,840 có thẩm quyền thiết lập các ghi chú. 66 00:03:21,840 --> 00:03:24,180 Và Andrew thích, cũng được, đặt chú thích snarky 67 00:03:24,180 --> 00:03:24,820 phía dưới. 68 00:03:24,820 --> 00:03:27,300 Vì vậy, bạn hy vọng sẽ tận hưởng những như là một cuốn sách tham khảo 69 00:03:27,300 --> 00:03:30,230 vui vẻ, và cũng có thể, đến bài kiểm tra thời gian, như một cơ hội để xem xét 70 00:03:30,230 --> 00:03:31,830 những gì đã xảy ra trong các bài giảng cá nhân. 71 00:03:31,830 --> 00:03:33,580 Vì vậy, những liên kết trên trang bài giảng. 72 00:03:33,580 --> 00:03:35,300 >> Trong khi đó, vấn đề thiết lập 0. 73 00:03:35,300 --> 00:03:37,470 Và về các nguồn tài nguyên có sẵn cho bạn - 74 00:03:37,470 --> 00:03:38,020 trình thực hiện. 75 00:03:38,020 --> 00:03:39,730 Milo dẫn đầu tiên vào thứ sáu. 76 00:03:39,730 --> 00:03:41,470 Nó được quay, đưa lên mạng vào thứ Bảy. 77 00:03:41,470 --> 00:03:44,030 Và do đó nhận ra, nếu bạn không thực sự chắc chắn bắt đầu từ đâu, 78 00:03:44,030 --> 00:03:47,280 cho hay trong tương lai p-bộ, luôn luôn biến đầu tiên 79 00:03:47,280 --> 00:03:49,300 hướng hoặc video đó. 80 00:03:49,300 --> 00:03:52,950 Sectioning là trong tiến trình, tại cs50.net/section là nơi bạn 81 00:03:52,950 --> 00:03:54,540 phải nộp sở thích của bạn, nếu bạn chưa có 82 00:03:54,540 --> 00:03:55,880 đã có, bởi ngày hôm nay. 83 00:03:55,880 --> 00:03:58,140 Bởi vì phần sẽ bắt đầu vào chủ nhật tới, Thứ Hai, 84 00:03:58,140 --> 00:03:58,760 và thứ Ba. 85 00:03:58,760 --> 00:04:02,470 Chúng tôi làm phần ba ngày, mỗi tuần của 86 00:04:02,470 --> 00:04:03,870 học kỳ cho hầu hết các phần. 87 00:04:03,870 --> 00:04:06,600 Và chúng tôi cũng giới thiệu, một lần nữa, bài hát khác nhau. 88 00:04:06,600 --> 00:04:08,270 Vì vậy, bạn sẽ được hỏi về hình thức phân đoạn này, nếu bạn 89 00:04:08,270 --> 00:04:10,350 đã không nhìn thấy nó đã có, nếu bạn đang ở trong số những người ít 90 00:04:10,350 --> 00:04:12,800 thoải mái, thoải mái hơn, hoặc một nơi nào đó ở giữa. 91 00:04:12,800 --> 00:04:14,960 Và nếu bạn đang sắp xếp trên hàng rào, nói chung một nơi nào đó trong 92 00:04:14,960 --> 00:04:18,160 giữa những gì là hầu hết sinh viên kết thúc kiểm tra. 93 00:04:18,160 --> 00:04:19,579 Giờ làm việc bắt đầu đêm nay. 94 00:04:19,579 --> 00:04:23,020 >> Vì vậy, Scratch là phím khá thấp, mặc dù nó hoàn toàn tự nhiên 95 00:04:23,020 --> 00:04:25,300 chạy vào các lỗi khác nhau, hoặc không chắc chắn như thế nào để 96 00:04:25,300 --> 00:04:26,550 thực hiện cái gì. 97 00:04:26,550 --> 00:04:28,880 Vì vậy, nhận ra rằng chúng tôi sẽ bắt đầu giờ làm việc trong tuần này. 98 00:04:28,880 --> 00:04:30,500 Họ sẽ ở Annenberg Thứ hai, ba, tư, 99 00:04:30,500 --> 00:04:34,300 Thứ năm, từ 8:00 PM đến 11:00 PM trong thời gian nghỉ não. 100 00:04:34,300 --> 00:04:38,160 Classmen trên có thể nhận được trong, và nếu bạn đã bao giờ gặp khó khăn khi nhận được 101 00:04:38,160 --> 00:04:40,720 trong cửa, bởi vì họ sẽ được swiping, chỉ nói theo cách của bạn 102 00:04:40,720 --> 00:04:42,560 và giải thích bạn với CS50. 103 00:04:42,560 --> 00:04:45,230 Thông thường 20 đến 30 của chúng tôi về nhân viên sẽ ở đó để giúp đỡ 104 00:04:45,230 --> 00:04:46,190 một ngày một. 105 00:04:46,190 --> 00:04:48,980 >> Khi đến ý tưởng là điều này: bạn sẽ mang lại cho máy tính xách tay của bạn, 106 00:04:48,980 --> 00:04:51,300 bạn sẽ có bộ sạc của bạn, chúng tôi sẽ có thêm dây điện, 107 00:04:51,300 --> 00:04:53,320 đặc biệt là dọc theo bức tường phía nam của Annenberg nơi 108 00:04:53,320 --> 00:04:55,080 có rất nhiều cửa hàng điện. 109 00:04:55,080 --> 00:04:59,290 Và điểm vào chính giờ Q & A là để đi đến 110 00:04:59,290 --> 00:05:01,690 cs50.net/discuss và để gửi 111 00:05:01,690 --> 00:05:02,580 câu hỏi của bạn ở đó. 112 00:05:02,580 --> 00:05:05,600 Và để gắn nhãn nó với pset 0 hoặc pset 1, bất cứ điều gì trong tuần 113 00:05:05,600 --> 00:05:06,810 có thể xảy ra được. 114 00:05:06,810 --> 00:05:09,240 Và sau đó những gì chúng tôi sẽ làm là có một bảng của đồng bào giảng dạy 115 00:05:09,240 --> 00:05:12,040 và các trợ lý, thường là 8 hoặc 10 hay như vậy của chúng tôi, 116 00:05:12,040 --> 00:05:14,430 đi qua, giữ một con mắt thận trọng trên bảng, và 117 00:05:14,430 --> 00:05:16,810 tuốt ra câu hỏi thực sự là một cách nhanh chóng như chúng ta có thể, 118 00:05:16,810 --> 00:05:19,600 giới thiệu bạn đến các bài viết liên quan nếu bạn đã không tìm thấy những 119 00:05:19,600 --> 00:05:22,220 mình, tài liệu tham khảo trực tuyến, khi thích hợp. 120 00:05:22,220 --> 00:05:24,280 Và sau đó nếu có vấn đề, như có chắc chắn 121 00:05:24,280 --> 00:05:27,190 sẽ được, hoặc nó chỉ làm cho ý nghĩa hơn để ngồi xuống một ngày một, 122 00:05:27,190 --> 00:05:28,660 làm việc thông qua các vấn đề với một người nào đó. 123 00:05:28,660 --> 00:05:30,810 >> Hoặc bạn chỉ cần đi vào giờ làm việc thực sự 124 00:05:30,810 --> 00:05:31,640 cần suy nghĩ đó. 125 00:05:31,640 --> 00:05:33,400 Bạn không muốn phải đi qua dưới dạng điện tử, bạn 126 00:05:33,400 --> 00:05:34,410 thực sự muốn để đáp ứng với một ai đó. 127 00:05:34,410 --> 00:05:37,240 Giao tiếp đó cho chúng ta, và những gì sẽ xảy ra là khi bạn 128 00:05:37,240 --> 00:05:40,620 Câu hỏi này đã được nhìn thấy một nhân viên, và chúng tôi 129 00:05:40,620 --> 00:05:43,660 xác định, yup, điều này sẽ được gửi đi đến một trong 20 hoặc 130 00:05:43,660 --> 00:05:47,800 30 thành viên trong nhóm ở đây tại địa phương, bạn sẽ thấy ở phía trên trái 131 00:05:47,800 --> 00:05:51,590 ít Nhập vào nút Queue bắt đầu nhấp nháy trên cs50.net / 132 00:05:51,590 --> 00:05:52,165 thảo luận. 133 00:05:52,165 --> 00:05:55,260 Và điều này là nói cho bạn mà bạn bây giờ đã được mời tham gia, do đó, 134 00:05:55,260 --> 00:05:56,880 để nói chuyện, để vào hàng đợi. 135 00:05:56,880 --> 00:05:59,090 Và bằng cách nhấp vào nút đó, tên của bạn sau đó sẽ xuất hiện trên 136 00:05:59,090 --> 00:06:02,660 iPad bộ chào mừng CS50, một của người đứng đầu của khóa học, 137 00:06:02,660 --> 00:06:05,250 được tổ chức gần lối vào của Annenberg, những người sau đó sẽ 138 00:06:05,250 --> 00:06:08,630 xem như mô tả ở đây, những sinh viên có thắc mắc về 139 00:06:08,630 --> 00:06:11,630 bên trái, các nhân viên có mặt bên phải. 140 00:06:11,630 --> 00:06:14,830 Và với một nhấp chuột trái và phải, trình duyệt web của bạn sẽ 141 00:06:14,830 --> 00:06:18,610 bắt đầu nhấp nháy ngay sau khi, ví dụ, Giáo sư McGonnagal 142 00:06:18,610 --> 00:06:21,460 đã sẵn sàng để xem một bảng cụ thể trong Annenberg. 143 00:06:21,460 --> 00:06:23,340 >> Vì vậy, chúng tôi đã làm một số người trong số này năm ngoái. 144 00:06:23,340 --> 00:06:25,430 Chúng tôi đã khởi động lại giờ làm việc và 145 00:06:25,430 --> 00:06:26,980 thực hiện lại nhiều của phần mềm. 146 00:06:26,980 --> 00:06:29,940 Vì vậy, nhận ra rằng điều này được sẽ ấm lên trong tuần này. 147 00:06:29,940 --> 00:06:32,970 Nhưng cũng nhận ra, trong những năm qua, như bạn có thể đã nghe nói 148 00:06:32,970 --> 00:06:35,710 từ bạn bè, giờ hành chính có thực sự từ 50 đến 149 00:06:35,710 --> 00:06:37,040 150 sinh viên cùng một lúc. 150 00:06:37,040 --> 00:06:39,300 Và nó chỉ đơn giản là không thể cho chúng tôi để xử lý mà 151 00:06:39,300 --> 00:06:42,060 hiệu quả, một trên một, trong suốt buổi tối. 152 00:06:42,060 --> 00:06:44,570 Và vì vậy những gì chúng tôi đang thực sự sẽ cố gắng để làm điều này là 153 00:06:44,570 --> 00:06:46,590 tận dụng thực tế là rất nhiều câu hỏi 154 00:06:46,590 --> 00:06:49,050 thường gặp và thường có thể được trả lời tốt hơn 155 00:06:49,050 --> 00:06:50,030 không đồng bộ. 156 00:06:50,030 --> 00:06:52,140 Vì vậy, bạn có thể sắp xếp suy nghĩ thông qua phản ứng của nhân viên, 157 00:06:52,140 --> 00:06:54,360 và chúng ta có thể nghĩ rằng thông qua mã của bạn, mà không có nước nóng 158 00:06:54,360 --> 00:06:57,050 áp lực nhất thiết phải đấu tranh 159 00:06:57,050 --> 00:06:58,210 thông qua nó bên cạnh nhau. 160 00:06:58,210 --> 00:07:00,980 Vì vậy, chúng tôi ước tính rằng khoảng 1/3 hoặc một nửa trong những câu hỏi 161 00:07:00,980 --> 00:07:03,500 sẽ được gửi đi trong người, và chúng tôi sẽ cố gắng để nhổ như 162 00:07:03,500 --> 00:07:05,530 nhiều như một nửa hoặc nhiều hơn điện tử, 163 00:07:05,530 --> 00:07:06,710 trong giờ làm việc. 164 00:07:06,710 --> 00:07:08,070 Và chúng tôi sẽ tiếp tục sử dụng Thảo luận 165 00:07:08,070 --> 00:07:09,990 trong suốt tuần là tốt. 166 00:07:09,990 --> 00:07:12,680 >> Và cuối cùng, nhận ra rằng khóa học này có thể được thực hiện thông qua / không. 167 00:07:12,680 --> 00:07:16,230 Vì vậy, nếu bạn đang ở trên hàng rào hoặc chỉ nghĩ rằng bạn đang thực sự 168 00:07:16,230 --> 00:07:18,650 không chắc chắn nếu điều này là thế giới cho bạn, hoặc điều này thực sự 169 00:07:18,650 --> 00:07:21,310 khá nước ngoài cho bạn, nhận ra rằng đây là một cách tuyệt vời 170 00:07:21,310 --> 00:07:24,840 đạt được một số sự tự tin để bước vào 171 00:07:24,840 --> 00:07:26,780 lớp học, như tôi đã thẳng thắn, năm trước đây. 172 00:07:26,780 --> 00:07:28,630 Và sau đó có năm tuần để sắp xếp của con số cho 173 00:07:28,630 --> 00:07:30,850 chính mình nếu bạn muốn ở lại pass / fail, chuyển sang một bức thư 174 00:07:30,850 --> 00:07:31,800 cấp, hoặc các loại tương tự. 175 00:07:31,800 --> 00:07:34,050 Và thường pass / fail không, tôi nghĩ rằng, cho học sinh là 176 00:07:34,050 --> 00:07:36,700 rằng, nếu bạn đặt trong đó 10 giờ, 20 giờ, bất cứ điều gì 177 00:07:36,700 --> 00:07:38,830 có thể được trên một số vấn đề, và bạn đang đập đầu của bạn 178 00:07:38,830 --> 00:07:39,690 chống lại bức tường, 179 00:07:39,690 --> 00:07:41,750 và bạn thực sự không thể đuổi một cái gì đó, và bạn 180 00:07:41,750 --> 00:07:44,230 có rất nhiều những thứ khác bạn cần làm, trung thực, những gì tôi 181 00:07:44,230 --> 00:07:46,070 suy nghĩ vượt qua / thất bại là, phải mất cạnh 182 00:07:46,070 --> 00:07:47,250 tình huống như thế. 183 00:07:47,250 --> 00:07:49,350 Trong trường hợp bạn đã thực hiện điều 90% số đường. 184 00:07:49,350 --> 00:07:50,830 Bạn biết đấy, nó không hoàn toàn hoàn hảo. 185 00:07:50,830 --> 00:07:52,950 Tuy nhiên, bạn có rất nhiều ra khỏi nó, dù sao. 186 00:07:52,950 --> 00:07:55,440 Vì vậy, xem xét thông qua / không như đem lại cho bạn rằng 187 00:07:55,440 --> 00:07:57,590 mô hình tinh thần, có lẽ. 188 00:07:57,590 --> 00:08:00,680 >> , Tất cả các bên phải để tuần trước, chúng tôi lao vào Scratch, và chúng tôi 189 00:08:00,680 --> 00:08:03,610 nói về lập trình trên một cấp độ đồ họa khá cao. 190 00:08:03,610 --> 00:08:05,340 Và ngày hôm nay chúng tôi thực hiện việc chuyển đổi sang một ngôn ngữ 191 00:08:05,340 --> 00:08:08,300 được gọi là C, một ngôn ngữ lập trình cấp thấp hơn trên đầu trang của 192 00:08:08,300 --> 00:08:11,260 nhiều ngôn ngữ hiện đại đang được xây dựng, bao gồm một số 193 00:08:11,260 --> 00:08:13,010 trong những người chúng tôi sẽ được sử dụng vào cuối hạn của. 194 00:08:13,010 --> 00:08:15,530 Và cú pháp, những gì họ trông giống như 195 00:08:15,530 --> 00:08:17,330 là tất cả hoàn toàn tương tự. 196 00:08:17,330 --> 00:08:19,080 Vì vậy, hãy bắt đầu thực hiện chuyển đổi ở đây. 197 00:08:19,080 --> 00:08:21,730 Vì vậy, đây là một chương trình tuần trước đó là đơn giản nhất của 198 00:08:21,730 --> 00:08:22,910 xin chào các chương trình thế giới. 199 00:08:22,910 --> 00:08:25,560 Nó chỉ đơn giản là in với thế giới màn hình chào, với một 200 00:08:25,560 --> 00:08:27,650 thưa bài phát biểu bong bóng của con mèo. 201 00:08:27,650 --> 00:08:30,590 Vâng, nếu bây giờ chúng ta bắt đầu dịch này vào một 202 00:08:30,590 --> 00:08:33,419 ngôn ngữ, nhận ra rằng những ý tưởng ngày hôm nay và hôm thứ Tư 203 00:08:33,419 --> 00:08:36,450 là giống hệt nhau, nhưng cú pháp bắt đầu thay đổi. 204 00:08:36,450 --> 00:08:39,370 Vì vậy, trong khi tuần trước, chúng tôi đã có, khi lá cờ màu xanh lá cây nhấn vào, 205 00:08:39,370 --> 00:08:40,340 hello thế giới. 206 00:08:40,340 --> 00:08:43,870 Hôm nay chúng ta sẽ có int, main, void, printf, 207 00:08:43,870 --> 00:08:46,350 lại, với một số cú pháp khác trong đó là tốt. 208 00:08:46,350 --> 00:08:49,200 Dấu ngoặc nhọn, và dấu ngoặc và dấu ngoặc kép, và whatnot. 209 00:08:49,200 --> 00:08:54,520 Nhưng nhận ra rằng cốt lõi của ý tưởng ở đây là việc in ấn, 210 00:08:54,520 --> 00:08:58,470 và cuối cùng là thực tế mà chính là bây giờ sẽ là 211 00:08:58,470 --> 00:09:00,770 đồng nghĩa với sự bắt đầu của một chương trình. 212 00:09:00,770 --> 00:09:04,250 Chính sẽ là nơi lá cờ màu xanh lá cây đá vật tắt. 213 00:09:04,250 --> 00:09:06,390 >> Vì vậy, bây giờ chúng ta hãy tách một số các khối xây dựng ở đây 214 00:09:06,390 --> 00:09:08,650 trước khi chúng tôi nhảy vào một số ví dụ cụ thể. 215 00:09:08,650 --> 00:09:11,620 Vì vậy, chúng tôi gọi là một báo cáo cuối cùng trong tuần này, theo đó nó chỉ là 216 00:09:11,620 --> 00:09:12,470 một hướng dẫn. 217 00:09:12,470 --> 00:09:15,660 Làm điều này - trong trường hợp này, nói hello thế giới. 218 00:09:15,660 --> 00:09:18,400 Cũng trong C, nếu chúng ta nhìn tại dòng đó, điều này là làm thế nào chúng tôi 219 00:09:18,400 --> 00:09:20,920 sẽ bắt đầu bày tỏ rằng mảnh ghép cụ thể: 220 00:09:20,920 --> 00:09:24,780 printf ("hello world"); 221 00:09:24,780 --> 00:09:27,330 Và bây giờ chúng tôi sẽ trêu chọc những ngoài nhiều hơn và nhiều hơn nữa theo thời gian, 222 00:09:27,330 --> 00:09:29,330 nhưng nhận ra rằng có một mô hình ở đây. 223 00:09:29,330 --> 00:09:31,870 Vì vậy, chúng ta có điều này gọi là printf, đó là 224 00:09:31,870 --> 00:09:34,310 về cơ bản tương tự để từ nói. 225 00:09:34,310 --> 00:09:35,800 Đó là những gì nó sẽ làm gì. 226 00:09:35,800 --> 00:09:37,870 Printf, f ở đây có nghĩa là "định dạng". 227 00:09:37,870 --> 00:09:39,270 Vì vậy, nó chỉ có nghĩa là bạn có thể chèn 228 00:09:39,270 --> 00:09:41,600 các chi tiết thẩm mỹ. 229 00:09:41,600 --> 00:09:43,770 Vì vậy, quote unquote là sự khởi đầu của những gì chúng ta đang đi 230 00:09:43,770 --> 00:09:45,340 để bắt đầu cuộc gọi một chuỗi. 231 00:09:45,340 --> 00:09:47,110 Một từ, một cụm từ, một câu. 232 00:09:47,110 --> 00:09:50,220 Một chuỗi trong một ngôn ngữ lập trình là một chuỗi các số không 233 00:09:50,220 --> 00:09:51,330 hoặc nhiều ký tự. 234 00:09:51,330 --> 00:09:54,390 Vì vậy, h-e-l-l-o, dấu phẩy, và vv là, 235 00:09:54,390 --> 00:09:56,290 quote unquote, một chuỗi. 236 00:09:56,290 --> 00:09:58,710 Và giờ đây, dấu gạch chéo ngược n, cú pháp nhỏ lẻ, nhưng chúng tôi 237 00:09:58,710 --> 00:10:01,780 tuần trước đó đã được xác định là có nghĩa là gì? 238 00:10:01,780 --> 00:10:02,630 Nó chỉ là một dòng mới. 239 00:10:02,630 --> 00:10:05,000 Nó chỉ là một cách truyền đạt vào máy tính bạn muốn 240 00:10:05,000 --> 00:10:07,700 tương đương với nhấn Enter có, nhưng bạn không 241 00:10:07,700 --> 00:10:10,460 muốn thực sự nhấn Enter và do đó mess up tất cả các 242 00:10:10,460 --> 00:10:12,130 định dạng của chương trình thực tế của bạn. 243 00:10:12,130 --> 00:10:15,500 Bây giờ các dấu ngoặc đơn kèm theo chuỗi này, mở paren 244 00:10:15,500 --> 00:10:18,130 gần paren, và bên trong đó là chuỗi ký tự của chúng tôi. 245 00:10:18,130 --> 00:10:22,600 Bởi vì đó là bởi vì trong C, và lập trình khác 246 00:10:22,600 --> 00:10:27,510 ngôn ngữ, những thứ như printf vài tham số, hoặc đi 247 00:10:27,510 --> 00:10:28,420 các thông số. 248 00:10:28,420 --> 00:10:31,490 >> Vì vậy, bắt đầu suy nghĩ của khối này Say màu tím như một 249 00:10:31,490 --> 00:10:34,890 chức năng, như là một phương pháp, như một thủ tục. 250 00:10:34,890 --> 00:10:36,890 Bạn thực sự có thể gọi nó là bất cứ điều gì bạn muốn cho bây giờ, nhưng 251 00:10:36,890 --> 00:10:39,260 nó là sắp xếp của một chương trình thu nhỏ mà chỉ làm một 252 00:10:39,260 --> 00:10:41,480 điều, trong một đường duy nhất, không kém. 253 00:10:41,480 --> 00:10:43,620 Vì vậy, printf cũng là những gì chúng ta sẽ bắt đầu gọi một 254 00:10:43,620 --> 00:10:46,680 chức năng, và các chức năng làm một cái gì đó - trong trường hợp này 255 00:10:46,680 --> 00:10:49,320 in một chuỗi định dạng màn hình - 256 00:10:49,320 --> 00:10:53,220 nhưng chức năng cũng có đối số hoặc các thông số. 257 00:10:53,220 --> 00:10:55,880 Và những tranh luận hoặc các thông số, cảm ơn bạn, chúng tôi có nghĩa là 258 00:10:55,880 --> 00:11:01,220 hành vi của họ có thể bị ảnh hưởng bởi những gì bạn vượt qua trong 259 00:11:01,220 --> 00:11:03,420 bên trong dấu ngoặc đơn. 260 00:11:03,420 --> 00:11:06,460 Vì vậy, trong trường hợp này, nhu cầu printf được cho biết những gì để in, và chúng tôi 261 00:11:06,460 --> 00:11:09,520 chỉ cần vượt qua trong dấu ngoặc kép ở đây, chuỗi 262 00:11:09,520 --> 00:11:11,270 thực sự muốn in. 263 00:11:11,270 --> 00:11:14,060 Và dấu chấm phẩy vào cuối của dòng này chỉ là một 264 00:11:14,060 --> 00:11:18,020 lịch sử gây khó chịu, theo đó vào cuối của hầu hết các dòng mã, 265 00:11:18,020 --> 00:11:21,170 bạn đặt một dấu chấm phẩy để làm cho siêu rõ ràng với máy tính 266 00:11:21,170 --> 00:11:23,020 rằng dòng mã này kết thúc ở đây. 267 00:11:23,020 --> 00:11:25,600 Bây giờ điều này là tốt vì như chúng ta sẽ thấy như các chương trình nhận được nhiều hơn 268 00:11:25,600 --> 00:11:29,030 phức tạp, dấu chấm phẩy sẽ làm cho con người siêu rõ ràng đối với chúng tôi, 269 00:11:29,030 --> 00:11:32,280 và cũng có máy tính, nơi dòng bắt đầu và kết thúc mã. 270 00:11:32,280 --> 00:11:34,360 Nhận ra rằng một số ngôn ngữ không có một số 271 00:11:34,360 --> 00:11:35,045 cùng những chi tiết này. 272 00:11:35,045 --> 00:11:37,870 Và trên thực tế, trong JavaScript, bạn không phải lúc nào cũng cần một cái gì đó 273 00:11:37,870 --> 00:11:38,670 giống như các dấu chấm phẩy. 274 00:11:38,670 --> 00:11:40,210 Nhưng thêm vào đó để đến. 275 00:11:40,210 --> 00:11:41,170 >> Vì vậy, vòng lặp. 276 00:11:41,170 --> 00:11:43,520 Chúng tôi đã có một cái gì đó như thế này, rất trực quan, rõ ràng, làm 277 00:11:43,520 --> 00:11:44,860 một cái gì đó một lần nữa và một lần nữa và một lần nữa. 278 00:11:44,860 --> 00:11:47,720 Cũng giống như đặt trên vớ, hoặc chào hỏi, trong trường hợp này. 279 00:11:47,720 --> 00:11:51,090 Vâng, bắt đầu từ ngày hôm nay trong C, chúng ta có thể thể hiện điều này Scratch 280 00:11:51,090 --> 00:11:54,970 chặn như trong khi (đúng) printf ("hello world"). 281 00:11:54,970 --> 00:11:57,630 Vì vậy, nhận thấy chúng ta đang bắt đầu xây dựng trên câu đố nghĩa 282 00:11:57,630 --> 00:11:58,480 mảnh từ trước. 283 00:11:58,480 --> 00:12:01,310 Chúng tôi có cùng một khối màu tím, nhưng đó là bên trong của 284 00:12:01,310 --> 00:12:04,880 trong ngoặc vuông Vô hạn khối, và cách tốt nhất để dịch đó 285 00:12:04,880 --> 00:12:06,480 C là như sau. 286 00:12:06,480 --> 00:12:08,130 Không có giới hạn từ khóa. 287 00:12:08,130 --> 00:12:10,940 Bạn có thể không chỉ cần gõ f-o-r-e-v-e-r trong C. 288 00:12:10,940 --> 00:12:13,440 Vì vậy, tương tự gần nhất là thời gian. 289 00:12:13,440 --> 00:12:17,050 >> Bây giờ, trong khi (đúng) có vẻ hơi ngu ngốc vì không giá trị 290 00:12:17,050 --> 00:12:18,700 của sự thay đổi chân thật? 291 00:12:18,700 --> 00:12:19,810 Có lẽ không. 292 00:12:19,810 --> 00:12:22,770 Nó giống như nói rằng trong khi một, trong khi trên, trong khi sự thật. 293 00:12:22,770 --> 00:12:25,430 Đó là tất cả những điều tương tự, đúng là luôn luôn như vậy. 294 00:12:25,430 --> 00:12:29,860 Vì vậy, vòng lặp này là thực sự gây những loại vòng lặp? 295 00:12:29,860 --> 00:12:31,210 Chỉ cần một vòng lặp vô hạn, phải. 296 00:12:31,210 --> 00:12:32,930 Một vòng lặp mãi mãi hoặc trong khi chúng tôi gọi nó tuần trước, 297 00:12:32,930 --> 00:12:33,870 chỉ là một vòng lặp vô hạn. 298 00:12:33,870 --> 00:12:35,250 Vì vậy, đôi khi đó là xấu. 299 00:12:35,250 --> 00:12:37,060 Đôi khi đó là một lỗi, đôi khi đó là lý do tại sao bạn nhận được 300 00:12:37,060 --> 00:12:39,340 bóng bãi biển kéo sợi hoặc đồng hồ cát hoặc tương tự. 301 00:12:39,340 --> 00:12:41,260 Nhưng trong trường hợp này, chúng tôi cố ý, cho bất cứ điều gì 302 00:12:41,260 --> 00:12:43,040 lý do, muốn in những điều tương tự một lần nữa 303 00:12:43,040 --> 00:12:43,970 và một lần nữa và một lần nữa. 304 00:12:43,970 --> 00:12:45,900 Hoặc trong trường hợp giống như một chiếc đồng hồ, bạn muốn làm 305 00:12:45,900 --> 00:12:47,470 một cái gì đó một lần nữa và một lần nữa và một lần nữa. 306 00:12:47,470 --> 00:12:49,070 Vì vậy, vòng lặp vô hạn có thể có ý nghĩa. 307 00:12:49,070 --> 00:12:53,560 Và đây là làm thế nào trong C chúng ta có thể dịch Vô hạn để mã. 308 00:12:53,560 --> 00:12:55,570 >> Vì vậy, bây giờ một trong những điều này là một chút cụ thể hơn. 309 00:12:55,570 --> 00:12:58,880 Chúng tôi đã lặp lại 10 lần tuyên bố như sau. 310 00:12:58,880 --> 00:13:02,490 Vì vậy, trong khi (đúng) không khá làm việc ở đó, bởi vì thật sự là 311 00:13:02,490 --> 00:13:03,590 luôn luôn đúng. 312 00:13:03,590 --> 00:13:07,060 Vì vậy, nếu chúng ta thay vì nhìn vào các phiên bản C, cú pháp được một 313 00:13:07,060 --> 00:13:08,180 chút khó hiểu. 314 00:13:08,180 --> 00:13:11,380 Nhưng phải trung thực khi bạn bắt đầu thấy điều này, tất cả được 315 00:13:11,380 --> 00:13:12,600 khá quen thuộc một cách nhanh chóng. 316 00:13:12,600 --> 00:13:14,370 Vì vậy, đây là những gì được gọi là một vòng lặp for. 317 00:13:14,370 --> 00:13:17,210 Một vòng lặp sẽ nói cho các máy tính để làm một cái gì đó 318 00:13:17,210 --> 00:13:20,710 một lần nữa và một lần nữa và một lần nữa cho đến khi nào 319 00:13:20,710 --> 00:13:21,850 những điều này là đúng sự thật. 320 00:13:21,850 --> 00:13:23,370 Bây giờ chúng ta làm những gì có nghĩa là bằng cách đó? 321 00:13:23,370 --> 00:13:25,470 Vâng, có ba phần vào một vòng lặp for, và chúng ta sẽ 322 00:13:25,470 --> 00:13:28,240 trở lại với điều này trong bối cảnh thực tế 323 00:13:28,240 --> 00:13:29,100 ví dụ trong một thời điểm. 324 00:13:29,100 --> 00:13:31,650 Vì vậy, đừng lo lắng nếu nó không hoàn toàn chìm trong cùng một lúc. 325 00:13:31,650 --> 00:13:35,400 Nhưng int i = 0 là, câu chuyện dài ngắn, nói cho tôi một 326 00:13:35,400 --> 00:13:38,290 biến đó là kiểu số nguyên, do đó cung cấp cho tôi một số 327 00:13:38,290 --> 00:13:40,890 tên gọi là i, và khởi tạo nó để 0. 328 00:13:40,890 --> 00:13:43,460 Điều đó cho tôi giống như một biến x đại số và 329 00:13:43,460 --> 00:13:44,580 khởi tạo nó là 0. 330 00:13:44,580 --> 00:13:46,250 Nhưng trong trường hợp này, chúng tôi gọi nó là i. 331 00:13:46,250 --> 00:13:49,120 Sau đó ở giữa, nó nói tôi là ít hơn 10. 332 00:13:49,120 --> 00:13:52,150 Đó là nói cho máy tính làm những thứ sau một thời gian dài 333 00:13:52,150 --> 00:13:53,770 như tôi là nhỏ hơn 10. 334 00:13:53,770 --> 00:13:55,370 Và rõ ràng là nó bắt đầu ít hơn 10 vì 335 00:13:55,370 --> 00:13:56,550 nó bắt đầu từ 0. 336 00:13:56,550 --> 00:13:59,150 Sau đó, cuối cùng, bạn có lẽ có thể đoán những gì i + + phương tiện. 337 00:13:59,150 --> 00:14:02,140 Đó là một chút ít cú pháp mà chỉ có nghĩa là tăng i. 338 00:14:02,140 --> 00:14:05,270 Vì vậy, thêm 1 đến i, một lần nữa và một lần nữa và một lần nữa. 339 00:14:05,270 --> 00:14:09,260 >> Và như vậy là chúng ta sẽ thấy vòng lặp này, cú pháp này, đúng hơn là, thực hiện 340 00:14:09,260 --> 00:14:12,160 chính xác cùng một điều rằng, thẳng thắn, trong Scratch chỉ để 341 00:14:12,160 --> 00:14:13,250 dễ dàng hơn nhiều để thể hiện. 342 00:14:13,250 --> 00:14:15,170 Lặp lại 10, và bạn đang làm. 343 00:14:15,170 --> 00:14:17,690 Trong C, và trong hầu hết các ngôn ngữ lập trình, chúng ta phải là một 344 00:14:17,690 --> 00:14:20,190 ít hơn hướng dẫn cho máy tính và thực sự 345 00:14:20,190 --> 00:14:21,630 chỉ định một cái gì đó như thế này. 346 00:14:21,630 --> 00:14:23,730 Nhưng chúng tôi sẽ trở lại và cú pháp khác. 347 00:14:23,730 --> 00:14:24,780 >> Điều gì về các biến? 348 00:14:24,780 --> 00:14:26,940 Trong Scratch, chúng tôi đã có một cái gì đó giống như các khối màu cam, 349 00:14:26,940 --> 00:14:28,180 nơi tôi có thể khai báo một biến. 350 00:14:28,180 --> 00:14:30,000 Hãy tự ý gọi nó truy cập. 351 00:14:30,000 --> 00:14:31,880 Hãy khởi tạo nó đến 0, và sau đó 352 00:14:31,880 --> 00:14:33,240 hãy mãi mãi làm điều gì đó. 353 00:14:33,240 --> 00:14:35,760 Trong trường hợp này trong Scratch tôi nói các truy cập, vì vậy 354 00:14:35,760 --> 00:14:38,230 mèo sẽ có một bong bóng lời nói nhỏ mà nói 355 00:14:38,230 --> 00:14:40,010 số đó là trong biến này. 356 00:14:40,010 --> 00:14:42,460 Và sau đó chúng tôi có truy cập thay đổi bằng cách 1. 357 00:14:42,460 --> 00:14:45,760 Vì vậy, tất cả những điều này được bọc bên trong của một khóa Vô hạn. 358 00:14:45,760 --> 00:14:48,960 Vì vậy, chúng tôi đã có các khối xây dựng trong C với 359 00:14:48,960 --> 00:14:50,040 dịch này. 360 00:14:50,040 --> 00:14:51,650 >> Một trong những cách mà chúng ta có thể làm điều đó. 361 00:14:51,650 --> 00:14:53,890 Hãy cho tôi một số nguyên, hãy gọi nó truy cập. 362 00:14:53,890 --> 00:14:55,190 Khởi tạo nó là 0 363 00:14:55,190 --> 00:14:56,490 trong dòng đầu tiên ở đó. 364 00:14:56,490 --> 00:14:59,390 Trong khi (đúng), vì vậy tôi đang ăn cắp ý tưởng đó chỉ là một từ thời điểm 365 00:14:59,390 --> 00:15:01,300 trước, đi trước và làm như sau. 366 00:15:01,300 --> 00:15:04,880 In ra các truy cập, và sau đó tăng truy cập, 367 00:15:04,880 --> 00:15:06,930 một lần nữa, và một lần nữa, và một lần nữa. 368 00:15:06,930 --> 00:15:09,380 Hay nữa, + + chỉ có nghĩa là thêm 1 vào một cái gì đó. 369 00:15:09,380 --> 00:15:11,030 Nhưng có một đoạn mới của cú pháp ở đây. 370 00:15:11,030 --> 00:15:15,730 Những gì đang nhảy ra khỏi không nằm trong số các ví dụ trước đây của chúng tôi? 371 00:15:15,730 --> 00:15:17,190 Có, điều này d%. 372 00:15:17,190 --> 00:15:19,810 Vì vậy, bạn có thể có thể suy ra những gì đang làm, thẳng thắn, dựa 373 00:15:19,810 --> 00:15:21,410 những gì các khối Scratch đang làm. 374 00:15:21,410 --> 00:15:24,510 Nhưng một lần nữa trong C, chúng tôi chỉ cần có để có nhiều hơn một chút đặc biệt 375 00:15:24,510 --> 00:15:25,990 khi nói đến việc thể hiện bản thân. 376 00:15:25,990 --> 00:15:30,560 >> Vì vậy, printf ("% d \ n"). 377 00:15:30,560 --> 00:15:32,320 Tốt nhất của chúng tôi có thể vứt bỏ như là quen thuộc. 378 00:15:32,320 --> 00:15:34,910 Dấu ngoặc kép chỉ có nghĩa là đó là một chuỗi, dấu gạch chéo ngược n 379 00:15:34,910 --> 00:15:35,970 chỉ là một dòng mới. 380 00:15:35,970 --> 00:15:38,860 Vì vậy, điều duy nhất ở đây là% d. 381 00:15:38,860 --> 00:15:40,390 Và tất cả những gì là một giữ chỗ. 382 00:15:40,390 --> 00:15:43,510 % D để biểu thị một số thập phân. 383 00:15:43,510 --> 00:15:47,820 % D có nghĩa là máy tính, đặt một số thập phân. 384 00:15:47,820 --> 00:15:49,450 Vâng, những gì số nào bạn muốn đặt ở đó? 385 00:15:49,450 --> 00:15:52,400 Vâng, như bạn có lẽ có thể suy ra, sau dấu phẩy, chúng ta nói 386 00:15:52,400 --> 00:15:55,480 truy cập, đó là tên của một biến mà chúng tôi đã kê khai hoặc 387 00:15:55,480 --> 00:15:57,260 tạo ra một vài dòng trước đó. 388 00:15:57,260 --> 00:16:02,420 Vì vậy, đây chỉ là cách C cắm trong một biến thành một 389 00:16:02,420 --> 00:16:04,480 chuỗi động. 390 00:16:04,480 --> 00:16:07,350 Bởi vì ngược lại, nếu tôi thay vì làm một cái gì đó như thế 391 00:16:07,350 --> 00:16:12,470 , printf ("counter"), điều gì sẽ này 392 00:16:12,470 --> 00:16:15,220 chương trình thay vì làm thế, có lẽ? 393 00:16:15,220 --> 00:16:17,260 Nó nghĩa là sẽ in "counter". 394 00:16:17,260 --> 00:16:18,750 Mà không phải là hiệu quả mà tôi muốn. 395 00:16:18,750 --> 00:16:20,920 Tôi cần phải thay thế trong một số giá trị số. 396 00:16:20,920 --> 00:16:24,340 Vì vậy, chúng ta sẽ thấy rằng các chức năng sau đó, giống như printf, có thể mất không 397 00:16:24,340 --> 00:16:26,930 chỉ chỉ duy nhất đối số, như 398 00:16:26,930 --> 00:16:28,150 "Hello thế giới". 399 00:16:28,150 --> 00:16:32,050 Họ có thể lấy dấu phẩy unquote trích dẫn nội dung bài viết này, và sau đó một số biến 400 00:16:32,050 --> 00:16:35,830 đó sẽ nhận được cắm vào, như chúng ta sẽ thấy chuỗi trước 401 00:16:35,830 --> 00:16:38,280 thông qua các placeholders dấu%. 402 00:16:38,280 --> 00:16:39,660 >> Vâng những gì về các biểu thức Boolean? 403 00:16:39,660 --> 00:16:42,200 Biểu thức boolean là những giá trị này, đúng hay sai. 404 00:16:42,200 --> 00:16:42,830 Có hoặc không. 405 00:16:42,830 --> 00:16:44,020 1 hoặc 0. 406 00:16:44,020 --> 00:16:45,190 Hoặc tắt. 407 00:16:45,190 --> 00:16:47,570 Vì vậy, trong Scratch trông như thế này, và nhận thấy rằng các 408 00:16:47,570 --> 00:16:50,170 dưới cùng khối ở đây thực sự là sự kết hợp 409 00:16:50,170 --> 00:16:51,500 của hai khối nhỏ hơn. 410 00:16:51,500 --> 00:16:53,610 Vì vậy, tôi loại kéo và thả ba mảnh ghép 411 00:16:53,610 --> 00:16:56,450 cùng nhau để làm cho rằng mảnh ghép còn ở đó vì vậy mà tôi 412 00:16:56,450 --> 00:17:00,420 có thể truyền đạt ý tưởng mà tôi muốn x là ít hơn so với y và 413 00:17:00,420 --> 00:17:02,540 y là ít hơn z. 414 00:17:02,540 --> 00:17:05,790 Và vì vậy tôi có thể dịch hai dòng riêng biệt như sau. 415 00:17:05,790 --> 00:17:08,650 Một trong những đầu có thể rất trivially dịch C, 416 00:17:08,650 --> 00:17:10,069 chỉ với x 00:17:11,990 Có lẽ với một số dấu ngoặc đơn cho các biện pháp tốt. 418 00:17:11,990 --> 00:17:15,520 Và sau đó trong C, bạn không viết và để biểu thị 419 00:17:15,520 --> 00:17:16,819 kết hợp của một cái gì đó. 420 00:17:16,819 --> 00:17:19,585 Bạn thay vì viết &&. 421 00:17:19,585 --> 00:17:22,849 Và như chúng ta cuối cùng sẽ nhìn thấy, một dấu "và" duy nhất xảy ra với 422 00:17:22,849 --> 00:17:23,880 có nghĩa là một cái gì đó khác nhau. 423 00:17:23,880 --> 00:17:27,530 Vì vậy, & chỉ biểu thị ý tưởng. 424 00:17:27,530 --> 00:17:30,040 >> Vì vậy, một lần nữa, mặc dù điều này bắt đầu trông khá phức tạp, 425 00:17:30,040 --> 00:17:32,560 một trong những mục đích giới thiệu Scratch, bên cạnh 426 00:17:32,560 --> 00:17:34,810 chỉ có loại một niềm vui trên đoạn đường nối nơi mà bạn có thể làm 427 00:17:34,810 --> 00:17:36,590 một cái gì đó là rất đồ họa, và hoạt hình, và 428 00:17:36,590 --> 00:17:39,000 thể chia sẻ và như thế, cũng là để truyền đạt ý tưởng 429 00:17:39,000 --> 00:17:42,010 tất cả những ý tưởng chúng tôi bắt đầu lặn vào ngày hôm nay trở đi 430 00:17:42,010 --> 00:17:44,300 đã được thể hiện ngay cả đơn giản 431 00:17:44,300 --> 00:17:46,850 giao diện kể từ khi một ngày. 432 00:17:46,850 --> 00:17:47,790 Điều gì về việc này một ở đây? 433 00:17:47,790 --> 00:17:48,860 >> Vì vậy, điều kiện. 434 00:17:48,860 --> 00:17:50,590 Vì vậy, các khối Scratch trên bên trái có vẻ 435 00:17:50,590 --> 00:17:51,610 một chút phức tạp hơn. 436 00:17:51,610 --> 00:17:52,650 Nhưng nó chỉ là một số di chuyển và 437 00:17:52,650 --> 00:17:54,140 thả miếng quen thuộc. 438 00:17:54,140 --> 00:17:56,690 Nếu x nhỏ hơn y, nói như vậy. 439 00:17:56,690 --> 00:17:59,900 Khác nếu x lớn hơn y, nói như vậy. 440 00:17:59,900 --> 00:18:02,460 Khác, chúng tôi hợp lý có thể giả định nó được suy ra rằng 441 00:18:02,460 --> 00:18:03,580 họ phải được bình đẳng. 442 00:18:03,580 --> 00:18:05,220 Vì vậy, nói rằng chúng bằng nhau. 443 00:18:05,220 --> 00:18:07,690 Bây giờ trong C điều, phải chính xác cùng. 444 00:18:07,690 --> 00:18:09,730 Và nhận thấy rằng các dấu ngoặc nhọn sẽ là một 445 00:18:09,730 --> 00:18:12,190 tính năng của C và các ngôn ngữ khác làm điều này loại 446 00:18:12,190 --> 00:18:13,210 đóng gói. 447 00:18:13,210 --> 00:18:15,470 Cũng giống như các khối nếu điều này màu vàng là sắp xếp của 448 00:18:15,470 --> 00:18:17,770 lấy các khối màu tím bên trong của nó. 449 00:18:17,770 --> 00:18:19,480 Tương tự như vậy là những niềng răng - 450 00:18:19,480 --> 00:18:20,870 những dấu ngoặc nhọn - 451 00:18:20,870 --> 00:18:24,710 có nghĩa là để gợi lên ý tưởng cùng ôm ấp một hoặc nhiều 452 00:18:24,710 --> 00:18:27,680 dòng mã được thụt vào bên trong của họ. 453 00:18:27,680 --> 00:18:31,270 Vì vậy, ở phía bên tay phải ở đây, nếu x nhỏ hơn y, printf 454 00:18:31,270 --> 00:18:32,270 ("X nhỏ hơn y"). 455 00:18:32,270 --> 00:18:34,980 Khác nếu x lớn hơn y, in ra như nhau. 456 00:18:34,980 --> 00:18:38,360 Thư khac in ra rằng họ đều bình đẳng. 457 00:18:38,360 --> 00:18:41,750 >> Vì vậy, trong ngắn hạn, có một bản đồ khá trực tiếp hoặc dịch 458 00:18:41,750 --> 00:18:44,720 của ngôn ngữ, chúng tôi đã nhìn thấy vậy, đến nay, kể cả đối với một số 459 00:18:44,720 --> 00:18:45,940 các tính năng phức tạp hơn. 460 00:18:45,940 --> 00:18:48,680 Vì vậy, bạn có thể không được sử dụng cho dự án của bạn, hoặc có thể không 461 00:18:48,680 --> 00:18:51,150 được sử dụng cho dự án của bạn trong tuần này. 462 00:18:51,150 --> 00:18:54,650 Nhưng chúng tôi những điều này được gọi là mảng trong C. Scratch, 463 00:18:54,650 --> 00:18:55,680 chúng được gọi là danh sách. 464 00:18:55,680 --> 00:18:59,370 Và chúng ta đã thấy những với RPG Fruitcraft tuần cuối cùng. 465 00:18:59,370 --> 00:19:01,320 Anh chàng nhỏ màu xanh đã được đi bộ xung quanh, chọn lên 466 00:19:01,320 --> 00:19:03,010 anh đào và cam và các loại tương tự. 467 00:19:03,010 --> 00:19:05,110 Cũng trong Scratch, đã được thực hiện với cam này 468 00:19:05,110 --> 00:19:09,000 ngăn chặn có chứa những từ, trong trường hợp này, chúng tôi theo nghĩa đen 469 00:19:09,000 --> 00:19:10,800 thêm "màu da cam" với một 470 00:19:10,800 --> 00:19:12,460 biến được gọi là hàng tồn kho. 471 00:19:12,460 --> 00:19:14,910 Vì vậy, trong C, cú pháp này là sẽ nhận được nhiều hơn một chút khó hiểu. 472 00:19:14,910 --> 00:19:17,250 Và chúng tôi sẽ quay trở lại tuần này và làm nhiều hơn 473 00:19:17,250 --> 00:19:21,060 điều thú vị trong thế giới về mật mã với nó. 474 00:19:21,060 --> 00:19:23,990 Nhưng ở dưới cùng ở đây, hai dòng cơ bản 475 00:19:23,990 --> 00:19:27,550 dịch cho những gì chúng tôi đang làm trong một Scratch chặn có. 476 00:19:27,550 --> 00:19:30,120 Nhưng thêm vào đó để đến. 477 00:19:30,120 --> 00:19:34,120 >> Vì vậy, đặt nó lại với nhau, đây là một chương trình trong C. Vì vậy, chúng ta hãy 478 00:19:34,120 --> 00:19:36,590 nhanh chóng tách một số trong những phần của cú pháp ở đây, nhưng 479 00:19:36,590 --> 00:19:40,300 sau đó để thực sự bắt đầu viết một số mã, làm quen 480 00:19:40,300 --> 00:19:42,440 bạn với một số trong những công cụ chúng tôi sẽ được sử dụng, và xem chúng ta 481 00:19:42,440 --> 00:19:45,400 có thể xây dựng bây giờ một số các khối xây dựng cơ bản từ 482 00:19:45,400 --> 00:19:49,150 tuần trước, bây giờ cú pháp trong C. Vì vậy, ở đầu ở đây, điều này 483 00:19:49,150 --> 00:19:51,380 có lẽ là một trong những chương trình nhàm chán nhất bạn có thể 484 00:19:51,380 --> 00:19:53,130 viết trong bất kỳ ngôn ngữ lập trình. 485 00:19:53,130 --> 00:19:55,010 Nhưng đó là loại có ý nghĩa đặc biệt bởi vì đó là 486 00:19:55,010 --> 00:19:58,120 chương trình kinh điển mà bất kỳ nhà khoa học máy tính viết khi 487 00:19:58,120 --> 00:19:59,620 giảng dạy ai đó một ngôn ngữ lập trình - 488 00:19:59,620 --> 00:20:01,230 một chương trình thế giới hello. 489 00:20:01,230 --> 00:20:05,120 >> Vì vậy, đặt ở đầu, chúng ta thấy khái niệm này của # bao gồm 490 00:20:05,120 --> 00:20:08,180 và sau đó, trong dấu ngoặc góc cạnh, stdio.h. 491 00:20:08,180 --> 00:20:10,580 Chúng tôi sẽ trở lại vào đó, nhưng thực sự những gì mà 492 00:20:10,580 --> 00:20:13,770 có nghĩa là có một tập tin trong thế giới này được gọi là tiêu chuẩn 493 00:20:13,770 --> 00:20:17,670 I / O, stdio dot h, và đó chỉ là một file văn bản 494 00:20:17,670 --> 00:20:19,240 ai đó đã viết năm trước đây. 495 00:20:19,240 --> 00:20:22,550 Và bên trong của tập tin văn bản là một bó toàn bộ 496 00:20:22,550 --> 00:20:25,840 chức năng, hoặc các phương pháp, hoặc các thủ tục, mà người khác 497 00:20:25,840 --> 00:20:28,970 đã viết rằng chúng ta là những người hưởng lợi bởi vì chúng tôi 498 00:20:28,970 --> 00:20:31,420 bây giờ có thể sử dụng mã của người đó. 499 00:20:31,420 --> 00:20:33,070 Các chức năng người đó viết. 500 00:20:33,070 --> 00:20:36,320 Trong trường hợp này, printf không phải là một cái gì đó mà tôi đã viết, 501 00:20:36,320 --> 00:20:37,500 không phải cái gì mà CS50 viết. 502 00:20:37,500 --> 00:20:40,290 Đó là một cái gì đó mà ai đó đã viết năm trước và đặt trong một 503 00:20:40,290 --> 00:20:43,450 tập tin gọi là stdio.h và sau đó, một sang một bên, đặt 504 00:20:43,450 --> 00:20:45,830 một phần khác của các chức năng trong tập tin khác. 505 00:20:45,830 --> 00:20:46,940 Nhưng chúng tôi sẽ đến đó. 506 00:20:46,940 --> 00:20:50,070 >> Vì vậy, # include chỉ là cách nói của chúng tôi, trong 507 00:20:50,070 --> 00:20:53,110 C, cho tôi truy cập vào các chức năng mà người khác đã viết. 508 00:20:53,110 --> 00:20:55,490 Và trong trường hợp này tôi quan tâm bởi vì tôi muốn printf. 509 00:20:55,490 --> 00:20:57,530 Bây giờ chúng tôi nhận được int main (void). 510 00:20:57,530 --> 00:21:00,160 Vì vậy, đây là một trong những điều này, thẳng thắn, rằng vào ngày 0, 511 00:21:00,160 --> 00:21:02,400 khá nhiều tôi đã loại ra khỏi khu vực, bởi vì nó chỉ 512 00:21:02,400 --> 00:21:03,260 không thú vị 513 00:21:03,260 --> 00:21:04,780 trí tuệ, một số cú pháp. 514 00:21:04,780 --> 00:21:07,940 Nhưng bây giờ biết rằng chức năng này, nếu không được gọi là 515 00:21:07,940 --> 00:21:11,660 thủ tục, hoặc các phương pháp, thường sản xuất một số giá trị. 516 00:21:11,660 --> 00:21:12,520 Họ làm một cái gì đó. 517 00:21:12,520 --> 00:21:13,810 Họ đưa ra một câu trả lời. 518 00:21:13,810 --> 00:21:15,020 Họ sản xuất đầu ra. 519 00:21:15,020 --> 00:21:18,780 Int tiếp theo chính là cách nói cách viết tắt của chúng tôi 520 00:21:18,780 --> 00:21:21,380 chức năng này, thủ tục này, sẽ là cuối cùng 521 00:21:21,380 --> 00:21:22,650 cung cấp cho bạn một số. 522 00:21:22,650 --> 00:21:24,370 Và tại sao đó là, chúng tôi sẽ quay trở lại. 523 00:21:24,370 --> 00:21:27,810 Chính là thế giới mặc định tiêu chuẩn mặc định 524 00:21:27,810 --> 00:21:30,990 chức năng đó sẽ được thực hiện trong một chương trình C 525 00:21:30,990 --> 00:21:31,860 bạn chạy nó. 526 00:21:31,860 --> 00:21:34,160 Void chỉ có nghĩa là điều này, chính, sẽ không có 527 00:21:34,160 --> 00:21:35,270 đối số, trong trường hợp này. 528 00:21:35,270 --> 00:21:36,400 Vì vậy, tôi là siêu rõ ràng. 529 00:21:36,400 --> 00:21:38,160 Không có chuỗi trong đó, có dấu phẩy không. 530 00:21:38,160 --> 00:21:40,690 Void có nghĩa là không có đối số chính. 531 00:21:40,690 --> 00:21:44,350 >> Bây giờ cuối cùng, may mắn thay, hai dòng cuối cùng quen thuộc. 532 00:21:44,350 --> 00:21:46,160 Bên trong dấu ngoặc nhọn, chúng tôi có một printf 533 00:21:46,160 --> 00:21:47,620 và chúng tôi có trở lại. 534 00:21:47,620 --> 00:21:50,450 Và trả lại là loại không may là chúng ta phải 535 00:21:50,450 --> 00:21:53,510 đặt nó ở đó, bởi vì trong trường hợp này nó không phải làm tất cả những điều đó 536 00:21:53,510 --> 00:21:54,600 nhiều quan tâm. 537 00:21:54,600 --> 00:21:58,790 Tuy nhiên, trong một chương trình máy tính, khi một hàm trả về 0, 538 00:21:58,790 --> 00:22:00,610 điều đó có nghĩa là tất cả là tốt. 539 00:22:00,610 --> 00:22:01,820 Không có gì đã đi sai. 540 00:22:01,820 --> 00:22:06,170 Ngược lại, nếu một hàm trả về 1, hoặc tiêu cực 1, hoặc 541 00:22:06,170 --> 00:22:11,670 tiêu cực 1337, hoặc một số các số ngẫu nhiên như thế, mà 542 00:22:11,670 --> 00:22:14,020 thường có nghĩa là một lỗi thực sự đã xảy ra. 543 00:22:14,020 --> 00:22:16,150 Vì vậy, nếu bạn đang ở trên máy Mac hoặc máy PC của bạn, nếu bạn đã từng thấy 544 00:22:16,150 --> 00:22:18,590 một số thông báo khó chịu vì máy tính của bạn đã bị hỏng hoặc 545 00:22:18,590 --> 00:22:20,660 đông lạnh, và có một thông báo lỗi khó hiểu, 546 00:22:20,660 --> 00:22:23,320 và sau đó một số mã, giống như hệ thống mã 547 00:22:23,320 --> 00:22:25,110 1,2,3,4, một số số, 548 00:22:25,110 --> 00:22:29,270 mà thường là một chi tiết không cần thiết để nói 549 00:22:29,270 --> 00:22:32,110 hầu hết con người chúng ta, nhưng đó là những gì một số chức năng hoặc một số 550 00:22:32,110 --> 00:22:34,890 chương trình đã thực sự trở lại, một giá trị khác không. 551 00:22:34,890 --> 00:22:38,540 Và lợi ích của việc này là 0 có nghĩa là cũng, 552 00:22:38,540 --> 00:22:40,470 sau đó bạn về cơ bản có một số lượng vô hạn của những điều mà 553 00:22:40,470 --> 00:22:41,130 có thể đi sai. 554 00:22:41,130 --> 00:22:44,700 Đó là lý do tại sao họ đã chọn 0 cho tốt và một giá trị khác không 555 00:22:44,700 --> 00:22:46,450 xấu, như chúng ta sẽ sớm nhìn thấy. 556 00:22:46,450 --> 00:22:47,870 >> Vì vậy, chúng ta hãy đi trước và viết này. 557 00:22:47,870 --> 00:22:51,610 Vì vậy, nhớ lại rằng ngày khác tôi đã sử dụng máy Mac của tôi để mở ra một 558 00:22:51,610 --> 00:22:53,970 thiết bị đầu cuối cửa sổ, và sau đó tôi mở chương trình văn bản, như 559 00:22:53,970 --> 00:22:55,900 TextEdit, và tôi bắt đầu viết một số mã. 560 00:22:55,900 --> 00:22:56,580 Vâng đó là tốt. 561 00:22:56,580 --> 00:22:58,636 Tuy nhiên, kinh nghiệm của bạn là có được khác nhau trên máy Mac, hoặc 562 00:22:58,636 --> 00:23:01,220 Solaris trên một máy tính, một máy tính Linux, bất cứ điều gì điều hành 563 00:23:01,220 --> 00:23:02,810 hệ thống bạn xảy ra để được sử dụng. 564 00:23:02,810 --> 00:23:04,970 Và do đó, trong khóa học, những gì chúng tôi thay vì sử dụng là một cái gì đó 565 00:23:04,970 --> 00:23:07,010 được gọi là gia dụng CS50. 566 00:23:07,010 --> 00:23:10,420 Vì vậy, các gia dụng CS50 là một phần tải về của phần mềm 567 00:23:10,420 --> 00:23:13,640 cho phép bạn chạy một hệ điều hành được gọi là Linux, 568 00:23:13,640 --> 00:23:16,810 đặc biệt Fedora Linux, Mac hoặc máy PC. 569 00:23:16,810 --> 00:23:20,810 Và bạn làm điều này bằng cách tải về một cái gì đó gọi là hypervisor. 570 00:23:20,810 --> 00:23:23,100 Vì vậy, tất cả những điều này sẽ được ghi chép lại thành 1 bộ vấn đề. 571 00:23:23,100 --> 00:23:25,240 Và bạn sẽ được hướng dẫn đối với những gì bạn cần để tải về. 572 00:23:25,240 --> 00:23:27,510 Nhưng kết quả cuối cùng, cho dù bạn có một máy Mac hoặc máy PC, bạn 573 00:23:27,510 --> 00:23:29,080 tải về một số phần mềm miễn phí. 574 00:23:29,080 --> 00:23:32,340 Sau đó, bạn tải về các gia dụng CS50, và bạn nói rằng 575 00:23:32,340 --> 00:23:33,960 phần mềm miễn phí - hypervisor 576 00:23:33,960 --> 00:23:38,080 để chạy gia dụng CS50 trong một cửa sổ trên máy tính của bạn. 577 00:23:38,080 --> 00:23:39,490 Và những gì xảy ra là điều này. 578 00:23:39,490 --> 00:23:43,660 >> Bây giờ tôi đã, chú ý ở đây, những gì dường như là một máy tính để bàn 579 00:23:43,660 --> 00:23:44,130 môi trường. 580 00:23:44,130 --> 00:23:46,150 Và hãy để tôi thực sự thu nhỏ cửa sổ này. 581 00:23:46,150 --> 00:23:49,640 Vì vậy, điều này giờ là Mac của tôi, với một cửa sổ nhỏ ở đây, và bên trong 582 00:23:49,640 --> 00:23:51,300 của cửa sổ này sẽ xảy ra là hoàn toàn 583 00:23:51,300 --> 00:23:52,380 hệ thống điều hành khác nhau. 584 00:23:52,380 --> 00:23:55,250 Quả thực có menu này bắt đầu xuống đây, gợi nhớ 585 00:23:55,250 --> 00:23:57,990 Windows, có một bó toàn bộ các menu phụ, bao gồm cả 586 00:23:57,990 --> 00:24:00,720 một liên kết để hướng dẫn CS50, Dropbox, và như thế. 587 00:24:00,720 --> 00:24:03,480 Và những gì môi trường này bây giờ là một môi trường tiêu chuẩn 588 00:24:03,480 --> 00:24:06,280 rằng tất cả chúng ta bây giờ có thể sử dụng, vì vậy không có vấn đề gì của bạn 589 00:24:06,280 --> 00:24:08,960 máy tính là những gì bạn đã cài đặt trên nó, những phiên bản 590 00:24:08,960 --> 00:24:11,430 Mac OS hoặc Windows bạn đang chạy, tất cả chúng ta bây giờ có 591 00:24:11,430 --> 00:24:12,800 cùng một môi trường. 592 00:24:12,800 --> 00:24:15,850 Và bây giờ trong môi trường này, chúng tôi có thể bắt đầu viết một số mã. 593 00:24:15,850 --> 00:24:18,480 >> Vì vậy, tôi sẽ đi trước và mở một chương trình được gọi là gedit. 594 00:24:18,480 --> 00:24:21,500 Điều này có thể so sánh notepad.exe, hoặc 595 00:24:21,500 --> 00:24:22,790 TextEdit trên một máy Mac. 596 00:24:22,790 --> 00:24:25,390 Và đây chỉ là một chương trình chỉnh sửa văn bản đơn giản siêu 597 00:24:25,390 --> 00:24:27,500 trông như thế này ở cái nhìn đầu tiên. 598 00:24:27,500 --> 00:24:30,640 Bây giờ vào phần trên, tôi có một bảng màu trắng, ở phía dưới tôi 599 00:24:30,640 --> 00:24:33,860 có cửa sổ màu đen này nói jharvard @ thiết bị. 600 00:24:33,860 --> 00:24:36,440 Và đó là bởi vì tài khoản người dùng mà chúng tôi tạo ra trước 601 00:24:36,440 --> 00:24:38,430 cho tất cả mọi người được gọi là John Harvard. 602 00:24:38,430 --> 00:24:41,490 Ông có một thư mục nơi mà tất cả các tập tin của mình sẽ đi, và 603 00:24:41,490 --> 00:24:43,500 đây là nơi mà chúng ta có thể bắt đầu viết một số mã. 604 00:24:43,500 --> 00:24:45,810 Vì vậy, hãy để tôi đi trước đây và phóng to một chút, và tôi 605 00:24:45,810 --> 00:24:51,550 sẽ làm # include int main (void), và 606 00:24:51,550 --> 00:24:57,470 sau đó tôi sẽ làm printf ("hello world") 607 00:24:57,470 --> 00:24:59,490 ; Trở về 0. 608 00:24:59,490 --> 00:25:01,400 Bây giờ đây là tất cả khá màu đen và trắng. 609 00:25:01,400 --> 00:25:03,830 >> Hãy để tôi đi trước và làm một điều gì để dạy gedit những gì tôi 610 00:25:03,830 --> 00:25:04,510 thực sự làm. 611 00:25:04,510 --> 00:25:06,140 Hãy để tôi đi Save As. 612 00:25:06,140 --> 00:25:08,560 Tôi sẽ lựa chọn ở phía bên tay trái ở đây jharvard. 613 00:25:08,560 --> 00:25:11,010 Vì vậy, một lần nữa, ngay cả khi bạn đã không bao giờ được sử dụng Linux trước đây, thẳng thắn 614 00:25:11,010 --> 00:25:13,680 những ngày này, tất cả chúng được phân cấp thành cơ bản 615 00:25:13,680 --> 00:25:14,590 cùng loại của giao diện - 616 00:25:14,590 --> 00:25:16,030 Mac OS, Windows, và Linux. 617 00:25:16,030 --> 00:25:18,680 Vì vậy, tôi đã chọn thư mục nhà của jharvard ở đây. 618 00:25:18,680 --> 00:25:21,120 Và tôi sẽ lưu tập tin này như hello.c. 619 00:25:21,120 --> 00:25:24,260 Vì vậy, ở đầu, tôi đã gõ hello.c, đặt tên một C 620 00:25:24,260 --> 00:25:26,520 chương trình với phần mở rộng c. 621 00:25:26,520 --> 00:25:27,570 thực tế phổ biến là những gì. 622 00:25:27,570 --> 00:25:28,650 Và tôi nhấn Save. 623 00:25:28,650 --> 00:25:32,510 Và bây giờ những gì tốt đẹp mà tôi đã có hiệu quả giảng dạy gedit, 624 00:25:32,510 --> 00:25:33,690 rằng đây là một chương trình C. 625 00:25:33,690 --> 00:25:36,470 Chú ý rằng văn bản màu đen và trắng của tôi bây giờ màu sắc mã hoá, hoặc 626 00:25:36,470 --> 00:25:39,330 nêu bật cú pháp, mà chỉ thu hút sự chú ý của tôi. 627 00:25:39,330 --> 00:25:41,540 phần ngữ nghĩa khác nhau của chương trình. 628 00:25:41,540 --> 00:25:44,260 Ở phía trên bên tay trái, như các chương trình của tôi có được phức tạp hơn, tôi 629 00:25:44,260 --> 00:25:47,060 sẽ có một bản tóm tắt của tất cả những điều tôi đã viết. 630 00:25:47,060 --> 00:25:48,050 Vì vậy, đó là nó ở đó. 631 00:25:48,050 --> 00:25:52,350 Vì vậy, hãy để tôi thu nhỏ và đi xuống này cửa sổ terminal. 632 00:25:52,350 --> 00:25:54,570 >> Vì vậy, đây có lẽ là mới đối với nhiều người. 633 00:25:54,570 --> 00:25:57,260 Nếu bạn đã không bao giờ được sử dụng một môi trường dòng lệnh, bạn đã không bao giờ 634 00:25:57,260 --> 00:26:00,020 sử dụng hệ điều hành DOS, hoặc bạn đã không bao giờ được sử dụng Linux, hoặc bạn đã không bao giờ mở 635 00:26:00,020 --> 00:26:02,550 Mac OS cửa sổ terminal của bạn, có rất nhiều điều bạn 636 00:26:02,550 --> 00:26:04,820 có thể làm với các giao diện, chẳng hạn như chỉ trỏ, và nhấp vào, và 637 00:26:04,820 --> 00:26:07,080 kéo, và thả, và như thế, nhưng nói chung - 638 00:26:07,080 --> 00:26:09,360 chắc chắn trong thế giới của khoa học máy tính - 639 00:26:09,360 --> 00:26:11,580 bằng cách sử dụng một dòng lệnh, nơi mà bạn không có con chuột của bạn 640 00:26:11,580 --> 00:26:14,220 nói chung, bạn chỉ có bàn phím của bạn, thực sự là rất nhiều 641 00:26:14,220 --> 00:26:17,260 mạnh hơn so với giao diện, một khi bạn đã thích nghi với 642 00:26:17,260 --> 00:26:18,580 các lệnh. 643 00:26:18,580 --> 00:26:20,940 Và bạn loại phóng được bản thân cần để trỏ và nhấn 644 00:26:20,940 --> 00:26:21,690 ở tất cả mọi thứ. 645 00:26:21,690 --> 00:26:23,890 Vì vậy, trong gedit chúng tôi sẽ sắp xếp của có tốt nhất của cả hai thế giới. 646 00:26:23,890 --> 00:26:25,600 Chúng tôi có thể kéo và thả văn bản, chúng ta có thể nhìn thấy nó 647 00:26:25,600 --> 00:26:26,840 tốt đẹp và mã màu sắc. 648 00:26:26,840 --> 00:26:29,630 Nhưng khi nói đến thời gian để chạy chương trình của chúng tôi, chúng tôi sẽ đôi khi 649 00:26:29,630 --> 00:26:31,750 chỉ cần sử dụng cửa sổ nhỏ ở đây. 650 00:26:31,750 --> 00:26:33,460 >> Vì vậy, tôi sẽ đi trước và làm điều này. 651 00:26:33,460 --> 00:26:36,420 Trong cửa sổ màu đen và trắng phía dưới, tôi sẽ đi trước 652 00:26:36,420 --> 00:26:37,890 và viết kêu vang. 653 00:26:37,890 --> 00:26:40,130 Và kêu vang là tên của một trình biên dịch. 654 00:26:40,130 --> 00:26:43,310 Đó là một chương trình chuyển đổi mã nguồn của tôi 655 00:26:43,310 --> 00:26:48,770 vào, vì vậy, mã đối tượng. 656 00:26:48,770 --> 00:26:51,270 0 và 1, chúng ta đã thấy một thời gian ngắn hồi tuần trước. 657 00:26:51,270 --> 00:26:53,700 Nhớ lại từ tuần trước, chúng tôi đã hứa rằng chúng tôi sẽ 658 00:26:53,700 --> 00:26:55,920 đi từ một cái gì đó như thế này - chúng tôi cần thiết để được 659 00:26:55,920 --> 00:26:57,010 một cái gì đó như thế này - 660 00:26:57,010 --> 00:26:58,700 và điều này chắc chắn không phải là một cái gì đó mà một con người sẽ 661 00:26:58,700 --> 00:26:59,690 làm bằng tay. 662 00:26:59,690 --> 00:27:01,980 Vì vậy, thay vào đó chúng ta sẽ sử dụng chương trình, và chương trình trong 663 00:27:01,980 --> 00:27:03,430 trường hợp này được gọi là kêu vang. 664 00:27:03,430 --> 00:27:06,020 Và tên của chương trình của tôi là hello.c. 665 00:27:06,020 --> 00:27:09,670 Vì vậy, để biên dịch hello.c từ mã nguồn vào 666 00:27:09,670 --> 00:27:12,930 mã đối tượng, hoặc 0 và 1, nó là đủ để chỉ cần làm 667 00:27:12,930 --> 00:27:14,820 điều này và nhấn Enter. 668 00:27:14,820 --> 00:27:16,850 >> Được rồi, có vẻ như không có gì đã xảy ra. 669 00:27:16,850 --> 00:27:20,450 Nhưng tôi biết bây giờ, hoặc từ tuần trước, tên mặc định của 670 00:27:20,450 --> 00:27:24,920 một chương trình, khi viết bằng C, điên rồ gọi là a.out. 671 00:27:24,920 --> 00:27:26,610 Uninteresting nhất tên mà bạn có thể đi lên với. 672 00:27:26,610 --> 00:27:28,790 A là chữ cái đầu tiên của bảng chữ cái, ra là những gì đã được 673 00:27:28,790 --> 00:27:29,960 kết quả, nhưng để được nó. 674 00:27:29,960 --> 00:27:33,570 Đây là chương trình của tôi, và bây giờ dot dấu gạch chéo, như chúng ta sẽ thấy, 675 00:27:33,570 --> 00:27:36,170 thực sự chỉ là một loại tính năng bảo mật, bởi vì 676 00:27:36,170 --> 00:27:38,250 a.out là một chương trình tôi đã viết. 677 00:27:38,250 --> 00:27:39,650 Nó đã không đến với máy tính của tôi, đó là 678 00:27:39,650 --> 00:27:40,790 không phải trong Program Files. 679 00:27:40,790 --> 00:27:42,910 Nó không phải trong thư mục Ứng dụng hệ điều hành Mac OS. 680 00:27:42,910 --> 00:27:45,740 Tôi cần phải được siêu rõ ràng với máy tính, và nói 681 00:27:45,740 --> 00:27:49,030 chương trình này, a.out, trong thư mục hiện tại, 682 00:27:49,030 --> 00:27:50,260 thư mục hiện tại. 683 00:27:50,260 --> 00:27:53,160 Và cách bạn đại diện này trong một môi trường như thế này 684 00:27:53,160 --> 00:27:57,070 được chấm đại diện cho bất kỳ thư mục mà bạn đang nhập 685 00:27:57,070 --> 00:27:59,420 Và như vậy / chỉ có nghĩa là a.out chạy 686 00:27:59,420 --> 00:28:00,530 trong thư mục hiện hành. 687 00:28:00,530 --> 00:28:04,830 Và tôi chạy với Enter, và thì đấy, chương trình đầu tiên của tôi. 688 00:28:04,830 --> 00:28:05,990 >> Bây giờ hãy để tôi đi một bước lại. 689 00:28:05,990 --> 00:28:08,280 Cửa sổ này là một chút nhỏ, và nhận ra rằng phía dưới 690 00:28:08,280 --> 00:28:10,340 còn lại của thiết bị ở đây là biểu tượng khác. 691 00:28:10,340 --> 00:28:12,660 Một là Chrome, nên khá quen thuộc, chỉ cần một trang web 692 00:28:12,660 --> 00:28:14,350 trình duyệt bên trong của thiết bị. 693 00:28:14,350 --> 00:28:16,340 Và điều này biểu tượng màu đen và trắng chỉ là một 694 00:28:16,340 --> 00:28:17,720 cửa sổ lớn hơn thiết bị đầu cuối. 695 00:28:17,720 --> 00:28:19,830 Vì vậy, nếu nó được một chút phiền phức để sắp xếp của có chỉ 696 00:28:19,830 --> 00:28:22,270 lát nhỏ bé này một cửa sổ tương tác 697 00:28:22,270 --> 00:28:24,370 với các chương trình, chúng tôi thay vì có thể làm điều này. 698 00:28:24,370 --> 00:28:26,640 Và bây giờ hãy để tôi bắt đầu gõ một vài sớm 699 00:28:26,640 --> 00:28:27,980 là các lệnh quen thuộc. 700 00:28:27,980 --> 00:28:28,900 ls. 701 00:28:28,900 --> 00:28:31,410 Vì vậy, ls là lệnh niêm yết. 702 00:28:31,410 --> 00:28:33,900 Vì vậy, trong một hệ điều hành Mac hoặc Windows, bạn thường sẽ tăng gấp đôi vào một 703 00:28:33,900 --> 00:28:36,510 thư mục và sau đó, thì đấy, bạn thấy tất cả các tập tin khác nhau 704 00:28:36,510 --> 00:28:37,210 và thư mục. 705 00:28:37,210 --> 00:28:39,650 Trong một môi trường dòng lệnh, nơi mà bạn chỉ có thể gõ 706 00:28:39,650 --> 00:28:42,390 lệnh hoặc văn bản, ls là tương đương. 707 00:28:42,390 --> 00:28:44,380 Vì thế hãy cho tôi biết những gì trong thư mục này. 708 00:28:44,380 --> 00:28:46,540 >> Bây giờ có một loạt các công cụ ở đây đó là cả một chút 709 00:28:46,540 --> 00:28:48,190 quen thuộc và xa lạ chút. 710 00:28:48,190 --> 00:28:50,740 Nhưng chú ý rằng giống như Windows và Mac OS, jharvard 711 00:28:50,740 --> 00:28:52,190 có một thư mục máy tính để bàn. 712 00:28:52,190 --> 00:28:54,520 Vì vậy, bất kỳ biểu tượng trên máy tính để bàn của tôi xảy ra 713 00:28:54,520 --> 00:28:55,650 có trong thư mục đó. 714 00:28:55,650 --> 00:28:57,250 Có một thư mục tải về, các công cụ mà 715 00:28:57,250 --> 00:28:58,890 Chrome có thể đặt ở đó. 716 00:28:58,890 --> 00:28:59,250 Dropbox. 717 00:28:59,250 --> 00:29:01,820 Vì vậy, thiết bị đi kèm với built-in hỗ trợ cho Dropbox 718 00:29:01,820 --> 00:29:04,500 để qua học kỳ, bạn có thể đồng bộ hóa với Dropbox của bạn 719 00:29:04,500 --> 00:29:06,420 tài khoản để tất cả các chương trình của bạn được sao lưu. 720 00:29:06,420 --> 00:29:08,050 Chúng tôi truy cập trên máy tính khác của bạn. 721 00:29:08,050 --> 00:29:09,780 Nếu bất cứ điều gì bao giờ đi sai với thiết bị này, bạn có thể 722 00:29:09,780 --> 00:29:11,340 rất dễ dàng phục hồi từ Dropbox. 723 00:29:11,340 --> 00:29:12,940 Vì vậy, thư mục đó có cho điều đó. 724 00:29:12,940 --> 00:29:14,660 Có hai tập tin mà tôi đã thực hiện hello.c 725 00:29:14,660 --> 00:29:16,540 và a.out. 726 00:29:16,540 --> 00:29:18,530 Và sau đó bên phải có một số thư mục khác mà chúng tôi sẽ 727 00:29:18,530 --> 00:29:20,710 nhận được vào cuối học kỳ, với các trang web 728 00:29:20,710 --> 00:29:21,540 lập trình. 729 00:29:21,540 --> 00:29:26,160 Vì vậy, khi tôi làm /, a.out, Enter, nói đi 730 00:29:26,160 --> 00:29:29,460 trong thư mục trong thư mục hiện hành, và chạy 731 00:29:29,460 --> 00:29:32,465 chương trình được gọi là a.out ngay tại đó. 732 00:29:32,465 --> 00:29:35,810 >> Được rồi, vì vậy đó là đẹp và tốt, nhưng nó không phải tất cả những điều đó 733 00:29:35,810 --> 00:29:38,550 hấp dẫn để viết một chương trình được gọi là giúp a.out. 734 00:29:38,550 --> 00:29:40,790 Vì vậy, chúng tôi thực sự có thể làm điều này một chút khác nhau. 735 00:29:40,790 --> 00:29:43,980 Vì vậy, thay vì kêu vang chạy chỉ, hello.c, hãy thêm 736 00:29:43,980 --> 00:29:46,850 những gì được gọi là một đối số dòng lệnh. 737 00:29:46,850 --> 00:29:50,730 Vì vậy, một đối số dòng lệnh, hay một chuyển đổi trong trường hợp này, chỉ là 738 00:29:50,730 --> 00:29:54,930 một từ hoặc cụm từ mà bạn gõ tại dấu nhắc sau 739 00:29:54,930 --> 00:29:56,290 chương trình mà bạn muốn chạy. 740 00:29:56,290 --> 00:29:59,970 Vì vậy, trong trường hợp này, kêu vang là chương trình tôi muốn chạy,-o 741 00:29:59,970 --> 00:30:03,480 có nghĩa là đầu ra một tập tin mà không còn a.out gọi là. 742 00:30:03,480 --> 00:30:07,510 Đầu ra một tập tin gọi là hello, và làm như vậy bằng cách biên dịch 743 00:30:07,510 --> 00:30:10,200 cuối cùng từ trên đường dây, hello.c. 744 00:30:10,200 --> 00:30:13,200 Vì vậy, trong ngắn hạn, đây là một cải tiến rất cận biên, theo đó 745 00:30:13,200 --> 00:30:15,850 thay vì phải này a.out tập tin tên là ngớ ngẩn, 746 00:30:15,850 --> 00:30:21,430 Bây giờ tôi có thể làm kêu vang-o hello, sau đó hello.c, và 747 00:30:21,430 --> 00:30:22,530 sau đó nhấn Enter. 748 00:30:22,530 --> 00:30:25,510 Dường như không có gì xảy ra, nhưng một lần nữa giống như với 0 - 749 00:30:25,510 --> 00:30:28,510 có vẻ như không có gì xảy ra có nghĩa là không có gì sai trái xảy ra - 750 00:30:28,510 --> 00:30:31,460 do đó, chúng ta hãy làm ls Enter, và thực sự bây giờ tôi 751 00:30:31,460 --> 00:30:32,780 có một chương trình hello. 752 00:30:32,780 --> 00:30:38,510 Vì vậy, nếu tôi gõ chào bây giờ, lệnh không được tìm thấy. 753 00:30:38,510 --> 00:30:39,440 OK, /. 754 00:30:39,440 --> 00:30:40,220 Vì vậy, chính xác. 755 00:30:40,220 --> 00:30:43,170 Vì vậy, bởi vì chương trình này, tôi đã viết, và nó đã không đi kèm với 756 00:30:43,170 --> 00:30:45,810 máy tính, / hello, Enter, có nghĩa là 757 00:30:45,810 --> 00:30:47,350 Tôi bây giờ đang chạy. 758 00:30:47,350 --> 00:30:48,440 >> Vì vậy, đó là nó ở đó. 759 00:30:48,440 --> 00:30:51,070 Bây giờ những gì chúng tôi cuối cùng sẽ nhận được nhiều hơn và nhiều hơn nữa dòng lệnh 760 00:30:51,070 --> 00:30:54,110 đối số cho phép chúng ta làm nhiều hơn nữa, nhưng chỉ đối với những người cho 761 00:30:54,110 --> 00:30:57,760 người này có thể là quá cũ, hãy để tôi thực sự đi vào một 762 00:30:57,760 --> 00:31:01,910 thư mục ở đây và chỉ cung cấp cho bạn một lời trêu ghẹo làm thế nào khác chúng tôi 763 00:31:01,910 --> 00:31:05,770 có thể đi về thực hiện hello thế giới. 764 00:31:05,770 --> 00:31:10,730 Hãy để tôi đi vào đây, và tôi sẽ để mở nó. 765 00:31:10,730 --> 00:31:13,090 Vì vậy, trên thực tế, tôi sẽ giải thích những gì tôi đang làm, do đó, 766 00:31:13,090 --> 00:31:15,610 này là hữu ích. 767 00:31:15,610 --> 00:31:17,410 Hãy để tôi trở lại. 768 00:31:17,410 --> 00:31:19,620 >> Vì vậy, tôi đã làm điều này một thời gian dài. 769 00:31:19,620 --> 00:31:23,030 Vì vậy, nhận thấy bên phải có một vài 770 00:31:23,030 --> 00:31:26,940 thư mục được đặt tên kỳ quặc source1m và source1w. 771 00:31:26,940 --> 00:31:28,830 Đây chỉ là ngớ ngẩn ước chúng tôi sử dụng. 772 00:31:28,830 --> 00:31:31,825 Nguồn chỉ có nghĩa là mã nguồn, 1 có nghĩa là đây là một tuần, và 773 00:31:31,825 --> 00:31:34,000 m có nghĩa là nó Thứ hai, và w có nghĩa là nó thứ tư. 774 00:31:34,000 --> 00:31:34,900 Vì vậy, không có gì khó hiểu đó. 775 00:31:34,900 --> 00:31:37,830 Nó chỉ là ký hiệu viết tắt. 776 00:31:37,830 --> 00:31:39,860 Những điều này màu xanh là các thư mục, hay còn gọi là 777 00:31:39,860 --> 00:31:40,630 thư mục. 778 00:31:40,630 --> 00:31:43,870 Tôi muốn đi vào thư mục đó, và trên một máy tính bình thường 779 00:31:43,870 --> 00:31:45,710 Tôi chỉ có thể tăng gấp đôi nhấp chuột vào biểu tượng thư mục và 780 00:31:45,710 --> 00:31:46,810 có tất cả các tác phẩm của tôi. 781 00:31:46,810 --> 00:31:49,270 Tuy nhiên, trong một môi trường dòng lệnh, tôi có thể không hoàn toàn làm 782 00:31:49,270 --> 00:31:52,640 đó, vì vậy thay vào đó, tôi phải thay đổi thư mục bằng tay. 783 00:31:52,640 --> 00:31:57,900 Vì vậy, nếu tôi gõ cd và sau đó source1m, Enter, thông báo rằng 784 00:31:57,900 --> 00:32:01,180 dấu nhắc của tôi, điều màu trắng ở bên trái, chỉ cần thay đổi. 785 00:32:01,180 --> 00:32:03,690 Và thực sự, khi nó chỉ cho biết dấu ngoặc đơn và sau đó là 786 00:32:03,690 --> 00:32:06,450 squiggle ít, biểu tượng dấu ngã, mà chỉ có nghĩa là tôi 787 00:32:06,450 --> 00:32:08,800 trong thư mục nhà của John Harvard, tài liệu của mình, 788 00:32:08,800 --> 00:32:10,390 các tập tin cá nhân của mình. 789 00:32:10,390 --> 00:32:14,000 Nhưng bây giờ trong dấu ngoặc đơn, nó nói ~ / source1m. 790 00:32:14,000 --> 00:32:17,090 Điều này chỉ có nghĩa là tôi đang ở trong một thư mục được gọi là source1m 791 00:32:17,090 --> 00:32:19,160 đó là trong thư mục nhà của John Harvard. 792 00:32:19,160 --> 00:32:22,030 Vì vậy, nếu bây giờ tôi muốn liệt kê các tập tin trong thư mục này, dễ dàng 793 00:32:22,030 --> 00:32:25,300 câu hỏi, tôi chỉ cần gõ ls. 794 00:32:25,300 --> 00:32:28,860 Và bây giờ tôi thấy tất cả các tập tin mà tôi tạo ra trước cho ngày hôm nay 795 00:32:28,860 --> 00:32:31,020 bài giảng, tất cả, hoặc hầu hết trong số đó, xảy ra 796 00:32:31,020 --> 00:32:32,740 để kết thúc. c. 797 00:32:32,740 --> 00:32:36,210 >> Vì vậy, hãy để tôi đi trước và chạy gedit của một chương trình được gọi là 798 00:32:36,210 --> 00:32:39,140 holloway.c, được viết bởi một số hacker ngẫu nhiên 799 00:32:39,140 --> 00:32:42,920 trên Internet, trông một chút như thế này. 800 00:32:42,920 --> 00:32:44,880 Và chúng tôi sẽ không phải đi qua một trong những điều này trong bất kỳ 801 00:32:44,880 --> 00:32:48,530 chi tiết, nhưng đối với những người thoải mái hơn, đặc biệt, nếu 802 00:32:48,530 --> 00:32:50,935 bạn muốn để có một đoán là những gì chương trình này không có gì ở đây. 803 00:32:57,950 --> 00:32:59,990 Hãy yên tâm, cho dù bạn ít hơn hoặc thoải mái hơn, 804 00:32:59,990 --> 00:33:01,655 chúng ta thậm chí không nhận được các loại điều này vào cuối năm 805 00:33:01,655 --> 00:33:02,160 học kỳ này. 806 00:33:02,160 --> 00:33:05,390 Đây là một ví dụ về một cuộc thi obfuscated C, là những gì mà 807 00:33:05,390 --> 00:33:08,390 có nghĩa là viết chương trình khó hiểu nhất bạn có thể có 808 00:33:08,390 --> 00:33:10,820 để có thể vượt qua những người khác thông minh, những người tương tự 809 00:33:10,820 --> 00:33:13,010 cố gắng để viết những điều và cho thấy rằng họ có thể viết 810 00:33:13,010 --> 00:33:14,280 những điều khó hiểu hơn hơn bạn. 811 00:33:14,280 --> 00:33:17,290 Vì vậy, đây không phải là một ví dụ về một chương trình tốt bằng văn bản từ 812 00:33:17,290 --> 00:33:21,260 quan điểm của phong cách này là một ví dụ của một chương trình 813 00:33:21,260 --> 00:33:22,860 thắng một cuộc thi, người đang cố gắng 814 00:33:22,860 --> 00:33:24,090 mơ hồ và trừu tượng. 815 00:33:24,090 --> 00:33:27,670 >> Vì vậy, nếu chúng ta chạy điều này, để tôi đi vào cửa sổ thiết bị đầu cuối của tôi, 816 00:33:27,670 --> 00:33:28,110 do đó, để nói chuyện. 817 00:33:28,110 --> 00:33:29,650 Vì vậy, môi trường màu đen và trắng này được gọi là 818 00:33:29,650 --> 00:33:31,160 cửa sổ terminal nói chung. 819 00:33:31,160 --> 00:33:32,600 Hãy để tôi đi trước và biên dịch nó. 820 00:33:32,600 --> 00:33:34,440 Tôi sẽ không sử dụng kêu vang, bởi vì chương trình này là một 821 00:33:34,440 --> 00:33:36,340 chút khó hiểu và nó cần một khác nhau 822 00:33:36,340 --> 00:33:38,190 trình biên dịch, được gọi là GCC. 823 00:33:38,190 --> 00:33:39,200 Nhưng nó không làm điều tương tự. 824 00:33:39,200 --> 00:33:41,130 Nó có mã nguồn để mã đối tượng. 825 00:33:41,130 --> 00:33:43,940 Và bây giờ nếu tôi chạy a.out, chương trình mà bạn 826 00:33:43,940 --> 00:33:46,065 chỉ thấy hiện điều này. 827 00:33:49,220 --> 00:33:51,170 Vì vậy, đồng nghiệp rằng năm đó giành chiến thắng cuộc thi đó. 828 00:33:51,170 --> 00:33:54,020 Nhưng dù sao, chúng tôi không đi theo hướng đó, cho mỗi gia nhập. 829 00:33:54,020 --> 00:33:57,400 >> Vì vậy, chúng ta hãy thực sự cố gắng tách chúng ta có thể làm gì 830 00:33:57,400 --> 00:33:59,540 với các khối xây dựng cơ bản để thực hiện nhiều hơn và nhiều hơn nữa 831 00:33:59,540 --> 00:34:00,590 thú vị chương trình. 832 00:34:00,590 --> 00:34:02,800 Vì vậy, chúng tôi đã viết một chương trình, chúng tôi đã chạy một chương trình. 833 00:34:02,800 --> 00:34:05,780 Bây giờ chúng ta thực sự có thể đơn giản hóa và không còn phải viết 834 00:34:05,780 --> 00:34:07,210 kêu vang lời tại dấu nhắc. 835 00:34:07,210 --> 00:34:10,710 Nó chỉ ra như các chương trình của chúng tôi nhận được khó hiểu hơn, chúng ta có thể, hoặc 836 00:34:10,710 --> 00:34:14,699 phức tạp hơn thay vào đó, chúng ta thực sự có thể chạy lệnh này. 837 00:34:14,699 --> 00:34:17,610 Vì vậy, hãy để tôi quay trở lại thư mục nhà của tôi, có thể nói, hãy để tôi 838 00:34:17,610 --> 00:34:20,750 loại bỏ - rm là lệnh loại bỏ - Tôi sẽ để loại bỏ 839 00:34:20,750 --> 00:34:23,060 các tập tin được gọi là a.out và hello. 840 00:34:23,060 --> 00:34:25,489 Và bây giờ thấy trong một môi trường dòng lệnh, giống như trong 841 00:34:25,489 --> 00:34:27,800 một giao diện, bạn sẽ có được nhắc nhở. Tôi không thể nhấn một nút mặc dù, tôi 842 00:34:27,800 --> 00:34:31,040 phải gõ y cho có, y có. 843 00:34:31,040 --> 00:34:33,460 Và bây giờ nếu tôi gõ ls một lần nữa, thông báo rằng những người màu xanh lá cây 844 00:34:33,460 --> 00:34:35,469 chương trình - a.out và hello - 845 00:34:35,469 --> 00:34:35,734 đã mất hết. 846 00:34:35,734 --> 00:34:37,340 Hãy coi chừng rm. 847 00:34:37,340 --> 00:34:39,739 Nó có thể làm những điều xấu, cũng giống như bạn có thể bằng cách kéo 848 00:34:39,739 --> 00:34:40,810 điều cần thùng rác của bạn. 849 00:34:40,810 --> 00:34:43,989 >> Vì vậy, bây giờ chúng ta hãy đi trước và tôi có thể làm điều này - kêu vang-o 850 00:34:43,989 --> 00:34:45,139 hello, hello - 851 00:34:45,139 --> 00:34:46,884 Tôi đã chán cách gõ lệnh này. 852 00:34:46,884 --> 00:34:48,080 Mặc dù tôi đã gõ nó một chút một cách nhanh chóng. 853 00:34:48,080 --> 00:34:51,870 Vì vậy, chúng tôi thay vì có thể làm xin chào. 854 00:34:51,870 --> 00:34:53,880 Vì vậy, chắc không phải là một trình biên dịch. 855 00:34:53,880 --> 00:34:57,720 Nó chỉ là một chương trình thân thiện đến với Linux, trong 856 00:34:57,720 --> 00:34:59,070 trường hợp hệ điều hành - 857 00:34:59,070 --> 00:35:02,480 tự động hóa quá trình biên dịch chương trình. 858 00:35:02,480 --> 00:35:05,555 Vì vậy, thay vì ghi nhớ kêu vang-o tên tập tin và 859 00:35:05,555 --> 00:35:08,190 sau đó ..., đặc biệt là khi những dòng có được lâu hơn và 860 00:35:08,190 --> 00:35:10,110 lâu hơn, tôi chỉ có thể viết thực hiện. 861 00:35:10,110 --> 00:35:12,030 Và điều này sẽ nhổ ra một bó toàn bộ những thứ đó 862 00:35:12,030 --> 00:35:13,940 cuối cùng chúng ta sẽ thấy trong học kỳ này. 863 00:35:13,940 --> 00:35:17,500 Nhưng hãy chú ý bây giờ nếu tôi gõ ls, hello là trở lại trong thư mục của tôi. 864 00:35:17,500 --> 00:35:19,850 Và thực sự tôi có thể chạy nó với / hello. 865 00:35:19,850 --> 00:35:23,330 Vì vậy, hãy chỉ tự động hóa quá trình chạy những gì đã được, 866 00:35:23,330 --> 00:35:26,910 trong trường hợp này, một, dài hơn nhiều lệnh phức tạp hơn. 867 00:35:26,910 --> 00:35:29,060 Vì vậy, chúng ta sẽ bắt đầu sử dụng làm cho, chỉ vì nó là rất nhiều 868 00:35:29,060 --> 00:35:30,530 thân thiện với người sử dụng hơn. 869 00:35:30,530 --> 00:35:32,770 >> Nhưng bây giờ chúng ta hãy làm một chương trình thú vị hơn 870 00:35:32,770 --> 00:35:34,650 hơn là chỉ nói hello. 871 00:35:34,650 --> 00:35:38,680 Vì vậy, trong các chương trình, chúng tôi đã viết vậy, đến nay có chính. 872 00:35:38,680 --> 00:35:40,890 Đó chỉ là điều mặc định đá tất cả mọi thứ ra. 873 00:35:40,890 --> 00:35:43,340 Nhưng cũng có những chức năng khác ra khỏi đó là tốt, và 874 00:35:43,340 --> 00:35:45,890 stdio.h là điều mà chúng ta thấy ở đầu của chúng tôi 875 00:35:45,890 --> 00:35:48,480 tập tin trước khi, và đó là những gì được biết đến như các thư viện chuẩn. 876 00:35:48,480 --> 00:35:51,300 Bên trong của thư viện chuẩn là một bó toàn bộ các chức năng 877 00:35:51,300 --> 00:35:53,850 mà người khác đã viết, và chúng tôi có thể bắt đầu sử dụng các 878 00:35:53,850 --> 00:35:55,050 chức năng để viết nhiều hơn nữa 879 00:35:55,050 --> 00:35:56,760 thú vị chương trình mình. 880 00:35:56,760 --> 00:35:58,370 >> Vì vậy, hãy để tôi đi trở lại thiết bị. 881 00:35:58,370 --> 00:35:59,820 Tôi sẽ để đóng cửa sổ thiết bị đầu cuối. 882 00:35:59,820 --> 00:36:02,630 Tôi sẽ đóng những điều chúng tôi đã viết trước đó, và chỉ cần đi 883 00:36:02,630 --> 00:36:07,350 vào hello.c, và chú ý bây giờ tôi có thể làm như sau. 884 00:36:07,350 --> 00:36:09,730 Xin chào thế giới không phải là tất cả những gì thú vị, tôi muốn 885 00:36:09,730 --> 00:36:11,770 cá nhân hóa chương trình này cho bản thân mình. 886 00:36:11,770 --> 00:36:13,440 Vì vậy, thay vì nói thế giới, tôi sẽ 887 00:36:13,440 --> 00:36:14,830 đi trước và nói - 888 00:36:14,830 --> 00:36:16,880 Tôi có thể gõ David - nhưng điều này thực sự là loại 889 00:36:16,880 --> 00:36:18,050 về cơ bản là giống nhau. 890 00:36:18,050 --> 00:36:19,970 Nhưng chúng ta hãy thử ý tưởng này giữ chỗ. 891 00:36:19,970 --> 00:36:24,460 Nhớ lại rằng trong C, đúng hơn là trong printf, chúng tôi đã có những 892 00:36:24,460 --> 00:36:28,110 placeholders, và có nhiều hơn chỉ là% d. 893 00:36:28,110 --> 00:36:31,150 Vì vậy,% d, nhanh chóng kiểm tra sanity. 894 00:36:31,150 --> 00:36:32,310 Được rồi, số thập phân, đó là nó. 895 00:36:32,310 --> 00:36:33,860 Chữ số thập phân, đó là tất cả. 896 00:36:33,860 --> 00:36:37,755 Vì vậy,% c, như chúng ta sẽ gặp phải, là có được một nhân vật. 897 00:36:37,755 --> 00:36:40,530 Đặt một nhân vật ở đây, một lá thư từ a đến z, 898 00:36:40,530 --> 00:36:41,600 hoặc biểu tượng dấu chấm câu. 899 00:36:41,600 --> 00:36:45,590 Một nhân vật duy nhất,% f, ai biết từ các ngôn ngữ khác? 900 00:36:45,590 --> 00:36:47,020 Vì vậy, một giá trị dấu chấm động. 901 00:36:47,020 --> 00:36:47,880 Một số thực. 902 00:36:47,880 --> 00:36:51,550 Vì vậy, không phải là một số thập phân - điều này thực sự là một số thực với 903 00:36:51,550 --> 00:36:54,130 một điểm thập phân, và một số các chữ số bên trái 904 00:36:54,130 --> 00:36:55,520 và bên phải của nó. 905 00:36:55,520 --> 00:36:58,060 % S, chuỗi. 906 00:36:58,060 --> 00:36:59,530 Đó là một trong chúng ta sẽ nhìn thấy khá thường xuyên. 907 00:36:59,530 --> 00:37:02,140 Một chuỗi, một lần nữa, chỉ là một từ, một cụm từ, một chuỗi các 908 00:37:02,140 --> 00:37:03,330 cá nhân ký tự. 909 00:37:03,330 --> 00:37:06,730 Và cuối cùng, lld? 910 00:37:06,730 --> 00:37:08,210 Vì vậy, đây là một trường hợp góc. 911 00:37:08,210 --> 00:37:09,850 Long, dài thập phân. 912 00:37:09,850 --> 00:37:12,035 Vì vậy, nếu bạn muốn không chỉ là một số lượng lớn này, bạn 913 00:37:12,035 --> 00:37:14,160 muốn có một số lớn hơn, bạn sẽ phải chỉ định để 914 00:37:14,160 --> 00:37:16,400 máy tính mà nó là của một kích thước cụ thể. 915 00:37:16,400 --> 00:37:17,610 >> Vì vậy, hãy tinh chỉnh một chút. 916 00:37:17,610 --> 00:37:20,610 Chứ không phải là mã cứng trong David, hãy để tôi hơi 917 00:37:20,610 --> 00:37:22,460 động nói% s. 918 00:37:22,460 --> 00:37:25,790 Vì vậy, đặt% s ở đây, mà là một giữ chỗ cho một chuỗi. 919 00:37:25,790 --> 00:37:30,500 Sau đó, hãy để tôi làm dấu phẩy, và sau đó "David" ở đây. 920 00:37:30,500 --> 00:37:32,770 Bây giờ điều này không phải là tất cả những trí tuệ thú vị, 921 00:37:32,770 --> 00:37:35,060 bởi vì tất cả những gì tôi đã làm được thực sự tạo ra thêm công việc vì 922 00:37:35,060 --> 00:37:35,790 máy tính. 923 00:37:35,790 --> 00:37:39,660 Thay vì nói cho máy tính làm điều này cùng một lúc, tôi bây giờ 924 00:37:39,660 --> 00:37:43,760 nói rằng làm điều này và chèn một chuỗi cuối cùng, dấu phẩy, 925 00:37:43,760 --> 00:37:44,950 ở đây là chuỗi đó. 926 00:37:44,950 --> 00:37:47,220 Vì vậy, đây không phải là một cải tiến tốt hơn, nhưng nó ít nhất là 927 00:37:47,220 --> 00:37:49,010 một bước tiến tới một chương trình thú vị hơn. 928 00:37:49,010 --> 00:37:51,240 Bởi vì bây giờ, hãy để tôi đi trước và làm cho cửa sổ này một chút 929 00:37:51,240 --> 00:37:56,850 lớn hơn, hãy để tôi đi trước và chạy làm cho xin chào. 930 00:37:56,850 --> 00:38:01,340 Và bây giờ, / a.out là không làm việc, tại sao? 931 00:38:03,880 --> 00:38:05,570 Được rồi, bây giờ nó được gọi là hello. 932 00:38:05,570 --> 00:38:09,400 Vì vậy, một lần nữa, và cũng kêu vang với một o-, đổi tên thành 933 00:38:09,400 --> 00:38:11,120 chương trình để có một cái gì đó thú vị hơn. 934 00:38:11,120 --> 00:38:13,060 Và thì đấy: bây giờ nó nói xin chào David. 935 00:38:13,060 --> 00:38:14,590 >> Được rồi, vẫn còn là một chương trình ngu ngốc. 936 00:38:14,590 --> 00:38:18,070 Vì vậy, bây giờ chúng ta hãy thực sự quay trở lại đây và giới thiệu các khái niệm 937 00:38:18,070 --> 00:38:18,810 của một biến. 938 00:38:18,810 --> 00:38:21,600 Nó sẽ không được tốt đẹp nếu tôi có thể khai báo một biến 939 00:38:21,600 --> 00:38:23,150 có loại là chuỗi? 940 00:38:23,150 --> 00:38:26,720 Và giá trị của biến thực sự đến từ người sử dụng 941 00:38:26,720 --> 00:38:27,810 chính mình. 942 00:38:27,810 --> 00:38:30,240 Vì vậy, tùy tiện, tôi sẽ gọi s biến của tôi, đó là 943 00:38:30,240 --> 00:38:32,410 chỉ là một quy ước chung khi bạn có một biến gọi là 944 00:38:32,410 --> 00:38:33,250 các chuỗi. 945 00:38:33,250 --> 00:38:35,670 Tôi sẽ làm dấu bằng, và sau đó tôi sẽ gọi một 946 00:38:35,670 --> 00:38:38,030 chức năng gọi là GetString. 947 00:38:38,030 --> 00:38:40,830 Vì vậy, GetString không phải là một cái gì đó mà đến được xây dựng vào C. Đó là 948 00:38:40,830 --> 00:38:43,330 một chức năng mà các nhân viên CS50 đã viết, thực sự chỉ dành cho 949 00:38:43,330 --> 00:38:45,670 những cặp vợ chồng đầu tiên của tuần, để đơn giản hóa quá trình 950 00:38:45,670 --> 00:38:49,450 nhận được đầu vào người sử dụng và được người sử dụng đầu vào trong các hình thức 951 00:38:49,450 --> 00:38:51,960 các chuỗi, hoặc số, và như vậy. 952 00:38:51,960 --> 00:38:55,520 Vì vậy, GetString là giống như printf, nhưng rõ ràng chứ không phải là 953 00:38:55,520 --> 00:38:58,700 in nó sẽ làm những gì tên của nó nói, có được một chuỗi. 954 00:38:58,700 --> 00:39:00,970 Nhưng để sử dụng GetString, chúng ta sẽ phải thực hiện thay đổi 955 00:39:00,970 --> 00:39:03,180 ở đây, ngoài này. 956 00:39:03,180 --> 00:39:07,170 Vì vậy, bằng trực giác, chương trình này, hy vọng, bằng cách nào đó 957 00:39:07,170 --> 00:39:09,700 nhận được một chuỗi từ người dùng, và sau đó nó sẽ làm gì 958 00:39:09,700 --> 00:39:11,460 với chuỗi đó, được gọi là s? 959 00:39:15,060 --> 00:39:16,470 Nó chỉ để in nó, phải không? 960 00:39:16,470 --> 00:39:18,870 Vẫn không một chương trình kích thích bởi vì tất cả nó sẽ 961 00:39:18,870 --> 00:39:22,160 làm là cắm vào giá trị đó vào nơi mà% s 962 00:39:22,160 --> 00:39:23,750 nói rằng nó nên đi. 963 00:39:23,750 --> 00:39:25,290 >> Vì vậy, hãy cho thấy điều này trong hành động. 964 00:39:25,290 --> 00:39:27,040 Hãy để tôi tiết kiệm và thu nhỏ. 965 00:39:27,040 --> 00:39:30,280 Bây giờ trong cửa sổ thiết bị đầu cuối của tôi ở đây, lát nhỏ một, 966 00:39:30,280 --> 00:39:32,760 hãy để tôi một lần nữa làm xin chào. 967 00:39:32,760 --> 00:39:35,160 Được rồi, ah, damn, tôi có một bó toàn bộ lỗi. 968 00:39:35,160 --> 00:39:38,020 Hãy để tôi di chuyển lên, và chúng tôi nhìn thấy đầu tiên của chúng tôi - 969 00:39:38,020 --> 00:39:40,430 do đó, chúng ta hãy thực sự làm được điều này trong một cửa sổ lớn hơn, do đó bạn 970 00:39:40,430 --> 00:39:42,110 có thể thấy làm thế nào xấu tôi hơi say lên - 971 00:39:42,110 --> 00:39:44,460 do đó hãy hello. 972 00:39:44,460 --> 00:39:46,540 Được rồi, đó là một thảm họa, phải không? 973 00:39:46,540 --> 00:39:48,740 Tôi đã viết ba dòng mã, và 974 00:39:48,740 --> 00:39:50,070 nó cho tôi 12 lỗi. 975 00:39:50,070 --> 00:39:51,980 Vậy tại sao điều này? 976 00:39:51,980 --> 00:39:55,720 Vì vậy, may mắn thay, đôi khi khi bạn nhìn thấy nhiều, rất nhiều lỗi 977 00:39:55,720 --> 00:39:57,730 phun ra cùng một lúc, nó thực sự chỉ vì bạn đã 978 00:39:57,730 --> 00:39:59,760 nhầm lẫn các máy tính ở đây. 979 00:39:59,760 --> 00:40:02,330 Và nó vẫn còn bối rối bởi thời gian nó được xuống đây. 980 00:40:02,330 --> 00:40:04,400 Và do đó, nó chỉ bắt đầu vấp ngã, và vấp ngã, và 981 00:40:04,400 --> 00:40:07,310 phun ra nhiều thứ đáng sợ hơn là thực sự được áp dụng. 982 00:40:07,310 --> 00:40:10,120 Vì vậy, nói chung, luôn luôn bắt đầu với đầu. 983 00:40:10,120 --> 00:40:13,320 >> Vì vậy, hầu hết trên cùng thể hiện của màu đỏ, 984 00:40:13,320 --> 00:40:14,740 thông báo lỗi này. 985 00:40:14,740 --> 00:40:17,750 Sử dụng chuỗi định danh không khai báo, đã làm tôi 986 00:40:17,750 --> 00:40:19,160 có nghĩa là tiêu chuẩn trong? 987 00:40:19,160 --> 00:40:19,900 Tôi thì không. 988 00:40:19,900 --> 00:40:24,180 Tôi có nghĩa là chuỗi, nhưng điều này là bởi vì, cũng vậy, chuỗi từ 989 00:40:24,180 --> 00:40:26,020 mà tôi tiếp tục sử dụng bằng lời nói thực sự 990 00:40:26,020 --> 00:40:27,240 không tồn tại trong C hoặc. 991 00:40:27,240 --> 00:40:29,470 Đó là một cái gì đó chúng ta sẽ sử dụng chỉ trong tuần đầu tiên hoặc hai 992 00:40:29,470 --> 00:40:34,500 ở đây, nhưng nó tồn tại trong một tập tin gọi là cs50.h. 993 00:40:34,500 --> 00:40:37,110 Vì vậy, bây giờ, biết rằng có thư viện này khác 994 00:40:37,110 --> 00:40:39,330 nhân viên đã viết, vì vậy nó được viết gần đây 995 00:40:39,330 --> 00:40:40,510 stdio.h. 996 00:40:40,510 --> 00:40:45,020 Nhưng bên trong của cs50.h là một định nghĩa, một từ đồng nghĩa 997 00:40:45,020 --> 00:40:48,310 các loại, tạo ra chuỗi từ này. 998 00:40:48,310 --> 00:40:50,890 >> Vì vậy, bây giờ hãy để tôi quay trở lại cửa sổ thiết bị đầu cuối của tôi. 999 00:40:50,890 --> 00:40:53,200 Tôi sẽ rõ ràng cả đống lộn xộn này bằng cách Ctrl-L. Chúng tôi sẽ chỉ 1000 00:40:53,200 --> 00:40:55,700 cuốn bay mọi thứ sạch sẽ, và tôi sẽ đi trước và thực 1001 00:40:55,700 --> 00:40:57,860 xin chào một lần nữa, Enter. 1002 00:40:57,860 --> 00:40:59,440 Vì vậy, những gì đã xảy ra bây giờ? 1003 00:40:59,440 --> 00:41:01,150 Bây giờ tất cả những sai sót đi đi. 1004 00:41:01,150 --> 00:41:02,230 Vì vậy, những gì tôi có thực sự thực hiện? 1005 00:41:02,230 --> 00:41:05,920 Tôi đã chỉ dạy máy tính rằng chuỗi tồn tại, và nó 1006 00:41:05,920 --> 00:41:07,890 trong tập tin đó được gọi là cs50.h. 1007 00:41:07,890 --> 00:41:10,930 Vì vậy, ngừng phàn nàn, bởi vì bây giờ bạn biết nơi để tìm 1008 00:41:10,930 --> 00:41:13,220 đó là chức năng khai báo vậy để nói chuyện. 1009 00:41:13,220 --> 00:41:15,200 Trường hợp tồn tại trên thế giới. 1010 00:41:15,200 --> 00:41:18,820 >> Vì vậy, bây giờ tôi sẽ đi trước và chạy xin chào. 1011 00:41:18,820 --> 00:41:22,300 Tôi dường như có một vòng lặp vô hạn, không có gì đang xảy ra. 1012 00:41:25,530 --> 00:41:26,870 Vì vậy, tôi cần phải gõ một cái gì đó ở đây, ngay. 1013 00:41:26,870 --> 00:41:29,650 Dòng mã đầu tiên trong chương trình của tôi được getString. 1014 00:41:29,650 --> 00:41:31,750 Vì vậy, nó nghĩa là chờ đợi cho tôi để có được một chuỗi. 1015 00:41:31,750 --> 00:41:33,680 Vì vậy, trong ý nghĩa đó có, nó là một vòng lặp vô hạn. 1016 00:41:33,680 --> 00:41:36,520 Rõ ràng trong GetString là hành vi mặc định mà chúng ta 1017 00:41:36,520 --> 00:41:37,510 viết - các nhân viên - 1018 00:41:37,510 --> 00:41:39,550 mà chỉ nói rằng chờ đợi và chờ đợi và chờ đợi và chờ đợi và chờ đợi, 1019 00:41:39,550 --> 00:41:42,550 cho đến khi người sử dụng cung cấp cho bạn một chuỗi bằng cách gõ một cái gì đó. 1020 00:41:42,550 --> 00:41:46,000 Vì vậy, hãy để tôi đi trước và gõ vào D-a-v - i-d, Enter. 1021 00:41:46,000 --> 00:41:47,420 Và vì thế, xin chào David. 1022 00:41:47,420 --> 00:41:50,430 >> Bây giờ thực hiện điều này có vẻ như nó chỉ là một hành động? 1023 00:41:50,430 --> 00:41:52,810 Hãy để tôi đi trước và gõ Tommy. 1024 00:41:52,810 --> 00:41:54,740 Nhập, được rồi, có vẻ là làm việc. 1025 00:41:54,740 --> 00:41:59,130 Hoạt động cho Rob, công trình cho Zamyla, làm việc cho - okay. 1026 00:41:59,130 --> 00:42:01,000 Vì vậy, nó sẽ làm việc, rất có thể. 1027 00:42:01,000 --> 00:42:05,030 Vì vậy, nó sẽ in ra bất cứ điều gì chúng tôi thực sự cung cấp cho nó, 1028 00:42:05,030 --> 00:42:07,830 và chúng ta có thể có một chút khó khăn ở đây. 1029 00:42:07,830 --> 00:42:12,130 Hãy xem nếu chúng ta làm một cái gì đó giống như xin chào. 1030 00:42:12,130 --> 00:42:18,000 Có thể đi qua ở đây, chúng ta hãy xem, sao chép, dán. 1031 00:42:18,000 --> 00:42:19,950 Tôi sẽ không để có thể dán nhiều lần ở đây. 1032 00:42:19,950 --> 00:42:24,410 Paste, okay, Shift + Ctrl + V. Vì vậy, những gì có thể 1033 00:42:24,410 --> 00:42:26,970 xảy ra đó là xấu ở đây? 1034 00:42:26,970 --> 00:42:27,770 >> Rồi, do đó, segfaults. 1035 00:42:27,770 --> 00:42:29,710 Vì vậy, một số bạn với các nền tảng trước sẽ biết rằng 1036 00:42:29,710 --> 00:42:32,710 nói chung, cho máy tính rất nhiều các yếu tố đầu vào khi họ đang 1037 00:42:32,710 --> 00:42:36,140 có lẽ không có nghĩa là để nhận được tên dài như thế này - xấu 1038 00:42:36,140 --> 00:42:36,740 điều xảy ra. 1039 00:42:36,740 --> 00:42:39,230 Thật vậy, trong thế giới của các trang web, cũng vậy, điều này xảy ra khá một chút, 1040 00:42:39,230 --> 00:42:41,000 , theo đó khi bạn đang thiết kế một trang web, khi bạn đang 1041 00:42:41,000 --> 00:42:43,850 thiết kế Facebook, bạn có để làm cho các quyết định tùy ý lên 1042 00:42:43,850 --> 00:42:45,370 phía trước, như bao lâu của một ai đó 1043 00:42:45,370 --> 00:42:46,360 Facebook tên người dùng? 1044 00:42:46,360 --> 00:42:48,050 Hoặc bao lâu tên đầu tiên của một ai đó sẽ là gì? 1045 00:42:48,050 --> 00:42:50,110 Số điện thoại của một ai đó sẽ là bao lâu và như thế. 1046 00:42:50,110 --> 00:42:53,580 Và nếu lập trình làm cho các giả định xấu, các chương trình phá vỡ 1047 00:42:53,580 --> 00:42:56,640 bởi vì bạn cố gắng cho họ sản xuất nhiều hơn, nhiều đầu vào 1048 00:42:56,640 --> 00:42:58,330 đúng hơn, hơn là họ có bộ nhớ. 1049 00:42:58,330 --> 00:43:01,860 Hoặc bộ nhớ RAM phân bổ cho nó, và do đó, nếu bây giờ tôi nhấn Enter, 1050 00:43:01,860 --> 00:43:04,640 chương trình đó thực sự làm việc, bởi vì chúng tôi đã ở thư viện 1051 00:43:04,640 --> 00:43:06,790 và chúng tôi thực sự dự đoán trường hợp cụ thể. 1052 00:43:06,790 --> 00:43:10,900 Nhưng chắc chắn trong học kỳ này, bạn sẽ viết ít nhất một 1053 00:43:10,900 --> 00:43:13,280 chương trình mà sẽ nói những lời này. 1054 00:43:13,280 --> 00:43:16,520 Hãy nhớ điều này tuần kể từ bây giờ, có thể là hai ngày, kể từ bây giờ. 1055 00:43:16,520 --> 00:43:18,760 Segmentation fault là một điều xấu. 1056 00:43:18,760 --> 00:43:21,920 Nó sẽ đề cập đến một cái gì đó làm của bạn là các máy tính 1057 00:43:21,920 --> 00:43:23,310 không dự đoán. 1058 00:43:23,310 --> 00:43:25,810 Và trong trường hợp đó, bạn, các lập trình viên, không dự đoán. 1059 00:43:25,810 --> 00:43:27,720 Giống như những gì đống vớ này, đã có khác nhau 1060 00:43:27,720 --> 00:43:29,520 trường hợp góc, chúng ta có thể gặp phải. 1061 00:43:29,520 --> 00:43:32,340 Tương tự như vậy trong các chương trình nếu bạn không lường trước được bao lâu 1062 00:43:32,340 --> 00:43:33,310 tên của một ai đó có được. 1063 00:43:33,310 --> 00:43:35,890 Hoặc nếu tôi có một người sử dụng độc hại, và tên của mình là 1064 00:43:35,890 --> 00:43:37,230 thực sự là khá ngắn, nhưng họ chỉ cần cố gắng 1065 00:43:37,230 --> 00:43:37,960 gây rối với tôi? 1066 00:43:37,960 --> 00:43:40,490 Điều gì sẽ là hành vi của chương trình của tôi? 1067 00:43:40,490 --> 00:43:43,930 Vâng, trong trường hợp đó, một cái gì đó thực sự có thể sụp đổ. 1068 00:43:43,930 --> 00:43:44,750 >> Vì vậy, hãy làm điều này. 1069 00:43:44,750 --> 00:43:46,860 Trong 90 phút, đây là một thời gian dài khủng khiếp 1070 00:43:46,860 --> 00:43:47,780 để làm khoa học máy tính. 1071 00:43:47,780 --> 00:43:49,550 Tại sao chúng ta không nhận được vào các thói quen của một năm phút 1072 00:43:49,550 --> 00:43:51,520 phá vỡ ở đây, và khi chúng ta trở lại, chúng tôi sẽ thêm một vài 1073 00:43:51,520 --> 00:43:53,430 các chương trình phức tạp và hấp dẫn hơn? 1074 00:43:53,430 --> 00:43:54,680 Năm phút. 1075 00:43:56,910 --> 00:43:58,160 >> Được rồi. 1076 00:44:01,138 --> 00:44:02,780 Vì vậy, một bình luận nhanh chóng. 1077 00:44:02,780 --> 00:44:05,590 Tôi được cho biết rằng mặc dù đây là trên màn hình trước, những gì 1078 00:44:05,590 --> 00:44:08,880 ra khỏi miệng của tôi là cs50.net/rsvp. 1079 00:44:08,880 --> 00:44:11,670 Điều này là chính xác. cs50.net/lunch. 1080 00:44:11,670 --> 00:44:16,030 Vì vậy, bây giờ bạn có thể thử RSVPing này tại / bữa ăn trưa. 1081 00:44:16,030 --> 00:44:16,980 Nhưng hãy làm điều này ngay bây giờ. 1082 00:44:16,980 --> 00:44:20,150 Vì vậy, điều này đã được siêu nhanh, siêu mới cho rất nhiều người. 1083 00:44:20,150 --> 00:44:21,560 Old mũ cho một số folks. 1084 00:44:21,560 --> 00:44:24,930 Vì vậy, chúng ta hãy quay lại chỉ là một thời điểm, và xem làm thế nào chúng ta có 1085 00:44:24,930 --> 00:44:29,350 sản lượng thế giới hello này chỉ là một thời điểm trước đây. 1086 00:44:29,350 --> 00:44:31,780 >> Vì vậy, đầu tiên, có thiết bị này CS50. 1087 00:44:31,780 --> 00:44:34,270 Một lần nữa, mảnh của vấn đề, phần mềm thiết lập 1 sẽ cho biết 1088 00:44:34,270 --> 00:44:36,610 bạn làm thế nào để tải về nó, nơi để tải về, nhấp chuột 1089 00:44:36,610 --> 00:44:37,430 và vv. 1090 00:44:37,430 --> 00:44:39,670 Và sau đó một khi bạn làm theo những hướng dẫn, bạn sẽ có thể 1091 00:44:39,670 --> 00:44:42,840 để tối đa hóa cửa sổ của bạn, và Mac hoặc máy PC của bạn sẽ xem xét một 1092 00:44:42,840 --> 00:44:43,910 ít một cái gì đó như thế này. 1093 00:44:43,910 --> 00:44:47,170 Một nền đen, một thư mục nhà ở đầu trang, nơi tất cả 1094 00:44:47,170 --> 00:44:49,850 các tập tin của bạn, một thùng rác ở phía trên trái, 1095 00:44:49,850 --> 00:44:51,130 một menu ở phía dưới. 1096 00:44:51,130 --> 00:44:54,010 Vì vậy, một lần nữa, đẹp, tinh thần tương tự Mac OS hoặc Windows, 1097 00:44:54,010 --> 00:44:56,040 mặc dù nó xảy ra là Linux. 1098 00:44:56,040 --> 00:44:58,120 Vì vậy, chúng tôi đã làm những gì tiếp theo làm gì? 1099 00:44:58,120 --> 00:44:59,580 Vâng, chúng tôi bắt đầu viết chương trình. 1100 00:44:59,580 --> 00:45:02,260 Và nhớ lại từ tuần trước rằng tất cả phải mất để viết một 1101 00:45:02,260 --> 00:45:04,970 chương trình là một trình soạn thảo văn bản đơn giản, 1102 00:45:04,970 --> 00:45:06,550 như Notepad hoặc TextEdit. 1103 00:45:06,550 --> 00:45:08,360 Thành thật mà nói, bạn thậm chí có thể sử dụng Microsoft Word. 1104 00:45:08,360 --> 00:45:11,170 Tuy nhiên, những điều xấu sẽ xảy ra, bởi vì đó là rất 1105 00:45:11,170 --> 00:45:13,930 giải pháp mạnh tay để viết một chương trình, cộng với nó sẽ 1106 00:45:13,930 --> 00:45:15,400 lưu nó trong các định dạng tập tin sai. 1107 00:45:15,400 --> 00:45:18,150 Nhưng nó chỉ là một trình soạn thảo văn bản, xử lý văn bản, tất cả những gì 1108 00:45:18,150 --> 00:45:19,390 cần thiết để viết một chương trình. 1109 00:45:19,390 --> 00:45:23,420 >> Vì vậy, trong các gia dụng CS50, chúng ta có thể làm điều này trong một cách đơn giản. 1110 00:45:23,420 --> 00:45:25,580 Chúng tôi có thể chỉ cần nhấp chuột vào biểu tượng này ở phía dưới bên trái. 1111 00:45:25,580 --> 00:45:28,790 Và một lần nữa, vấn đề thiết lập 1 sẽ tư vấn cho bạn về điều này, và thì đấy - 1112 00:45:28,790 --> 00:45:31,210 bạn sẽ có được giao diện màu đen và trắng, nơi chúng tôi có thể bắt đầu 1113 00:45:31,210 --> 00:45:32,160 viết code. 1114 00:45:32,160 --> 00:45:34,960 Vì vậy, chúng ta hãy bắt đầu viết một chương trình siêu đơn giản một lần nữa. 1115 00:45:34,960 --> 00:45:38,890 Tôi sẽ đi lên vào File, Save, và tôi sẽ gọi 1116 00:45:38,890 --> 00:45:42,870 này, hãy nói, hello2.c. 1117 00:45:42,870 --> 00:45:45,410 Và tôi chỉ nói với nó bằng cách nhấp vào jharvard, đặt nó 1118 00:45:45,410 --> 00:45:46,750 trong thư mục chính của mình, tôi không thực sự quan tâm 1119 00:45:46,750 --> 00:45:47,980 nơi này đi. 1120 00:45:47,980 --> 00:45:49,090 Và sau đó Save. 1121 00:45:49,090 --> 00:45:50,880 Và bây giờ tôi có thể bắt đầu viết chương trình của tôi. 1122 00:45:50,880 --> 00:45:53,560 Và tôi nhớ lại từ trước rằng tôi phải viết int 1123 00:45:53,560 --> 00:45:55,400 main (void). 1124 00:45:55,400 --> 00:45:57,000 • Phóng to vào phía trên bên trái. 1125 00:45:57,000 --> 00:46:02,670 Và sau đó tôi muốn nói printf, mất hai. 1126 00:46:02,670 --> 00:46:05,690 Và bây giờ, dòng mới gần quote, đóng 1127 00:46:05,690 --> 00:46:07,820 dấu ngoặc đơn, dấu chấm phẩy. 1128 00:46:07,820 --> 00:46:10,560 Và sau đó tôi đi xuống đây để cửa sổ terminal của tôi đó là 1129 00:46:10,560 --> 00:46:12,840 nhúng trong gedit, chỉ cho thuận tiện. 1130 00:46:12,840 --> 00:46:15,200 Và tôi sẽ đi trước và viết làm cho xin chào, nhưng không 1131 00:46:15,200 --> 00:46:17,500 xin chào mình, hello2. 1132 00:46:17,500 --> 00:46:20,490 >> Vì vậy, tập tin của tôi được gọi là hello2.c. Tập tin của tôi do đó 1133 00:46:20,490 --> 00:46:23,510 nên được gọi là hello2, trong trường hợp này. 1134 00:46:23,510 --> 00:46:26,490 Chết tiệt, tôi đã làm gì sai? 1135 00:46:26,490 --> 00:46:29,490 Được rồi, vì vậy tôi rõ ràng bỏ qua một dòng, nếu bạn nhớ lại những gì 1136 00:46:29,490 --> 00:46:31,020 chương trình trước đó như thế nào. 1137 00:46:31,020 --> 00:46:32,480 Nhưng chúng ta hãy xem nếu chúng ta không có thể trêu chọc nhau. 1138 00:46:32,480 --> 00:46:35,310 Thật không may, hầu hết mọi người, những người viết chương trình mà 1139 00:46:35,310 --> 00:46:38,820 chúng ta viết chương trình không đơn giản hóa mọi thứ tất cả những gì tốt. 1140 00:46:38,820 --> 00:46:41,520 Vì vậy, chúng ta phải loại lướt qua những gì không hoàn toàn làm 1141 00:46:41,520 --> 00:46:44,050 cảm nhận được ở đây và xem liệu chúng ta có thể tìm ra những gì sai. 1142 00:46:44,050 --> 00:46:46,700 Dòng đầu tiên có nói ngầm tuyên bố C 1143 00:46:46,700 --> 00:46:49,310 thư viện chức năng printf với kiểu int. 1144 00:46:49,310 --> 00:46:51,210 OK, tôi hiểu phần trong đó. 1145 00:46:51,210 --> 00:46:54,570 Nhưng có vẻ như ám chỉ đến thực tế là tôi đã sử dụng printf 1146 00:46:54,570 --> 00:46:55,700 sai, bằng cách nào đó. 1147 00:46:55,700 --> 00:46:56,930 Và ý thức những gì là sai không? 1148 00:46:56,930 --> 00:46:59,970 Tôi chỉ không dạy máy tính mà nó trong một tập tin 1149 00:46:59,970 --> 00:47:01,420 gọi là stdio.h. 1150 00:47:01,420 --> 00:47:04,120 Bây giờ tôi chỉ có chỉ nhớ rằng printf là 1151 00:47:04,120 --> 00:47:06,540 trong stdio.h, và thực sự có sẽ khác 1152 00:47:06,540 --> 00:47:08,900 chức năng trong cùng một tập tin rằng chúng tôi sẽ có được sử dụng để. 1153 00:47:08,900 --> 00:47:12,490 >> Vì vậy, bây giờ hãy để tôi đi trước và nhấn Ctrl-L chỉ cần xóa 1154 00:47:12,490 --> 00:47:16,050 đi, chạy lại hello2, và thì đấy. 1155 00:47:16,050 --> 00:47:19,490 Và lệnh này một lần nữa, phức tạp hơn, chúng tôi sẽ giải thích cho 1156 00:47:19,490 --> 00:47:20,520 mục đích của ngày hôm nay. 1157 00:47:20,520 --> 00:47:23,570 Nhưng nó đã chạy kêu vang, kêu vang mã nguồn và 1158 00:47:23,570 --> 00:47:24,870 spits ra 0 và 1. 1159 00:47:24,870 --> 00:47:28,610 Và những người 0 và 1 trong trường hợp này được gọi là gì? 1160 00:47:28,610 --> 00:47:29,470 Được rồi, phản đối mã. 1161 00:47:29,470 --> 00:47:32,210 Và được gọi là các tập tin mà họ đang ở trong, vì vậy, 1162 00:47:32,210 --> 00:47:33,820 hello2, trong trường hợp này. 1163 00:47:33,820 --> 00:47:37,040 Bởi vì tập tin văn bản của tôi là hello2.c Enter. 1164 00:47:37,040 --> 00:47:39,820 Và bây giờ tôi đã mất hai dấu chấm than, chấm than 1165 00:47:39,820 --> 00:47:41,880 điểm, dấu chấm than. 1166 00:47:41,880 --> 00:47:45,430 Được rồi, vì vậy chúng tôi có khả năng để có những chuỗi, 1167 00:47:45,430 --> 00:47:46,280 rõ ràng. 1168 00:47:46,280 --> 00:47:48,190 Vâng, những gì khác chúng ta có thể nhận được từ người sử dụng? 1169 00:47:48,190 --> 00:47:51,010 >> Cũng trong thư viện CS50, có các chức năng khác mà 1170 00:47:51,010 --> 00:47:53,300 sẽ đơn giản hóa cuộc sống của chúng tôi trong những ngày đầu tiên. 1171 00:47:53,300 --> 00:47:56,350 Getchar, GetDouble, GetFloat, getInt, 1172 00:47:56,350 --> 00:47:57,290 GetLongLong, GetString. 1173 00:47:57,290 --> 00:47:59,550 Vâng, chúng ta hãy nhổ dễ nhất của những đầu tiên. 1174 00:47:59,550 --> 00:48:01,430 GetString nghĩa nào đó. 1175 00:48:01,430 --> 00:48:04,210 Nó chỉ ngồi ở đó, chờ đợi cho người sử dụng gõ một cái gì đó trong, 1176 00:48:04,210 --> 00:48:07,170 và ngay sau khi tôi gõ gì đó vào và nhấn Enter, 1177 00:48:07,170 --> 00:48:08,860 làm một cái gì đó với giá trị đó. 1178 00:48:08,860 --> 00:48:11,700 Vì vậy, hãy quay trở lại ví dụ đó để thấy chính xác 1179 00:48:11,700 --> 00:48:12,950 GetString đang làm. 1180 00:48:12,950 --> 00:48:17,445 Hãy để tôi đi trước và mở ra trong gedit, hello.c, và nhớ lại 1181 00:48:17,445 --> 00:48:20,590 ngay trước giờ nghỉ, đây là nơi chúng tôi rời đi. 1182 00:48:20,590 --> 00:48:23,240 >> Vì vậy, hãy trêu chọc này ngoài trong một chi tiết nhỏ hơn. 1183 00:48:23,240 --> 00:48:27,190 Vì vậy, trên dòng 6, có hai điều 1184 00:48:27,190 --> 00:48:28,450 xảy ra tại thời điểm này. 1185 00:48:28,450 --> 00:48:32,630 Dấu bằng là tách nửa đầu và nửa cuối năm. 1186 00:48:32,630 --> 00:48:34,670 Vì vậy, ở phía bên tay trái của dấu bằng, chúng tôi 1187 00:48:34,670 --> 00:48:35,580 nói string s. 1188 00:48:35,580 --> 00:48:37,580 Và sau đó, thuật ngữ chỉ của giáo dân, string s là những gì 1189 00:48:37,580 --> 00:48:41,040 làm, bạn nghĩ gì? 1190 00:48:41,040 --> 00:48:42,990 Điều này tạo ra cái gì cơ? 1191 00:48:42,990 --> 00:48:44,930 Vì vậy, nó tạo ra một chuỗi được gọi là s. 1192 00:48:44,930 --> 00:48:46,370 Bây giờ những gì thực sự có nghĩa là gì? 1193 00:48:46,370 --> 00:48:51,540 Vâng, nó dành không gian cho một chuỗi được gọi là s. 1194 00:48:51,540 --> 00:48:52,490 Đó không phải là hoàn toàn đúng. 1195 00:48:52,490 --> 00:48:53,120 Này đang làm gì? 1196 00:48:53,120 --> 00:48:55,400 Máy tính tốt, như bạn biết, có ổ đĩa cứng, đó là nơi 1197 00:48:55,400 --> 00:48:56,300 các tập tin của bạn được lưu trữ. 1198 00:48:56,300 --> 00:48:59,100 Các máy tính có bộ nhớ RAM, và đó là nơi chương trình được nạp 1199 00:48:59,100 --> 00:49:00,240 trong khi họ đang chạy. 1200 00:49:00,240 --> 00:49:02,470 Vì vậy, khi bạn kích đúp vào một biểu tượng và Microsoft Word sẽ mở ra 1201 00:49:02,470 --> 00:49:06,380 up, Microsoft Word đang chạy, vậy để nói chuyện, trong bộ nhớ RAM, đó là 1202 00:49:06,380 --> 00:49:08,160 phần điện tử của máy tính của bạn. 1203 00:49:08,160 --> 00:49:10,660 Không phải là thể chất, cơ khí một phần đó là quay, 1204 00:49:10,660 --> 00:49:12,640 dữ liệu thường được lưu trữ lâu dài. 1205 00:49:12,640 --> 00:49:15,810 Vì vậy, string s khá nhiều nói máy tính cho tôi 1206 00:49:15,810 --> 00:49:18,150 đủ RAM để phù hợp với một chuỗi. 1207 00:49:18,150 --> 00:49:20,450 Bây giờ đó là một chút của một sự đơn giản hóa, bởi vì 1208 00:49:20,450 --> 00:49:22,300 lớn như thế nào là chuỗi sẽ được? 1209 00:49:22,300 --> 00:49:24,410 Vâng, chúng tôi thực sự không biết được nêu ra, vì vậy trong những tuần tới 1210 00:49:24,410 --> 00:49:27,290 chúng tôi thực sự sẽ kéo trở lại lớp đó là chuỗi và 1211 00:49:27,290 --> 00:49:28,510 chúng tôi sẽ cho bạn biết những gì nó thực sự là. 1212 00:49:28,510 --> 00:49:31,050 String, cho bây giờ, chỉ là sự đơn giản hóa tốt đẹp của thế giới của chúng ta. 1213 00:49:31,050 --> 00:49:35,700 Nhưng string s tuyên bố một chuỗi được gọi là s, cho bây giờ. 1214 00:49:35,700 --> 00:49:36,520 Khai báo một chuỗi. 1215 00:49:36,520 --> 00:49:39,310 Nó bảo lưu một số không gian trong bộ nhớ RAM cho chuỗi người dùng là 1216 00:49:39,310 --> 00:49:40,150 về gõ. 1217 00:49:40,150 --> 00:49:41,840 >> Bây giờ hãy nhìn ở bên phải của dấu bằng. 1218 00:49:41,840 --> 00:49:44,110 Vì vậy, nó nói GetString (). 1219 00:49:44,110 --> 00:49:45,070 Và một sự tỉnh táo ít kiểm tra. 1220 00:49:45,070 --> 00:49:47,940 Thực tế là không có gì bên trong dấu ngoặc đơn 1221 00:49:47,940 --> 00:49:50,810 ngụ ý gì về GetString? 1222 00:49:50,810 --> 00:49:52,180 Nó không có đối số. 1223 00:49:52,180 --> 00:49:55,290 Nghĩa là, bạn không thể ảnh hưởng đến hành vi của nó trong bất kỳ cách nào. 1224 00:49:55,290 --> 00:49:58,940 Mỗi khi bạn sử dụng nó, nó sẽ nhận được một chuỗi và đó là nó. 1225 00:49:58,940 --> 00:50:02,210 Ngược lại, printf, hy vọng hành vi của nó không 1226 00:50:02,210 --> 00:50:03,010 thay đổi mỗi lần. 1227 00:50:03,010 --> 00:50:05,230 Nếu không, nó là một chức năng in ấn khá vô dụng nếu 1228 00:50:05,230 --> 00:50:06,480 nó làm điều tương tự. 1229 00:50:06,480 --> 00:50:07,970 Nếu nó luôn luôn in David hoặc một cái gì đó 1230 00:50:07,970 --> 00:50:09,500 tùy ý tất cả các thời gian. 1231 00:50:09,500 --> 00:50:11,540 Vì vậy, printf làm cho tinh thần để có một đối số. 1232 00:50:11,540 --> 00:50:14,240 GetString không thực sự cần một đối số, vì tôi muốn 1233 00:50:14,240 --> 00:50:16,700 để có được một chuỗi từ người dùng và đó là người dùng sẽ 1234 00:50:16,700 --> 00:50:19,580 để cung cấp năng động bằng cách gõ các chữ cái khác nhau 1235 00:50:19,580 --> 00:50:20,850 mỗi lần vào bàn phím. 1236 00:50:20,850 --> 00:50:23,140 >> Vì vậy, những gì không GetString để cuối cùng? 1237 00:50:23,140 --> 00:50:25,080 Hãy suy nghĩ về nó như là hộp đen nhỏ này. 1238 00:50:25,080 --> 00:50:29,340 Và hộp đen này sẽ không có đầu vào, nhưng khi bạn đập vào 1239 00:50:29,340 --> 00:50:33,240 nó, nó phun ra một chuỗi mà người dùng đã gõ. 1240 00:50:33,240 --> 00:50:36,660 Và thực tế là có một dấu bằng có nghĩa là mất 1241 00:50:36,660 --> 00:50:39,890 những gì được nhổ ra bên phải và lưu trữ nó bên trong 1242 00:50:39,890 --> 00:50:41,390 những gì ở bên trái. 1243 00:50:41,390 --> 00:50:43,470 Vì vậy, dấu bằng ở đây, nó thực sự không có nghĩa là 1244 00:50:43,470 --> 00:50:46,490 bình đẳng, chứ không phải về mặt kỹ thuật có nghĩa là chuyển nhượng. 1245 00:50:46,490 --> 00:50:49,330 Lấy giá trị bên phải, và đặt nó trong 1246 00:50:49,330 --> 00:50:51,050 biến trên bên trái. 1247 00:50:51,050 --> 00:50:52,820 Vì vậy, đó là tất cả những gì xảy ra ở đó. 1248 00:50:52,820 --> 00:50:55,640 >> Bây giờ trong dòng 7, chúng tôi đang gọi printf. 1249 00:50:55,640 --> 00:50:58,170 Vì vậy, printf hy vọng là nhận được một chút nhàm chán bây giờ. 1250 00:50:58,170 --> 00:50:59,530 Vì vậy, in một chuỗi định dạng. 1251 00:50:59,530 --> 00:51:00,440 Những gì chuỗi? 1252 00:51:00,440 --> 00:51:05,460 In ra, "h-e-l-l-o,% s 1253 00:51:05,460 --> 00:51:07,840 \ N ". 1254 00:51:07,840 --> 00:51:10,470 Được rồi, vì vậy tôi làm những gì muốn plug-in cho% s? 1255 00:51:10,470 --> 00:51:12,960 Nghĩa đen, bất cứ điều gì được lưu trữ trong s. 1256 00:51:12,960 --> 00:51:15,570 Vì vậy, trong trường hợp này, kiểm tra sự tỉnh táo chút, làm thế nào nhiều đối số không 1257 00:51:15,570 --> 00:51:16,820 printf? 1258 00:51:19,860 --> 00:51:21,110 Được rồi, tôi nghe thấy một. 1259 00:51:23,840 --> 00:51:26,330 Tôi nghe một lần nữa. 1260 00:51:26,330 --> 00:51:27,730 Hai, tôi nghe thấy hai. 1261 00:51:27,730 --> 00:51:29,920 Và làm thế nào khoảng ba? 1262 00:51:29,920 --> 00:51:30,450 Được rồi, ba? 1263 00:51:30,450 --> 00:51:30,930 Excellent. 1264 00:51:30,930 --> 00:51:33,170 Ba câu trả lời có thể, chỉ có một trong số họ là chính xác. 1265 00:51:33,170 --> 00:51:36,390 Vì vậy, lập luận một lần nữa ảnh hưởng đến hành vi của một hàm. 1266 00:51:36,390 --> 00:51:39,380 Trong quá khứ, printf đã chỉ mất một đối số. 1267 00:51:39,380 --> 00:51:42,260 "Hello world" là một đối số duy nhất. 1268 00:51:42,260 --> 00:51:45,190 Tuy nhiên, bây giờ, nhận thấy nơi đây là dấu phẩy. 1269 00:51:45,190 --> 00:51:49,600 Dấu phẩy Đây là bên ngoài của các báo / unquote, có nghĩa là 1270 00:51:49,600 --> 00:51:52,170 hey printf, ở đây có một đối số thứ hai. 1271 00:51:52,170 --> 00:51:54,240 >> Vì vậy, dấu phẩy trong hầu hết các ngôn ngữ lập trình 1272 00:51:54,240 --> 00:51:57,300 riêng biệt nhiều đối số. 1273 00:51:57,300 --> 00:51:59,600 Vì vậy, câu trả lời ở đây chắc chắn là không phải là một, bởi vì 1274 00:51:59,600 --> 00:52:00,390 có dấu phẩy này. 1275 00:52:00,390 --> 00:52:03,680 Vì vậy, tối thiểu, printf là dường như hai 1276 00:52:03,680 --> 00:52:04,940 đối số thời gian này. 1277 00:52:04,940 --> 00:52:07,050 Tuy nhiên, cơ hội cho một câu hỏi trick ở đây là những gì 1278 00:52:07,050 --> 00:52:07,990 về dấu phẩy này? 1279 00:52:07,990 --> 00:52:11,260 Điều này hàm ý rằng có thực sự là ba đối số? 1280 00:52:11,260 --> 00:52:13,820 Này, điều này, và điều này. 1281 00:52:13,820 --> 00:52:18,820 Vì vậy, không, vì dấu phẩy bên trong đó là các dấu ngoặc kép, 1282 00:52:18,820 --> 00:52:20,890 có nghĩa là nó thực sự chỉ là một thẩm mỹ của tiếng Anh. 1283 00:52:20,890 --> 00:52:23,180 Nó không có gì để làm với số lượng 1284 00:52:23,180 --> 00:52:24,890 đối số trong chương trình này. 1285 00:52:24,890 --> 00:52:27,670 Vì vậy, dấu phẩy này bên ngoài các dấu ngoặc kép. 1286 00:52:27,670 --> 00:52:28,850 Và sau đó trở về 0. 1287 00:52:28,850 --> 00:52:30,980 Loại chỉ cho bây giờ chúng ta hãy lấy cái này về đức tin 1288 00:52:30,980 --> 00:52:34,460 ngày hôm nay, và chỉ biết rằng khi các chức năng được thực hiện thực hiện 1289 00:52:34,460 --> 00:52:37,950 dòng mã, họ thường phải trả lại một số giá trị. 1290 00:52:37,950 --> 00:52:42,010 Trong trường hợp này, chỉ vì chính phải trả lại một int, 1291 00:52:42,010 --> 00:52:44,320 đó chỉ là cách ngôn ngữ C hoạt động. 1292 00:52:44,320 --> 00:52:47,040 >> Vì vậy, vì không có gì đã đi sai, cảm thấy như thế này của chương trình 1293 00:52:47,040 --> 00:52:49,960 tốt, tôi chỉ cứng mã hoá trong trở về 0. 1294 00:52:49,960 --> 00:52:52,980 Nhưng ngược lại, tôi sẽ viết điều này trong mã giả 1295 00:52:52,980 --> 00:52:55,020 bây giờ, giống như Joseph đã làm khi chúng tôi đã làm sock 1296 00:52:55,020 --> 00:52:56,220 Ví dụ tuần trước. 1297 00:52:56,220 --> 00:53:00,440 Nếu một cái gì đó đã đi sai - điều này là không thực tế mã - đã 1298 00:53:00,440 --> 00:53:06,570 sai, sau đó trở về, hãy nói, 1. 1299 00:53:06,570 --> 00:53:08,770 Khác trở về 0. 1300 00:53:08,770 --> 00:53:10,070 Vì vậy, đây là nơi mà chúng tôi đang đi với điều này. 1301 00:53:10,070 --> 00:53:12,090 Đây không phải là mã C thực tế, chỉ là giả. 1302 00:53:12,090 --> 00:53:14,010 Nhưng điều này là làm thế nào bạn có thể trở lại 1303 00:53:14,010 --> 00:53:15,580 giá trị có thể khác nhau. 1304 00:53:15,580 --> 00:53:19,520 Nhưng bây giờ tôi chỉ cần đi để đi trước và trở về 0. 1305 00:53:19,520 --> 00:53:24,410 Được rồi, bất kỳ câu hỏi vậy, đến nay về chức năng, cú pháp, 1306 00:53:24,410 --> 00:53:25,000 hoặc như thế nào? 1307 00:53:25,000 --> 00:53:26,280 Yeah, trong trở lại. 1308 00:53:26,280 --> 00:53:27,530 >> Khán giả: không nghe được] 1309 00:53:30,510 --> 00:53:32,210 DAVID Malan: Bạn có thể nói một chút to hơn? 1310 00:53:32,210 --> 00:53:34,325 Tại sao chương trình này 0 trở lại, và? 1311 00:53:34,325 --> 00:53:35,575 Khán giả: không nghe được] 1312 00:53:39,910 --> 00:53:43,450 DAVID Malan: Oh, đó là bởi vì tôi đã lười biếng, xin lỗi. 1313 00:53:43,450 --> 00:53:48,290 Không có phản ứng tích học tập tốt, trở về 0. 1314 00:53:48,290 --> 00:53:52,690 Tôi có thể loại cứu hộ này, bằng cách nói về mặt kỹ thuật C, nếu chính 1315 00:53:52,690 --> 00:53:55,900 không trả lại một cách rõ ràng giá trị, 0 sẽ được trả lại 1316 00:53:55,900 --> 00:53:57,730 tự động cho bạn. 1317 00:53:57,730 --> 00:54:00,290 Đó là sự thật, tôi không chỉ bao che. 1318 00:54:00,290 --> 00:54:03,270 Nhưng, tôi đã thực hiện nó theo cách này. 1319 00:54:03,270 --> 00:54:05,250 Không có takeaway thú vị hơn so với khác hơn là sai lầm của tôi. 1320 00:54:05,250 --> 00:54:06,170 Yeah? 1321 00:54:06,170 --> 00:54:08,470 >> Khán giả: Thông thường, khi bạn gõ vào một khoảng trống, có nghĩa là bạn 1322 00:54:08,470 --> 00:54:10,770 không trả lại một cái gì đó. 1323 00:54:10,770 --> 00:54:11,420 DAVID Malan: Đúng. 1324 00:54:11,420 --> 00:54:15,800 Nếu thay vào đó, bạn chỉ định trước khi tên của một chức năng, 1325 00:54:15,800 --> 00:54:18,590 dụ ở đây, có hiệu lực, sau đó chức năng 1326 00:54:18,590 --> 00:54:20,480 không trả lại bất cứ điều gì. 1327 00:54:20,480 --> 00:54:25,210 Và vì vậy tôi chỉ có thể nói, trả lại hoặc không có gì cả, 1328 00:54:25,210 --> 00:54:26,730 và đó sẽ là phù hợp. 1329 00:54:26,730 --> 00:54:27,750 Và chúng tôi sẽ trở lại đó. 1330 00:54:27,750 --> 00:54:31,030 Và chỉ FYI, một trong những sản lượng khai thác với việc học 1331 00:54:31,030 --> 00:54:33,450 lập trình trong một thế giới có hàng trăm cuốn sách và 1332 00:54:33,450 --> 00:54:36,180 hàng trăm trang web trên là bạn sẽ không thay đổi 1333 00:54:36,180 --> 00:54:38,220 xem cú pháp khác nhau trong cuốn sách khác nhau 1334 00:54:38,220 --> 00:54:40,220 bởi những người khác nhau. 1335 00:54:40,220 --> 00:54:42,100 Nhận ra chúng tôi sẽ làm tốt nhất của chúng tôi trong các phần và bài giảng được 1336 00:54:42,100 --> 00:54:42,960 nhất quán. 1337 00:54:42,960 --> 00:54:46,660 Nhưng đôi khi bạn sẽ thấy cú pháp xung đột. 1338 00:54:46,660 --> 00:54:48,540 Vì vậy, bất cứ khi nào nghi ngờ, chỉ cần hỏi. 1339 00:54:48,540 --> 00:54:51,100 Và nói chung, chúng tôi sẽ chăm sóc trong các bài giảng và phần để 1340 00:54:51,100 --> 00:54:53,710 hầu như luôn luôn trình bày nó một cách đúng đắn. 1341 00:54:53,710 --> 00:54:56,070 Và tôi nói hầu như luôn luôn, bởi vì trường hợp tại điểm. 1342 00:54:56,070 --> 00:54:56,860 Các câu hỏi khác? 1343 00:54:56,860 --> 00:55:01,590 >> TƯỢNG:% s tồn tại bên ngoài thiết bị? 1344 00:55:01,590 --> 00:55:03,710 DAVID Malan:% s tồn tại bên ngoài của thiết bị? 1345 00:55:03,710 --> 00:55:04,180 Vâng. 1346 00:55:04,180 --> 00:55:07,760 Vì vậy,% s đã làm với C. Thực tế là chúng ta đang sử dụng nó trong 1347 00:55:07,760 --> 00:55:10,290 thiết bị về cơ bản không có gì để làm với các 1348 00:55:10,290 --> 00:55:12,080 các tính năng của ngôn ngữ chúng ta đang sử dụng. 1349 00:55:12,080 --> 00:55:15,990 Thật vậy, từ tuần trước khi chúng tôi sử dụng máy Mac của tôi, tôi đã viết 1350 00:55:15,990 --> 00:55:17,160 C code trên máy Mac của tôi. 1351 00:55:17,160 --> 00:55:20,020 Tôi có thể sử dụng% s trên máy Mac của tôi, và bạn có thể sử dụng nó trên 1352 00:55:20,020 --> 00:55:22,400 máy tính Windows của bạn nếu bạn cài đặt một trình biên dịch, giống như 1353 00:55:22,400 --> 00:55:24,070 Visual Studio của Microsoft. 1354 00:55:24,070 --> 00:55:24,990 Vì vậy% s. 1355 00:55:24,990 --> 00:55:27,860 Tất cả những gì chúng tôi đang làm bên trong của cửa sổ này ngày hôm nay có 1356 00:55:27,860 --> 00:55:31,140 làm với C. Và về cơ bản không có gì để làm với các 1357 00:55:31,140 --> 00:55:33,450 hệ điều hành trong câu hỏi. 1358 00:55:33,450 --> 00:55:35,900 Ngược lại, cửa sổ thiết bị đầu cuối màu đen và trắng - 1359 00:55:35,900 --> 00:55:40,160 Tôi là đánh máy những thứ như ls, cd rm và - 1360 00:55:40,160 --> 00:55:42,020 mà đã làm với hệ điều hành và 1361 00:55:42,020 --> 00:55:43,562 điều hướng xung quanh. 1362 00:55:43,562 --> 00:55:44,546 Yeah. 1363 00:55:44,546 --> 00:55:46,520 Khán giả: Tôi có nghĩa là các thư viện, thư viện CS50. 1364 00:55:46,520 --> 00:55:49,960 DAVID Malan: Được rồi, vì vậy nếu bạn có nghĩa là các chuỗi từ khóa, mà 1365 00:55:49,960 --> 00:55:52,460 chỉ tồn tại trong thư viện CS50, chính xác. 1366 00:55:52,460 --> 00:55:55,350 Điều đó không tồn tại trong C chính nó, và thực sự trong một vài 1367 00:55:55,350 --> 00:55:58,220 tuần, chúng tôi sẽ ném đi những thư viện CS50 và bắt đầu 1368 00:55:58,220 --> 00:56:02,290 làm việc từ đầu mình, do đó, để nói chuyện. 1369 00:56:02,290 --> 00:56:02,940 Các câu hỏi khác? 1370 00:56:02,940 --> 00:56:04,577 Yeah. 1371 00:56:04,577 --> 00:56:05,827 >> Khán giả: không nghe được] 1372 00:56:09,470 --> 00:56:10,160 DAVID Malan: Câu hỏi. 1373 00:56:10,160 --> 00:56:11,720 Các trường hợp lệnh nhạy cảm? 1374 00:56:11,720 --> 00:56:13,710 Và hãy để tôi làm cho một sự khác biệt ở đây. 1375 00:56:13,710 --> 00:56:15,840 Vì vậy, lệnh nói chung là những điều chúng ta sẽ viết tại 1376 00:56:15,840 --> 00:56:17,940 dưới cùng của cửa sổ, trong cửa sổ thiết bị đầu cuối. 1377 00:56:17,940 --> 00:56:21,770 Bất cứ điều gì ở đây sẽ là các báo cáo hoặc mã C. 1378 00:56:21,770 --> 00:56:24,490 Tuy nhiên, trong cả hai trường hợp, câu trả lời là như nhau, có. 1379 00:56:24,490 --> 00:56:27,800 Cả hai của các môi trường, mã C ở đầu trang và 1380 00:56:27,800 --> 00:56:29,910 hệ điều hành dòng lệnh. 1381 00:56:29,910 --> 00:56:31,440 dưới, là trường hợp nhạy cảm. 1382 00:56:31,440 --> 00:56:33,830 Vì vậy, bạn phải tận dụng GetString có vốn đầu G, 1383 00:56:33,830 --> 00:56:37,050 vốn S. Bạn phải viết printf trong tất cả các chữ thường. 1384 00:56:37,050 --> 00:56:39,520 Bạn phải gõ ls ở dạng chữ thường tất cả. 1385 00:56:39,520 --> 00:56:43,260 Vì vậy, trong trường hợp này học kỳ, hầu hết các tình huống, 1386 00:56:43,260 --> 00:56:44,820 thực tế, vấn đề. 1387 00:56:44,820 --> 00:56:46,148 Vâng. 1388 00:56:46,148 --> 00:56:47,398 >> Khán giả: không nghe được] 1389 00:56:54,770 --> 00:56:56,480 DAVID Malan: Ah, như vậy được không, chúng tôi nếu những gì đã có một file 1390 00:56:56,480 --> 00:56:57,840 gọi là hello.d. 1391 00:56:57,840 --> 00:57:00,090 Vì vậy, nó quay ra D là một ngôn ngữ lập trình. 1392 00:57:00,090 --> 00:57:02,790 Và như vậy trong một số trường hợp, chúng tôi thực sự có thể viết một chương trình trong 1393 00:57:02,790 --> 00:57:06,190 tập tin đó và nó được biên dịch trong thời trang đó. 1394 00:57:06,190 --> 00:57:09,090 Chúng ta có thể, và thực sự, câu trả lời ngắn, tôi không biết. 1395 00:57:09,090 --> 00:57:10,440 Vì vậy, chúng ta sẽ làm điều này. 1396 00:57:10,440 --> 00:57:13,040 Hãy để tôi đi trước và tạo ra một tập tin mới. 1397 00:57:13,040 --> 00:57:15,580 Và spin ở đây, trung thực nói chung, là bất cứ khi nào bất kỳ nghi ngờ 1398 00:57:15,580 --> 00:57:18,130 học kỳ này, và bạn có một thiết bị hoặc máy tính của bạn 1399 00:57:18,130 --> 00:57:20,030 mở, đi trước và thử một cái gì đó. 1400 00:57:20,030 --> 00:57:23,740 Vì vậy, tôi sẽ lưu một tập tin gọi là hello.d. 1401 00:57:23,740 --> 00:57:25,010 Tiết kiệm này. 1402 00:57:25,010 --> 00:57:29,070 Và tôi sẽ để chạy make chào Nhập. 1403 00:57:29,070 --> 00:57:31,660 Dường như để suy ra rằng c nhiều khả năng 1404 00:57:31,660 --> 00:57:35,920 hơn d, trong trường hợp này. 1405 00:57:35,920 --> 00:57:38,046 Các câu hỏi khác. 1406 00:57:38,046 --> 00:57:40,456 Yeah. 1407 00:57:40,456 --> 00:57:41,706 >> Khán giả: không nghe được] 1408 00:57:48,170 --> 00:57:49,837 DAVID Malan: Được rồi, nói rằng một lần nữa. 1409 00:57:49,837 --> 00:57:51,087 Khán giả: không nghe được] 1410 00:58:04,250 --> 00:58:05,780 DAVID Malan: Làm thế nào bạn sẽ đi về chẩn đoán đó hoặc 1411 00:58:05,780 --> 00:58:06,380 xử lý sự cố đó? 1412 00:58:06,380 --> 00:58:08,800 Vì vậy, nhiều khả năng, bởi vì họ là những ngôn ngữ khác nhau, 1413 00:58:08,800 --> 00:58:10,280 rất có thể bạn sẽ nhận được một hoàn toàn 1414 00:58:10,280 --> 00:58:11,580 khác nhau chương trình xuất ra. 1415 00:58:11,580 --> 00:58:14,140 Bạn sẽ nhận được thông báo lỗi hoàn toàn khác nhau. 1416 00:58:14,140 --> 00:58:16,750 Và cũng có thể chỉ về thiết kế, nó cho là sẽ là một 1417 00:58:16,750 --> 00:58:19,140 quyết định thiết kế nghèo được viết hai khác nhau 1418 00:58:19,140 --> 00:58:21,510 ngôn ngữ với các tập tin gần như giống hệt tên là, 1419 00:58:21,510 --> 00:58:23,000 chính xác cùng một thư mục, sử dụng một 1420 00:58:23,000 --> 00:58:24,550 công cụ như tự động làm. 1421 00:58:24,550 --> 00:58:27,750 Vì vậy, tôi cũng có thể đẩy lùi và nói rằng trong 15 năm làm việc này, 1422 00:58:27,750 --> 00:58:29,190 không bao giờ được thực hiện cho rằng sai lầm. 1423 00:58:29,190 --> 00:58:30,030 Có thể xảy ra. 1424 00:58:30,030 --> 00:58:31,190 Tuy nhiên, chỉ khác nhau, tôi nghĩ rằng, 1425 00:58:31,190 --> 00:58:33,180 phòng thủ tại chỗ, hậu cần. 1426 00:58:33,180 --> 00:58:35,440 Cộng với các thông báo lỗi mà có thể xảy ra sau đó, mà có thể 1427 00:58:35,440 --> 00:58:37,260 cuối cùng đã tiết lộ những gì vấn đề là. 1428 00:58:37,260 --> 00:58:39,120 Nhưng một trường hợp góc có thể. 1429 00:58:39,120 --> 00:58:41,730 >> Được rồi, do đó, chúng ta hãy giới thiệu chỉ là một vài khác 1430 00:58:41,730 --> 00:58:45,600 tính năng ở đây bây giờ, vì vậy chúng ta có thể bắt đầu xây dựng vào nhiều 1431 00:58:45,600 --> 00:58:47,140 và phức tạp hơn chương trình. 1432 00:58:47,140 --> 00:58:49,000 Vì vậy, đầu tiên của tất cả, toán học. 1433 00:58:49,000 --> 00:58:51,520 Vì vậy, ví dụ toán học chỉ là loại dễ dàng trong tuần đầu tiên. 1434 00:58:51,520 --> 00:58:53,560 Điều này không phải là để nói rằng tất cả các lập trình là về 1435 00:58:53,560 --> 00:58:54,390 toán học. 1436 00:58:54,390 --> 00:58:57,890 Chắc chắn, sự hiểu biết các tính năng của 1437 00:58:57,890 --> 00:58:59,610 toán học, đại số đặc biệt, là 1438 00:58:59,610 --> 00:59:00,330 khá liên quan ở đây. 1439 00:59:00,330 --> 00:59:03,010 Ở cấp độ cao hơn CS các lớp học, đại số tuyến tính, 1440 00:59:03,010 --> 00:59:03,920 tính toán, và như thế. 1441 00:59:03,920 --> 00:59:06,500 Nhưng nhận ra hầu hết những gì chúng tôi sẽ làm trong học kỳ này làm giảm không 1442 00:59:06,500 --> 00:59:09,230 toán học, và chắc chắn không phải để số học, cho mỗi gia nhập, nhưng thực sự 1443 00:59:09,230 --> 00:59:11,570 chỉ logic và suy nghĩ cẩn thận. 1444 00:59:11,570 --> 00:59:14,310 Và do đó, sự liên kết này mà khoa học máy tính đã từ lâu đã có, 1445 00:59:14,310 --> 00:59:16,570 đặc biệt là ở cấp học cao, với toán học, là một 1446 00:59:16,570 --> 00:59:17,370 chút gây hiểu nhầm. 1447 00:59:17,370 --> 00:59:20,090 Bởi vì hầu hết các chương trình mà chúng ta sẽ viết, thực sự, 1448 00:59:20,090 --> 00:59:23,290 sắp xếp của cấp cao hơn và tập trung vào giải quyết các vấn đề đó, 1449 00:59:23,290 --> 00:59:26,410 chắc chắn, có thể sử dụng một số cộng, trừ, và các 1450 00:59:26,410 --> 00:59:28,650 công thức toán học hoặc tương tự, 1451 00:59:28,650 --> 00:59:30,860 nhưng vào cuối ngày, đó là về tư duy và không 1452 00:59:30,860 --> 00:59:33,240 chỉ thực hiện những gì bạn có thể đã được thực hiện trên giống như một TI 1453 00:59:33,240 --> 00:59:35,050 máy tính trong trường trung học. 1454 00:59:35,050 --> 00:59:38,410 >> Vì vậy, với những gì đã nói, chúng ta hãy làm điều gì đó với những 1455 00:59:38,410 --> 00:59:40,980 các nhà khai thác toán học tồn tại để chúng ta có thể chuyến đi 1456 00:59:40,980 --> 00:59:43,950 trên một số trong những khía cạnh cơ bản của chương trình, hoặc trong 1457 00:59:43,950 --> 00:59:48,930 trường hợp này C. Vì vậy, như thư viện CS50 đề nghị, 1458 00:59:48,930 --> 00:59:51,520 và hôm nay chúng tôi chỉ sử dụng GetString - và trong một khoảnh khắc 1459 00:59:51,520 --> 00:59:52,940 có lẽ là một chức năng khác - 1460 00:59:52,940 --> 00:59:55,380 nhưng cũng có những loại dữ liệu khác nhau trong một máy tính. 1461 00:59:55,380 --> 00:59:58,550 Vào cuối ngày, máy tính chỉ biết 0 và 1. 1462 00:59:58,550 --> 01:00:01,880 Nhưng nhớ lại rằng tuần trước, chúng tôi đã nói về hệ thống nhị phân 1463 01:00:01,880 --> 01:00:05,000 trong việc đại diện cho số, như số 0, 1, và 2, 1464 01:00:05,000 --> 01:00:07,480 tất cả các cách trên lên đến 8, như trong video của Nate. 1465 01:00:07,480 --> 01:00:08,840 Và sau đó chúng ta có thể tính cao hơn nhiều như chúng ta 1466 01:00:08,840 --> 01:00:10,000 đã làm trên sân khấu ở đây. 1467 01:00:10,000 --> 01:00:15,660 Nhưng nếu bạn muốn đại diện cho không chỉ là những con số nhưng các chữ cái, 1468 01:00:15,660 --> 01:00:18,240 chúng tôi, những con người, có để đến với một số tùy ý 1469 01:00:18,240 --> 01:00:21,180 công ước, theo đó, nếu ở cuối ngày tất cả các máy tính của tôi 1470 01:00:21,180 --> 01:00:24,260 đã là khả năng để thể hiện 0 và 1, chúng tôi muốn tốt hơn 1471 01:00:24,260 --> 01:00:27,990 bắt đầu chuẩn hóa mô hình 0 và 1 đại diện cho 1472 01:00:27,990 --> 01:00:28,800 sự việc. 1473 01:00:28,800 --> 01:00:32,370 Một mô hình của 0 và 1 đại diện cho một lá thư. 1474 01:00:32,370 --> 01:00:34,840 Patterns 0 và 1 đại diện cho z thư. 1475 01:00:34,840 --> 01:00:37,600 Mẫu của số 0 và số 1 đại diện cho màu xanh, hoặc 1476 01:00:37,600 --> 01:00:38,600 màu đỏ, hoặc tương tự. 1477 01:00:38,600 --> 01:00:42,360 Chúng tôi cần phải sử dụng tất cả các số 0 và 1 để thể hiện bản thân mình trong 1478 01:00:42,360 --> 01:00:45,140 bối cảnh khác nhau, những cách khác nhau mà không phải là 1479 01:00:45,140 --> 01:00:46,470 nhất thiết phải số. 1480 01:00:46,470 --> 01:00:51,150 >> Vì vậy, về đại diện, C có các loại dữ liệu khác nhau, 1481 01:00:51,150 --> 01:00:52,550 và chúng tôi đã nhìn thấy một trong những cho đến nay. 1482 01:00:52,550 --> 01:00:54,940 Chúng tôi thấy int, và thông báo những gì không phải trên màn hình 1483 01:00:54,940 --> 01:00:56,140 ngay bây giờ là chuỗi. 1484 01:00:56,140 --> 01:00:58,550 Chuỗi không, trên thực tế, tồn tại trong C. Một lần nữa, đó là một 1485 01:00:58,550 --> 01:01:00,610 đơn giản hóa chúng ta đang trình bày cho người đầu tiên 1486 01:01:00,610 --> 01:01:01,570 vài tuần. 1487 01:01:01,570 --> 01:01:03,770 Char là một nhân vật cá nhân. 1488 01:01:03,770 --> 01:01:07,050 Float là một số thực, với một điểm thập phân và số điện thoại để 1489 01:01:07,050 --> 01:01:09,066 bên trái và bên phải của nó. 1490 01:01:09,066 --> 01:01:16,040 Đôi là gì, cho những người với nền trước khi trở lại? 1491 01:01:16,040 --> 01:01:19,720 Vì vậy, một đôi là hai lần một cái gì đó. 1492 01:01:19,720 --> 01:01:21,240 Thêm hai lần như độ chính xác nhiều. 1493 01:01:21,240 --> 01:01:22,440 Vì vậy, điều này có nghĩa gì? 1494 01:01:22,440 --> 01:01:26,090 Vì vậy, trong mỗi trường hợp này, thế giới có loại tiêu chuẩn hóa 1495 01:01:26,090 --> 01:01:27,960 bao nhiêu bit được sử dụng để đại diện cho 1496 01:01:27,960 --> 01:01:29,160 mỗi những điều này. 1497 01:01:29,160 --> 01:01:31,590 Vì vậy, nếu bạn đã xem video ASCII của Nate đã cho một phần 1498 01:01:31,590 --> 01:01:36,170 pset 0, hoặc vào cuối tuần này, bạn sẽ, bạn có thể sẽ biết 1499 01:01:36,170 --> 01:01:37,450 rằng ASCII - 1500 01:01:37,450 --> 01:01:38,610 nhân vật đại diện - 1501 01:01:38,610 --> 01:01:40,670 sử dụng bao nhiêu bit? 1502 01:01:40,670 --> 01:01:43,410 Và thậm chí bạn có thể nhớ từ tuần trước demo của chúng tôi như thế nào 1503 01:01:43,410 --> 01:01:45,500 nhiều người trên sân khấu. 1504 01:01:45,500 --> 01:01:46,840 Vì vậy, 7 hoặc 8, thông thường. 1505 01:01:46,840 --> 01:01:49,230 Vì vậy, nói chung là 8, và có một cái gì đó gọi là mở rộng 1506 01:01:49,230 --> 01:01:51,240 ASCII sử dụng tất cả 8 bit, thay vì 7. 1507 01:01:51,240 --> 01:01:54,710 Nhưng nói chung, chúng tôi nói chuyện trong quyền hạn của 2, do đó, trong trường hợp này, 8. 1508 01:01:54,710 --> 01:01:58,900 Vì vậy, một char trong một ngôn ngữ lập trình thường là 8 bit. 1509 01:01:58,900 --> 01:02:02,550 Vì vậy, một int thường là 32 bit. 1510 01:02:02,550 --> 01:02:04,810 Float A thường là 32 bit. 1511 01:02:04,810 --> 01:02:08,060 Đôi là 64 bit. 1512 01:02:08,060 --> 01:02:08,870 Và điều đó có nghĩa gì? 1513 01:02:08,870 --> 01:02:11,500 Nó có nghĩa là bạn có thể đại diện cho số lớn hơn, hoặc trong trường hợp 1514 01:02:11,500 --> 01:02:15,490 số thực, bạn có thể có số lượng nhiều hơn sau khi 1515 01:02:15,490 --> 01:02:16,240 vị trí thập phân. 1516 01:02:16,240 --> 01:02:18,980 Rất nhiều chi tiết chính xác, trong trường hợp đó. 1517 01:02:18,980 --> 01:02:21,780 Bây giờ một lâu dài, rất tiếc là đặt tên. 1518 01:02:21,780 --> 01:02:24,340 Vì vậy, có một int là 32 bit. 1519 01:02:24,340 --> 01:02:29,800 Có một thời gian dài đó là, nope, 32 bit. 1520 01:02:29,800 --> 01:02:32,610 Và một lâu dài là 64 bit. 1521 01:02:32,610 --> 01:02:34,830 Tuy nhiên, một số trong số đó là bối cảnh nhạy cảm, nó phụ thuộc 1522 01:02:34,830 --> 01:02:36,190 loại máy tính mà bạn có. 1523 01:02:36,190 --> 01:02:40,510 Vì vậy, nói chung, chúng tôi sẽ chỉ định trong một bài tập ở nhà hoặc trong một bài kiểm tra 1524 01:02:40,510 --> 01:02:41,180 nó thực sự quan trọng. 1525 01:02:41,180 --> 01:02:43,080 Nhưng điểm là có tất cả những khác nhau 1526 01:02:43,080 --> 01:02:44,250 cơ quan đại diện ở đây. 1527 01:02:44,250 --> 01:02:45,950 >> Vì vậy, chúng ta hãy thực sự nhảy vào một chương trình. 1528 01:02:45,950 --> 01:02:48,300 Thay vì viết này từ đầu, hãy để tôi đi trước 1529 01:02:48,300 --> 01:02:50,940 và mở ra từ mã nguồn của ngày hôm nay - tất cả đều là 1530 01:02:50,940 --> 01:02:54,980 trực tuyến - nếu bạn muốn tinker quanh trực tuyến, hoặc trả lại 1531 01:02:54,980 --> 01:02:57,120 Với các thiết bị trên máy tính của bạn, hướng dẫn 1532 01:02:57,120 --> 01:02:59,160 mà sẽ liên kết trên trang chủ của khóa học. 1533 01:02:59,160 --> 01:03:00,830 Đây là một chương trình đơn giản siêu. 1534 01:03:00,830 --> 01:03:02,520 Nhưng nó có một chút gì đó mới ở đầu trang 1535 01:03:02,520 --> 01:03:03,650 chúng tôi đã không có trước đây. 1536 01:03:03,650 --> 01:03:05,800 Một toàn bộ rất nhiều màu xanh của dòng văn bản. 1537 01:03:05,800 --> 01:03:08,410 Vì vậy, những dòng màu xanh đại diện cho ý kiến. 1538 01:03:08,410 --> 01:03:10,620 Vì vậy, nó khá hữu ích trong một chương trình để có thể viết 1539 01:03:10,620 --> 01:03:13,160 một số ý kiến ​​cho chính mình, hoặc đồng nghiệp, bạn bè, hoặc 1540 01:03:13,160 --> 01:03:15,700 nghiên cứu sinh giảng dạy, mà loại mô tả những gì đang diễn ra trong 1541 01:03:15,700 --> 01:03:18,500 tập tin này, nhưng không có gì để làm với C mã chính nó. 1542 01:03:18,500 --> 01:03:20,860 Không có gì để làm với chương trình chức năng, nó chỉ là 1543 01:03:20,860 --> 01:03:21,760 thẩm mỹ. 1544 01:03:21,760 --> 01:03:24,580 Vì vậy, cách bạn làm điều này trong C là bạn thường bắt đầu 1545 01:03:24,580 --> 01:03:29,860 ý kiến ​​với / *, và bạn sẽ cảm nhận của bạn với 1546 01:03:29,860 --> 01:03:31,270 * /. 1547 01:03:31,270 --> 01:03:34,140 Và nếu bạn thực sự hậu môn và như để vẽ loại hình ảnh, 1548 01:03:34,140 --> 01:03:35,870 sau đó bạn muốn đặt một toàn bộ rất nhiều ngôi sao, bạn muốn tạo ra một 1549 01:03:35,870 --> 01:03:36,970 hộp nhỏ như thế này. 1550 01:03:36,970 --> 01:03:37,990 Nhưng không có vấn đề. 1551 01:03:37,990 --> 01:03:40,230 Điều duy nhất mà vấn đề là đầu tiên 1552 01:03:40,230 --> 01:03:41,620 và cuối cùng 1553 01:03:41,620 --> 01:03:43,820 Đây là những gì được gọi là một lời nhận xét nhiều đường. 1554 01:03:43,820 --> 01:03:46,610 Và nó chỉ là con người quy ước thường làm những ngôi sao và hộp 1555 01:03:46,610 --> 01:03:48,420 những thứ như thế này nếu bạn có nhiều thời gian rảnh. 1556 01:03:48,420 --> 01:03:51,550 >> Vì vậy, sau khi bạn đã viết trong một số ý kiến, nói chung, đến 1557 01:03:51,550 --> 01:03:53,160 thực tế ruột của chương trình. 1558 01:03:53,160 --> 01:03:55,630 Đây là quen thuộc của chúng tôi # include. 1559 01:03:55,630 --> 01:04:00,410 Và chỉ nhanh chóng, điều này là cần thiết hay không cần thiết? 1560 01:04:00,410 --> 01:04:02,860 Khán giả: cần thiết. 1561 01:04:02,860 --> 01:04:04,390 DAVID Malan: Vì vậy, nó thực sự không cần thiết. 1562 01:04:04,390 --> 01:04:07,070 Vậy tại sao, mặc dù là nó không cần thiết? 1563 01:04:07,070 --> 01:04:08,170 Vì vậy, có printf không. 1564 01:04:08,170 --> 01:04:08,510 Thực sự. 1565 01:04:08,510 --> 01:04:10,470 Tất cả chúng tôi đang làm trong chương trình này là toán học. 1566 01:04:10,470 --> 01:04:11,640 Vì vậy, tôi thực sự có thể xóa. 1567 01:04:11,640 --> 01:04:14,330 Vì vậy, bạn không phải lúc nào cũng phải bao gồm bất cứ điều gì 1568 01:04:14,330 --> 01:04:15,420 đầu của một chương trình. 1569 01:04:15,420 --> 01:04:17,020 >> Vì vậy, chúng ta hãy đơn giản hóa điều này một chút. 1570 01:04:17,020 --> 01:04:18,650 Và bây giờ nhận thấy chương trình này làm gì. 1571 01:04:18,650 --> 01:04:19,920 Không có nhiều quan tâm. 1572 01:04:19,920 --> 01:04:21,410 int x = 1. 1573 01:04:21,410 --> 01:04:22,550 Vâng, điều này đang làm gì? 1574 01:04:22,550 --> 01:04:25,130 Vâng, nghĩ trở lại mô hình tinh thần từ trước. 1575 01:04:25,130 --> 01:04:27,500 Phía bên tay trái của biểu thức này làm những gì? 1576 01:04:31,440 --> 01:04:32,830 Tạo không gian cho một số nguyên. 1577 01:04:32,830 --> 01:04:33,930 Vì vậy, bao nhiêu không gian? 1578 01:04:33,930 --> 01:04:36,980 Vâng, chúng tôi xảy ra cho biết bây giờ mà nó là 32 bit. 1579 01:04:36,980 --> 01:04:40,070 Trước đây, một chuỗi kỹ thuật 32 bit, nhưng nhiều hơn 1580 01:04:40,070 --> 01:04:40,950 rằng trong tương lai. 1581 01:04:40,950 --> 01:04:42,240 Nhưng một int là 32 bit. 1582 01:04:42,240 --> 01:04:45,590 Vì vậy, điều này biểu hiện bên trái ở đây, int x chỉ nói hey 1583 01:04:45,590 --> 01:04:48,490 hệ điều hành, cho tôi 32 bit của bộ nhớ RAM - 1584 01:04:48,490 --> 01:04:50,450 nếu không được biết đến như 4 byte của RAM - 1585 01:04:50,450 --> 01:04:53,930 để tôi có thể đặt một số nguyên trong không gian đó. 1586 01:04:53,930 --> 01:04:55,330 Số nguyên đã muốn đặt? 1587 01:04:55,330 --> 01:04:56,640 Vâng, chỉ cần số 1. 1588 01:04:56,640 --> 01:04:59,530 int y được 2, cùng một điều chính xác mặc dù 1589 01:04:59,530 --> 01:05:02,160 số là lớn hơn, về độ lớn của nó. 1590 01:05:02,160 --> 01:05:04,790 Số lượng chính nó vẫn còn chỉ 32 bit. 1591 01:05:04,790 --> 01:05:06,520 Nó chỉ là mô hình của các bit khác nhau để 1592 01:05:06,520 --> 01:05:08,260 đại diện cho 1 so với 2. 1593 01:05:08,260 --> 01:05:11,980 int z bây giờ nói cho tôi một 32 bit gọi nó là z, và đặt 1594 01:05:11,980 --> 01:05:14,210 tổng kết 1 và 2 trong đó. 1595 01:05:14,210 --> 01:05:18,050 Vì vậy mà bây giờ z có lẽ là lưu trữ các giá trị 3, 1596 01:05:18,050 --> 01:05:19,360 và sau đó trở về 0. 1597 01:05:19,360 --> 01:05:23,020 >> Bây giờ chương trình này, nó làm bất cứ điều gì quan tâm? 1598 01:05:23,020 --> 01:05:26,170 Vì vậy, nó thực sự không làm bất cứ điều gì thú vị, trong bất kỳ 1599 01:05:26,170 --> 01:05:28,450 ý nghĩa, bởi vì tại sao? Nó đang làm một số toán học. 1600 01:05:28,450 --> 01:05:30,590 Nhưng nó không trả lại câu trả lời, phải. 1601 01:05:30,590 --> 01:05:31,790 Nó trở về 0. 1602 01:05:31,790 --> 01:05:33,440 Nó không phải in câu trả lời. 1603 01:05:33,440 --> 01:05:35,760 Vì vậy, chương trình này về cơ bản là vô giá trị, vì nó 1604 01:05:35,760 --> 01:05:36,350 viết tắt bây giờ. 1605 01:05:36,350 --> 01:05:37,220 Nó đang làm một số công việc. 1606 01:05:37,220 --> 01:05:39,530 Nó sẽ mất một số số giây, micro, 1607 01:05:39,530 --> 01:05:41,510 chạy, nhưng nó không thực sự làm bất cứ điều gì 1608 01:05:41,510 --> 01:05:42,770 hữu ích cho con người. 1609 01:05:42,770 --> 01:05:46,810 >> Vì vậy, chúng ta hãy thực sự bây giờ mở math2, bây giờ tôi đang thực sự 1610 01:05:46,810 --> 01:05:48,250 in kết quả. 1611 01:05:48,250 --> 01:05:51,260 Vì vậy, điều này cũng có thể được suy ra từ các ví dụ trước đây của chúng tôi. 1612 01:05:51,260 --> 01:05:54,320 Nếu tôi muốn làm một số toán học đơn giản, int x = 1, y 1613 01:05:54,320 --> 01:05:56,820 = 2. z là 1 cộng với 2 bây giờ. 1614 01:05:56,820 --> 01:05:59,240 Này là những gì sẽ in ra rõ ràng? 1615 01:05:59,240 --> 01:06:00,120 Chỉ 3. 1616 01:06:00,120 --> 01:06:01,590 Như vậy nhanh chóng kiểm tra sanity. 1617 01:06:01,590 --> 01:06:03,830 Hãy để tôi di chuyển vào thư mục này. 1618 01:06:03,830 --> 01:06:06,480 Vì vậy, cd source1m. 1619 01:06:06,480 --> 01:06:09,370 Hãy để tôi đi trước và gõ làm math2. 1620 01:06:09,370 --> 01:06:11,510 Không có thông báo lỗi xuất hiện, do đó, cho phép tôi chạy - 1621 01:06:11,510 --> 01:06:14,800 không a.out cho tôi chạy math2. Enter. 1622 01:06:14,800 --> 01:06:16,750 Và quả thực, nó được in ra 3. 1623 01:06:16,750 --> 01:06:18,460 Vâng chúng ta hãy có một cái nhìn tại một biến thể của điều này. 1624 01:06:18,460 --> 01:06:23,870 Trong math3.c, bây giờ chúng ta có ví dụ này ở đây. 1625 01:06:23,870 --> 01:06:26,540 >> Vì vậy, một loại thú vị. 1626 01:06:26,540 --> 01:06:32,000 Vì vậy, trong này ở đây, câu trả lời là để có được 1 chia cho 10, 1627 01:06:32,000 --> 01:06:33,910 và thông báo tôi đã khai báo nó như là một phao. 1628 01:06:33,910 --> 01:06:35,200 Tại sao tôi muốn nó được một phao? 1629 01:06:35,200 --> 01:06:36,110 Vâng, đó là một phần nhỏ. 1630 01:06:36,110 --> 01:06:37,140 Nó sẽ là một số thực. 1631 01:06:37,140 --> 01:06:40,970 Vì vậy, nó sẽ là 0,1, hy vọng - 10%, trong trường hợp này. 1632 01:06:40,970 --> 01:06:42,610 Và những gì tôi sau đó muốn in ra? 1633 01:06:42,610 --> 01:06:43,440 Vâng, câu trả lời. 1634 01:06:43,440 --> 01:06:44,760 Vâng, chúng ta trêu chọc những ngoài. 1635 01:06:44,760 --> 01:06:47,020 Vì vậy, ở phía bên trái, khai báo một 1636 01:06:47,020 --> 01:06:49,410 nổi, gọi nó trả lời. 1637 01:06:49,410 --> 01:06:52,280 Ở phía bên tay phải, 1 chia cho 10 và đặt 1638 01:06:52,280 --> 01:06:54,370 trả lời bên trong của biến. 1639 01:06:54,370 --> 01:06:56,410 Bây giờ, dòng này có vẻ nhiều hơn một chút khó hiểu. 1640 01:06:56,410 --> 01:06:59,440 Nhưng hãy chú ý một số tính năng quen thuộc. % Có nghĩa là ở đây có một 1641 01:06:59,440 --> 01:07:00,490 giữ chỗ. 1642 01:07:00,490 --> 01:07:03,230 f có nghĩa là đây là một giá trị dấu chấm động, chỉ cần một thực tế 1643 01:07:03,230 --> 01:07:05,490 số lượng, một cái gì đó với một điểm thập phân. 1644 01:07:05,490 --> 01:07:07,330 0,2 có nghĩa là gì? 1645 01:07:07,330 --> 01:07:10,740 Bất cứ ai cũng biết từ kinh nghiệm trước? 1646 01:07:10,740 --> 01:07:12,010 Hai chữ số thập phân. 1647 01:07:12,010 --> 01:07:14,050 Vì vậy, chúng tôi đã không nhìn thấy điều này trước đây, nhưng nó chỉ là một cách 1648 01:07:14,050 --> 01:07:16,360 thực hiện kiểm soát nhiều hơn ít hơn printf 1649 01:07:16,360 --> 01:07:20,840 câu nói không cho tôi 30 điểm sau khi các điểm thập phân, 1650 01:07:20,840 --> 01:07:22,490 thay vì cho tôi chỉ là 2. 1651 01:07:22,490 --> 01:07:23,960 >> Và sau đó chúng ta hãy đi trước và chạy. 1652 01:07:23,960 --> 01:07:30,160 Vì vậy, làm cho toán học 3, và bây giờ để tôi chạy toán 3, Enter. 1653 01:07:30,160 --> 01:07:34,630 Và đó là không đúng. 1654 01:07:34,630 --> 01:07:37,390 Chúng tôi dường như đã gặp phải lỗi đầu tiên chính hãng của chúng tôi. 1655 01:07:37,390 --> 01:07:39,400 Vâng, có lẽ tôi không đủ gần. 1656 01:07:39,400 --> 01:07:41,960 Vì vậy, hãy để tôi đi lên ở đây, và cho tôi đặt 20 số thập phân 1657 01:07:41,960 --> 01:07:43,300 điểm nơi có. 1658 01:07:43,300 --> 01:07:47,950 Và hãy để tôi biên dịch này, làm cho math3, chạy. 1659 01:07:47,950 --> 01:07:50,960 Đẹp, chắc chắn 1 chia cho 10 không phải là 0. 1660 01:07:50,960 --> 01:07:54,270 Vì vậy, những gì đang xảy ra? 1661 01:07:54,270 --> 01:07:56,740 Cũng không sao, do đó, thực sự nó không phải làm với điều này. 1662 01:07:56,740 --> 01:07:57,600 Đó là một suy nghĩ tốt. 1663 01:07:57,600 --> 01:07:59,140 Điều này thực sự chỉ là một sự trùng hợp ngẫu nhiên 1664 01:07:59,140 --> 01:08:00,220 rằng chúng tôi đang làm điều này. 1665 01:08:00,220 --> 01:08:02,010 Nhưng chỉ để chứng minh rằng điều này không phải là nó, tôi sẽ 1666 01:08:02,010 --> 01:08:03,160 trả lại một cái gì đó ngẫu nhiên. 1667 01:08:03,160 --> 01:08:05,160 Đừng làm điều này ở nhà, bởi vì nó chỉ sai. 1668 01:08:05,160 --> 01:08:08,000 Nhưng chắc math3, hãy để tôi chạy nó. 1669 01:08:08,000 --> 01:08:10,690 Vì vậy, không có gì để làm với những gì tôi đang quay trở lại, chỉ có làm 1670 01:08:10,690 --> 01:08:11,940 với những gì tôi đang in. 1671 01:08:11,940 --> 01:08:14,150 Nhưng tôi nghe nói nó xuống ở đây. 1672 01:08:14,150 --> 01:08:15,270 Gì? 1673 01:08:15,270 --> 01:08:17,524 Khán giả: Vì vậy, chúng tôi cần phải viết các con số trong 1674 01:08:17,524 --> 01:08:19,680 sự phân chia như - 1675 01:08:19,680 --> 01:08:20,319 >> DAVID Malan: Được rồi tốt. 1676 01:08:20,319 --> 01:08:22,810 Vì vậy, chúng ta cần phải viết những con số tham gia vào 1677 01:08:22,810 --> 01:08:25,979 phân chia ở đây là điểm nổi giá trị bản thân mình. 1678 01:08:25,979 --> 01:08:29,359 Vì vậy, vấn đề ở đây là như trước: C, với rất nhiều 1679 01:08:29,359 --> 01:08:31,819 ngôn ngữ, có các loại dữ liệu khác nhau. 1680 01:08:31,819 --> 01:08:34,600 Và những kiểu dữ liệu, ví dụ, là những đây. 1681 01:08:34,600 --> 01:08:37,430 Và các kiểu dữ liệu trong câu hỏi ở đây, khi tôi gõ 1 và sau đó tôi 1682 01:08:37,430 --> 01:08:40,870 loại 10, có lẽ là những gì các loại dữ liệu? 1683 01:08:40,870 --> 01:08:42,170 Vì vậy, nó có thể là một int, phải không? 1684 01:08:42,170 --> 01:08:44,149 Đó chắc chắn không phải một phao bởi vì có số thập phân 1685 01:08:44,149 --> 01:08:45,460 điểm hoặc bất cứ điều gì như thế. 1686 01:08:45,460 --> 01:08:48,270 Vì vậy, thực sự, tôi có một int chia một int. 1687 01:08:48,270 --> 01:08:52,160 >> Vì vậy, điều thú vị về toán học và một máy tính là 1688 01:08:52,160 --> 01:08:54,840 nếu bạn đang làm bộ phận sử dụng số nguyên - 1689 01:08:54,840 --> 01:08:57,310 1 chia cho 10, có là 0,1. 1690 01:08:57,310 --> 01:09:01,420 Tuy nhiên, khi bạn đang phân chia một số nguyên một số nguyên, 1691 01:09:01,420 --> 01:09:06,859 câu trả lời có cũng là một số nguyên chỉ vì, cho bây giờ. 1692 01:09:06,859 --> 01:09:08,630 Và ngụ ý những gì sau đó? 1693 01:09:08,630 --> 01:09:13,640 Vâng, nếu câu trả lời là 1 chia cho 10 bằng 0,1, 1694 01:09:13,640 --> 01:09:15,680 máy tính sẽ làm là tôi không có ý tưởng làm thế nào để 1695 01:09:15,680 --> 01:09:19,270 đại diện cho 0,1, bởi vì đó là một giá trị dấu chấm động, không phải là một 1696 01:09:19,270 --> 01:09:21,910 số nguyên, nó sẽ để chop off tất cả mọi thứ sau khi 1697 01:09:21,910 --> 01:09:27,470 số thập phân điểm và chỉ cho bạn thấy 0 ở đầu. 1698 01:09:27,470 --> 01:09:29,540 Và thực tế là nó in như là một điểm nổi 1699 01:09:29,540 --> 01:09:31,200 giá trị, nó chỉ là một thứ thẩm mỹ. 1700 01:09:31,200 --> 01:09:34,279 Đó là bởi vì tôi đang buộc các máy tính để in này như là một 1701 01:09:34,279 --> 01:09:35,229 nổi giá trị điểm. 1702 01:09:35,229 --> 01:09:37,720 Và thực sự tôi đã khai báo nó như là một phao, nhưng toán học 1703 01:09:37,720 --> 01:09:39,010 xảy ra ở đây. 1704 01:09:39,010 --> 01:09:41,859 >> Vì vậy, hãy để tôi thực sự sửa chữa điều này trong một cách khá dễ dàng. 1705 01:09:41,859 --> 01:09:45,250 Tại sao tôi không làm 10,0 và 1,0, mặc dù 1706 01:09:45,250 --> 01:09:47,609 kỹ thuật tôi có thể nhận được ngay với chỉ làm một trong những người. 1707 01:09:47,609 --> 01:09:50,630 Bây giờ hãy để tôi đi trước và thực math3. 1708 01:09:50,630 --> 01:09:56,350 Hãy để tôi đi trước và bây giờ chạy math3, Enter. 1709 01:09:56,350 --> 01:09:57,500 Và bây giờ, cậu bé. 1710 01:09:57,500 --> 01:10:00,050 Bây giờ chúng ta có một vấn đề mới hoàn toàn. 1711 01:10:00,050 --> 01:10:05,600 Vì vậy tốt hơn, phải không, chúng ta đang tiến gần hơn đến 0,1, nhưng những gì rõ ràng là 1712 01:10:05,600 --> 01:10:06,240 sai ở đây? 1713 01:10:06,240 --> 01:10:08,260 Trừ khi chúng ta đã nói dối với bạn trong nhiều năm, phải không? 1714 01:10:08,260 --> 01:10:13,660 1 chia cho 10 thực sự là không hoàn toàn 0,1, vì vậy những gì 1715 01:10:13,660 --> 01:10:14,700 thực sự xảy ra ở đây? 1716 01:10:14,700 --> 01:10:16,420 Vâng, bạn có thể loại lý do thông qua một cách logic. 1717 01:10:16,420 --> 01:10:19,200 Nếu máy tính chỉ có một số lượng hữu hạn của bộ nhớ RAM để bắt đầu 1718 01:10:19,200 --> 01:10:23,530 với, và thực sự là một máy tính chỉ bằng cách sử dụng 32 bit cho một 1719 01:10:23,530 --> 01:10:26,200 nổi giá trị điểm, nó đứng vào lý do đó với một 1720 01:10:26,200 --> 01:10:29,870 số lượng hữu hạn của các bit, 32 trong trường hợp này, có, bạn có thể 1721 01:10:29,870 --> 01:10:31,050 đại diện cho rất nhiều thứ. 1722 01:10:31,050 --> 01:10:33,220 Nó thực sự là bốn tỷ giá trị khác nhau có thể được 1723 01:10:33,220 --> 01:10:38,040 đại diện với 32 bit, 2 cho 32, nhưng nó vẫn còn hữu hạn. 1724 01:10:38,040 --> 01:10:40,730 Vì vậy, vấn đề là có một số lượng vô hạn thực 1725 01:10:40,730 --> 01:10:41,370 số, bên phải. 1726 01:10:41,370 --> 01:10:43,560 Nếu bạn cung cấp cho tôi một số thực, tôi luôn luôn có thể tìm thấy bạn một 1727 01:10:43,560 --> 01:10:46,080 hơi lớn, hơi ít, bởi chỉ cần tinh chỉnh 1728 01:10:46,080 --> 01:10:47,970 số sau dấu thập phân. 1729 01:10:47,970 --> 01:10:50,870 Vì vậy, nếu bạn không có một số lượng vô hạn của các bit, bạn 1730 01:10:50,870 --> 01:10:52,940 không thể đại diện cho một vô hạn 1731 01:10:52,940 --> 01:10:54,800 số các số thực. 1732 01:10:54,800 --> 01:10:58,090 >> Vì vậy, có sự thiếu chính xác vốn có trong các máy tính này, và 1733 01:10:58,090 --> 01:11:00,930 này bị vấp ngã trên tất cả các thời gian ngay cả trong những đơn giản nhất 1734 01:11:00,930 --> 01:11:02,260 các chương trình như thế này. 1735 01:11:02,260 --> 01:11:05,640 Nhưng cũng có một số vấn đề rất thực tế trên thế giới cũng như. 1736 01:11:05,640 --> 01:11:07,790 Trong thực tế, chúng ta hãy dành một chút thời gian để đi xem một 1737 01:11:07,790 --> 01:11:09,530 một cái gì đó thực sự xảy ra trong thực tế. 1738 01:11:09,530 --> 01:11:11,620 Chúng tôi sẽ xem chỉ là vài phút đầu tiên, và sau đó 1739 01:11:11,620 --> 01:11:13,270 chúng tôi sẽ gửi liên kết trực tuyến. 1740 01:11:13,270 --> 01:11:16,700 Nhưng điều này là minh chứng cho chỉ là những gì có thể đi sai, khá 1741 01:11:16,700 --> 01:11:19,680 một cách trung thực, theo một cách rất bi thảm khi những điều này là không 1742 01:11:19,680 --> 01:11:23,870 đánh giá cao hoặc chỉ con người chúng ta phạm sai lầm khi nói đến 1743 01:11:23,870 --> 01:11:26,792 các loại chi tiết thực hiện của các máy tính hiện đại. 1744 01:11:26,792 --> 01:11:27,284 >> [Chơi video] 1745 01:11:27,284 --> 01:11:30,730 Bây giờ chúng ta quay trở lại với các thảm họa kỹ thuật trên Modern Marvels. 1746 01:11:30,730 --> 01:11:32,200 Máy tính. 1747 01:11:32,200 --> 01:11:34,920 Tất cả chúng tôi đã đến để chấp nhận những vấn đề thường bực bội 1748 01:11:34,920 --> 01:11:36,750 mà đi với họ. 1749 01:11:36,750 --> 01:11:40,690 Lỗi, virus, và ổn định phần mềm là giá nhỏ 1750 01:11:40,690 --> 01:11:42,550 trả tiền cho sự tiện lợi. 1751 01:11:42,550 --> 01:11:45,170 Nhưng trong quân đội tốc độ cao và không gian công nghệ cao và cao 1752 01:11:45,170 --> 01:11:48,450 ứng dụng chương trình, các vấn đề nhỏ nhất có thể được 1753 01:11:48,450 --> 01:11:52,220 phóng đại thành thảm họa. 1754 01:11:52,220 --> 01:11:56,780 Vào ngày 4 tháng 6 năm 1996, các nhà khoa học chuẩn bị để khởi động một không người lái 1755 01:11:56,780 --> 01:11:58,430 Ariane 5 tên lửa. 1756 01:11:58,430 --> 01:12:00,750 Nó được mang theo vệ tinh khoa học được thiết kế để 1757 01:12:00,750 --> 01:12:03,580 thiết lập chính xác như thế nào từ trường của trái đất 1758 01:12:03,580 --> 01:12:06,900 tương tác với gió mặt trời. 1759 01:12:06,900 --> 01:12:10,330 Tên lửa được xây dựng cho Cơ quan Vũ trụ châu Âu và 1760 01:12:10,330 --> 01:12:13,450 nâng lên khỏi từ cơ sở của nó trên bờ biển của Pháp Guyana. 1761 01:12:13,450 --> 01:12:16,970 >> Xét về khoảng 37 giây vào chuyến bay, họ lần đầu tiên 1762 01:12:16,970 --> 01:12:19,700 nhận thấy một cái gì đó đã đi sai, rằng các vòi phun 1763 01:12:19,700 --> 01:12:21,590 xoay trong một cách mà họ thực sự không nên. 1764 01:12:21,590 --> 01:12:25,020 Khoảng 40 giây vào chuyến bay, rõ ràng chiếc xe 1765 01:12:25,020 --> 01:12:27,340 gặp rắc rối, và đó là khi họ thực hiện các quyết định 1766 01:12:27,340 --> 01:12:28,136 tiêu diệt nó. 1767 01:12:28,136 --> 01:12:31,450 Một sĩ quan an toàn với hệ thống ruột to lớn nhấn 1768 01:12:31,450 --> 01:12:34,160 nút, nổ tung tên lửa trước khi nó có thể trở thành một 1769 01:12:34,160 --> 01:12:37,470 gây nguy hiểm cho an toàn công cộng. 1770 01:12:37,470 --> 01:12:40,750 >> -Đây là chuyến đi đầu tiên của tên lửa Ariane 5, và 1771 01:12:40,750 --> 01:12:43,990 phá hủy diễn ra vì một lỗ hổng nhúng vào trong 1772 01:12:43,990 --> 01:12:45,480 tên lửa của phần mềm. 1773 01:12:45,480 --> 01:12:47,660 >> Các vấn đề về Ariane là có một con số 1774 01:12:47,660 --> 01:12:51,245 yêu cầu 64 bit để thể hiện và họ muốn chuyển đổi nó 1775 01:12:51,245 --> 01:12:53,010 một số 16 bit. 1776 01:12:53,010 --> 01:12:54,900 Họ cho rằng con số này là không bao giờ 1777 01:12:54,900 --> 01:12:56,280 sẽ là rất lớn, 1778 01:12:56,280 --> 01:12:59,920 rằng hầu hết những chữ số trong số 64 bit 0. 1779 01:12:59,920 --> 01:13:01,860 Họ đã lầm. 1780 01:13:01,860 --> 01:13:04,550 >> Sự bất lực của một chương trình phần mềm để chấp nhận các 1781 01:13:04,550 --> 01:13:07,730 loại số được tạo ra bởi một người khác là ở gốc của 1782 01:13:07,730 --> 01:13:08,930 sự thất bại. 1783 01:13:08,930 --> 01:13:11,490 Phát triển phần mềm đã trở thành một phần rất tốn kém 1784 01:13:11,490 --> 01:13:13,280 công nghệ mới. 1785 01:13:13,280 --> 01:13:16,530 Các tên lửa Ariane 4 đã rất thành công. 1786 01:13:16,530 --> 01:13:19,100 Vì vậy, nhiều phần mềm tạo ra cho nó cũng được sử dụng 1787 01:13:19,100 --> 01:13:21,050 Ariane 5. 1788 01:13:21,050 --> 01:13:25,530 >> - Vấn đề cơ bản là tên lửa Ariane 5 đã được nhanh hơn, 1789 01:13:25,530 --> 01:13:27,280 tăng tốc nhanh hơn. 1790 01:13:27,280 --> 01:13:30,590 Và phần mềm đã không được tính cho điều đó. 1791 01:13:30,590 --> 01:13:33,060 >> Việc tiêu hủy các tên lửa là một tài chính lớn 1792 01:13:33,060 --> 01:13:37,670 thiên tai, tất cả vì một phút lỗi phần mềm. 1793 01:13:37,670 --> 01:13:40,750 Nhưng điều này không phải là lần đầu tiên vấn đề chuyển đổi dữ liệu có 1794 01:13:40,750 --> 01:13:43,680 cản công nghệ tên lửa hiện đại. 1795 01:13:43,680 --> 01:13:44,390 >> DAVID Malan: Chúng tôi sẽ để nó ở đó. 1796 01:13:44,390 --> 01:13:46,870 Nhưng điều này là minh chứng cho cách áp dụng thậm chí một số 1797 01:13:46,870 --> 01:13:48,750 những mức thấp nhất chi tiết mà chúng tôi đã bắt đầu 1798 01:13:48,750 --> 01:13:50,040 khám phá ngày hôm nay là. 1799 01:13:50,040 --> 01:13:52,510 Vì vậy, ngay cả khi bạn nhận được một chút phân tâm có lẽ bởi một số 1800 01:13:52,510 --> 01:13:55,240 cú pháp và arcaneness đây, nhận ra rằng trong 1801 01:13:55,240 --> 01:13:57,690 dài, chúng tôi sẽ tập trung vào cách áp dụng này là để 1802 01:13:57,690 --> 01:13:59,530 thế giới vượt xa CS. 1803 01:13:59,530 --> 01:14:00,780 Chúng ta sẽ thấy bạn hôm thứ Tư.