1 00:00:00,000 --> 00:00:05,410 2 00:00:05,410 --> 00:00:08,770 >> Andi PENG: Chúng tôi gần như qua tất cả các psets. 3 00:00:08,770 --> 00:00:12,080 Trong thực tế, chúng tôi qua phần lớn của psets khó khăn nhất. 4 00:00:12,080 --> 00:00:14,350 Vì vậy, chúng tôi thực sự chỉ sẽ loại gió 5 00:00:14,350 --> 00:00:16,050 qua vài tuần tới. 6 00:00:16,050 --> 00:00:19,520 >> Chúng ta sẽ bắt đầu nói về chúng tôi dự án cuối cùng, các sự kiện sắp tới 7 00:00:19,520 --> 00:00:21,320 trong vài tuần tới. 8 00:00:21,320 --> 00:00:23,825 Và cuộc sống sẽ là một làn gió. 9 00:00:23,825 --> 00:00:26,510 10 00:00:26,510 --> 00:00:27,680 Vì vậy, không quá nhiều ngày nay. 11 00:00:27,680 --> 00:00:30,280 >> Hy vọng rằng, trên thực tế sẽ khoe thông qua chương trình nghị sự cho ngày hôm nay, 12 00:00:30,280 --> 00:00:33,400 và sau đó ra khỏi đây với một số thời gian rảnh rỗi. 13 00:00:33,400 --> 00:00:36,210 Ngoài ra, tôi muốn xin lỗi cho thiếu kẹo ngày hôm nay. 14 00:00:36,210 --> 00:00:37,030 Tôi không biết tại sao. 15 00:00:37,030 --> 00:00:40,520 Nhưng trong tuần đầu lên Halloween, tôi sẽ quên kẹo. 16 00:00:40,520 --> 00:00:43,290 >> Vì vậy, tôi thực sự chỉ là một rộng lớn thất vọng cho bạn ngay bây giờ. 17 00:00:43,290 --> 00:00:47,050 Bởi vì tôi thật nhớ kẹo cho mỗi lớp duy nhất, nhưng Halloween. 18 00:00:47,050 --> 00:00:49,345 Nhưng tuần sau, tôi sẽ mang lại tăng gấp đôi số lượng kẹo 19 00:00:49,345 --> 00:00:50,720 tạo nên cho rằng, tất cả cho bạn. 20 00:00:50,720 --> 00:00:53,260 Nó sẽ là tuyệt vời. 21 00:00:53,260 --> 00:00:56,690 >> Vì vậy, tôi có một vài thông báo liên quan đến một số kế hoạch. 22 00:00:56,690 --> 00:00:59,520 Tôi có một số vấn đề lập kế hoạch. 23 00:00:59,520 --> 00:01:02,150 Sau đó, chúng ta sẽ chuyển sang nói về những gì được gọi là chmod. 24 00:01:02,150 --> 00:01:05,980 Chúng ta sẽ nói về nhanh chóng TCP / IP HTTP. 25 00:01:05,980 --> 00:01:09,770 >> Và sau đó chúng ta sẽ viết mã của chúng tôi trang web riêng bằng cách sử dụng HTML và CSS. 26 00:01:09,770 --> 00:01:13,030 Và sau đó tôi sẽ thực sự rời khỏi thể giống như 20 phút để nói về pset6. 27 00:01:13,030 --> 00:01:16,550 Bởi vì pset6 thực sự là rất nhiều thứ mà chúng ta đã thấy trước đây, 28 00:01:16,550 --> 00:01:19,090 nhưng tôi muốn làm mới một số những khái niệm 29 00:01:19,090 --> 00:01:22,140 cũng như dạy cho một vài chức năng mới. 30 00:01:22,140 --> 00:01:23,110 >> Mát. 31 00:01:23,110 --> 00:01:25,440 Vì vậy, trước hết, chào mừng trở lại từ break. 32 00:01:25,440 --> 00:01:27,410 Tôi hy vọng bạn nghỉ là thú vị. 33 00:01:27,410 --> 00:01:29,695 Đã bạn sẽ làm gì để phá vỡ? 34 00:01:29,695 --> 00:01:30,820 Đung Đã đi đến New York. 35 00:01:30,820 --> 00:01:32,030 Andi PENG: Bạn đã đi đến New York? 36 00:01:32,030 --> 00:01:33,738 Tôi nghĩ rằng một nửa trường của chúng tôi đi đến New York. 37 00:01:33,738 --> 00:01:34,740 Đó là tất cả các quyền. 38 00:01:34,740 --> 00:01:38,250 Tôi dành phần lớn phá vỡ của tôi ít vận động trên giường Netflixing. 39 00:01:38,250 --> 00:01:39,760 Và đó là một thời điểm tốt. 40 00:01:39,760 --> 00:01:43,450 >> Nhưng bây giờ chúng tôi đang trở lại, trở lại trong phiên, trở lại trong swing của sự vật. 41 00:01:43,450 --> 00:01:47,900 Chúng tôi có một pset do thứ sáu này vào buổi trưa. 42 00:01:47,900 --> 00:01:50,240 >> Tôi nghĩ rằng bạn đã đã nhặt đố bạn, yeah? 43 00:01:50,240 --> 00:01:52,140 Vì vậy, bất cứ ai khác có không có câu đố của họ, 44 00:01:52,140 --> 00:01:55,416 hãy đến và nhận được câu đố của bạn từ tôi ở cuối của phần này. 45 00:01:55,416 --> 00:01:56,540 Hoặc theo dõi tôi xuống trên khuôn viên trường. 46 00:01:56,540 --> 00:01:59,310 Tôi sẽ có nó với tôi ở đâu đó. 47 00:01:59,310 --> 00:02:02,120 >> Dự án cuối cùng của chúng tôi trước khi đề nghị cũng có. 48 00:02:02,120 --> 00:02:06,380 Vì vậy, đối với những người trong chúng ta đã không bao giờ thực hiện lớp này trước đây, các capstone của CS50 49 00:02:06,380 --> 00:02:11,150 được rất nhiều lên đến đỉnh điểm trong này dự án lớn mà sinh viên đề xuất. 50 00:02:11,150 --> 00:02:14,300 Và trước khi đề nghị, chỉ là một ý tưởng chung 51 00:02:14,300 --> 00:02:18,500 về những gì người ta có thể muốn làm cho họ dự án, ý tưởng đó là do thứ hai, 52 00:02:18,500 --> 00:02:20,780 Thứ Hai sau vào buổi trưa. 53 00:02:20,780 --> 00:02:23,800 >> Vì vậy khá nhiều, tôi nghĩ David sẽ nói thêm về điều này trong bài giảng 54 00:02:23,800 --> 00:02:25,390 nếu anh có chưa. 55 00:02:25,390 --> 00:02:28,710 Và có một trang rắn trên website của chúng tôi giải thích 56 00:02:28,710 --> 00:02:31,610 tất cả các yêu cầu của dự án. 57 00:02:31,610 --> 00:02:34,082 Nhưng về cơ bản, chọn bất kỳ chủ đề mà bạn đã 58 00:02:34,082 --> 00:02:35,915 được quan tâm trong suốt thời gian của bạn ở đây 59 00:02:35,915 --> 00:02:41,760 tại CS, cho dù đó là chơi game hay thiết kế hoặc video hoặc bất cứ điều gì. 60 00:02:41,760 --> 00:02:44,920 >> Và bạn có thể thực sự loại bây giờ áp dụng một số bài học 61 00:02:44,920 --> 00:02:52,470 mà chúng tôi đã học được ở đây trong CS50-- hi, welcome-- để tiến hành khá nhiều 62 00:02:52,470 --> 00:02:56,320 một dự án cuối cùng của sự lựa chọn của bạn. 63 00:02:56,320 --> 00:02:59,570 Tất cả đó là do thứ hai là chỉ là một lời giới thiệu ngắn gọn qua email 64 00:02:59,570 --> 00:03:02,010 với tôi, một câu nhanh chóng, như, hey, Andi, 65 00:03:02,010 --> 00:03:06,490 Tôi thực sự quan tâm đến việc thiết kế một trò chơi mà thực hiện điều này cho iOS. 66 00:03:06,490 --> 00:03:07,420 Mát. 67 00:03:07,420 --> 00:03:10,767 Chỉ cần cho tôi ngắn đầu tiên của bạn ý tưởng cho các dự án cuối cùng của bạn. 68 00:03:10,767 --> 00:03:13,850 Và chúng ta sẽ nói qua hay không mà thực sự là một ý tưởng tốt hay không, 69 00:03:13,850 --> 00:03:15,590 nếu đó là một ý tưởng khả thi hay không. 70 00:03:15,590 --> 00:03:20,760 Nhưng chỉ là tiền đề nghị là do vào thứ hai tới. 71 00:03:20,760 --> 00:03:24,190 pset6, web-- đáng yêu của chúng tôi là hoàn toàn sai. 72 00:03:24,190 --> 00:03:25,060 Pset7? 73 00:03:25,060 --> 00:03:25,560 pset6? 74 00:03:25,560 --> 00:03:26,680 Đó là pset6, phải không? 75 00:03:26,680 --> 00:03:32,690 >> pset6, máy chủ web của chúng tôi, là do Thứ sáu vào buổi trưa với cuối ngày. 76 00:03:32,690 --> 00:03:37,660 Giờ làm lại bình thường từ thứ Hai đến thứ năm 8:00-11:00 trong tuần này. 77 00:03:37,660 --> 00:03:39,710 Tôi nghĩ Commons cho ba đêm tiếp theo. 78 00:03:39,710 --> 00:03:40,310 Mát. 79 00:03:40,310 --> 00:03:44,260 Trước khi chúng tôi đã vào vật chất, không ai có bất kỳ câu hỏi, câu chuyện cười, những câu chuyện? 80 00:03:44,260 --> 00:03:46,662 Bạn đã làm gì cho nghỉ mùa thu? 81 00:03:46,662 --> 00:03:48,640 >> Đung Những gì tôi làm gì? 82 00:03:48,640 --> 00:03:52,834 >> Andi PENG: Already đó là lứa tuổi trước đây thực sự. 83 00:03:52,834 --> 00:03:54,000 Christabel đã đi đến New York. 84 00:03:54,000 --> 00:03:55,614 Tôi ở đây và Netflixed. 85 00:03:55,614 --> 00:03:56,864 Đung Oh, yeah Tôi đã ở đây. 86 00:03:56,864 --> 00:03:57,614 Andi Peng: Oh, OK. 87 00:03:57,614 --> 00:03:59,792 Đung Tôi không nhớ những gì cụ thể. 88 00:03:59,792 --> 00:04:00,710 Andi PENG: Đó là OK. 89 00:04:00,710 --> 00:04:01,960 Đung Netflixing lẽ. 90 00:04:01,960 --> 00:04:02,990 Andi PENG: Netflixing. 91 00:04:02,990 --> 00:04:04,710 Vâng, đó là một thời điểm tốt. 92 00:04:04,710 --> 00:04:05,780 ĐƯỢC. 93 00:04:05,780 --> 00:04:06,340 Được rồi. 94 00:04:06,340 --> 00:04:08,877 Bất kỳ câu hỏi trước chúng tôi nhảy vào vật chất? 95 00:04:08,877 --> 00:04:11,210 Ngoài ra, chúng ta sẽ cố gắng để tốc độ thông qua phần ngày hôm nay, 96 00:04:11,210 --> 00:04:12,504 không quá nhiều để trang trải. 97 00:04:12,504 --> 00:04:14,420 Và hy vọng, chúng ta sẽ nhận được ra đây một chút sớm. 98 00:04:14,420 --> 00:04:15,580 Xin lỗi vì không kẹo, cũng. 99 00:04:15,580 --> 00:04:20,310 Tôi là một sự thất vọng, đặc biệt là trong Halloween. 100 00:04:20,310 --> 00:04:21,110 >> Được rồi. 101 00:04:21,110 --> 00:04:21,810 Mát. 102 00:04:21,810 --> 00:04:28,370 Vì vậy, chúng ta sẽ bắt đầu nói về một đối số dòng lệnh gọi là chmod. 103 00:04:28,370 --> 00:04:32,850 chmod, tất cả nó là chỉ là một hệ thống Unix gọi thực hiện từ dòng lệnh 104 00:04:32,850 --> 00:04:34,700 để thay đổi quyền truy cập tập tin. 105 00:04:34,700 --> 00:04:37,790 Vì vậy, ví dụ, chúng tôi đã tất cả gặp phải một trang 106 00:04:37,790 --> 00:04:40,550 như thế này có lẽ đôi khi trong Tuổi thọ của chúng ta là một internet 107 00:04:40,550 --> 00:04:45,110 người sử dụng, nơi mà máy chủ web của chúng tôi có cho chúng ta những lỗi của Forbidden. 108 00:04:45,110 --> 00:04:49,086 Bạn không có quyền truy cập, yadda, yadda, yadda, trên máy chủ này. 109 00:04:49,086 --> 00:04:50,960 Tất cả những gì thực sự có nghĩa là là các quyền 110 00:04:50,960 --> 00:04:53,920 mà đã được gắn vào bất cứ điều gì Trang web bạn đang cố gắng truy cập 111 00:04:53,920 --> 00:04:55,840 không mở cửa cho bạn. 112 00:04:55,840 --> 00:04:57,870 Vì vậy khá nhiều, chmod là cách thức mà 113 00:04:57,870 --> 00:05:02,140 chúng tôi có thể sửa đổi những điều khoản hệ thống để cung cấp cho tất cả mọi người, những người sử dụng, nhóm, 114 00:05:02,140 --> 00:05:04,975 hay thế giới, hoặc bất kỳ sự kết hợp của những người truy cập 115 00:05:04,975 --> 00:05:07,900 để các tập tin nhất định, thư mục, bất cứ điều gì thực sự, 116 00:05:07,900 --> 00:05:11,720 bất kỳ loại hệ thống trên một hệ điều hành. 117 00:05:11,720 --> 00:05:14,039 Vì vậy, nếu có của kẻ có máy tính nếu bạn cảm thấy 118 00:05:14,039 --> 00:05:17,080 như sau đây cùng với tôi hôm nay, hoàn toàn cảm thấy tự do chỉ cần gõ thứ 119 00:05:17,080 --> 00:05:17,580 trong. 120 00:05:17,580 --> 00:05:19,790 Nếu không, bạn chỉ có thể đi chơi. 121 00:05:19,790 --> 00:05:23,170 Vì vậy, tôi sẽ thực sự kéo lên ga của tôi ngay bây giờ. 122 00:05:23,170 --> 00:05:29,810 123 00:05:29,810 --> 00:05:32,310 >> Vì vậy, các lệnh để chạy chmod, hoặc ít nhất là chỉ 124 00:05:32,310 --> 00:05:37,840 để liệt kê các quyền truy cập của bạn thư mục tập tin, chỉ là ls-l. 125 00:05:37,840 --> 00:05:42,270 Như bạn có thể thấy, một loạt các thứ bật lên hầu hết trong số đó 126 00:05:42,270 --> 00:05:45,390 là quan trọng đối với chúng tôi trên phía bên tay trái ở đây. 127 00:05:45,390 --> 00:05:48,710 Các bạn nhìn thấy một bó của rs, ws, 1 /. 128 00:05:48,710 --> 00:05:49,210 Yeah. 129 00:05:49,210 --> 00:05:51,400 >> Đó là những chất chỉ tất cả các quyền tập tin 130 00:05:51,400 --> 00:05:55,960 để giải thích những gì các thư mục nhất định và các tập tin trong hệ thống của bạn có. 131 00:05:55,960 --> 00:05:58,150 Vì vậy, chúng ta hãy quay trở lại điểm quyền lực ở đây. 132 00:05:58,150 --> 00:06:02,450 133 00:06:02,450 --> 00:06:06,500 Vì vậy, ngoài các tên tập tin như các bạn có thể thấy bên phải, 134 00:06:06,500 --> 00:06:10,312 chúng tôi đang tìm kiếm để xem cơ bản chỉ cột bên trái. 135 00:06:10,312 --> 00:06:12,020 Vì vậy, ngoài việc chỉ tên tập tin, chúng tôi 136 00:06:12,020 --> 00:06:16,240 có thể thấy các quyền của tập tin, họ nhóm chủ sở hữu, tên nhóm, ngày 137 00:06:16,240 --> 00:06:18,460 rằng tập tin lần cuối sửa đổi, vân vân. 138 00:06:18,460 --> 00:06:20,640 Bạn có thể nhìn thấy rất nhiều những thứ sử dụng chmod. 139 00:06:20,640 --> 00:06:26,037 Vì vậy, cách mà chúng ta đọc chmod là các chữ cái đầu tiên chúng tôi khá nhiều bỏ qua 140 00:06:26,037 --> 00:06:27,370 về quyền đọc. 141 00:06:27,370 --> 00:06:31,460 >> Bức thư đầu tiên chỉ cho chúng ta biết những gì loại hệ thống chúng tôi đang truy cập. 142 00:06:31,460 --> 00:06:34,240 d, trong trường hợp này, là một thư mục hoặc thư mục. 143 00:06:34,240 --> 00:06:38,430 Vì vậy, chúng ta biết rằng hiện tại không gian làm việc của tôi Phần bảy là một thư mục. 144 00:06:38,430 --> 00:06:41,530 Và sau đó bạn nhìn thấy ba Tam hoàng, thực chất chỉ 145 00:06:41,530 --> 00:06:43,490 ba bộ ba nhân vật. 146 00:06:43,490 --> 00:06:45,680 Và bạn có thể nghĩ đến mỗi khi một chút. 147 00:06:45,680 --> 00:06:49,260 >> Vì vậy, bạn chỉ có ba bộ ba bit, chín bit trong tổng số. 148 00:06:49,260 --> 00:06:51,420 Bạn đối xử với họ trong nhóm của ba. 149 00:06:51,420 --> 00:06:56,230 Vì vậy, nhóm đầu tiên của ba là luôn luôn cho phép người dùng của bạn. 150 00:06:56,230 --> 00:07:00,557 >> Nhóm thứ hai của bạn là ba luôn luôn cho phép nhóm của bạn. 151 00:07:00,557 --> 00:07:02,765 Và tập thứ ba của ba là luôn luôn như thế giới, 152 00:07:02,765 --> 00:07:04,380 ở khắp mọi nơi cho phép. 153 00:07:04,380 --> 00:07:06,320 Vì vậy, tôi đoán dễ dàng Câu hỏi đặt ra là là những gì 154 00:07:06,320 --> 00:07:08,051 sự khác biệt giữa người dùng và nhóm. 155 00:07:08,051 --> 00:07:09,800 Sự khác biệt chính giữa người dùng và nhóm 156 00:07:09,800 --> 00:07:13,180 là một người sử dụng chỉ là bạn thân truy cập vào bất cứ điều gì nó là ngay bây giờ. 157 00:07:13,180 --> 00:07:18,070 Một nhóm có thể được nếu bạn có nhiều người sử dụng trên một máy tính, ví dụ. 158 00:07:18,070 --> 00:07:20,280 Tất cả trong số họ có thể được coi là một nhóm. 159 00:07:20,280 --> 00:07:23,220 >> Và sau đó là thế giới chỉ thế giới, tất cả mọi người. 160 00:07:23,220 --> 00:07:31,010 Vì vậy, chúng ta có thể xem cách chúng tôi có thể chỉnh sửa những thành quyền hạn khác nhau. 161 00:07:31,010 --> 00:07:33,080 Vì vậy khá nhiều, chúng tôi sẽ vẫn tập trung 162 00:07:33,080 --> 00:07:38,450 về phía bên trái, nơi cho thư mục CS50 chúng ta thấy drwx, 163 00:07:38,450 --> 00:07:40,970 nơi r chỉ có nghĩa là nó có thể đọc được. 164 00:07:40,970 --> 00:07:42,620 >> Các w chỉ có nghĩa là nó có thể ghi. 165 00:07:42,620 --> 00:07:45,470 Và sau đó x chỉ có nghĩa là nó thực thi. 166 00:07:45,470 --> 00:07:47,220 Bạn nghĩ rằng nó loại của không có ý nghĩa. 167 00:07:47,220 --> 00:07:47,993 Nó phải là e. 168 00:07:47,993 --> 00:07:50,150 Nhưng x thực sự loại làm việc tốt hơn một chút, 169 00:07:50,150 --> 00:07:51,690 bởi vì bạn có thể nhớ nó tốt hơn. 170 00:07:51,690 --> 00:07:56,406 >> Vì vậy, ba loại điều bạn có thể làm, bạn có thể đọc một tập tin, 171 00:07:56,406 --> 00:07:59,280 bạn có thể có quyền viết tập tin, hoặc bạn có thể có sự cho phép 172 00:07:59,280 --> 00:08:00,780 để thực thi một tập tin. 173 00:08:00,780 --> 00:08:04,580 Và do đó, cách mà chúng tôi thực sự đại diện cho những người trong bit 174 00:08:04,580 --> 00:08:06,940 là những con số 4, 2, và 1. 175 00:08:06,940 --> 00:08:12,870 Vì vậy, bất cứ điều gì đó là có thể đọc được là đại diện bởi số lượng 4. 176 00:08:12,870 --> 00:08:15,150 >> Bất cứ điều gì đó là có thể ghi được biểu diễn bởi 2. 177 00:08:15,150 --> 00:08:18,880 Và bất cứ điều gì đó là thực thi như được đại diện bởi 1. 178 00:08:18,880 --> 00:08:22,860 Vì vậy, trong ý nghĩa này, chúng ta cũng có thể đại diện cho các numbers-- 179 00:08:22,860 --> 00:08:25,281 hi, chào mừng, theo một cách khác nhau. 180 00:08:25,281 --> 00:08:25,780 Lấy làm tiếc. 181 00:08:25,780 --> 00:08:28,510 Trước khi tất cả mọi người, tôi sẽ xin lỗi thay mặt cho tất cả mọi người 182 00:08:28,510 --> 00:08:29,468 vào lớp bây giờ. 183 00:08:29,468 --> 00:08:30,810 Tôi quên kẹo ngày hôm nay. 184 00:08:30,810 --> 00:08:33,640 Tôi xin lỗi tôi là một thất bại tuần này của Halloween. 185 00:08:33,640 --> 00:08:37,070 Tôi sẽ mang lại gấp đôi số lượng kẹo thời gian tới để bù đắp cho nó. 186 00:08:37,070 --> 00:08:42,360 Nhưng dù sao, xin lỗi về con trai mà, xin lỗi. 187 00:08:42,360 --> 00:08:46,640 >> Vì vậy, cách mà chúng tôi thực sự có thể nhập trên lệnh của chúng ta tranh luận là chúng tôi 188 00:08:46,640 --> 00:08:51,760 có thể làm phép nhóm slash chmod, nơi mà nhóm chỉ là bất cứ điều gì 189 00:08:51,760 --> 00:08:54,130 nhóm chúng tôi đang cố gắng thay đổi. 190 00:08:54,130 --> 00:08:56,600 Và quyền hạn bất cứ điều gì chúng ta muốn thêm vào nó. 191 00:08:56,600 --> 00:08:58,860 Vì vậy, ví dụ, cộng thêm điều khoản, 192 00:08:58,860 --> 00:09:01,590 và trừ mất đi quyền. 193 00:09:01,590 --> 00:09:07,060 >> Và các loại nhóm chúng tôi có một của chúng tôi cho tất cả, u cho người dùng, g cho các nhóm, 194 00:09:07,060 --> 00:09:09,050 hoặc o cho người khác. 195 00:09:09,050 --> 00:09:10,300 Đó là một chút trừu tượng ngay bây giờ. 196 00:09:10,300 --> 00:09:13,550 Nhưng chúng ta sẽ đi qua một vài ví dụ chỉ để chứng minh thực tế nhanh chóng này. 197 00:09:13,550 --> 00:09:16,960 Mọi người đều tốt về điều này slide, vì vậy tôi có thể di chuyển trên? 198 00:09:16,960 --> 00:09:18,280 Mát. 199 00:09:18,280 --> 00:09:21,290 >> Vì vậy, ví dụ, rwx. 200 00:09:21,290 --> 00:09:26,720 Trước khi chúng tôi nói về những gì nó đại diện, đầu tiên của tất cả những gì không rwx nghĩa là gì? 201 00:09:26,720 --> 00:09:31,450 Nếu bạn thấy rằng điều này nhất định file này có quyền truy cập của rwx, 202 00:09:31,450 --> 00:09:34,270 thế có nghĩa là các người có thể có thể làm gì? 203 00:09:34,270 --> 00:09:35,740 >> Đung đọc, viết và thực hiện. 204 00:09:35,740 --> 00:09:36,420 >> Andi PENG: Yeah, chính xác. 205 00:09:36,420 --> 00:09:37,840 Bạn có thể đọc ghi và thực hiện. 206 00:09:37,840 --> 00:09:40,790 Bởi vì tất cả ba trong số những nhân vật có mặt. 207 00:09:40,790 --> 00:09:44,370 Vì vậy, nếu chúng ta đi tiếp và nói chuyện về điều này trong các điều khoản của các bit, 208 00:09:44,370 --> 00:09:48,490 các rwx cũng có thể được biểu diễn như là 700. 209 00:09:48,490 --> 00:09:53,370 Bởi vì khi bạn có thể thấy trong bất kỳ loại tập tin thư mục cho phép, 210 00:09:53,370 --> 00:09:54,320 có ba hội Tam hoàng. 211 00:09:54,320 --> 00:09:58,060 >> Trong trường hợp này, chỉ lần đầu bộ ba có bất cứ điều gì ở đó. 212 00:09:58,060 --> 00:10:04,050 Vì vậy, trong trường hợp này, r là 4, w là 2, và x là 1. 213 00:10:04,050 --> 00:10:05,860 Nếu bạn thêm những với nhau, đó là 7. 214 00:10:05,860 --> 00:10:08,730 >> Và vì vậy nếu bạn chuyển đổi nó thành dạng nhị phân, đó là 700. 215 00:10:08,730 --> 00:10:10,310 Vì 7 là bộ ba đầu tiên. 216 00:10:10,310 --> 00:10:12,760 0, không có gì hiện nay là trong bộ ba thứ hai. 217 00:10:12,760 --> 00:10:15,850 Và sau đó không có gì là hiện tại bộ ba thứ ba, vì vậy đó là 0 khác. 218 00:10:15,850 --> 00:10:22,520 >> Vì vậy, trong ý nghĩa đó, một loạt các hội Tam hoàng có thể được biểu diễn chỉ bằng bit, chỉ 219 00:10:22,520 --> 00:10:23,600 trong hệ nhị phân là tốt. 220 00:10:23,600 --> 00:10:29,920 Vì vậy, 700 có nghĩa là chính xác những điều tương tự như rwx ------ trong điều kiện cho phép. 221 00:10:29,920 --> 00:10:32,590 Mọi người đều rõ ràng về điều đó? 222 00:10:32,590 --> 00:10:33,090 Mát. 223 00:10:33,090 --> 00:10:40,290 Và như vậy chmod 111 sẽ cung cấp cho mà cho phép để các tập tin? 224 00:10:40,290 --> 00:10:42,600 Cung cấp cho các bạn một vài giây để chuyển đổi này. 225 00:10:42,600 --> 00:10:51,140 226 00:10:51,140 --> 00:10:53,250 Hãy nhớ rằng, người đầu tiên bộ ba là cho người sử dụng. 227 00:10:53,250 --> 00:10:56,320 Các bộ ba thứ hai là cho nhóm. 228 00:10:56,320 --> 00:10:59,450 Và bộ ba thứ ba là cho mọi người. 229 00:10:59,450 --> 00:11:03,680 >> Và như vậy chmod 111 sẽ cung cấp mà loại quyền và cho ai? 230 00:11:03,680 --> 00:11:06,520 231 00:11:06,520 --> 00:11:09,020 Mất một vài giây để nghĩ về nó và quay trở lại. 232 00:11:09,020 --> 00:11:19,790 233 00:11:19,790 --> 00:11:20,910 Yeah. 234 00:11:20,910 --> 00:11:22,920 >> Đung Vì vậy, tất cả mọi người có thể thực hiện nó. 235 00:11:22,920 --> 00:11:23,920 Andi PENG: Yup, chính xác. 236 00:11:23,920 --> 00:11:25,544 Đung Nhưng không ai có thể đọc hoặc viết. 237 00:11:25,544 --> 00:11:27,910 Andi PENG: Và cảm thấy tự do để giải thích cho tất cả mọi người 238 00:11:27,910 --> 00:11:29,860 làm thế nào bạn đi đến kết luận rằng. 239 00:11:29,860 --> 00:11:34,290 >> Đung Vâng, đối với những người sử dụng, nhóm, và trên thế giới, đó là tất cả 1, 240 00:11:34,290 --> 00:11:35,700 đó là mã cho thực thi. 241 00:11:35,700 --> 00:11:37,070 >> Andi PENG: Yeah, chính xác. 242 00:11:37,070 --> 00:11:42,320 Vì vậy, 1, trong trường hợp này, chúng ta đều biết là rằng đó là mã thực thi. 243 00:11:42,320 --> 00:11:45,280 Bởi vì đọc sách là 4. 244 00:11:45,280 --> 00:11:45,990 Viết là 2. 245 00:11:45,990 --> 00:11:47,230 Và thực thi là 1. 246 00:11:47,230 --> 00:11:51,580 Vậy là cả ba Tam hoàng là 1, mà có nghĩa là cho thế giới, cho người sử dụng, 247 00:11:51,580 --> 00:11:54,680 và nhóm, họ là tất cả các thực thi. 248 00:11:54,680 --> 00:11:56,170 >> Mọi người đều tốt với điều đó? 249 00:11:56,170 --> 00:11:56,940 ĐƯỢC. 250 00:11:56,940 --> 00:11:59,180 Và do đó, cách thứ hai rằng chúng ta có thể thực sự 251 00:11:59,180 --> 00:12:01,220 viết này cũng là bạn chỉ có thể làm chmod 252 00:12:01,220 --> 00:12:05,050 một cộng với x. một có nghĩa là tất cả hoặc tất cả mọi người. 253 00:12:05,050 --> 00:12:07,060 Các cộng đồng nghĩa với việc cho phép để. 254 00:12:07,060 --> 00:12:09,112 Và sau đó x có nghĩa là thực thi. 255 00:12:09,112 --> 00:12:11,070 Vì vậy, có hai lệnh thực sự giống hệt nhau. 256 00:12:11,070 --> 00:12:12,903 Vì vậy, nếu bạn muốn chạy này trong terminal của bạn, 257 00:12:12,903 --> 00:12:15,830 bạn làm chmod 111, tên của thư mục hoặc tập tin của bạn. 258 00:12:15,830 --> 00:12:18,520 Hoặc bạn có thể làm một chmod cộng với x, tên của tập tin thư mục của bạn. 259 00:12:18,520 --> 00:12:22,150 Cùng một điều, chỉ cần một cách dễ dàng hơn, có lẽ, đối với một số đại diện hoặc thay đổi 260 00:12:22,150 --> 00:12:24,280 quyền tập tin. 261 00:12:24,280 --> 00:12:28,806 >> Mỗi một OK với chmod trước khi chúng tôi di chuyển trên? 262 00:12:28,806 --> 00:12:31,700 Mát. 263 00:12:31,700 --> 00:12:35,336 Vì vậy, bây giờ chúng ta sẽ đi vào một vài slide của khái niệm rất trừu tượng 264 00:12:35,336 --> 00:12:37,210 rằng tôi là khá nhiều sẽ khoe qua. 265 00:12:37,210 --> 00:12:39,530 Và nó hoàn toàn OK nếu bạn không hiểu tất cả mọi thứ. 266 00:12:39,530 --> 00:12:42,330 >> Ngay cả bây giờ, tôi vẫn không thực sự hiểu tất cả mọi thứ hoàn toàn. 267 00:12:42,330 --> 00:12:44,640 Nhưng nó nhiều hơn nhận sự hiểu biết về mức độ đầu 268 00:12:44,640 --> 00:12:47,280 làm thế nào một số trong những điều làm việc. 269 00:12:47,280 --> 00:12:50,490 Vì vậy, chúng ta sẽ nói chuyện nhanh chóng về TCP / IP, 270 00:12:50,490 --> 00:12:54,880 mà chỉ là Transmission Control Nghị định thư giảm Internet Protocol. 271 00:12:54,880 --> 00:12:57,135 >> Nhớ lại từ bài giảng, David, ông đã dạy cho bạn 272 00:12:57,135 --> 00:13:00,700 các ví dụ mà ông muốn vượt qua các ghi chú trong một phong bì 273 00:13:00,700 --> 00:13:02,790 lên để thích hàng đầu của các giảng đường? 274 00:13:02,790 --> 00:13:06,990 Vì vậy, trong giảng đường trường luật David đã chứng minh cơ bản 275 00:13:06,990 --> 00:13:10,370 TCP / IP làm việc trong ý nghĩa là tất cả nó 276 00:13:10,370 --> 00:13:14,300 là là một phương tiện đảm bảo rằng dữ liệu đã được chuyển qua một máy chủ 277 00:13:14,300 --> 00:13:15,870 hoặc trên internet. 278 00:13:15,870 --> 00:13:22,270 Vì vậy, trong ví dụ của phong bì và tin nhắn, người sử dụng cuối cùng 279 00:13:22,270 --> 00:13:26,410 có thể thấy rằng, oh, tôi cần thiết để nhận được bốn gói thông tin. 280 00:13:26,410 --> 00:13:28,096 >> Nhưng tôi thực sự chỉ nhận được ba. 281 00:13:28,096 --> 00:13:29,470 Điều đó có nghĩa là tôi phải mất một. 282 00:13:29,470 --> 00:13:30,760 Và một trong những không được giao. 283 00:13:30,760 --> 00:13:33,990 Và do đó, TCP / IP trên internet, thông qua máy tính của bạn và máy chủ, 284 00:13:33,990 --> 00:13:35,500 làm chính xác những điều tương tự. 285 00:13:35,500 --> 00:13:38,900 Tất cả nó là chỉ định một khuôn khổ trong đó một dữ liệu bị mất 286 00:13:38,900 --> 00:13:41,100 các gói dữ liệu có thể được bực bội và nhận. 287 00:13:41,100 --> 00:13:44,760 >> Giống như trên internet khi bạn đang cố gắng để truy cập các tập tin trực tuyến hoặc gửi file 288 00:13:44,760 --> 00:13:48,210 cho bạn bè của bạn hay nhìn vào web trình duyệt, hàng ngàn và hàng ngàn 289 00:13:48,210 --> 00:13:50,440 của tỷ tỷ các byte thông tin 290 00:13:50,440 --> 00:13:52,840 được truyền tải trên mỗi mili giây. 291 00:13:52,840 --> 00:13:54,560 Và nó thực sự, thực sự khó hiểu. 292 00:13:54,560 --> 00:13:57,110 Và nó thực sự khó để thực sự biết những gì đang được gửi đi 293 00:13:57,110 --> 00:13:58,270 và những gì không được gửi đi. 294 00:13:58,270 --> 00:14:02,210 >> Và do đó, TCP / IP chỉ định một khuôn khổ cố kết 295 00:14:02,210 --> 00:14:04,115 trong đó web của bạn trình duyệt và máy chủ của bạn 296 00:14:04,115 --> 00:14:05,990 loại có thể giao tiếp với nhau, chỉ 297 00:14:05,990 --> 00:14:08,550 đảm bảo rằng các gói tin được tất cả ở đây và không có gì bị mất tích 298 00:14:08,550 --> 00:14:12,700 và tất cả các dữ liệu mà bạn yêu cầu được thực sự hiển thị đúng. 299 00:14:12,700 --> 00:14:16,350 Mọi người đều OK vào đó chỉ cần rất mức cao ngắn gọn hiểu? 300 00:14:16,350 --> 00:14:18,510 Mát. 301 00:14:18,510 --> 00:14:21,550 >> Vì vậy, sau đó chúng ta sẽ di chuyển vào nói về HTTP, mà 302 00:14:21,550 --> 00:14:24,610 chỉ là Hypertext Transfer Protocol. 303 00:14:24,610 --> 00:14:32,550 HTTP, tất cả nó là bất cứ điều gì là bất kỳ trang hoặc tập tin được truy cập vào trang web của bạn, 304 00:14:32,550 --> 00:14:35,810 các máy chủ trả về một HTTP mã trạng thái trong phản ứng 305 00:14:35,810 --> 00:14:39,869 với yêu cầu đảm bảo rằng hoặc là, oh, yêu cầu này đã đi qua. 306 00:14:39,869 --> 00:14:41,410 Và mọi thứ đều hiển thị đầy đủ. 307 00:14:41,410 --> 00:14:43,500 Hoặc, oh, không, 404. 308 00:14:43,500 --> 00:14:44,730 Có gì đó không đúng. 309 00:14:44,730 --> 00:14:45,940 Oh, tôi không thể hiển thị. 310 00:14:45,940 --> 00:14:50,370 >> Tất cả đó là là bất cứ điều gì bạn đang cố gắng để truy cập, 311 00:14:50,370 --> 00:14:55,160 sử dụng như là người dùng đang cố gắng để truy cập, trên internet-- chỉ đảm bảo 312 00:14:55,160 --> 00:15:00,080 mà bạn có có thành công truy cập bất cứ điều gì nó là hay không 313 00:15:00,080 --> 00:15:02,080 truy cập thành công bất cứ thứ gì. 314 00:15:02,080 --> 00:15:05,120 Và vì vậy trạng thái HTTP mã chỉ cung cấp cho bạn 315 00:15:05,120 --> 00:15:09,910 một phương tiện của việc có thể biết liệu hoặc nó không phải là thành công hay không. 316 00:15:09,910 --> 00:15:13,440 Vì vậy, ví dụ, một yêu cầu ví dụ. 317 00:15:13,440 --> 00:15:16,050 >> Bạn có thể thấy ở đây đó là thường thường có bốn dòng. 318 00:15:16,050 --> 00:15:22,530 Chúng tôi có một HTTP GET 1.1, mà chỉ là URL yêu cầu phương pháp, các giao thức 319 00:15:22,530 --> 00:15:24,490 phiên bản, tên trường, và các giá trị trường. 320 00:15:24,490 --> 00:15:26,810 Vì vậy, không cần thiết phải hoàn toàn ghi nhớ bất cứ điều gì ở đây. 321 00:15:26,810 --> 00:15:29,960 Chỉ cần loại đã đọc mình với những cách nhìn. 322 00:15:29,960 --> 00:15:34,060 >> Trong ví dụ này, các yêu cầu phương pháp URL chỉ là bất cứ điều gì theo yêu cầu 323 00:15:34,060 --> 00:15:35,620 bạn đang gửi các máy chủ. 324 00:15:35,620 --> 00:15:40,710 Giống như, hey, máy chủ, tôi thực sự muốn truy cập yadda, yadda, yadda, trang HTTP. 325 00:15:40,710 --> 00:15:43,785 Các phiên bản giao thức chỉ là bất cứ điều gì phiên bản máy chủ của bạn hoặc máy chủ của bạn 326 00:15:43,785 --> 00:15:45,490 được sử dụng để truy cập thông tin. 327 00:15:45,490 --> 00:15:49,510 >> Tên trường là các trang web hoặc các URL mà bạn đang cố gắng để truy cập, 328 00:15:49,510 --> 00:15:52,610 trong trường hợp này, www.apple.com. 329 00:15:52,610 --> 00:15:56,110 Và giá trị trường là chỉ thường đặt tên, giá trị. 330 00:15:56,110 --> 00:15:59,540 Và nó có thể là bất kỳ loại kết hợp các chữ hoặc số hay bất cứ điều gì. 331 00:15:59,540 --> 00:16:02,890 >> Vì vậy, một yêu cầu điển hình, vì vậy những gì máy tính của bạn thực sự 332 00:16:02,890 --> 00:16:08,400 gửi đến máy chủ mà nói, hey, bạn biết những gì tôi cần điều này hiển thị, 333 00:16:08,400 --> 00:16:13,000 đó là các loại yêu cầu rằng họ thực sự nhận được. 334 00:16:13,000 --> 00:16:16,760 Một đáp ứng ví dụ về những gì máy chủ sẽ gửi lại cho bạn 335 00:16:16,760 --> 00:16:20,320 sẽ được khá nhiều điều tương tự, ngoại trừ với một mã trạng thái ở đầu trang. 336 00:16:20,320 --> 00:16:24,550 Vì vậy, 200, 2 0 0 luôn luôn là các mã trạng thái cho OK. 337 00:16:24,550 --> 00:16:26,050 Giống như, OK, yêu cầu này đã đi qua. 338 00:16:26,050 --> 00:16:27,980 Bạn đã có thể truy cập tất cả mọi thứ một cách chính xác. 339 00:16:27,980 --> 00:16:28,810 Cuộc sống là tốt. 340 00:16:28,810 --> 00:16:29,990 Cuộc sống là tốt. 341 00:16:29,990 --> 00:16:32,150 Tất cả mọi thứ là hoàn toàn tốt. 342 00:16:32,150 --> 00:16:36,050 >> Và vì vậy đây chỉ nói cho trình duyệt của bạn và máy chủ của bạn, hey, mọi thứ đều tốt. 343 00:16:36,050 --> 00:16:37,470 Tôi đã nhận tất cả các thông tin cần thiết. 344 00:16:37,470 --> 00:16:39,160 Mát. 345 00:16:39,160 --> 00:16:41,790 Nhưng vấn đề là đôi khi vấn đề trở lên 346 00:16:41,790 --> 00:16:46,850 khi bạn have-- kéo tôi nghĩ Tôi đã nói chuyện về các bản sao. 347 00:16:46,850 --> 00:16:48,870 Bạn có phản ứng không tốt. 348 00:16:48,870 --> 00:16:52,660 >> Vì vậy, ví dụ, 404 là Không tìm thấy trang. 349 00:16:52,660 --> 00:16:54,897 Đôi khi bạn có thể truy cập Forbidden. 350 00:16:54,897 --> 00:16:56,730 Bạn có nhiều khác mã trạng thái mà tôi 351 00:16:56,730 --> 00:16:59,688 chắc chắn rằng bạn đã nhìn thấy tất cả khi bạn đang cố gắng để làm nghiên cứu trên internet. 352 00:16:59,688 --> 00:17:02,300 Và trình duyệt của bạn mang đến cho bạn các, không, không thể truy cập. 353 00:17:02,300 --> 00:17:04,190 Và bạn đang như, tốt, crap. 354 00:17:04,190 --> 00:17:09,260 >> Vì vậy, chỉ cần khá nhiều, có một số mã trạng khá phổ biến. 355 00:17:09,260 --> 00:17:14,109 Có lẽ quen với những người thân mà người đang có. 356 00:17:14,109 --> 00:17:16,000 Người hài hước nhất mà Tôi nghĩ rằng tôi đã từng nghe 357 00:17:16,000 --> 00:17:18,040 of-- nếu bạn xảy ra để nhìn lên tất cả chúng 358 00:17:18,040 --> 00:17:21,490 trực tuyến, đối với một số lý do có thực sự là một mã trạng thái thực 359 00:17:21,490 --> 00:17:26,619 gọi 418 Tôi là một ấm trà. 360 00:17:26,619 --> 00:17:29,610 >> Tôi googled nơi nguồn gốc của điều này là từ. 361 00:17:29,610 --> 00:17:33,150 Và dường như một April Fools ' Ngày một vài thập kỷ trước đây, 362 00:17:33,150 --> 00:17:36,415 ai đó nghĩ rằng nó sẽ được vui nhộn để tạo ra một mã trạng thái mới được gọi là 418 363 00:17:36,415 --> 00:17:37,380 Tôi là một ấm trà. 364 00:17:37,380 --> 00:17:40,760 Hợp pháp, những tên này đang gọi tôi là một ấm trà. 365 00:17:40,760 --> 00:17:43,670 >> Tôi quên những gì trang bạn phải đi để thực sự làm cho màn hình này. 366 00:17:43,670 --> 00:17:47,955 Nhưng rõ ràng, bạn có thể thực sự có được một mã trạng thái của tôi 367 00:17:47,955 --> 00:17:51,400 một ấm trà bằng cách nào đó qua làm một cái gì đó. 368 00:17:51,400 --> 00:17:54,480 Vì vậy, có hàng trăm và hàng trăm mã trạng thái. 369 00:17:54,480 --> 00:17:56,730 >> Một số trong số họ làm cho hơn ý thức hơn những người khác. 370 00:17:56,730 --> 00:18:01,430 Nhưng khá nhiều chỉ đọc mình với những người phổ biến nhất. 371 00:18:01,430 --> 00:18:04,090 Cơ thể thực thể yêu cầu là ngắn và mập mạp, rõ ràng. 372 00:18:04,090 --> 00:18:07,990 >> Vì vậy, đôi khi có nhiều lỗi đáng sợ hơn tôi là một ấm trà. 373 00:18:07,990 --> 00:18:11,210 Nhưng đây là một điều mà tôi đoán bạn loại hy vọng để đạt. 374 00:18:11,210 --> 00:18:14,130 Nhưng tôi không nghĩ rằng bạn sẽ. 375 00:18:14,130 --> 00:18:17,260 Mọi người đều tốt trên chỉ là trạng thái mã số, yêu cầu, quy trình, làm 376 00:18:17,260 --> 00:18:19,155 bảo thông tin được phân phối đúng cách? 377 00:18:19,155 --> 00:18:22,270 378 00:18:22,270 --> 00:18:26,120 >> Vì vậy, bây giờ chúng ta sẽ chuyển đổi thành một phần thú vị của phần ngày hôm nay, 379 00:18:26,120 --> 00:18:28,500 nơi chúng ta nói một chút về HTML. 380 00:18:28,500 --> 00:18:32,580 HTML, tất cả nó là HyperText Ngôn ngữ đánh dấu. 381 00:18:32,580 --> 00:18:35,160 Nó chỉ là ngôn ngữ chuẩn bạn sử dụng để tạo ra tất cả các web 382 00:18:35,160 --> 00:18:36,690 trang trên internet. 383 00:18:36,690 --> 00:18:39,560 >> Vì vậy, bất kỳ trang web, những gì trang web yêu thích của bạn? 384 00:18:39,560 --> 00:18:40,855 Trang web yêu thích của bạn là gì? 385 00:18:40,855 --> 00:18:41,771 >> Đung [không nghe được]. 386 00:18:41,771 --> 00:18:42,270 387 00:18:42,270 --> 00:18:43,090 Andi PENG: Xin lỗi? 388 00:18:43,090 --> 00:18:43,980 >> Đung Tumblr. 389 00:18:43,980 --> 00:18:44,730 >> Andi PENG: Tumblr. 390 00:18:44,730 --> 00:18:46,800 Vì vậy, Tumblr được viết bằng HTML. 391 00:18:46,800 --> 00:18:50,700 Và như vậy chúng ta sẽ thực sự đi qua và chơi xung quanh với một số trong những điều 392 00:18:50,700 --> 00:18:51,980 sau này. 393 00:18:51,980 --> 00:18:54,980 Khá nhiều bạn cần phải học, phải biết, 394 00:18:54,980 --> 00:18:58,540 để viết HTML, bạn có thể có lẽ Google chỉ trên internet. 395 00:18:58,540 --> 00:19:04,490 >> HTML, nó không phải là một chương trình như C nơi bạn có thể tạo ra các biến và làm 396 00:19:04,490 --> 00:19:05,600 những thứ mát mẻ với nó. 397 00:19:05,600 --> 00:19:08,747 Đó là nhiều hơn chỉ, oh, đây là cách tôi muốn những thứ xuất hiện trên trang web của tôi. 398 00:19:08,747 --> 00:19:10,080 Và tôi chỉ cần đi để đặt nó trong. 399 00:19:10,080 --> 00:19:12,160 Và nó sẽ để định dạng. 400 00:19:12,160 --> 00:19:15,650 >> Vì vậy, HTML, trong một nghĩa nào đó, nó chỉ giống như một định dạng hay mẫu ngôn ngữ. 401 00:19:15,650 --> 00:19:16,680 Nó dễ dàng hơn rất nhiều. 402 00:19:16,680 --> 00:19:19,030 Nó dễ dàng hơn rất nhiều để tìm hiểu, dễ dàng hơn nhiều để viết trong 403 00:19:19,030 --> 00:19:21,450 hơn các chương trình điển hình của bạn ngôn ngữ, rất dễ dàng, 404 00:19:21,450 --> 00:19:24,310 rất dễ sử dụng có thể truy cập và thân thiện. 405 00:19:24,310 --> 00:19:29,040 >> Vì vậy, chúng tôi đang thực sự đi chơi xung quanh, viết các trang của chúng ta ngày hôm nay. 406 00:19:29,040 --> 00:19:32,900 Nhưng trước khi chúng ta bắt đầu, tôi chỉ muốn đi qua một số thực hành ngắn nhất. 407 00:19:32,900 --> 00:19:35,660 Bởi vì HTML là như vậy một cách dễ dàng ngôn ngữ và bởi vì ngay cả 408 00:19:35,660 --> 00:19:39,012 nếu bạn làm một vài điều sai trái, đôi khi nó có thể không để ý, 409 00:19:39,012 --> 00:19:41,970 chúng tôi muốn chắc chắn rằng chúng tôi thực sự tôn trọng những thực tiễn tốt nhất của chúng tôi 410 00:19:41,970 --> 00:19:44,490 để đảm bảo rằng những điều mà có thể đi xung quanh, nhưng 411 00:19:44,490 --> 00:19:49,660 không phải lúc nào sẽ không đi ngay chắc chắn rằng họ đang giảm thiểu. 412 00:19:49,660 --> 00:19:53,570 >> Vì vậy khá nhiều, chắc chắn đóng tất cả các thẻ của bạn của bạn 413 00:19:53,570 --> 00:19:54,737 khi bạn đang viết bằng HTML. 414 00:19:54,737 --> 00:19:56,486 Nếu bạn đang mở một cơ thể, chắc chắn rằng bạn đang 415 00:19:56,486 --> 00:19:58,015 đóng nó với một cơ thể ở đâu đó. 416 00:19:58,015 --> 00:20:00,720 Bạn muốn chắc chắn rằng bạn Trang web xác nhận bằng cách sử dụng 417 00:20:00,720 --> 00:20:02,070 những gì được gọi là W3 Validator. 418 00:20:02,070 --> 00:20:05,460 Bạn chỉ có thể Google rằng trực tuyến, và có một liên kết đến nó. 419 00:20:05,460 --> 00:20:07,820 >> Và sau đó bạn muốn HTML riêng biệt, mà 420 00:20:07,820 --> 00:20:13,060 là ngôn ngữ đánh dấu của bạn từ phong cách của bạn, đó là ngôn ngữ CSS rằng David 421 00:20:13,060 --> 00:20:17,510 chứng minh rằng chúng tôi cũng đi chơi một chút với bài giảng. 422 00:20:17,510 --> 00:20:19,120 Mát. 423 00:20:19,120 --> 00:20:23,500 Vì vậy, bất cứ lúc nào bạn muốn chạy HTML trên các thiết bị CS50, 424 00:20:23,500 --> 00:20:26,240 chúng ta sẽ chạy một chương trình gọi là apache, 425 00:20:26,240 --> 00:20:29,810 mà tất cả nó chỉ là một trong xây dựng máy chủ web mà mọi người trong CS50 426 00:20:29,810 --> 00:20:31,410 có quyền truy cập vào. 427 00:20:31,410 --> 00:20:35,700 Chúng tôi gọi nó là apache50 chỉ vì chúng tôi muốn gọi tất cả mọi thứ 50 trong CS50. 428 00:20:35,700 --> 00:20:39,610 >> Vì vậy, cách mà bạn bắt đầu các web CS50 máy chủ là bằng cách gõ vào lệnh của bạn 429 00:20:39,610 --> 00:20:42,860 dòng apache50 bắt đầu chấm. 430 00:20:42,860 --> 00:20:46,665 Và nếu bạn muốn kết thúc nó ở bất kỳ thời gian, bạn apache50 kết thúc không có dấu chấm. 431 00:20:46,665 --> 00:20:47,910 Và bạn chỉ cần nhấn Enter. 432 00:20:47,910 --> 00:20:50,810 Và nó phải được nhóm lên đây sớm. 433 00:20:50,810 --> 00:20:53,630 434 00:20:53,630 --> 00:20:54,130 Yup. 435 00:20:54,130 --> 00:20:58,110 Vì vậy, tôi chỉ cần đi để nhanh chóng đi qua một ví dụ về một trang web thực sự ngắn gọn. 436 00:20:58,110 --> 00:21:00,280 Và chúng ta sẽ phải chi tiêu như 10, 15 phút chơi 437 00:21:00,280 --> 00:21:04,008 xung quanh viết các trang web của riêng của chúng tôi. 438 00:21:04,008 --> 00:21:05,320 ĐƯỢC. 439 00:21:05,320 --> 00:21:07,841 Vì vậy, ở đây IDE-- có thể mọi người thấy điều đó không? 440 00:21:07,841 --> 00:21:08,340 Không hẳn. 441 00:21:08,340 --> 00:21:11,400 Ở đây, tôi sẽ phóng to. 442 00:21:11,400 --> 00:21:15,850 >> Tôi vừa nhận được mẫu này ngắn gọn ở đây không có gì thực sự ở trong đó. 443 00:21:15,850 --> 00:21:20,660 Chúng tôi chỉ cần đi để nhanh chóng viết một chương trình HTML trong đó chúng ta chỉ 444 00:21:20,660 --> 00:21:22,050 chào thế giới. 445 00:21:22,050 --> 00:21:24,970 Vì vậy, điều tương tự như trong C, bây giờ chúng tôi chỉ cần đi để làm điều đó trong HTML. 446 00:21:24,970 --> 00:21:28,250 Có ai muốn thực sự chỉ cố gắng đem lại cho tôi những điều đầu tiên bạn 447 00:21:28,250 --> 00:21:31,870 sẽ phải đặt trong một tài liệu HTML? 448 00:21:31,870 --> 00:21:32,850 Yeah. 449 00:21:32,850 --> 00:21:35,965 >> Đung Các dấu ngoặc, các [không nghe được]. 450 00:21:35,965 --> 00:21:36,590 Andi PENG: Yep. 451 00:21:36,590 --> 00:21:47,200 452 00:21:47,200 --> 00:21:50,930 Vì vậy, đó là một cái gì đó rất độc đáo để HTML mà chúng ta thường truyền thống 453 00:21:50,930 --> 00:21:56,080 không gặp chỉ huy khác ngôn ngữ lập trình cấp dòng 454 00:21:56,080 --> 00:21:59,890 là chúng ta thực sự để xác định các loại tập tin 455 00:21:59,890 --> 00:22:01,987 rằng điều này là có được ở đầu mã của chúng tôi. 456 00:22:01,987 --> 00:22:04,570 Vì vậy, trong instance-- này tôi nghĩ đó là các lệnh đúng, phải không? 457 00:22:04,570 --> 00:22:10,050 458 00:22:10,050 --> 00:22:10,550 Yup. 459 00:22:10,550 --> 00:22:14,860 Ở phía trên, bạn chỉ muốn bao gồm nổ DOCTYPE html trong ngoặc chỉ 460 00:22:14,860 --> 00:22:17,670 để nói cho máy tính của bạn, hey, nhìn ra ngoài. 461 00:22:17,670 --> 00:22:20,050 Và tài liệu HTML đang đến. 462 00:22:20,050 --> 00:22:22,250 Và sau đó làm thế nào chúng ta muốn để bắt đầu tập tin của chúng tôi? 463 00:22:22,250 --> 00:22:25,540 Nếu chúng ta chỉ muốn nói xin chào, có một trang web đó nói xin chào với thế giới, 464 00:22:25,540 --> 00:22:26,915 làm thế nào để chúng ta đi về xây dựng này? 465 00:22:26,915 --> 00:22:32,910 466 00:22:32,910 --> 00:22:35,300 >> Trên thực tế, chúng ta hãy quay về với Google. 467 00:22:35,300 --> 00:22:36,910 Và chúng tôi thực sự có thể làm được điều này. 468 00:22:36,910 --> 00:22:43,170 469 00:22:43,170 --> 00:22:43,670 Yup. 470 00:22:43,670 --> 00:22:44,840 Hiện chúng tôi đi. 471 00:22:44,840 --> 00:22:47,630 Vì vậy, HTML. 472 00:22:47,630 --> 00:22:52,390 Như bạn có thể thấy, trình duyệt của tôi là thực sự tự động tạo kiểu tóc này cho tôi. 473 00:22:52,390 --> 00:22:56,010 >> Cùng một điều là trong C, khi bạn tạo ra một ngoặc móc mở, 474 00:22:56,010 --> 00:22:59,020 Trình duyệt của bạn tự động cho biết thêm trong một ngoặc móc gần. 475 00:22:59,020 --> 00:23:02,210 May mắn thay, IDE của chúng tôi rất thích làm điều này cho chúng ta là tốt. 476 00:23:02,210 --> 00:23:05,490 Vì vậy, bây giờ chúng ta có thể loại nhập sự khởi đầu của một tag, 477 00:23:05,490 --> 00:23:09,139 và nó sẽ luôn luôn nói với chúng tôi nhớ đánh cuối của thẻ. 478 00:23:09,139 --> 00:23:10,680 Tôi nghĩ rằng điều này cần phải được viết hoa. 479 00:23:10,680 --> 00:23:15,510 480 00:23:15,510 --> 00:23:21,760 Và sau đó chúng tôi muốn thêm vào, luôn luôn, một cái đầu trong đó là tiêu đề. 481 00:23:21,760 --> 00:23:25,270 482 00:23:25,270 --> 00:23:29,160 Chúng tôi chỉ muốn để có thể gọi hello này, và sau đó cơ thể. 483 00:23:29,160 --> 00:23:34,010 484 00:23:34,010 --> 00:23:36,310 >> Và có bạn đi. 485 00:23:36,310 --> 00:23:39,650 Đó thực sự là tài liệu HTML của chúng tôi. 486 00:23:39,650 --> 00:23:45,030 Vì vậy, cách mà bất kỳ tài liệu HTML luôn theo kiểu in-- cùng một điều 487 00:23:45,030 --> 00:23:46,720 với int void main. 488 00:23:46,720 --> 00:23:49,600 Bạn luôn muốn có HTML một thẻ mở và đóng 489 00:23:49,600 --> 00:23:52,100 ở trên cùng và dưới cùng của mã của bạn. 490 00:23:52,100 --> 00:23:56,900 >> Bạn muốn có một đầu bên trong trong đó có các tiêu đề, chỉ cần bất cứ điều gì 491 00:23:56,900 --> 00:24:01,430 sẽ hiển thị các tab của web của bạn trang, và sau đó là một cơ thể bên trong đó 492 00:24:01,430 --> 00:24:04,120 sẽ thực sự hiển thị các nội dung của bất cứ điều gì bạn muốn làm. 493 00:24:04,120 --> 00:24:08,220 Vì vậy, nếu bạn muốn thực sự chạy này, tôi sẽ thu nhỏ trở lại. 494 00:24:08,220 --> 00:24:12,740 Bạn thực sự có thể bắt đầu apache50 bắt đầu chấm. 495 00:24:12,740 --> 00:24:15,650 496 00:24:15,650 --> 00:24:16,150 Mát. 497 00:24:16,150 --> 00:24:18,980 Và như vậy, bạn có thể thấy, bây giờ liên kết này đã hiện lên. 498 00:24:18,980 --> 00:24:21,940 Nó nói rằng trang web của bạn bây giờ là có sẵn ở một số liên kết dưới đây. 499 00:24:21,940 --> 00:24:25,910 Vì vậy, tất cả các IDE của chúng tôi có done-- không IDE, sorry-- yeah, 500 00:24:25,910 --> 00:24:33,280 IDE của chúng tôi đã làm là tạo ra một web link trên đó tất cả các trang web của chúng tôi 501 00:24:33,280 --> 00:24:35,407 có thể được truy cập trên máy chủ. 502 00:24:35,407 --> 00:24:36,490 Vì vậy, chúng ta hãy xem đây. 503 00:24:36,490 --> 00:24:40,240 >> Hãy click vào đây, đi đến hello.html. 504 00:24:40,240 --> 00:24:42,895 Và bạn thấy một rất đơn giản Trang web cho hello thế giới. 505 00:24:42,895 --> 00:24:46,477 506 00:24:46,477 --> 00:24:47,420 ĐƯỢC. 507 00:24:47,420 --> 00:24:50,513 Chúng tôi đang thực sự sẽ chỉ có everyone-- yeah, có chuyện gì thế? 508 00:24:50,513 --> 00:24:52,353 >> KHÁN GIẢ: Tôi có một câu hỏi cơ bản. 509 00:24:52,353 --> 00:24:52,978 Andi PENG: Yup. 510 00:24:52,978 --> 00:24:58,064 Đung Làm thế nào để tiết kiệm tập tin của bạn như một HTML? 511 00:24:58,064 --> 00:24:58,730 Andi PENG: Yeah. 512 00:24:58,730 --> 00:25:02,960 513 00:25:02,960 --> 00:25:10,820 Vì vậy, nếu tôi là để tạo ra một tập tin mới, nếu tôi làm New File, Untittle, nếu tôi làm, 514 00:25:10,820 --> 00:25:14,390 section.html, bùng nổ, đó là tất cả tôi phải làm. 515 00:25:14,390 --> 00:25:15,363 >> Đung [Không nghe thấy]? 516 00:25:15,363 --> 00:25:15,946 Andi PENG: No. 517 00:25:15,946 --> 00:25:16,660 Đung [không nghe được]. 518 00:25:16,660 --> 00:25:17,240 Andi PENG: No. 519 00:25:17,240 --> 00:25:18,156 Đung [không nghe được]. 520 00:25:18,156 --> 00:25:19,110 Andi PENG: Yeah. 521 00:25:19,110 --> 00:25:24,300 Khá nhiều, phần mở rộng trên các tập tin đó là bên trong IDE của bạn, 522 00:25:24,300 --> 00:25:27,840 mà nói với các máy tính, mà cho trình duyệt, hey, nhìn ra ngoài. 523 00:25:27,840 --> 00:25:30,480 Điều này là có thể được mã được viết bằng ngôn ngữ này. 524 00:25:30,480 --> 00:25:34,240 Vì vậy, ví dụ, trong Microsoft Word, những gì làm tất cả các tài liệu Word 525 00:25:34,240 --> 00:25:37,070 kết thúc với, những gì mở rộng? 526 00:25:37,070 --> 00:25:39,830 .doc hay .docx, phải không? 527 00:25:39,830 --> 00:25:42,299 >> Tất cả điều đó không được quy định cụ thể để hệ điều hành của bạn, hey, 528 00:25:42,299 --> 00:25:43,840 bạn đã có một tài liệu Word sắp tới. 529 00:25:43,840 --> 00:25:44,940 Mở nó bằng Word. 530 00:25:44,940 --> 00:25:46,955 Cùng một điều với các file PDF. 531 00:25:46,955 --> 00:25:49,650 Nó biết, oh, tôi cần để mở tập tin này 532 00:25:49,650 --> 00:25:52,020 với Adobe Reader hoặc Adobe Acrobat. 533 00:25:52,020 --> 00:25:56,130 >> Và do đó, mở rộng hoạt động của cùng một cách như trong máy tính của bạn. 534 00:25:56,130 --> 00:26:00,750 Nếu bạn chỉ định trang mã của bạn được đặt tên là HTML, sau đó nó biết, 535 00:26:00,750 --> 00:26:01,880 oh, bạn đã có mã HTML. 536 00:26:01,880 --> 00:26:04,890 Tôi sẽ đối xử với nó như là mã html. 537 00:26:04,890 --> 00:26:06,600 Vì vậy, đó là siêu thông minh trong ý nghĩa đó. 538 00:26:06,600 --> 00:26:11,360 539 00:26:11,360 --> 00:26:18,730 >> Vì vậy, tất cả mọi người, chúng ta hãy giống như 10 phút và chỉ tạo ra các trang web riêng của chúng tôi. 540 00:26:18,730 --> 00:26:21,020 Hãy thêm vào những điều đáng yêu. 541 00:26:21,020 --> 00:26:23,440 Cảm thấy tự do để nói bất cứ điều gì bạn muốn. 542 00:26:23,440 --> 00:26:27,890 Tôi chỉ muốn chắc chắn rằng các máy chủ của tất cả mọi người đang chạy một cách chính xác 543 00:26:27,890 --> 00:26:31,220 trước khi chúng ta giải phóng bạn vào pset. 544 00:26:31,220 --> 00:26:33,490 Bởi vì nếu máy chủ của bạn không chạy cho pset, 545 00:26:33,490 --> 00:26:34,847 mà sẽ được thực sự, thực sự xấu. 546 00:26:34,847 --> 00:27:17,380 547 00:27:17,380 --> 00:27:21,093 >> Tôi chỉ cần đi để nổi xung quanh và xem những gì mọi người đang làm việc trên. 548 00:27:21,093 --> 00:27:26,965 549 00:27:26,965 --> 00:27:27,590 Thế nào rồi? 550 00:27:27,590 --> 00:27:29,048 >> Đung Tôi chỉ bật máy tính của tôi. 551 00:27:29,048 --> 00:27:29,923 >> Andi PENG: Đó là OK. 552 00:27:29,923 --> 00:27:41,200 553 00:27:41,200 --> 00:27:42,390 >> Đung [không nghe được]. 554 00:27:42,390 --> 00:27:44,284 >> Andi PENG: Chỉ cần IDE của bạn. 555 00:27:44,284 --> 00:27:44,784 Yeah. 556 00:27:44,784 --> 00:27:54,040 557 00:27:54,040 --> 00:27:55,910 >> Đung [không nghe được]. 558 00:27:55,910 --> 00:27:57,590 >> Andi PENG: Đó là OK. 559 00:27:57,590 --> 00:27:59,491 >> Đung [không nghe được]. 560 00:27:59,491 --> 00:28:00,490 Andi PENG: Hoàn toàn tốt. 561 00:28:00,490 --> 00:28:47,705 562 00:28:47,705 --> 00:28:51,530 Là tất cả mọi người truy cập máy chủ OK web của họ? 563 00:28:51,530 --> 00:28:52,970 Được apache50 chạy OK? 564 00:28:52,970 --> 00:28:54,700 Tôi nghĩ rằng trong một số các phần khác, chúng tôi 565 00:28:54,700 --> 00:28:58,790 có vấn đề với những người không có thể truy cập máy chủ. 566 00:28:58,790 --> 00:28:59,290 Yeah. 567 00:28:59,290 --> 00:29:05,764 Vì vậy, bạn chỉ cần chạy apache50 không gian bắt đầu khoảng thời gian không gian. 568 00:29:05,764 --> 00:29:06,680 Đung [không nghe được]. 569 00:29:06,680 --> 00:29:07,610 Andi PENG: Yup. 570 00:29:07,610 --> 00:29:08,294 Tốt? 571 00:29:08,294 --> 00:29:09,210 >> Đung [không nghe được]. 572 00:29:09,210 --> 00:29:12,530 573 00:29:12,530 --> 00:29:13,350 >> Andi Peng: Oh, OK. 574 00:29:13,350 --> 00:29:14,808 Vì vậy, bạn đang nghĩ để có một không gian. 575 00:29:14,808 --> 00:29:15,425 Vì vậy apache50-- 576 00:29:15,425 --> 00:29:16,115 >> Đung tôi đã làm. 577 00:29:16,115 --> 00:29:17,661 >> Andi Peng: không gian --start. 578 00:29:17,661 --> 00:29:18,660 Đung Oh, không gian dot. 579 00:29:18,660 --> 00:29:20,110 Andi PENG: Yup, không gian dot. 580 00:29:20,110 --> 00:29:23,230 Của bạn đó. 581 00:29:23,230 --> 00:29:25,490 Vì vậy, sau đó nếu bạn có một trang HTML được tạo ra, 582 00:29:25,490 --> 00:29:28,560 sau đó bạn chỉ có thể đi trực tiếp để liên kết mà nó chỉ. 583 00:29:28,560 --> 00:29:30,539 Và bạn sẽ có thể truy cập nó. 584 00:29:30,539 --> 00:29:35,130 585 00:29:35,130 --> 00:29:37,876 >> Tất cả mọi người đã có thể truy cập vào các trang web của họ OK? 586 00:29:37,876 --> 00:29:39,339 >> Đung [không nghe được]. 587 00:29:39,339 --> 00:29:40,380 Andi Peng: Oh, đó là OK. 588 00:29:40,380 --> 00:29:43,551 589 00:29:43,551 --> 00:29:44,964 >> Đung [không nghe được]. 590 00:29:44,964 --> 00:29:45,630 Andi PENG: Yeah. 591 00:29:45,630 --> 00:29:48,171 Tôi nghĩ rằng bạn thực sự có thể mở nó trong trình duyệt, trình duyệt của bạn 592 00:29:48,171 --> 00:29:49,955 và không chỉ trình duyệt IDE của bạn. 593 00:29:49,955 --> 00:29:51,580 Vâng, tôi nghĩ rằng nếu bạn sao chép và dán nó. 594 00:29:51,580 --> 00:29:53,920 >> Đung Và sau đó làm thế nào để chúng ta tắt nó đi? 595 00:29:53,920 --> 00:29:54,590 [Không nghe thấy] 596 00:29:54,590 --> 00:29:58,720 >> Andi PENG: Yeah, bạn làm apache50 dừng lại không có thời gian. 597 00:29:58,720 --> 00:29:59,220 Yup. 598 00:29:59,220 --> 00:30:01,180 >> Đung [không nghe được]. 599 00:30:01,180 --> 00:30:02,768 >> Andi PENG: Không có thời gian. 600 00:30:02,768 --> 00:30:04,051 Yeah. 601 00:30:04,051 --> 00:30:04,550 Hiện chúng tôi đi. 602 00:30:04,550 --> 00:30:05,050 Yup. 603 00:30:05,050 --> 00:30:08,480 604 00:30:08,480 --> 00:30:09,855 Chúng tôi đang tạo ra các trang web của riêng của chúng tôi. 605 00:30:09,855 --> 00:30:10,646 >> Đung Oh, mát mẻ. 606 00:30:10,646 --> 00:30:13,396 607 00:30:13,396 --> 00:30:14,062 Andi PENG: Yeah. 608 00:30:14,062 --> 00:30:20,484 609 00:30:20,484 --> 00:30:22,420 >> Đung Tôi có một câu hỏi. 610 00:30:22,420 --> 00:30:25,294 Vì vậy, apache 50-- 611 00:30:25,294 --> 00:30:26,731 >> Andi PENG: 50, yeah. 612 00:30:26,731 --> 00:30:28,168 >> Đung [không nghe được]. 613 00:30:28,168 --> 00:30:29,130 >> Andi PENG: Cái gì? 614 00:30:29,130 --> 00:30:29,750 Điều đó thật lạ. 615 00:30:29,750 --> 00:30:32,244 Thấy, đó là loại vấn đề mà đã xảy ra trước. 616 00:30:32,244 --> 00:30:37,820 617 00:30:37,820 --> 00:30:38,730 ĐƯỢC. 618 00:30:38,730 --> 00:30:39,800 Xem tôi sau khi phần. 619 00:30:39,800 --> 00:30:42,320 Bởi vì chúng tôi đang gặp một số các vấn đề với máy chủ. 620 00:30:42,320 --> 00:30:44,325 >> Và bạn muốn chắc chắc chắn rằng máy chủ của bạn là 621 00:30:44,325 --> 00:30:45,700 chạy trước khi bắt đầu pset. 622 00:30:45,700 --> 00:30:47,800 Bởi vì bạn sẽ cần đến nó. 623 00:30:47,800 --> 00:30:48,300 Yeah. 624 00:30:48,300 --> 00:30:51,299 Có bất cứ ai khác mà không được có thể nhận được máy chủ của họ để bắt đầu? 625 00:30:51,299 --> 00:31:12,410 626 00:31:12,410 --> 00:31:17,840 >> Đối với những người bạn của những người muốn thêm phong cách thêm vào các trang web của bạn, 627 00:31:17,840 --> 00:31:20,450 chúng tôi thực sự có thể làm những gì David đã làm trong bài giảng là tốt, 628 00:31:20,450 --> 00:31:24,070 đó là tạo ra một phong cách thêm tấm, đó là một dấu chấm CSS, Cascading 629 00:31:24,070 --> 00:31:30,080 Style Sheet và thực sự chỉ cần thêm nó vào. 630 00:31:30,080 --> 00:31:33,550 Vì vậy, ví dụ, tôi vừa tạo khá nhiều gần như cùng một chính xác 631 00:31:33,550 --> 00:31:37,180 David đã làm trong bài giảng. 632 00:31:37,180 --> 00:31:39,220 Bạn có thể khá nhiều chỉ làm cơ thể. 633 00:31:39,220 --> 00:31:45,980 >> Bạn có những gì được gọi là các thẻ trong đó bạn có thể áp dụng cho bất cứ mục IDE 634 00:31:45,980 --> 00:31:48,650 bạn muốn trong bạn thực tế để trang HTML. 635 00:31:48,650 --> 00:31:54,890 Vì vậy, cơ thể của trang, bạn có thể làm trung tâm class văn bản. 636 00:31:54,890 --> 00:31:58,110 Và sau đó tôi sẽ sáng tạo một thẻ gọi là hàng đầu bên trong 637 00:31:58,110 --> 00:32:01,860 trong đó tôi muốn những điều cần xảy ra, chỉ định một kích thước điểm ảnh lớn 638 00:32:01,860 --> 00:32:03,104 cho phông chữ. 639 00:32:03,104 --> 00:32:04,520 Tôi muốn các font được in đậm. 640 00:32:04,520 --> 00:32:06,478 Và tôi muốn màu để có màu xanh, chỉ tùy ý 641 00:32:06,478 --> 00:32:08,570 các giá trị mà tôi đã quyết định để lựa chọn. 642 00:32:08,570 --> 00:32:10,870 Tôi có thể tạo ra một thẻ gọi là trung. 643 00:32:10,870 --> 00:32:12,640 Cỡ chữ, làm cho nó nhỏ hơn một chút. 644 00:32:12,640 --> 00:32:17,730 Và sau đó tôi có thể tạo ra một thẻ khác gọi là đáy, nơi tôi muốn kích thước phông chữ 645 00:32:17,730 --> 00:32:20,900 là nhỏ hơn vẫn còn. 646 00:32:20,900 --> 00:32:25,630 >> Và như vậy khá nhiều này chỉ là ví dụ mã nguồn hoặc nguồn style sheets 647 00:32:25,630 --> 00:32:27,400 rằng nó rất dễ dàng chỉ cần Google. 648 00:32:27,400 --> 00:32:31,560 Nếu bạn nói, oh, tôi muốn font của tôi được in nghiêng và màu xanh đậm, 649 00:32:31,560 --> 00:32:33,980 bạn có thể có lẽ Google, và sau đó nó sẽ cho bạn biết 650 00:32:33,980 --> 00:32:37,590 các thẻ hoặc ID thích hợp để tạo ra. 651 00:32:37,590 --> 00:32:41,670 Và do đó, cách mà bạn sẽ thực sự loại này có trong một tài liệu HTML 652 00:32:41,670 --> 00:32:45,660 hoặc sử dụng nó là tất cả các bạn có làm ở đây là ở phần đầu 653 00:32:45,660 --> 00:32:48,560 thêm một liên kết đến các style sheet. 654 00:32:48,560 --> 00:32:53,600 >> Vì vậy, bạn chỉ có thể liên kết equals href bất cứ tên các tấm phong cách của bạn 655 00:32:53,600 --> 00:32:54,590 là. 656 00:32:54,590 --> 00:32:56,740 Và sau đó mối quan hệ là một style sheet. 657 00:32:56,740 --> 00:33:00,700 Vì vậy, trong bất kỳ tài liệu HTML, miễn như bạn bao gồm các tấm CSS dot này, 658 00:33:00,700 --> 00:33:07,140 bạn sẽ có thể truy cập và có các tính chất đó. 659 00:33:07,140 --> 00:33:10,370 >> Vì vậy, ví dụ, ở đây tôi đã chỉ tạo ra một trang web ví dụ. 660 00:33:10,370 --> 00:33:15,680 Điều này được chào đón để phần CS50 Thứ Ba 2:00-03:30 với tôi. 661 00:33:15,680 --> 00:33:20,300 Và sau đó tôi đã thêm một hình ảnh đáng yêu mà chúng tôi có khả năng sẽ có thể nhìn thấy. 662 00:33:20,300 --> 00:33:24,620 >> Vì vậy, nếu bạn có một cái nhìn ở đây, nếu bạn đi đến style.html, 663 00:33:24,620 --> 00:33:26,310 chúng tôi tạo ra một trang web với mèo con. 664 00:33:26,310 --> 00:33:29,420 Bởi vì con mèo con là tuyệt vời. 665 00:33:29,420 --> 00:33:33,570 Vì vậy, thêm một hình ảnh chỉ được liên kết img SRC. 666 00:33:33,570 --> 00:33:36,260 667 00:33:36,260 --> 00:33:38,310 >> Khá nhiều, nếu có bất kỳ loại tính năng 668 00:33:38,310 --> 00:33:40,268 bạn muốn thêm vào của bạn website-- vì vậy hãy nói, 669 00:33:40,268 --> 00:33:43,290 bạn muốn thêm một menu hoặc một thanh tìm kiếm hoặc như 670 00:33:43,290 --> 00:33:46,450 một image-- chỉ Google làm thế nào để làm điều đó. 671 00:33:46,450 --> 00:33:48,277 Và bạn chỉ tiếng tom ở định dạng đó. 672 00:33:48,277 --> 00:33:50,110 Chỉ và bạn có thể khá nhiều chỉ cần thêm nó vào. 673 00:33:50,110 --> 00:33:52,670 Nó thực sự, thực sự dễ dàng. 674 00:33:52,670 --> 00:33:55,014 >> Chúng tôi đang tạo riêng của chúng tôi các trang web ngay bây giờ. 675 00:33:55,014 --> 00:33:55,680 Nếu bạn muốn-- 676 00:33:55,680 --> 00:33:56,580 >> Đung [Không nghe thấy] 677 00:33:56,580 --> 00:33:57,470 >> Andi PENG: Xin lỗi? 678 00:33:57,470 --> 00:33:59,310 >> Đung [không nghe được]. 679 00:33:59,310 --> 00:34:01,340 >> Andi Peng: Oh, các div chỉ là một bộ phận 680 00:34:01,340 --> 00:34:04,370 nói với tôi rằng, oh, tôi có một phần nhất định gọi là 681 00:34:04,370 --> 00:34:07,480 trung mà tôi đang làm đơn tag CSS của tôi, và sau đó 682 00:34:07,480 --> 00:34:09,619 bộ phận khác của tôi với đáy. 683 00:34:09,619 --> 00:34:10,785 Đó là tất cả nó nói cho bạn. 684 00:34:10,785 --> 00:34:12,743 Bởi vì nó là tốt đẹp để giữ thứ gọn gàng theo thứ tự, 685 00:34:12,743 --> 00:34:16,304 do đó, các chương trình biết chính xác làm thế nào để chạy. 686 00:34:16,304 --> 00:34:18,929 Và nghĩ rằng tôi có thể sao chép và dán này vào trình duyệt thực tế của tôi là tốt. 687 00:34:18,929 --> 00:34:21,110 Nó nên được sử dụng tốt. 688 00:34:21,110 --> 00:34:21,610 Yeah. 689 00:34:21,610 --> 00:34:24,330 690 00:34:24,330 --> 00:34:25,989 Yay. 691 00:34:25,989 --> 00:34:29,380 Vì vậy, nếu tất cả mọi người muốn chỉ cố gắng tạo ra một trang web, 692 00:34:29,380 --> 00:34:32,169 chúng tôi sẽ mất thêm 2-3 phút. 693 00:34:32,169 --> 00:34:34,460 Tôi chỉ muốn chắc chắn các máy chủ của tất cả mọi người đang chạy 694 00:34:34,460 --> 00:34:36,941 và mọi người đều có một ý tưởng làm thế nào để làm điều đó. 695 00:34:36,941 --> 00:34:38,774 Nếu các bạn muốn đưa ra các máy tính của bạn. 696 00:34:38,774 --> 00:34:44,630 697 00:34:44,630 --> 00:34:45,635 Vẫn không hoạt động? 698 00:34:45,635 --> 00:34:47,420 >> Đung Tôi chỉ là [không nghe được]. 699 00:34:47,420 --> 00:34:49,838 >> Andi PENG: Có thể thử cập nhật 50 là tốt. 700 00:34:49,838 --> 00:34:51,392 Yeah. 701 00:34:51,392 --> 00:34:52,308 Đung [không nghe được]. 702 00:34:52,308 --> 00:35:17,502 703 00:35:17,502 --> 00:35:18,990 >> Andi PENG: Yeah. 704 00:35:18,990 --> 00:35:23,750 Vì vậy, cách mà bạn bắt đầu một mới máy chủ web trên IDE chỉ là 705 00:35:23,750 --> 00:35:27,889 làm apache50 không gian không gian bắt đầu chấm. 706 00:35:27,889 --> 00:35:30,430 Tôi chỉ muốn chắc chắn các máy chủ của tất cả mọi người đang chạy OK. 707 00:35:30,430 --> 00:35:31,763 >> Đung đây, trên các thiết bị đầu cuối? 708 00:35:31,763 --> 00:35:33,334 Andi PENG: Yeah. 709 00:35:33,334 --> 00:35:34,250 Đung [không nghe được]. 710 00:35:34,250 --> 00:35:38,000 711 00:35:38,000 --> 00:35:38,985 >> Andi PENG: Apache. 712 00:35:38,985 --> 00:35:42,010 Trên thực tế, tôi nghĩ rằng bạn đang chạy cái gì đã có. 713 00:35:42,010 --> 00:35:43,145 Vâng, bạn đang thực sự chạy một máy chủ khác nhau. 714 00:35:43,145 --> 00:35:43,830 Vâng, bạn tốt. 715 00:35:43,830 --> 00:35:45,085 Chừng đó là làm việc, bạn là OK. 716 00:35:45,085 --> 00:35:45,626 >> Đung OK. 717 00:35:45,626 --> 00:35:47,615 Andi PENG: Có hai cách để chạy các máy chủ. 718 00:35:47,615 --> 00:35:49,990 Vì vậy, miễn là một trong những cách đang làm việc, đó là tất cả các quyền. 719 00:35:49,990 --> 00:36:18,470 720 00:36:18,470 --> 00:36:21,680 Chúng tôi sẽ lấy một phút chỉ để loại kết thúc 721 00:36:21,680 --> 00:36:25,280 các lo mọi việc của bất cứ điều gì Trang web các bạn muốn làm. 722 00:36:25,280 --> 00:36:26,830 >> Được tất cả mọi người làm việc bằng cách này? 723 00:36:26,830 --> 00:36:30,910 Các máy chủ của tất cả mọi người là chạy bên cạnh việc cho bạn? 724 00:36:30,910 --> 00:36:32,210 Chúng ta sẽ hiểu rằng con số. 725 00:36:32,210 --> 00:36:34,137 Và của HTML khá đơn giản. 726 00:36:34,137 --> 00:36:35,220 Vì vậy, tôi nghĩ rằng chúng ta đều tốt. 727 00:36:35,220 --> 00:36:38,260 728 00:36:38,260 --> 00:36:38,760 Yeah. 729 00:36:38,760 --> 00:36:41,070 Tôi se trở lại. 730 00:36:41,070 --> 00:36:42,797 >> Đung [không nghe được]. 731 00:36:42,797 --> 00:36:43,380 Andi PENG: OK. 732 00:36:43,380 --> 00:36:44,770 Đung Vì vậy, nó chỉ bắt đầu để tải lên. 733 00:36:44,770 --> 00:36:45,686 Andi PENG: Không có lo lắng. 734 00:36:45,686 --> 00:36:49,590 735 00:36:49,590 --> 00:36:52,680 Vì vậy, HTML, có mã nguồn sẽ được trực tuyến sau khi phần. 736 00:36:52,680 --> 00:36:54,810 Ngoài ra, David có một toàn bộ bó trực tuyến là tốt. 737 00:36:54,810 --> 00:36:58,190 Chỉ cần loại lướt qua nó để xem làm thế nào các trang HTML được viết. 738 00:36:58,190 --> 00:36:59,920 Đó là khá dễ dàng. 739 00:36:59,920 --> 00:37:03,979 Bất cứ điều gì bạn không biết, bạn có khá nhiều chỉ Google và bạn tốt. 740 00:37:03,979 --> 00:37:06,270 Tôi chỉ muốn chắc chắn rằng các máy chủ của bạn đang chạy. 741 00:37:06,270 --> 00:37:12,962 742 00:37:12,962 --> 00:37:14,880 >> Đung Liệu nó làm điều này thường xuyên không? 743 00:37:14,880 --> 00:37:16,421 >> Andi PENG: Nó không bao giờ xảy ra với tôi. 744 00:37:16,421 --> 00:37:18,470 745 00:37:18,470 --> 00:37:20,782 Tôi không biết nó thậm chí có thể ngủ đông. 746 00:37:20,782 --> 00:37:22,516 >> Đung [không nghe được]. 747 00:37:22,516 --> 00:37:25,140 Andi Peng: Tôi nghĩ everyone-- tôi đã không bao giờ có ngủ đông trước. 748 00:37:25,140 --> 00:37:26,860 Và tôi không biết tại sao. 749 00:37:26,860 --> 00:37:27,566 Nó là lạ. 750 00:37:27,566 --> 00:37:29,310 >> Đung [không nghe được]. 751 00:37:29,310 --> 00:37:30,643 >> Andi PENG: Là bạn ngủ đông? 752 00:37:30,643 --> 00:37:32,615 753 00:37:32,615 --> 00:37:33,669 >> Đung [không nghe được]. 754 00:37:33,669 --> 00:37:34,335 Andi PENG: Yeah. 755 00:37:34,335 --> 00:37:39,122 756 00:37:39,122 --> 00:37:39,872 Đung Đó là OK. 757 00:37:39,872 --> 00:37:40,622 Vì vậy, một khi nó đang mở. 758 00:37:40,622 --> 00:37:41,760 Andi PENG: OK. 759 00:37:41,760 --> 00:37:43,940 Chúng tôi sẽ đối phó với một số máy chủ các vấn đề sau khi phần. 760 00:37:43,940 --> 00:37:44,860 Bạn nên sử dụng tốt. 761 00:37:44,860 --> 00:37:47,950 Mặc dù, bạn muốn chắc chắn rằng bạn có được họ giải quyết trước khi bạn rời khỏi. 762 00:37:47,950 --> 00:37:49,380 Bởi vì nếu máy chủ của bạn không chạy, sau đó bạn 763 00:37:49,380 --> 00:37:52,004 sẽ không có khả năng làm việc pset, giống như bất kỳ một phần của pset. 764 00:37:52,004 --> 00:37:54,200 Vì vậy, bạn muốn chắc chắn rằng đó là làm việc. 765 00:37:54,200 --> 00:37:54,831 Mát. 766 00:37:54,831 --> 00:37:55,330 Được rồi. 767 00:37:55,330 --> 00:37:56,490 Nói lời tạm biệt mèo con. 768 00:37:56,490 --> 00:37:59,670 Tôi đã trải qua một thời gian dài tìm kiếm mà hình ảnh con mèo con để đưa vào. 769 00:37:59,670 --> 00:38:02,272 Vì vậy, anyways. 770 00:38:02,272 --> 00:38:04,950 >> Đung [không nghe được]. 771 00:38:04,950 --> 00:38:05,770 >> Andi PENG: Xin lỗi? 772 00:38:05,770 --> 00:38:07,345 >> Đung [không nghe được]. 773 00:38:07,345 --> 00:38:08,970 Andi Peng: Tôi nghĩ rằng đó là trên các trang web. 774 00:38:08,970 --> 00:38:11,064 Giống như spec? 775 00:38:11,064 --> 00:38:12,020 >> Đung [không nghe được]. 776 00:38:12,020 --> 00:38:16,080 Tôi nghĩ rằng các spec chỉ là trực tuyến trong tuần bảy. 777 00:38:16,080 --> 00:38:18,850 Tôi nghĩ rằng nó được gọi là pset6, thậm chí mặc dù chúng tôi đang ở trên tuần bảy, mà 778 00:38:18,850 --> 00:38:19,641 là một bit. 779 00:38:19,641 --> 00:38:23,130 Đung Nhưng tôi có nghĩa là nếu bạn muốn nhìn at-- nếu bạn 780 00:38:23,130 --> 00:38:28,666 muốn kéo lên phiên bản của chúng tôi các trang web từ sever của chúng tôi? 781 00:38:28,666 --> 00:38:31,820 Vì vậy, như server.c là pset, phải không? 782 00:38:31,820 --> 00:38:36,514 Nếu bạn muốn nhìn vào điều này, như thế nào nó sẽ kiểm tra ra? 783 00:38:36,514 --> 00:38:38,680 Andi Peng: Oh, vậy thực sự các pset, tất cả chúng ta đang làm 784 00:38:38,680 --> 00:38:41,405 đây là implementing-- đây, Tôi sẽ đi qua một thời gian ngắn này. 785 00:38:41,405 --> 00:38:44,187 786 00:38:44,187 --> 00:38:47,020 Vì vậy, tất cả mọi người cho đó chỉ là nhận phần, các bạn là người may mắn. 787 00:38:47,020 --> 00:38:49,340 Có rất ít tài liệu để thực sự bao gồm ngày hôm nay. 788 00:38:49,340 --> 00:38:52,585 >> Tôi chỉ cần đi để chi tiêu tiếp theo 20 phút đi qua pset giúp đỡ. 789 00:38:52,585 --> 00:38:55,210 Bởi vì có một số hữu ích chức năng đó sẽ giúp cuộc sống của bạn. 790 00:38:55,210 --> 00:38:57,501 Và hy vọng, chúng ta sẽ được ra ở đây trong như 20 phút. 791 00:38:57,501 --> 00:38:58,360 ĐƯỢC. 792 00:38:58,360 --> 00:39:00,252 >> Vì vậy pset7 là sai. 793 00:39:00,252 --> 00:39:02,460 Mặc dù chúng tôi đang ở trên tuần bảy, nó thực sự pset6. 794 00:39:02,460 --> 00:39:04,220 Tôi sẽ thay đổi điều đó. 795 00:39:04,220 --> 00:39:07,550 Tất cả chúng ta đang làm trong pset6 đang tạo ra một máy chủ web. 796 00:39:07,550 --> 00:39:09,010 Đó là âm thanh siêu đáng sợ. 797 00:39:09,010 --> 00:39:11,010 >> Và đặc biệt là đối với những người các bạn nào đã 798 00:39:11,010 --> 00:39:14,530 nhìn mã phân phối, có rất nhiều mã, rất nhiều mã. 799 00:39:14,530 --> 00:39:15,570 Nhưng là hoàn toàn OK. 800 00:39:15,570 --> 00:39:17,750 Bởi vì gritty nitty một phần của thực sự tạo ra 801 00:39:17,750 --> 00:39:20,140 các máy chủ được thực hiện bởi chúng tôi. 802 00:39:20,140 --> 00:39:22,090 Tất cả các bạn đang thực sự hỏi để làm trong pset này 803 00:39:22,090 --> 00:39:25,350 chỉ là để làm một số thao tác chuỗi trong tập tin I / O. Nó thực sự 804 00:39:25,350 --> 00:39:27,570 như khá đơn giản. 805 00:39:27,570 --> 00:39:30,830 >> Vì vậy, khi lần đầu tiên bạn tải that-- người ở đây đã thực sự đã được tải về 806 00:39:30,830 --> 00:39:32,540 các pset và lấy một cái nhìn? 807 00:39:32,540 --> 00:39:33,040 Được rồi. 808 00:39:33,040 --> 00:39:33,540 Yeah. 809 00:39:33,540 --> 00:39:36,042 Hình như có 500 dòng mã rằng bạn đang đi để được như thế, 810 00:39:36,042 --> 00:39:36,750 chuyện gì đang diễn ra? 811 00:39:36,750 --> 00:39:38,177 Và đó là hoàn toàn tốt đẹp. 812 00:39:38,177 --> 00:39:39,760 Hãy chắc chắn rằng bạn xem đi bộ thuận. 813 00:39:39,760 --> 00:39:41,610 Bởi vì David và- Tôi không biết. 814 00:39:41,610 --> 00:39:43,870 Tôi không nghĩ rằng đó là Zamyla, một trong này. 815 00:39:43,870 --> 00:39:47,040 Nhưng tôi nghĩ rằng một số khác đi bộ thuận là khá 816 00:39:47,040 --> 00:39:49,510 hữu ích trong điều khoản của chỉ cần cho bạn biết 817 00:39:49,510 --> 00:39:51,780 những gì đang xảy ra bên trong mã của bạn. 818 00:39:51,780 --> 00:39:53,330 >> Và nó hoàn toàn OK. 819 00:39:53,330 --> 00:39:57,860 Bởi vì bốn chức năng mà bạn yêu cầu thực hiện đã thực sự 820 00:39:57,860 --> 00:39:59,720 zero để làm với các máy chủ thực sự. 821 00:39:59,720 --> 00:40:02,590 Tất cả họ phải làm là chỉ cần phân tích các chuỗi khác nhau, 822 00:40:02,590 --> 00:40:05,780 tìm kiếm thông qua các chuỗi, để đảm bảo những điều đang làm 823 00:40:05,780 --> 00:40:07,750 những gì họ đang phải làm. 824 00:40:07,750 --> 00:40:11,200 >> Vì vậy, để có hiệu lực đó, có một số chức năng rất, rất hữu ích, 825 00:40:11,200 --> 00:40:13,630 đặc biệt là đối với chuỗi thao tác, rằng chúng ta nên tất cả 826 00:40:13,630 --> 00:40:15,879 đi qua mà tôi nghĩ rằng tôi muốn rất hữu ích cho các bạn 827 00:40:15,879 --> 00:40:19,130 để tìm hiểu trước khi thử các pset. 828 00:40:19,130 --> 00:40:23,350 Và tất cả chúng đều chứa trong thư viện string.h của bạn. 829 00:40:23,350 --> 00:40:25,980 Có lẽ tốt hơn chức năng tôi đã không có ở đây, 830 00:40:25,980 --> 00:40:30,740 bởi vì tôi không bao giờ có thể sử dụng chúng hoặc có lẽ tôi chỉ không biết chúng tồn tại. 831 00:40:30,740 --> 00:40:32,440 >> Hãy lướt qua student.h. 832 00:40:32,440 --> 00:40:36,460 Bởi vì có đi có rất nhiều các chức năng mà rất hữu ích. 833 00:40:36,460 --> 00:40:43,050 Vì vậy, sáu mà tôi sử dụng nhiều nhất trong tôi pset khi tôi đã làm nó trong tuần qua 834 00:40:43,050 --> 00:40:49,620 là strtok, strchr, strrcher, strstr, strcasecmp, và strcpy. 835 00:40:49,620 --> 00:40:53,060 Và do đó, cuối cùng hai có vẻ khá quen thuộc với hầu hết các bạn. 836 00:40:53,060 --> 00:40:56,910 Trường hợp Str so sánh, tất cả nó là so sánh dây để kiểm tra xem chúng cho bình đẳng, 837 00:40:56,910 --> 00:40:58,110 bao gồm cả trường hợp. 838 00:40:58,110 --> 00:41:01,430 Và strcpy chỉ là bản sao một chuỗi thành một bộ đệm. 839 00:41:01,430 --> 00:41:04,430 >> Và do đó, những hai nên có vẻ rất quen thuộc với các bạn vào thời điểm này. 840 00:41:04,430 --> 00:41:07,100 Bởi vì chúng tôi đã sử dụng chúng rất nhiều, đặc biệt là cho các psets cuối cùng. 841 00:41:07,100 --> 00:41:10,734 Nhưng bốn đầu tiên có lẽ bạn không nhìn thấy cho đến bây giờ. 842 00:41:10,734 --> 00:41:12,400 Nhưng tôi sẽ chỉ đi qua chúng. 843 00:41:12,400 --> 00:41:15,620 Bởi vì chúng ta sẽ làm cho cuộc sống của bạn thực sự, thực sự dễ dàng for-- không dễ dàng, 844 00:41:15,620 --> 00:41:19,830 nhưng dễ dàng hơn nhiều cho pset sắp tới này. 845 00:41:19,830 --> 00:41:20,420 >> ĐƯỢC. 846 00:41:20,420 --> 00:41:27,720 Vì vậy, char * strtok, đây là chức năng định nghĩa cho chức năng này chứa 847 00:41:27,720 --> 00:41:31,050 trong chuỗi, thư viện h. 848 00:41:31,050 --> 00:41:34,340 Nếu bạn có một đầu vào của char * chuỗi, mà chỉ là một chuỗi, 849 00:41:34,340 --> 00:41:38,220 hoặc một char liên tục * deliminator, DELIM cho ngắn, 850 00:41:38,220 --> 00:41:42,410 tất cả nó làm là phá vỡ lớn hơn chuỗi thành một loạt những gì chúng ta gọi 851 00:41:42,410 --> 00:41:45,730 tokens ngăn cách bởi một giá trị nhất định. 852 00:41:45,730 --> 00:42:03,340 Vì vậy, trong một nghĩa nào đó, nếu tôi đã cung cấp cho bạn section.7.php, đây là một chuỗi. 853 00:42:03,340 --> 00:42:09,520 >> Vì vậy, đó sẽ là nếu tôi đã phải vượt qua trong này như str của tôi, tôi char * str, 854 00:42:09,520 --> 00:42:18,870 nếu deliminator của tôi đã chấm, tất cả điều này sẽ làm là tìm kiếm thông qua chuỗi. 855 00:42:18,870 --> 00:42:22,790 Và lần đầu tiên nó thấy một dấu chấm, nó sẽ chỉ trả lại cho con trỏ 856 00:42:22,790 --> 00:42:25,830 để cuối cùng tìm thấy token trong chuỗi trước khi điều này. 857 00:42:25,830 --> 00:42:27,230 Vì vậy, nó sẽ đi ngay đây. 858 00:42:27,230 --> 00:42:30,580 >> Và nó sẽ chỉ cho tôi 7.php. 859 00:42:30,580 --> 00:42:34,070 Và nếu tôi đã gọi chức năng một lần nữa, 860 00:42:34,070 --> 00:42:37,580 nó sẽ đưa cho tôi chỉ là .php. 861 00:42:37,580 --> 00:42:41,540 Và vì vậy tất cả chức năng này được làm là phá bỏ các chuỗi lớn hơn 862 00:42:41,540 --> 00:42:44,620 thành chuỗi nhỏ hơn tùy thuộc vào những gì bạn đang tìm kiếm. 863 00:42:44,620 --> 00:42:46,670 >> Và ví dụ như vậy, trong nhìn lên chức năng của bạn 864 00:42:46,670 --> 00:42:49,895 nếu bạn muốn nhìn vào những gì một số ký tự trở về 865 00:42:49,895 --> 00:42:54,280 hoặc nếu chấm xảy ra hoặc mở rộng xảy ra, chức năng này sẽ là khá hữu ích. 866 00:42:54,280 --> 00:42:57,260 867 00:42:57,260 --> 00:42:59,010 Yeah. 868 00:42:59,010 --> 00:42:59,510 Đừng lo lắng. 869 00:42:59,510 --> 00:43:01,339 Điều này tất cả sẽ be-- yeah, có chuyện gì thế? 870 00:43:01,339 --> 00:43:07,087 >> Đung Vì vậy, trong những dòng đầu tiên, nếu chúng ta đang sử dụng ví dụ này, 871 00:43:07,087 --> 00:43:09,504 những gì chúng ta sẽ chèn vào đó? 872 00:43:09,504 --> 00:43:10,170 Andi PENG: Yeah. 873 00:43:10,170 --> 00:43:13,000 874 00:43:13,000 --> 00:43:25,640 Bạn sẽ chỉ cần gọi một strtok chuỗi dấu phẩy DELIM. 875 00:43:25,640 --> 00:43:30,260 Và chuỗi bằng section.7.php. 876 00:43:30,260 --> 00:43:35,244 Và sau đó bạn đang DELIM có thể tương đương chỉ rải rác. 877 00:43:35,244 --> 00:43:36,654 >> Đung OK. 878 00:43:36,654 --> 00:43:39,010 >> Andi PENG: Yeah. 879 00:43:39,010 --> 00:43:41,266 Chỉ cần như thế. 880 00:43:41,266 --> 00:43:43,890 Tất cả các chức năng này là khá tương tự như khi chúng tôi đi qua chúng. 881 00:43:43,890 --> 00:43:45,514 Họ chỉ làm những điều hơi khác nhau. 882 00:43:45,514 --> 00:43:49,530 Nhưng tất cả họ đang đi làm cho cuộc sống của bạn dễ dàng hơn rất nhiều. 883 00:43:49,530 --> 00:43:53,940 Chức năng thứ hai, của một người này như siêu, siêu, siêu trọng, 884 00:43:53,940 --> 00:43:58,254 là the-- nắm giữ lên. 885 00:43:58,254 --> 00:44:07,560 886 00:44:07,560 --> 00:44:08,730 >> Rất tiếc. 887 00:44:08,730 --> 00:44:13,810 Tìm kiếm strchr cho người đầu tiên occurrence-- thực sự, yeah. 888 00:44:13,810 --> 00:44:16,385 Strchr là chức năng mà Tôi chắc chắn chỉ cần đi qua. 889 00:44:16,385 --> 00:44:18,260 Vì vậy, bỏ qua những gì tôi nói cho các chức năng đầu tiên. 890 00:44:18,260 --> 00:44:20,980 Nó thực sự gọi là strchr. 891 00:44:20,980 --> 00:44:24,840 >> Vậy điều gì sẽ xảy ra ở đây là nếu bạn đã được trao một chuỗi trong một char c, 892 00:44:24,840 --> 00:44:28,660 nó sẽ chỉ cung cấp cho bạn bất cứ điều gì đó là gì. 893 00:44:28,660 --> 00:44:29,230 Yeah. 894 00:44:29,230 --> 00:44:33,700 Vì vậy, suy nghĩ về nó như str, mà là một chuỗi, và chr như char. 895 00:44:33,700 --> 00:44:38,621 Vì vậy, tất cả các bạn đang cố gắng làm là tìm kiếm cho nơi một char là trong một chuỗi. 896 00:44:38,621 --> 00:44:41,120 Và do đó, nó tìm kiếm đầu tiên xuất hiện của các nhân vật 897 00:44:41,120 --> 00:44:43,601 c trong chuỗi str. 898 00:44:43,601 --> 00:44:46,463 >> Đung [không nghe được]. 899 00:44:46,463 --> 00:44:48,380 >> Andi PENG: Yup. 900 00:44:48,380 --> 00:44:51,230 Và sau đó nếu nó không tìm thấy nó, nó sẽ trả về NULL. 901 00:44:51,230 --> 00:44:54,313 Vì vậy, một cái gì đó mà sẽ là rất hữu ích cho các bạn trong việc thực hiện pset 902 00:44:54,313 --> 00:44:59,030 nếu, nói, bạn đang tìm kiếm một phần mở rộng như một .docx cho Word 903 00:44:59,030 --> 00:45:04,740 tài liệu hay một .pdf cho một tài liệu PDF, bạn có thể loại sử dụng nó để tìm kiếm 904 00:45:04,740 --> 00:45:08,720 cho bất cứ điều gì là sau đó mỗi khi bạn nhìn thấy một dấu chấm, phải không? 905 00:45:08,720 --> 00:45:11,880 Và như vậy khá nhiều, nếu bạn chạy mà thông qua chức năng, 906 00:45:11,880 --> 00:45:13,610 nếu nó trả về NULL, sau đó bạn biết rằng nó 907 00:45:13,610 --> 00:45:17,292 không tìm thấy nó chấm, có nghĩa này rõ ràng không phải là một phần mở rộng tập hợp lệ. 908 00:45:17,292 --> 00:45:19,000 Hoặc nếu nó trở về một cái gì đó, sau đó bạn biết 909 00:45:19,000 --> 00:45:21,940 nó sẽ trả lại bất cứ nhân thực sự sau khi mở rộng. 910 00:45:21,940 --> 00:45:24,190 Vì vậy, những người bạn của những người có bắt đầu tìm kiếm thông qua tra cứu 911 00:45:24,190 --> 00:45:28,640 và phân tích cú pháp, chức năng này của sẽ là siêu hữu ích. 912 00:45:28,640 --> 00:45:32,010 Vì vậy, chúng tôi đang thực sự đi để chứng minh việc sử dụng này. 913 00:45:32,010 --> 00:45:36,670 >> Tại sao bạn không thử viết một chàng trai hàm bool câu char * s mà 914 00:45:36,670 --> 00:45:39,610 chỉ trả về true nếu s là một câu và sai khác. 915 00:45:39,610 --> 00:45:44,110 916 00:45:44,110 --> 00:45:46,830 Vì vậy, gợi ý, bạn sẽ để có thể sử dụng strchr. 917 00:45:46,830 --> 00:45:50,420 Hoặc bạn chỉ cần tìm kiếm trong chuỗi cho một nhân vật nào đó. 918 00:45:50,420 --> 00:45:54,950 Và như vậy trong một câu, những gì ngăn cách một câu 919 00:45:54,950 --> 00:45:57,510 từ một phi câu, những gì nhân vật cụ thể? 920 00:45:57,510 --> 00:45:58,260 Đung Một không gian. 921 00:45:58,260 --> 00:45:59,343 Andi PENG: Một không gian, phải không? 922 00:45:59,343 --> 00:46:03,354 Và vì vậy những gì chúng ta có thể sẽ muốn làm trong chức năng này ở đây? 923 00:46:03,354 --> 00:46:04,290 >> Đung [không nghe được]. 924 00:46:04,290 --> 00:46:07,623 >> Andi PENG: Chúng ta sẽ muốn strchr chuỗi cho sự xuất hiện của không gian. 925 00:46:07,623 --> 00:46:11,330 Bởi vì nếu nó trả về một cái gì đó, sau đó chúng ta biết rằng điều này phải là một câu. 926 00:46:11,330 --> 00:46:14,510 Điều đó có nghĩa là chúng ta phải có một không gian trong chuỗi này. 927 00:46:14,510 --> 00:46:17,660 >> Nếu không có không gian, sau đó chúng tôi biết rằng, hey, đoán nó không phải là một chuỗi. 928 00:46:17,660 --> 00:46:20,060 Đây có thể chỉ là một từ rất dài. 929 00:46:20,060 --> 00:46:23,242 Vì vậy, tôi sẽ cung cấp cho các bạn một vài phút để viết chức năng này. 930 00:46:23,242 --> 00:46:44,398 931 00:46:44,398 --> 00:46:45,874 Yeah. 932 00:46:45,874 --> 00:46:47,970 >> Đung Em có nhận chuỗi này từ người sử dụng? 933 00:46:47,970 --> 00:46:48,440 >> Andi PENG: Yeah. 934 00:46:48,440 --> 00:46:49,565 Vì vậy, đây chỉ là một chức năng. 935 00:46:49,565 --> 00:46:54,586 Vì vậy, hãy tưởng tượng bên trong chức năng chính của bạn Bạn đã have-- hãy đi đây. 936 00:46:54,586 --> 00:47:00,040 937 00:47:00,040 --> 00:47:00,540 ĐƯỢC. 938 00:47:00,540 --> 00:47:05,270 Vì vậy, tôi đã viết chương trình này ở đâu Tôi có chức năng chính của tôi ở đâu 939 00:47:05,270 --> 00:47:07,432 Tôi vừa mới tạo ra hai chuỗi. 940 00:47:07,432 --> 00:47:09,890 Người đầu tiên là chào, tên tôi là Andi-- rõ ràng, một câu. 941 00:47:09,890 --> 00:47:13,240 Thứ hai của tôi chỉ là Andi, rõ ràng không kết án. 942 00:47:13,240 --> 00:47:18,390 >> Và vì vậy tôi chạy cả của những người chuỗi thông qua chức năng này. 943 00:47:18,390 --> 00:47:20,540 Tôi muốn các bạn để viết câu lạnh. 944 00:47:20,540 --> 00:47:23,380 Và tôi đang lưu trữ những giá trị, và sau đó chỉ cần in ra. 945 00:47:23,380 --> 00:47:26,549 Vì vậy, nghĩ rằng người dùng sẽ vượt qua trong một chuỗi. 946 00:47:26,549 --> 00:47:29,590 Và sau đó bạn sẽ cơ bản tìm hiểu xem đó là một câu hay không 947 00:47:29,590 --> 00:47:31,131 và trở về đúng hay sai cho phù hợp. 948 00:47:31,131 --> 00:48:41,850 949 00:48:41,850 --> 00:48:45,200 >> Nếu các bạn muốn đưa ra một ngón tay cái lên hoặc người đứng đầu lên, đầu gật đầu, 950 00:48:45,200 --> 00:48:49,080 là bất cứ ai sẵn sàng để bắt đầu này, mà muốn được tốt. 951 00:48:49,080 --> 00:50:13,570 952 00:50:13,570 --> 00:50:15,200 Có lẽ như 30 giây nhiều hơn? 953 00:50:15,200 --> 00:50:49,570 954 00:50:49,570 --> 00:50:50,070 Được rồi. 955 00:50:50,070 --> 00:50:52,870 Hãy xem bạn có thể thử viết chức năng này. 956 00:50:52,870 --> 00:50:57,480 >> Vì vậy, giả coding-- tôi chỉ cần đi tới loại đi qua này ngay bây giờ. 957 00:50:57,480 --> 00:51:00,570 Khá nhiều, chúng ta biết được chức năng mà chúng ta cần phải sử dụng. 958 00:51:00,570 --> 00:51:04,390 Chúng ta sẽ gọi hàm này trên chuỗi và tìm kiếm một không gian của chúng tôi. 959 00:51:04,390 --> 00:51:08,682 Nếu nó trở về một cái gì đó, sau đó chúng ta phải biết rằng, rõ ràng, đây là một câu. 960 00:51:08,682 --> 00:51:09,640 Bởi vì có không gian. 961 00:51:09,640 --> 00:51:10,930 Sau đó chúng ta sẽ trở lại đúng. 962 00:51:10,930 --> 00:51:12,310 Khác, chúng tôi sẽ trả về false. 963 00:51:12,310 --> 00:51:14,393 Có ai muốn cho cho tôi những dòng mã đầu tiên 964 00:51:14,393 --> 00:51:16,890 rằng chúng tôi đang thực sự đi sử dụng để viết này? 965 00:51:16,890 --> 00:51:19,680 Nó thực sự là khó khăn nhất dòng mã là tốt. 966 00:51:19,680 --> 00:51:21,026 Yeah. 967 00:51:21,026 --> 00:51:28,942 >> Đung Nếu strtok s-- 968 00:51:28,942 --> 00:51:29,900 Andi PENG: Chỉ cần strchr. 969 00:51:29,900 --> 00:51:35,354 Đung [interposing GIỌNG NÓI] không gian không phải là bằng null. 970 00:51:35,354 --> 00:51:38,270 971 00:51:38,270 --> 00:51:40,710 >> Andi PENG: Cool. 972 00:51:40,710 --> 00:51:41,470 Chính xác. 973 00:51:41,470 --> 00:51:43,200 Mọi người đều hiểu rằng dòng đầu tiên? 974 00:51:43,200 --> 00:51:46,110 Chúng tôi sẽ gọi strstr, mà là một chức năng để tìm kiếm 975 00:51:46,110 --> 00:51:51,830 chuỗi s cho char của không gian. 976 00:51:51,830 --> 00:51:56,010 Và nếu nó tìm thấy nó, nó sẽ trả về một con trỏ đến nơi đó là. 977 00:51:56,010 --> 00:51:58,500 >> Nếu nó không tìm thấy nó, nó sẽ trả về NULL. 978 00:51:58,500 --> 00:52:02,530 Vì vậy, nếu nó trả về bất cứ điều gì khác hơn NULL, sau đó chúng ta biết nó được tìm thấy một không gian. 979 00:52:02,530 --> 00:52:03,553 Điều đó có ý nghĩa? 980 00:52:03,553 --> 00:52:04,090 Mát. 981 00:52:04,090 --> 00:52:04,590 Được rồi. 982 00:52:04,590 --> 00:52:08,246 Vì vậy, nếu chúng ta biết nó được tìm thấy một không gian, những gì chúng ta muốn làm gì? 983 00:52:08,246 --> 00:52:09,162 Đung Quay trở lại đúng. 984 00:52:09,162 --> 00:52:09,787 Andi PENG: Yup. 985 00:52:09,787 --> 00:52:11,940 Return true. 986 00:52:11,940 --> 00:52:15,034 Và sau đó, một người nào đó muốn kết thúc chức năng cho tôi không? 987 00:52:15,034 --> 00:52:16,300 Yeah. 988 00:52:16,300 --> 00:52:19,720 Khác, chỉ cần như thế. 989 00:52:19,720 --> 00:52:20,780 Và cố gắng biên dịch này. 990 00:52:20,780 --> 00:52:26,071 991 00:52:26,071 --> 00:52:28,000 >> Yup. 992 00:52:28,000 --> 00:52:33,099 Vì vậy, các bạn có thể nhìn thấy từ kết quả đầu ra, hãy nhớ Booleans trong C 993 00:52:33,099 --> 00:52:34,390 luôn thể hiện trong hệ nhị phân. 994 00:52:34,390 --> 00:52:35,100 1 là đúng. 995 00:52:35,100 --> 00:52:36,350 0 là sai. 996 00:52:36,350 --> 00:52:39,720 >> Nếu chúng ta để chạy này chức năng trên một chuỗi, mà 997 00:52:39,720 --> 00:52:42,900 là Hi, tôi tên của Andi-- rõ ràng, một sentence-- kết quả 998 00:52:42,900 --> 00:52:45,700 in ra để 1 đó là sự thật. 999 00:52:45,700 --> 00:52:48,420 Điều thứ hai, mà chỉ là một từ, bộ kết quả in ra 1000 00:52:48,420 --> 00:52:50,630 đến 0, đó là sai. 1001 00:52:50,630 --> 00:52:54,820 Tất cả mọi người loại rõ ràng về cách Chức năng này được viết? 1002 00:52:54,820 --> 00:52:55,800 Yeah. 1003 00:52:55,800 --> 00:52:59,770 >> Đung chúng tôi có thể cũng làm, thay vì không bằng không, bằng bằng 0, 1004 00:52:59,770 --> 00:53:03,677 để nó bằng? 1005 00:53:03,677 --> 00:53:04,260 Andi PENG: No. 1006 00:53:04,260 --> 00:53:07,480 Bởi vì strchr là một chức năng. 1007 00:53:07,480 --> 00:53:09,940 Tôi sẽ trở lại này. 1008 00:53:09,940 --> 00:53:14,624 Vì vậy, các kiểu trả về là những gì của hàm strchr của chúng tôi? 1009 00:53:14,624 --> 00:53:15,332 Đung Oh, OK. 1010 00:53:15,332 --> 00:53:15,800 Hoặc NULL. 1011 00:53:15,800 --> 00:53:16,466 >> Andi PENG: Yeah. 1012 00:53:16,466 --> 00:53:20,890 Đó là một char * mà nói với tôi rằng bất cứ điều gì chức năng này sẽ trở lại, 1013 00:53:20,890 --> 00:53:22,090 nó sẽ là một con trỏ. 1014 00:53:22,090 --> 00:53:24,860 Hoặc là con trỏ là có được trỏ đến nơi nó được tìm thấy nó, 1015 00:53:24,860 --> 00:53:27,550 hoặc nó sẽ trở lại một con trỏ đến NULL. 1016 00:53:27,550 --> 00:53:30,930 Trong cả hai trường hợp, nó sẽ để trả về một con trỏ đến một cái gì đó. 1017 00:53:30,930 --> 00:53:34,354 >> Và vì vậy nếu bạn đã đánh đồng này bằng, bình đẳng, 0, 1018 00:53:34,354 --> 00:53:36,020 bạn sẽ nhận được một lỗi biên dịch. 1019 00:53:36,020 --> 00:53:37,645 Bởi vì nó sẽ trả về một con trỏ. 1020 00:53:37,645 --> 00:53:40,240 Và bạn sẽ cố gắng so sánh một con trỏ đến một số nguyên. 1021 00:53:40,240 --> 00:53:42,515 Và các máy tính không sẽ thích điều đó. 1022 00:53:42,515 --> 00:53:45,630 Vâng, chính xác. 1023 00:53:45,630 --> 00:53:46,540 Mát. 1024 00:53:46,540 --> 00:53:47,525 Tất cả mọi người tốt? 1025 00:53:47,525 --> 00:53:55,770 1026 00:53:55,770 --> 00:53:59,770 >> Và thứ hai, chúng ta sẽ đi hơn một chức năng gọi là strstr. 1027 00:53:59,770 --> 00:54:02,020 Không phải lo lắng nếu các chức năng là khó hiểu bạn. 1028 00:54:02,020 --> 00:54:03,750 Họ đang khó hiểu cho tôi. 1029 00:54:03,750 --> 00:54:07,250 Như vậy, các bạn có thể đã thấy, họ tất cả âm thanh khá giống nhau. 1030 00:54:07,250 --> 00:54:10,400 Chỉ cần bất cứ khi nào bạn đang nhầm lẫn, kéo lên thư viện string.h. 1031 00:54:10,400 --> 00:54:13,290 Và các bạn có thể sắp xếp thông qua đó một người trong đó. 1032 00:54:13,290 --> 00:54:18,910 >> Vì vậy, strstr, tất cả điều đó không được tìm kiếm một chuỗi cho một chuỗi khác cả. 1033 00:54:18,910 --> 00:54:21,980 Vì vậy, nơi strchr chỉ tìm kiếm cho một nhân vật duy nhất, 1034 00:54:21,980 --> 00:54:24,090 tìm kiếm strstr cho toàn bộ một chuỗi. 1035 00:54:24,090 --> 00:54:30,440 Vì vậy, tôi muốn nhìn vào, tôi không biết, Hi, tôi tên là Andi. 1036 00:54:30,440 --> 00:54:32,490 Và tên người bạn tốt nhất của tôi cũng là Andi. 1037 00:54:32,490 --> 00:54:37,180 >> Nếu tôi muốn tìm kiếm này câu cho toàn bộ lời của Andi, 1038 00:54:37,180 --> 00:54:39,930 kim của tôi sẽ là bất cứ điều gì bạn đang tìm kiếm. 1039 00:54:39,930 --> 00:54:43,440 Và đống cỏ khô của bạn là bất cứ điều gì bạn đang tìm kiếm nó trong. 1040 00:54:43,440 --> 00:54:47,050 Vì vậy, nếu bạn đang tìm kiếm một từ cụ thể trong một câu, 1041 00:54:47,050 --> 00:54:48,800 từ đó là có được cây kim của bạn. 1042 00:54:48,800 --> 00:54:51,397 Và sau đó câu tự là có được đống cỏ khô của bạn. 1043 00:54:51,397 --> 00:54:53,230 Và do đó, nó chỉ tìm kiếm sự xuất hiện đầu tiên 1044 00:54:53,230 --> 00:54:55,063 của chuỗi kim trong chuỗi đống cỏ khô. 1045 00:54:55,063 --> 00:54:57,140 Nó trả về con trỏ đến sự xuất hiện đầu tiên. 1046 00:54:57,140 --> 00:55:00,510 Ngoại trừ, hãy nhớ trong trường hợp này, đó là xuất hiện đầu tiên của toàn bộ chuỗi 1047 00:55:00,510 --> 00:55:02,510 mà bạn đang tìm kiếm cho, không chỉ là một nhân vật. 1048 00:55:02,510 --> 00:55:04,676 >> Và do đó, đây là gần như điều tương tự như chức năng 1049 00:55:04,676 --> 00:55:09,100 chúng ta chỉ cần làm, chỉ với thêm một chút đặc hiệu. 1050 00:55:09,100 --> 00:55:12,730 Bởi vì bạn đang tìm kiếm nhiều hơn chỉ là một ký tự. 1051 00:55:12,730 --> 00:55:16,310 Và việc sử dụng là chính xác giống nhau như một trong đó chúng ta chỉ cần làm. 1052 00:55:16,310 --> 00:55:18,070 Mọi người đều OK với điều này? 1053 00:55:18,070 --> 00:55:20,250 ĐƯỢC. 1054 00:55:20,250 --> 00:55:23,560 >> Cuối cùng chúng ta sẽ đi hơn là strrchr, mà không phải là 1055 00:55:23,560 --> 00:55:26,320 nhầm lẫn với strstr hoặc với strchr. 1056 00:55:26,320 --> 00:55:27,890 strrchr có r thêm trong đó. 1057 00:55:27,890 --> 00:55:29,140 Hãy cẩn thận khi bạn đang gõ. 1058 00:55:29,140 --> 00:55:33,851 Bạn có thể tìm thấy chính mình trong đó một r thêm hoặc không bao gồm một r, 1059 00:55:33,851 --> 00:55:35,850 và sau đó chức năng của bạn là đã không đi làm việc. 1060 00:55:35,850 --> 00:55:37,183 Và bạn sẽ bị nhầm lẫn. 1061 00:55:37,183 --> 00:55:40,150 Hãy cẩn thận rằng bạn đang đánh vần tất cả các chức năng bên phải. 1062 00:55:40,150 --> 00:55:43,770 >> Vì vậy strrchr là chính xác cùng một điều như strchr 1063 00:55:43,770 --> 00:55:47,480 ngoại trừ nó tìm kiếm không phải là lần đầu tiên sự xuất hiện của một nhân vật cụ thể, 1064 00:55:47,480 --> 00:55:49,350 nhưng thay vì xuất hiện cuối cùng. 1065 00:55:49,350 --> 00:55:52,800 Và như vậy, trong ý nghĩa đó, nó gần như chính xác như nhau. 1066 00:55:52,800 --> 00:55:54,620 Nhưng thay vì di chuyển chuyển tiếp trong một chuỗi, 1067 00:55:54,620 --> 00:55:57,230 bạn sẽ được di chuyển ngược trong một chuỗi. 1068 00:55:57,230 --> 00:56:00,510 Chính xác điều tương tự, bạn chỉ tìm kiếm theo một thứ tự khác nhau. 1069 00:56:00,510 --> 00:56:04,690 >> Và vì vậy đây có thể là siêu, siêu hữu ích cho tra cứu của bạn 1070 00:56:04,690 --> 00:56:07,490 chức năng, người đầu tiên chức năng trên pset của bạn. 1071 00:56:07,490 --> 00:56:12,710 Hãy giả vờ rằng chúng tôi cần phải viết một Hàm void mở rộng, trong đó chúng tôi 1072 00:56:12,710 --> 00:56:17,850 vượt qua một hằng số char * Tên tập tin, chỉ là một chuỗi, một tên tập tin, 1073 00:56:17,850 --> 00:56:21,370 mà mất trong đó tên và in ra các phần mở rộng của tập tin đó. 1074 00:56:21,370 --> 00:56:26,520 Vì vậy, ví dụ, nếu tôi được vượt qua trong chuỗi các pset7.zip, 1075 00:56:26,520 --> 00:56:30,004 nó sẽ in ra chỉ phần mở rộng, đó là .zip. 1076 00:56:30,004 --> 00:56:31,920 Và điều này sẽ làm việc cho bất kỳ loại phần mở rộng, 1077 00:56:31,920 --> 00:56:38,290 .docx cho Word hoặc .pdf cho một PDF file hoặc .html cho một tập tin HTML. 1078 00:56:38,290 --> 00:56:40,425 Khá nhiều, viết chức năng mà có thể làm điều đó. 1079 00:56:40,425 --> 00:56:42,300 Tôi đang thực sự đi vào chuyển sang IDE. 1080 00:56:42,300 --> 00:56:54,560 1081 00:56:54,560 --> 00:56:56,740 Nó không phải là load-- có chúng tôi đi. 1082 00:56:56,740 --> 00:57:00,990 >> Vì vậy, tất cả những gì đã làm được ở đây là tạo ra một char *, một chuỗi đầu tiên, 1083 00:57:00,990 --> 00:57:01,930 gọi pset7.zip. 1084 00:57:01,930 --> 00:57:04,530 Tôi sẽ để phóng to. 1085 00:57:04,530 --> 00:57:08,520 Tôi đã tạo ra một chuỗi thứ hai gọi finalpaper.docx. 1086 00:57:08,520 --> 00:57:12,649 Và viết cho tôi một chức năng mà khi gọi là sẽ chỉ in ra 1087 00:57:12,649 --> 00:57:13,690 các phần mở rộng tên tập tin. 1088 00:57:13,690 --> 00:57:16,702 1089 00:57:16,702 --> 00:57:19,660 Có thể mất một vài phút để suy nghĩ về làm thế nào bạn đang đi để làm điều này. 1090 00:57:19,660 --> 00:57:22,510 Hơi khó khăn hơn so với lần trước, 1091 00:57:22,510 --> 00:57:24,770 nhưng việc sử dụng gần như là chính xác như nhau. 1092 00:57:24,770 --> 00:57:29,670 1093 00:57:29,670 --> 00:57:30,170 Yeah. 1094 00:57:30,170 --> 00:57:37,540 Vì vậy, viết một chức năng gọi là phần mở rộng rằng, nếu tôi cung cấp cho bạn tên của một tập tin, 1095 00:57:37,540 --> 00:57:41,340 nếu tôi được là để cung cấp cho bạn pset7.zip-- tôi muốn bạn in ra chỉ là .zip. 1096 00:57:41,340 --> 00:57:45,040 1097 00:57:45,040 --> 00:57:49,890 Nếu tôi cho bạn thích finalpaper.docx, chỉ cần in ra .docx, 1098 00:57:49,890 --> 00:57:51,538 chỉ là phần mở rộng của tập tin bất cứ điều gì. 1099 00:57:51,538 --> 00:59:03,720 1100 00:59:03,720 --> 00:59:07,790 >> Điều này thực sự chỉ có hai dòng mã. 1101 00:59:07,790 --> 00:59:10,692 Vì vậy, thử xem nếu bạn có thể có thể làm điều đó trong đó. 1102 00:59:10,692 --> 00:59:12,400 Trên thực tế, nó chỉ có một dòng mã. 1103 00:59:12,400 --> 00:59:14,074 Nhưng hai dòng là tiêu chuẩn có thể nhiều hơn. 1104 00:59:14,074 --> 00:59:20,408 1105 00:59:20,408 --> 00:59:22,574 Chức năng gì chúng ta có thể sẽ muốn gọi? 1106 00:59:22,574 --> 00:59:25,286 1107 00:59:25,286 --> 00:59:26,260 >> Đung strrchr. 1108 00:59:26,260 --> 00:59:27,343 >> Andi PENG: strrchr, phải. 1109 00:59:27,343 --> 00:59:29,570 Bởi vì chúng tôi đang tìm kiếm từ bên phải trái. 1110 00:59:29,570 --> 00:59:32,107 1111 00:59:32,107 --> 00:59:33,940 Tôi đã không cung cấp cho các bạn một ví dụ như thế này, 1112 00:59:33,940 --> 00:59:38,870 nhưng nếu tôi đưa cho bạn một ví dụ như www.apple.com và tôi chỉ muốn 1113 00:59:38,870 --> 00:59:43,005 các năm, nó muốn được một ví dụ về nơi bạn muốn gọi các ví dụ cuối cùng 1114 00:59:43,005 --> 00:59:44,630 của thời kỳ này và không phải là đầu tiên, phải không? 1115 00:59:44,630 --> 00:59:47,470 Nếu bạn là strchr cuộc gọi, nó sẽ đã đưa cho bạn những apple.com. 1116 00:59:47,470 --> 00:59:49,966 >> Nếu bạn gọi strrchr, nó sẽ cho bạn những .com. 1117 00:59:49,966 --> 00:59:53,062 Và vì vậy hãy cẩn thận mà trên đó ways-- trong ví dụ của tôi, 1118 00:59:53,062 --> 00:59:55,520 bạn có thể có thể có thể có chỉ được viết bằng cách sử dụng strchr, 1119 00:59:55,520 --> 00:59:57,130 vì chỉ có một dấu chấm. 1120 00:59:57,130 --> 00:59:59,790 Nhưng trong trường hợp khác, mà có thể không phải là trường hợp. 1121 00:59:59,790 --> 01:00:04,960 Và do đó, luôn cố gắng thiết kế code của bạn tốt, vì vậy that-- yeah? 1122 01:00:04,960 --> 01:00:07,365 >> Đung Vì vậy, trong Ví dụ bạn vừa nói, 1123 01:00:07,365 --> 01:00:11,760 khi bạn strrchr nó sẽ cung cấp cho bạn năm hoặc có thể đến? 1124 01:00:11,760 --> 01:00:13,960 >> Andi PENG: Nó sẽ cung cấp cho bạn các năm. 1125 01:00:13,960 --> 01:00:14,794 >> Đung OK. 1126 01:00:14,794 --> 01:00:15,460 Andi PENG: Yeah. 1127 01:00:15,460 --> 01:00:18,090 1128 01:00:18,090 --> 01:00:19,744 Nó trỏ đến nơi mà nó tìm thấy nó. 1129 01:00:19,744 --> 01:00:20,244 Yeah. 1130 01:00:20,244 --> 01:00:24,120 1131 01:00:24,120 --> 01:00:25,188 30 giây có thể? 1132 01:00:25,188 --> 01:00:25,688 Yeah. 1133 01:00:25,688 --> 01:00:56,640 1134 01:00:56,640 --> 01:00:58,500 Mọi người đều tốt hoặc thời gian có thể nhiều hơn một chút? 1135 01:00:58,500 --> 01:01:01,057 1136 01:01:01,057 --> 01:01:01,640 Giơ tay? 1137 01:01:01,640 --> 01:01:02,320 Hiển thị của người đứng đầu? 1138 01:01:02,320 --> 01:01:04,801 1139 01:01:04,801 --> 01:01:05,300 Mát. 1140 01:01:05,300 --> 01:01:07,924 Bất cứ ai cũng muốn để cho tôi đầu tiên dòng mã cho chương trình này? 1141 01:01:07,924 --> 01:01:11,861 1142 01:01:11,861 --> 01:01:12,777 Đung [không nghe được]. 1143 01:01:12,777 --> 01:01:16,190 1144 01:01:16,190 --> 01:01:20,160 >> Andi PENG: Vì vậy, trước hết, hãy thể phá vỡ này xuống. 1145 01:01:20,160 --> 01:01:24,370 Vì vậy, các kiểu trả về của strrchr là gì? 1146 01:01:24,370 --> 01:01:26,150 Hãy quay trở lại. 1147 01:01:26,150 --> 01:01:29,015 strrchr, kiểu trả về là gì? 1148 01:01:29,015 --> 01:01:29,640 Đung Char * 1149 01:01:29,640 --> 01:01:31,270 Andi PENG: Đó là một char *, phải không? 1150 01:01:31,270 --> 01:01:35,760 Điều đó có nghĩa rằng bạn có thể sẽ muốn tạo một char * để loại 1151 01:01:35,760 --> 01:01:40,400 cửa hàng bất cứ khi nào nó trở lại, phải không? 1152 01:01:40,400 --> 01:01:43,200 Bởi vì nếu bạn gọi các strrchr chức năng, 1153 01:01:43,200 --> 01:01:47,030 nó sẽ cung cấp cho bạn một con trỏ đến bất cứ nơi nào nó thấy rằng thời gian qua, 1154 01:01:47,030 --> 01:01:47,580 bên phải? 1155 01:01:47,580 --> 01:01:49,913 >> Nhưng bạn sẽ muốn lưu trữ một nơi nào đó, phải không? 1156 01:01:49,913 --> 01:01:52,612 Và do đó, làm thế nào để chúng ta viết mã này vào chương trình của chúng tôi? 1157 01:01:52,612 --> 01:01:54,320 Đung Bạn làm cho các char * [Không nghe thấy]. 1158 01:01:54,320 --> 01:01:55,240 Andi PENG: Yep. 1159 01:01:55,240 --> 01:01:57,120 Đung [không nghe được]. 1160 01:01:57,120 --> 01:01:58,000 Andi PENG: strrchr. 1161 01:01:58,000 --> 01:01:58,390 Yeah. 1162 01:01:58,390 --> 01:01:59,306 Oh, bỏ lỡ một r đó. 1163 01:01:59,306 --> 01:02:02,877 Đung tên File [không nghe được]. 1164 01:02:02,877 --> 01:02:03,376 Nó là gì? 1165 01:02:03,376 --> 01:02:04,420 Oh, Nó chỉ là. 1166 01:02:04,420 --> 01:02:04,940 >> Andi Peng: Oh, nó chỉ là. 1167 01:02:04,940 --> 01:02:05,610 Yup, xin lỗi. 1168 01:02:05,610 --> 01:02:06,330 Lỗi của tôi. 1169 01:02:06,330 --> 01:02:08,370 Ví dụ không phù hợp. 1170 01:02:08,370 --> 01:02:12,130 >> Đung Và sau đó rải rác. 1171 01:02:12,130 --> 01:02:13,970 >> Andi PENG: Yup. 1172 01:02:13,970 --> 01:02:16,570 Hãy cẩn thận khi bạn kẻ are-- đây, hãy để tôi phóng to. 1173 01:02:16,570 --> 01:02:22,355 1174 01:02:22,355 --> 01:02:24,400 Hiện chúng tôi đi. 1175 01:02:24,400 --> 01:02:26,770 Hãy cẩn thận khi bạn kẻ đang gõ, đặc biệt là khi 1176 01:02:26,770 --> 01:02:27,920 bạn đang làm chỉ là một char. 1177 01:02:27,920 --> 01:02:32,480 Nó thực sự dễ dàng để vô tình chỉ làm dấu ngoặc kép chứ không phải là duy nhất. 1178 01:02:32,480 --> 01:02:35,212 >> Rằng sẽ không làm việc. 1179 01:02:35,212 --> 01:02:36,670 Trình biên dịch của bạn sẽ phàn nàn. 1180 01:02:36,670 --> 01:02:38,790 Và chức năng của bạn là chỉ là sẽ không chạy. 1181 01:02:38,790 --> 01:02:40,540 Và vì vậy hãy cẩn thận khi bạn đang làm việc 1182 01:02:40,540 --> 01:02:42,622 với ký tự mà nó là một dấu nháy đơn. 1183 01:02:42,622 --> 01:02:44,830 Và do đó, dòng này của Mã có ý nghĩa với tất cả mọi người? 1184 01:02:44,830 --> 01:02:46,810 Chúng tôi đang tạo ra một con trỏ char *. 1185 01:02:46,810 --> 01:02:50,310 Vì lợi nhuận strrchr một cái gì đó của kiểu con trỏ. 1186 01:02:50,310 --> 01:02:53,440 >> Và như vậy chúng ta sẽ gọi strchr trên s, đó là các chuỗi, các tập tin 1187 01:02:53,440 --> 01:02:55,140 tên, rằng chúng ta đang đi trong. 1188 01:02:55,140 --> 01:02:59,750 Và chúng tôi đang tìm kiếm cuối cùng thể hiện của một khoảng thời gian, đó là 1189 01:02:59,750 --> 01:03:02,200 chỉ báo giá duy nhất chấm báo duy nhất. 1190 01:03:02,200 --> 01:03:02,700 Yeah. 1191 01:03:02,700 --> 01:03:05,180 >> Đung Khi chúng ta sử dụng dấu ngoặc kép và khi nào chúng ta sử dụng dấu ngoặc đơn? 1192 01:03:05,180 --> 01:03:05,320 >> Andi PENG: Yeah. 1193 01:03:05,320 --> 01:03:07,180 Vì vậy, đôi dấu ngoặc kép là luôn luôn được sử dụng khi bạn 1194 01:03:07,180 --> 01:03:10,120 có một chuỗi nhiều hơn chỉ là một. 1195 01:03:10,120 --> 01:03:13,070 Vì vậy, nếu bạn đang làm strstr, đó là một trong những mà bạn 1196 01:03:13,070 --> 01:03:16,320 tìm kiếm một chuỗi cho chuỗi, bạn sẽ vượt qua nó trong dấu ngoặc kép. 1197 01:03:16,320 --> 01:03:18,070 Nhưng bất cứ lúc nào nó chỉ một nhân vật duy nhất, 1198 01:03:18,070 --> 01:03:19,870 bạn muốn làm một dấu nháy đơn. 1199 01:03:19,870 --> 01:03:22,880 >> Đó là một điều tốt để giữ trong tâm trí. 1200 01:03:22,880 --> 01:03:25,864 Vì vậy, bây giờ chúng ta có của chúng tôi con trỏ, chúng ta làm gì với nó? 1201 01:03:25,864 --> 01:03:27,780 Tôi hỏi các bạn để in nó ra, phải không? 1202 01:03:27,780 --> 01:03:30,940 Vì vậy, [nghe được], bạn muốn cung cấp cho tôi những dòng mã? 1203 01:03:30,940 --> 01:03:31,780 >> Đung printf-- 1204 01:03:31,780 --> 01:03:32,446 >> Andi PENG: Yeah. 1205 01:03:32,446 --> 01:03:35,344 1206 01:03:35,344 --> 01:03:36,843 Đung --Bạn cần một giữ chỗ. 1207 01:03:36,843 --> 01:03:37,340 Andi PENG: Yup. 1208 01:03:37,340 --> 01:03:38,334 Đung In giữ chỗ. 1209 01:03:38,334 --> 01:03:40,322 Tôi không biết những gì nơi giữ là nhưng điểm đến nó. 1210 01:03:40,322 --> 01:03:40,819 >> ĐƯỢC. 1211 01:03:40,819 --> 01:03:42,027 Hãy bỏ qua cho bây giờ sau đó. 1212 01:03:42,027 --> 01:03:44,556 Đung Và sau đó comma-- 1213 01:03:44,556 --> 01:03:45,720 >> Andi PENG: Pointer, phải không? 1214 01:03:45,720 --> 01:03:47,970 >> Đung Pointer, yup. 1215 01:03:47,970 --> 01:03:51,140 >> Andi PENG: Vì vậy, loại một câu hỏi trick, đã làm với con trỏ và chuỗi 1216 01:03:51,140 --> 01:03:53,130 mà chúng tôi đã loại nói về đã. 1217 01:03:53,130 --> 01:03:57,766 Những loại giữ chỗ chúng ta làm cần cho một con trỏ cho một char *? 1218 01:03:57,766 --> 01:03:59,574 >> Đung [không nghe được]. 1219 01:03:59,574 --> 01:04:00,240 Andi PENG: Yeah. 1220 01:04:00,240 --> 01:04:02,522 Nó dễ dàng hơn bạn nghĩ rằng nó là. 1221 01:04:02,522 --> 01:04:03,230 Đung String? 1222 01:04:03,230 --> 01:04:04,730 Andi PENG: Nó chỉ là một chuỗi, chính xác. 1223 01:04:04,730 --> 01:04:06,595 Bởi vì nhớ chuỗi không thực sự tồn tại. 1224 01:04:06,595 --> 01:04:09,430 Một char * là chính xác giống như là một chuỗi. 1225 01:04:09,430 --> 01:04:14,461 Và thật ra điều này s là gì nên đã được sử dụng tất cả cùng. 1226 01:04:14,461 --> 01:04:14,960 ĐƯỢC. 1227 01:04:14,960 --> 01:04:17,810 >> Hãy xem, nếu chúng ta có thể thử chạy này. 1228 01:04:17,810 --> 01:04:19,450 Hãy làm một phần mở rộng thực hiện. 1229 01:04:19,450 --> 01:04:22,710 1230 01:04:22,710 --> 01:04:23,396 Mát. 1231 01:04:23,396 --> 01:04:28,830 Các bạn thấy thế nào tôi thông qua tại psset7.zip và finalpaper.docx, 1232 01:04:28,830 --> 01:04:32,500 và nó chỉ in ra các .zip và .docx? 1233 01:04:32,500 --> 01:04:34,150 Có lý? 1234 01:04:34,150 --> 01:04:36,660 >> OK Vì vậy, tôi nghĩ rằng trong cái nhìn của bạn lên chức năng trong pset của bạn 1235 01:04:36,660 --> 01:04:41,050 sẽ được hỏi nếu chuỗi có một kết thúc có hậu nhất định, 1236 01:04:41,050 --> 01:04:42,800 bạn có để cung cấp cho một mã số lỗi nhất định. 1237 01:04:42,800 --> 01:04:44,820 Và vì vậy đây sẽ là khá khủng khiếp. 1238 01:04:44,820 --> 01:04:47,350 Bởi vì nếu bạn có thể hình ra những phần mở rộng là, 1239 01:04:47,350 --> 01:04:49,810 sau đó bạn có thể so sánh rằng mở rộng để xem nó có phù hợp lên 1240 01:04:49,810 --> 01:04:51,251 với một phần mở rộng nhất định. 1241 01:04:51,251 --> 01:04:53,250 Và sau đó bạn có thể trở lại một thông báo lỗi, phải không? 1242 01:04:53,250 --> 01:04:53,860 Yeah. 1243 01:04:53,860 --> 01:04:55,370 >> Đung Vì vậy, chúng tôi không có thêm 1 hoặc bất cứ điều gì? 1244 01:04:55,370 --> 01:04:56,530 Con trỏ sẽ đi đến the-- 1245 01:04:56,530 --> 01:04:56,660 >> Andi PENG: Nope. 1246 01:04:56,660 --> 01:04:57,530 >> Đung --point sau nó. 1247 01:04:57,530 --> 01:04:58,196 >> Andi PENG: Yeah. 1248 01:04:58,196 --> 01:05:00,650 Nó chỉ chính xác để nơi xảy ra được. 1249 01:05:00,650 --> 01:05:04,010 Vì vậy, ví dụ ở đây, chúng tôi tìm kiếm cho giai đoạn này. 1250 01:05:04,010 --> 01:05:06,597 Vì vậy, nó sẽ quay trở lại một con trỏ đến giai đoạn này. 1251 01:05:06,597 --> 01:05:08,930 Và sau đó nó sẽ in ra bắt đầu từ giai đoạn này. 1252 01:05:08,930 --> 01:05:10,260 >> Vì vậy, bạn không cần phải thêm 1. 1253 01:05:10,260 --> 01:05:15,000 Mặc dù, nó hoàn toàn tốt để, nếu bạn đã từng không chắc chắn, để chỉ loại 1254 01:05:15,000 --> 01:05:16,070 các kiểm tra nó ra cho mình. 1255 01:05:16,070 --> 01:05:17,590 Xây dựng một chương trình mẫu. 1256 01:05:17,590 --> 01:05:20,240 Kiểm tra nó ra khỏi chính mình và nhìn thấy nơi nó đang in. 1257 01:05:20,240 --> 01:05:23,380 Đó cũng không phải là một cách xấu để làm điều đó. 1258 01:05:23,380 --> 01:05:26,040 >> Mát. 1259 01:05:26,040 --> 01:05:28,880 Và đó là khá nhiều tất cả Tôi đã cho các bạn ngày hôm nay. 1260 01:05:28,880 --> 01:05:31,440 1261 01:05:31,440 --> 01:05:33,300 Chúng tôi đã làm rất nhiều pset thứ ngày hôm nay. 1262 01:05:33,300 --> 01:05:35,720 Vì vậy, khi nghi ngờ, như Tôi nói, luôn luôn nhìn lên 1263 01:05:35,720 --> 01:05:37,620 thư viện string.h cho pset này. 1264 01:05:37,620 --> 01:05:40,370 Có đi có rất nhiều chức năng trong đó có thể hữu ích. 1265 01:05:40,370 --> 01:05:41,300 Một số có thể không có ích. 1266 01:05:41,300 --> 01:05:42,133 Tôi thực sự không biết. 1267 01:05:42,133 --> 01:05:44,370 Wade thông qua nó, có một bó toàn bộ chúng. 1268 01:05:44,370 --> 01:05:49,100 strstr, strchr, strrchr là siêu, siêu hữu ích, cũng như 1269 01:05:49,100 --> 01:05:52,080 các strcpys và strcasecmps rằng chúng ta đã sử dụng. 1270 01:05:52,080 --> 01:05:56,510 >> Nó chỉ là rất nhiều phiền xung quanh với dây, xác định nếu chúng bằng nhau, 1271 01:05:56,510 --> 01:05:59,960 nhận ra công cụ của chuỗi, và là có thể mở các tập tin một cách chính xác. 1272 01:05:59,960 --> 01:06:02,252 Đó là rất nhiều các tập tin I / O. pset thực sự không phải là xấu. 1273 01:06:02,252 --> 01:06:04,210 Bạn sẽ mất một nhìn vào nó, tải về nó, 1274 01:06:04,210 --> 01:06:05,590 và nhìn thấy một bó toàn bộ các mã. 1275 01:06:05,590 --> 01:06:09,220 Không có lo lắng, mã bạn thực sự viết không phải là xấu cả. 1276 01:06:09,220 --> 01:06:12,870 Nếu ai đã có vấn đề với họ máy chủ, đến gặp tôi sau khi phần. 1277 01:06:12,870 --> 01:06:16,040 >> Xin lỗi một lần nữa cho không đưa kẹo cho Halloween. 1278 01:06:16,040 --> 01:06:18,790 Tôi không biết những gì đang xảy ra với tôi. 1279 01:06:18,790 --> 01:06:20,800 Nhưng chúng ta sẽ có gấp đôi kẹo thời gian tiếp theo. 1280 01:06:20,800 --> 01:06:25,620 Và may mắn trong pset của bạn trong tuần này. 1281 01:06:25,620 --> 01:06:27,170 Yup. 1282 01:06:27,170 --> 01:06:28,722