1 00:00:00,000 --> 00:00:02,742 >> [MUSIC CHƠI] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> Andi Peng: Đây là CS50, và chào mừng bạn đến tuần thứ hai của phần. 4 00:00:09,090 --> 00:00:11,740 Điều này là thực sự trong khi tuần hai của class-- chúng ta thực sự, 5 00:00:11,740 --> 00:00:14,550 tuần đầu tiên chúng tôi đã có phần. 6 00:00:14,550 --> 00:00:18,897 Giơ tay, bao nhiêu trong số tất cả các bạn đến siêu phần tuần trước? 7 00:00:18,897 --> 00:00:19,480 OK, đó là OK. 8 00:00:19,480 --> 00:00:20,020 Vậy là được rồi. 9 00:00:20,020 --> 00:00:23,110 Có bao nhiêu bạn đã xem siêu phần tuần trước? 10 00:00:23,110 --> 00:00:23,610 ĐƯỢC. 11 00:00:23,610 --> 00:00:25,702 Và các bạn đã làm tốt về vấn đề thiết lập một trong những? 12 00:00:25,702 --> 00:00:28,660 Vì vậy, tôi sẽ mang nó mà chúng ta có một đám trẻ thực sự thông minh 13 00:00:28,660 --> 00:00:32,310 trong lớp học này và mọi chuyện sẽ tốt đẹp. 14 00:00:32,310 --> 00:00:33,180 ĐƯỢC. 15 00:00:33,180 --> 00:00:33,980 Vì vậy first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Đầu tiên, chúng ta chỉ cần đi một thời gian ngắn đi qua các chương trình nghị sự cho ngày hôm nay. 18 00:00:41,090 --> 00:00:42,700 Chúng tôi sẽ nói về logistics nhiên. 19 00:00:42,700 --> 00:00:45,480 Rất nhiều bạn có thể có câu hỏi liên quan 20 00:00:45,480 --> 00:00:46,920 cách điều hành trong khóa học này. 21 00:00:46,920 --> 00:00:47,897 Chúng tôi sẽ trả lời chúng. 22 00:00:47,897 --> 00:00:49,730 Chúng tôi sẽ để một thời gian ngắn đi qua các vòng trong trường hợp 23 00:00:49,730 --> 00:00:51,410 bất kỳ của các bạn đã bỏ lỡ siêu phần. 24 00:00:51,410 --> 00:00:53,240 Chúng tôi sẽ nói về bản đồ ASCII. 25 00:00:53,240 --> 00:00:56,180 Chúng ta sẽ nói về mảng, chức năng, các đối số dòng lệnh. 26 00:00:56,180 --> 00:01:00,210 Và cuối cùng, những gì bạn guys có lẽ tất cả thực sự muốn được ở đây để tìm hiểu về, 27 00:01:00,210 --> 00:01:01,270 là pset2 của bạn. 28 00:01:01,270 --> 00:01:04,209 Chúng tôi sẽ có một số thủ thuật tốt đẹp và lời khuyên cho việc làm thế nào để làm điều đó. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> ĐƯỢC. 31 00:01:08,690 --> 00:01:11,450 Ngoài ra, thứ hai, chúng tôi có rất nhiều kẹo ở đây. 32 00:01:11,450 --> 00:01:13,583 Những ai yêu thích kẹo, chỉ đi lên đây. 33 00:01:13,583 --> 00:01:14,430 Lấy một số. 34 00:01:14,430 --> 00:01:15,100 Tôi có một bó. 35 00:01:15,100 --> 00:01:16,390 Chúng tôi có một tấn trong văn phòng. 36 00:01:16,390 --> 00:01:18,230 Tôi không thực sự muốn ăn kẹo cả ngày. 37 00:01:18,230 --> 00:01:20,300 Các bạn nên ăn tất cả các bánh kẹo, bởi vì tôi đã mang nó ở đây cho các bạn. 38 00:01:20,300 --> 00:01:20,990 Chỉ cần ăn kẹo. 39 00:01:20,990 --> 00:01:24,080 Sẽ có kẹo mỗi phần. 40 00:01:24,080 --> 00:01:25,330 >> Vì vậy, lần đầu tiên, tôi là ai? 41 00:01:25,330 --> 00:01:27,080 Tên tôi là Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Tôi là người đứng đầu của TA CS50 đây tại Yale. 43 00:01:30,270 --> 00:01:32,540 Và ngoài đó, tôi cũng sẽ be-- 44 00:01:32,540 --> 00:01:35,600 nếu có ai sẽ like-- chạy của bạn buddy, vai để khóc. 45 00:01:35,600 --> 00:01:39,140 Nếu đêm hôm trước do của pset của bạn, bạn không có ý tưởng những gì đang xảy ra, 46 00:01:39,140 --> 00:01:40,080 đánh tôi lên. 47 00:01:40,080 --> 00:01:42,770 Chúng tôi sẽ động lòng với nhau, vân vân. 48 00:01:42,770 --> 00:01:46,100 Chỉ biết rằng tôi ở đây như là một tài nguyên cho bạn như tiền tuyến 49 00:01:46,100 --> 00:01:51,830 trong việc giúp các bạn tìm ra cách để giải quyết các vấn đề trong CS50 và xa hơn nữa. 50 00:01:51,830 --> 00:01:54,590 >> Email của tôi là andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Tôi cũng sẽ gửi ra một cá nhân gửi email với số điện thoại của tôi trong nó 52 00:01:58,390 --> 00:02:01,860 do đó không phải tất cả mọi người trên Internet có thể nhìn thấy số điện thoại của tôi. 53 00:02:01,860 --> 00:02:03,640 Hãy gọi cho tôi bất cứ lúc nào. 54 00:02:03,640 --> 00:02:07,510 Nghiêm túc, điện thoại của tôi là thường gắn liền với bàn tay của tôi. 55 00:02:07,510 --> 00:02:10,240 Tôi không thể trả lời trong vòng một vài phút. 56 00:02:10,240 --> 00:02:11,984 Tôi không thể trả lời trong vòng một vài giờ. 57 00:02:11,984 --> 00:02:14,400 Nhưng tôi có thể đảm bảo với bạn, nếu bạn e-mail cho tôi, nếu bạn gọi cho tôi, 58 00:02:14,400 --> 00:02:17,404 văn bản tôi, tôi sẽ trả lời trong vòng 24 giờ. 59 00:02:17,404 --> 00:02:19,820 Thông thường, tôi sẽ trả lời trước rằng, bởi vì tôi hiểu 60 00:02:19,820 --> 00:02:23,900 mà mọi người có một số vấn đề, và bạn muốn câu trả lời của bạn 61 00:02:23,900 --> 00:02:26,110 để được trả lời rất nhanh. 62 00:02:26,110 --> 00:02:28,945 >> Tuy nhiên, nếu bạn gọi tôi 30 phút trước 63 00:02:28,945 --> 00:02:31,570 rằng mảnh đó là do thứ năm night-- được như thế, Andi, giúp tôi, 64 00:02:31,570 --> 00:02:35,380 Tôi đã không thể cung cấp cho tôi started-- bạn vai mà khóc trên. 65 00:02:35,380 --> 00:02:41,520 Nhưng nó có thể là thời gian để suy nghĩ về làm thế nào để không làm mà thời gian tới. 66 00:02:41,520 --> 00:02:44,040 ĐƯỢC. 67 00:02:44,040 --> 00:02:44,944 Rất tiếc. 68 00:02:44,944 --> 00:02:45,850 Làm thế nào để tôi quay trở lại? 69 00:02:45,850 --> 00:02:48,140 Hiện chúng tôi đi. 70 00:02:48,140 --> 00:02:52,310 >> Vì vậy, trong quá trình này, chúng ta có một tấn hỗ trợ cho tất cả mọi người. 71 00:02:52,310 --> 00:02:54,640 Ngoài chỉ phần ở đây, mà bạn 72 00:02:54,640 --> 00:02:57,000 mỗi tuần nhận được để chi tiêu 90 phút tuyệt vời với tôi, 73 00:02:57,000 --> 00:02:58,330 chúng tôi cũng có giờ làm việc. 74 00:02:58,330 --> 00:03:01,021 Bao nhiêu người trong các bạn đã có đã đến giờ làm việc để được giúp đỡ? 75 00:03:01,021 --> 00:03:01,520 Thật tuyệt. 76 00:03:01,520 --> 00:03:05,700 Đó là thực sự tốt để xem, bởi vì chúng tôi có đội ngũ hơn 45 HTKT và CA 77 00:03:05,700 --> 00:03:11,780 đào tạo cho khóa học này mà đang ở đây giúp đỡ các bạn với psets của bạn. 78 00:03:11,780 --> 00:03:14,580 >> Thứ Hai họ đang tổ chức tại TEAL lớp học trong 17 Hill House ở đây 79 00:03:14,580 --> 00:03:15,350 tại Yale. 80 00:03:15,350 --> 00:03:17,349 Thứ Ba và Thứ Năm, họ đang tổ chức tại commons. 81 00:03:17,349 --> 00:03:20,010 8:00-11:00 khá nhiều mỗi ngày trong tuần. 82 00:03:20,010 --> 00:03:21,620 Đi vào, đi ra. 83 00:03:21,620 --> 00:03:24,030 Bất kỳ vấn đề, không problem-- chỉ đi vào trong, 84 00:03:24,030 --> 00:03:26,650 và sau đó chúng tôi sẽ giúp bạn ra ngoài với điều đó. 85 00:03:26,650 --> 00:03:31,640 >> Thứ hai, ngoài giờ hành chính và các phần, chúng tôi cũng có quần short. 86 00:03:31,640 --> 00:03:35,930 Có ai đã từng nhìn thấy một vài sự quần short hoặc walkthroughs trong video 87 00:03:35,930 --> 00:03:36,750 trên trang web? 88 00:03:36,750 --> 00:03:37,250 ĐƯỢC. 89 00:03:37,250 --> 00:03:39,510 Vì vậy, chúng tôi thực sự, thực sự hữu ích. 90 00:03:39,510 --> 00:03:42,470 Đáng yêu của chúng tôi sản xuất Harvard đội bên kia, trên trường mà 91 00:03:42,470 --> 00:03:47,910 lên phía bắc, họ đã quay phim và sản xuất những đoạn phim hương lạ thường. 92 00:03:47,910 --> 00:03:52,290 >> Họ sẽ đưa bạn qua từng bước làm thế nào để đi về việc giải quyết một vấn đề. 93 00:03:52,290 --> 00:03:56,340 Thông thường, nếu bạn đang nhầm lẫn về một khái niệm đơn giản, một khái niệm số ít, 94 00:03:56,340 --> 00:03:59,780 hãy xem, bởi vì chúng tôi có thể có một đoạn ngắn trên nó ở đâu đó trên trang web của chúng tôi. 95 00:03:59,780 --> 00:04:03,800 Và nó thường là một nguồn lực lớn để tìm kiếm khi bạn đầu tiên 96 00:04:03,800 --> 00:04:06,510 bị mất về cách xử lý một vấn đề. 97 00:04:06,510 --> 00:04:09,750 >> Thứ ba, chúng tôi cũng có study50 và reference50. 98 00:04:09,750 --> 00:04:15,650 Vì vậy, nghiên cứu trên 50 trang web chỉ là một liên kết. 99 00:04:15,650 --> 00:04:21,500 Đó là, tôi nghĩ rằng, study.cs50.net hay đại loại thế. 100 00:04:21,500 --> 00:04:22,860 Chỉ cần Google nó. 101 00:04:22,860 --> 00:04:24,229 Chúng tôi có rất nhiều slide chuẩn bị. 102 00:04:24,229 --> 00:04:26,770 Chúng tôi có rất nhiều quần short và điều walkthroughs-- tất cả biên soạn 103 00:04:26,770 --> 00:04:31,070 rất đẹp và gọn gàng cho các bạn tất cả duyệt qua, nhìn thấy bất cứ khái niệm 104 00:04:31,070 --> 00:04:32,860 mà bạn đang nhầm lẫn về. 105 00:04:32,860 --> 00:04:35,920 Có lẽ nó muốn được bảo hiểm ở đó trong study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- tương tự. 107 00:04:37,640 --> 00:04:41,510 Chúng tôi có rất nhiều ghi chú khác nhau sẵn sàng để xử lý của bạn. 108 00:04:41,510 --> 00:04:44,450 Và cuối cùng, chúng tôi có những gì gọi là CS50 Thảo luận, 109 00:04:44,450 --> 00:04:48,082 một diễn đàn trong đó, nếu trong đêm trước bạn đang làm vấn đề của mình, nói, 110 00:04:48,082 --> 00:04:49,880 bạn có một câu hỏi. 111 00:04:49,880 --> 00:04:52,340 Đăng nhập để CS50 Thảo luận. 112 00:04:52,340 --> 00:04:53,190 Đăng câu hỏi của bạn. 113 00:04:53,190 --> 00:04:55,820 Và sau đó một trong những hundreds-- có lẽ, thousands-- của đồng nghiệp 114 00:04:55,820 --> 00:04:57,960 lấy lớp này trực tuyến sẽ đăng nhập. 115 00:04:57,960 --> 00:05:01,182 Và có lẽ ai đó có thể nhận được Câu trả lời của bạn trước khi một lon TA. 116 00:05:01,182 --> 00:05:03,390 Đó là về cơ bản chỉ là một diễn đàn trực tuyến mà chúng tôi có thể tất cả 117 00:05:03,390 --> 00:05:04,556 sử dụng để thảo luận về các vấn đề của chúng tôi. 118 00:05:04,556 --> 00:05:06,483 Đó là mát mẻ. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> ĐƯỢC. 121 00:05:11,550 --> 00:05:13,220 Vì vậy, vấn đề đặt ra. 122 00:05:13,220 --> 00:05:17,840 Chúng tôi về ngay dày của vấn đề đặt hai. 123 00:05:17,840 --> 00:05:20,570 Rất nhiều người trong chúng ta đã có vật lộn với vấn đề thiết lập một. 124 00:05:20,570 --> 00:05:24,460 Chúng ta đã biết rằng có lẽ chờ đợi cho đêm cuối cùng để làm pset của bạn 125 00:05:24,460 --> 00:05:28,170 không phải là điều thông minh nhất để làm trong CS50. 126 00:05:28,170 --> 00:05:32,380 >> Mẹo và thủ thuật cơ bản cho thành công được đọc toàn bộ spec. 127 00:05:32,380 --> 00:05:36,270 Có bao nhiêu bạn có đã đọc spec cho pset 2? 128 00:05:36,270 --> 00:05:36,770 ĐƯỢC. 129 00:05:36,770 --> 00:05:39,840 Đó là một số lượng rắn. 130 00:05:39,840 --> 00:05:43,210 Tôi biết các bạn đã có thể nhận ra bây giờ các thông số kỹ thuật thực sự lâu dài. 131 00:05:43,210 --> 00:05:45,700 Họ thực sự, thực sự dài. 132 00:05:45,700 --> 00:05:49,630 >> Thật sự rất khó để đọc tất cả các dòng đó cẩn thận từng chữ. 133 00:05:49,630 --> 00:05:52,780 Bạn muốn chỉ cần đọc lướt đến nơi nó cho bạn biết phải làm gì đó. 134 00:05:52,780 --> 00:05:54,459 Tôi có thể đảm bảo với bạn, không làm điều đó. 135 00:05:54,459 --> 00:05:56,750 Nếu bạn làm điều đó, có lẽ bạn đang sẽ bỏ lỡ một nơi nào đó 136 00:05:56,750 --> 00:05:58,458 nơi nó nói với bạn làm thế nào để bắt đầu một vấn đề 137 00:05:58,458 --> 00:06:01,140 hoặc nó cho bạn biết những gì để tên vấn đề của bạn hoặc nó cho bạn biết, 138 00:06:01,140 --> 00:06:03,720 đây có lẽ là cách tốt nhất để bắt đầu làm vấn đề của bạn. 139 00:06:03,720 --> 00:06:05,050 Và sau đó bạn sẽ bị mất. 140 00:06:05,050 --> 00:06:08,219 >> Khi bạn cố gắng đọc của bạn spec nửa chừng, 141 00:06:08,219 --> 00:06:10,510 rất nhiều sự quan trọng information-- trong đó bạn không 142 00:06:10,510 --> 00:06:12,260 đi để có thể thực sự truy cập. 143 00:06:12,260 --> 00:06:13,219 Vì vậy, đọc toàn bộ spec. 144 00:06:13,219 --> 00:06:15,468 Hãy thử để đọc toàn bộ thông số trước khi bạn đến phần, 145 00:06:15,468 --> 00:06:17,360 bởi vì sau đó, khi chúng ta nói về pset, 146 00:06:17,360 --> 00:06:21,070 tất cả chúng ta có thể có một ý tưởng về những gì đang xảy ra. 147 00:06:21,070 --> 00:06:25,169 >> Thứ hai, đây là một khái niệm rằng tôi sẽ muốn tham khảo 148 00:06:25,169 --> 00:06:26,710 rất nhiều trong suốt học kỳ khóa học. 149 00:06:26,710 --> 00:06:30,070 Nhưng về cơ bản, chúng tôi đáp ứng một nửa, phải không? 150 00:06:30,070 --> 00:06:33,970 Me, như hỗ trợ kỹ thuật và Jason của bạn như khóa học quản lý và Scaz như giáo sư của bạn 151 00:06:33,970 --> 00:06:37,120 và David là giáo sư của bạn và tất cả các các hỗ trợ kỹ thuật đáng yêu khác trong khóa học này, 152 00:06:37,120 --> 00:06:39,830 trợ lý trong course-- này chúng tôi sẽ làm tốt nhất của chúng tôi 153 00:06:39,830 --> 00:06:42,965 để đảm bảo rằng bạn được thiết lập lên để thành công trong khóa học này. 154 00:06:42,965 --> 00:06:43,840 Chúng tôi sẽ giữ phần. 155 00:06:43,840 --> 00:06:44,870 Chúng tôi sẽ tổ chức giờ hành chính. 156 00:06:44,870 --> 00:06:47,087 Chúng tôi sẽ trả lời điện thoại của bạn cuộc gọi, trả lời e-mail của bạn, 157 00:06:47,087 --> 00:06:49,670 làm tất cả mọi thứ có thể để đảm chắc chắn câu hỏi của bạn được trả lời. 158 00:06:49,670 --> 00:06:51,460 >> Tuy nhiên, giúp chúng tôi hiểu quá. 159 00:06:51,460 --> 00:06:52,450 Gặp chúng tôi nửa chừng. 160 00:06:52,450 --> 00:06:56,040 Nếu bạn đến giờ văn phòng không có đi vào phần, không 161 00:06:56,040 --> 00:07:02,060 khi nhìn thấy các bài giảng, không có ý tưởng những gì đang xảy ra, được như thế, giúp tôi. 162 00:07:02,060 --> 00:07:04,350 Tôi có được như thế, tốt, tôi xin lỗi. 163 00:07:04,350 --> 00:07:06,410 Nó có thể là thời gian để cho vay vai mà khóc trên, 164 00:07:06,410 --> 00:07:08,959 bởi vì tôi không chắc chắn những gì tôi có thể làm gì để giúp đỡ bạn 165 00:07:08,959 --> 00:07:12,000 nếu bạn không cố gắng để ít nhất là giúp đỡ cho mình một chút trong đầu. 166 00:07:12,000 --> 00:07:12,910 Gặp chúng tôi nửa chừng. 167 00:07:12,910 --> 00:07:15,020 Bạn biết đấy, xin vui lòng đến chuẩn bị sẵn sàng để trả lời và nhận được 168 00:07:15,020 --> 00:07:16,353 sẵn sàng tham gia vào các vật liệu. 169 00:07:16,353 --> 00:07:19,342 Nó làm cho mọi thứ nhiều dễ dàng hơn cho tất cả mọi người tham gia. 170 00:07:19,342 --> 00:07:22,970 Vâng, đó là khá nhiều đó. 171 00:07:22,970 --> 00:07:23,720 >> Chấm điểm. 172 00:07:23,720 --> 00:07:29,250 Vì vậy, trên các giáo trình, nó đẹp chuyên sâu liên quan đến cách chúng ta lớp. 173 00:07:29,250 --> 00:07:32,440 Nhưng về cơ bản, sự phân hủy ở đây là 50% của lớp của bạn 174 00:07:32,440 --> 00:07:34,530 sẽ là psets, mà là đáng yêu, bởi vì đó là 175 00:07:34,530 --> 00:07:37,400 nơi bạn đang chi tiêu rộng lớn Phần lớn thời gian khóa học của bạn trên. 176 00:07:37,400 --> 00:07:39,854 Trắc nghiệm 40%, và của bạn dự án cuối cùng sẽ là 10%. 177 00:07:39,854 --> 00:07:42,520 Sẽ có hai câu đố trong suốt các khóa học của học kỳ. 178 00:07:42,520 --> 00:07:47,050 Tôi nghĩ rằng thời gian và ngày là cũng được liệt kê trên các giáo trình. 179 00:07:47,050 --> 00:07:49,210 >> Cách mà chúng tôi sẽ được phân loại psets của bạn 180 00:07:49,210 --> 00:07:53,930 là chúng ta có bốn cơ bản giá trị mà chúng ta gán cho mỗi lớp. 181 00:07:53,930 --> 00:07:57,250 Chúng tôi có một giá trị của phạm vi, đúng đắn, thiết kế, và phong cách. 182 00:07:57,250 --> 00:08:01,530 Vì vậy, như bạn thấy, đó là loại của chúng tôi Công thức tính psets. 183 00:08:01,530 --> 00:08:03,640 Ba chúng tôi cung cấp nhiều nhất trọng lượng để tính đúng đắn, 184 00:08:03,640 --> 00:08:06,140 bởi vì rõ ràng HLV của mình nên thử nghiệm cho các trường hợp 185 00:08:06,140 --> 00:08:08,480 mà chúng tôi muốn nó để kiểm tra. 186 00:08:08,480 --> 00:08:11,000 >> Các bạn có tất cả check50 lúc xử lý của bạn. 187 00:08:11,000 --> 00:08:13,730 Đó là một chức năng rất hữu ích rằng các bạn có thể tất cả 188 00:08:13,730 --> 00:08:17,560 tải lên mã của bạn đến các máy chủ của chúng tôi, nơi chúng tôi sẽ kiểm tra xem nó cho bạn. 189 00:08:17,560 --> 00:08:20,800 Và bạn đã nhìn thấy những khuôn mặt frowny, khuôn mặt cười. 190 00:08:20,800 --> 00:08:22,119 Họ thực sự, thực sự hữu ích. 191 00:08:22,119 --> 00:08:23,910 Xin vui lòng không được học sinh đó muốn cố gắng 192 00:08:23,910 --> 00:08:26,230 hardcode trong tất cả các câu trả lời cho họ. 193 00:08:26,230 --> 00:08:30,050 Tôi đã chắc chắn nhìn thấy một pset nơi ai đó đã nhìn thấy tất cả các giá trị của check50 194 00:08:30,050 --> 00:08:33,429 và họ chỉ cứng mã hoá in-- nếu số này, in ra số này. 195 00:08:33,429 --> 00:08:35,080 Nếu con số đó, in ra số đó. 196 00:08:35,080 --> 00:08:36,090 Đừng làm điều đó. 197 00:08:36,090 --> 00:08:39,360 >> Mặc dù kỹ thuật check50 là đúng, 198 00:08:39,360 --> 00:08:41,809 theo cách của bạn trong việc giải quyết vấn đề là không chính xác. 199 00:08:41,809 --> 00:08:45,770 Vì vậy, chỉ cần sử dụng một cách tiết kiệm check50. 200 00:08:45,770 --> 00:08:48,497 Nhưng cũng chắc chắn rằng bạn hiểu làm thế nào nó hoạt động, 201 00:08:48,497 --> 00:08:50,580 các chương trình đang hoạt động ngoài check50, 202 00:08:50,580 --> 00:08:53,120 bởi vì chúng tôi không thể kiểm tra tất cả trường hợp có thể có của check50. 203 00:08:53,120 --> 00:08:55,440 Chúng tôi sẽ thử nghiệm một số trong số họ. 204 00:08:55,440 --> 00:09:00,390 >> Thiết kế cơ bản là, làm thế nào cũng được thiết kế là mã của bạn? 205 00:09:00,390 --> 00:09:04,150 Nếu bạn là copy-paste nhiều dòng mã nhiều, rất nhiều lần. 206 00:09:04,150 --> 00:09:06,960 Có lẽ bạn không có khá thiết kế tốt nhất trong mã của bạn. 207 00:09:06,960 --> 00:09:09,470 Có lẽ đó là thời gian để thêm vòng lặp đó. 208 00:09:09,470 --> 00:09:12,090 Về cơ bản, đây nó chỉ là tất cả về cố gắng để làm mã của bạn, 209 00:09:12,090 --> 00:09:17,010 cố gắng để viết mã của bạn một cách hiệu quả nhất có thể để chương trình của bạn chạy 210 00:09:17,010 --> 00:09:19,630 càng nhanh càng tốt. 211 00:09:19,630 --> 00:09:20,996 >> Cuối cùng, chúng tôi có phong cách. 212 00:09:20,996 --> 00:09:24,360 Vì vậy, phong cách là loại một tùy tiện, chủ quan hạn. 213 00:09:24,360 --> 00:09:27,470 Tôi biết chúng tôi chính thức có một hướng dẫn phong cách cho 50 CS50, 214 00:09:27,470 --> 00:09:30,050 nơi nó nói với bạn, oh, bạn cần phải có một không gian ở đây. 215 00:09:30,050 --> 00:09:32,220 Bạn nên loại định dạng mã của bạn theo cách này. 216 00:09:32,220 --> 00:09:34,070 Bạn nên đặt tên thứ theo cách này. 217 00:09:34,070 --> 00:09:38,180 >> Tôi không thực sự quan tâm, mỗi se, làm thế nào bạn chọn kiểu mã của bạn, 218 00:09:38,180 --> 00:09:39,840 chỉ miễn là bạn ở phù hợp. 219 00:09:39,840 --> 00:09:43,732 Ví dụ, nếu bạn muốn lại một khoảng trống sau bốn của bạn 220 00:09:43,732 --> 00:09:45,690 trước bốn vòng lặp của bạn, chỉ làm điều đó mỗi lần. 221 00:09:45,690 --> 00:09:46,523 Không loại làm điều đó. 222 00:09:46,523 --> 00:09:47,730 Đừng làm điều đó lần khác. 223 00:09:47,730 --> 00:09:51,046 Nếu bạn muốn giữ xoăn niềng răng không gian một cách nào đó, 224 00:09:51,046 --> 00:09:52,170 chỉ luôn làm theo cách đó. 225 00:09:52,170 --> 00:09:54,628 Không loại làm điều đó một nơi nào đó ở đây và ở một nơi nào đó không có. 226 00:09:54,628 --> 00:09:57,010 Khi chúng tôi đang phân loại, nó thực sự khó khăn 227 00:09:57,010 --> 00:09:59,420 nếu tôi không có ý tưởng như thế nào bạn đang định dạng mã của bạn, 228 00:09:59,420 --> 00:10:02,064 điều này là lập dị và ra khỏi chỗ. 229 00:10:02,064 --> 00:10:04,980 Nếu bạn chỉ cần giữ cho nó phù hợp, đó là dễ dàng hơn nhiều cho tôi như lớn hơn 230 00:10:04,980 --> 00:10:06,310 để có thể đọc code của bạn. 231 00:10:06,310 --> 00:10:09,393 Nó dễ dàng hơn nhiều cho bạn như là một sinh viên để có thể xem xét thông qua mã của bạn 232 00:10:09,393 --> 00:10:11,720 và xem những gì đang xảy ra với nó giảm do tại sao có vấn đề. 233 00:10:11,720 --> 00:10:15,740 Phong cách là một trong những điều đơn giản nhất các bạn có thể làm để có được đầy đủ điểm số. 234 00:10:15,740 --> 00:10:18,770 Về cơ bản, nếu bạn chỉ quan tâm, nếu bạn phải thường năm phút của sự chú ý 235 00:10:18,770 --> 00:10:22,760 mã của bạn mỗi tuần, bạn nên được nhận điểm phong cách đầy đủ. 236 00:10:22,760 --> 00:10:26,020 >> Cuối cùng, chúng ta có những gì được gọi là số nhân của phạm vi. 237 00:10:26,020 --> 00:10:28,890 Scope-- Tôi biết đó là một lớn từ, đặc biệt là trong các lớp học này. 238 00:10:28,890 --> 00:10:31,030 Nhưng phạm vi, tất cả những phương tiện là bạn đang cố gắng 239 00:10:31,030 --> 00:10:33,670 các psets đến hết khả năng của bạn. 240 00:10:33,670 --> 00:10:37,180 Nếu bạn lần lượt trong ba ra bốn vấn đề của mình 241 00:10:37,180 --> 00:10:39,460 và thậm chí không cố gắng cuối cùng, có lẽ bạn đang 242 00:10:39,460 --> 00:10:41,630 sẽ mất một số điểm trên phạm vi. 243 00:10:41,630 --> 00:10:44,560 >> Ngay cả khi bạn chỉ cần bắt đầu các vấn đề, làm tốt nhất của bạn để đi qua nó. 244 00:10:44,560 --> 00:10:47,691 Thậm chí nếu nó không hoạt động, biến nó trong, vì rằng lãm và chứng minh 245 00:10:47,691 --> 00:10:50,190 để chúng tôi rằng bạn đang cố gắng, mà bạn đã cố gắng thiết lập các vấn đề 246 00:10:50,190 --> 00:10:51,430 đến hết khả năng của bạn. 247 00:10:51,430 --> 00:10:53,800 Và sau đó chúng tôi có thể cung cấp cho bạn điểm đầy đủ cho phạm vi. 248 00:10:53,800 --> 00:10:58,715 >> Phạm vi cũng rất quan trọng vì khi chúng ta nói về sự sụt giảm số pset thấp nhất. 249 00:10:58,715 --> 00:11:02,010 Vì vậy, trong quá trình của các học kỳ, các bạn có chín psets. 250 00:11:02,010 --> 00:11:05,340 Và chúng ta sẽ thực sự được thả số điểm thấp nhất trong số chín, 251 00:11:05,340 --> 00:11:07,670 nhưng chỉ nếu bạn có đầy đủ điểm phạm vi. 252 00:11:07,670 --> 00:11:11,120 >> Vì vậy, nếu bạn bật trong một pset không đầy đủ, không may, chúng tôi không thể thả một mà, 253 00:11:11,120 --> 00:11:13,540 bởi vì phạm vi của bạn điểm không được hoàn thành. 254 00:11:13,540 --> 00:11:16,570 Vì vậy, ngay cả khi bạn có tuần khủng khiếp nơi bạn đang chết dần và bạn đang bị bệnh 255 00:11:16,570 --> 00:11:20,040 hoặc con chó của bạn qua đời, con mèo của bạn chết, và bạn đang quá tải với các bài tập về nhà, 256 00:11:20,040 --> 00:11:21,074 chỉ cố các pset. 257 00:11:21,074 --> 00:11:22,490 Làm điều đó với hết khả năng của bạn. 258 00:11:22,490 --> 00:11:23,840 Nếu nó không hoạt động, nó không quan trọng. 259 00:11:23,840 --> 00:11:24,506 Chỉ cần tắt nó trong. 260 00:11:24,506 --> 00:11:26,590 Ít nhất chúng tôi có thể cung cấp cho bạn chỉ cho nỗ lực. 261 00:11:26,590 --> 00:11:28,510 >> A cho nỗ lực trong lớp học này. 262 00:11:28,510 --> 00:11:30,170 Ít nhất là giảm số điểm thấp nhất cho nỗ lực. 263 00:11:30,170 --> 00:11:32,354 Vì vậy, yeah. 264 00:11:32,354 --> 00:11:33,270 Đó là khá nhiều đó. 265 00:11:33,270 --> 00:11:36,521 Có ai có câu hỏi như vậy đến nay trên lớp như thế nào chúng tôi trong lớp học? 266 00:11:36,521 --> 00:11:37,187 Hoặc bất kỳ trong những? 267 00:11:37,187 --> 00:11:41,220 Bất kỳ của những cái far-- phần, giờ làm việc? 268 00:11:41,220 --> 00:11:41,720 Mát. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 ĐƯỢC. 271 00:11:47,800 --> 00:11:51,260 >> Vì vậy, đây là một chủ đề mà không có ai thực sự thích nói về. 272 00:11:51,260 --> 00:11:53,084 Tôi thực sự không muốn nói về nó. 273 00:11:53,084 --> 00:11:55,250 Các bạn không thực sự muốn nghe tôi nói về nó. 274 00:11:55,250 --> 00:11:57,690 Nhưng thật không may, tất cả chúng ta phải nói về nó. 275 00:11:57,690 --> 00:12:00,110 David đã dành 20 phút một giảng nói về nó. 276 00:12:00,110 --> 00:12:02,580 Và đó là chủ đề trung thực trong học tập. 277 00:12:02,580 --> 00:12:08,110 >> Vì vậy, tất cả chúng ta ở đây đã có thể bằng văn bản một đôi tiểu luận trong sự nghiệp Yale của chúng tôi. 278 00:12:08,110 --> 00:12:11,800 Chúng tôi đã có thể nhận được một cuộc nói chuyện mà chúng tôi đã được cho biết không đạo nhạc bài tiểu luận của chúng tôi, 279 00:12:11,800 --> 00:12:13,940 vì công việc mà không phải là của chúng ta. 280 00:12:13,940 --> 00:12:18,109 Trong khoa học máy tính, chúng ta có cùng một loại khái niệm. 281 00:12:18,109 --> 00:12:20,150 Tất cả các công việc mà bạn gửi, tất cả các mã mà bạn viết 282 00:12:20,150 --> 00:12:21,900 nên là mã mà bạn đã viết. 283 00:12:21,900 --> 00:12:24,280 Không nên mã mà bạn đã sao chép từ một nơi khác. 284 00:12:24,280 --> 00:12:26,777 Không nên mã bạn đã googled và ngồi phịch ở 285 00:12:26,777 --> 00:12:28,360 và bạn không thực sự biết nếu nó hoạt động. 286 00:12:28,360 --> 00:12:32,440 Bạn chắc hẳn sẽ có một cảm giác những gì nó làm, nhưng không thực sự. 287 00:12:32,440 --> 00:12:36,562 Khi nghi ngờ, về cơ bản, nó chỉ là hợp lý. 288 00:12:36,562 --> 00:12:38,520 Trên giáo trình của chúng tôi, chúng tôi có một danh sách toàn bộ những thứ 289 00:12:38,520 --> 00:12:40,560 chúng ta thấy là hợp lý so với không hợp lý. 290 00:12:40,560 --> 00:12:43,820 >> Ví dụ, hợp lý là bạn và bạn của bạn 291 00:12:43,820 --> 00:12:47,360 thảo luận về những cách tốt nhất để đi khoảng cách hợp lý việc giải quyết một vấn đề. 292 00:12:47,360 --> 00:12:48,910 Đó là khá hợp lý. 293 00:12:48,910 --> 00:12:53,244 Điều gì sẽ không được hợp lý là nếu bạn kẻ đã cùng nhau, gõ mã cùng, 294 00:12:53,244 --> 00:12:54,410 và lại cùng mã. 295 00:12:54,410 --> 00:12:56,302 Đó là chưa hợp lý. 296 00:12:56,302 --> 00:12:57,510 Cùng một điều, loại của một bài tiểu luận. 297 00:12:57,510 --> 00:12:59,290 Nếu bạn muốn thảo luận với bạn bè của bạn, hey, 298 00:12:59,290 --> 00:13:00,220 đây là những gì tôi muốn viết về. 299 00:13:00,220 --> 00:13:02,500 Đây là các bước tôi muốn mất để viết về nó, tuyệt vời. 300 00:13:02,500 --> 00:13:03,208 Thật tuyệt vời. 301 00:13:03,208 --> 00:13:04,790 Hãy hợp tác với nhau. 302 00:13:04,790 --> 00:13:06,540 Nếu các bạn bắt đầu viết những điều tương tự, 303 00:13:06,540 --> 00:13:10,020 biến trong các bài tiểu luận tương tự, đó là ít OK. 304 00:13:10,020 --> 00:13:13,200 Vì vậy, khi nghi ngờ, chỉ cần không làm điều đó. 305 00:13:13,200 --> 00:13:16,940 >> Dưới đây, chúng tôi trong CS50, chúng tôi có các kịch bản chạy mà để tự động để kiểm tra 306 00:13:16,940 --> 00:13:21,740 không chỉ tính đúng đắn của mã của bạn, nhưng cũng có những nét độc đáo của mã của bạn. 307 00:13:21,740 --> 00:13:25,920 Vì vậy, xin vui lòng không đặt chúng ta vào vị trí vì phải tham khảo trường hợp của bạn để EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Xin vui lòng chỉ cho tất cả mọi người, chúng ta hãy chỉ làm cho một kinh nghiệm tuyệt vời. 309 00:13:31,110 --> 00:13:33,600 Mỗi người học tốt hơn, tất cả chúng ta sẽ hạnh phúc hơn, 310 00:13:33,600 --> 00:13:37,926 và chúng tôi đang thiết lập để thành công trong khóa học này. 311 00:13:37,926 --> 00:13:39,800 Cái gì đó rất độc đáo về lớp này 312 00:13:39,800 --> 00:13:42,660 mà tôi nghĩ rằng tất cả mọi người nên thực sự chú ý đến là chúng ta có 313 00:13:42,660 --> 00:13:44,930 những gì gọi là hối tiếc điều khoản trong chương trình học của chúng tôi. 314 00:13:44,930 --> 00:13:50,010 Vì vậy, về cơ bản, trong vòng 72 giờ, nếu bạn tin rằng bạn đã làm điều gì đó 315 00:13:50,010 --> 00:13:53,240 bạn không thực sự chắc chắn được thích hợp, hãy đến với chúng tôi. 316 00:13:53,240 --> 00:13:57,220 Chúng tôi hứa với bạn rằng trong vòng 72 giờ chúng tôi sẽ xử lý trường hợp bản thân 317 00:13:57,220 --> 00:13:59,820 mà không đề cập đến một cao hơn thẩm quyền trong chính quyền. 318 00:13:59,820 --> 00:14:03,100 >> Vì vậy, nếu bạn đến với tôi và nói, Andi, hey, tôi thật sự xin lỗi, 319 00:14:03,100 --> 00:14:07,620 nhưng tôi nghĩ rằng có một vài dòng trong tôi Mã đêm qua mà tôi loại googled, 320 00:14:07,620 --> 00:14:10,120 đã ra khỏi Stack Overflow, sao chép và dán, 321 00:14:10,120 --> 00:14:13,680 và tôi thực sự, thực sự xin lỗi về điều đó, cho tôi biết. 322 00:14:13,680 --> 00:14:16,900 Xin vui lòng không chỉ để cho nó mưng mủ và hy vọng rằng mình bắt nó. 323 00:14:16,900 --> 00:14:17,784 Chúng tôi sẽ bắt nó. 324 00:14:17,784 --> 00:14:18,450 Chỉ cần đến với tôi. 325 00:14:18,450 --> 00:14:20,520 Hãy cho tôi biết trong vòng 72 giờ. 326 00:14:20,520 --> 00:14:22,240 Chúng tôi sẽ tìm ra một giải pháp. 327 00:14:22,240 --> 00:14:26,679 Và chúng tôi hứa rằng chúng tôi sẽ không đề cập đến giám đốc đại học về cơ bản. 328 00:14:26,679 --> 00:14:29,220 Vì vậy, đó là lợi ích tốt nhất của bạn chỉ cần trung thực với tất cả mọi người 329 00:14:29,220 --> 00:14:31,720 tham gia vào khóa học. 330 00:14:31,720 --> 00:14:34,630 >> ĐƯỢC. 331 00:14:34,630 --> 00:14:35,240 ĐƯỢC. 332 00:14:35,240 --> 00:14:37,800 Vì vậy, bây giờ, nhanh chóng trước Tôi di chuyển trên, không ai 333 00:14:37,800 --> 00:14:42,670 có thắc mắc liên quan đến dịch vụ hậu cần các khóa học về cách chúng tôi đang đi để chạy, 334 00:14:42,670 --> 00:14:45,982 làm thế nào phần sẽ để chạy, bất kỳ điều đó? 335 00:14:45,982 --> 00:14:46,711 ĐƯỢC. 336 00:14:46,711 --> 00:14:47,210 Yeah. 337 00:14:47,210 --> 00:14:48,126 >> Đung [Không nghe thấy]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 Andi PENG: Yeah. 340 00:14:51,080 --> 00:14:54,850 Vì vậy quizzes-- bao nhiêu bạn trong phần thứ hai / thứ tư? 341 00:14:54,850 --> 00:14:56,700 Có bao nhiêu bạn đang ở trong Thứ Ba / Thứ Năm? 342 00:14:56,700 --> 00:14:58,550 OK, vì vậy đó là một tách rắn ở đây. 343 00:14:58,550 --> 00:15:00,900 Vì vậy, cách mà chúng ta chạy nó ở Yale là chúng ta rằng 344 00:15:00,900 --> 00:15:04,040 sẽ có hai riêng biệt quizzes-- một cho mỗi section-- đó 345 00:15:04,040 --> 00:15:06,160 sẽ được thực hiện trong lớp học. 346 00:15:06,160 --> 00:15:09,310 Tôi nghĩ rằng đó là tháng mười, cuối tháng mười, một cái gì đó như thế, như một tuần 347 00:15:09,310 --> 00:15:10,794 của các bài kiểm tra. 348 00:15:10,794 --> 00:15:11,960 Yeah, vì vậy chỉ cần đến lớp. 349 00:15:11,960 --> 00:15:13,920 Trên đó thứ hai hoặc thứ tư, bạn sẽ mất các bài kiểm tra. 350 00:15:13,920 --> 00:15:16,336 Trên đó thứ ba hoặc thứ năm, bạn sẽ có một bài kiểm tra khác nhau. 351 00:15:16,336 --> 00:15:18,570 Nhưng cùng một tài liệu sẽ được bảo hiểm. 352 00:15:18,570 --> 00:15:19,160 Yeah. 353 00:15:19,160 --> 00:15:20,660 Câu hỏi hay. 354 00:15:20,660 --> 00:15:21,160 Yeah. 355 00:15:21,160 --> 00:15:23,260 >> Đung chúng ta làm ở đâu đi kiểm tra các lớp của chúng tôi? 356 00:15:23,260 --> 00:15:23,926 >> Andi PENG: Yeah. 357 00:15:23,926 --> 00:15:28,420 Vì vậy, tôi sẽ được gửi ra một e-mail bất cứ điều gì mỗi tuần 358 00:15:28,420 --> 00:15:31,460 khi câu đố là graded-- hay, xin lỗi, khi psets được chấm điểm. 359 00:15:31,460 --> 00:15:34,120 Psets thường quay trong buổi trưa hoặc thứ sáu. 360 00:15:34,120 --> 00:15:37,540 Vì vậy, tôi hứa rằng tôi sẽ cố gắng để có được chúng trở lại với bạn 361 00:15:37,540 --> 00:15:40,000 bởi những buổi trưa của ngày thứ Sáu sau. 362 00:15:40,000 --> 00:15:44,950 >> Bất cứ khi nào tôi học lớp một pset, tôi sẽ gửi ra một thông báo trên sổ điểm 363 00:15:44,950 --> 00:15:47,070 mà cho bạn điểm số của bạn có thể được xem trực tuyến. 364 00:15:47,070 --> 00:15:52,022 Vì vậy, ngay trong tuần này, sau khi tôi hoàn thành phân loại psets tuần trước, 365 00:15:52,022 --> 00:15:54,230 các bạn sẽ nhận được một e-mail thông báo nói cho bạn, 366 00:15:54,230 --> 00:15:55,870 hey này là nơi bạn đi để xem điểm của bạn. 367 00:15:55,870 --> 00:15:57,680 Và bạn có thể thấy hàng phân tích về điểm số của bạn. 368 00:15:57,680 --> 00:15:58,555 Bạn có thể xem ý kiến. 369 00:15:58,555 --> 00:16:00,360 Oh, điều nhanh chóng cũng. 370 00:16:00,360 --> 00:16:03,060 Phần bình luận trong great Cuốn sách là nơi tôi sẽ có thể 371 00:16:03,060 --> 00:16:05,300 dành phần lớn thời gian của tôi chấm điểm. 372 00:16:05,300 --> 00:16:07,094 Vì vậy, một trong những điều đó là thực sự quan trọng khi 373 00:16:07,094 --> 00:16:09,010 các bạn đang xem điểm của bạn về psets của bạn 374 00:16:09,010 --> 00:16:11,400 không chỉ tìm kiếm tại các điểm vật lý 375 00:16:11,400 --> 00:16:14,630 nhưng cũng dành thời gian để thực sự đọc ý kiến ​​của tôi. 376 00:16:14,630 --> 00:16:17,820 >> Thường cung cấp cho bạn thông tin phản hồi vào cách bạn đang giải quyết một vấn đề. 377 00:16:17,820 --> 00:16:20,480 Nếu bạn cần làm một cái gì đó tốt hơn một chút, 378 00:16:20,480 --> 00:16:24,080 phê bình xây dựng thường là cho tốt nhất trong những phần ý kiến. 379 00:16:24,080 --> 00:16:26,950 Vì vậy, xin vui lòng, xin vui lòng, tôi sẽ để dành thời gian viết bình luận. 380 00:16:26,950 --> 00:16:30,440 Xin vui lòng, tôi thực sự sẽ đánh giá cao nó nếu các bạn sẽ đọc được những ý kiến. 381 00:16:30,440 --> 00:16:31,170 ĐƯỢC. 382 00:16:31,170 --> 00:16:34,150 Mát. 383 00:16:34,150 --> 00:16:34,680 >> Được rồi. 384 00:16:34,680 --> 00:16:40,680 Vì vậy, chúng ta sẽ bắt đầu nói chuyện và chỉ cần xem lại một cách nhanh chóng 385 00:16:40,680 --> 00:16:45,040 một số vật liệu từ tuần không chỉ như vậy chúng tôi 386 00:16:45,040 --> 00:16:48,760 trên trang bên phải cho bắt đầu từ vấn đề của tuần này. 387 00:16:48,760 --> 00:16:52,600 Vì vậy, các vòng lặp while là một trong ba loại của các vòng 388 00:16:52,600 --> 00:16:54,510 chúng ta đã thảo luận trước đó trong lớp này. 389 00:16:54,510 --> 00:16:57,060 >> Một vòng lặp trong khi về cơ bản được viết theo cú pháp 390 00:16:57,060 --> 00:17:00,666 ở đâu, khi một điều kiện nhất định, làm điều này nhiều lần, phải không? 391 00:17:00,666 --> 00:17:02,040 Hãy suy nghĩ về nó trong đồ họa này ở đây. 392 00:17:02,040 --> 00:17:04,780 Bạn sẽ bắt đầu tại một điểm nhất định trong mã của bạn. 393 00:17:04,780 --> 00:17:09,030 Bạn sẽ nhập các điều kiện vòng lặp if-- tôi không know-- x là ít hơn một. 394 00:17:09,030 --> 00:17:11,677 >> Nếu đó là sự thật, bạn sẽ để thực hiện thân vòng lặp. 395 00:17:11,677 --> 00:17:14,010 Và bạn sẽ tiếp tục làm đó một lần nữa, một lần nữa, một lần nữa, 396 00:17:14,010 --> 00:17:17,900 hơn và over-- đó là lý do nó là một loop-- đến khi tình trạng của bạn trở nên 397 00:17:17,900 --> 00:17:19,079 sai. 398 00:17:19,079 --> 00:17:22,140 Vì vậy, trong cách này, một vòng lặp trong khi là một trong những cách đơn giản 399 00:17:22,140 --> 00:17:25,619 phải viết bất kỳ loại điều kiện đó cần phải lặp lại hơn và hơn và hơn. 400 00:17:25,619 --> 00:17:28,109 Chỉ cần cẩn thận bất cứ khi nào bạn viết bất kỳ loại vòng lặp 401 00:17:28,109 --> 00:17:32,140 rằng bạn có một điều kiện xuất cảnh như cũng như một bản cập nhật để bất cứ điều gì 402 00:17:32,140 --> 00:17:36,714 là vì vậy mà vòng lặp của bạn không chỉ chạy hơn và hơn vô hạn. 403 00:17:36,714 --> 00:17:38,630 Trong mọi trường hợp, bạn sẽ để muốn chắc chắn 404 00:17:38,630 --> 00:17:42,670 rằng bạn đang thay đổi một số khía cạnh của mã của bạn hoặc ở cuối của vòng lặp 405 00:17:42,670 --> 00:17:46,680 chỉ để chắc chắn rằng bạn có một cách của tiến đến điều kiện 406 00:17:46,680 --> 00:17:48,400 rằng bạn muốn gặp để kết thúc. 407 00:17:48,400 --> 00:17:50,239 Điều đó có ý nghĩa với tất cả mọi người? 408 00:17:50,239 --> 00:17:52,530 Chúng tôi chỉ không muốn có bị cuốn vào vòng xoáy này nơi 409 00:17:52,530 --> 00:17:55,710 chúng tôi đi vòng quanh và không có cách nào để phá vỡ các vòng lặp. 410 00:17:55,710 --> 00:17:58,844 Và mỗi vòng lặp cơ bản có một cách để làm điều đó. 411 00:17:58,844 --> 00:17:59,344 ĐƯỢC. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Thứ hai, nhiều bạn trong psets Mario của bạn 414 00:18:06,060 --> 00:18:08,910 có lẽ đã phải sử dụng loại này của vòng lặp. 415 00:18:08,910 --> 00:18:11,802 Nó được gọi là một việc phải làm trong khi vòng lặp. 416 00:18:11,802 --> 00:18:14,510 Trước hết, bất cứ ai có thể cho tôi biết những gì khác biệt giữa một làm 417 00:18:14,510 --> 00:18:16,586 trong khi vòng lặp và vòng lặp while là? 418 00:18:16,586 --> 00:18:17,086 Yeah. 419 00:18:17,086 --> 00:18:21,030 >> Đung Việc làm trong khi vòng lặp chạy ở đầu tiên [Không nghe thấy]. 420 00:18:21,030 --> 00:18:22,120 >> Andi PENG: Yeah, chính xác. 421 00:18:22,120 --> 00:18:27,130 Vì vậy, một làm trong khi vòng lặp luôn luôn làm bất cứ điều gì là bên trong do, bên trong dấu ngoặc 422 00:18:27,130 --> 00:18:30,520 có và không điều kiện trước khi kiểm tra the-- xin lỗi, 423 00:18:30,520 --> 00:18:32,940 không mã mà trước kiểm tra các điều kiện. 424 00:18:32,940 --> 00:18:37,200 Và điều này đặc biệt có liên quan đến chúng tôi ở đây trong lớp này, vì hầu hết các lần 425 00:18:37,200 --> 00:18:41,450 chúng ta sẽ muốn nhắc người sử dụng cho một số loại đầu vào. 426 00:18:41,450 --> 00:18:43,520 Và sau đó, tùy thuộc vào các đầu vào mà họ cung cấp cho chúng tôi, 427 00:18:43,520 --> 00:18:46,150 sau đó chúng ta có thể đánh giá, oh, làm chúng ta cần phải nhắc lại họ không? 428 00:18:46,150 --> 00:18:49,930 >> Vì vậy, trong Mario, nếu người sử dụng đã cho bạn một chiều cao tiêu cực, ví dụ, 429 00:18:49,930 --> 00:18:52,990 bạn sẽ nhanh chóng đầu tiên và làm những gì ở bên trong. 430 00:18:52,990 --> 00:18:54,820 Sau đó bạn sẽ kiểm tra trong khi. 431 00:18:54,820 --> 00:18:57,570 Bạn biết đấy, là âm 1, là một số dương? 432 00:18:57,570 --> 00:19:00,680 Nếu không, tôi sẽ đi lại và lặp lại những việc cần làm và lặp lại 433 00:19:00,680 --> 00:19:03,950 và lặp lại và lặp lại cho đến khi họ cuối cùng là cung cấp cho bạn một số mà bạn thích, 434 00:19:03,950 --> 00:19:07,002 rằng tất cả chúng ta có thể sử dụng trong mã của chúng tôi. 435 00:19:07,002 --> 00:19:09,210 Nó khá quan trọng đối với về cơ bản bất kỳ người dùng nhập vào. 436 00:19:09,210 --> 00:19:11,760 Tôi có thể đảm bảo cho bạn bất kỳ thời gian trong một pset nơi 437 00:19:11,760 --> 00:19:15,070 chúng tôi yêu cầu bạn nhập bất kỳ loại mã, chúng tôi 438 00:19:15,070 --> 00:19:17,540 có thể sẽ cung cấp cho bạn một trường hợp thử nghiệm, trong đó chúng tôi 439 00:19:17,540 --> 00:19:21,200 sẽ cung cấp cho bạn một cái gì đó xấu đó là sẽ cố gắng để phá vỡ mã của bạn. 440 00:19:21,200 --> 00:19:25,044 >> Nếu chúng ta cố gắng để yêu cầu bạn một đầu vào số nguyên, chúng tôi chỉ có thể cung cấp cho bạn một chuỗi 441 00:19:25,044 --> 00:19:26,460 và xem làm thế nào bạn sẽ xử lý đó. 442 00:19:26,460 --> 00:19:30,610 Nếu chúng tôi yêu cầu bạn phải sử dụng một thời đại, chúng tôi có thể cung cấp cho bạn một số tiêu cực 443 00:19:30,610 --> 00:19:32,340 để xem làm thế nào bạn sẽ xử lý đó. 444 00:19:32,340 --> 00:19:37,260 Chỉ cần chắc chắn rằng các bạn đang thử nghiệm cho trường hợp mà bạn không có được tốt nhất 445 00:19:37,260 --> 00:19:38,590 đầu vào, chúng ta hãy chỉ nói. 446 00:19:38,590 --> 00:19:40,510 Và một việc phải làm trong khi vòng lặp thưòng tốt nhất 447 00:19:40,510 --> 00:19:45,260 cách để thiết kế mã của bạn để rằng nó đáp ứng phạm vi đó. 448 00:19:45,260 --> 00:19:45,760 ĐƯỢC. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> ĐƯỢC. 451 00:19:49,470 --> 00:19:53,270 Vì vậy, đây có lẽ là nhất vòng lặp phức tạp ra khỏi ba 452 00:19:53,270 --> 00:19:54,990 mà chúng ta đã xem xét cho đến nay. 453 00:19:54,990 --> 00:19:56,689 Và có vẻ như rất đáng sợ lúc đầu. 454 00:19:56,689 --> 00:19:59,730 Nhưng tôi đảm bảo với bạn, khi các bạn nhận được hang của làm thế nào để sử dụng một vòng lặp for, 455 00:19:59,730 --> 00:20:03,320 đó là một trong những điều hữu ích nhất, hầu hết các công cụ hữu ích trong kho vũ khí của bạn 456 00:20:03,320 --> 00:20:05,300 để di chuyển về phía trước trong lớp này. 457 00:20:05,300 --> 00:20:09,920 >> Vì vậy, ví dụ, trong Scratch, chúng tôi đã có khối rất đơn giản này 458 00:20:09,920 --> 00:20:13,180 mà chỉ nói lặp lại điều này nhất định Cụm từ số lần nhất định. 459 00:20:13,180 --> 00:20:16,260 Bằng cách này, SAJ-- đó là Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Chúng ta đôi khi ký email SAJ của chúng tôi. 461 00:20:18,740 --> 00:20:20,360 Nếu chúng ta nói SAJ, không bị nhầm lẫn. 462 00:20:20,360 --> 00:20:22,630 Đó là chỉ cho chúng tôi. 463 00:20:22,630 --> 00:20:28,600 >> Vì vậy, trong Scratch, chúng tôi đã có thể có một khối mà nói, lặp lại tôi yêu SAJ! 464 00:20:28,600 --> 00:20:29,430 10 lần. 465 00:20:29,430 --> 00:20:30,130 Rất đơn giản. 466 00:20:30,130 --> 00:20:32,302 Logic đằng sau đó là một rất, rất đơn giản, phải không? 467 00:20:32,302 --> 00:20:35,260 Tôi muốn đầu tiên đi qua đầu tiên thời gian và thấy rằng, lần thứ hai 468 00:20:35,260 --> 00:20:38,510 và thấy rằng, lần thứ ba, vv và như vậy, cho đến khi bạn đạt đến 10. 469 00:20:38,510 --> 00:20:41,960 >> Và cách chúng ta sẽ đại diện cho rằng trong code chỉ là thông qua một đơn giản cho vòng lặp. 470 00:20:41,960 --> 00:20:45,440 Vì vậy, cho, bạn sẽ phải khai báo biến của bạn ở đây, trong trường hợp này, 471 00:20:45,440 --> 00:20:46,349 với một int. 472 00:20:46,349 --> 00:20:47,390 Chúng tôi sẽ đặt tên nó tôi. 473 00:20:47,390 --> 00:20:49,500 Chúng ta sẽ khởi tạo nó để 0. 474 00:20:49,500 --> 00:20:52,490 Và phiên bản dừng là sẽ là i nhỏ hơn 10. 475 00:20:52,490 --> 00:20:54,622 Và các bản cập nhật sẽ là i ++. 476 00:20:54,622 --> 00:20:57,750 >> Và trong vòng lặp, nó sẽ để thực hiện cho đến khi cuối cùng nó 477 00:20:57,750 --> 00:21:01,490 hits cuối condition-- trong đó trường hợp, nó sẽ phá vỡ các vòng lặp. 478 00:21:01,490 --> 00:21:04,600 Có phải là thứ mà bạn kẻ đã tất cả các loại nhìn thấy trước 479 00:21:04,600 --> 00:21:07,270 và phải làm cho vấn đề của bạn thiết lập một. 480 00:21:07,270 --> 00:21:12,310 Có ai có bất kỳ câu hỏi về cho vòng ngay bây giờ? 481 00:21:12,310 --> 00:21:12,930 ĐƯỢC. 482 00:21:12,930 --> 00:21:13,430 Thật tuyệt. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> ĐƯỢC. 485 00:21:18,620 --> 00:21:22,270 Vì vậy, đối với những người bạn của những người có đọc spec pset cho tuần này 486 00:21:22,270 --> 00:21:27,690 biết rằng chúng ta sẽ phải sử dụng một cái gì đó gọi là ASCII và bảng mã ASCII. 487 00:21:27,690 --> 00:21:32,380 Vì vậy, David trong bài giảng đã đi qua một thời gian ngắn thế nào máy tính essentially-- tất cả mọi thứ 488 00:21:32,380 --> 00:21:35,410 được mã hóa trong một máy tính trong nhị phân, trong số không và những người thân. 489 00:21:35,410 --> 00:21:39,740 Và cách mà máy tính có thể để lưu trữ các giá trị khác nhau, thêm 490 00:21:39,740 --> 00:21:44,360 đến số không và những người là thông qua bản đồ những con số đại diện cho chữ số khác 491 00:21:44,360 --> 00:21:47,220 hoặc các ký tự cơ bản khác. 492 00:21:47,220 --> 00:21:49,810 >> Vì vậy, trong trường hợp này, một ASCII table-- tất cả nó 493 00:21:49,810 --> 00:21:53,600 là nhân vật bản đồ, hoặc ký tự, để các con số. 494 00:21:53,600 --> 00:21:57,385 Vì vậy, các tập tin mã nguồn trong computer-- nó thấy bạn, 495 00:21:57,385 --> 00:22:00,010 hey, một loạt các số không và những người thân, số không và những người thân, số không và những người thân. 496 00:22:00,010 --> 00:22:02,350 Đó là những gì được lưu trữ trong bộ nhớ thực tế của máy tính của bạn. 497 00:22:02,350 --> 00:22:04,750 >> Nhưng khi con người chúng ta muốn giao tiếp với máy tính, 498 00:22:04,750 --> 00:22:08,249 chúng tôi want-- nói, ví dụ, nếu tôi muốn các chữ hoa A, 499 00:22:08,249 --> 00:22:10,540 Tôi sẽ cần một số cách nói cho các máy tính, oh, 500 00:22:10,540 --> 00:22:16,300 khi tôi gõ chữ hoa A, tôi có ý nghĩa đại diện này trong hệ nhị phân. 501 00:22:16,300 --> 00:22:22,260 >> Và do đó, cách chúng tôi làm điều đó là ném một điều tùy tiện gọi là một bảng mã ASCII, 502 00:22:22,260 --> 00:22:25,020 nơi chúng tôi, như con người, như lập trình, một số thời gian trước đây, 503 00:22:25,020 --> 00:22:28,660 chúng tôi tự ý quyết định rằng chúng tôi đã đi để chỉ định các số 504 00:22:28,660 --> 00:22:30,960 giá trị cho những nhân vật này. 505 00:22:30,960 --> 00:22:32,720 >> Vì vậy, các bạn có thể google trực tuyến này. 506 00:22:32,720 --> 00:22:37,120 Tôi nghĩ rằng có một liên kết đến nó trong bạn pset-- chỉ là một bảng đồ ASCII, ASCII 507 00:22:37,120 --> 00:22:37,720 bàn. 508 00:22:37,720 --> 00:22:40,722 Nó chỉ dịch nhị phân số thành ký tự. 509 00:22:40,722 --> 00:22:42,930 Và nó sẽ là rất hữu ích cho bộ vấn đề của bạn 510 00:22:42,930 --> 00:22:45,470 bất cứ khi nào bạn muốn tính toán bất cứ điều gì hoặc nếu bạn 511 00:22:45,470 --> 00:22:47,880 muốn hiển thị số ký tự hoặc số nguyên 512 00:22:47,880 --> 00:22:50,327 hoặc thao tác một số ký tự. 513 00:22:50,327 --> 00:22:52,160 Nó sẽ là rất quan trọng là tất cả các bạn 514 00:22:52,160 --> 00:22:55,140 biết làm thế nào để điều hướng một bảng mã ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Vì vậy, ví dụ, các chữ hoa A được đại diện bởi số 65. 516 00:23:01,260 --> 00:23:04,207 Và chữ thường một được đại diện bởi 97. 517 00:23:04,207 --> 00:23:07,040 Vì vậy, điều quan trọng là phải biết rằng Sự khác biệt giữa hai giá trị 518 00:23:07,040 --> 00:23:08,320 là 32. 519 00:23:08,320 --> 00:23:13,210 Thông thường, nếu bạn cần để chuyển đổi từ một đến khác, sự khác biệt là 32. 520 00:23:13,210 --> 00:23:15,710 Và đừng lo lắng nếu bạn loại nhầm lẫn về điều này lần đầu tiên. 521 00:23:15,710 --> 00:23:20,230 Chúng tôi sẽ đi qua như thế nào, chúng tôi sẽ dụng này trong mã thực tế. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> ĐƯỢC. 524 00:23:26,380 --> 00:23:30,770 Vì vậy, đối với những người bạn với máy tính xách tay ra, cảm thấy tự do để kéo lên một bảng mã ASCII, 525 00:23:30,770 --> 00:23:36,030 vì những lẽ sẽ đòi hỏi các bạn phải tham khảo 526 00:23:36,030 --> 00:23:38,100 những gì các nhân vật. 527 00:23:38,100 --> 00:23:38,640 ĐƯỢC. 528 00:23:38,640 --> 00:23:42,840 >> Vì vậy, khi biết rằng nhất định nhân vật đồ để số lượng nhất định, 529 00:23:42,840 --> 00:23:47,240 nếu tôi chạy chỉ là đầu tiên dòng đó code-- printf một, 530 00:23:47,240 --> 00:23:50,900 chữ thường a, trừ chữ hoa A. Có ai 531 00:23:50,900 --> 00:23:55,880 có dự đoán về những gì sẽ là in ra màn hình ngay bây giờ? 532 00:23:55,880 --> 00:23:58,190 >> Vì vậy, trước hết, những gì hiện Chữ thường một đại diện? 533 00:23:58,190 --> 00:24:00,990 Số nào là mã hóa trong bảng ASCII. 534 00:24:00,990 --> 00:24:01,490 Lấy làm tiếc? 535 00:24:01,490 --> 00:24:02,630 >> Đung 97? 536 00:24:02,630 --> 00:24:03,630 >> Andi PENG: 97, tuyệt vời. 537 00:24:03,630 --> 00:24:05,077 Và chữ hoa A là gì? 538 00:24:05,077 --> 00:24:06,330 >> Đung 65. 539 00:24:06,330 --> 00:24:08,255 >> Andi PENG: Vậy là những gì 97 trừ đi 65? 540 00:24:08,255 --> 00:24:09,227 >> Đung 32. 541 00:24:09,227 --> 00:24:09,810 Andi PENG: OK. 542 00:24:09,810 --> 00:24:13,530 Vì vậy, những gì bạn nghĩ là sẽ xảy ra khi tôi nhập vào đó dòng mã 543 00:24:13,530 --> 00:24:14,670 vào máy tính của tôi? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> Đung [không nghe được]. 546 00:24:19,896 --> 00:24:21,020 Andi PENG: Xin lỗi, lên nói chuyện. 547 00:24:21,020 --> 00:24:22,520 Đừng lo lắng. 548 00:24:22,520 --> 00:24:25,750 Điều này là rất an toàn môi trường, trừ các máy ảnh. 549 00:24:25,750 --> 00:24:27,550 Tất cả chúng tôi đi với: không phải lo lắng. 550 00:24:27,550 --> 00:24:30,940 Chỉ cần tất cả chúng ta sẽ giả vờ như nó chỉ là chúng ta làm lạnh trong phòng này. 551 00:24:30,940 --> 00:24:31,480 Đừng lo lắng. 552 00:24:31,480 --> 00:24:33,410 Không có câu hỏi là quá ngu ngốc. 553 00:24:33,410 --> 00:24:35,300 Không có câu trả lời là một câu trả lời ngu ngốc. 554 00:24:35,300 --> 00:24:38,260 Tôi rất có thể sẽ có những sai sót trong quá trình giảng dạy của tôi. 555 00:24:38,260 --> 00:24:40,740 Nghiêm túc, guys, vừa thốt ra. 556 00:24:40,740 --> 00:24:43,092 Hãy tự tin vào chính mình, bạn có biết? 557 00:24:43,092 --> 00:24:43,800 Vì vậy, đó là cái gì? 558 00:24:43,800 --> 00:24:47,990 Ai nói rằng câu trả lời cuối cùng? 559 00:24:47,990 --> 00:24:48,540 ĐƯỢC. 560 00:24:48,540 --> 00:24:50,380 Shout là tốt đẹp và rõ ràng. 561 00:24:50,380 --> 00:24:51,220 >> Đung 32? 562 00:24:51,220 --> 00:24:51,850 >> Andi PENG: 32. 563 00:24:51,850 --> 00:24:54,141 OK, chúng ta hãy chạy đoạn mã này và xem đó là những gì sẽ xảy ra. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 ĐƯỢC. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Vì vậy, các bạn có thể loại thấy, các ký hiệu điển hình tôi đã 568 00:25:06,360 --> 00:25:12,250 thiết lập ở đây để làm thế nào chúng ta sẽ sử dụng bất cứ loại chương trình trong máy tính của chúng tôi. 569 00:25:12,250 --> 00:25:14,770 Chúng có chức năng chính của chúng tôi trong phạm vi chức năng chính của chúng tôi. 570 00:25:14,770 --> 00:25:17,265 Tôi chỉ cần đi để sao chép và dán dòng mã này. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Cũng phải cẩn thận khi các bạn sao chép và dán mã. 573 00:25:23,540 --> 00:25:28,750 Đôi khi một số nhà khai thác không dán trên một cách chính xác. 574 00:25:28,750 --> 00:25:31,397 Trong trường hợp đó, trừ dấu hiệu thực sự là một dấu gạch ngang. 575 00:25:31,397 --> 00:25:32,980 Và do đó, các máy tính không nhặt nó lên. 576 00:25:32,980 --> 00:25:35,870 Vì vậy, tôi đã phải quay trở lại và vật lý gõ lại đó. 577 00:25:35,870 --> 00:25:37,846 Chỉ cần cẩn thận khi các bạn đang làm điều đó. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> ĐƯỢC. 580 00:25:42,660 --> 00:25:43,980 Chúng tôi đang đi để chạy này ở đây. 581 00:25:43,980 --> 00:25:45,670 Vì vậy, chúng ta sẽ cd vào section2 của chúng tôi. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Tôi đã gọi chương trình asciimath này. 584 00:25:52,030 --> 00:25:55,690 Vì vậy, hãy nhớ, khi chúng tôi chạy bất kỳ chương trình, chúng tôi muốn đầu tiên biên dịch nó 585 00:25:55,690 --> 00:25:57,150 bằng cách chạy nó thông qua make của chúng tôi. 586 00:25:57,150 --> 00:26:00,030 Và sau đó, chúng tôi muốn thực sự chạy các chương trình bằng cách làm dot-slash. 587 00:26:00,030 --> 00:26:01,280 Vì vậy, chúng ta sẽ ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Phải, có chúng tôi đi. 590 00:26:06,590 --> 00:26:07,410 Và chúng ta thấy 32. 591 00:26:07,410 --> 00:26:07,930 Làm tốt. 592 00:26:07,930 --> 00:26:10,340 Bạn xứng đáng được một viên kẹo. 593 00:26:10,340 --> 00:26:11,160 Kẹo cho bạn. 594 00:26:11,160 --> 00:26:11,900 Lấy làm tiếc. 595 00:26:11,900 --> 00:26:13,100 Được rồi. 596 00:26:13,100 --> 00:26:13,670 ĐƯỢC. 597 00:26:13,670 --> 00:26:18,070 Vì vậy, chúng ta có thể quay trở lại với ví dụ của chúng tôi ở đây. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 À, không. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 ĐƯỢC. 603 00:26:32,490 --> 00:26:34,610 Tôi chỉ cần đi để giữ cho nó như thế. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 ĐƯỢC. 606 00:26:51,240 --> 00:26:51,740 ĐƯỢC. 607 00:26:51,740 --> 00:26:55,340 Vì vậy, các bạn có thể thấy, chúng ta có thể làm rất nhiều thứ rất thú vị, 608 00:26:55,340 --> 00:26:58,880 rất nhiều thứ rất mát mẻ, rất nhiều những điều rất phức tạp liên quan 609 00:26:58,880 --> 00:27:02,720 Ký tự ASCII và số. 610 00:27:02,720 --> 00:27:05,890 Một khi bạn nhận được xuống để xếp hàng năm, đó là rất nhiều để làm theo cùng. 611 00:27:05,890 --> 00:27:07,640 Chúng tôi sẽ không đi thông qua phần này. 612 00:27:07,640 --> 00:27:10,720 Hãy đến, nếu bạn có thể, lý do nó ra trên giấy 613 00:27:10,720 --> 00:27:14,750 đầu tiên về những gì nên xảy ra khi bạn nhập vào như một chuỗi các giá trị. 614 00:27:14,750 --> 00:27:19,720 Ví dụ, trong đó dòng cuối cùng, chúng ta có z-- đại diện cho một number-- nhất định 615 00:27:19,720 --> 00:27:24,740 a-- mà còn đại diện cho một nhất định number-- cộng 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 cộng với chữ thường a. 617 00:27:26,750 --> 00:27:29,220 >> Nếu các bạn hãy đọc thông qua đó, bạn 618 00:27:29,220 --> 00:27:34,009 có thể thấy một mô hình đi lên trong làm thế nào chúng ta đang thao tác mã. 619 00:27:34,009 --> 00:27:36,050 Tôi đánh giá cao, giá cao đề nghị sau khi tất cả các phần của bạn 620 00:27:36,050 --> 00:27:38,160 kẻ đi trước và đầu vào tất cả những người trong máy tính của bạn 621 00:27:38,160 --> 00:27:40,060 và xem những gì loại số được sắp ra 622 00:27:40,060 --> 00:27:43,090 và lý luận thông qua các lý do tại sao những người đang có xảy ra, bởi vì đối với psets của bạn 623 00:27:43,090 --> 00:27:45,060 nó sẽ được thực sự quan trọng để bạn có thể hiểu 624 00:27:45,060 --> 00:27:47,132 tại sao những điều nào đó đang xảy ra. 625 00:27:47,132 --> 00:27:48,590 Tất cả các slide sẽ được trực tuyến. 626 00:27:48,590 --> 00:27:51,510 Vì vậy, không phải lo lắng về việc cố gắng thể chất sao chép lại các ghi chú. 627 00:27:51,510 --> 00:27:52,510 Trực tuyến của tất cả mọi thứ. 628 00:27:52,510 --> 00:27:54,050 Phần này tự nó sẽ được trực tuyến. 629 00:27:54,050 --> 00:27:57,500 Tất cả các mã nguồn của tôi mà Tôi đang chạy sẽ được trực tuyến. 630 00:27:57,500 --> 00:27:58,180 Yeah. 631 00:27:58,180 --> 00:27:59,430 Đã bạn vẫn có một câu hỏi? 632 00:27:59,430 --> 00:28:00,587 Đung modulos là gì? 633 00:28:00,587 --> 00:28:01,170 Andi PENG: OK. 634 00:28:01,170 --> 00:28:05,620 Vì vậy, theo modulo là một nhà điều hành đó sẽ là khá quan trọng để pset của chàng trai của bạn 635 00:28:05,620 --> 00:28:06,690 chỗ này. 636 00:28:06,690 --> 00:28:12,280 Vì vậy, cách mà các nhà khai thác trong C và trong công việc lập trình 637 00:28:12,280 --> 00:28:16,360 là bạn có những gì được gọi là biểu tượng bộ phận và các biểu tượng mô đun, 638 00:28:16,360 --> 00:28:18,350 mà là giống như các ký hiệu phần trăm. 639 00:28:18,350 --> 00:28:24,840 >> Vì vậy, trong C, khi bạn làm một số nguyên chia một số nguyên với một dấu gạch chéo, 640 00:28:24,840 --> 00:28:27,720 C có xu hướng muốn cắt off tất cả các điểm thập phân, 641 00:28:27,720 --> 00:28:30,290 vì một số nguyên muốn để chuyển đổi sang một số nguyên. 642 00:28:30,290 --> 00:28:33,550 Nó sẽ không muốn trở thành một đôi với một loạt các số thập phân sau khi tất cả nó. 643 00:28:33,550 --> 00:28:39,322 >> Vì vậy, nếu tôi làm 3 chia cho 2, nó sẽ để cắt đứt các 0,5 và chỉ cung cấp cho bạn 1. 644 00:28:39,322 --> 00:28:41,530 Vì vậy, đó là một cái gì đó để được rất cẩn thận khi bạn 645 00:28:41,530 --> 00:28:45,294 làm bất kỳ loại của toán học trong lập trình, là các số bạn nhận được 646 00:28:45,294 --> 00:28:47,210 có thể không phải là số rằng bạn đã suy nghĩ, 647 00:28:47,210 --> 00:28:50,190 đó là lý do làm tròn trong của bạn pset cuối cùng là rất quan trọng. 648 00:28:50,190 --> 00:28:51,980 >> Modulo cung cấp cho bạn phần còn lại. 649 00:28:51,980 --> 00:28:56,200 Vì vậy, ví dụ, nếu tôi đã làm 3 modulo 2-- so 3 phần trăm dấu 2-- 650 00:28:56,200 --> 00:28:58,020 nó sẽ cung cấp cho bạn phần còn lại của điều đó. 651 00:28:58,020 --> 00:29:00,460 Vì vậy, 3 chia cho 2 là 1,5. 652 00:29:00,460 --> 00:29:01,410 Đó là 1 phần còn lại của 1. 653 00:29:01,410 --> 00:29:04,600 Nó sẽ cung cấp cho bạn 1, là phần còn lại của điều đó. 654 00:29:04,600 --> 00:29:07,361 >> Vì vậy, khi các bạn đang di chuyển thông qua các bảng mã ASCII, 655 00:29:07,361 --> 00:29:09,735 modulo sẽ kết thúc được cái gì đó là rất quan trọng, 656 00:29:09,735 --> 00:29:11,240 và chúng ta sẽ thảo luận sau này. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> ĐƯỢC. 659 00:29:19,040 --> 00:29:27,300 Vì vậy, cái gì đó là đẹp, khá mới và khá độc đáo 660 00:29:27,300 --> 00:29:31,920 mà chúng ta đã thảo luận trong tuần này các khái niệm về những gì một mảng. 661 00:29:31,920 --> 00:29:34,370 Vì vậy, mảng là người đầu tiên Loại cấu trúc dữ liệu 662 00:29:34,370 --> 00:29:36,320 rằng chúng ta sẽ gặp phải trong lớp này. 663 00:29:36,320 --> 00:29:40,010 Tất cả các cấu trúc dữ liệu được là một số loại tùy ý, 664 00:29:40,010 --> 00:29:43,370 nghĩa là những thứ như cấu trúc rằng chúng tôi là lập trình viên đã tạo ra, 665 00:29:43,370 --> 00:29:47,890 mà chúng tôi đã đặt trong mã của chúng tôi có thể chứa các phần khác của mã. 666 00:29:47,890 --> 00:29:51,090 >> Vì vậy, trong ý nghĩa này, một array-- nghĩ về nó như một tủ hồ sơ, 667 00:29:51,090 --> 00:29:53,470 mà nếu bạn mở khác nhau kệ của nội các tập tin của bạn, 668 00:29:53,470 --> 00:29:55,630 bạn có thể truy cập vào những việc khác nhau. 669 00:29:55,630 --> 00:29:58,630 Trong bộ nhớ, một mảng được chỉ làm điều tương tự trên máy tính của bạn. 670 00:29:58,630 --> 00:30:01,730 Bạn có thể có chúng tôi blocks-- khác nhau gọi họ indices-- của một mảng. 671 00:30:01,730 --> 00:30:04,210 Nó giống như một khối, một hạn sử dụng của bộ nhớ 672 00:30:04,210 --> 00:30:07,580 mà chúng ta đã tạo ra trong bạn máy tính mà bạn có thể nhập vào 673 00:30:07,580 --> 00:30:10,270 điều nào đó trong không gian khác nhau. 674 00:30:10,270 --> 00:30:18,000 >> Vì vậy, với một mảng, bạn luôn luôn phải specify-- 675 00:30:18,000 --> 00:30:22,360 bạn phải xác định tuyên bố một mảng trong các định dạng sau đây. 676 00:30:22,360 --> 00:30:24,290 Bạn đang đi đến đầu tiên xác định kiểu dữ liệu 677 00:30:24,290 --> 00:30:25,831 mà bạn muốn tạo ra các mảng. 678 00:30:25,831 --> 00:30:28,870 Nếu tôi muốn một mảng các số nguyên, Tôi sẽ đặt int ngay tại đó. 679 00:30:28,870 --> 00:30:32,079 Nếu tôi muốn một mảng của chuỗi, Tôi sẽ đưa dây có, 680 00:30:32,079 --> 00:30:34,995 tên của mảng của bạn, và sau đó bạn sẽ có dấu ngoặc vuông. 681 00:30:34,995 --> 00:30:39,580 Và bên trong các dấu ngoặc vuông, bạn sẽ có kích thước của mảng của bạn. 682 00:30:39,580 --> 00:30:42,900 >> Cái gì đó thực sự quan trọng để lưu ý khi tạo mảng là 683 00:30:42,900 --> 00:30:46,530 rằng, một khi bạn tạo ra một mảng, kích thước mà không thể thay đổi. 684 00:30:46,530 --> 00:30:50,180 Vì vậy, nếu bạn biết rằng ngay bây giờ bạn có một mảng có kích thước 10, 685 00:30:50,180 --> 00:30:54,550 Bạn có biết rằng tôi sẽ có 10 tế bào trong hoặc 10 chỉ số trong mảng này, 686 00:30:54,550 --> 00:30:56,830 và nó sẽ không bao giờ để mở rộng hoặc giảm 687 00:30:56,830 --> 00:30:59,850 không có vấn đề gì, và rằng có hiện nay chỉ 10 khối không gian 688 00:30:59,850 --> 00:31:04,490 phân bổ trong bộ nhớ của bạn có thể lưu trữ lên đến 10 điều của bất cứ điều gì bạn đã đặt. 689 00:31:04,490 --> 00:31:08,790 >> Vì vậy, trong cách này, một kiểu dữ liệu mảng, các cấu trúc dữ liệu là một mảng 690 00:31:08,790 --> 00:31:13,392 là rất khác nhau từ một số người khác chúng tôi sẽ được bao gồm trong phần sau của khóa học này. 691 00:31:13,392 --> 00:31:15,170 Yeah. 692 00:31:15,170 --> 00:31:20,080 Ví dụ, nếu bạn muốn tạo ra một mảng có kích thước 3 mà 693 00:31:20,080 --> 00:31:23,670 chứa biến của integer-- oh, xin lỗi, của temperature-- 694 00:31:23,670 --> 00:31:25,640 và nhiệt độ, của Tất nhiên, là một số nguyên. 695 00:31:25,640 --> 00:31:28,710 >> Vì vậy, chúng tôi sẽ tạo ra int, mà là kiểu dữ liệu của những gì chúng ta muốn lưu trữ. 696 00:31:28,710 --> 00:31:32,680 Chúng tôi sẽ gọi cho nhiệt độ này vì lợi ích của danh pháp của việc đặt tên 697 00:31:32,680 --> 00:31:34,200 điều mà tất cả chúng ta hiểu. 698 00:31:34,200 --> 00:31:35,900 Và chúng ta sẽ có dấu ngoặc vuông. 699 00:31:35,900 --> 00:31:37,200 Và chúng tôi muốn ba con số. 700 00:31:37,200 --> 00:31:39,000 Vì vậy, chúng ta sẽ đặt ba bên trong của nó. 701 00:31:39,000 --> 00:31:41,041 >> Cái gì đó thực sự quan trọng cần lưu ý 702 00:31:41,041 --> 00:31:43,530 là mảng được lập chỉ mục zero. 703 00:31:43,530 --> 00:31:46,410 Tất cả điều đó có nghĩa là bạn bắt đầu với chỉ số 0, 704 00:31:46,410 --> 00:31:49,800 và bạn chạy lên qua kích thước của mảng trừ đi 1. 705 00:31:49,800 --> 00:31:52,730 Vì vậy, ví dụ ở đây, chúng tôi có một mảng có kích thước 3. 706 00:31:52,730 --> 00:31:54,680 Nó sẽ có thể để giữ ba giá trị. 707 00:31:54,680 --> 00:31:57,450 Nhưng những con số mà themselves-- số, mảng, chỉ số đó, 708 00:31:57,450 --> 00:32:00,271 mảng, là 0 đến 2. 709 00:32:00,271 --> 00:32:03,520 Vì vậy, guys, được thực sự, thực sự cẩn thận khi bạn đang trải qua những vấn đề của bạn thiết lập 710 00:32:03,520 --> 00:32:06,500 và tạo ra bất kỳ loại mảng, bởi vì rất nhiều lần nó 711 00:32:06,500 --> 00:32:08,490 thực sự, thực sự dễ dàng để quên rằng. 712 00:32:08,490 --> 00:32:11,840 Tôi thực sự không có các chỉ số 3, mà tôi hiện chỉ 713 00:32:11,840 --> 00:32:13,130 có chỉ số của 2. 714 00:32:13,130 --> 00:32:16,046 Và nếu bạn cố gắng truy cập vào các chỉ số thứ ba, 715 00:32:16,046 --> 00:32:18,170 nó sẽ là gì gọi là terminator null. 716 00:32:18,170 --> 00:32:19,990 Nó sẽ không thực sự tồn tại trong mảng. 717 00:32:19,990 --> 00:32:21,781 Và các máy tính là sẽ không thích điều đó. 718 00:32:21,781 --> 00:32:24,570 Vì vậy, hãy cẩn thận bất cứ khi nào bạn đang truy cập thứ chỉ 719 00:32:24,570 --> 00:32:28,070 để đảm bảo rằng bạn nhớ rằng mảng là zero-lập chỉ mục. 720 00:32:28,070 --> 00:32:28,880 >> ĐƯỢC. 721 00:32:28,880 --> 00:32:34,030 Vì vậy, ví dụ đầu tiên chỉ là một cách để tạo ra một mảng. 722 00:32:34,030 --> 00:32:36,790 Ví dụ thứ hai tôi có dưới đây là chỉ là một cách riêng biệt 723 00:32:36,790 --> 00:32:40,210 của việc tạo ra các dữ liệu tương tự là gì cấu trúc mà chúng ta vừa nhập. 724 00:32:40,210 --> 00:32:44,347 Vì vậy, thay vì thể chất chạy thông qua và đưa về nhiệt độ trên 0 725 00:32:44,347 --> 00:32:47,180 bằng bất cứ điều gì, nhiệt độ 1 bằng bất cứ điều gì, nhiệt độ 2 equals 726 00:32:47,180 --> 00:32:50,950 bất cứ điều gì, tôi có thể thực sự chỉ trực tiếp tạo ra nó tất cả trong một dòng 727 00:32:50,950 --> 00:32:53,010 vào nhiệt độ bằng dấu ngoặc vuông. 728 00:32:53,010 --> 00:32:56,536 >> Và thông báo trong trường hợp này, bạn không cần để chỉ định cách lớn mảng của bạn là, 729 00:32:56,536 --> 00:32:59,160 bởi vì máy tính sẽ đi qua và thấy rằng có 730 00:32:59,160 --> 00:33:01,570 ba yếu tố trong những dấu ngoặc nhọn. 731 00:33:01,570 --> 00:33:04,000 Và nó sẽ biết, OK, Tôi cần một mảng có kích thước 3. 732 00:33:04,000 --> 00:33:07,440 Bạn sẽ không cần phải đầu vào nó theo cách sau. 733 00:33:07,440 --> 00:33:10,170 >> Và cũng có thể, yeah, theo cách đó. 734 00:33:10,170 --> 00:33:12,610 Có ai có câu hỏi liên quan đến cách chúng ta làm cho mảng 735 00:33:12,610 --> 00:33:17,391 hoặc cách cơ cấu của một mảng hoạt động? 736 00:33:17,391 --> 00:33:17,890 Yeah. 737 00:33:17,890 --> 00:33:18,806 >> Đung [Không nghe thấy]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 Andi PENG: Yeah, chính xác. 740 00:33:22,690 --> 00:33:26,150 Vì vậy, nếu bạn đã khai báo và khởi tạo một mảng các phương pháp sau đây, 741 00:33:26,150 --> 00:33:28,477 đó là cách thứ hai, bạn chỉ có thể để lại những người. 742 00:33:28,477 --> 00:33:30,310 Và các máy tính tự động biết rằng nó 743 00:33:30,310 --> 00:33:33,950 cần phải đếm bao nhiêu yếu tố được trong những dấu ngoặc nhọn, tách 744 00:33:33,950 --> 00:33:34,930 bởi dấu phẩy. 745 00:33:34,930 --> 00:33:37,517 >> Vì vậy, ở đây họ nhìn thấy 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Vì vậy, các máy tính biết, oh, có ba số nguyên. 747 00:33:39,600 --> 00:33:45,960 Tôi biết để tạo ra một tên mảng nhiệt độ với ba yếu tố trong nó. 748 00:33:45,960 --> 00:33:46,590 Câu hỏi hay. 749 00:33:46,590 --> 00:33:47,090 Yeah. 750 00:33:47,090 --> 00:33:51,590 >> Đung Không phải là nó có thể tạo ra một mảng với các loại dữ liệu khác nhau 751 00:33:51,590 --> 00:33:53,021 mà có thể được nhập vào nó? 752 00:33:53,021 --> 00:33:56,746 Ví dụ, với số nguyên [Không nghe thấy]? 753 00:33:56,746 --> 00:33:59,120 Andi PENG: Đối với các mục đích của lớp này, không, ngay bây giờ. 754 00:33:59,120 --> 00:34:03,070 Khi bạn tạo ra một dữ liệu cấu trúc giống như một mảng, 755 00:34:03,070 --> 00:34:04,990 bạn đang nói sự máy tính, hey, tôi cần bạn 756 00:34:04,990 --> 00:34:08,159 để phân bổ này nhiều bộ nhớ trong ổ cứng của tôi, 757 00:34:08,159 --> 00:34:10,690 với mỗi tế bào là một số lượng nhất định các bit. 758 00:34:10,690 --> 00:34:13,429 >> Nhớ là chúng tôi đã học được trong tuần zero rằng dữ liệu khác nhau 759 00:34:13,429 --> 00:34:15,300 loại có kích cỡ khác nhau? 760 00:34:15,300 --> 00:34:17,630 Vì vậy, ví dụ, một chuỗi là một số tiền khác nhau 761 00:34:17,630 --> 00:34:20,719 không gian hơn một char, mà là một số tiền khác nhau của không gian 762 00:34:20,719 --> 00:34:21,830 từ một số nguyên. 763 00:34:21,830 --> 00:34:25,534 Và vì vậy nếu bạn không xác định và bạn trộn và kết hợp những loại biến 764 00:34:25,534 --> 00:34:27,659 bạn có, các máy tính của sẽ rất bối rối. 765 00:34:27,659 --> 00:34:29,950 Và nó không phải đi để biết bao nhiêu bộ nhớ để cung cấp cho bạn. 766 00:34:29,950 --> 00:34:32,480 Vì vậy, mục đích của quyền Bây giờ, máy tính có thể chỉ 767 00:34:32,480 --> 00:34:36,120 nhận ra một loại của một mảng. 768 00:34:36,120 --> 00:34:37,940 Câu hỏi hay. 769 00:34:37,940 --> 00:34:38,440 ĐƯỢC. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Vì vậy, tự nhiên, Câu hỏi thứ hai, chúng tôi có 772 00:34:47,120 --> 00:34:50,760 là, tốt, bây giờ mà chúng tôi đã tạo ra một mảng và chúng tôi đã đặt tất cả những việc này 773 00:34:50,760 --> 00:34:54,190 trong mảng, làm thế nào chúng tôi đi để có thể truy cập vào nó? 774 00:34:54,190 --> 00:34:59,710 Vì vậy, các cấu trúc điển hình mà chúng ta luôn luôn truy cập vào một mảng là đáng yêu của chúng tôi cho vòng lặp. 775 00:34:59,710 --> 00:35:03,830 Tôi hứa với các bạn rằng chúng tôi sẽ được nhìn thấy rất nhiều đồng nghiệp ở đây. 776 00:35:03,830 --> 00:35:06,470 >> Về cơ bản, bất cứ lúc nào bạn muốn để nhập giá trị vào một mảng 777 00:35:06,470 --> 00:35:09,940 hoặc bạn muốn truy cập chúng, các Cách tốt nhất để làm điều đó là một vòng lặp for, 778 00:35:09,940 --> 00:35:13,730 bởi vì trong một vòng lặp for, bạn biết bao nhiêu lần bạn 779 00:35:13,730 --> 00:35:17,290 sẽ muốn chạy qua mảng, bởi vì bạn có một ấn bản dừng lại, phải không? 780 00:35:17,290 --> 00:35:19,680 Và mỗi khi bạn chạy thông qua, bạn có thể truy cập 781 00:35:19,680 --> 00:35:21,310 một yếu tố khác nhau của mảng. 782 00:35:21,310 --> 00:35:26,920 >> Và cũng có thể, đây là một lý do tại sao thường chúng tôi bắt đầu của chúng tôi cho vòng ở các giá trị 0, 783 00:35:26,920 --> 00:35:30,080 bởi vì khi bạn truy cập vào các mảng, bạn có thể truy cập vào các chỉ số zero. 784 00:35:30,080 --> 00:35:32,070 Và do đó, nó song song rất độc đáo. 785 00:35:32,070 --> 00:35:35,295 Các bạn có thể muốn viết cho int i bằng 1. 786 00:35:35,295 --> 00:35:37,330 i nhỏ hơn hoặc bằng 3. 787 00:35:37,330 --> 00:35:39,890 >> Nhưng nó sẽ không làm việc khá cũng ở đây, bởi vì bạn chỉ 788 00:35:39,890 --> 00:35:42,010 có yếu tố từ 0, 1 và 2. 789 00:35:42,010 --> 00:35:45,815 Và vì vậy nếu bạn đã bắt đầu i của bạn ở phần 1, 2, và 3, 790 00:35:45,815 --> 00:35:48,440 bạn sẽ kết thúc chạy ra khỏi giới hạn của mảng của bạn, 791 00:35:48,440 --> 00:35:50,440 và những điều xấu sẽ xảy ra. 792 00:35:50,440 --> 00:35:54,480 >> Vì vậy, tôi hy vọng các bạn thấy segue lý do tại sao trong các lớp trước 793 00:35:54,480 --> 00:35:58,560 chúng ta đã dạy các bạn làm thế nào để chạy và định dạng một vòng lặp cho cách mà chúng tôi đã có. 794 00:35:58,560 --> 00:36:01,900 Đó là bởi vì, bây giờ chúng tôi đã chuyển thành các mảng, 795 00:36:01,900 --> 00:36:06,760 bạn có thể thấy tại sao 0 cho vay chính nó rất độc đáo để truy cập. 796 00:36:06,760 --> 00:36:09,880 >> Vì vậy, cách chúng tôi làm điều đó là that-- tôi chỉ cần in nó ra ở đây, vì lợi ích 797 00:36:09,880 --> 00:36:10,830 in ấn nó ra. 798 00:36:10,830 --> 00:36:13,750 Nhưng tôi phải giữ chỗ của tôi, dấu phẩy. 799 00:36:13,750 --> 00:36:15,645 Và việc truy cập đến thực tế phần đang xảy ra. 800 00:36:15,645 --> 00:36:17,520 Tên của mảng được gọi là nhiệt độ. 801 00:36:17,520 --> 00:36:21,570 Vì vậy, nó là nhiệt độ và thứ i phần tử của mảng. 802 00:36:21,570 --> 00:36:24,400 >> Vì vậy, khi cho vòng lặp chạy qua, nó sẽ bắt đầu từ 0. 803 00:36:24,400 --> 00:36:27,640 Nó sẽ in ra Chỉ số 0 của mảng này. 804 00:36:27,640 --> 00:36:29,599 Sau đó, nó sẽ in ra phần tử đầu tiên. 805 00:36:29,599 --> 00:36:31,431 Sau đó, nó sẽ in ra một lần thứ hai. 806 00:36:31,431 --> 00:36:32,880 Và sau đó chúng ta sẽ phá vỡ. 807 00:36:32,880 --> 00:36:36,718 Là tất cả mọi người rõ ràng về làm thế nào mà đang xảy ra? 808 00:36:36,718 --> 00:36:37,217 Thật tuyệt. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Được rồi. 811 00:36:44,100 --> 00:36:47,270 Vì vậy, ở đây chúng ta có một cách nói, nếu chúng ta không muốn 812 00:36:47,270 --> 00:36:50,020 tự code in-- tôi như là các lập trình viên. 813 00:36:50,020 --> 00:36:53,320 Tôi không muốn thực sự về thể chất đặt trong mỗi yếu tố cá nhân 814 00:36:53,320 --> 00:36:54,020 của mảng này. 815 00:36:54,020 --> 00:36:56,500 Nếu tôi muốn thay có giá trị sử dụng đầu vào, 816 00:36:56,500 --> 00:36:58,100 cách tốt nhất để làm điều đó là gì? 817 00:36:58,100 --> 00:37:00,920 >> Vâng, ở đây tôi đã tạo ra Chức năng này đáng yêu, 818 00:37:00,920 --> 00:37:03,560 trong đó tôi có thể khai báo một mảng. 819 00:37:03,560 --> 00:37:06,210 Vì vậy, chúng ta hãy int scores-- chỉ nói rằng chúng ta muốn thực hiện 820 00:37:06,210 --> 00:37:10,660 một mảng mà tổ chức các lớp của tất cả 18 của học sinh ở đây trong phần này. 821 00:37:10,660 --> 00:37:12,670 Tôi nghĩ rằng chúng tôi đã có một chút hơn 18 trẻ em ngày nay. 822 00:37:12,670 --> 00:37:16,460 Nhưng vì lợi ích của ví dụ, chúng ta hãy giả sử chúng ta đã có 18. 823 00:37:16,460 --> 00:37:21,580 Tôi sẽ tạo ra một điểm tên mảng với kiểu int, vì điểm số, tất nhiên, 824 00:37:21,580 --> 00:37:22,987 là những con số. 825 00:37:22,987 --> 00:37:24,820 Và tôi sẽ có 18 trong dấu ngoặc vuông, 826 00:37:24,820 --> 00:37:29,900 bởi vì đó là bao nhiêu học sinh tôi muốn có thể để lưu trữ điểm số của. 827 00:37:29,900 --> 00:37:32,206 >> Và cách tôi cư mảng là tôi muốn 828 00:37:32,206 --> 00:37:35,572 chạy nó thông qua một vòng lặp, các Tất nhiên, với 0 là số 0 của tôi. 829 00:37:35,572 --> 00:37:38,030 Và sau đó với 18 là của tôi dừng phiên bản, bởi vì có 830 00:37:38,030 --> 00:37:39,690 18 yếu tố trong mảng. 831 00:37:39,690 --> 00:37:44,620 Và sau đó tôi sẽ làm printf, Nhập tỉ số student-- yada yada yada. 832 00:37:44,620 --> 00:37:51,171 >> Bất cứ ai có thể cho tôi biết tại sao ở đây tôi là in i cộng với 1 và không phải tôi? 833 00:37:51,171 --> 00:37:52,920 Đó là một loại lừa câu hỏi, không thực sự. 834 00:37:52,920 --> 00:37:56,020 Nó không thực sự thể chất ảnh hưởng đến hoạt động của các mã. 835 00:37:56,020 --> 00:37:56,520 Yeah. 836 00:37:56,520 --> 00:37:57,909 >> Đung [Không nghe thấy] 0? 837 00:37:57,909 --> 00:37:58,950 Andi PENG: Yeah, chính xác. 838 00:37:58,950 --> 00:38:02,620 Đó là một chút khó khăn để nói, hey, bạn là sinh viên 0 trong lớp này. 839 00:38:02,620 --> 00:38:03,780 Đó là một chút lạ. 840 00:38:03,780 --> 00:38:08,340 Vì vậy, chúng tôi, như con người, thật sự không thích để suy nghĩ về cách thức các máy tính nghĩ. 841 00:38:08,340 --> 00:38:10,930 Vì vậy, mặc dù trong máy tính, nó lưu trữ các giá trị 842 00:38:10,930 --> 00:38:13,310 trong chỉ số 0-th, khi chúng tôi con người, chúng ta không thực sự 843 00:38:13,310 --> 00:38:15,520 muốn đề cập đến mình là zero. 844 00:38:15,520 --> 00:38:18,119 Vì vậy, khi tôi chỉ in đó, Tôi đang chuẩn bị in và thêm 845 00:38:18,119 --> 00:38:19,410 1 chỉ vì lợi ích của sự rõ ràng. 846 00:38:19,410 --> 00:38:22,447 Vì vậy, khi tôi in, tôi sẽ được có khả năng in các học sinh từ 1 đến 18. 847 00:38:22,447 --> 00:38:24,530 Nó không thực sự ảnh hưởng các hoạt động của các mã 848 00:38:24,530 --> 00:38:27,110 trong bất kỳ cách nào, cách tôi in. 849 00:38:27,110 --> 00:38:30,380 >> Nhưng hãy cẩn thận khi bạn thực sự truy cập mảng. 850 00:38:30,380 --> 00:38:32,780 Khi bạn nhìn thấy những điểm i, ý ở đây tôi thực sự 851 00:38:32,780 --> 00:38:38,200 truy cập vào các chỉ số 0 và không phải là 1 cộng 0-- hoặc 1 cộng với 1, 852 00:38:38,200 --> 00:38:45,530 trong trường hợp này, chỉ số vậy rằng nó thực sự rõ ràng. 853 00:38:45,530 --> 00:38:48,870 Là tất cả mọi người loại OK trên cách này được chạy qua 854 00:38:48,870 --> 00:38:51,470 và với mỗi chỉ số tôi đưa giá trị vào mảng 855 00:38:51,470 --> 00:38:55,340 và tạo ra một mảng với 18 số mà người sử dụng sẽ đầu vào? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 ĐƯỢC. 858 00:38:59,821 --> 00:39:00,321 Mát. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> ĐƯỢC. 861 00:39:07,400 --> 00:39:12,220 Bây giờ chúng ta chuyển thành một cái gì đó là khá có liên quan cho phần này thiết lập như là tốt. 862 00:39:12,220 --> 00:39:15,020 Tôi biết trong bài giảng, David-- xin lỗi, bạn đã có một câu hỏi? 863 00:39:15,020 --> 00:39:16,840 >> Đung bạn có thể phóng to nó? 864 00:39:16,840 --> 00:39:18,080 >> Andi PENG: Yeah, vì vậy tôi đã cố gắng. 865 00:39:18,080 --> 00:39:18,788 Nhưng tôi không biết. 866 00:39:18,788 --> 00:39:21,437 Đối với một số lý do, điều này phiên bản của PowerPoint 867 00:39:21,437 --> 00:39:23,270 thực sự không làm việc tốt với màn hình hiển thị. 868 00:39:23,270 --> 00:39:25,260 Vì vậy, chúng tôi chỉ cần đi để giữ nó như thế này. 869 00:39:25,260 --> 00:39:27,280 Tất cả những sẽ được tải lên trực tuyến. 870 00:39:27,280 --> 00:39:28,218 Xin lỗi các bạn. 871 00:39:28,218 --> 00:39:30,090 Yeah. 872 00:39:30,090 --> 00:39:30,980 ĐƯỢC. 873 00:39:30,980 --> 00:39:35,530 >> Vì vậy, chúng ta cũng có thể có các chuỗi. 874 00:39:35,530 --> 00:39:39,320 Vì vậy, nếu các bạn thực sự notice-- tôi biết Rob đã đi qua này trong bài giảng mà 875 00:39:39,320 --> 00:39:43,652 rằng ông did-- một chuỗi thực sự là chỉ là một mảng kí tự, 876 00:39:43,652 --> 00:39:44,860 nếu bạn nghĩ về nó, phải không? 877 00:39:44,860 --> 00:39:47,500 Một chuỗi là một tên hoặc một câu hoặc một từ, phải không? 878 00:39:47,500 --> 00:39:52,975 >> Nếu tôi là để tạo ra một chuỗi tên là Andi-- chỉ tên của tôi, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Bạn nghĩ rằng như chỉ là một biến. 880 00:39:55,460 --> 00:39:58,630 Nhưng trên thực tế, nó bị hỏng xuống vào chỉ là một mảng của các ký tự. 881 00:39:58,630 --> 00:40:01,910 Vì vậy, nó có một nhân vật của một lưu trữ trong một mảng giá trị. 882 00:40:01,910 --> 00:40:05,420 Nó có một nhân vật của n được lưu trữ trong Chỉ số thứ hai và vv và vv. 883 00:40:05,420 --> 00:40:08,660 >> Vì vậy, trong một cách như vậy, chúng tôi thực sự có loại này 884 00:40:08,660 --> 00:40:10,970 của cấu trúc thiết lập trong đặt cho chuỗi của chúng tôi. 885 00:40:10,970 --> 00:40:14,660 Vì vậy, ở đây, nếu tôi đã nhập Từ "ăn" - vì vậy từ chuỗi bằng 886 00:40:14,660 --> 00:40:15,540 nhận được chuỗi. 887 00:40:15,540 --> 00:40:19,260 Nếu tôi được nhập vào từ "ăn", mà là chất cách mà máy tính của tôi 888 00:40:19,260 --> 00:40:21,870 được lưu trữ đó chuỗi trong bộ nhớ của tôi. 889 00:40:21,870 --> 00:40:27,140 >> Và nếu tôi muốn chạy qua mà và in mà out-- nên cho vào i 890 00:40:27,140 --> 00:40:30,890 bằng không, hãy nhớ, trong bài giảng, chúng tôi một cái gì đó bao phủ đó được gọi là strlen, 891 00:40:30,890 --> 00:40:32,990 hoặc chiều dài của chuỗi. 892 00:40:32,990 --> 00:40:36,520 Bởi vì tôi không thực sự biết làm thế nào lớn mảng là 893 00:40:36,520 --> 00:40:38,210 của bất cứ inputting-- của người dùng 894 00:40:38,210 --> 00:40:40,370 >> Ví dụ, tôi đã nhập vào từ "ăn", và tôi biết 895 00:40:40,370 --> 00:40:41,870 đó là dài ba nhân vật, phải không? 896 00:40:41,870 --> 00:40:44,700 Vì vậy, tôi có thể đặt trong một ba có và tất cả mọi thứ sẽ tốt đẹp. 897 00:40:44,700 --> 00:40:49,290 Nhưng nếu một cái gì đó vào người sử dụng của bạn đó là một số lượng khác nhau của các giá trị, 898 00:40:49,290 --> 00:40:52,760 bạn sẽ không có khả năng thực sự biết rằng khi bạn chương trình mã của bạn. 899 00:40:52,760 --> 00:40:56,040 >> Vì vậy, cách mà chúng ta xử lý các trường hợp thử nghiệm như thế là chúng ta có một cái gì đó 900 00:40:56,040 --> 00:41:00,070 gọi là strlen, mà chỉ là một chức năng mà nói với bạn một chuỗi là bao lâu. 901 00:41:00,070 --> 00:41:02,080 Vì vậy, strlen của từ. 902 00:41:02,080 --> 00:41:03,470 Lời của tôi là ăn. 903 00:41:03,470 --> 00:41:05,990 n bằng strlen của từ. 904 00:41:05,990 --> 00:41:08,930 Ai có thể cho tôi biết những gì mà giá trị thực sự là phải có? 905 00:41:08,930 --> 00:41:12,550 Gì n đại diện cho quyền Hiện tại, trong ví dụ này, nếu tôi đã ăn gì? 906 00:41:12,550 --> 00:41:13,530 >> Đung 3. 907 00:41:13,530 --> 00:41:14,520 >> Andi PENG: 3, chính xác. 908 00:41:14,520 --> 00:41:18,820 Vì vậy, chúng tôi đã cho int i bằng bằng không, n bằng 3, về cơ bản. 909 00:41:18,820 --> 00:41:22,355 Và tôi sẽ chạy cho đến khi nó ít hơn 3i ++. 910 00:41:22,355 --> 00:41:24,980 Và nó sẽ yếu đi thông qua và thực hiện tương tự. 911 00:41:24,980 --> 00:41:26,979 Nó sẽ in ra mỗi giá trị và cung cấp cho bạn 912 00:41:26,979 --> 00:41:29,700 ĂN. Nó chỉ biểu thị một cách khác nhau của văn bản đó. 913 00:41:29,700 --> 00:41:31,170 Điều đó sẽ rất hữu ích. 914 00:41:31,170 --> 00:41:31,670 Yeah. 915 00:41:31,670 --> 00:41:35,174 Đung những lợi ích của việc đưa là gì các n bằng từ bên trong mà strlen 916 00:41:35,174 --> 00:41:36,894 cho vòng lặp [Không nghe thấy]? 917 00:41:36,894 --> 00:41:37,560 Andi PENG: Yeah. 918 00:41:37,560 --> 00:41:44,880 Vì vậy, nếu tôi là nhằm: nói, ví dụ, nếu tôi được làm điều đó và sau đó 919 00:41:44,880 --> 00:41:51,935 do-- oop-- rằng, trong mã của tôi, nó sẽ thực sự có thể làm như điều tương tự. 920 00:41:51,935 --> 00:41:55,060 Tuy nhiên, cách mà David giải thích nó trong quá trình giảng bài, nếu bất kỳ của các bạn 921 00:41:55,060 --> 00:41:57,854 nhớ, đó là, như con người, như lập trình, 922 00:41:57,854 --> 00:42:00,270 chúng tôi thực sự cố gắng để chương của chúng tôi code để máy tính của chúng tôi có 923 00:42:00,270 --> 00:42:04,070 để làm việc càng ít càng tốt, vì vậy mà mã của chúng tôi là rất hiệu quả. 924 00:42:04,070 --> 00:42:06,850 >> Vì vậy, nếu tôi đã có, những gì sẽ xảy ra thông qua các vòng lặp của tôi 925 00:42:06,850 --> 00:42:10,790 là đầu tiên tôi muốn khai báo một biến i có tên là có được 0. 926 00:42:10,790 --> 00:42:13,350 Tôi sẽ kiểm tra, oh, strlen của từ là gì? 927 00:42:13,350 --> 00:42:15,000 Oh, strlen là 3. 928 00:42:15,000 --> 00:42:16,191 Vậy là tôi ít hơn ba? 929 00:42:16,191 --> 00:42:16,690 Vâng, đó là. 930 00:42:16,690 --> 00:42:17,870 Tôi sẽ chạy. 931 00:42:17,870 --> 00:42:21,130 >> Và sau đó lần thứ hai trở lại xung quanh các vòng lặp, tôi sẽ tăng i. 932 00:42:21,130 --> 00:42:22,550 i là có được một. 933 00:42:22,550 --> 00:42:25,600 Và tôi sẽ kiểm tra, oh, nhưng strlen của từ là gì? 934 00:42:25,600 --> 00:42:26,839 Oh, đó là ba. 935 00:42:26,839 --> 00:42:29,880 Và điều ấy có loại lãng phí, mỗi khi bạn chạy qua các vòng lặp, 936 00:42:29,880 --> 00:42:33,340 được kiểm tra các chức năng, mặc dù strlen của từ 937 00:42:33,340 --> 00:42:35,490 không bao giờ thực sự thay đổi? 938 00:42:35,490 --> 00:42:38,590 >> Vì vậy, nó thêm sức mạnh cho một máy tính. 939 00:42:38,590 --> 00:42:42,180 Khi bạn bắt đầu nói về những điều đó là tỷ tỷ 940 00:42:42,180 --> 00:42:44,431 và hàng tỷ địa điểm dài, hãy tưởng tượng máy tính của bạn 941 00:42:44,431 --> 00:42:47,430 có thể chất đi qua và kiểm tra tất cả mà mỗi lần duy nhất. 942 00:42:47,430 --> 00:42:53,170 Đó là lý do tại sao, để làm cho chỉ vì lợi ích của hiệu quả, 943 00:42:53,170 --> 00:42:57,620 chúng ta có xu hướng chỉ làm điều này, bởi vì cách này chúng tôi chỉ 944 00:42:57,620 --> 00:42:59,850 gọi hàm một lần trong đầu, 945 00:42:59,850 --> 00:43:01,766 và rằng mỗi khi nó đi qua nó sẽ 946 00:43:01,766 --> 00:43:03,789 để lưu trữ các giá trị 3 ở đó, mà bạn không 947 00:43:03,789 --> 00:43:05,330 phải liên tục kiểm tra tất cả thời gian. 948 00:43:05,330 --> 00:43:05,743 Yeah. 949 00:43:05,743 --> 00:43:06,409 >> Đung Xin lỗi. 950 00:43:06,409 --> 00:43:09,070 Chỉ cần [không nghe được]. 951 00:43:09,070 --> 00:43:13,985 Bạn có thể làm int n bằng strlen và đặt rằng trên lớp bên ngoài của vòng lặp for 952 00:43:13,985 --> 00:43:15,364 cũng? 953 00:43:15,364 --> 00:43:16,030 Andi PENG: Yeah. 954 00:43:16,030 --> 00:43:17,100 Bạn có thể làm điều đó, hoàn toàn. 955 00:43:17,100 --> 00:43:19,970 Lý do chúng tôi có nó ở đây là vì cách một công trình vòng lặp 956 00:43:19,970 --> 00:43:23,500 được rằng nó được gọi là một biến địa phương trong ý nghĩa 957 00:43:23,500 --> 00:43:26,150 rằng tất cả mọi thứ bạn tạo bên trong của vòng lặp for 958 00:43:26,150 --> 00:43:27,890 chỉ tồn tại bên trong vòng lặp for. 959 00:43:27,890 --> 00:43:31,530 >> Vì vậy, các biến i chỉ tồn tại trong những dấu ngoặc đơn. 960 00:43:31,530 --> 00:43:35,260 Và ở đây các biến của n cũng chỉ tồn tại trong những dấu ngoặc đơn. 961 00:43:35,260 --> 00:43:39,350 Vì vậy, nếu bạn đã sử dụng strlen của từ nhiều lần xuống bên dưới, 962 00:43:39,350 --> 00:43:42,230 hoàn toàn là cách tốt nhất để làm điều đó sẽ là tuyên bố nó lên hàng đầu 963 00:43:42,230 --> 00:43:43,563 vì vậy bạn không cần phải làm điều đó một lần. 964 00:43:43,563 --> 00:43:45,420 Yeah. 965 00:43:45,420 --> 00:43:47,670 Đung Tại sao bạn có một dòng mới sau khi các phần trăm 966 00:43:47,670 --> 00:43:51,300 nhìn thấy nếu bạn muốn đặt tất cả các chữ cái tiếp theo để nó tách biệt? 967 00:43:51,300 --> 00:43:54,140 >> Andi Peng: Oh, tôi muốn in tất cả trên mỗi dòng. 968 00:43:54,140 --> 00:43:54,890 Nó không quan trọng. 969 00:43:54,890 --> 00:43:55,890 Vâng, đó là một định dạng. 970 00:43:55,890 --> 00:43:57,181 Đó là một câu hỏi hay, mặc dù. 971 00:43:57,181 --> 00:43:59,360 Vâng, nếu tôi muốn in tất cả trên chỉ là một dòng, 972 00:43:59,360 --> 00:44:02,731 Tôi sẽ không có dấu gạch ngang trong. 973 00:44:02,731 --> 00:44:03,230 ĐƯỢC. 974 00:44:03,230 --> 00:44:06,880 Tất cả mọi người tốt? 975 00:44:06,880 --> 00:44:07,500 ĐƯỢC. 976 00:44:07,500 --> 00:44:08,000 Mát. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Vì vậy, tôi nghĩ rằng tôi đã nói hơi nhiều. 979 00:44:14,750 --> 00:44:20,040 Lần lượt các bạn để chạy qua mã và cho tôi biết những gì là sai trái ở đây. 980 00:44:20,040 --> 00:44:21,560 Trường hợp của lỗi? 981 00:44:21,560 --> 00:44:26,920 Vì vậy, như bạn có thể thấy, tôi đã tuyên bố một mảng mới có kiểu string tên lớp. 982 00:44:26,920 --> 00:44:30,220 Và tôi đã đầu vào Sam, Jess, và Kim vào nó. 983 00:44:30,220 --> 00:44:33,400 Và tôi đang cố gắng để in ra tất cả các phần tử của mảng. 984 00:44:33,400 --> 00:44:36,796 Ai có thể cho tôi biết tại sao điều này sẽ cung cấp cho tôi những vấn đề? 985 00:44:36,796 --> 00:44:39,320 Tôi sẽ cung cấp cho các bạn 10 giây để suy nghĩ về điều này. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> ĐƯỢC. 988 00:44:56,619 --> 00:44:57,118 Yeah? 989 00:44:57,118 --> 00:45:01,972 >> Đung Là trung tâm trái bằng 3 hay [không nghe được]? 990 00:45:01,972 --> 00:45:02,680 Andi PENG: Đúng vậy. 991 00:45:02,680 --> 00:45:06,784 Vì vậy, bao nhiêu lần là điều này thực sự sẽ chạy qua vòng lặp này? 992 00:45:06,784 --> 00:45:07,620 >> Đung Four. 993 00:45:07,620 --> 00:45:08,070 >> Andi PENG: Chính xác. 994 00:45:08,070 --> 00:45:09,445 Nó sẽ để thông qua bốn lần. 995 00:45:09,445 --> 00:45:12,250 Nó sẽ chạy qua 0, 1, 2, và 3, 996 00:45:12,250 --> 00:45:15,200 vì phần tử của họ là i là nhỏ hơn hoặc bằng 3. 997 00:45:15,200 --> 00:45:16,960 Nó sẽ không dừng lại khi nó 2. 998 00:45:16,960 --> 00:45:18,800 Nó sẽ giữ đi cho đến khi nó chạm 3. 999 00:45:18,800 --> 00:45:21,720 Và như chúng ta đã biết, có chỉ là ba các phần tử trong mảng thực tế của chúng tôi. 1000 00:45:21,720 --> 00:45:27,260 >> Nếu chúng ta cố gắng để truy cập thứ tư phần tử hay các chỉ số của 3, 1001 00:45:27,260 --> 00:45:30,357 bạn đang đi để đạt một nơi nào đó trong bộ nhớ mà không tồn tại. 1002 00:45:30,357 --> 00:45:31,690 Nó được gọi là terminator null. 1003 00:45:31,690 --> 00:45:32,856 Không có gì đang xảy ra ở đó. 1004 00:45:32,856 --> 00:45:35,324 Máy tính của bạn không phải là đi là rất hạnh phúc với bạn. 1005 00:45:35,324 --> 00:45:36,170 Yeah. 1006 00:45:36,170 --> 00:45:38,430 Có ai có câu hỏi về lý do tại sao mà đã xảy ra? 1007 00:45:38,430 --> 00:45:39,679 Đó là một khu vực chung để tránh. 1008 00:45:39,679 --> 00:45:40,712 Yeah. 1009 00:45:40,712 --> 00:45:45,777 >> Đung Không những lần đầu tiên trượt cũng có một chuỗi của 2? 1010 00:45:45,777 --> 00:45:46,360 Andi PENG: No. 1011 00:45:46,360 --> 00:45:49,610 Vì vậy, về cơ bản, khi bạn đang làm cho một mảng, 1012 00:45:49,610 --> 00:45:51,540 đó khung bên phải ở đó, rằng number-- tất cả 1013 00:45:51,540 --> 00:45:53,480 nó nói cho bạn là như thế nào nhiều yếu tố tôi có. 1014 00:45:53,480 --> 00:45:55,840 Nó không thực sự nói tôi các chỉ số của bất cứ điều gì. 1015 00:45:55,840 --> 00:45:58,760 Vì vậy, trong trường hợp này, tôi biết tôi muốn để viết với ba nơi, 1016 00:45:58,760 --> 00:46:02,690 với ba vị trí vật lý giữ bất cứ điều gì tôi muốn giữ. 1017 00:46:02,690 --> 00:46:04,510 Vì vậy, đó là lý do tại sao số ba là có. 1018 00:46:04,510 --> 00:46:06,560 Tuy nhiên, nếu tôi muốn để thực sự truy cập vào nó, 1019 00:46:06,560 --> 00:46:11,220 nếu tôi muốn nói, printf số khung lớp, sau đó 1020 00:46:11,220 --> 00:46:14,560 bạn sẽ thực sự đặt các chỉ số vật lý đó. 1021 00:46:14,560 --> 00:46:16,330 Vâng, câu hỏi hay. 1022 00:46:16,330 --> 00:46:20,065 >> Đung Vì vậy, là vật lý chỉ số cho là [Không nghe thấy]? 1023 00:46:20,065 --> 00:46:20,940 Andi Peng: Tôi xin lỗi. 1024 00:46:20,940 --> 00:46:21,500 Bạn có thể nói lên một chút? 1025 00:46:21,500 --> 00:46:24,208 >> Đung Vậy là chỉ số vật lý [Không nghe thấy] mỗi hộp? 1026 00:46:24,208 --> 00:46:25,260 [Không nghe thấy]? 1027 00:46:25,260 --> 00:46:26,040 >> Andi PENG: Yeah. 1028 00:46:26,040 --> 00:46:28,970 Vì vậy, tôi sẽ quay lại ngay đây. 1029 00:46:28,970 --> 00:46:31,120 Nghĩ ngay đây. 1030 00:46:31,120 --> 00:46:32,820 Chúng tôi có một mảng có kích thước 3. 1031 00:46:32,820 --> 00:46:35,540 Có ba nơi, như, placeholders vật lý ở đây. 1032 00:46:35,540 --> 00:46:37,620 Nhưng chúng ta đã đặt tên 0, 1 và 2. 1033 00:46:37,620 --> 00:46:40,700 Vì vậy, nếu tôi muốn truy cập chúng, cách mà tôi truy cập chúng 1034 00:46:40,700 --> 00:46:43,480 là printf của bất cứ điều gì tôi muốn ở đây. 1035 00:46:43,480 --> 00:46:45,485 Bạn sẽ phải in ra tên của nó, 1036 00:46:45,485 --> 00:46:47,610 bởi vì sau đó máy tính biết, oh, tôi cần phải nhìn 1037 00:46:47,610 --> 00:46:51,391 trong mảng này cho các chỉ số 0. 1038 00:46:51,391 --> 00:46:51,890 Yeah. 1039 00:46:51,890 --> 00:46:53,306 Nhưng kích thước của nó không thay đổi. 1040 00:46:53,306 --> 00:46:55,492 Kích thước là 3, không phân biệt làm thế nào bạn đánh giá chúng. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 ĐƯỢC. 1043 00:46:58,820 --> 00:47:01,387 Tất cả mọi người tốt? 1044 00:47:01,387 --> 00:47:02,970 Đung Vì vậy, mỗi khi tôi [Không nghe thấy]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 Andi PENG: OK. 1047 00:47:06,940 --> 00:47:13,270 Vì vậy, trong trường hợp này, chúng ta không thực sự nhận được vào nó ngay bây giờ trong khóa học. 1048 00:47:13,270 --> 00:47:16,760 Nhưng biết rằng một string-- như tôi cho biết trước đó, một chuỗi là cơ bản 1049 00:47:16,760 --> 00:47:18,440 một mảng ký tự. 1050 00:47:18,440 --> 00:47:21,430 Vì vậy, nếu tôi tạo ra một mảng dây, tôi loại 1051 00:47:21,430 --> 00:47:24,430 có một mảng của mảng của nhân vật, phải không? 1052 00:47:24,430 --> 00:47:27,720 >> Vì vậy, trong trường hợp này, bởi vì tôi có một mảng các chuỗi, 1053 00:47:27,720 --> 00:47:31,340 nếu bạn đã nhập vào một từ rất lâu, mà vẫn chỉ chiếm một không gian, 1054 00:47:31,340 --> 00:47:33,230 bởi vì đó là một chuỗi. 1055 00:47:33,230 --> 00:47:37,492 Nhưng nếu bạn đã nghĩ các nhân vật của mảng đó, 1056 00:47:37,492 --> 00:47:40,450 thì đó chiếm rất nhiều hơn nhân vật nhiều hơn bất cứ từ nào khác 1057 00:47:40,450 --> 00:47:41,372 là. 1058 00:47:41,372 --> 00:47:42,830 Không thực sự quan trọng đối với ngay bây giờ. 1059 00:47:42,830 --> 00:47:44,921 Nhưng đó chỉ là nói chung làm thế nào nó làm việc. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> ĐƯỢC. 1062 00:47:50,560 --> 00:47:55,840 Vì vậy, đây là một cái gì đó tôi sẽ cho bạn làm rất nhiều trong quá trình học kỳ. 1063 00:47:55,840 --> 00:47:57,500 Tôi cần phải nghỉ ngơi giọng nói của tôi. 1064 00:47:57,500 --> 00:47:59,530 Các bạn cần phải kích thích chính mình. 1065 00:47:59,530 --> 00:48:02,300 Rất nhiều bạn có thể phải ngủ ngay bây giờ. 1066 00:48:02,300 --> 00:48:05,960 Tôi nhập vào vấn đề ngẫu nhiên nơi chúng tôi như là một lớp hay bạn 1067 00:48:05,960 --> 00:48:09,480 với một đối tác bên cạnh bạn đang đi để dành một vài phút thảo luận 1068 00:48:09,480 --> 00:48:14,980 làm thế nào chúng ta sẽ đi về giải quyết hoặc tạo ra một chương trình như thế này. 1069 00:48:14,980 --> 00:48:17,100 >> Vì vậy, ngay bây giờ, chúng tôi muốn để tạo ra một program-- 1070 00:48:17,100 --> 00:48:19,560 chúng ta sẽ gọi nó upper.c-- rằng cải đạo 1071 00:48:19,560 --> 00:48:24,787 một từ chữ thường để một lớp trên chữ hoa string--, xin lỗi. 1072 00:48:24,787 --> 00:48:26,370 Từ trong chuỗi, xin lỗi, là đồng nghĩa. 1073 00:48:26,370 --> 00:48:28,370 Tôi sẽ thay đổi chúng để có cùng một nghĩa. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Yeah. 1076 00:48:33,499 --> 00:48:34,540 Đi một vài phút. 1077 00:48:34,540 --> 00:48:37,130 Nó không phải là được viết bằng ngôn ngữ nào. 1078 00:48:37,130 --> 00:48:39,890 Chỉ trong mã giả hoặc một cách hợp lý như thế nào, chúng tôi sẽ thậm chí 1079 00:48:39,890 --> 00:48:42,083 đi về làm một vấn đề như vậy. 1080 00:48:42,083 --> 00:48:42,583 Yeah. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE thoại] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Tôi cũng nhận thấy rằng các bạn can-- Tôi đã nhìn thấy loại chương trình. 1085 00:49:22,130 --> 00:49:24,600 Tôi đoán tôi thiếu chế độ thuyết trình là một vấn đề. 1086 00:49:24,600 --> 00:49:27,410 Nhưng nó ổn. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE thoại] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Vâng, xin vui lòng, guys. 1090 00:50:04,380 --> 00:50:05,400 Hãy đến nhận kẹo. 1091 00:50:05,400 --> 00:50:06,372 Hãy đến nhận kẹo. 1092 00:50:06,372 --> 00:50:07,698 >> Đung thê! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE thoại] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 Andi PENG: Ngoài ra, yeah, Tôi sẽ bắt đầu ném kẹo 1096 00:50:18,100 --> 00:50:20,280 ở những người không trả lời câu hỏi. 1097 00:50:20,280 --> 00:50:22,260 Vì vậy, bạn nên tất cả các câu trả lời. 1098 00:50:22,260 --> 00:50:24,895 Hoặc Tôi cho rằng những người không trả lời câu hỏi. 1099 00:50:24,895 --> 00:50:26,070 Yeah, cách khác xung quanh. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE thoại] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 Đung [Không nghe thấy] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> Andi PENG: Yeah. 1105 00:51:18,340 --> 00:51:19,340 Yeah. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE thoại] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Tất cả các quyền, guys. 1109 00:51:41,590 --> 00:51:44,731 Đi, như, 10 giây nữa. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE thoại] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, guys. 1113 00:52:11,750 --> 00:52:14,920 Vì vậy, trước khi chúng tôi bắt đầu cố gắng để thực chất viết code, 1114 00:52:14,920 --> 00:52:20,650 một thói quen tốt để phát huy được sức chúng ta muốn loại đầu tiên của lý 1115 00:52:20,650 --> 00:52:22,737 ra một cách hợp lý như thế nào, chúng tôi sẽ làm điều đó. 1116 00:52:22,737 --> 00:52:24,570 Bạn muốn chắc chắn, trước khi bạn có thể chất 1117 00:52:24,570 --> 00:52:27,210 bắt đầu cố gắng để mã trong Mario, mà bạn thực hiện 1118 00:52:27,210 --> 00:52:28,870 chắc chắn rằng bạn có mã giả của bạn. 1119 00:52:28,870 --> 00:52:31,235 Đó là đưa bạn qua những gì bạn cần để tạo nên 1120 00:52:31,235 --> 00:52:33,360 rằng, khi bạn thể chất viết chương trình của bạn sau này, 1121 00:52:33,360 --> 00:52:36,640 bạn có thể tốt hơn để bắt lỗi trong mã và những điều như thế của bạn. 1122 00:52:36,640 --> 00:52:40,460 >> Vì vậy, chúng ta sẽ chỉ bắt đầu tuỳ theo trường bằng tiếng Anh, trong giả, 1123 00:52:40,460 --> 00:52:43,320 không ai muốn cho cho tôi một lời giải thích chung chung 1124 00:52:43,320 --> 00:52:46,250 làm thế nào chúng ta sẽ đi về việc này? 1125 00:52:46,250 --> 00:52:48,102 Yeah. 1126 00:52:48,102 --> 00:52:49,664 >> Đung [không nghe được]. 1127 00:52:49,664 --> 00:52:50,830 Andi PENG: Chắc chắn, không phải lo lắng. 1128 00:52:50,830 --> 00:52:57,233 Đung bạn có thể yêu cầu nó hay hỏi một người nào đó để có được chuỗi 1-- yeah, chuỗi, 1129 00:52:57,233 --> 00:52:58,160 và sau đó-- 1130 00:52:58,160 --> 00:52:59,826 >> Andi PENG: Có, vì vậy đây là một khởi đầu tốt. 1131 00:52:59,826 --> 00:53:01,972 Tôi sẽ bắt đầu đánh máy, xin lỗi, như bạn nói. 1132 00:53:01,972 --> 00:53:02,471 Vì thế-- 1133 00:53:02,471 --> 00:53:05,698 >> Đung --Thông chữ thường con số này cao hơn, phải không? 1134 00:53:05,698 --> 00:53:08,519 Hoặc các chữ cái viết thường có số lượng cao? 1135 00:53:08,519 --> 00:53:09,310 Andi PENG: Chính xác. 1136 00:53:09,310 --> 00:53:16,156 Đung Vì vậy, sau đó chúng tôi loại trừ 32 từ bất cứ điều gì [không nghe được]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> Andi PENG: Great. 1139 00:53:29,870 --> 00:53:35,020 Vì vậy, chúng ta hẳn sẽ có một cảm giác chung làm thế nào để làm việc về vấn đề này. 1140 00:53:35,020 --> 00:53:40,060 Biết rằng chúng tôi đã loại học cách vật lý chuỗi 1141 00:53:40,060 --> 00:53:43,320 được lưu trữ trong bộ nhớ, làm những gì bạn đã 1142 00:53:43,320 --> 00:53:45,920 biết rằng bạn đang đi để có thể phải viết trong mã của bạn 1143 00:53:45,920 --> 00:53:48,288 để di chuyển qua các chuỗi? 1144 00:53:48,288 --> 00:53:49,259 >> Đung Đối với loop. 1145 00:53:49,259 --> 00:53:50,550 Andi PENG: Một vòng lặp for, chính xác. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Thật tuyệt. 1148 00:53:57,220 --> 00:54:00,539 Vì vậy, chúng ta hẳn sẽ có một chung giả viết ra 1149 00:54:00,539 --> 00:54:02,330 loại đó là đem lại cho bạn lưu ý về cách bạn 1150 00:54:02,330 --> 00:54:03,900 sẽ di chuyển về việc giải quyết vấn đề. 1151 00:54:03,900 --> 00:54:06,150 Bây giờ bạn có điều này, bạn có thể tham khảo nó cho sau này 1152 00:54:06,150 --> 00:54:08,233 trên khi bạn đang cố gắng để thực sự viết code của bạn. 1153 00:54:08,233 --> 00:54:10,240 Vì vậy, chúng tôi thực sự có thể đi đây. 1154 00:54:10,240 --> 00:54:25,130 Và tôi đã có một chức năng gọi là upper.c-- có nó is-- chỉ một mẫu trống 1155 00:54:25,130 --> 00:54:28,510 ngay bây giờ rằng các bạn sẽ giúp tôi tìm ra làm thế nào để viết 1156 00:54:28,510 --> 00:54:30,430 dòng này của code-- không dòng mã. 1157 00:54:30,430 --> 00:54:32,890 Nó sẽ có nhiều dòng mã. 1158 00:54:32,890 --> 00:54:35,710 >> Khi bắt đầu bất kỳ loại của pset trống, những gì 1159 00:54:35,710 --> 00:54:37,418 điều đầu tiên tôi cần nhớ để làm gì? 1160 00:54:37,418 --> 00:54:39,290 >> Đung [không nghe được]. 1161 00:54:39,290 --> 00:54:41,000 >> Andi PENG: Great Yep. 1162 00:54:41,000 --> 00:54:41,500 Bao gồm. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Thông thường đây là một trong những sai lầm dễ dàng hầu hết mọi người 1166 00:54:49,640 --> 00:54:51,598 sẽ thực hiện khi họ đang viết, là họ sẽ 1167 00:54:51,598 --> 00:54:54,180 quên bao gồm một thư viện quan trọng mà họ cần. 1168 00:54:54,180 --> 00:54:57,689 Vì vậy, nếu đó là giờ làm việc và bạn giống như, Tôi không biết lý do tại sao mã của tôi không hoạt động. 1169 00:54:57,689 --> 00:54:59,230 Bạn có thể cho tôi biết lý do tại sao nó không làm việc? 1170 00:54:59,230 --> 00:55:00,730 Chúng ta sẽ nói rằng bạn đã #include? 1171 00:55:00,730 --> 00:55:02,520 Bạn nên #include nó. 1172 00:55:02,520 --> 00:55:03,270 ĐƯỢC. 1173 00:55:03,270 --> 00:55:07,230 >> Vì vậy, chúng tôi đã có các tiêu chuẩn I / O ở đây. 1174 00:55:07,230 --> 00:55:10,740 Là thư viện duy nhất chúng ta sẽ cần ở đây? 1175 00:55:10,740 --> 00:55:12,681 Chúng tôi Những gì người khác sẽ làm gì? 1176 00:55:12,681 --> 00:55:13,180 Lấy làm tiếc. 1177 00:55:13,180 --> 00:55:14,562 Có người chỉ la hét nó ra? 1178 00:55:14,562 --> 00:55:15,666 >> Đung [không nghe được]. 1179 00:55:15,666 --> 00:55:16,666 Andi PENG: Có bạn đi. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 ĐƯỢC. 1182 00:55:21,440 --> 00:55:26,070 Và làm thế nào để tôi đi về bắt đầu bất kỳ loại chức năng, bất kỳ loại chức năng chính 1183 00:55:26,070 --> 00:55:28,760 trong chương trình của chúng tôi? 1184 00:55:28,760 --> 00:55:30,020 Int chính. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 ĐƯỢC. 1187 00:55:35,030 --> 00:55:35,970 Tôi đặt những gì bên trong ở đây? 1188 00:55:35,970 --> 00:55:37,640 Điều đầu tiên bạn muốn làm là gì? 1189 00:55:37,640 --> 00:55:39,910 Nếu chúng ta muốn có được một chuỗi từ người dùng, 1190 00:55:39,910 --> 00:55:43,870 được những gì chúng ta sẽ có làm trên dòng đầu tiên này? 1191 00:55:43,870 --> 00:55:46,120 Xin lỗi, các bạn chỉ cảm thấy miễn phí để lên tiếng và lớn. 1192 00:55:46,120 --> 00:55:47,123 Chỉ hét ra bất cứ điều gì. 1193 00:55:47,123 --> 00:55:48,772 >> Đung hỏi người sử dụng? 1194 00:55:48,772 --> 00:55:49,980 Andi PENG: Làm thế nào để chúng tôi làm điều đó? 1195 00:55:49,980 --> 00:55:51,873 Ask-- tôi sẽ gõ "yêu cầu người sử dụng"? 1196 00:55:51,873 --> 00:55:52,600 >> Đung Printf. 1197 00:55:52,600 --> 00:55:54,341 >> Andi PENG: OK. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Tôi muốn gì printf? 1200 00:55:57,372 --> 00:55:58,776 >> Đung Gõ vào một cái gì đó. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> Andi PENG: Giống như điều đó không? 1203 00:56:03,840 --> 00:56:05,430 Guys, giả vờ như tôi là một máy tính. 1204 00:56:05,430 --> 00:56:08,475 Thể chất cho tôi từng bước rằng tôi cần phải gõ vào đây? 1205 00:56:08,475 --> 00:56:09,600 Tôi làm điều gì sai? 1206 00:56:09,600 --> 00:56:10,743 Tôi nên đã gõ một cái gì đó? 1207 00:56:10,743 --> 00:56:11,690 >> Đung Bạn cần dấu ngoặc kép. 1208 00:56:11,690 --> 00:56:12,380 >> Andi Peng: Tôi cần báo giá? 1209 00:56:12,380 --> 00:56:12,880 ĐƯỢC. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 ĐƯỢC. 1212 00:56:16,297 --> 00:56:17,698 >> Đung Và dòng sau đó mới. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Dấu chấm phẩy. 1215 00:56:22,465 --> 00:56:23,340 Andi PENG: dấu chấm phẩy? 1216 00:56:23,340 --> 00:56:24,060 ĐƯỢC. 1217 00:56:24,060 --> 00:56:24,560 Tốt. 1218 00:56:24,560 --> 00:56:27,060 >> Đung Và có thể chỉ định mà bạn muốn nó ở dạng chữ thường? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> Andi PENG: Great. 1221 00:56:31,415 --> 00:56:33,540 Các bạn cười tôi quên đặt một dấu chấm phẩy. 1222 00:56:33,540 --> 00:56:36,350 Tôi đảm bảo với bạn một nơi nào đó trong quá trình của lớp này, 1223 00:56:36,350 --> 00:56:38,260 bạn sẽ quên đặt một dấu chấm phẩy, và nó 1224 00:56:38,260 --> 00:56:41,116 sẽ đưa bạn ba giờ để tìm hiểu tại sao mã của bạn không làm việc. 1225 00:56:41,116 --> 00:56:42,240 Nó đã xảy ra với tất cả chúng ta. 1226 00:56:42,240 --> 00:56:43,950 Nó có thể sẽ xảy ra với bạn. 1227 00:56:43,950 --> 00:56:46,352 Nhận được trong một thói quen tốt của việc sử dụng dấu chấm phẩy. 1228 00:56:46,352 --> 00:56:46,852 ĐƯỢC. 1229 00:56:46,852 --> 00:56:49,010 >> Đung Bạn có muốn để làm dấu chéo ngược trong? 1230 00:56:49,010 --> 00:56:50,398 >> Andi PENG: Chắc chắn rồi. 1231 00:56:50,398 --> 00:56:51,856 Bạn có muốn làm các dấu gạch chéo ngược trong? 1232 00:56:51,856 --> 00:56:53,020 >> Đung thê. 1233 00:56:53,020 --> 00:56:54,330 >> Andi PENG: Great. 1234 00:56:54,330 --> 00:56:54,830 ĐƯỢC. 1235 00:56:54,830 --> 00:56:57,872 Tôi phải làm gì tiếp theo? 1236 00:56:57,872 --> 00:56:58,964 >> Đung Nhận chuỗi. 1237 00:56:58,964 --> 00:56:59,880 Andi PENG: Nhận chuỗi. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Vì vậy, tôi gõ những gì? 1240 00:57:03,830 --> 00:57:04,233 Ai đó? 1241 00:57:04,233 --> 00:57:05,040 >> Đung String s. 1242 00:57:05,040 --> 00:57:05,873 >> Andi PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 Đung GetString. 1244 00:57:07,251 --> 00:57:09,000 Andi PENG: Ai đó, bạn có thể cho tôi biết nơi 1245 00:57:09,000 --> 00:57:12,000 hàm GetString này là đến từ đâu? 1246 00:57:12,000 --> 00:57:13,660 >> Đung string.h. 1247 00:57:13,660 --> 00:57:15,256 >> Andi PENG: string.h? 1248 00:57:15,256 --> 00:57:16,715 Bạn nghĩ rằng đó là từ string.h? 1249 00:57:16,715 --> 00:57:17,830 >> Đung [không nghe được]. 1250 00:57:17,830 --> 00:57:18,830 >> Andi PENG: Có bạn đi. 1251 00:57:18,830 --> 00:57:21,280 Đó là từ CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Nếu bạn luôn luôn nhầm lẫn về một nơi tập tin thư viện là hoặc một tập tin tiêu đề là, 1253 00:57:24,530 --> 00:57:28,450 google nghĩa đen string.h, và tôi sẽ cho bạn biết 1254 00:57:28,450 --> 00:57:30,450 là những gì tất cả các chức năng đó là trong string.h. 1255 00:57:30,450 --> 00:57:31,340 ĐƯỢC. 1256 00:57:31,340 --> 00:57:35,210 >> Vì vậy, bây giờ mà tôi đã tạo ra một chuỗi và tôi đã nhắc nhở người dùng nó, 1257 00:57:35,210 --> 00:57:38,770 Tôi đã cất nó trong một biến tên là s, những gì tôi cần phải làm gì bây giờ? 1258 00:57:38,770 --> 00:57:40,652 >> Đung Kiểm tra nếu nó ở dạng chữ thường. 1259 00:57:40,652 --> 00:57:41,360 Andi PENG: Xin lỗi? 1260 00:57:41,360 --> 00:57:42,545 Đung Kiểm tra nếu nó ở dạng chữ thường. 1261 00:57:42,545 --> 00:57:44,045 Andi PENG: Được rồi, chúng ta hãy làm điều đó. 1262 00:57:44,045 --> 00:57:45,857 Làm thế nào để làm điều đó? 1263 00:57:45,857 --> 00:57:47,940 Trên thực tế, cho các mục đích của lớp ngay bây giờ, 1264 00:57:47,940 --> 00:57:50,330 chúng tôi chỉ cần đi để cho rằng mọi thứ 1265 00:57:50,330 --> 00:57:52,620 rằng đầu vào, chúng tôi đã có trong chữ thường. 1266 00:57:52,620 --> 00:57:55,430 Nếu bạn muốn kiểm tra, bạn sẽ chỉ cần thêm một câu lệnh điều kiện 1267 00:57:55,430 --> 00:57:59,640 mà kiểm tra, chạy qua mỗi phần tử mảng duy nhất 1268 00:57:59,640 --> 00:58:02,540 và kiểm tra nếu nó giữa các giá trị nhất định. 1269 00:58:02,540 --> 00:58:05,627 Tôi quên những gì số các giá trị của chữ viết thường. 1270 00:58:05,627 --> 00:58:07,210 Bạn có thể tìm nó lên trên các bảng mã ASCII. 1271 00:58:07,210 --> 00:58:08,800 Nhưng yeah, đó là một điểm thực sự tốt. 1272 00:58:08,800 --> 00:58:11,758 Nhưng ngay bây giờ, chúng tôi chỉ cần đi để giả định rằng tất cả các chuỗi đầu vào chúng tôi 1273 00:58:11,758 --> 00:58:13,130 là chữ thường. 1274 00:58:13,130 --> 00:58:13,870 ĐƯỢC. 1275 00:58:13,870 --> 00:58:18,069 >> Vì vậy, làm thế nào tôi sẽ đi về Vấn đề này tiếp theo? 1276 00:58:18,069 --> 00:58:18,860 Đung Đối với loop. 1277 00:58:18,860 --> 00:58:19,340 Andi PENG: Đối với các vòng lặp? 1278 00:58:19,340 --> 00:58:19,839 ĐƯỢC. 1279 00:58:19,839 --> 00:58:20,847 Nói cho tôi biết những gì để đánh. 1280 00:58:20,847 --> 00:58:25,230 >> Đung Đối int i bằng 0. 1281 00:58:25,230 --> 00:58:27,230 >> Andi PENG: OK. 1282 00:58:27,230 --> 00:58:36,350 >> Đung Oh, thực sự, sau đó bạn làm một dấu phẩy và làm n bằng strlen. 1283 00:58:36,350 --> 00:58:38,940 >> Andi PENG: điều quan trọng Vì vậy, mà tôi nghĩ rằng cô ấy nhận thấy ở đây 1284 00:58:38,940 --> 00:58:42,936 là chúng ta đã không phải nói int n lần thứ hai chúng tôi đã làm điều này. 1285 00:58:42,936 --> 00:58:45,060 Chỉ biết rằng trong một cho vòng lặp khi bạn khai báo, 1286 00:58:45,060 --> 00:58:47,934 bạn thực sự không cần các int của lần thứ hai bạn làm một biến. 1287 00:58:47,934 --> 00:58:51,202 Bạn có thể nói n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> Đung Of s. 1289 00:58:52,620 --> 00:58:53,510 >> Andi PENG: s. 1290 00:58:53,510 --> 00:58:54,706 ĐƯỢC. 1291 00:58:54,706 --> 00:58:58,370 >> Đung Sau đó, một dấu chấm phẩy. 1292 00:58:58,370 --> 00:59:00,130 >> Andi PENG: Chắc chắn rồi. 1293 00:59:00,130 --> 00:59:04,050 >> Đung Và sau đó [Không nghe thấy] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Sau đó, i ++. 1296 00:59:09,460 --> 00:59:11,780 >> Andi PENG: Great. 1297 00:59:11,780 --> 00:59:12,280 Được rồi. 1298 00:59:12,280 --> 00:59:14,690 Chúng ta muốn gì bên trong điều này cho vòng lặp bây giờ? 1299 00:59:14,690 --> 00:59:17,820 Hãy nhớ rằng, nếu chúng ta sẽ chạy qua một chuỗi và chạy thông qua một mảng, 1300 00:59:17,820 --> 00:59:19,287 chúng tôi muốn kiểm tra những thứ trong đó. 1301 00:59:19,287 --> 00:59:20,370 Chúng ta sẽ cần đến? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Đây là loại phần khó khăn hiện nay. 1304 00:59:26,900 --> 00:59:27,960 Bất cứ ai cũng có một đoán? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> ĐƯỢC. 1307 00:59:34,690 --> 00:59:37,830 Vì vậy, đầu tiên, làm thế nào để chúng ta thậm chí truy cập? 1308 00:59:37,830 --> 00:59:41,610 Làm thế nào để chúng tôi thậm chí kiểm tra đầu tiên hoặc truy cập vào một phần tử trong mảng? 1309 00:59:41,610 --> 00:59:42,920 Làm thế nào để chúng tôi làm điều đó? 1310 00:59:42,920 --> 00:59:47,120 Các ký hiệu, chúng tôi sử dụng để làm điều đó là gì? 1311 00:59:47,120 --> 00:59:50,920 Tên của mảng này là gọi là gì? 1312 00:59:50,920 --> 00:59:52,400 Nó được gọi là s, phải không? 1313 00:59:52,400 --> 00:59:54,850 >> Hãy nhớ rằng, bất kỳ chuỗi luôn luôn là một mảng. 1314 00:59:54,850 --> 00:59:58,210 Vì vậy, khung s i, phải không? 1315 00:59:58,210 --> 01:00:01,360 Bởi vì đó là giá trị hiện tại hoặc giá trị chỉ số, chúng tôi đang kiểm tra. 1316 01:00:01,360 --> 01:00:05,156 Và chúng ta sẽ thiết lập đó bằng đối với: chúng tôi muốn có một giá trị chữ thường, phải không? 1317 01:00:05,156 --> 01:00:07,530 Chúng tôi muốn biến mà lower-- xin lỗi, chúng ta muốn một chữ hoa. 1318 01:00:07,530 --> 01:00:10,014 Chúng tôi muốn biến chữ thường giá trị vào một chữ hoa. 1319 01:00:10,014 --> 01:00:11,805 Và như vậy like-- Tôi xin lỗi, Bạn tên là gì? 1320 01:00:11,805 --> 01:00:12,580 >> Đung Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> Andi PENG: Xin lỗi? 1322 01:00:12,940 --> 01:00:13,280 >> Đung Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> Andi PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Giống như Heidi nói Ban đầu, chúng tôi có thể 1325 01:00:15,850 --> 01:00:20,330 sẽ cần the-- chúng tôi có lẽ sẽ phải trừ đi 1326 01:00:20,330 --> 01:00:22,630 32 từ bất cứ charc mà, phải không? 1327 01:00:22,630 --> 01:00:24,680 Bởi vì trên một ASCII bảng, sự khác biệt 1328 01:00:24,680 --> 01:00:27,790 giữa một chữ cái thường và một ký tự hoa là 32. 1329 01:00:27,790 --> 01:00:31,290 Vì vậy, khi chúng tôi đang làm điều này, chúng tôi có thể sẽ muốn trừ đi 32, phải không? 1330 01:00:31,290 --> 01:00:33,910 >> Vì vậy, chúng tôi đang đi làm s i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Có tất cả mọi người hiểu được lý do tại sao tôi đã làm điều đó? 1333 01:00:41,200 --> 01:00:45,760 Bởi vì ngay bây giờ, trong mảng của chúng tôi, chúng tôi đang kiểm tra các chỉ số 0, phải không? 1334 01:00:45,760 --> 01:00:49,190 Và trong số 0 của chuỗi, đó là nhân vật đầu tiên. 1335 01:00:49,190 --> 01:00:51,820 Và nhân vật mà chúng ta đang đi để giả định đó là chữ thường. 1336 01:00:51,820 --> 01:00:55,980 Nếu chúng ta muốn làm cho nó chữ hoa, chúng tôi phải trừ đi 32 từ giá trị của nó, 1337 01:00:55,980 --> 01:00:58,620 bởi vì trong ASCII của chúng tôi bảng, đó là cách mà chúng tôi có được nó 1338 01:00:58,620 --> 01:01:01,600 tiếp theo tương ứng giá trị mà làm cho nó thành chữ hoa. 1339 01:01:01,600 --> 01:01:03,714 Có phải mọi người hiểu điều đó không? 1340 01:01:03,714 --> 01:01:04,213 Yeah. 1341 01:01:04,213 --> 01:01:06,530 >> Đung Có thể bạn cũng làm chữ thường một minus-- 1342 01:01:06,530 --> 01:01:08,080 >> Andi PENG: Yeah, vì vậy đó là thực sự thực sự tốt. 1343 01:01:08,080 --> 01:01:10,455 Tôi sẽ trở lại mà câu hỏi sau khi chúng ta làm điều này. 1344 01:01:10,455 --> 01:01:11,060 Yeah. 1345 01:01:11,060 --> 01:01:13,940 Và sau đó nếu tôi muốn xem những gì đang xảy ra, 1346 01:01:13,940 --> 01:01:16,180 Tôi rất có thể sẽ muốn in, phải không? 1347 01:01:16,180 --> 01:01:19,930 Ai đó cho tôi biết những gì Tôi muốn in ở đây. 1348 01:01:19,930 --> 01:01:29,160 >> Đung printf phần trăm c backslash [không nghe được]. 1349 01:01:29,160 --> 01:01:33,570 Đó là giá trị của [Không nghe thấy] s i. 1350 01:01:33,570 --> 01:01:34,614 >> Andi PENG: s i, xin lỗi? 1351 01:01:34,614 --> 01:01:35,530 Đung [không nghe được]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 Andi Peng: Tôi không biết. 1354 01:01:39,550 --> 01:01:40,600 Bạn nghĩ sao? 1355 01:01:40,600 --> 01:01:44,016 >> Đung Vâng, tôi wouldn't-- Tôi đoán tôi sẽ không bring-- 1356 01:01:44,016 --> 01:01:46,944 Tôi sẽ mang nó ra bên trong, bởi vì [không nghe được]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 Andi Peng: Oh, bạn đã có thể làm được điều đó? 1359 01:01:51,392 --> 01:01:53,867 Đung Yeah. 1360 01:01:53,867 --> 01:01:56,700 Andi PENG: Hãy để sau đường nó là, và tôi sẽ giải thích lý do tại sao sau đó. 1361 01:01:56,700 --> 01:01:58,533 Hãy nhớ rằng, ngay cả khi bạn có một giữ chỗ, 1362 01:01:58,533 --> 01:02:00,701 bạn muốn đặt dấu ngoặc xung quanh nó. 1363 01:02:00,701 --> 01:02:01,200 Được rồi. 1364 01:02:01,200 --> 01:02:04,810 Vì vậy, đây phải là một chức năng vững chắc ở đây. 1365 01:02:04,810 --> 01:02:06,370 Hãy chạy nó và xem nếu nó biên dịch. 1366 01:02:06,370 --> 01:02:08,750 Làm trên. 1367 01:02:08,750 --> 01:02:09,250 Uh-oh. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Điều đó không nhìn quá tốt. 1370 01:02:13,340 --> 01:02:14,507 Tại sao điều này xảy ra? 1371 01:02:14,507 --> 01:02:17,340 Như với bất kỳ lỗi, bạn muốn đi trở lại và bắt đầu với một trong những đầu tiên, 1372 01:02:17,340 --> 01:02:20,630 vì thường gây ra một lỗi rất nhiều lỗi khác sau khi nó. 1373 01:02:20,630 --> 01:02:26,700 Ở đây chúng ta thấy upper.c: 18: 25, trong đó kể tôi trong chương trình này có tên upper.c, 1374 01:02:26,700 --> 01:02:33,800 on line 18, lỗi ngầm tuyên bố thư viện hàm strlen với loại 1375 01:02:33,800 --> 01:02:36,330 blah unassigned--, tôi không biết những gì đang xảy ra sau đó. 1376 01:02:36,330 --> 01:02:39,990 >> Tất cả nó nói với tôi ngay bây giờ là một cái gì đó đang xảy ra trên strlen. 1377 01:02:39,990 --> 01:02:43,520 Và các máy tính đang bối rối, bởi vì nó như thế, tôi không biết những gì là strlen? 1378 01:02:43,520 --> 01:02:45,520 Điều đó có lẽ cho bạn biết bạn đang bị thiếu? 1379 01:02:45,520 --> 01:02:46,490 >> Đung Bạn đang thiếu [không nghe được]. 1380 01:02:46,490 --> 01:02:47,630 >> Andi PENG: Bạn nói đúng. 1381 01:02:47,630 --> 01:02:49,510 Đúng như vậy. 1382 01:02:49,510 --> 01:02:52,140 Vì vậy, đây là nơi mà nó quan trọng để đảm bảo 1383 01:02:52,140 --> 01:02:56,970 mà mỗi chức năng bạn sử dụng trong của bạn đang có những tiêu đề chính xác 1384 01:02:56,970 --> 01:02:59,660 nộp cho thư viện, hoặc người nào khác bạn sẽ nhận được rất nhiều lỗi 1385 01:02:59,660 --> 01:03:01,150 và mã của bạn không phải là đi để biết những gì đang xảy ra. 1386 01:03:01,150 --> 01:03:03,050 Vì vậy, chúng ta sẽ bao gồm string.h đây. 1387 01:03:03,050 --> 01:03:06,270 >> Bây giờ khi chúng tôi cố gắng để biên dịch trên. 1388 01:03:06,270 --> 01:03:08,410 Biên dịch một cách chính xác. 1389 01:03:08,410 --> 01:03:09,960 Hãy chạy chương trình này. 1390 01:03:09,960 --> 01:03:12,000 Vì vậy, cái gì đó kiểu chữ thường. 1391 01:03:12,000 --> 01:03:14,920 Những gì các bạn muốn gõ? 1392 01:03:14,920 --> 01:03:16,546 Hét ra một cái gì đó. 1393 01:03:16,546 --> 01:03:17,920 Tất cả các quyền, Charly chỉ bước vào. 1394 01:03:17,920 --> 01:03:18,990 Chúng tôi sẽ gõ tên của Charly. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly trong chữ thường. 1397 01:03:22,840 --> 01:03:27,742 Và hy vọng, hy vọng, đây là sẽ hét lên và nhổ ra 1398 01:03:27,742 --> 01:03:28,575 Charly chữ hoa. 1399 01:03:28,575 --> 01:03:30,830 Yay! 1400 01:03:30,830 --> 01:03:33,430 ai cũng hiểu như thế nào Tôi đã đi đến việc giải quyết đó? 1401 01:03:33,430 --> 01:03:36,190 Cách mà tôi có thể thao tác sử dụng số nguyên 1402 01:03:36,190 --> 01:03:39,410 để giải quyết cái gì đó Tôi muốn làm trong chuỗi, 1403 01:03:39,410 --> 01:03:44,390 bởi vì các ký tự và số nguyên thể được tham chiếu trong cùng một cách bởi vì 1404 01:03:44,390 --> 01:03:45,540 lập bản đồ ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Vì vậy, để trở lại với quan điểm của bạn, nếu tôi muốn đặt ở đây thay vì 32 1406 01:03:52,890 --> 01:03:58,959 chữ hoa chữ thường A trừ một giống như rằng, đó sẽ làm việc như nhau là tốt, 1407 01:03:58,959 --> 01:04:01,750 vì đó đơn giản chỉ là Sự khác biệt giữa hai giá trị. 1408 01:04:01,750 --> 01:04:09,570 Nếu tôi muốn làm cho Charly again-- này. 1409 01:04:09,570 --> 01:04:10,320 Ồ không. 1410 01:04:10,320 --> 01:04:11,820 Tôi nghĩ rằng chúng tôi đã đi sai đường, yeah? 1411 01:04:11,820 --> 01:04:13,260 >> Đung [Không nghe thấy] chữ thường a. 1412 01:04:13,260 --> 01:04:14,260 >> Andi PENG: Có bạn đi. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Yep. 1415 01:04:22,880 --> 01:04:24,920 Và ra spits Charly. 1416 01:04:24,920 --> 01:04:28,020 Vì vậy, hãy cẩn thận khi bạn trừ đi giá trị 1417 01:04:28,020 --> 01:04:30,400 nhớ đó là một trong lớn hơn khác. 1418 01:04:30,400 --> 01:04:35,220 Ví dụ, ở đây tôi quên mà thực sự là một chữ thường 1419 01:04:35,220 --> 01:04:38,540 lớn hơn chữ hoa A. Vì vậy, khi tôi cố gắng để trừ chúng theo cách khác 1420 01:04:38,540 --> 01:04:40,600 xung quanh, tôi đã âm 32. 1421 01:04:40,600 --> 01:04:42,800 Và máy tính của tôi là như thế, Tôi không biết đó là gì. 1422 01:04:42,800 --> 01:04:45,810 Đó là xác suất chỉ là một số ngẫu nhiên giá trị đó không phải là rất tốt. 1423 01:04:45,810 --> 01:04:48,760 Và do đó hãy chắc chắn rằng bạn đang trừ đi trong chiều dài chính xác 1424 01:04:48,760 --> 01:04:52,831 để tìm các ký tự bạn muốn. 1425 01:04:52,831 --> 01:04:53,330 ĐƯỢC. 1426 01:04:53,330 --> 01:04:58,550 Có ai nhầm lẫn về cách chúng tôi đi về cách viết chức năng này? 1427 01:04:58,550 --> 01:04:59,180 ĐƯỢC. 1428 01:04:59,180 --> 01:05:04,830 Vì vậy, trên thực tế, một chức năng đã tồn tại trong thư viện được gọi ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Các thư viện được gọi là ctype.h. 1430 01:05:06,417 --> 01:05:08,500 Chức năng này thực sự là đã viết cho bạn. 1431 01:05:08,500 --> 01:05:10,820 Nó được gọi là để phía trên. 1432 01:05:10,820 --> 01:05:13,027 >> Và như vậy với mục đích pset này, bạn đang đi 1433 01:05:13,027 --> 01:05:15,860 để thấy rằng bạn thực sự muốn sử dụng rất nhiều các chức năng chứa 1434 01:05:15,860 --> 01:05:17,390 trong thư viện CType. 1435 01:05:17,390 --> 01:05:21,040 Để thượng, hạ, là thượng, là lower-- đó là tất cả các chức năng 1436 01:05:21,040 --> 01:05:24,914 rằng bạn sẽ có thể sử dụng rất, rất nhanh chóng trong mã của riêng bạn mà 1437 01:05:24,914 --> 01:05:26,080 thực hiện chính xác những gì điều này. 1438 01:05:26,080 --> 01:05:28,941 Chúng tôi đã viết ra như thế nào để chuyển đổi một chuỗi sang chữ hoa. 1439 01:05:28,941 --> 01:05:31,440 Nhưng điều này thực sự là mã rằng ai đó đã viết 1440 01:05:31,440 --> 01:05:33,800 và rằng bạn có thể truy cập qua một chức năng khác nhau. 1441 01:05:33,800 --> 01:05:34,300 Yeah? 1442 01:05:34,300 --> 01:05:39,570 >> Đung Vì vậy, bạn chỉ cần sao chép của một trong đó và làm điều đó cho mỗi chữ cái? 1443 01:05:39,570 --> 01:05:42,070 >> Andi PENG: Vâng, bởi vì tôi không quan tâm đến các giá trị của a. 1444 01:05:42,070 --> 01:05:44,540 Tôi chỉ quan tâm rằng sự khác biệt giữa chúng là 32, phải không? 1445 01:05:44,540 --> 01:05:48,210 Sự khác biệt giữa chữ thường b và chữ hoa B cũng là 32. 1446 01:05:48,210 --> 01:05:50,860 Và sự khác biệt giữa c và chữ hoa C luôn luôn là 32. 1447 01:05:50,860 --> 01:05:53,235 >> Tôi chỉ cần phải quan tâm đến Sự khác biệt giữa hai, 1448 01:05:53,235 --> 01:05:56,666 bởi vì tất cả các chữ cái theo cùng một khuôn mẫu, phải không? 1449 01:05:56,666 --> 01:05:58,540 Nếu tôi có sự khác biệt giữa một trong số họ, 1450 01:05:58,540 --> 01:06:01,050 Tôi biết những gì khác biệt giữa tất cả trong số họ. 1451 01:06:01,050 --> 01:06:01,740 Câu hỏi hay. 1452 01:06:01,740 --> 01:06:04,090 Yeah. 1453 01:06:04,090 --> 01:06:06,660 Tất cả mọi người tốt? 1454 01:06:06,660 --> 01:06:09,080 ĐƯỢC. 1455 01:06:09,080 --> 01:06:09,580 Oop. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> ĐƯỢC. 1458 01:06:15,270 --> 01:06:20,310 Vì vậy, khái niệm khác đó là sẽ rất hữu ích khi bạn 1459 01:06:20,310 --> 01:06:22,570 tiếp tục phát triển mã của bạn là ý tưởng này 1460 01:06:22,570 --> 01:06:25,430 của việc tạo ra các chức năng hoặc trừu tượng. 1461 01:06:25,430 --> 01:06:28,479 Vì vậy, ngay bây giờ, chúng tôi đã thực hiện tất cả các đại số. 1462 01:06:28,479 --> 01:06:31,770 Trong đại số, bạn được dạy rằng có Điều tuyệt vời này được gọi là một chức năng 1463 01:06:31,770 --> 01:06:35,300 máy, mà nếu bạn đầu vào một loại số, 1464 01:06:35,300 --> 01:06:38,720 nó chạy qua chức năng tuyệt vời này và ra khỏi hiện ra một đầu ra khác nhau, phải không? 1465 01:06:38,720 --> 01:06:42,220 Trong mã, điều tương tự sẽ xảy ra trong bất kỳ loại chức năng. 1466 01:06:42,220 --> 01:06:48,230 >> Vì vậy, tôi có thể thể chất viết trong cơ thể của tôi về code của tôi 1467 01:06:48,230 --> 01:06:52,357 một tuyên bố chính mà thực sự làm bất cứ điều gì cơ thể của mã đang làm. 1468 01:06:52,357 --> 01:06:54,940 Nhưng bên ngoài đó, tôi cũng có thể viết nhiều chức năng khác nhau 1469 01:06:54,940 --> 01:06:56,320 mà làm nhiều việc khác nhau. 1470 01:06:56,320 --> 01:06:58,570 Ví dụ, chúng tôi đã đã bắt đầu sử dụng một số trong số họ. 1471 01:06:58,570 --> 01:07:00,610 Printf-- đó là một chức năng mà người khác 1472 01:07:00,610 --> 01:07:02,870 đã viết rằng chúng ta có thể gọi trong mã của chúng tôi. 1473 01:07:02,870 --> 01:07:05,410 Để upper-- trong trường hợp này, upper-- là một chức năng khác 1474 01:07:05,410 --> 01:07:07,330 chúng tôi đã viết rằng chúng ta có thể gọi trong mã của chúng tôi. 1475 01:07:07,330 --> 01:07:09,520 Và vì vậy tôi đoán tại sao chúng tôi thậm chí có chức năng này? 1476 01:07:09,520 --> 01:07:12,100 Tại sao chúng ta không chỉ tiếng tom nó tất cả trong cùng một dòng mã? 1477 01:07:12,100 --> 01:07:13,730 Nó làm cho nó dễ dàng cho tất cả mọi người. 1478 01:07:13,730 --> 01:07:19,200 >> Vâng, lý do đằng sau đó là, trước hết, tổ chức. 1479 01:07:19,200 --> 01:07:21,880 Nó thực sự gây phiền nhiễu đi thông qua mã của ai đó 1480 01:07:21,880 --> 01:07:25,110 và một chức năng như printf. 1481 01:07:25,110 --> 01:07:28,570 Nếu các bạn thực sự biết những gì hàm printf kéo theo để viết, 1482 01:07:28,570 --> 01:07:30,530 đó là, như, 1.000 dòng mã. 1483 01:07:30,530 --> 01:07:32,357 >> Nếu mỗi lần muốn printf một cái gì đó, 1484 01:07:32,357 --> 01:07:35,440 Tôi đã phải viết 1.000 dòng mã, đó sẽ là thực sự gây phiền nhiễu để đọc, 1485 01:07:35,440 --> 01:07:36,290 bên phải? 1486 01:07:36,290 --> 01:07:38,860 Đó là lý do tại sao chúng tôi đã chỉ tạo ra chức năng trừu tượng này 1487 01:07:38,860 --> 01:07:41,670 chúng ta đã có một người nào đó khác đã viết ở một nơi khác. 1488 01:07:41,670 --> 01:07:44,920 Và mỗi lần chúng ta cần phải sử dụng nó trong mã của chúng tôi, chúng tôi chỉ có thể nói printf. 1489 01:07:44,920 --> 01:07:48,070 Và đó có thể sử dụng chức năng ai đó đã viết trong mã của chúng tôi. 1490 01:07:48,070 --> 01:07:51,020 Nó làm cho nó dễ dàng hơn về tổ chức để đọc mã. 1491 01:07:51,020 --> 01:07:53,460 >> Thứ hai, đó là đơn giản hóa. 1492 01:07:53,460 --> 01:07:56,750 Nó đơn giản hóa các bước mà chúng ta có cần thực hiện để giải quyết vấn đề của chúng tôi. 1493 01:07:56,750 --> 01:07:59,300 Printf, chức năng giống như printf, chức năng giống như trên 1494 01:07:59,300 --> 01:08:03,560 là tất cả những điều đó cho phép chúng tôi đơn giản hóa mã của chúng tôi xuống để nó dễ dàng hơn. 1495 01:08:03,560 --> 01:08:05,830 Và điều cuối cùng là có thể dùng lại. 1496 01:08:05,830 --> 01:08:08,710 >> Vì vậy, thực tế là chúng tôi có một chức năng gọi là printf 1497 01:08:08,710 --> 01:08:11,990 rằng chúng ta có thể gọi nhiều khác nhau lần và cho phép nó được tái sử dụng. 1498 01:08:11,990 --> 01:08:14,980 Nếu tôi được viết printf, Tôi chỉ viết nó một lần. 1499 01:08:14,980 --> 01:08:16,439 Nó chỉ tồn tại trong đó một nơi. 1500 01:08:16,439 --> 01:08:19,890 Nếu tôi muốn làm điều đó một lần nữa, tôi sẽ phải sao chép và dán tất cả mà 1501 01:08:19,890 --> 01:08:21,760 vào dòng thứ hai của tôi về code. 1502 01:08:21,760 --> 01:08:24,880 Đó là lý do tại sao nếu chúng ta tạo ra một chức năng mà tồn tại bên ngoài của chính chúng ta, 1503 01:08:24,880 --> 01:08:26,880 chúng ta chỉ có thể kêu gọi nó và tái sử dụng nó bất cứ khi nào 1504 01:08:26,880 --> 01:08:29,604 chúng ta cần để nó dễ dàng hơn nhiều đối với chúng tôi như các chương trình để viết. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Vì vậy, cách mà chúng tôi thực sự sẽ viết một chức năng là rất giống nhau, phải không? 1507 01:08:35,549 --> 01:08:37,590 Đây là loại đầu tiên Chẳng hạn, trong đó chúng tôi sẽ 1508 01:08:37,590 --> 01:08:42,830 thấy một chức năng cất trên một phong cách khác với int void main của chúng tôi. 1509 01:08:42,830 --> 01:08:46,779 Trong trường hợp này, nếu tôi muốn viết một chức năng gọi là q, phải không? 1510 01:08:46,779 --> 01:08:49,370 >> Và các giá trị int đây là tất cả nói với tôi, 1511 01:08:49,370 --> 01:08:51,649 làm những gì tôi muốn điều này chức năng để trở về với tôi? 1512 01:08:51,649 --> 01:08:54,484 Nếu tôi muốn cube một số nguyên, Tôi sẽ muốn đầu vào. 1513 01:08:54,484 --> 01:08:55,525 Đây là các thông số. 1514 01:08:55,525 --> 01:08:58,490 Tôi sẽ nhập vào một giá trị kiểu int. 1515 01:08:58,490 --> 01:09:01,300 Và tôi sẽ quay trở lại một giá trị kiểu int. 1516 01:09:01,300 --> 01:09:03,050 Và ở đây, như bạn có thể thấy, tất cả tôi đang làm 1517 01:09:03,050 --> 01:09:07,300 được Cubing bất cứ đầu vào của tôi là như đầu ra của tôi và trả lại nó. 1518 01:09:07,300 --> 01:09:10,790 >> Vì vậy, tất cả các chức năng này không được có một số loại nguyên. 1519 01:09:10,790 --> 01:09:14,979 Nó sẽ nhân nó bằng chính nó hai lần để nó Cubes có hiệu lực. 1520 01:09:14,979 --> 01:09:17,729 Và sau đó nó sẽ trả về bất cứ điều gì đầu ra đó là. 1521 01:09:17,729 --> 01:09:20,540 Vì vậy, trong trường hợp này, đó là hai dòng mã mà chúng tôi đã phải viết thêm. 1522 01:09:20,540 --> 01:09:22,880 Nhưng nếu chúng ta muốn gọi trên này nhiều lần, 1523 01:09:22,880 --> 01:09:26,210 nó dễ dàng hơn rất nhiều để gõ một mà dòng ngay tại đây đó là trong khối hơn 1524 01:09:26,210 --> 01:09:28,830 phải đi qua nhiều lần. 1525 01:09:28,830 --> 01:09:34,180 >> Vì vậy, cách mà thực chất bất cứ định dạng cho bất kỳ loại chức năng 1526 01:09:34,180 --> 01:09:36,420 sẽ tồn tại giống như ở đây. 1527 01:09:36,420 --> 01:09:38,659 Vì vậy, chúng tôi có các tên hàm. 1528 01:09:38,659 --> 01:09:39,950 Trong trường hợp này, nó được gọi là khối lập phương. 1529 01:09:39,950 --> 01:09:42,033 Và chúng tôi đặt tên cho nó vì khối lập phương nó dễ nhớ. 1530 01:09:42,033 --> 01:09:44,220 Bạn có thể đặt tên cho nó vuông và nó thực sự có thể được cắt nhỏ hinh khôi. 1531 01:09:44,220 --> 01:09:45,500 Không quan trọng. 1532 01:09:45,500 --> 01:09:48,020 Chỉ cần một cái tên mà bạn giao chức năng của bạn. 1533 01:09:48,020 --> 01:09:51,660 >> Quyền này ở đây, int, là kiểu của tham số bạn cần. 1534 01:09:51,660 --> 01:09:54,149 Vì vậy, những gì hiện chức năng này cần để hoạt động? 1535 01:09:54,149 --> 01:09:55,990 Vâng, nó cần một đầu vào. 1536 01:09:55,990 --> 01:09:56,704 Tôi đặt tên nó là đầu vào. 1537 01:09:56,704 --> 01:09:58,120 Bạn có thể đặt tên nó bất cứ điều gì bạn muốn. 1538 01:09:58,120 --> 01:10:00,500 Nhưng tôi cần một cái gì đó kiểu int. 1539 01:10:00,500 --> 01:10:03,730 Nó sẽ thực sự thực thi bất cứ điều gì là bên trong ở đây, 1540 01:10:03,730 --> 01:10:04,990 các cơ quan chức năng. 1541 01:10:04,990 --> 01:10:07,847 Và sau đó là kiểu trả về ngay tại đây, int-- này 1542 01:10:07,847 --> 01:10:09,680 tất cả nó nói với tôi là Chức năng của hàm này là 1543 01:10:09,680 --> 01:10:11,250 sẽ trở về với tôi trong int. 1544 01:10:11,250 --> 01:10:14,460 Vì vậy, nó sẽ mất trong một int, và nó sẽ cho bạn trở lại một int. 1545 01:10:14,460 --> 01:10:17,750 Có phải mọi người hiểu như thế nào định dạng của loại công trình này? 1546 01:10:17,750 --> 01:10:18,250 Mát. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> ĐƯỢC. 1549 01:10:25,740 --> 01:10:31,770 Vì vậy, đừng lo lắng nếu điều này có vẻ một chút trừu tượng ngay bây giờ. 1550 01:10:31,770 --> 01:10:33,450 Đây là điều mà chúng ta sẽ nói về. 1551 01:10:33,450 --> 01:10:36,310 Chúng ta sẽ đi sâu vào sâu hơn sau này trong khóa học. 1552 01:10:36,310 --> 01:10:41,170 Cách mà bất kỳ loại cấp cao hơn trừu tượng của những sự vật hoạt động 1553 01:10:41,170 --> 01:10:43,530 là, trong bộ nhớ, trong máy tính của bạn, tất cả mọi thứ 1554 01:10:43,530 --> 01:10:47,660 được lưu trữ trong loại này của chồng, tôi sẽ nói. 1555 01:10:47,660 --> 01:10:49,070 >> Vì vậy, lên đó ở đầu trang. 1556 01:10:49,070 --> 01:10:50,861 Tôi không biết nếu bạn guys có thể nhìn thấy những gì tốt. 1557 01:10:50,861 --> 01:10:52,590 Tôi sẽ cố gắng để phóng to. 1558 01:10:52,590 --> 01:10:55,111 Dưới đây ở đầu, chúng tôi có văn bản vật lý 1559 01:10:55,111 --> 01:10:57,860 của những gì máy tính là interpreting-- tất cả các số không và những người 1560 01:10:57,860 --> 01:10:59,540 tồn tại trong máy tính của chúng tôi. 1561 01:10:59,540 --> 01:11:03,390 Và sau đó, chúng tôi đã khởi sự dữ liệu và chưa được khởi tạo dữ liệu, 1562 01:11:03,390 --> 01:11:05,340 những gì chúng ta gọi là biến toàn cầu. 1563 01:11:05,340 --> 01:11:08,200 Vì vậy, các biến tồn tại trên tất cả các chương trình 1564 01:11:08,200 --> 01:11:11,815 và trên toàn bộ của bạn, về cơ bản, mã. 1565 01:11:11,815 --> 01:11:13,940 Không phải lo lắng nếu các bạn là loại không rõ ràng về điều này. 1566 01:11:13,940 --> 01:11:16,060 Nó không quan trọng ngay bây giờ. 1567 01:11:16,060 --> 01:11:18,680 >> Và sau đó chúng tôi có những gì được gọi là một đống trong một chồng. 1568 01:11:18,680 --> 01:11:21,140 Hãy suy nghĩ của một chồng theo nghĩa đen như giống như một đống thứ, 1569 01:11:21,140 --> 01:11:23,098 một chồng khác nhau thứ bị đẩy lên trên 1570 01:11:23,098 --> 01:11:27,870 của nhau mà lưu trữ khác nhau biến và cú pháp trong mã của bạn. 1571 01:11:27,870 --> 01:11:31,460 Và sau đó ở đây ở phía dưới rất, chúng tôi có các biến môi trường 1572 01:11:31,460 --> 01:11:35,480 về những gì bạn đang thực hiện trong vòng chỉ đường nhỏ của mã. 1573 01:11:35,480 --> 01:11:40,510 >> Và chúng tôi chỉ cần đi để phóng to ở trên stack phần thực tế. 1574 01:11:40,510 --> 01:11:43,880 Vì vậy, ngay ở đây, nếu chúng ta để phóng to ở trên chỉ là khu vực này của chồng, 1575 01:11:43,880 --> 01:11:45,140 đây là những gì nó trông như thế nào. 1576 01:11:45,140 --> 01:11:48,590 Và điều này thực sự khá quan trọng khi các bạn nói về chức năng, 1577 01:11:48,590 --> 01:11:52,330 vì thông báo rằng bộ nhớ của máy tính của bạn 1578 01:11:52,330 --> 01:11:55,600 được lưu trữ các biến và các chức năng 1579 01:11:55,600 --> 01:11:58,790 và các thông số của cả hai bạn chức năng và các biến chính của bạn 1580 01:11:58,790 --> 01:12:00,190 ở những nơi khác nhau. 1581 01:12:00,190 --> 01:12:03,390 >> Vì vậy, ngay bây giờ, chính là chức năng thực tế 1582 01:12:03,390 --> 01:12:04,780 rằng bạn đang thực hiện trong một mã số. 1583 01:12:04,780 --> 01:12:08,050 Bạn có những tham số của nó được lưu trữ ở đây và các biến cục bộ của nó được lưu trữ ở đây. 1584 01:12:08,050 --> 01:12:12,270 Biến cục bộ chỉ có nghĩa là bất kỳ biến mà chỉ tồn tại bên trong hàm đó. 1585 01:12:12,270 --> 01:12:15,610 Và trên đầu trang của nó, bạn có điều này chức năng riêng biệt được gọi là khối lập phương. 1586 01:12:15,610 --> 01:12:18,240 Bạn có chừng đó là các thông số cũng như những người dân địa phương. 1587 01:12:18,240 --> 01:12:21,540 >> Và lý do bạn có thể thấy ở đây là những gì 1588 01:12:21,540 --> 01:12:25,030 xảy ra khi khối lập phương mất trong một giá trị từ chức năng chính của bạn 1589 01:12:25,030 --> 01:12:27,640 mà thực sự là nó sao chép rằng hơn. 1590 01:12:27,640 --> 01:12:31,470 Vì vậy, nếu tôi muốn cube 2 và trả lại 8, mà 2 1591 01:12:31,470 --> 01:12:33,730 thực sự là đầu vào như một tham số và nó 1592 01:12:33,730 --> 01:12:37,690 sao chép trên để bạn có nó hiện tại ở hai nơi khác nhau trong bộ nhớ. 1593 01:12:37,690 --> 01:12:40,520 Và bạn phải rất cẩn thận trên ghi nhớ mà một trong những 1594 01:12:40,520 --> 01:12:42,520 bạn đang thực sự thao tác. 1595 01:12:42,520 --> 01:12:47,170 Và một ví dụ về những gì đã xảy ra đó sẽ là rất, rất xấu 1596 01:12:47,170 --> 01:12:48,050 tồn tại ngay tại đây. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Vì vậy, ngay ở đây, tôi đã có, trên lý thuyết, một chương trình ngay tại đây, một chức năng chính 1599 01:12:58,650 --> 01:13:02,180 rằng tôi tuyên bố một int x = 1. 1600 01:13:02,180 --> 01:13:04,505 Tôi tuyên bố một int y = 2. 1601 01:13:04,505 --> 01:13:06,380 Và sau đó tôi đang chạy nó thông qua chức năng này 1602 01:13:06,380 --> 01:13:09,647 gọi là trao đổi, mà tôi cho rằng nó trao đổi hai giá trị. 1603 01:13:09,647 --> 01:13:11,480 Và sau đó tôi sẽ in chúng ra, phải không? 1604 01:13:11,480 --> 01:13:13,220 Đó là những gì tôi muốn chương trình này để làm. 1605 01:13:13,220 --> 01:13:15,180 >> Vì vậy, chúng ta hãy đi xuống và có một cái nhìn. 1606 01:13:15,180 --> 01:13:18,200 Vì vậy, nếu tôi thực sự viết khác nhau chức năng, như bạn có thể thấy, 1607 01:13:18,200 --> 01:13:19,750 chúng tôi có chức năng chính của chúng tôi ở đây. 1608 01:13:19,750 --> 01:13:22,860 Và sau đó chúng tôi có của chúng tôi Chức năng thứ hai ở đây. 1609 01:13:22,860 --> 01:13:24,520 Swap Void. 1610 01:13:24,520 --> 01:13:27,090 Void chỉ có nghĩa là nó sẽ không trả lại gì cả. 1611 01:13:27,090 --> 01:13:28,930 Tên chức năng là gọi là trao đổi, và nó 1612 01:13:28,930 --> 01:13:33,730 sẽ ăn hai biến, int a và int b, từ bạn [Không nghe thấy] chức năng. 1613 01:13:33,730 --> 01:13:39,010 >> Vì vậy, về cơ bản ở đây, chúng tôi đi qua x và y vào chức năng này. 1614 01:13:39,010 --> 01:13:40,760 Và nếu chúng ta tạo this-- vì vậy chúng tôi muốn 1615 01:13:40,760 --> 01:13:42,420 để tạo ra một giá trị tạm thời, phải không? 1616 01:13:42,420 --> 01:13:43,930 Chúng ta sẽ gán cho một. 1617 01:13:43,930 --> 01:13:45,388 Và sau đó một là đi đến nay bằng b. 1618 01:13:45,388 --> 01:13:47,660 Và b là có được trở lại trong đó giá trị temp, 1619 01:13:47,660 --> 01:13:51,070 mà là một, bởi vì khi bạn muốn trao đổi mọi thứ, 1620 01:13:51,070 --> 01:13:52,320 bạn có thể không chỉ muốn trao đổi chúng. 1621 01:13:52,320 --> 01:13:54,360 >> Bạn cần phải giữ một trong ra ngoài ở đây vì vậy mà nó nhớ 1622 01:13:54,360 --> 01:13:56,485 đó là những gì, bởi vì một khi bạn trao đổi một, bạn quên 1623 01:13:56,485 --> 01:13:58,200 những gì mà giá trị ban đầu là, phải không? 1624 01:13:58,200 --> 01:14:00,990 Vì vậy, về mặt lý thuyết, chương trình này phải làm việc, phải không? 1625 01:14:00,990 --> 01:14:03,630 Nếu tôi muốn trao đổi các hai, họ nên trao đổi. 1626 01:14:03,630 --> 01:14:05,490 Vì vậy, chúng ta hãy chạy nó và xem nếu nó hoạt động. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Vì vậy, các bạn có thể thấy, x đã từng là 1 và y đã từng 2. 1629 01:14:16,940 --> 01:14:21,475 Và nếu tôi in ra, x vẫn là 1 và y là 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, chương trình này dường như không được làm việc theo cách mà tôi muốn nó làm việc. 1631 01:14:25,970 --> 01:14:29,950 Có ai muốn tham gia một shot tại đoán tại sao điều này xảy ra? 1632 01:14:29,950 --> 01:14:34,430 Nó đã làm với đường rằng những điều khác nhau là 1633 01:14:34,430 --> 01:14:38,172 được lưu trữ ở những nơi khác nhau trong bộ nhớ. 1634 01:14:38,172 --> 01:14:39,377 >> ĐƯỢC. 1635 01:14:39,377 --> 01:14:41,960 Vì vậy, các bạn không phải lo lắng quá nhiều về việc này ngay bây giờ. 1636 01:14:41,960 --> 01:14:46,610 Nhưng biết rằng của khối địa phương biến là a và b, 1637 01:14:46,610 --> 01:14:49,230 bởi vì ở đây trong chức năng của chúng tôi, chúng ta đã khai báo a và b 1638 01:14:49,230 --> 01:14:53,570 như các biến tồn tại trong khối lập phương, chức năng đó. 1639 01:14:53,570 --> 01:14:59,490 Tuy nhiên, như bạn có thể thấy, các thông số nó lấy trong đã được lưu trữ ở đây. 1640 01:14:59,490 --> 01:15:01,370 Nhưng chúng tôi đã không thực sự trở về bất cứ điều gì. 1641 01:15:01,370 --> 01:15:03,120 Chúng tôi đã không thực sự thay đổi x và y. 1642 01:15:03,120 --> 01:15:04,440 Chúng tôi đã chỉ cần thay đổi một và b. 1643 01:15:04,440 --> 01:15:08,340 >> Chúng tôi đã sao chép x và y vào một cái gì đó gọi là a và b. 1644 01:15:08,340 --> 01:15:11,092 Nhưng chúng ta không bao giờ thực sự thao tác x và y mình. 1645 01:15:11,092 --> 01:15:12,800 Các bạn nhìn thấy làm thế nào mà đang xảy ra? 1646 01:15:12,800 --> 01:15:16,140 Là chúng ta chỉ cần sao chép nó hơn, nhưng chúng tôi đã không thực sự giữ 1647 01:15:16,140 --> 01:15:18,030 theo dõi của họ đang ở đâu trong bộ nhớ. 1648 01:15:18,030 --> 01:15:20,127 >> Và vì vậy bây giờ máy tính đang tìm kiếm, oh, tôi đã 1649 01:15:20,127 --> 01:15:21,960 chạy điều này thông qua chức năng đáng yêu này. 1650 01:15:21,960 --> 01:15:23,690 Nhưng x và y vẫn là x và y. 1651 01:15:23,690 --> 01:15:26,240 Không có gì đã xảy ra với họ vì thực tế 1652 01:15:26,240 --> 01:15:28,340 rằng những thông số và các biến địa phương 1653 01:15:28,340 --> 01:15:30,150 được lưu trữ trong một khác nhau đặt trong bộ nhớ. 1654 01:15:30,150 --> 01:15:32,030 Và đây là một cấp cao hơn khái niệm rằng chúng ta sẽ 1655 01:15:32,030 --> 01:15:34,300 bắt đầu thấy sau này trong khóa học. 1656 01:15:34,300 --> 01:15:36,950 Nhưng chỉ biết rằng đây là một vấn đề có thể xảy ra 1657 01:15:36,950 --> 01:15:41,400 và chúng ta sẽ tìm ra cách làm thế nào để đối phó với điều này sau này trong khóa học. 1658 01:15:41,400 --> 01:15:41,900 ĐƯỢC. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Được rồi. 1661 01:15:48,250 --> 01:15:51,780 Vì vậy, khái niệm cuối cùng chúng tôi thực sự sẽ bao gồm 1662 01:15:51,780 --> 01:15:53,880 đó là sẽ có ích cho pset tuần này 1663 01:15:53,880 --> 01:15:56,060 được những gì được gọi là đối số dòng lệnh. 1664 01:15:56,060 --> 01:16:00,820 Vì vậy, Rob trong bài giảng của mình đã đi qua loại ngắn gọn về cách làm việc. 1665 01:16:00,820 --> 01:16:02,770 Về cơ bản biết rằng khi bạn đang viết 1666 01:16:02,770 --> 01:16:06,280 như một chức năng chính, khi chúng ta viết hàm trước trong quá khứ, 1667 01:16:06,280 --> 01:16:07,804 chúng tôi đã có int void main. 1668 01:16:07,804 --> 01:16:10,470 Và lý do chúng tôi đã có khoảng trống đó là vì các chương trình của chúng tôi đã không 1669 01:16:10,470 --> 01:16:12,520 cần các giá trị đầu vào để chạy, phải không? 1670 01:16:12,520 --> 01:16:16,020 Khi tôi chạy Mario, tôi không cần để thực sự chỉ cần gõ vào một cái gì đó 1671 01:16:16,020 --> 01:16:16,970 khi tôi chạy Mario. 1672 01:16:16,970 --> 01:16:20,170 Tôi có thể nhắc nhở người dùng về sau. 1673 01:16:20,170 --> 01:16:22,450 Nhưng điều đó sẽ không phải luôn luôn là trường hợp. 1674 01:16:22,450 --> 01:16:24,980 >> Ví dụ, trong này Vấn đề tuần của bộ, 1675 01:16:24,980 --> 01:16:28,365 bạn sẽ được hỏi rằng, trong Ngoài ra để chạy chương trình của bạn, 1676 01:16:28,365 --> 01:16:30,990 bạn sẽ muốn đầu vào điều nào đó trong thẳng như bạn 1677 01:16:30,990 --> 01:16:32,050 chạy chương trình của bạn. 1678 01:16:32,050 --> 01:16:34,720 Vì vậy, cách chúng ta làm điều đó được gọi là một đối số dòng lệnh, mà 1679 01:16:34,720 --> 01:16:37,280 giống như một đối số bạn có thể nhập trực tiếp 1680 01:16:37,280 --> 01:16:39,260 như bạn đang cố gắng để chạy chương trình của bạn. 1681 01:16:39,260 --> 01:16:44,680 >> Vì vậy, các ký hiệu cho điều này, nó khá phức tạp, tìm kiếm, 1682 01:16:44,680 --> 01:16:47,320 nhưng nó thực sự không phải là khó. Vì vậy, int main-- 1683 01:16:47,320 --> 01:16:48,910 đó chỉ là chức năng chính của bạn. 1684 01:16:48,910 --> 01:16:52,110 Into argc dấu phẩy dấu ngoặc chuỗi argv. 1685 01:16:52,110 --> 01:16:56,040 Vì vậy, tất cả những gì nói là điều này int argc-- tất cả những gì bạn nói 1686 01:16:56,040 --> 01:17:00,560 là những người đang có số lượng lập luận của các máy tính nên mong đợi. 1687 01:17:00,560 --> 01:17:03,130 >> Vì vậy, một trong những điều đó là thực sự quan trọng để theo dõi 1688 01:17:03,130 --> 01:17:07,080 là tên vật lý của chương trình của bạn tính là một trong những lý luận. 1689 01:17:07,080 --> 01:17:11,080 Vì vậy, nếu tôi muốn có chương trình của tôi chạy cộng với một dòng lệnh bổ sung 1690 01:17:11,080 --> 01:17:13,310 lập luận, tôi thực sự sẽ có hai. 1691 01:17:13,310 --> 01:17:15,080 Argc thực sự sẽ là hai. 1692 01:17:15,080 --> 01:17:18,010 Và sau đó chuỗi argv bracket-- tất cả những gì đang làm, 1693 01:17:18,010 --> 01:17:20,410 nó đem lại cho tôi một mảng các chuỗi đó 1694 01:17:20,410 --> 01:17:24,870 sẽ chỉ hiển thị và lưu trữ những gì tất cả những đối số dòng lệnh được. 1695 01:17:24,870 --> 01:17:34,090 >> Vì vậy, ví dụ, nếu tôi muốn có này chương trình, ./copy infile outfile, phải không? 1696 01:17:34,090 --> 01:17:37,330 Đó chỉ là một lệnh Linux điển hình. 1697 01:17:37,330 --> 01:17:38,830 Điều gì thực sự là argc? 1698 01:17:38,830 --> 01:17:41,320 Có bao nhiêu đối số dòng lệnh là có thực sự trong việc này? 1699 01:17:41,320 --> 01:17:45,130 Tất cả điều này là tạo một bản sao của một Infile của tên của một tập tin 1700 01:17:45,130 --> 01:17:47,070 và nó sao chép nó vào tập tin khác, phải không? 1701 01:17:47,070 --> 01:17:48,700 Đó là tất cả điều này đang làm. 1702 01:17:48,700 --> 01:17:53,080 Như bạn có thể thấy, tôi đang làm nó trên một dòng mà không thực sự cần chạy các chương trình. 1703 01:17:53,080 --> 01:17:55,380 >> Argc của chúng tôi trong trường hợp này là gì? 1704 01:17:55,380 --> 01:17:58,968 Có bao nhiêu lý lẽ nào chúng ta có? 1705 01:17:58,968 --> 01:17:59,634 Đung Ba? 1706 01:17:59,634 --> 01:18:01,200 Andi PENG: Chúng tôi có ba, chính xác. 1707 01:18:01,200 --> 01:18:05,030 Vì vậy, nó rất trực quan để chỉ nghĩ rằng nó chỉ là 1708 01:18:05,030 --> 01:18:06,290 các Infile và outfile. 1709 01:18:06,290 --> 01:18:10,190 Nhưng biết rằng tên vật lý của chương trình bạn đang chạy tính là một. 1710 01:18:10,190 --> 01:18:13,220 Vì vậy, trong trường hợp này, argc thực sự là ba. 1711 01:18:13,220 --> 01:18:15,860 Làm thế nào về, argv 0 là gì? 1712 01:18:15,860 --> 01:18:18,180 Hãy nhớ rằng, tất cả các đối số dòng lệnh 1713 01:18:18,180 --> 01:18:20,500 được lưu trữ trong một mảng các chuỗi. 1714 01:18:20,500 --> 01:18:24,140 Vì vậy, nếu tôi cố gắng truy cập vào nó, những gì sẽ argv khung 0 cho tôi? 1715 01:18:24,140 --> 01:18:25,364 >> Đung [không nghe được]. 1716 01:18:25,364 --> 01:18:26,155 Andi PENG: Chính xác. 1717 01:18:26,155 --> 01:18:28,550 Nó sẽ cung cấp cho tôi những dấu chấm giảm copy, bởi vì đó là 1718 01:18:28,550 --> 01:18:31,070 các yếu tố 0, các Yếu tố đầu tiên của mảng của tôi. 1719 01:18:31,070 --> 01:18:33,236 Những gì về argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> Đung Infile. 1721 01:18:33,945 --> 01:18:35,070 Andi PENG: Infile, chính xác. 1722 01:18:35,070 --> 01:18:36,272 Những gì về argv 2? 1723 01:18:36,272 --> 01:18:37,022 Đung outfile. 1724 01:18:37,022 --> 01:18:38,190 Andi PENG: outfile. 1725 01:18:38,190 --> 01:18:39,290 Đây là một chút khó khăn hiện nay. 1726 01:18:39,290 --> 01:18:42,630 Những gì bạn nghĩ argv 3 sắp được đem lại cho tôi 1727 01:18:42,630 --> 01:18:45,522 nếu tôi cố gắng để in mà ra? 1728 01:18:45,522 --> 01:18:48,260 >> Đung [Không nghe thấy]? 1729 01:18:48,260 --> 01:18:50,164 >> Andi PENG: Bạn đã có một bàn tay lên? 1730 01:18:50,164 --> 01:18:50,663 Yeah. 1731 01:18:50,663 --> 01:18:51,550 >> Đung Một thay thế. 1732 01:18:51,550 --> 01:18:52,341 >> Andi PENG: Chính xác. 1733 01:18:52,341 --> 01:18:55,440 Vì vậy, hãy nhớ trong bài giảng mà chúng tôi có vào cuối của một cuộc đua một cái gì đó 1734 01:18:55,440 --> 01:18:56,640 gọi là terminator null? 1735 01:18:56,640 --> 01:18:58,890 Chúng tôi sẽ nhận được vào điều này cũng hơn nữa vào trong lớp. 1736 01:18:58,890 --> 01:19:02,472 Nhưng biết rằng trong ký hiệu, cách máy tính của bạn 1737 01:19:02,472 --> 01:19:04,430 biết rằng nó cuối cùng của mảng là nó 1738 01:19:04,430 --> 01:19:07,310 đặt một cái gì đó gọi là một null terminator hoặc một dấu gạch ngang bằng không. 1739 01:19:07,310 --> 01:19:12,047 >> Vì vậy, nếu bạn cố gắng để truy cập argv 3, bạn đang đi để đạt dash này 0. 1740 01:19:12,047 --> 01:19:13,630 Điều này thậm chí còn nhiều hơn một câu hỏi trick. 1741 01:19:13,630 --> 01:19:17,020 Những gì về argv 4? 1742 01:19:17,020 --> 01:19:20,920 Vì vậy, đây là terminator rỗng quá khứ, qua những giới hạn của mảng của chúng tôi. 1743 01:19:20,920 --> 01:19:24,380 Bạn nghĩ điều gì sẽ xảy ra khi chúng tôi cố gắng để làm điều đó? 1744 01:19:24,380 --> 01:19:25,842 >> Đung [Không nghe thấy]? 1745 01:19:25,842 --> 01:19:26,550 Andi PENG: Xin lỗi? 1746 01:19:26,550 --> 01:19:28,025 Nói rằng một chút to hơn? 1747 01:19:28,025 --> 01:19:29,086 >> Đung [không nghe được]. 1748 01:19:29,086 --> 01:19:29,710 Andi PENG: Yes. 1749 01:19:29,710 --> 01:19:32,420 Đó là tên của khu vực nhiều khả năng bạn sẽ nhận được. 1750 01:19:32,420 --> 01:19:36,610 Nhưng biết argv mà 4-- cho phép bạn truy cập 1751 01:19:36,610 --> 01:19:38,610 nơi trong máy tính của bạn bộ nhớ mà bạn thực sự 1752 01:19:38,610 --> 01:19:41,650 không nên chạm vào, bởi vì ngay bây giờ bạn biết những gì là argv. 1753 01:19:41,650 --> 01:19:46,220 Bạn biết rằng nó là một mảng có kích thước 3 có chấm sao chép, Infile và outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Nếu bạn cố gắng đi xa hơn thế nữa rằng bạn đang quá khứ terminator null, 1755 01:19:50,200 --> 01:19:53,050 máy tính của bạn có thể một cái gì đó được lưu trữ trong argv 4. 1756 01:19:53,050 --> 01:19:55,790 Và bạn thực sự không nên cho phép truy cập vào argv 4, 1757 01:19:55,790 --> 01:19:58,130 bởi vì bạn có một tập tin tủ và bạn chỉ 1758 01:19:58,130 --> 01:19:59,790 cho phép truy cập đến những ba kệ. 1759 01:19:59,790 --> 01:20:02,870 Nhưng nếu bạn cố gắng để đạt được cách xa hơn kệ của nơi mà bạn được cho phép, 1760 01:20:02,870 --> 01:20:04,930 bạn sẽ bắt đầu rối tung với những thứ khác trong bộ nhớ của máy tính. 1761 01:20:04,930 --> 01:20:06,690 Điều đó sẽ được thực sự, thực sự xấu. 1762 01:20:06,690 --> 01:20:07,440 Vì vậy, chỉ biết rằng. 1763 01:20:07,440 --> 01:20:10,370 Hãy rất cẩn thận mà bạn không chỉ bắt đầu ngẫu nhiên 1764 01:20:10,370 --> 01:20:14,772 truy cập vào các phần tử trong một mảng không những gì bạn muốn tạo ra. 1765 01:20:14,772 --> 01:20:17,114 Yep. 1766 01:20:17,114 --> 01:20:18,430 >> ĐƯỢC. 1767 01:20:18,430 --> 01:20:26,360 Vì vậy, chúng tôi sẽ làm khác Ví dụ thiết bị đầu cuối ở đây. 1768 01:20:26,360 --> 01:20:27,300 ĐƯỢC. 1769 01:20:27,300 --> 01:20:29,900 Vì vậy, Rob nhanh chóng trong bài giảng hôm nọ đi 1770 01:20:29,900 --> 01:20:35,040 thông qua ví dụ này, nơi ông có int main int argc chuỗi argv 1771 01:20:35,040 --> 01:20:39,090 ngoặc, mà là nói cho tôi rằng tôi là sẽ có các đối số dòng lệnh. 1772 01:20:39,090 --> 01:20:41,860 >> Ông có, nếu argc bằng bằng 2-- nhớ, 1773 01:20:41,860 --> 01:20:45,070 bằng equals có nghĩa là so sánh. 1774 01:20:45,070 --> 01:20:47,980 Nếu nó bằng 2, sau đó tôi sẽ in hello, 1775 01:20:47,980 --> 01:20:51,190 bất cứ điều gì đầu tiên phần tử của mảng là. 1776 01:20:51,190 --> 01:20:54,100 In khác, xin chào thế giới. 1777 01:20:54,100 --> 01:20:56,300 Những gì được này sẽ xảy ra về cơ bản? 1778 01:20:56,300 --> 01:21:00,570 Ai đó có thể chỉ giải thích English gì chương trình này đang làm gì? 1779 01:21:00,570 --> 01:21:01,272 Yeah. 1780 01:21:01,272 --> 01:21:08,160 >> Đung Nếu một người nào đó gõ vào lệnh và cho biết tên đầu tiên và cuối cùng của họ, 1781 01:21:08,160 --> 01:21:12,096 nó sẽ không chỉ in đầu tiên và nói, xin chào, 1782 01:21:12,096 --> 01:21:14,090 bất cứ tên đầu tiên của bạn là. 1783 01:21:14,090 --> 01:21:15,410 >> Andi PENG: OK, chúng ta hãy chạy nó. 1784 01:21:15,410 --> 01:21:22,470 Vì vậy, ví dụ, nếu tôi được làm tập tin này làm đối với: xin chào xin chào 1785 01:21:22,470 --> 01:21:24,500 với: làm những gì bạn muốn tôi đầu vào? 1786 01:21:24,500 --> 01:21:25,900 >> Đung và Tên. 1787 01:21:25,900 --> 01:21:27,280 >> Andi PENG: Đầu tiên và cuối cùng tên? 1788 01:21:27,280 --> 01:21:28,180 Không gian? 1789 01:21:28,180 --> 01:21:29,690 >> Đung Yeah. 1790 01:21:29,690 --> 01:21:33,490 >> Andi PENG: Ai có thể cho tôi ngay bây giờ, những gì là argc? 1791 01:21:33,490 --> 01:21:35,630 Vừa phải có? 1792 01:21:35,630 --> 01:21:36,290 Rất tiếc, xin lỗi. 1793 01:21:36,290 --> 01:21:37,920 Hãy để tôi quay trở lại. 1794 01:21:37,920 --> 01:21:40,740 Có bao nhiêu đối số dòng lệnh are-- các bạn có thể không thực sự nhìn thấy. 1795 01:21:40,740 --> 01:21:43,760 Nhưng tôi sẽ cố gắng để phóng to. 1796 01:21:43,760 --> 01:21:44,290 Tôi đang cô. 1797 01:21:44,290 --> 01:21:45,414 Yeah, có ba, phải không? 1798 01:21:45,414 --> 01:21:48,750 Đó là dấu chấm dấu gạch chéo hello, nó Andi, và nó Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Vì vậy, những gì bạn nghĩ này Chương trình sẽ được in ra? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Oh. 1802 01:21:56,060 --> 01:21:57,120 Ồ xin lỗi. 1803 01:21:57,120 --> 01:21:57,810 Sai tên. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Nó in ra, xin chào thế giới. 1806 01:22:06,130 --> 01:22:09,603 Có ai muốn giải thích tại sao điều đó xảy ra? 1807 01:22:09,603 --> 01:22:10,103 Yeah? 1808 01:22:10,103 --> 01:22:11,019 >> Đung [không nghe được]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 Andi PENG: Chính xác. 1811 01:22:15,230 --> 01:22:19,940 Vì vậy, ở đây, phải có điều kiện là, nếu argc bằng = 2. 1812 01:22:19,940 --> 01:22:23,650 Vì vậy, chỉ trong trường hợp đó có hai đối số dòng lệnh. 1813 01:22:23,650 --> 01:22:25,850 Sau đó, tôi sẽ in, hello, bất cứ điều gì nó được. 1814 01:22:25,850 --> 01:22:28,210 Nhưng khác, tôi sẽ in chỉ, xin chào thế giới. 1815 01:22:28,210 --> 01:22:30,040 Vì vậy, không ai muốn để cung cấp cho tôi một ví dụ 1816 01:22:30,040 --> 01:22:35,050 như thế nào tôi sẽ có thể thực sự làm cho nó để in giá trị của argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Tôi sẽ có những gì để vào đây? 1818 01:22:38,600 --> 01:22:39,840 Chỉ có một điều, phải không? 1819 01:22:39,840 --> 01:22:42,900 Bởi vì các dot chào đã tính như là đối số đầu tiên. 1820 01:22:42,900 --> 01:22:43,930 Tôi chỉ có một nhiều hơn. 1821 01:22:43,930 --> 01:22:46,470 Vì vậy, chấm chào nếu tôi chỉ làm Andi. 1822 01:22:46,470 --> 01:22:47,270 Xin chào, Andi. 1823 01:22:47,270 --> 01:22:49,186 Có phải mọi người hiểu tại sao điều đó xảy ra? 1824 01:22:49,186 --> 01:22:49,602 Yeah. 1825 01:22:49,602 --> 01:22:52,500 >> Đung vậy, không gian giữa các lệnh line-- là nó [không nghe được]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 Andi PENG: No. 1828 01:22:56,830 --> 01:23:03,810 Vì vậy, không gian trong một dòng lệnh lập luận, x, để nói cho máy tính của bạn 1829 01:23:03,810 --> 01:23:06,820 rằng đây là khởi đầu của một chuỗi mới. 1830 01:23:06,820 --> 01:23:11,130 Vì vậy, chuỗi argv here-- nó cửa hàng tất cả các đối số dòng lệnh của bạn 1831 01:23:11,130 --> 01:23:13,110 trong chuỗi. 1832 01:23:13,110 --> 01:23:17,420 Và do đó, không gian trong dòng lệnh argument-- tất cả điều đó không được nói với bạn, 1833 01:23:17,420 --> 01:23:21,030 này là ở phần cuối của một chuỗi và đó là thời gian để chuyển sang một. 1834 01:23:21,030 --> 01:23:21,990 >> Yeah. 1835 01:23:21,990 --> 01:23:23,530 Điều này là khá quan trọng đối với pset của bạn, bởi vì bạn 1836 01:23:23,530 --> 01:23:24,613 sẽ được thử nghiệm này. 1837 01:23:24,613 --> 01:23:29,300 Vì vậy, không ai có bất kỳ câu hỏi về điều này? 1838 01:23:29,300 --> 01:23:30,016 OK, mát mẻ. 1839 01:23:30,016 --> 01:23:30,515 Yeah? 1840 01:23:30,515 --> 01:23:35,008 >> Đung Vì vậy, lý do bạn sẽ đưa số nguyên lập luận calc thay 1841 01:23:35,008 --> 01:23:40,059 của [không nghe được] sẽ là khi bạn muốn gõ thêm thông tin cho 1842 01:23:40,059 --> 01:23:41,030 [Không nghe thấy]? 1843 01:23:41,030 --> 01:23:42,090 >> Andi PENG: Yeah, chính xác. 1844 01:23:42,090 --> 01:23:45,370 Một số chương trình sẽ yêu cầu bạn để nhập vào một đối số dòng lệnh 1845 01:23:45,370 --> 01:23:47,732 mà nó chuyển vào và sử dụng mà. 1846 01:23:47,732 --> 01:23:49,035 Yeah. 1847 01:23:49,035 --> 01:23:50,410 Đung Vì vậy, nếu những gì [không nghe được]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> Andi PENG: Vâng, những gì tôi có thay đổi sau đó trong chương trình của tôi? 1850 01:23:58,870 --> 01:23:59,870 >> Đung Chỉ cần 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> Andi PENG: Tại sao vậy xảy ra, bạn có nghĩ? 1853 01:24:15,020 --> 01:24:18,940 >> Đung Bởi vì [không nghe được]. 1854 01:24:18,940 --> 01:24:22,370 >> Đung Bạn phải thay đổi nó để 2 [Không nghe thấy]. 1855 01:24:22,370 --> 01:24:23,484 >> Đung 1 và 2. 1856 01:24:23,484 --> 01:24:24,650 Andi PENG: 1 và 2, chính xác. 1857 01:24:24,650 --> 01:24:29,150 Vì vậy, trong trường hợp này, bạn có lẽ sẽ muốn có hai printf statements-- 1858 01:24:29,150 --> 01:24:32,601 một mà in argv 1 và một trong đó in argv 2. 1859 01:24:32,601 --> 01:24:33,100 Chỗ này. 1860 01:24:33,100 --> 01:24:34,516 Tôi thực sự có thể làm điều đó nhanh chóng thực. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Của bạn đó. 1863 01:24:47,320 --> 01:24:48,287 Oh. 1864 01:24:48,287 --> 01:24:49,370 Không khá gì bạn muốn. 1865 01:24:49,370 --> 01:24:52,590 Nhưng nếu các bạn mess xung quanh với định dạng, nó sẽ đi ra. 1866 01:24:52,590 --> 01:24:54,981 Yeah. 1867 01:24:54,981 --> 01:24:55,480 Mát. 1868 01:24:55,480 --> 01:24:57,670 Tôi biết chúng tôi một chút về mặt thời gian. 1869 01:24:57,670 --> 01:25:02,469 Nhưng tôi chỉ cần đi để nhanh chóng dành vài phút đi qua helpful-- 1870 01:25:02,469 --> 01:25:03,760 Đung Bạn có hai phút. 1871 01:25:03,760 --> 01:25:05,010 Andi Peng: Tôi có hai phút? 1872 01:25:05,010 --> 01:25:06,340 Cam on. 1873 01:25:06,340 --> 01:25:09,180 Một số lời khuyên pset nhanh chóng. 1874 01:25:09,180 --> 01:25:13,100 Vì vậy, cho pset này, tôi khuyên, như tôi đã nói, tất cả mọi người để đọc spec. 1875 01:25:13,100 --> 01:25:16,804 Bạn sẽ viết ba một programs-- gọi initials.c, một gọi là caesar.c, 1876 01:25:16,804 --> 01:25:17,720 một gọi là vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Một số lời khuyên quan trọng các bạn thực sự muốn 1879 01:25:22,340 --> 01:25:25,040 để giữ mind-- vậy có chức năng này 1880 01:25:25,040 --> 01:25:27,770 gọi atoi-- như tôi muốn nói, một trois. 1881 01:25:27,770 --> 01:25:29,520 Không rõ ràng nếu đó là thực sự như thế nào bạn nói nó. 1882 01:25:29,520 --> 01:25:32,510 Nhưng tất cả nó làm, nó nhập. 1883 01:25:32,510 --> 01:25:34,320 Nó chuyển đổi một chuỗi thành int. 1884 01:25:34,320 --> 01:25:37,490 Vì vậy, một đại diện ASCII để i số nguyên. 1885 01:25:37,490 --> 01:25:40,310 Nó chỉ chuyển đổi ASCII giá trị để nguyên giá trị. 1886 01:25:40,310 --> 01:25:44,510 Vì vậy, hãy nhớ argv, mảng mà các cửa hàng tất cả các lệnh của bạn xếp hàng arguments-- 1887 01:25:44,510 --> 01:25:46,300 nó lưu tất cả chúng như dây đàn. 1888 01:25:46,300 --> 01:25:50,010 Và do đó, nếu bạn muốn để có thể có một trong số họ trở thành một số nguyên, 1889 01:25:50,010 --> 01:25:52,750 bạn sẽ có sử dụng giá trị này ở đây. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, như chúng ta đã trước đó trong lớp học ngày hôm nay, 1891 01:25:56,690 --> 01:25:59,550 cho phép bạn có còn lại của bất cứ điều gì bạn có. 1892 01:25:59,550 --> 01:26:03,620 Vì vậy, nếu chúng ta có thực sự, thực sự số lượng lớn trong Caesar, 1893 01:26:03,620 --> 01:26:06,117 nếu chúng ta có cuối cùng của một chuỗi các Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Làm thế nào thì bạn sẽ có thể nhận được rằng để quấn xung quanh? 1895 01:26:08,450 --> 01:26:11,330 Nếu tôi nhấn z và tôi muốn nó quay trở lại một, 1896 01:26:11,330 --> 01:26:13,650 làm thế nào tôi sẽ nhận được mà để bọc xung quanh? 1897 01:26:13,650 --> 01:26:15,960 Có lẽ muốn sử dụng modulo ở đâu đó. 1898 01:26:15,960 --> 01:26:19,190 >> Thứ hai, duyệt qua xung quanh thư viện của bạn. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Đó là một thư viện mới, chúng tôi có. 1900 01:26:20,680 --> 01:26:25,270 Bạn sẽ tìm thấy rất nhiều thực sự, thực sự isupper hữu ích functions--, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, ToLower, isalpha, vân vân. 1902 01:26:27,681 --> 01:26:30,680 Tất cả các chức năng mà sẽ rất hữu ích khi bạn đang cố gắng để tìm ra, 1903 01:26:30,680 --> 01:26:33,780 là nhân vật này một chữ cái thường? 1904 01:26:33,780 --> 01:26:35,730 Làm thế nào để chuyển đổi này chuỗi thành chữ hoa? 1905 01:26:35,730 --> 01:26:38,146 Tất cả những điều này sẽ rất, rất hữu ích cho pset của bạn. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 ĐƯỢC. 1908 01:26:45,500 --> 01:26:49,644 >> Thời gian làm việc tối nay là 8:00 11:00 trong lớp học TEAL ngày mai 1909 01:26:49,644 --> 01:26:51,310 cũng như thứ tư và thứ năm đêm. 1910 01:26:51,310 --> 01:26:53,280 Văn phòng giờ đang ở commons. 1911 01:26:53,280 --> 01:26:56,180 Giá cao đề nghị các bạn tất cả được bắt đầu ngay lập tức, 1912 01:26:56,180 --> 01:27:00,490 bởi vì bạn không muốn được rằng đứa trẻ đêm thứ năm có vấn đề 1913 01:27:00,490 --> 01:27:03,870 trình pset của bạn và được như thế, tôi không biết phải làm gì. 1914 01:27:03,870 --> 01:27:05,870 Tôi bắt đầu, tôi đã hoàn thành, tôi nộp. 1915 01:27:05,870 --> 01:27:09,737 Cố gắng để cung cấp cho mình một số phòng, bởi vì trong vấn đề mã luôn luôn xảy ra. 1916 01:27:09,737 --> 01:27:11,570 Bạn muốn chắc chắn mà bạn cung cấp cho mình 1917 01:27:11,570 --> 01:27:14,810 rất nhiều thời gian để có thể để hoàn thành psets. 1918 01:27:14,810 --> 01:27:15,310 Mát. 1919 01:27:15,310 --> 01:27:16,720 Tôi sẽ treo xung quanh đây. 1920 01:27:16,720 --> 01:27:18,226 >> Đung là tuyến điều này chưa? 1921 01:27:18,226 --> 01:27:20,850 Andi Peng: Tôi không biết nếu nó trực tuyến đã có, nhưng nó sẽ được. 1922 01:27:20,850 --> 01:27:23,500 Tôi sẽ treo xung quanh ở đây nếu có ai có bất kỳ câu hỏi đã. 1923 01:27:23,500 --> 01:27:25,390 Cám ơn vì đã tới. 1924 01:27:25,390 --> 01:27:27,105