1 00:00:00,000 --> 00:00:07,070 [Powered by Google Translate] [♪ ù ♪] 2 00:00:07,070 --> 00:00:10,380 Vì vậy, để giới thiệu với bạn những gì tôi đã lên trên màn hình; 3 00:00:10,380 --> 00:00:12,710 đó là một trong những công cụ mà chúng ta phát triển trong mùa hè; 4 00:00:12,710 --> 00:00:15,530 nó được gọi là CS50 Spaces, 5 00:00:15,530 --> 00:00:18,860 và đó là hợp tác ứng dụng mã hóa của chúng tôi 6 00:00:18,860 --> 00:00:20,180 mà chúng ta sẽ sử dụng trong các phần. 7 00:00:20,180 --> 00:00:22,470 Đó là khá mát mẻ. 8 00:00:22,470 --> 00:00:26,040 Có bất kỳ của bạn nhìn thấy CS50 chạy chưa? 9 00:00:26,040 --> 00:00:29,760 Hãy cho tôi kéo mà lên trong tab khác. 10 00:00:29,760 --> 00:00:33,440 Run.cs50.net 11 00:00:33,440 --> 00:00:36,230 Vì vậy, 12 00:00:36,230 --> 00:00:39,700 nếu bạn đi đến run.cs50.net, 13 00:00:39,700 --> 00:00:43,030 bạn có thể thấy điều này là một trong cách thức trình duyệt của bạn để 14 00:00:43,030 --> 00:00:45,940 thực sự mã viết mã C, 15 00:00:45,940 --> 00:00:47,460 và sau đó chạy nó, 16 00:00:47,460 --> 00:00:50,960 do đó, nó biên dịch nó, chạy nó, sau đó trả về đầu ra cho bạn 17 00:00:50,960 --> 00:00:53,350 vì vậy đây là loại một cách mát mẻ để thử nghiệm 18 00:00:53,350 --> 00:00:56,060 với một số mã mà David đi qua trong các bài giảng 19 00:00:56,060 --> 00:00:58,640 và chúng tôi cung cấp cho bạn trên bộ vấn đề 20 00:00:58,640 --> 00:01:01,900 mà không thực sự phải cháy lên các thiết bị. 21 00:01:01,900 --> 00:01:04,489 >> Vì vậy, những gì không gian nào đó là khác nhau từ đó 22 00:01:04,489 --> 00:01:07,450 nếu tôi chuyển về tab này, 23 00:01:07,450 --> 00:01:11,580 Spaces là CS50 chạy, giống như bạn nhìn thấy ngay ở đây, 24 00:01:11,580 --> 00:01:15,380 nhưng nếu chúng ta di chuyển trên và nhìn vào phía bên kia của cửa sổ, 25 00:01:15,380 --> 00:01:18,130 bạn nhìn thấy bên phải tôi là người duy nhất trong không gian này, 26 00:01:18,130 --> 00:01:21,030 nhưng những gì tôi sẽ làm là hỏi các bạn tham gia không gian này với tôi 27 00:01:21,030 --> 00:01:24,590 và tất cả chúng ta sẽ nhận được mã trong cùng một cửa sổ nhỏ, 28 00:01:24,590 --> 00:01:26,070 chia sẻ mã với nhau, 29 00:01:26,070 --> 00:01:28,900 và nói về sự khác biệt giữa các mã của chúng tôi. 30 00:01:28,900 --> 00:01:31,530 Vì vậy, nó là loại một điều mát mẻ - 31 00:01:31,530 --> 00:01:35,770 do đó, để tham gia, nếu bạn có thể truy cập vào liên kết này ngay tại đây ở đầu trang 32 00:01:35,770 --> 00:01:38,980 mà tôi đã nêu bật, 33 00:01:38,980 --> 00:01:53,860 bạn chỉ có thể gõ ở apps.cs50.net/spaces/vqcspSnO. 34 00:01:53,860 --> 00:01:56,610 >> Được rồi, do đó, để bắt đầu, 35 00:01:56,610 --> 00:01:59,720 Tôi sẽ cung cấp cho bạn một chút ít của một tour du lịch này. 36 00:01:59,720 --> 00:02:01,720 Chúng ta sẽ làm một số mã hóa nhỏ ngớ ngẩn với nó lần đầu tiên, 37 00:02:01,720 --> 00:02:06,200 chỉ cần để tất cả mọi người kinda được một cảm giác về những gì nó muốn, 38 00:02:06,200 --> 00:02:09,000 nhưng những gì tôi đã thực hiện - 39 00:02:09,000 --> 00:02:11,830 hoặc những gì tôi đang làm ngay ở đây là - 40 00:02:11,830 --> 00:02:13,480 Tôi sẽ lấy code mà tôi đã viết ở đây, 41 00:02:13,480 --> 00:02:15,800 như bạn thấy ngay bây giờ trống rỗng, 42 00:02:15,800 --> 00:02:17,090 nó không làm bất cứ điều gì. 43 00:02:17,090 --> 00:02:21,080 Nó chỉ là tấm mã nồi hơi, chúng tôi sẽ gọi nó. 44 00:02:21,080 --> 00:02:23,820 Với một chút để làm bình luận. 45 00:02:23,820 --> 00:02:27,850 Tôi sẽ lưu nó bằng cách nhấn nút Save. 46 00:02:27,850 --> 00:02:30,190 Và điều đó không được 47 00:02:30,190 --> 00:02:34,400 làm nổi bật nó lên đây một thời gian ngắn - rằng sửa đổi save hộp màu xanh lá cây, 48 00:02:34,400 --> 00:02:37,570 và bây giờ, nếu bạn tìm kiếm cho tôi trong không gian, 49 00:02:37,570 --> 00:02:40,340 bạn nhấp vào tên của tôi, 50 00:02:40,340 --> 00:02:43,370 bạn có thể thấy rằng tôi đã có sửa đổi ngay tại đây, 51 00:02:43,370 --> 00:02:45,490 và nếu bạn bấm vào sửa đổi đó, 52 00:02:45,490 --> 00:02:48,240 nó sẽ tải mã vào không gian của bạn, quá. 53 00:02:50,510 --> 00:02:54,160 >> Vì vậy, tất cả mọi người tải mã vào không gian của họ? 54 00:02:54,160 --> 00:02:57,810 Được rồi, nếu bạn chưa có, đi trước và làm điều đó, 55 00:02:57,810 --> 00:03:01,120 và sau đó những gì tôi muốn các bạn làm trong này ít việc phải làm phần 56 00:03:01,120 --> 00:03:05,940 là viết một chút bằng cách sử dụng printf về bản thân, 57 00:03:05,940 --> 00:03:08,310 ví dụ như vậy, tôi sẽ viết 58 00:03:08,310 --> 00:03:12,270 printf ("Tên tôi là Nate"); 59 00:03:15,140 --> 00:03:17,700 và sau đó tôi muốn viết 60 00:03:17,700 --> 00:03:21,660 "Tôi tốt nghiệp trong năm 2009 61 00:03:21,660 --> 00:03:24,440 Stanford " 62 00:03:26,050 --> 00:03:28,390 và tôi sẽ thích được nghe về 63 00:03:28,390 --> 00:03:30,270 năm nào bạn đang ở trong trường học, 64 00:03:30,270 --> 00:03:33,910 cho dù bạn đang ở trường cao đẳng hoặc trường kinh doanh 65 00:03:33,910 --> 00:03:36,130 hoặc một trường đại học Harvard, 66 00:03:36,130 --> 00:03:39,200 cái bạn đang học nếu nó được nêu ra; 67 00:03:39,200 --> 00:03:41,290 nếu nó không được biết đến, đó là hoàn toàn mát mẻ. 68 00:03:41,290 --> 00:03:45,170 Tôi không quyết định cho đến khi tôi vào cuối năm thứ hai của tôi. 69 00:03:46,910 --> 00:03:49,210 và sau đó tôi cũng rất thích biết 70 00:03:49,210 --> 00:03:51,610 điên bất cứ điều gì bạn muốn cho tôi biết 71 00:03:51,610 --> 00:03:54,790 một cái gì đó về các lớp học hoặc bất cứ điều gì khác. 72 00:03:56,930 --> 00:04:00,370 Khi bạn làm xong viết rằng với chút printf, 73 00:04:00,370 --> 00:04:03,480 bạn sẽ tiết kiệm sửa đổi hoặc thay 74 00:04:03,480 --> 00:04:06,080 đầu tiên, hãy chắc chắn rằng bạn có thể chạy nó 75 00:04:06,080 --> 00:04:10,640 và nó in ra chính xác những gì bạn muốn nó để in ra, 76 00:04:14,050 --> 00:04:16,399 và sau đó nếu bạn đi trước và lưu lại đó sửa đổi 77 00:04:16,399 --> 00:04:21,600 bằng cách sử dụng sửa đổi nút Lưu, anh chàng này lần đầu tiên ở đây, 78 00:04:24,080 --> 00:04:27,340 và chúng tôi kinda sẽ đi qua và làm được một chút như vậy. 79 00:04:27,340 --> 00:04:30,150 Vì vậy, bạn chỉ cần phải nhấn vào nút Play, 80 00:04:30,150 --> 00:04:32,550 đó là ở trên cùng bên trái, 81 00:04:32,550 --> 00:04:35,340 để nút Play trên cùng bên trái sẽ 82 00:04:35,340 --> 00:04:39,050 gửi mã của bạn đến máy chủ của chúng tôi, nơi nó được biên dịch và sau đó chạy. 83 00:04:40,600 --> 00:04:43,300 Vì vậy, kinda điên về việc này là những gì được 84 00:04:43,300 --> 00:04:46,550 mã này thực sự không chạy trên máy tính của bạn; 85 00:04:46,550 --> 00:04:49,290 nó thực sự đang được gửi qua mạng Internet. 86 00:04:49,290 --> 00:04:51,240 >> Việc thế nào, Charlotte? 87 00:04:51,240 --> 00:04:54,810 >> I - okay. Tôi - tôi nghĩ rằng tôi 88 00:04:54,810 --> 00:04:57,330 đã khó khăn tiết kiệm nó 89 00:04:57,330 --> 00:05:00,530 trên máy chủ như vậy mà nó có thể - Tôi có thể chạy chương trình. 90 00:05:02,090 --> 00:05:05,780 Và sau đó khi tôi cố gắng chạy nó, nó nói rằng có một lỗi. 91 00:05:05,780 --> 00:05:08,850 Khai báo là virus, đó là không ở trong đó nữa. 92 00:05:08,850 --> 00:05:11,860 Ồ, chúng ta hãy xem, bạn có thể nhấn Save lần nữa? 93 00:05:11,860 --> 00:05:13,770 Tôi nhìn thấy nó trên màn hình. 94 00:05:13,770 --> 00:05:15,120 >> Phải, okay, vì vậy đó là những gì tôi có. 95 00:05:15,120 --> 00:05:19,430 Và tôi không biết tại sao nó không cho phép tôi chạy nó. 96 00:05:22,990 --> 00:05:24,990 Ồ, không sao, xin lỗi. 97 00:05:27,930 --> 00:05:31,220 Bạn có thể giải thích lý do tại sao những gì đã sai những gì không làm việc với nó? 98 00:05:31,220 --> 00:05:34,760 >> Yeah, bởi vì tôi không thấy rằng có một dòng cuối cùng, nơi có một biến 99 00:05:34,760 --> 00:05:37,700 mà tôi đã không được khai báo, mà tôi đã không có ý định cho nó được ở đó. 100 00:05:37,700 --> 00:05:38,730 Yeah, hoàn hảo! 101 00:05:38,730 --> 00:05:40,390 >> Bây giờ nếu tôi lưu nó, tôi nghĩ rằng nó sẽ làm việc. 102 00:05:40,390 --> 00:05:42,970 Bây giờ mà bạn đã lưu nó, nó hoạt động; awesome. 103 00:05:42,970 --> 00:05:44,570 >> Vì vậy, yeah, khi chúng tôi đi qua - 104 00:05:44,570 --> 00:05:46,690 vì vậy những gì đang diễn ra, 105 00:05:46,690 --> 00:05:49,130 Tôi chỉ cần đi lặp lại điều này cho máy ảnh. 106 00:05:49,130 --> 00:05:51,760 Những gì đã xảy ra là biến này s 107 00:05:51,760 --> 00:05:54,310 còn lại sau - Tôi giả sử bạn đã xóa một số công cụ khác 108 00:05:54,310 --> 00:05:56,670 nơi bạn kê khai như, 109 00:05:56,670 --> 00:05:59,560 và do đó, điều này đã được ném vật tắt và không cho phép bạn chạy nó. 110 00:05:59,560 --> 00:06:02,540 Vì vậy, điều này là chính xác những gì chúng tôi muốn làm trong phần 111 00:06:02,540 --> 00:06:05,690 là có người cố gắng viết các phần khác nhau của mã, 112 00:06:05,690 --> 00:06:08,490 biên dịch nó, xem những gì làm việc, xem những gì không, 113 00:06:08,490 --> 00:06:10,730 và sau đó kinda nói về những điều này, bởi vì đây là những điểm tripping 114 00:06:10,730 --> 00:06:12,850 Tôi vẫn gặp phải, 115 00:06:12,850 --> 00:06:15,470 Tôi vẫn còn - Tôi làm rất nhiều thứ ngớ ngẩn của tất cả các thời gian, 116 00:06:15,470 --> 00:06:17,820 và tôi không biết tại sao nó không hoạt động, 117 00:06:17,820 --> 00:06:22,960 do đó, chúng ta hãy kéo lên sửa đổi của Charlotte 3, 118 00:06:23,980 --> 00:06:25,380 và chúng tôi sẽ chạy nó. 119 00:06:25,380 --> 00:06:28,950 >> Vì vậy, khi tôi chạy, bây giờ mà tôi đã có mã của mình ở đây, 120 00:06:28,950 --> 00:06:31,450 Tôi có thể phóng to, nhấn nút Run, 121 00:06:31,450 --> 00:06:33,680 cập nhật, xây dựng nó, chạy nó, 122 00:06:33,680 --> 00:06:36,980 nói nó chạy thành công, và nếu tôi di chuyển xuống, 123 00:06:36,980 --> 00:06:39,440 Charlotte là một học sinh ở Adams House, 124 00:06:39,440 --> 00:06:42,720 tâm lý học, trung học trong kinh tế; awesome. 125 00:06:42,720 --> 00:06:44,310 Tuyệt vời để gặp các bạn! 126 00:06:44,310 --> 00:06:46,550 Awesome. 127 00:06:46,550 --> 00:06:49,670 Được rồi, di chuyển trên, chúng ta hãy đi đến Daniel, 128 00:06:49,670 --> 00:06:52,710 đi lên phiên bản 3, 129 00:06:52,710 --> 00:06:54,180 biên dịch, chạy; 130 00:06:54,180 --> 00:06:56,680 tại sao bạn không cho chúng tôi biết một chút về bản thân mình, Daniel? 131 00:06:56,680 --> 00:06:59,380 >> Hãy gọi cho tôi Dan. 132 00:06:59,380 --> 00:07:01,920 Tôi sẽ trường kinh doanh qua từ các bạn, 133 00:07:01,920 --> 00:07:05,020 và tôi đã được trong Thủy quân lục chiến trước đây, 134 00:07:05,020 --> 00:07:08,020 và điều này là tất cả mới với tôi, do đó, yeah. 135 00:07:08,020 --> 00:07:11,060 Không cảm thấy xấu, tôi là 30 và tôi không biết bất kỳ công cụ này. 136 00:07:11,060 --> 00:07:13,800 Tuyệt vời, cảm ơn, Dan! 137 00:07:13,800 --> 00:07:17,300 Được rồi, chúng tôi đã nhận một Daniel. 138 00:07:17,300 --> 00:07:20,930 Bạn đi bởi Daniel - bạn sẽ giới thiệu về mình, Daniel? 139 00:07:20,930 --> 00:07:22,260 >> >> Chắc chắn, tôi là Daniel. 140 00:07:22,260 --> 00:07:24,330 Tôi là một sinh viên năm thứ hai tại Mather ngay bây giờ. 141 00:07:24,330 --> 00:07:25,840 Tôi tập trung vào chính phủ, 142 00:07:25,840 --> 00:07:28,760 nhưng tôi muốn CS50 bởi vì tôi đã nghe đánh giá về lớp 143 00:07:28,760 --> 00:07:30,750 và tôi đã không bao giờ cố gắng CS trước. 144 00:07:30,750 --> 00:07:34,680 Di chuyển xuống đây và cho thấy mát mẻ. 145 00:07:36,330 --> 00:07:39,090 Di chuyển trên, Jared. 146 00:07:39,090 --> 00:07:41,990 Việc thế nào? 147 00:07:41,990 --> 00:07:43,430 >> Tốt, thế nào là bạn? 148 00:07:43,430 --> 00:07:47,520 Như bạn có thể thấy, tôi là một cơ sở triết lý tập trung trong Eliot, 149 00:07:47,520 --> 00:07:50,260 có nguồn gốc từ miền Nam California, 150 00:07:50,260 --> 00:07:53,100 và tôi quan tâm đến việc tham gia CS50 vì tôi thích logic của nó, 151 00:07:53,100 --> 00:07:57,420 và có vẻ như thực sự mát mẻ để làm những việc trên máy tính, vì vậy. 152 00:07:57,420 --> 00:07:59,570 Hoàng; nơi ở miền Nam California từ đâu? 153 00:07:59,570 --> 00:08:02,340 >> Về một giờ từ [không nghe được], một thành phố nhỏ [không nghe được. 154 00:08:02,340 --> 00:08:04,850 Oh, yeah, cha tôi từ Redlands. 155 00:08:04,850 --> 00:08:07,060 Mát công cụ. 156 00:08:07,060 --> 00:08:12,130 >> Được rồi, Jimmy, làm thế nào nó đi, Jimmy? 157 00:08:12,130 --> 00:08:15,130 >> Tốt, là bạn? 158 00:08:15,130 --> 00:08:16,040 Làm khá tốt! 159 00:08:16,040 --> 00:08:17,710 Cho chúng ta biết về chính mình. 160 00:08:17,710 --> 00:08:20,840 >> Tôi là một sinh viên năm thứ nhất, và tôi không hoàn toàn chắc chắn những gì tôi đang chuyên ngành 161 00:08:20,840 --> 00:08:22,820 nhưng tôi là kinda nghiêng về phía kinh tế. 162 00:08:22,820 --> 00:08:25,680 Như Daniel trước tôi, tôi đã không bao giờ thực hiện bất kỳ CS, nhưng nó âm thanh kinda mát mẻ. 163 00:08:25,680 --> 00:08:28,120 Tôi ban đầu từ Chicago. 164 00:08:28,120 --> 00:08:31,640 Awesome. Vì vậy, kiểm tra bản in của mình ở đây. 165 00:08:31,640 --> 00:08:34,630 Tôi muốn hỏi, đã làm điều này in ra như bạn mong đợi? 166 00:08:34,630 --> 00:08:37,650 >> Không có ai, tôi quên để in một dòng mới. 167 00:08:37,650 --> 00:08:41,270 Tôi thực sự quên rằng khi tôi đã viết điều của tôi 168 00:08:41,270 --> 00:08:43,090 lần đầu tiên, quá. 169 00:08:43,090 --> 00:08:46,330 Đó là loại đau đớn để nhớ để đặt những người trong tay. 170 00:08:46,330 --> 00:08:50,560 Nó muốn được tốt đẹp nếu nó chỉ biết đó là những gì bạn muốn. 171 00:08:50,560 --> 00:08:53,630 >> Được rồi, Kelly. 172 00:08:53,630 --> 00:08:56,050 Wow, chúng tôi có 2 Kellys, 2 Daniels, 2 Kellys. 173 00:08:56,050 --> 00:09:00,490 Vì vậy, Kelly - để bạn đi bởi Kelly Ren? 174 00:09:00,490 --> 00:09:03,870 Được rồi, awesome. 175 00:09:03,870 --> 00:09:07,270 Hoặc Kelly, tôi có ý nghĩa. 176 00:09:07,270 --> 00:09:10,260 >> Vì vậy, yeah, vì vậy tôi Kelly. 177 00:09:10,260 --> 00:09:12,930 Tôi là một sinh viên năm thứ hai trong Pfoho. 178 00:09:12,930 --> 00:09:17,000 Tôi nhận được một e-mail mà tôi vẫn còn có 7 tuần để khai báo tập trung của tôi ngày hôm nay, 179 00:09:17,000 --> 00:09:20,940 vì vậy tôi đang cố gắng không nghĩ về nó, 180 00:09:20,940 --> 00:09:24,090 và tôi thích làm bánh, chạy, và Craisins. 181 00:09:24,090 --> 00:09:29,110 Tôi không có kinh nghiệm với hầu hết của CS; 182 00:09:29,110 --> 00:09:32,700 Tôi đã dạy bản thân mình để xây dựng trang web khi tôi còn rất trẻ, 183 00:09:32,700 --> 00:09:35,750 nhưng tôi nghĩ rằng có lẽ tôi đã dạy bản thân mình sai rất nhiều lần. 184 00:09:35,750 --> 00:09:39,260 Hy vọng rằng tôi sẽ tìm hiểu thêm một chút nữa 185 00:09:39,260 --> 00:09:41,450 - yeah. 186 00:09:41,450 --> 00:09:44,100 >> Tuyệt vời, tốt, cảm ơn bạn. 187 00:09:44,100 --> 00:09:47,190 Chúng ta hãy đi đến Kelly khác; 188 00:09:47,190 --> 00:09:48,880 Tôi không có bất cứ điều gì bạn nói điều gì đó ở đây? 189 00:09:48,880 --> 00:09:51,880 >> [Không nghe được] 190 00:09:51,880 --> 00:09:56,180 Nó được! 191 00:09:56,180 --> 00:09:58,120 Sweet! 192 00:09:58,120 --> 00:10:01,400 >> Tất cả phải, vì vậy tôi Kelly. 193 00:10:01,400 --> 00:10:03,980 Tôi là một sinh viên tốt nghiệp năm đầu tiên. 194 00:10:03,980 --> 00:10:05,560 Tôi chuyên ngành Tâm, Brain Giáo dục và. 195 00:10:05,560 --> 00:10:07,940 Tôi tốt nghiệp ở Franklin & Marshall College trong năm 2008 196 00:10:07,940 --> 00:10:10,840 với chuyên ngành tâm lý học và xã hội học 197 00:10:10,840 --> 00:10:13,120 và trẻ vị thành niên tại Pháp. 198 00:10:13,120 --> 00:10:15,330 Tôi đang dùng CS50 199 00:10:15,330 --> 00:10:18,080 bởi vì tôi là quan tâm đến việc nhận được một tiến sĩ về khoa học thần kinh 200 00:10:18,080 --> 00:10:21,220 và tôi cảm thấy như thế này sẽ giúp tôi hiểu các công nghệ đang được sử dụng. 201 00:10:21,220 --> 00:10:23,150 Awesome. 202 00:10:26,980 --> 00:10:29,390 Di chuyển trên, Mikaela. 203 00:10:29,390 --> 00:10:31,640 Rằng cách phát âm chính xác không? 204 00:10:31,640 --> 00:10:32,990 Được rồi, awesome. 205 00:10:32,990 --> 00:10:34,640 >> >> Tôi Mikhaila. 206 00:10:34,640 --> 00:10:36,870 Tôi là một sinh viên năm thứ hai ở Kirkland House, 207 00:10:36,870 --> 00:10:39,950 và tôi đang tập trung Kỹ sư cơ khí. 208 00:10:39,950 --> 00:10:43,180 Tôi thực sự thích đi xe đạp, xây dựng một xe đạp vào mùa hè này. 209 00:10:43,180 --> 00:10:46,140 Tôi đang dùng CS, trên thực tế, 210 00:10:46,140 --> 00:10:48,350 như là một yêu cầu tập trung, 211 00:10:48,350 --> 00:10:52,550 nhưng bạn biết, tôi nghĩ rằng nó vẫn còn mát mẻ của lớp kỹ thuật. 212 00:10:52,550 --> 00:10:55,150 Awesome - bạn xây dựng một chiếc xe đạp vào mùa hè này? 213 00:10:55,150 --> 00:10:56,730 >> Yeah. 214 00:10:56,730 --> 00:10:58,900 Wow, như khung và tất cả những điều đó? 215 00:10:58,900 --> 00:11:00,120 >> Uh-hunh (khẳng định). 216 00:11:00,120 --> 00:11:01,530 Wow, đó là thực sự mát mẻ. 217 00:11:01,530 --> 00:11:06,370 >> [Không nghe được trò chuyện off-camera] 218 00:11:06,370 --> 00:11:10,000 [Cười] 219 00:11:12,640 --> 00:11:14,200 Yeah, nó đã lâu. 220 00:11:14,200 --> 00:11:16,730 Bạn không bao giờ biết được, phải không? 221 00:11:16,730 --> 00:11:19,420 Vâng, mát, tốt nhờ, Mikhaila. 222 00:11:19,420 --> 00:11:21,390 >> Được rồi, Missy. 223 00:11:21,390 --> 00:11:23,280 >> Tên tôi là Missy, tôi là một sinh viên năm thứ nhất, 224 00:11:23,280 --> 00:11:25,500 điều đó có nghĩa là tôi không biết bất cứ điều gì! 225 00:11:25,500 --> 00:11:29,180 Tôi muốn tập trung trong vật lý thiên văn. 226 00:11:29,180 --> 00:11:31,220 Trong CS50, 227 00:11:31,220 --> 00:11:33,350 Tôi cảm thấy như chắc chắn sẽ giúp với điều đó. 228 00:11:33,350 --> 00:11:37,750 Một thực tế kỳ lạ về tôi là tôi là một người lính cứu hỏa quốc gia chứng nhận. 229 00:11:37,750 --> 00:11:39,960 Wow! 230 00:11:39,960 --> 00:11:42,440 Làm thế nào điều đó xảy ra? 231 00:11:42,440 --> 00:11:45,570 >> Tôi đã tham dự một học viện 232 00:11:45,570 --> 00:11:49,000 và đã đi qua địa ngục cho rất nhiều tuần 233 00:11:49,000 --> 00:11:51,200 và có chứng nhận của tôi. 234 00:11:51,200 --> 00:11:54,090 Wow, congrats! 235 00:11:54,090 --> 00:11:57,280 Đó là không nhỏ, chắc chắn. 236 00:11:57,280 --> 00:11:59,070 Được rồi, vì vậy bây giờ chúng tôi sẽ làm cho tôi. 237 00:11:59,070 --> 00:12:01,290 Tôi là một trong những kế tiếp trong hàng này. 238 00:12:01,290 --> 00:12:04,510 Tôi - chạy nó. 239 00:12:04,510 --> 00:12:07,580 >> Vì vậy, tôi tên là Nate. 240 00:12:07,580 --> 00:12:11,160 Tôi là lớp học năm 2009 tại Đại học Stanford. 241 00:12:11,160 --> 00:12:13,840 Tôi là một hệ thống biểu tượng lớn, 242 00:12:13,840 --> 00:12:17,370 đó là tương tự như nồng độ Tâm Brain, Behavior, ở đây, 243 00:12:17,370 --> 00:12:19,300 nhưng đó là một kết hợp của 244 00:12:19,300 --> 00:12:22,350 khoa học máy tính, ngôn ngữ học, tâm lý học và triết học. 245 00:12:22,350 --> 00:12:26,600 Loại - yeah, rất nhiều thứ lạ, nhưng nó là rất lớn, 246 00:12:26,600 --> 00:12:29,880 và sau đó, tôi đã làm chủ tôi trong khoa học máy tính, là tốt. 247 00:12:29,880 --> 00:12:33,250 Vì vậy, tôi mới vào trường Harvard năm nay. 248 00:12:33,250 --> 00:12:35,750 Tôi thực sự muốn để có được vào giảng dạy. 249 00:12:35,750 --> 00:12:39,860 Tôi đã dành 4 năm qua tại Stanford TA-lớp Khoa học Máy tính 250 00:12:39,860 --> 00:12:43,370 và như vậy David hãy để tôi đến, 251 00:12:43,370 --> 00:12:45,550 và tôi sẽ được giúp đỡ với CS50, 252 00:12:45,550 --> 00:12:47,890 vì vậy tôi làm toàn thời gian này, tôi không học ở đại học. 253 00:12:47,890 --> 00:12:50,330 Nó được vui vẻ. 254 00:12:50,330 --> 00:12:53,130 Hy vọng rằng nó sẽ tiếp tục được vui vẻ, tôi chắc chắn rằng nó sẽ. 255 00:12:53,130 --> 00:12:56,040 >> Được rồi, Sam. 256 00:13:01,910 --> 00:13:05,470 >> Tên tôi là Sam, tôi là một sinh viên năm thứ hai tại trường, pháp luật cụ thể. 257 00:13:05,470 --> 00:13:10,110 Chính của tôi sẽ là lịch sử khoa học, có thể, và VES thứ cấp, 258 00:13:10,110 --> 00:13:13,240 và màu sắc yêu thích của tôi là màu vàng. 259 00:13:18,790 --> 00:13:21,100 Không cần phải vượt qua bản án hoặc bất cứ điều gì, nhưng đó là một màu sắc tốt! 260 00:13:21,100 --> 00:13:24,780 Stella. 261 00:13:24,780 --> 00:13:26,980 >> Hi, tôi Stella, tôi là một sinh viên năm nhất Grays. 262 00:13:26,980 --> 00:13:30,070 Tôi không có đầu mối những gì tôi đã tập trung trong chưa, 263 00:13:30,070 --> 00:13:32,500 để CS50 là chỉ cần loại ngẫu nhiên, 264 00:13:32,500 --> 00:13:34,220 đó là thú vị. 265 00:13:34,220 --> 00:13:36,080 Thực tế thú vị, Jimmy là Harvard người bạn của tôi, 266 00:13:36,080 --> 00:13:38,360 bởi vì chúng tôi cả hai từ Chicago. 267 00:13:38,360 --> 00:13:42,450 Mát mẻ, và Grace - đó là nghĩa vụ là một trong những thực sự tốt đẹp, phải không? 268 00:13:42,450 --> 00:13:45,220 >> Tôi nghĩ không nghe được]. 269 00:13:45,220 --> 00:13:46,690 Oh, yeah. 270 00:13:46,690 --> 00:13:51,210 [Không nghe / off-camera trò chuyện] 271 00:13:51,210 --> 00:13:54,420 Được rồi, tôi vẫn học tập, vẫn còn đang học. 272 00:13:54,420 --> 00:13:57,800 >> Vì vậy, chúng tôi đã có cái gì khác đó là loại thú vị ở đây. 273 00:13:59,600 --> 00:14:02,870 Yeah, Tôi chỉ tự hỏi, bạn có một ý tưởng đó là xảy ra ở đây? 274 00:14:02,870 --> 00:14:05,890 Bạn biết làm thế nào để giải thích điều này? 275 00:14:05,890 --> 00:14:13,340 >> Tôi phải được đặt dấu chấm phẩy sau mỗi dòng. 276 00:14:13,340 --> 00:14:16,370 Đó là loại đau đớn. 277 00:14:16,370 --> 00:14:19,100 Đôi khi những dấu chấm phẩy có thể là một nỗi đau thực sự để theo dõi. 278 00:14:19,100 --> 00:14:21,420 Vì vậy, nó quay ra rằng 279 00:14:21,420 --> 00:14:22,820 chương trình đặc biệt mà chúng ta đang sử dụng trong năm nay để 280 00:14:22,820 --> 00:14:26,670 biên dịch mã C của chúng tôi được gọi là kêu vang, 281 00:14:26,670 --> 00:14:29,460 và lý do chúng tôi đã bắt đầu sử dụng Clang năm nay - 282 00:14:29,460 --> 00:14:32,030 bởi vì chúng tôi đã không được sử dụng chương trình đó trong quá khứ; 283 00:14:32,030 --> 00:14:35,710 chúng tôi đã sử dụng một số khác được gọi là GCC đó là thực sự phổ biến - 284 00:14:35,710 --> 00:14:38,420 Clang thực sự cung cấp cho bạn các thông báo lỗi đó có ý nghĩa. 285 00:14:38,420 --> 00:14:41,420 Này nói rằng "dự kiến ​​';' sau khi biểu hiện", 286 00:14:41,420 --> 00:14:45,260 và thậm chí nó sẽ cho bạn biết các biểu hiện sau đó bạn cần thiết một dấu chấm phẩy. 287 00:14:45,260 --> 00:14:47,830 Vì vậy, bạn sửa chữa nó? 288 00:14:47,830 --> 00:14:48,930 >> Yeah, ngay bây giờ. 289 00:14:48,930 --> 00:14:52,040 Tuyệt vời, cho tôi biết và chúng tôi sẽ kéo nó lên, và chúng tôi sẽ chạy nó. 290 00:14:52,040 --> 00:14:55,830 Nhưng yeah, đặt những dấu chấm phẩy trong là loại đau đớn. 291 00:14:55,830 --> 00:14:59,580 >> Tôi cố định nó, vì vậy tôi nghĩ rằng nó phải làm việc. 292 00:14:59,580 --> 00:15:02,760 Awesome - sửa đổi 3. 293 00:15:02,760 --> 00:15:05,250 Điều đó có vẻ như nó. 294 00:15:05,250 --> 00:15:08,580 Được rồi, vì vậy bây giờ nếu chúng ta chạy nó, 295 00:15:08,580 --> 00:15:11,020 có nó đi. 296 00:15:11,020 --> 00:15:13,830 Mát công cụ. 297 00:15:13,830 --> 00:15:15,340 >> Được rồi. 298 00:15:15,340 --> 00:15:18,230 Vì vậy, để làm điều đó. 299 00:15:18,230 --> 00:15:20,210 Thật tuyệt khi được gặp các bạn. 300 00:15:20,210 --> 00:15:22,880 Những gì chúng ta sẽ làm là chi tiêu ít bit tiếp theo 301 00:15:22,880 --> 00:15:24,740 kinda lặn vào các vấn đề phần 302 00:15:24,740 --> 00:15:27,550 đến từ các vấn đề thiết lập từ tuần này 303 00:15:27,550 --> 00:15:29,920 và chúng tôi sẽ làm điều đó cho hầu hết các phần 304 00:15:29,920 --> 00:15:32,110 cho phần còn lại của thuật ngữ này, 305 00:15:32,110 --> 00:15:35,580 và sau đó chúng tôi sẽ tiết kiệm cuối cùng 15, 20 phút hoặc lâu hơn 306 00:15:35,580 --> 00:15:38,490 để nói về vấn đề thiết lập chính nó 307 00:15:38,490 --> 00:15:41,420 và sau đó chỉ cần bất kỳ câu hỏi khác bạn có nói chung về lớp. 308 00:15:43,380 --> 00:15:45,670 Điều đó nói rằng, những gì chúng tôi thực sự muốn làm 309 00:15:45,670 --> 00:15:49,390 là có tất cả mọi người tham gia 310 00:15:49,390 --> 00:15:51,500 bằng cách sử dụng các công cụ Spaces, 311 00:15:51,500 --> 00:15:53,500 ném trong mã, ném vào các đề nghị, 312 00:15:53,500 --> 00:15:56,500 và nói về khi mọi thứ như thế này nghỉ ngơi 313 00:15:56,500 --> 00:15:58,360 hoặc không làm việc, chỉ vì đây là những điều mà 314 00:15:58,360 --> 00:16:00,870 Tôi biết tôi đi qua 315 00:16:00,870 --> 00:16:03,180 khi tôi bắt đầu mã hóa, 316 00:16:03,180 --> 00:16:05,490 và thực sự kinda bực bội ở lần 317 00:16:05,490 --> 00:16:08,690 bởi vì nếu nó như 2 sáng trước khi vấn đề của bạn là do, 318 00:16:08,690 --> 00:16:11,330 - chỉ cần tiết lộ, 319 00:16:11,330 --> 00:16:14,590 Tôi đã không bắt đầu lập trình cho đến khi tôi còn là một sinh viên năm thứ hai ở trường đại học. 320 00:16:14,590 --> 00:16:17,360 Đó là loại điều kỳ lạ này chưa biết, 321 00:16:17,360 --> 00:16:20,360 mà tôi đã nghe được kinda 322 00:16:20,360 --> 00:16:23,590 Tôi cũng nghe nói nó có thể là một nỗi đau thực sự trong mông 323 00:16:23,590 --> 00:16:27,610 nếu bạn bỏ lỡ một dấu chấm phẩy và đó là lỗi duy nhất giữ chương trình làm việc của bạn từ 324 00:16:27,610 --> 00:16:30,890 và giữ cho bạn đi ngủ, 325 00:16:30,890 --> 00:16:32,650 vì vậy chắc chắn, 326 00:16:32,650 --> 00:16:34,020 nếu bạn có câu hỏi như vậy, 327 00:16:34,020 --> 00:16:37,060 nếu bạn có mối quan tâm như vậy, cho tôi biết, 328 00:16:37,060 --> 00:16:40,050 bởi vì tôi muốn làm cho một kinh nghiệm tốt cho các bạn. 329 00:16:40,050 --> 00:16:44,620 >> Vì vậy, có bạn tải về tất cả các vấn đề thiết lập chưa? 330 00:16:44,620 --> 00:16:47,160 Kinda biết nó ở đâu? Okay. 331 00:16:47,160 --> 00:16:51,490 Vì vậy, chúng ta sẽ đến cs50.net, bởi vì tôi không có nó trên tài khoản này, 332 00:16:51,490 --> 00:16:54,110 kéo lên các bộ vấn đề, 333 00:16:54,110 --> 00:16:57,940 kéo lên bộ vấn đề 2, và chúng ta sẽ xem xét phiên bản tiêu chuẩn. 334 00:16:57,940 --> 00:17:01,190 Chúng tôi sẽ kéo lên các đặc điểm kỹ thuật ở đây. 335 00:17:02,640 --> 00:17:04,420 Di chuyển xuống. 336 00:17:06,790 --> 00:17:11,109 Vì vậy, chúng ta sẽ bắt đầu tìm kiếm ở phần này của câu hỏi. 337 00:17:14,069 --> 00:17:16,710 Bạn đã xem những quần short? 338 00:17:16,710 --> 00:17:18,329 Okay. 339 00:17:18,329 --> 00:17:21,329 Vì vậy, có quần short trên vòng, 340 00:17:21,329 --> 00:17:24,700 được thực hiện bởi Tommy, một trong các nghiên cứu sinh giảng dạy đầu. 341 00:17:24,700 --> 00:17:27,230 Có một phạm vi, 342 00:17:27,230 --> 00:17:30,530 Tôi tin rằng thực hiện bởi một giáo viên giảng dạy khác có tên David 343 00:17:30,530 --> 00:17:33,400 và sau đó một ngày Caesar Cipher cũng được thực hiện bởi David. 344 00:17:33,400 --> 00:17:35,550 Họ đang khá mát mẻ. 345 00:17:35,550 --> 00:17:37,770 Bạn đã xem quần short của họ cho đến nay? 346 00:17:37,770 --> 00:17:39,270 How've họ được? 347 00:17:39,270 --> 00:17:41,490 Có hữu ích? Được rồi, tốt để biết. 348 00:17:41,490 --> 00:17:44,210 Nếu họ không, bạn có thể nói như vậy. 349 00:17:46,290 --> 00:17:49,870 Nhưng trước khi làm, 350 00:17:49,870 --> 00:17:52,600 có bạn nhìn những câu hỏi này 351 00:17:52,600 --> 00:17:55,430 ở tất cả? 352 00:17:55,430 --> 00:17:57,480 >> Chúng ta hãy nói về điều này một chút. 353 00:17:57,480 --> 00:18:00,600 Vì vậy, chúng tôi đã giới thiệu trong vài tuần qua 354 00:18:00,600 --> 00:18:02,480 trong bài giảng 355 00:18:02,480 --> 00:18:04,910 một số của các vòng khác nhau. 356 00:18:04,910 --> 00:18:06,140 Có cho vòng lặp, 357 00:18:06,140 --> 00:18:09,570 vòng lặp trong khi, và sau đó vòng lặp do-trong khi, 358 00:18:09,570 --> 00:18:13,100 và trong bài giảng, chúng tôi đã nói chuyện rất nhiều về 359 00:18:13,100 --> 00:18:16,010 làm thế nào những vòng là tất cả 360 00:18:16,010 --> 00:18:18,320 khá giống nhau về rất nhiều cách khác nhau, 361 00:18:18,320 --> 00:18:21,210 và bạn có thể làm được gì nhiều trong những điều tương tự với một vòng lặp trong khi 362 00:18:21,210 --> 00:18:23,260 mà bạn có thể với một vòng lặp cho. 363 00:18:23,260 --> 00:18:26,300 Bạn chỉ cần có loại sử dụng các kết hợp của các biến và như vậy. 364 00:18:26,300 --> 00:18:28,680 và như vậy thực sự 365 00:18:28,680 --> 00:18:31,200 sự khác biệt thực sự giữa tất cả các vòng lặp là 366 00:18:31,200 --> 00:18:33,620 đôi khi chúng hữu ích hơn 367 00:18:33,620 --> 00:18:36,930 để sử dụng chúng tại một thời gian hơn tại một thời điểm khác. 368 00:18:36,930 --> 00:18:39,340 >> Vì vậy, ví dụ, 369 00:18:39,340 --> 00:18:42,260 vòng lặp trong khi khác nhau từ một vòng lặp do-trong khi. 370 00:18:42,260 --> 00:18:45,680 Có tất cả mọi người cảm thấy như họ có xử lý tốt khi 371 00:18:45,680 --> 00:18:48,650 một vòng lặp trong khi 372 00:18:48,650 --> 00:18:50,990 hữu ích hay những gì khác biệt? 373 00:18:50,990 --> 00:18:53,410 >> Tôi nghĩ rằng sự khác biệt là một vòng lặp do-trong khi 374 00:18:53,410 --> 00:18:56,960 chạy - Tôi không biết hoàn toàn những gì về thuật ngữ có, 375 00:18:56,960 --> 00:18:59,750 nhưng hàng loạt các chức năng bên trong vòng lặp. 376 00:18:59,750 --> 00:19:02,020 Họ tự động - nó chạy ít nhất 377 00:19:02,020 --> 00:19:05,390 trước khi kiểm tra điều kiện, hoặc vòng lặp while sẽ chỉ chạy khi 378 00:19:05,390 --> 00:19:08,290 nó chạy liên tục - có hoặc không có điều kiện được thỏa mãn. 379 00:19:08,290 --> 00:19:11,010 Yeah, điều đó có ý nghĩa? 380 00:19:11,010 --> 00:19:14,200 >> Chúng ta hãy xem xét một chút mã 381 00:19:14,200 --> 00:19:16,930 Vì vậy, chỉ cần nhắc lại câu hỏi, 382 00:19:16,930 --> 00:19:19,230 hoặc câu trả lời, thay; 383 00:19:19,230 --> 00:19:22,050 câu trả lời là 384 00:19:22,050 --> 00:19:25,850 một vòng lặp while sẽ kiểm tra xem nếu điều kiện 385 00:19:25,850 --> 00:19:27,440 mà bạn chỉ định được đáp ứng 386 00:19:27,440 --> 00:19:31,320 trước khi nó chạy cơ thể của vòng lặp cho lần đầu tiên, 387 00:19:31,320 --> 00:19:35,000 trong khi do-trong khi vòng lặp sẽ chạy tự động cơ thể của vòng lặp, 388 00:19:35,000 --> 00:19:38,450 là những gì chúng tôi gọi nó - đó là lạ thuật ngữ, 389 00:19:38,450 --> 00:19:41,460 nhưng nếu tôi bao giờ nói bất cứ điều gì mà không có ý nghĩa, cho tôi biết - 390 00:19:41,460 --> 00:19:45,360 thân vòng lặp là những công cụ mà bạn đưa vào giữa các dấu ngoặc nhọn. 391 00:19:45,360 --> 00:19:47,840 Và trong vòng lặp do-trong khi, 392 00:19:47,840 --> 00:19:50,220 mà cơ thể được chạy ít nhất một lần, 393 00:19:50,220 --> 00:19:54,460 và sau đó điều kiện được kiểm tra trước khi nó chạy mỗi lần kế tiếp. 394 00:19:54,460 --> 00:19:56,580 >> Vì vậy, trên thực tế, Sam, 395 00:19:56,580 --> 00:20:00,820 làm bạn nhớ viết một đơn giản trong khi vòng lặp 396 00:20:00,820 --> 00:20:02,840 trong các không gian? 397 00:20:02,840 --> 00:20:05,600 >> Làm sao bạn sắp xếp giống như 398 00:20:05,600 --> 00:20:07,060 làm cho một ...? 399 00:20:07,060 --> 00:20:09,220 Tôi chỉ cần xóa bất cứ điều gì bạn có trong đó. 400 00:20:09,220 --> 00:20:11,300 Yeah, chỉ cần xóa nó ra. 401 00:20:11,300 --> 00:20:14,510 >> Vâng, tôi tin rằng tôi có điều này - 402 00:20:14,510 --> 00:20:16,640 mà một trong những bạn muốn, một thời gian, hay bạn muốn ...? 403 00:20:16,640 --> 00:20:19,350 Yeah, chỉ cần làm một trong khi sự thật, in cái gì. 404 00:20:21,050 --> 00:20:23,140 Và chúng ta hãy xem. 405 00:20:23,140 --> 00:20:25,850 Alexander, tôi nhận ra rằng chúng ta không bao giờ giới thiệu cho bạn. 406 00:20:25,850 --> 00:20:27,510 >> Oh, đó là tốt. 407 00:20:27,510 --> 00:20:30,760 Bạn có - bạn có thể mã lập một vòng lặp do-trong khi đối với chúng ta? 408 00:20:30,760 --> 00:20:32,520 >> Vâng, tôi sẽ cố gắng. 409 00:20:32,520 --> 00:20:34,370 Được rồi, chúng tôi sẽ chỉ kéo những lên trên màn hình, 410 00:20:34,370 --> 00:20:38,240 để bạn loại có một xử lý về những gì khác biệt. 411 00:20:38,240 --> 00:20:41,280 >> Vì vậy, đây là những gì Sam đã làm. 412 00:20:41,280 --> 00:20:44,460 Ông có một số nguyên tên gọi là i 413 00:20:44,460 --> 00:20:47,480 rằng ông khởi tạo đến 17. 414 00:20:47,480 --> 00:20:51,570 Sau đó ông nói trong khi (int i = 17) 415 00:20:51,570 --> 00:20:54,230 printf ("Tên của tôi là Sam."); 416 00:20:54,230 --> 00:20:57,300 Vì vậy, những gì sẽ xảy ra khi chúng ta chạy mã này? 417 00:20:57,300 --> 00:21:00,340 Có một lỗi, lỗi nói gì? 418 00:21:00,340 --> 00:21:02,890 Hãy kéo nó lên và nói về nó. 419 00:21:02,890 --> 00:21:05,040 Đã xảy ra lỗi, nó nói. 420 00:21:05,040 --> 00:21:07,400 Hãy di chuyển xuống. 421 00:21:07,400 --> 00:21:09,460 Vì vậy, nó đã cho chúng tôi lỗi này, và nó nói, 422 00:21:09,460 --> 00:21:12,690 "Này, tôi mong đợi một biểu thức." 423 00:21:12,690 --> 00:21:16,180 Đó là kinda khó hiểu. 424 00:21:19,160 --> 00:21:23,140 Yeah, vì vậy chính xác - và một lần nữa, 425 00:21:23,140 --> 00:21:27,140 sẽ có một lỗi nhỏ mà chúng tôi sẽ bắt chỉ trong một giây. 426 00:21:27,140 --> 00:21:31,800 Nhưng đây là một một trong những loại những điều kỳ lạ thuật ngữ, 427 00:21:31,800 --> 00:21:36,150 do đó, điều này int i = 17 428 00:21:36,150 --> 00:21:39,290 không phải là một biểu thức. 429 00:21:39,290 --> 00:21:41,220 Những gì có vẻ như nó làm là nó 430 00:21:41,220 --> 00:21:43,410 kê khai một số nguyên tên gọi là i 431 00:21:43,410 --> 00:21:45,540 và thiết lập nó bằng đến 17 432 00:21:45,540 --> 00:21:48,780 hoặc, đúng hơn, đặt 17 vào int mà tên gọi là i. 433 00:21:50,560 --> 00:21:53,350 Và điều đó không có ý nghĩa 434 00:21:53,350 --> 00:21:55,790 trong bối cảnh này vòng lặp trong khi. 435 00:21:55,790 --> 00:21:58,190 Nó không có ý nghĩa, như chúng ta sẽ thấy, 436 00:21:58,190 --> 00:22:01,250 trong bối cảnh của một cho vòng lặp, bởi vì khai báo vòng lặp bắt đầu 437 00:22:01,250 --> 00:22:05,800 với int i bằng gì gì đó 438 00:22:05,800 --> 00:22:07,830 và đi vào. 439 00:22:07,830 --> 00:22:09,500 >> Vì vậy, còn bạn thì sao - 440 00:22:09,500 --> 00:22:12,630 sửa chữa một cái gì đó, tất cả các quyền. 441 00:22:12,630 --> 00:22:15,270 Ở đây nó đi; awesome. 442 00:22:15,270 --> 00:22:17,920 Vì vậy, bây giờ mọi chuyện có vẻ khác một chút. 443 00:22:17,920 --> 00:22:19,030 Một vài điều đã thay đổi. 444 00:22:19,030 --> 00:22:21,300 Bạn có thể cho chúng tôi biết những gì đã thay đổi? 445 00:22:21,300 --> 00:22:24,950 >> Tôi đã diễn ra các int, do đó, không có khai báo [không nghe được] thay vì chuyển nhượng. 446 00:22:24,950 --> 00:22:28,770 Một dấu bằng, tôi đặt 2 dấu bằng, có nghĩa là một dấu bằng. 447 00:22:28,770 --> 00:22:30,560 Awesome. 448 00:22:30,560 --> 00:22:33,320 Yeah, vì vậy những gì Sam đã được ông int 449 00:22:33,320 --> 00:22:35,770 đó là ngay tại đây trước đó, 450 00:22:35,770 --> 00:22:39,340 vì vậy nếu tôi chỉ cần nhìn vào điều này - đây là những gì nó đã được trước đó, nó nói int, 451 00:22:39,340 --> 00:22:41,970 được tuyên bố nó - vì vậy chúng tôi đưa ra các loại. 452 00:22:41,970 --> 00:22:44,710 Có int, string, char, short, 453 00:22:44,710 --> 00:22:47,380 những người được gọi là các loại. 454 00:22:47,380 --> 00:22:49,510 Vì vậy, bạn lấy ra các loại 455 00:22:49,510 --> 00:22:51,580 và sau đó trước đây, 456 00:22:51,580 --> 00:22:54,190 ông đã có chỉ duy nhất dấu bằng 457 00:22:54,190 --> 00:22:57,300 và những gì ông nói là vấn đề này đã được 458 00:22:57,300 --> 00:22:59,580 khi bạn có 1 dấu bằng, 459 00:22:59,580 --> 00:23:01,780 đó là một nhà điều hành chuyển nhượng. 460 00:23:01,780 --> 00:23:04,930 Đó không phải là thử nghiệm có hoặc không có 2 thứ đều bình đẳng. 461 00:23:04,930 --> 00:23:07,920 Đó là thực sự thiết lập một cái gì đó bằng một cái gì đó. 462 00:23:07,920 --> 00:23:11,110 Chúng tôi đang đặt số 17 vào i biến. 463 00:23:11,110 --> 00:23:13,850 Vì vậy, để làm điều đó loại so sánh, 464 00:23:13,850 --> 00:23:16,430 bạn phải sử dụng đôi bằng, 465 00:23:16,430 --> 00:23:19,640 mà là một loại của một điều kỳ lạ 466 00:23:19,640 --> 00:23:22,760 nhưng là một lỗi khá phổ biến. 467 00:23:23,980 --> 00:23:27,830 Vì vậy, một trong những điều khác tôi sẽ chỉ ra, nếu quý vị không nhớ, 468 00:23:27,830 --> 00:23:30,610 là trong 469 00:23:30,610 --> 00:23:33,210 chức năng của chúng tôi ở đây trong int main, 470 00:23:33,210 --> 00:23:36,740 bạn thấy rằng các cơ quan chức năng của chúng ta 471 00:23:36,740 --> 00:23:39,810 được bù đắp từ phía bên trái 472 00:23:39,810 --> 00:23:42,400 4 không gian hoặc tab. 473 00:23:42,400 --> 00:23:44,730 Lý do chúng tôi làm điều này 474 00:23:44,730 --> 00:23:47,000 chỉ là cho dễ đọc. 475 00:23:47,000 --> 00:23:51,620 Như bạn có thể thấy trong vòng lặp trong khi Sam ở đây, 476 00:23:51,620 --> 00:23:53,120 ông không thụt ở tất cả, 477 00:23:53,120 --> 00:23:55,390 và điều đó không ảnh hưởng đến các chức năng của mã này. 478 00:23:55,390 --> 00:23:57,860 Nó sẽ chạy chính xác như nhau. 479 00:23:57,860 --> 00:24:00,950 >> Vì vậy, ví dụ, nếu chúng ta lên đến đỉnh 480 00:24:00,950 --> 00:24:02,680 và nhấn nút Play của chúng tôi, nó sẽ xây dựng nó, 481 00:24:02,680 --> 00:24:04,470 nó sẽ chạy nó, 482 00:24:04,470 --> 00:24:06,700 và những gì sẽ xảy ra? 483 00:24:06,700 --> 00:24:08,360 Tại sao nó vẫn nói rằng chạy? 484 00:24:08,360 --> 00:24:10,560 >> Bởi vì nó sẽ tiếp tục lặp đi lặp lại hi. 485 00:24:10,560 --> 00:24:12,900 Chính xác, và lý do tại sao không tiếp tục lặp đi lặp lại hi? 486 00:24:12,900 --> 00:24:15,850 >> Bởi vì số nguyên không bao giờ thay đổi, do đó, nó luôn luôn là 17. 487 00:24:15,850 --> 00:24:18,030 Yeah, chính xác, do đó, 488 00:24:18,030 --> 00:24:20,970 chúng ta hãy xem, sau khi nhắc nhở tôi về tên của bạn một lần nữa? 489 00:24:20,970 --> 00:24:24,020 Jimmy. Vì vậy, Jimmy nói rằng 490 00:24:24,020 --> 00:24:27,340 Vì lý do này tiếp tục lặp đi lặp lại hi hơn và hơn nữa 491 00:24:27,340 --> 00:24:30,510 là bởi vì tình trạng này là luôn luôn đúng. 492 00:24:30,510 --> 00:24:33,270 Chúng tôi không bao giờ thay đổi giá trị của i. 493 00:24:33,270 --> 00:24:36,170 Chúng tôi không bao giờ thay đổi các nội dung của những gì được lưu trữ trong biến đó. 494 00:24:36,170 --> 00:24:39,180 Vì vậy, tại thời điểm này, chúng tôi đã nhận lỗi này 495 00:24:39,180 --> 00:24:42,170 chương trình của bạn tạo ra sản lượng quá nhiều, 496 00:24:42,170 --> 00:24:45,100 và nếu chúng ta di chuyển xuống và xem những gì đang xảy ra ở đây, 497 00:24:45,100 --> 00:24:49,160 bạn có thể thấy rằng nó là hi, hi, hi, hi, hi, hi, hi tất cả các cách thông qua. 498 00:24:49,160 --> 00:24:51,200 Awesome. 499 00:24:51,200 --> 00:24:53,750 >> Vì vậy, loại trở lại điểm ban đầu 500 00:24:53,750 --> 00:24:57,020 rằng có thụt đầu dòng 501 00:24:57,020 --> 00:25:00,110 trong cơ thể của vòng lặp trong khi không ảnh hưởng đến bất cứ điều gì. 502 00:25:00,110 --> 00:25:03,050 Chương trình vẫn chạy tốt. 503 00:25:03,050 --> 00:25:06,790 Điển hình cho phong cách tốt - 504 00:25:06,790 --> 00:25:10,210 và điều này là một cái gì đó mà chúng ta tìm kiếm trong bộ vấn đề của bạn - 505 00:25:10,210 --> 00:25:13,930 chúng tôi yêu cầu bạn để indent điều này bằng cách 4 không gian, bạn có thể làm 506 00:25:13,930 --> 00:25:16,440 bởi chỉ cần nhấn phím tab 507 00:25:16,440 --> 00:25:18,860 hoặc bằng cách đặt trong 4 không gian chính mình. 508 00:25:21,880 --> 00:25:25,050 Cool, ổn do đó, chúng ta hãy quay trở lại và xem xét 509 00:25:25,050 --> 00:25:30,460 Alexander do-while. 510 00:25:30,460 --> 00:25:32,980 >> Chỉ cần kinda gặp một chút rắc rối. 511 00:25:32,980 --> 00:25:34,390 Được rồi, chúng ta hãy làm việc thông qua nó. 512 00:25:34,390 --> 00:25:36,400 That cool? 513 00:25:36,400 --> 00:25:37,430 >> Yeah. 514 00:25:37,430 --> 00:25:39,200 >> Được rồi, vì vậy ở đây chúng tôi đi. 515 00:25:39,200 --> 00:25:41,010 Đây là mã rằng Alexander đã viết. 516 00:25:41,010 --> 00:25:43,410 Bạn có đi bởi Alex - okay. 517 00:25:43,410 --> 00:25:46,380 Vì vậy, đây là đoạn code mà Alex đã viết. 518 00:25:46,380 --> 00:25:50,500 Vì vậy, chúng tôi đã có tuyên bố của chúng tôi của chính ngay tại đây, 519 00:25:50,500 --> 00:25:54,410 và sau đó chúng tôi đã bị này biến số nguyên tên gọi là i 520 00:25:54,410 --> 00:25:57,320 được tuyên bố ngay tại đây. 521 00:25:57,320 --> 00:26:01,060 Chúng tôi đã có một tuyên bố do 522 00:26:01,060 --> 00:26:04,600 và sau đó cơ thể một lần nữa với những niềng răng, 523 00:26:04,600 --> 00:26:06,520 vì vậy đây là cơ thể của do-trong khi 524 00:26:06,520 --> 00:26:09,210 cho tôi phóng to trong ngày này nên nó dễ đọc hơn - 525 00:26:09,210 --> 00:26:12,730 và trong cơ thể, chúng tôi đang cố gắng để in "đây là cơ thể", 526 00:26:12,730 --> 00:26:14,300 i + +, 527 00:26:14,300 --> 00:26:17,710 do đó, tăng các nội dung của i và làm điều này 528 00:26:17,710 --> 00:26:19,470 cho đến khi tôi nhận được là 3, 529 00:26:19,470 --> 00:26:22,440 và sau đó chương trình của chúng tôi kết thúc. 530 00:26:22,440 --> 00:26:24,680 >> Vì vậy, những gì sẽ xảy ra khi chúng ta chạy chương trình này? 531 00:26:24,680 --> 00:26:27,580 >> Tôi mong đợi một định danh. 532 00:26:27,580 --> 00:26:32,070 Được rồi, do đó, xây dựng, chạy, lỗi xảy ra. 533 00:26:32,070 --> 00:26:34,820 Điều gì sẽ xảy ra? 534 00:26:34,820 --> 00:26:37,060 Chúng tôi di chuyển xuống ở đây, 535 00:26:37,060 --> 00:26:40,260 chúng tôi có được điều này hơi khó hiểu, 536 00:26:40,260 --> 00:26:43,930 dự kiến ​​sẽ dấu chấm phẩy sau khi khai báo cấp cao nhất. 537 00:26:43,930 --> 00:26:46,620 Đó là kinda lạ. 538 00:26:46,620 --> 00:26:50,990 Có ai có một ý tưởng về những gì có thể xảy ra? 539 00:26:53,080 --> 00:26:54,640 Kinda lạ, yeah. 540 00:26:54,640 --> 00:26:57,640 >> [Không nghe được] được khai báo bên ngoài dấu ngoặc đơn? 541 00:26:57,640 --> 00:27:03,480 Vì vậy, không không áp dụng sau khi bạn sử dụng dấu ngoặc đơn? 542 00:27:03,480 --> 00:27:07,390 Vì vậy, ông tuyên bố anh chàng này bên ngoài trong đó dấu ngoặc đơn? 543 00:27:09,670 --> 00:27:12,240 Oh, những kẻ - dấu ngoặc nhọn? 544 00:27:12,240 --> 00:27:13,850 >> Yeah. 545 00:27:13,850 --> 00:27:15,310 Yeah, chính xác. 546 00:27:15,310 --> 00:27:17,120 Vì vậy, nó quay ra rằng 547 00:27:17,120 --> 00:27:21,550 bạn có thể không thực sự khai báo một biến ngay tại đây như thế này. 548 00:27:23,750 --> 00:27:26,690 Những gì bạn có thể đã cố gắng để làm là - 549 00:27:26,690 --> 00:27:30,110 cắt nó ra khỏi đó - 550 00:27:30,110 --> 00:27:34,330 bạn có thể đặt nó trong dấu ngoặc nhọn ngay tại đây 551 00:27:34,330 --> 00:27:37,400 hoặc một thay thế 552 00:27:37,400 --> 00:27:40,350 là để đặt nó hoàn toàn bên ngoài. 553 00:27:42,480 --> 00:27:46,610 Và do đó, những tùy thuộc vào nơi bạn thực sự đặt việc kê khai 554 00:27:46,610 --> 00:27:48,550 đó biến số nguyên, 555 00:27:48,550 --> 00:27:53,540 bạn có thể nhận được 2 loại rất khác nhau của các biến; 556 00:27:53,540 --> 00:27:55,100 khi nó ở bên ngoài của chính, 557 00:27:55,100 --> 00:27:58,240 đó là những gì chúng ta gọi là một biến toàn cầu. 558 00:27:58,240 --> 00:28:00,070 Đó là ngoài phạm vi của bất kỳ chức năng - 559 00:28:00,070 --> 00:28:03,420 nó không phải trong phạm vi chức năng - 560 00:28:03,420 --> 00:28:07,050 trong khi đó nếu chúng ta đặt nó bên trong của chính, 561 00:28:07,050 --> 00:28:10,000 thích ngay tại đây, sau đó nó được gọi là một biến địa phương, 562 00:28:10,000 --> 00:28:13,830 bởi vì nó là địa phương trong phạm vi của chính. 563 00:28:13,830 --> 00:28:16,720 Và chúng tôi sẽ nói một chút về những gì khác biệt 564 00:28:16,720 --> 00:28:20,970 giữa 2 loại và lý do tại sao bạn sử dụng các loại khác nhau của các biến, 565 00:28:20,970 --> 00:28:23,040 nhưng bây giờ, 566 00:28:23,040 --> 00:28:25,070 bạn chỉ có thể giữ tất cả các biến địa phương, 567 00:28:25,070 --> 00:28:28,320 vì chúng tôi không có bất kỳ nhu cầu cho các biến toàn cầu. 568 00:28:28,320 --> 00:28:31,390 >> Được rồi, vì vậy đó là một điều phải có. 569 00:28:31,390 --> 00:28:34,680 Chúng ta hãy thử chạy này một lần nữa, xem những gì sẽ xảy ra. 570 00:28:37,420 --> 00:28:40,270 Run, nhận được một lỗi. 571 00:28:40,270 --> 00:28:43,320 Phóng to một chút, chúng tôi nhận được gì? 572 00:28:45,110 --> 00:28:50,000 Chúng tôi nhận được điều này ngoặc dự kiến ​​sau khi làm / trong khi. 573 00:28:53,660 --> 00:28:55,260 Bất cứ ý tưởng gì đang xảy ra? Dan? 574 00:28:55,260 --> 00:28:58,880 >> Trong khi sau đó ngoặc đơn và sau đó - 575 00:28:58,880 --> 00:29:01,990 Tôi không biết nếu bạn cần phải redeclare int, 576 00:29:01,990 --> 00:29:04,980 nhưng trong khi (i <3). 577 00:29:04,980 --> 00:29:06,930 Chính xác, yeah. 578 00:29:06,930 --> 00:29:08,830 Vì vậy, nó quay ra rằng Dan là chính xác. 579 00:29:08,830 --> 00:29:11,230 Chúng tôi không cần phải đặt loại này ở đây một lần nữa. 580 00:29:11,230 --> 00:29:14,440 Chúng tôi thay vào đó có thể giết chết các loại 581 00:29:14,440 --> 00:29:17,220 và chỉ cần làm điều đó. 582 00:29:19,270 --> 00:29:21,640 Được rồi. 583 00:29:21,640 --> 00:29:24,950 Tôi sẽ thu nhỏ trở lại, hãy thử nó một lần nữa. 584 00:29:26,360 --> 00:29:29,580 Nhìn vào đó, nó chạy thành công. 585 00:29:29,580 --> 00:29:33,260 Nếu chúng ta di chuyển xuống, "đây là cơ thể" in ra 3 lần. 586 00:29:33,260 --> 00:29:35,820 Đó là khá ngọt ngào. 587 00:29:35,820 --> 00:29:38,670 Cũng được thực hiện, cũng được thực hiện, guys. 588 00:29:38,670 --> 00:29:41,080 Thực hiện tốt. 589 00:29:41,080 --> 00:29:43,250 Sao cho đến nay? 590 00:29:43,250 --> 00:29:46,200 Decent tốc độ? 591 00:29:46,200 --> 00:29:49,200 Được rồi, mát mẻ. 592 00:29:49,200 --> 00:29:52,590 >> Vì vậy, khi chúng ta trở lại câu hỏi ban đầu, 593 00:29:52,590 --> 00:29:55,430 chúng ta - và bây giờ nếu chúng ta thấy sự khác biệt, 594 00:29:55,430 --> 00:29:58,240 bạn thấy rằng trong vòng lặp này do-trong khi, 595 00:29:58,240 --> 00:30:00,030 điều kiện đến cuối cùng. 596 00:30:00,030 --> 00:30:02,530 Vì vậy, là máy tính đọc các chương trình 597 00:30:02,530 --> 00:30:06,050 kể từ khi các chương trình C được thực hiện loại theo thứ tự tuần tự, 598 00:30:06,050 --> 00:30:09,450 nơi họ theo nghĩa đen bắt đầu với dòng đầu tiên của chính, 599 00:30:09,450 --> 00:30:13,450 và sau đó thực hiện dòng 6, 7 dòng, dòng 8, đường 9, 600 00:30:13,450 --> 00:30:16,150 10 dòng, 11 dòng, 601 00:30:16,150 --> 00:30:18,440 tất cả các công cụ này ở đầu ngay tại đây 602 00:30:18,440 --> 00:30:20,020 sẽ thực hiện một lần 603 00:30:20,020 --> 00:30:23,350 trước khi chúng tôi kiểm tra điều kiện này để xem 604 00:30:23,350 --> 00:30:26,240 hay không i - hoặc nội dung của tôi, chứ không phải 605 00:30:26,240 --> 00:30:29,750 ít hơn số 3. 606 00:30:29,750 --> 00:30:33,300 Và chỉ nếu một khi chúng ta nhận được dòng 12, 607 00:30:33,300 --> 00:30:36,260 các nội dung của i có ít hơn 3 608 00:30:36,260 --> 00:30:39,150 chúng tôi thực sự nhảy trở lại lên đến dòng 7 609 00:30:39,150 --> 00:30:41,140 và sau đó lặp lại quá trình, 610 00:30:41,140 --> 00:30:44,620 và sau đó chúng tôi kiểm tra các điều kiện một lần nữa và một lần nữa và một lần nữa. 611 00:30:44,620 --> 00:30:47,440 >> Vì vậy, chúng ta có thể tương phản này 612 00:30:47,440 --> 00:30:50,240 - phóng to trở lại, 613 00:30:50,240 --> 00:30:56,500 di chuyển xuống phiên bản của Sam, 614 00:30:56,500 --> 00:31:00,760 chúng ta sẽ xem xét điều này, thay đổi một chút để nó không còn một vòng lặp vô hạn - 615 00:31:00,760 --> 00:31:03,570 nếu chúng ta phóng to, 616 00:31:03,570 --> 00:31:06,300 chúng ta thấy rằng, cũng như chương trình này thực hiện, 617 00:31:06,300 --> 00:31:09,120 nó sẽ kê khai lần đầu tiên int i, 618 00:31:09,120 --> 00:31:12,030 thiết lập các nội dung của i là 0, 619 00:31:12,030 --> 00:31:15,820 và sau đó nó lượt truy cập các điều kiện đầu tiên vòng lặp trong khi, 620 00:31:15,820 --> 00:31:19,210 do đó, trong trường hợp này, cơ thể, điều này ("hi") printf và i + + 621 00:31:19,210 --> 00:31:21,630 thậm chí sẽ không thực hiện 622 00:31:21,630 --> 00:31:24,310 trừ khi tôi thực sự là nhỏ hơn hoặc bằng 2. 623 00:31:24,310 --> 00:31:26,750 Vì vậy, nếu tôi là 3, ví dụ, 624 00:31:26,750 --> 00:31:28,840 nếu chúng ta thiết lập này ngay tại đây 625 00:31:28,840 --> 00:31:32,160 bằng 4 hoặc tôi sẽ làm 3, bởi vì tôi đã nói 3 - 626 00:31:32,160 --> 00:31:34,890 và sau đó chạy nó, 627 00:31:34,890 --> 00:31:38,320 nó sẽ xây dựng, nó sẽ chạy hoàn toàn tốt, 628 00:31:38,320 --> 00:31:40,530 nhưng nó sẽ không thực sự in ra bất cứ điều gì, 629 00:31:40,530 --> 00:31:43,030 bởi vì nó không thành công thử nghiệm cho trường hợp đầu tiên. 630 00:31:44,780 --> 00:31:47,530 Vì vậy, trong lớp học, chúng ta đã nói về lý do tại sao những vòng lặp do-trong khi 631 00:31:47,530 --> 00:31:49,800 hữu ích đôi khi 632 00:31:49,800 --> 00:31:53,140 và lý do tại sao chúng tôi sẽ sử dụng nó như trái ngược với một vòng lặp while. 633 00:31:53,140 --> 00:31:56,450 >> Có - bạn có bất cứ đề nghị 634 00:31:56,450 --> 00:31:59,090 cho lý do tại sao một trong khi vòng lặp có thể là hữu ích hơn? 635 00:31:59,090 --> 00:32:02,560 >> Vâng, tôi nghĩ làm trong khi các vòng là nếu bạn muốn người dùng nhập vào, 636 00:32:02,560 --> 00:32:05,020 vì như vậy bạn có thể cho họ 637 00:32:05,020 --> 00:32:07,780 đặt một cái gì đó trong một lần, nếu nó đúng, 638 00:32:07,780 --> 00:32:09,300 chúng ta có thể chuyển sang phần còn lại của chương trình, 639 00:32:09,300 --> 00:32:11,250 nhưng nếu nó không phải là chính xác, sau đó bạn tiếp tục khiến người sử dụng 640 00:32:11,250 --> 00:32:13,250 cho đến khi bạn đặt đầu vào bên phải. 641 00:32:13,250 --> 00:32:14,260 Yeah, chính xác - chính xác, 642 00:32:14,260 --> 00:32:16,840 do đó, một do-trong khi vòng lặp là hữu ích 643 00:32:16,840 --> 00:32:18,930 bởi vì khi khiến cho người sử dụng đầu vào 644 00:32:18,930 --> 00:32:23,000 bởi vì bạn cần để có được đầu vào của người sử dụng trước khi bạn thực sự có thể kiểm tra xem nó. 645 00:32:23,000 --> 00:32:27,330 Vì vậy, trong pset 1, pset 2, 646 00:32:27,330 --> 00:32:29,650 nơi bạn đang khiến cho người dùng nhập vào rất nhiều, 647 00:32:29,650 --> 00:32:31,200 đó là một điều thuận tiện để sử dụng 648 00:32:31,200 --> 00:32:33,740 như trái ngược với chỉ là một vòng lặp trong khi đơn giản. 649 00:32:33,740 --> 00:32:36,780 Nếu bạn sử dụng một vòng lặp trong khi, bạn có thể làm điều tương tự - 650 00:32:36,780 --> 00:32:38,750 bạn có thể làm điều tương tự với một vòng lặp while 651 00:32:38,750 --> 00:32:40,580 như bạn làm với một vòng lặp do-trong khi. 652 00:32:40,580 --> 00:32:43,380 Bạn chỉ cần có của loại hình có quá trình này trùng lặp 653 00:32:43,380 --> 00:32:47,010 nơi bạn có được đầu vào đầu tiên và sau đó bắt đầu vòng lặp trong khi của bạn. 654 00:32:47,010 --> 00:32:49,800 Trong khi đó, do-trong khi vòng lặp, bạn chỉ cần phải viết nó một lần 655 00:32:49,800 --> 00:32:52,430 và nó là một sạch hơn rất nhiều. 656 00:32:52,430 --> 00:32:54,650 >> Được rồi. 657 00:32:55,970 --> 00:32:57,330 Bất kỳ câu hỏi nào? 658 00:32:59,350 --> 00:33:01,380 Có ý nghĩa? 659 00:33:01,380 --> 00:33:06,200 >> Sự trở lại 0 - đó là chỉ cần loại một gian hàng hoặc là nó? 660 00:33:06,200 --> 00:33:08,960 Yeah, vì vậy chúng tôi có thể - 661 00:33:08,960 --> 00:33:11,960 tốt, chúng tôi sẽ đề cập đến điều này hơn một chút sau 662 00:33:11,960 --> 00:33:13,290 nhưng nó quay ra rằng 663 00:33:13,290 --> 00:33:15,720 này 0 trở lại mà chúng ta đặt 664 00:33:15,720 --> 00:33:19,090 vào cuối thời gian chính tất cả các - 665 00:33:19,090 --> 00:33:21,980 bạn có thể kinda chỉ cần mang nó như là một cái gì đó chúng tôi làm 666 00:33:21,980 --> 00:33:24,930 cho thời gian được. 667 00:33:24,930 --> 00:33:28,860 Những gì chúng ta đã bắt đầu nói về với chức năng 668 00:33:28,860 --> 00:33:31,600 loại vào cuối tuần trước và sau đó một lần nữa trong tuần này 669 00:33:31,600 --> 00:33:33,550 là một chức năng 670 00:33:33,550 --> 00:33:37,680 mất đầu vào là những điều này trong dấu ngoặc đơn; 671 00:33:37,680 --> 00:33:41,690 đây là 2 đầu vào, lập luận hoặc các thông số của chúng tôi, 672 00:33:41,690 --> 00:33:44,540 những gì họ đang còn được gọi là chức năng chính của chúng tôi, 673 00:33:44,540 --> 00:33:48,510 và sau đó một chức năng sản xuất một đầu ra 674 00:33:48,510 --> 00:33:51,290 mà chúng ta gọi là giá trị trả về. 675 00:33:51,290 --> 00:33:56,260 Và giá trị trả lại trong trường hợp chính là int này, 676 00:33:56,260 --> 00:33:58,320 này số nguyên, 677 00:33:58,320 --> 00:34:01,160 và cách bạn nói với một chức năng, "Hey, đây là đầu ra của bạn 678 00:34:01,160 --> 00:34:05,840 là có được ", với từ" return ", 679 00:34:05,840 --> 00:34:07,960 từ khoá đó, chứ không phải, 680 00:34:07,960 --> 00:34:11,000 và như vậy chính trở về 0 681 00:34:11,000 --> 00:34:13,389 hoặc chính outputting 0 682 00:34:13,389 --> 00:34:15,139 là tiêu chuẩn trong các chương trình C 683 00:34:15,139 --> 00:34:18,110 bởi vì trở về 0 từ các phương tiện chính mà 684 00:34:18,110 --> 00:34:21,600 "Hey, tất cả mọi thứ được thực hiện với chương trình chỉ tốt của tôi." 685 00:34:21,600 --> 00:34:24,639 Nếu chúng ta đặt một cái gì đó khác hơn 0, 686 00:34:24,639 --> 00:34:27,440 như 1, ví dụ, 687 00:34:27,440 --> 00:34:31,080 được sử dụng để nói cho bất cứ ai chạy chương trình này 688 00:34:31,080 --> 00:34:33,540 một điều gì đó đã đi sai. 689 00:34:35,739 --> 00:34:39,989 Vì vậy, khi chúng ta tham gia nhiều hơn với các công cụ trên học kỳ, 690 00:34:39,989 --> 00:34:42,670 nếu bạn đã bao giờ cần phải nói, 691 00:34:42,670 --> 00:34:46,650 "Rất tiếc, bạn đã biết, một cái gì đó đã đi sai với chương trình này", 692 00:34:46,650 --> 00:34:49,409 thay vì phải cố chương trình của tôi, tôi muốn thông báo cho 693 00:34:49,409 --> 00:34:52,310 Á hậu của chương trình tôi một điều gì đó đã đi sai, 694 00:34:52,310 --> 00:34:54,530 bạn có thể sử dụng giá trị trả về 695 00:34:54,530 --> 00:34:57,230 khi chúng tôi gọi nó, đó là không phải 0. 696 00:35:00,180 --> 00:35:02,240 >> Vì vậy, chúng ta sẽ bàn thêm một chút nữa 697 00:35:02,240 --> 00:35:05,480 một khi chúng tôi nhận được vào các chức năng. 698 00:35:05,480 --> 00:35:09,030 Đó là loại làm cho tinh thần? 699 00:35:09,030 --> 00:35:11,240 Okay. 700 00:35:11,240 --> 00:35:13,530 Chức năng này là loại kỳ lạ - 701 00:35:13,530 --> 00:35:17,270 Tôi nghĩ rằng đối với những người có nhiều của nền toán học, 702 00:35:17,270 --> 00:35:20,100 nói một chút dễ dàng hơn, 703 00:35:20,100 --> 00:35:22,540 đặc biệt là nếu bạn có nền toán học trừu tượng hơn một chút 704 00:35:22,540 --> 00:35:24,240 và bạn đang sử dụng để nói về chức năng 705 00:35:24,240 --> 00:35:27,370 và tất cả những loại công cụ. 706 00:35:28,590 --> 00:35:30,610 Nhưng chúng tôi sẽ cố gắng và bao gồm chúng 707 00:35:30,610 --> 00:35:33,280 và đi tốt đẹp và chậm chạp khi chúng xảy ra. 708 00:35:34,730 --> 00:35:37,870 Tương tự như vậy, điều này toàn bộ int argc, 709 00:35:37,870 --> 00:35:41,090 char * argv [], 710 00:35:41,090 --> 00:35:44,960 cho ngay bây giờ, bạn cũng có thể đi mà tấm nồi hơi như. 711 00:35:46,650 --> 00:35:49,050 Chúng tôi đã bắt đầu để trang trải những một chút trong bài giảng 712 00:35:49,050 --> 00:35:53,060 khi chúng ta nói về các đối số mà có được thông qua vào các chương trình trên dòng lệnh, 713 00:35:53,060 --> 00:35:55,700 nhưng trong bộ vấn đề của bạn và các chương trình, 714 00:35:55,700 --> 00:35:58,760 nó hoàn toàn tốt chỉ để viết vô hiệu và giữ cho nó đơn giản. 715 00:35:58,760 --> 00:36:01,490 Và những gì trống điều này có nghĩa là 716 00:36:01,490 --> 00:36:04,630 "Này, chính là sẽ không chấp nhận bất kỳ đầu vào; 717 00:36:04,630 --> 00:36:07,440 đây chỉ là một chương trình chúng tôi đang gonna chỉ cần chạy. 718 00:36:07,440 --> 00:36:09,320 Chúng tôi sẽ không cho nó bất kỳ thông tin bổ sung 719 00:36:09,320 --> 00:36:12,420 mỗi lần chúng tôi bắt đầu nó lên chạy. " 720 00:36:14,730 --> 00:36:16,600 Vì vậy, bây giờ, bạn có thể làm điều này; 721 00:36:16,600 --> 00:36:19,710 bạn thậm chí cũng có thể bỏ qua 0 trả 722 00:36:19,710 --> 00:36:22,650 vào cuối chương trình của bạn và họ sẽ chỉ chạy tốt, 723 00:36:22,650 --> 00:36:26,150 nhưng tôi khuyên bạn chỉ cần giữ. 724 00:36:26,150 --> 00:36:28,320 Trong một vài tuần, chúng tôi sẽ bắt đầu loại 725 00:36:28,320 --> 00:36:31,340 kéo trở lại nắp một chút và hiểu thêm về 726 00:36:31,340 --> 00:36:34,380 tất cả những người ít di chuyển các bộ phận khác nhau. 727 00:36:34,380 --> 00:36:38,160 >> Được rồi, bây giờ chúng ta hãy nói về câu hỏi thứ hai của chúng tôi ở đây. 728 00:36:38,160 --> 00:36:43,190 Vì vậy, "không khai báo định danh" thường chỉ ra những gì 729 00:36:43,190 --> 00:36:46,040 nếu kết quả bằng Clang? 730 00:36:46,040 --> 00:36:49,290 Tôi nghĩ rằng chúng ta có thể đã thấy điều đó ngày hôm nay. 731 00:36:51,170 --> 00:36:54,370 Ai đó có thể đưa ra một bản tóm tắt về điều đó có nghĩa là gì? 732 00:36:54,370 --> 00:36:57,680 Hãy xem, Kelly - một trong các Kellys. 733 00:37:02,580 --> 00:37:05,300 >> - 734 00:37:05,300 --> 00:37:07,080 Yeah, những gì hiện - 735 00:37:07,080 --> 00:37:10,140 >> Tôi nghĩ rằng khi bạn, như, không khai báo các biến và bạn cố gắng để sử dụng nó. 736 00:37:10,140 --> 00:37:13,310 Yeah, chính xác, chính xác. 737 00:37:13,310 --> 00:37:15,250 Vì vậy, nếu bạn đã bao giờ thấy điều này đầu ra 738 00:37:15,250 --> 00:37:17,690 khi bạn cố gắng và biên dịch chương trình của bạn, 739 00:37:17,690 --> 00:37:19,470 giống như Kelly cho biết, 740 00:37:19,470 --> 00:37:24,210 nó có nghĩa là bạn sử dụng một biến rằng bạn đã không tuyên bố, 741 00:37:24,210 --> 00:37:28,460 do đó, nếu tôi đi trở lại không gian của chúng tôi, 742 00:37:28,460 --> 00:37:31,150 và tôi làm một cái gì đó như 743 00:37:31,150 --> 00:37:34,800 printf ( 744 00:37:34,800 --> 00:37:38,260 "Hello% s") 745 00:37:40,070 --> 00:37:42,440 và cố gắng và điền vào% s 746 00:37:42,440 --> 00:37:45,640 với một biến mà tôi đã không tuyên bố bất cứ nơi nào 747 00:37:45,640 --> 00:37:48,330 và tôi cố gắng để chạy nó, 748 00:37:48,330 --> 00:37:51,330 bạn sẽ thấy những gì tôi nhận được ở phía dưới này ngay tại đây: 749 00:37:51,330 --> 00:37:54,010 "Sử dụng không khai báo định danh 's'"; 750 00:37:54,010 --> 00:37:57,710 mà chỉ có nghĩa là bạn không khai báo biến của bạn. 751 00:37:57,710 --> 00:38:00,750 Điều tương tự cũng sẽ xảy ra nếu 752 00:38:00,750 --> 00:38:05,240 bạn có x và bạn cố gắng và lưu trữ 7 trong đó 753 00:38:05,240 --> 00:38:08,720 và tôi đã không tuyên bố X. 754 00:38:08,720 --> 00:38:10,200 Tôi nhận được rằng lỗi tương tự: 755 00:38:10,200 --> 00:38:13,480 "Sử dụng không khai báo định danh 'x'". 756 00:38:16,390 --> 00:38:18,250 >> Được rồi, 757 00:38:18,250 --> 00:38:21,720 để Ban Cơ yếu Caesar, không phải là rất an toàn, 758 00:38:21,720 --> 00:38:24,590 Tôi sẽ để cho các bạn xem loại này, ngắn hiểu tại sao, 759 00:38:24,590 --> 00:38:27,590 và hy vọng sau khi thực hiện vấn đề này trong tuần thiết lập 760 00:38:27,590 --> 00:38:29,270 mà bạn thực sự viết Cipher Caesar, bạn sẽ hiểu hơn một chút 761 00:38:29,270 --> 00:38:32,600 về những gì nó có nghĩa là để được an toàn và không an toàn 762 00:38:36,180 --> 00:38:38,960 hoặc không an toàn, tôi đoán - không an toàn là hơi khác nhau. 763 00:38:40,560 --> 00:38:43,140 Điều khác là chúng tôi có những câu hỏi khác ở đây 764 00:38:43,140 --> 00:38:45,470 về chức năng 765 00:38:45,470 --> 00:38:47,330 và những gì một chức năng, 766 00:38:47,330 --> 00:38:52,820 và chúng tôi loại nói vắn tắt rằng khi chúng tôi nói chuyện về các giá trị trả lại; 767 00:38:52,820 --> 00:38:54,560 cho ai đó được giảng dạy, 768 00:38:54,560 --> 00:38:57,790 bạn có thể tóm tắt lại những người đang được giảng dạy ngày hôm nay? 769 00:38:57,790 --> 00:38:59,670 Được rồi. 770 00:39:01,210 --> 00:39:04,320 Hãy xem, chúng ta hãy có ai đó có thể cho chúng tôi biết những gì một chức năng là? 771 00:39:04,320 --> 00:39:06,060 Kelly? 772 00:39:07,800 --> 00:39:11,260 >> >> Về cơ bản một cái gì đó bạn rút ra sau khi một cái gì đó là được viết trong các thư viện đó là 773 00:39:11,260 --> 00:39:14,460 phức tạp hơn ở đó, và sau đó bạn chỉ cần viết một hình thức ngắn của nó, 774 00:39:14,460 --> 00:39:17,360 như vậy giống như bạn đang đề cập trở lại thư viện đó, bằng cách sử dụng 775 00:39:17,360 --> 00:39:19,650 tất cả những mã dài và không nghe được. 776 00:39:19,650 --> 00:39:22,680 Yeah, chính xác, và sau đó bạn muốn thêm một cái gì đó với điều đó? 777 00:39:22,680 --> 00:39:27,050 >> Yeah, tôi nghĩ về nó như là tương tự như khái niệm của một công thức trong toán học 778 00:39:27,050 --> 00:39:30,130 mà bạn chỉ cần viết một công thức và sau đó bạn có thể cắm các biến trong 779 00:39:30,130 --> 00:39:32,660 và đó là những gì một chức năng là không nghe được. 780 00:39:32,660 --> 00:39:35,390 >> Yeah, vì vậy chúng tôi đã có một vài câu trả lời ở đây 781 00:39:35,390 --> 00:39:38,080 mà là cả hai thực sự tốt và phải trên. 782 00:39:38,080 --> 00:39:43,040 Có đề cập đến mã đó là được viết trong thư viện một nơi nào đó 783 00:39:43,040 --> 00:39:45,390 đó là phức tạp hơn 784 00:39:45,390 --> 00:39:47,130 và sau đó bạn có thể rút ra sau khi mã đó 785 00:39:47,130 --> 00:39:50,480 và thực sự sử dụng nó bằng cách chỉ cần viết dưới hình thức ngắn của nó - 786 00:39:50,480 --> 00:39:54,060 hoặc, đúng hơn, tên của nó - 787 00:39:54,060 --> 00:39:57,590 và sau đó có so sánh này một công thức trong toán học 788 00:39:57,590 --> 00:40:00,400 hoặc vật lý, tất cả những loại công cụ 789 00:40:00,400 --> 00:40:02,980 nơi bạn có một công thức 790 00:40:02,980 --> 00:40:05,690 và sau đó bạn có thể cắm vào 791 00:40:05,690 --> 00:40:08,100 các biến để công thức 792 00:40:08,100 --> 00:40:11,130 sau đó nhận được kết quả của công thức, 793 00:40:11,130 --> 00:40:14,580 vì vậy bạn nghĩ về nó như là giống như phương trình bậc hai. 794 00:40:14,580 --> 00:40:17,690 Hãy tưởng tượng nếu thay vì phải để tìm hiểu về 795 00:40:17,690 --> 00:40:21,310 công thức bậc hai là trong lớp học toán, 796 00:40:21,310 --> 00:40:24,610 bạn chỉ cần có một chương trình máy tính nhỏ mà đã làm điều đó cho bạn. 797 00:40:24,610 --> 00:40:28,930 Có ai sử dụng các chương trình máy tính trong lớp học toán học ở trường trung học? 798 00:40:28,930 --> 00:40:31,020 Yeah, vật lý lớp học? 799 00:40:31,020 --> 00:40:34,670 Nơi mà bạn chỉ có thể nói, "Này, công thức bậc hai. 800 00:40:34,670 --> 00:40:37,740 Đây là những biến số mà tôi muốn đầu vào. 801 00:40:37,740 --> 00:40:40,250 Bây giờ cho tôi câu trả lời. " 802 00:40:40,250 --> 00:40:42,170 Đó là một chức năng là những gì. 803 00:40:42,170 --> 00:40:44,850 Đó là một cách để chúng tôi 804 00:40:44,850 --> 00:40:47,720 loại viết giống như một chương trình nhỏ tiểu ít 805 00:40:47,720 --> 00:40:51,700 trong chương trình lớn hơn của chúng tôi 806 00:40:51,700 --> 00:40:55,090 và sử dụng nó hơn và hơn nữa 807 00:40:55,090 --> 00:40:58,380 do đó chúng tôi cần phải sao chép và dán mã, 808 00:40:58,380 --> 00:41:04,220 chúng tôi có thể cung cấp cho nó đầu vào khác nhau và nhận được kết quả đầu ra khác nhau, 809 00:41:04,220 --> 00:41:07,090 siêu tiện dụng 810 00:41:07,090 --> 00:41:11,420 khi bạn đang cố gắng để viết các chương trình khác nhau tại các thời điểm khác nhau. 811 00:41:11,420 --> 00:41:14,580 >> Vì vậy, ví dụ, một chức năng mà chúng tôi đã sử dụng hơn và hơn và hơn nữa 812 00:41:14,580 --> 00:41:17,310 trong suốt khóa học là printf. 813 00:41:17,310 --> 00:41:19,680 Printf bản thân nó là một chức năng 814 00:41:19,680 --> 00:41:23,360 và nó quay ra rằng nó thực sự khá dài và phức tạp, 815 00:41:23,360 --> 00:41:26,420 khó chịu tìm kiếm, chức năng viết. 816 00:41:26,420 --> 00:41:29,590 Vì vậy, đơn giản như nó có vẻ cho chúng tôi 817 00:41:29,590 --> 00:41:31,810 in công cụ ra ngoài màn hình, 818 00:41:31,810 --> 00:41:34,820 bởi vì tất cả chúng ta đã làm điều đó vào lúc bắt đầu của ngày hôm nay phần, 819 00:41:34,820 --> 00:41:36,870 nó quay ra rằng nó thực sự, bạn biết, 820 00:41:36,870 --> 00:41:39,900 một vài trăm dòng mã. 821 00:41:42,030 --> 00:41:45,620 Đó không phải là một cái gì đó mà tôi sẽ bao giờ muốn viết, chắc chắn, 822 00:41:45,620 --> 00:41:47,480 nhưng chúng tôi có thể sử dụng nó mỗi ngày, đó là loại mát, 823 00:41:47,480 --> 00:41:49,020 vì vậy chúng tôi có được để chia sẻ nó với nhau, 824 00:41:49,020 --> 00:41:51,790 với các chương trình khác nhau, 825 00:41:51,790 --> 00:41:54,520 vì vậy chúng tôi sẽ lặn vào các chức năng; 826 00:41:54,520 --> 00:41:56,090 cho thời gian được, chúng tôi không 827 00:41:56,090 --> 00:41:59,150 chức năng duy nhất chúng ta sẽ được viết là chính. 828 00:41:59,150 --> 00:42:01,570 Chính bản thân cũng là một chức năng, 829 00:42:01,570 --> 00:42:04,270 và bạn có thể thấy nó có đầu ra của nó, 830 00:42:04,270 --> 00:42:06,610 đầu vào của nó giống như chúng tôi đã nói, 831 00:42:06,610 --> 00:42:08,930 và sau đó tên của nó, đó là chính. 832 00:42:08,930 --> 00:42:11,800 Chính là loại một - là một chức năng đặc biệt đó. 833 00:42:11,800 --> 00:42:14,800 Trong chương trình C của bạn, đó có phải là một chức năng chính, 834 00:42:14,800 --> 00:42:17,900 và bây giờ, chúng tôi đã loại bỏ qua bằng văn bản 835 00:42:17,900 --> 00:42:21,400 các mẫu thử nghiệm, hoặc tuyên bố, chính. 836 00:42:21,400 --> 00:42:23,050 Chúng tôi đã cho rằng đối với bạn, 837 00:42:23,050 --> 00:42:25,650 và chúng tôi đã có bạn điền vào loại những khoảng trống. 838 00:42:25,650 --> 00:42:29,120 >> >> Vì vậy, đối với các thiết lập vấn đề thứ hai, chúng tôi không cần phải 839 00:42:29,120 --> 00:42:31,350 viết nó trong chức năng thứ hai? 840 00:42:31,350 --> 00:42:34,200 Tôi không tin như vậy. 841 00:42:34,200 --> 00:42:37,600 Tôi tin rằng đó là tất cả ở đây. 842 00:42:37,600 --> 00:42:41,710 Yeah, vì vậy Caesar Cipher, 843 00:42:41,710 --> 00:42:45,000 bạn không có, nó không giống như thế, 844 00:42:48,740 --> 00:42:53,150 và Vigenere, bạn không hoặc, 845 00:42:53,150 --> 00:42:56,400 như vậy - và nó quay ra bạn không bao giờ thực sự phải viết 846 00:42:56,400 --> 00:42:58,250 một chức năng, phải không? 847 00:42:58,250 --> 00:43:01,950 Bạn gọi luôn đặt tất cả các mã của bạn trong vòng chính, 848 00:43:01,950 --> 00:43:04,500 và nhiều người lập trình làm điều đó. 849 00:43:04,500 --> 00:43:07,130 Như chúng ta di chuyển trên, 850 00:43:07,130 --> 00:43:09,480 chúng tôi bắt đầu giới thiệu chức năng như là một cách 851 00:43:09,480 --> 00:43:11,530 để làm sạch mã của bạn, 852 00:43:11,530 --> 00:43:13,380 để làm cho nó thêm thanh lịch, 853 00:43:13,380 --> 00:43:16,890 trong trường hợp bạn có nhiệm vụ giống như khi chúng ta nói về các vòng, 854 00:43:16,890 --> 00:43:20,400 đôi khi có những điều mà bạn muốn làm một lần nữa và một lần nữa và một lần nữa, 855 00:43:20,400 --> 00:43:23,510 và bạn có loại cách ngây thơ - 856 00:43:23,510 --> 00:43:26,360 hoặc những gì chúng ta thường gọi là "người rơm", giải pháp, 857 00:43:26,360 --> 00:43:29,390 là chỉ cần sao chép và dán hơn và hơn nữa - 858 00:43:29,390 --> 00:43:31,000 bạn có thể làm điều tương tự với các chức năng mà bạn chỉ cần sao chép và dán 859 00:43:31,000 --> 00:43:33,360 cùng mã hơn và hơn nữa, 860 00:43:33,360 --> 00:43:35,750 nhưng đó bloats mã của bạn - 861 00:43:35,750 --> 00:43:38,550 nó kết thúc lên làm cho mã của bạn thực sự lâu dài - 862 00:43:38,550 --> 00:43:41,550 và nó cũng được một chút bối rối, 863 00:43:41,550 --> 00:43:43,470 và sau đó nó có nghĩa là bạn không thể thích - 864 00:43:43,470 --> 00:43:45,250 nếu bạn muốn sử dụng mã một lần nữa trong một chương trình khác, 865 00:43:45,250 --> 00:43:48,610 bạn cũng bị mắc kẹt sao chép và dán nó một lần nữa, 866 00:43:48,610 --> 00:43:51,170 do đó, một trong những điều chúng ta sẽ nói về 867 00:43:51,170 --> 00:43:54,960 loại thiết kế và phong cách của chương trình của bạn, 868 00:43:54,960 --> 00:43:57,010 và do đó, khi nó làm cho tinh thần để loại 869 00:43:57,010 --> 00:43:59,800 gói một cái gì đó lên và đặt nó như là một chức năng riêng biệt, 870 00:43:59,800 --> 00:44:02,080 chúng tôi khuyến khích bạn làm điều đó, 871 00:44:02,080 --> 00:44:04,700 và đó là một cái gì đó, một lần nữa, 872 00:44:04,700 --> 00:44:07,790 không có quy tắc cứng và nhanh chóng. 873 00:44:07,790 --> 00:44:11,540 Chúng tôi hiếm khi nói rằng bạn phải viết một chức năng gọi này, 874 00:44:12,870 --> 00:44:16,320 nhưng đó là một trong những điều bạn chỉ cần phát triển theo thời gian 875 00:44:16,320 --> 00:44:19,470 như bạn viết chương trình nhiều hơn và nhiều hơn nữa. 876 00:44:21,940 --> 00:44:24,790 >> Bất kỳ câu hỏi? 877 00:44:26,340 --> 00:44:30,610 Được rồi, do đó, Bây giờ chúng ta hãy 878 00:44:30,610 --> 00:44:34,750 sao lưu với anh chàng này ngay tại đây, 879 00:44:34,750 --> 00:44:37,800 vì vậy tôi vẫn còn trong phần này của câu hỏi. 880 00:44:37,800 --> 00:44:39,900 Chúng tôi đã nói chuyện về tất cả những cái khác nhau, 881 00:44:39,900 --> 00:44:42,050 một chức năng là gì, tại sao phải viết các chức năng, 882 00:44:42,050 --> 00:44:44,700 khi bạn chỉ có thể sao chép và dán? 883 00:44:44,700 --> 00:44:47,700 Hy vọng rằng chúng tôi đã bị thuyết phục bạn rằng viết chức năng là một điều tốt. 884 00:44:47,700 --> 00:44:50,870 Vì vậy, bây giờ chúng ta hãy chuyển sang chương trình này MySpace, 885 00:44:50,870 --> 00:44:53,080 và chúng tôi sẽ dành một chút thời gian để làm điều này. 886 00:44:54,600 --> 00:44:56,480 >> Vì vậy, chúng ta hãy xem, 887 00:44:56,480 --> 00:45:00,230 tôi có thể có ai đó đọc này cho tôi? 888 00:45:02,640 --> 00:45:04,660 Hãy có Mikhaila - bạn sẽ đọc cho chúng tôi? 889 00:45:07,660 --> 00:45:08,890 >> Bạn có nghĩa là trở lại khi MySpace - 890 00:45:08,890 --> 00:45:10,920 Sao khi MySpace đã được mát mẻ. 891 00:45:10,920 --> 00:45:12,070 >> "Quay lại khi MySpace đã được mát mẻ, 892 00:45:12,070 --> 00:45:14,900 đó là tất cả các cơn giận dữ gõ như thế này. 893 00:45:14,900 --> 00:45:17,320 Có lẽ nó vẫn còn? Tôi không thực sự chắc chắn. 894 00:45:17,320 --> 00:45:19,990 Trong bất kỳ trường hợp nào, bằng cách sử dụng cụ CS50, 895 00:45:19,990 --> 00:45:22,600 CS50 Run, hoặc CS50 Spaces, 896 00:45:22,600 --> 00:45:25,370 viết một chương trình nhắc nhở người sử dụng cho một tin nhắn 897 00:45:25,370 --> 00:45:29,350 và sau đó kết quả đầu ra thông điệp với chữ cái đầu tiên của nó vốn, 898 00:45:29,350 --> 00:45:31,800 với tất cả các chữ cái khác trong trường hợp xen kẽ, 899 00:45:31,800 --> 00:45:34,010 theo lượng mẫu dưới đây, 900 00:45:34,010 --> 00:45:37,060 trong đó in đậm văn bản đại diện cho đầu vào của một số người sử dụng. 901 00:45:37,060 --> 00:45:39,800 Để đơn giản, bạn có thể giả định rằng người sử dụng 902 00:45:39,800 --> 00:45:42,810 sẽ chỉ thư đầu vào chữ thường và không gian. 903 00:45:42,810 --> 00:45:45,900 Hãy xem xét vấn đề này một cơ hội để thực hành; 904 00:45:45,900 --> 00:45:48,640 bạn sẽ không được yêu cầu nộp chương trình này. " 905 00:45:48,640 --> 00:45:51,640 >> Tuyệt vời, cảm ơn bạn. 906 00:45:51,640 --> 00:45:54,750 Vì vậy, như Mikhaila nói, 907 00:45:54,750 --> 00:45:58,850 chúng ta sẽ viết một chương trình mà myspaces mã của bạn. 908 00:45:58,850 --> 00:46:02,230 Vì vậy, đã có của bạn guys sử dụng MySpace? 909 00:46:02,230 --> 00:46:04,100 Bất kỳ của bạn có tài khoản MySpace? 910 00:46:04,100 --> 00:46:05,920 Oh, yeah, yeah! 911 00:46:05,920 --> 00:46:08,300 Đó là khá mát mẻ. 912 00:46:08,300 --> 00:46:09,950 [Cười] 913 00:46:09,950 --> 00:46:12,060 Tôi biết. 914 00:46:12,060 --> 00:46:14,500 Hẹn hò với bản thân mình. 915 00:46:15,490 --> 00:46:18,300 Vì vậy, những gì chúng tôi đang cố gắng làm là viết một chương trình 916 00:46:18,300 --> 00:46:21,110 mà đi qua 917 00:46:21,110 --> 00:46:24,490 và tận dụng chữ cái đầu tiên 918 00:46:24,490 --> 00:46:27,140 và sau đó mỗi chữ sau đó - 919 00:46:27,140 --> 00:46:29,350 hoặc mỗi lá thư khác sau đó, tôi xin lỗi. 920 00:46:29,350 --> 00:46:32,910 >> Vì vậy, - và bạn có thể thấy trong ví dụ này, 921 00:46:32,910 --> 00:46:35,260 đây là làm thế nào chúng ta chạy chương trình, 922 00:46:35,260 --> 00:46:38,780 và do đó, điều này chỉ là nói rằng, "Chúng tôi đang chạy một chương trình được gọi là a.out. 923 00:46:41,490 --> 00:46:44,630 Đầu vào mà chúng tôi sẽ mang lại cho nó 924 00:46:44,630 --> 00:46:47,090 sẽ được nhắc nhở. 925 00:46:47,090 --> 00:46:51,150 Chúng ta sẽ không cung cấp các đầu vào trên dòng lệnh. " 926 00:46:51,150 --> 00:46:54,100 Nếu bạn đã làm theo tất cả các bài giảng 927 00:46:54,100 --> 00:46:56,710 và nghe về các đối số dòng lệnh, 928 00:46:57,810 --> 00:47:00,080 đó là loại mà những người - rằng cú pháp sôi nổi 929 00:47:00,080 --> 00:47:04,530 tại chính đi kèm với int argc, tất cả những thứ, 930 00:47:04,530 --> 00:47:07,630 vì vậy ở đây chúng tôi không sử dụng đó, chúng ta không phải đối phó với bất kỳ đó. 931 00:47:09,400 --> 00:47:12,650 Chúng tôi chỉ gonna nhận được này gõ vào bởi người sử dụng, 932 00:47:12,650 --> 00:47:15,700 và sau đó dòng lệnh thứ hai có giá trị vốn sôi nổi 933 00:47:15,700 --> 00:47:18,550 là những gì chúng tôi muốn chương trình của chúng tôi đến đầu ra. 934 00:47:19,790 --> 00:47:22,860 >> Vì vậy, thay vì sử dụng Công cụ hoặc Run, chúng tôi sẽ sử dụng không gian, 935 00:47:22,860 --> 00:47:25,360 bởi vì chúng tôi đã có Spaces, 936 00:47:25,360 --> 00:47:28,640 và do đó, nếu bạn 937 00:47:28,640 --> 00:47:32,380 bạn của bạn để tìm một cái gì đó như thế này, 938 00:47:32,380 --> 00:47:35,930 vì vậy tôi sẽ tiết kiệm này sửa đổi 939 00:47:35,930 --> 00:47:38,390 chỉ cần như vậy bạn đã có tấm lò hơi ngay tại đây 940 00:47:38,390 --> 00:47:42,840 trông như thế này, int main (void), không có gì trong đó. 941 00:47:44,480 --> 00:47:48,460 Trên thực tế, những gì chúng tôi sẽ làm là chúng ta sẽ chỉ cần xóa tất cả mọi thứ với nhau. 942 00:47:48,460 --> 00:47:50,330 Chúng tôi muốn có một phiến đá trắng, 943 00:47:50,330 --> 00:47:52,470 bởi vì chúng ta sẽ không bắt đầu viết mã; 944 00:47:52,470 --> 00:47:55,380 đúng hơn, chúng ta sẽ thử viết một số giả 945 00:47:55,380 --> 00:47:58,580 mà thực sự chỉ có nghĩa là chúng ta sẽ viết một cái gì đó không phải là mã 946 00:47:58,580 --> 00:48:01,010 là loại mô tả những gì chúng ta muốn làm, 947 00:48:01,010 --> 00:48:05,180 kinda như David đã làm vào ngày đầu tiên của bài giảng, 948 00:48:05,180 --> 00:48:08,310 Tôi đoán đó là ngày của bài giảng thứ hai khi ông đã làm tất cả các bản demo. 949 00:48:08,310 --> 00:48:10,990 Các bạn hãy nhớ rằng nhìn thấy những đôi tất? 950 00:48:10,990 --> 00:48:13,300 Giuse là có loại gõ bằng tiếng Anh? 951 00:48:13,300 --> 00:48:16,300 Vì vậy, chúng ta sẽ làm điều tương tự. 952 00:48:16,300 --> 00:48:18,380 >> Vì vậy, khi tôi bắt đầu viết mã giả, 953 00:48:18,380 --> 00:48:22,640 Tôi muốn bắt đầu bằng cách nhìn vào những gì các đầu vào là có được 954 00:48:22,640 --> 00:48:24,950 Và tôi cung cấp cho bản thân mình một trường hợp mẫu, 955 00:48:24,950 --> 00:48:28,780 do đó, như "cảm ơn cho tiện!" 956 00:48:35,030 --> 00:48:38,010 Và sau đó tôi cũng viết những gì tôi muốn đầu ra được, 957 00:48:38,010 --> 00:48:42,210 trong trường hợp này là một cái gì đó như thế này. 958 00:48:53,790 --> 00:48:56,050 Và đó là loại cung cấp cho tôi một điểm khởi đầu tốt, như thế, để suy nghĩ về, 959 00:48:56,050 --> 00:48:59,730 "Được rồi, tôi muốn lấy dòng 1 960 00:48:59,730 --> 00:49:03,560 và tôi muốn biến nó thành dòng 2, " 961 00:49:03,560 --> 00:49:06,570 và là loại giúp hướng dẫn suy nghĩ của tôi. 962 00:49:06,570 --> 00:49:09,990 Đây là một nơi tốt để bắt đầu. 963 00:49:09,990 --> 00:49:12,190 Một cách khác để suy nghĩ về nó, cũng như chúng tôi kinda di chuyển trên 964 00:49:12,190 --> 00:49:15,020 và khi bạn làm điều này trong các chương trình của riêng bạn, là để 965 00:49:15,020 --> 00:49:18,530 suy nghĩ về loại giống như các trường hợp cạnh này là gì? 966 00:49:18,530 --> 00:49:20,740 Loại của các kịch bản lạ là gì? 967 00:49:20,740 --> 00:49:23,660 Các yếu tố đầu vào kỳ lạ mà chúng tôi có thể nhận được là gì? 968 00:49:23,660 --> 00:49:26,550 Và những kết quả đầu ra nên trông như thế nào? 969 00:49:26,550 --> 00:49:29,670 Ví dụ, một lạ đầu vào 970 00:49:29,670 --> 00:49:33,200 sẽ là một trong những điều này, 971 00:49:33,200 --> 00:49:35,630 tạo ra hoàn toàn không có gì, 972 00:49:35,630 --> 00:49:37,840 giống như những gì chúng ta nên đầu ra trong trường hợp đó? 973 00:49:37,840 --> 00:49:40,530 Một cái gì đó chúng tôi muốn suy nghĩ về, quá. 974 00:49:40,530 --> 00:49:44,450 >> Vì vậy, chỉ cần một câu hỏi, 975 00:49:44,450 --> 00:49:46,870 những gì chúng ta có thể muốn đầu ra? 976 00:49:46,870 --> 00:49:50,740 Nếu chúng ta không nhận được bất kỳ đầu vào ở tất cả, những gì chương trình của chúng tôi được xuất ra? 977 00:49:53,740 --> 00:49:54,860 >> Không có gì. 978 00:49:54,860 --> 00:49:57,340 Không có gì? Âm thanh tuyệt vời. 979 00:49:57,340 --> 00:49:59,280 Vì vậy, chúng tôi muốn đảm bảo rằng chúng tôi không viết bất cứ điều gì ra 980 00:49:59,280 --> 00:50:01,500 nếu chúng ta không nhận được bất cứ điều gì. 981 00:50:01,500 --> 00:50:04,320 Cool. Okay. 982 00:50:04,320 --> 00:50:07,370 Vì vậy, 983 00:50:07,370 --> 00:50:09,380 Tôi sẽ gọi một vài người như chúng tôi đi qua 984 00:50:09,380 --> 00:50:12,790 và chỉ cần tìm ra loại giống như các thuật toán nói chung là 985 00:50:12,790 --> 00:50:15,250 và chúng tôi loại sẽ bắt đầu làm việc thông qua này lại với nhau. 986 00:50:16,240 --> 00:50:19,710 >> Vì vậy, chúng ta hãy xem. Missy. 987 00:50:19,710 --> 00:50:21,220 Làm thế nào để bạn nghĩ rằng chúng tôi muốn bắt đầu? 988 00:50:21,220 --> 00:50:24,830 Điều gì sẽ là một nơi tốt để bắt đầu ở đây 989 00:50:24,830 --> 00:50:27,900 nếu chúng ta muốn để biến đổi, nói, dòng 1 990 00:50:27,900 --> 00:50:29,440 vào dòng 2? 991 00:50:29,440 --> 00:50:32,650 Bạn có thể loại chỉ cần giải thích cho tôi, bằng tiếng Anh, những gì bạn đang suy nghĩ? 992 00:50:32,650 --> 00:50:34,770 Thậm chí không lo lắng về mã. 993 00:50:34,770 --> 00:50:38,250 >> Điều đầu tiên tôi sẽ làm được 994 00:50:38,250 --> 00:50:41,170 loại của người sử dụng trực tiếp để nói với họ những gì bạn muốn. 995 00:50:41,170 --> 00:50:44,730 Được rồi, vì vậy, nói, 996 00:50:44,730 --> 00:50:47,450 "Này, người sử dụng. 997 00:50:47,450 --> 00:50:50,560 một chuỗi "awesome. 998 00:50:50,560 --> 00:50:52,990 Vì vậy, chúng ta hãy viết này xuống. 999 00:50:52,990 --> 00:50:56,140 Nhắc nhở người dùng cho một chuỗi. 1000 00:50:56,140 --> 00:50:59,270 Mà âm thanh như một khởi đầu tốt. 1001 00:51:03,920 --> 00:51:06,460 Được rồi. 1002 00:51:06,460 --> 00:51:09,750 Hãy hỏi Kelly Ren thời gian này. 1003 00:51:09,750 --> 00:51:11,580 Chúng tôi sẽ làm gì sau đó muốn làm gì tiếp theo? 1004 00:51:11,580 --> 00:51:14,220 Loại tiếp theo của chúng là gì? 1005 00:51:14,220 --> 00:51:18,080 >> Thu thập ý kiến ​​của họ và lưu nó như là một biến. 1006 00:51:18,080 --> 00:51:20,470 Lớn. 1007 00:51:20,470 --> 00:51:24,280 Vì vậy, thu thập các chuỗi, 1008 00:51:25,450 --> 00:51:27,880 lưu trữ nó trong một biến. 1009 00:51:34,840 --> 00:51:36,460 Vì vậy, có bất cứ điều gì đặc biệt, chúng tôi muốn làm ở đây? 1010 00:51:36,460 --> 00:51:39,700 Chúng ta có muốn kiểm tra đầu vào của họ 1011 00:51:39,700 --> 00:51:42,260 trước đây -? 1012 00:51:42,260 --> 00:51:43,790 >> Yeah. 1013 00:51:43,790 --> 00:51:46,330 Những gì chúng ta có thể muốn kiểm tra? 1014 00:51:46,330 --> 00:51:48,980 >> Vâng, bạn nói rằng chúng ta không cần phải kiểm tra xem nó là một con số, phải không? 1015 00:51:48,980 --> 00:51:52,400 Bởi vì nó sẽ giả sử rằng đó là chữ thường? 1016 00:51:52,400 --> 00:51:55,650 Yeah. 1017 00:51:56,380 --> 00:51:58,920 >> Vì vậy, nó quay ra rằng - yeah. 1018 00:51:58,920 --> 00:52:01,850 Vì vậy, getString được đảm bảo trả lại cho chúng tôi một chuỗi. 1019 00:52:01,850 --> 00:52:05,050 Nó sẽ không trở lại một số cho chúng tôi hay bất cứ điều gì như thế. 1020 00:52:05,050 --> 00:52:09,140 Có thể có các ký tự chữ số trong chuỗi đó, mặc dù. 1021 00:52:09,140 --> 00:52:13,460 Và những người, chúng ta có thể bỏ qua khi chúng tôi đã làm vốn. 1022 00:52:13,460 --> 00:52:16,620 Nhưng một chuỗi rỗng là hoàn toàn tốt, 1023 00:52:16,620 --> 00:52:19,900 do đó, trường hợp ở ngay trên dòng 4 và 5, 1024 00:52:19,900 --> 00:52:22,020 bên phải, nơi có đầu vào không có, 1025 00:52:22,020 --> 00:52:25,190 và chúng tôi đã không có gì là sản lượng của chúng tôi. 1026 00:52:25,190 --> 00:52:28,730 Chúng tôi không phải lo lắng về việc bảo đảm rằng có một cái gì đó trong chuỗi 1027 00:52:28,730 --> 00:52:31,840 hoặc rằng chuỗi là ít nhất 4 ký tự; 1028 00:52:31,840 --> 00:52:34,190 bất cứ điều gì là tốt. 1029 00:52:34,190 --> 00:52:38,270 Vì vậy, điều này là tương phản, ví dụ, như các chương trình đồng xu mà bạn đã viết 1030 00:52:38,270 --> 00:52:42,340 bạn phải chắc chắn rằng bạn đã nhận được số không âm; 1031 00:52:42,340 --> 00:52:46,430 bạn đã có để đảm bảo rằng bạn đã nhận được số lượng chính xác ngày trong một tháng. 1032 00:52:46,430 --> 00:52:49,630 Và làm thế nào bạn làm điều đó? 1033 00:52:49,630 --> 00:52:51,470 Làm thế nào bạn sẽ làm điều đó kiểm tra? 1034 00:52:51,470 --> 00:52:54,090 Điều đó đã yêu cầu bạn sử dụng? 1035 00:52:54,090 --> 00:52:55,650 >> Do-trong khi các vòng. 1036 00:52:55,650 --> 00:53:00,840 Do-trong khi các vòng, các loại của các vòng, quá, yeah. 1037 00:53:02,190 --> 00:53:04,520 Vì vậy, hóa ra chúng ta không cần phải sử dụng một vòng lặp trong trường hợp này, 1038 00:53:04,520 --> 00:53:07,360 khi chúng ta đang khiến cho một chuỗi, đó là loại tốt đẹp. 1039 00:53:08,280 --> 00:53:10,620 >> Được rồi, di chuyển vào. 1040 00:53:12,410 --> 00:53:14,270 Vì vậy, Stella. 1041 00:53:14,270 --> 00:53:17,530 Bạn có thể cho chúng tôi biết một chút về những gì chúng ta nên làm gì tiếp theo? 1042 00:53:17,530 --> 00:53:20,270 Vì vậy, bây giờ chúng tôi đã có các chuỗi, chúng tôi đã có nó được lưu trữ trong một biến; 1043 00:53:20,270 --> 00:53:23,360 chúng ta cần gì để làm với chuỗi? 1044 00:53:26,790 --> 00:53:33,530 >> Chúng ta cần - 1045 00:53:33,530 --> 00:53:36,550 xác định 2 - 1046 00:53:36,550 --> 00:53:39,290 Yeah, chỉ cần nói bằng tiếng Anh, đó là awesome. 1047 00:53:39,290 --> 00:53:42,670 >> Xác định không nghe được] thủ đô - hoặc, chữ hoa. 1048 00:53:44,420 --> 00:53:48,130 Yeah, vì vậy bạn xác định mà những người có chữ hoa và chữ thường. 1049 00:53:50,020 --> 00:53:54,180 Chúng ta không thể thành chữ hoa thành chữ thường cho đến khi chúng ta đã xác định được những người thân mà. 1050 00:54:03,790 --> 00:54:06,350 Vì vậy, chúng tôi sẽ đặt ở đây. 1051 00:54:06,350 --> 00:54:10,210 >> Vì vậy, chỉ cần suy nghĩ về quá trình này, 1052 00:54:10,210 --> 00:54:13,200 làm thế nào để chúng ta làm điều này xác định? 1053 00:54:13,200 --> 00:54:15,050 Bạn có biết, Dan? 1054 00:54:15,050 --> 00:54:18,120 Loại những gì chúng tôi - chúng tôi muốn có những công cụ để sử dụng trong các hộp công cụ của chúng ta? 1055 00:54:18,120 --> 00:54:22,500 >> Tôi muốn đặt nó trong bằng cách nào đó trong giống như một mảng hoặc từng 1056 00:54:22,500 --> 00:54:24,240 là hộp nhỏ riêng của nó, 1057 00:54:24,240 --> 00:54:27,240 và sau đó chữ hoa từ đó hay không. 1058 00:54:27,240 --> 00:54:30,440 Được rồi, do đó, một trong những công cụ chúng ta có thể sử dụng là một mảng. 1059 00:54:30,440 --> 00:54:33,760 Chúng ta có gì để nhìn vào trong chuỗi, 1060 00:54:33,760 --> 00:54:36,680 tuy nhiên, để tìm ra chúng tôi đã nhìn vào các nhân vật. 1061 00:54:36,680 --> 00:54:40,890 >> Vì vậy, bạn đã có để nhìn vào chiều dài của chuỗi? 1062 00:54:40,890 --> 00:54:43,880 Yeah, vì vậy một phần là nhận được độ dài của chuỗi. 1063 00:54:50,450 --> 00:54:54,150 Chỉ cần ra khỏi tò mò, chúng tôi những gì sử dụng để có được chiều dài của một chuỗi? 1064 00:54:54,150 --> 00:54:58,080 >> Strlen? 1065 00:54:58,080 --> 00:55:02,870 Yeah, strlen, chúng tôi gọi đây là "strlen" 1066 00:55:04,180 --> 00:55:08,620 Tất cả các chuỗi các chức năng này, do đó, strlen là một chức năng, 1067 00:55:08,620 --> 00:55:10,670 và đó là siêu tiện dụng, bởi vì chúng ta có thể sử dụng nó để chỉ nói, 1068 00:55:10,670 --> 00:55:13,430 Hey, strlen: Đây là một chuỗi, cho tôi biết độ dài của nó. 1069 00:55:13,430 --> 00:55:17,350 Trong bài giảng hôm nay, David đã nói rất nhiều về việc làm thế nào strlen được thực hiện, 1070 00:55:17,350 --> 00:55:20,370 những gì thực sự xảy ra đằng sau hậu trường. 1071 00:55:20,370 --> 00:55:25,450 Nhưng điều này là một trong những tiện dụng rất siêu. 1072 00:55:25,450 --> 00:55:29,170 Có những người khác cũng trong thư viện string, 1073 00:55:29,170 --> 00:55:34,690 chẳng hạn như strcmp, được viết là "strcmp", 1074 00:55:34,690 --> 00:55:38,010 được sử dụng để so sánh chuỗi với nhau. 1075 00:55:41,220 --> 00:55:45,020 Những người khác, bạn sẽ sử dụng như strstr, 1076 00:55:45,020 --> 00:55:48,770 đó là tốt cho việc tìm kiếm các chuỗi tiểu và do đó trên. 1077 00:55:48,770 --> 00:55:53,380 Đối với hầu hết các phần, tất cả họ đều bắt đầu với str và sau đó là một cái gì đó khác. 1078 00:55:53,380 --> 00:55:57,080 Lý do họ không thực sự chính tả chúng giống như một chuỗi và vv 1079 00:55:57,080 --> 00:56:00,260 là bởi vì trở lại như những ngày đầu của C, 1080 00:56:00,260 --> 00:56:04,100 khi mọi người lần đầu tiên được văn bản và tất cả những điều đó, 1081 00:56:04,100 --> 00:56:07,580 họ có những hạn chế về số lượng ký tự mà bạn có thể sử dụng 1082 00:56:07,580 --> 00:56:09,950 cho tên hàm và tên biến, 1083 00:56:09,950 --> 00:56:12,620 do đó, tất cả mọi thứ là như Super ngưng tụ. 1084 00:56:12,620 --> 00:56:15,750 Nhưng bất cứ lúc nào bạn nhìn thấy một cái gì đó bắt đầu với str, 1085 00:56:15,750 --> 00:56:18,600 mà thường có nghĩa là điều này có gì để làm với một chuỗi. 1086 00:56:20,990 --> 00:56:23,350 >> Được rồi, do đó, bạn đã có để có được chiều dài của chuỗi, 1087 00:56:23,350 --> 00:56:27,110 và sau đó, chúng tôi làm gì với các ký tự? 1088 00:56:27,110 --> 00:56:29,020 Bạn có biết, Sam? 1089 00:56:29,020 --> 00:56:32,410 >> Tôi không có ý tưởng, tôi đã cố gắng để con nó ra. 1090 00:56:32,410 --> 00:56:35,410 Tôi thật sự không biết - Tôi muốn có một số cách để 1091 00:56:35,410 --> 00:56:38,990 Ý tôi là, tôi sẽ nghĩ rằng có lẽ chúng ta có thể làm một cái gì đó với tỷ lệ cược và làm mềm mại, 1092 00:56:38,990 --> 00:56:40,860 nhưng tôi không biết của bất kỳ chức năng như thế. 1093 00:56:40,860 --> 00:56:42,240 Yeah. 1094 00:56:43,160 --> 00:56:45,200 >> Nhưng điều đó - nó sẽ không nhất thiết phải làm việc, 1095 00:56:45,200 --> 00:56:48,690 bởi vì sau đó bạn sẽ nhận được không gian - 1096 00:56:48,690 --> 00:56:51,130 bạn sẽ phải có không gian để có được lời khuyên về cách - 1097 00:56:51,130 --> 00:56:54,310 Okay. 1098 00:56:54,310 --> 00:56:56,490 >> Tôi không biết - tôi loại bị mất vào thời điểm này. 1099 00:56:56,490 --> 00:56:58,120 Yeah - không, không, không, đây là điểm tốt. 1100 00:56:58,120 --> 00:57:00,420 Vì vậy, những gì chúng ta cần làm là, như Sam nói, 1101 00:57:00,420 --> 00:57:02,970 chúng ta cần phải theo dõi các chữ các chữ cái lẻ, 1102 00:57:02,970 --> 00:57:05,540 và những người thân mà ngay cả các chữ cái. 1103 00:57:06,650 --> 00:57:09,090 Nhưng chúng tôi muốn chắc chắn rằng chúng tôi không chỉ tìm kiếm 1104 00:57:09,090 --> 00:57:12,110 tại số lẻ và chẵn 1105 00:57:12,110 --> 00:57:14,030 chỉ số trong chuỗi, 1106 00:57:14,030 --> 00:57:17,660 mà đúng hơn là nhìn vào các chữ số lẻ và chẵn trong chuỗi, 1107 00:57:17,660 --> 00:57:20,190 kinda chúng ta cần phải có sự phân biệt giữa 1108 00:57:20,190 --> 00:57:25,190 chữ cái - như những gì thực ra A, B, C, D, hoặc như vậy, 1109 00:57:25,190 --> 00:57:29,090 và những gì không phải là thư nhưng vẫn còn trong chuỗi ký tự của chúng tôi. 1110 00:57:29,090 --> 00:57:32,390 Ví dụ ở đây, giống như dấu chấm than này không phải là một lá thư, 1111 00:57:32,390 --> 00:57:36,060 nhưng nó vẫn là một phần của chuỗi ký tự của chúng tôi, nó vẫn là một char. 1112 00:57:36,060 --> 00:57:38,820 Tương tự như vậy, tất cả các không gian này - 1113 00:57:38,820 --> 00:57:41,710 nó không có ý nghĩa để tận dụng một không gian, phải không? 1114 00:57:41,710 --> 00:57:46,160 Vì vậy, chúng tôi muốn chắc chắn rằng bằng cách nào đó chúng ta bỏ qua những 1115 00:57:46,160 --> 00:57:49,410 trong khi vẫn theo dõi tỷ lệ cược và làm mềm mại. 1116 00:57:50,900 --> 00:57:54,990 >> Vì vậy, loại trong hộp công cụ lập trình của chúng tôi 1117 00:57:54,990 --> 00:57:57,270 cho đến nay, nếu bạn sẽ, 1118 00:57:57,270 --> 00:58:01,310 chúng tôi có một số công cụ khác nhau mà chúng tôi đã nói chuyện về. 1119 00:58:01,310 --> 00:58:04,640 Vì vậy, một, ví dụ, là các biến, 1120 00:58:04,640 --> 00:58:07,120 như chúng tôi đã nói chuyện về tại đây. 1121 00:58:07,120 --> 00:58:10,730 Một công cụ mà chúng ta đã nói về chức năng. 1122 00:58:10,730 --> 00:58:15,800 Vì vậy, chúng tôi đã nói chuyện về các biến trong giả của chúng tôi ở đây 1123 00:58:15,800 --> 00:58:19,760 như những gì chúng ta sẽ sử dụng để lưu trữ chuỗi ký tự của chúng tôi. 1124 00:58:19,760 --> 00:58:24,630 Chúng tôi đã nói chuyện về các chức năng để có được chiều dài của một chuỗi, như strlen. 1125 00:58:28,510 --> 00:58:31,170 Chúng tôi đã nói về cái gì khác, và chúng tôi đã nói chuyện về nó 1126 00:58:31,170 --> 00:58:34,850 cho rất nhiều trước đó trong phần hôm nay: vòng. 1127 00:58:39,390 --> 00:58:42,030 >> Bạn nghĩ gì về việc sử dụng một vòng lặp trong chương trình này? 1128 00:58:42,030 --> 00:58:44,110 Jared, bạn nghĩ sao? 1129 00:58:47,150 --> 00:58:50,030 Chúng tôi sẽ sử dụng một vòng lặp trong chương trình này? 1130 00:58:50,030 --> 00:58:52,500 >> Có lẽ là không, không, bởi vì bạn không phải đi qua nó nhiều hơn một lần. 1131 00:58:52,500 --> 00:58:55,260 Được rồi, bạn không phải đi qua những gì nhiều hơn một lần? 1132 00:58:55,260 --> 00:58:57,190 >> Toàn bộ chuỗi. 1133 00:58:57,190 --> 00:59:00,660 Đúng, vì vậy bạn không phải đi qua toàn bộ chuỗi một lần. 1134 00:59:00,660 --> 00:59:03,330 Xin lỗi vì đã thực hiện hoàn toàn không có ý nghĩa! 1135 00:59:03,330 --> 00:59:06,360 Bạn không cần phải đi qua toàn bộ chuỗi nhiều hơn một lần. 1136 00:59:06,360 --> 00:59:08,660 Okay. 1137 00:59:09,790 --> 00:59:11,920 Bạn nghĩ gì? 1138 00:59:11,920 --> 00:59:14,110 >> Tôi nghĩ rằng nó tốt hơn để sử dụng chúng 1139 00:59:14,110 --> 00:59:16,640 vì vậy chúng tôi có thể làm như tận trong khi 1140 00:59:16,640 --> 00:59:19,750 vị trí của nó là số [không nghe được. 1141 00:59:19,750 --> 00:59:22,940 Tuyệt vời, và để tận dụng những gì? 1142 00:59:22,940 --> 00:59:25,200 Được rồi, vì vậy chúng tôi đang nói rằng 1143 00:59:25,200 --> 00:59:28,130 chúng ta nên sử dụng một vòng lặp vì chúng tôi muốn 1144 00:59:28,130 --> 00:59:32,550 viết chữ hoa trong khi nó không phải là một số. 1145 00:59:35,130 --> 00:59:37,140 Vì vậy, - xin lỗi, bạn muốn thêm? 1146 00:59:37,140 --> 00:59:39,340 >> Tôi sẽ nói rằng cách bạn đối xử với các chuỗi 1147 00:59:39,340 --> 00:59:42,290 và nó không nghe được] riêng [] không nghe được vào các nhân vật? 1148 00:59:42,290 --> 00:59:43,710 Yeah. 1149 00:59:43,710 --> 00:59:45,850 >> Và sau đó chúng ta có thể gán các con số để 1150 00:59:45,850 --> 00:59:47,780 hoặc dựa trên vị trí của các ký tự trong chuỗi? 1151 00:59:47,780 --> 00:59:49,720 Yeah. 1152 00:59:49,720 --> 00:59:53,640 >> Và xác định cho dù đó là lẻ hoặc thậm chí và viết hoa chữ cái chính nó 1153 00:59:53,640 --> 00:59:57,750 trong khi vị trí của bức thư là [không nghe được] - xin lỗi. 1154 00:59:57,750 --> 01:00:00,150 Lớn. 1155 01:00:00,150 --> 01:00:03,430 >> Vì vậy, chỉ cần một bản tóm tắt. 1156 01:00:03,430 --> 01:00:05,840 Bạn có thể nhắc nhở tôi tên của bạn một lần nữa - Tôi xin lỗi. 1157 01:00:05,840 --> 01:00:06,900 >> Charlotte. 1158 01:00:06,900 --> 01:00:08,490 Charlotte, okay. 1159 01:00:08,490 --> 01:00:11,130 Vì vậy, những gì Charlotte đang nói, 1160 01:00:11,130 --> 01:00:14,950 đó là hoàn toàn đúng - chúa ơi, thích này để tự động thụt vào tôi - 1161 01:00:14,950 --> 01:00:17,770 là nếu chúng ta nhìn vào một chuỗi 1162 01:00:17,770 --> 01:00:19,160 như này ở đầu trang - 1163 01:00:19,160 --> 01:00:21,590 "Cảm ơn vì thêm" - 1164 01:00:21,590 --> 01:00:24,790 như là một chuỗi ký tự 1165 01:00:24,790 --> 01:00:29,010 là ở vị trí 0, 1166 01:00:29,010 --> 01:00:32,260 h là ở vị trí 1. 1167 01:00:32,260 --> 01:00:36,880 A là 2, sau đó chúng tôi đã nhận 3, 4, 5; 1168 01:00:36,880 --> 01:00:40,830 không gian là ở vị trí 6. 1169 01:00:42,380 --> 01:00:45,300 Trong khi đó - vị trí của f là những gì? 1170 01:00:45,300 --> 01:00:47,610 7! 1171 01:00:47,610 --> 01:00:49,300 O? 8. 1172 01:00:49,300 --> 01:00:52,070 R? 9. 1173 01:00:52,070 --> 01:00:54,340 Và sau đó chúng tôi đã có 10, và sau đó tôi có thể không thực sự viết nó mà không có nó 1174 01:00:54,340 --> 01:00:57,430 kinda nhận được lộn xộn trên màn hình. 1175 01:00:57,430 --> 01:01:02,340 Nhưng điều này thực sự là làm thế nào chúng ta có thể nói về chuỗi trong bộ nhớ. 1176 01:01:02,340 --> 01:01:04,660 Nó một chuỗi 1177 01:01:04,660 --> 01:01:07,920 là một dãy ký tự, 1178 01:01:07,920 --> 01:01:12,430 và khi chúng ta nói đến một nhân vật cá nhân trong một chuỗi, 1179 01:01:12,430 --> 01:01:15,280 chúng ta thường làm như vậy bằng cách đề cập đến vị trí của nhân vật đó 1180 01:01:15,280 --> 01:01:17,620 trong chuỗi, 1181 01:01:17,620 --> 01:01:19,910 có lẽ là cách mà chúng ta nói về tháng chín 1182 01:01:19,910 --> 01:01:22,870 là tháng thứ chín của năm 1183 01:01:22,870 --> 01:01:27,730 hoặc thứ hai là ngày đầu tiên của tuần. 1184 01:01:29,280 --> 01:01:33,070 Vì vậy, điều này cung cấp cho chúng ta một cách để 1185 01:01:33,070 --> 01:01:37,030 tìm ra mà những người có số lẻ so với ngay cả 1186 01:01:37,030 --> 01:01:39,540 vì bạn có thể thấy ở đây, 1187 01:01:39,540 --> 01:01:43,640 nếu chúng ta kết hợp nó với T này, 1188 01:01:46,310 --> 01:01:49,360 bạn có thể thấy tất cả những cái hoa 1189 01:01:49,360 --> 01:01:53,040 thậm chí vị trí, 1190 01:01:53,040 --> 01:01:55,880 ít nhất là từ đầu tiên, 1191 01:01:55,880 --> 01:01:59,080 và sau đó mọi thứ được ném một khi chúng ta nhấn không gian, 1192 01:01:59,080 --> 01:02:02,460 bởi vì chúng tôi không được tính không gian này như một lá thư, 1193 01:02:02,460 --> 01:02:05,150 do đó, nó như thể chúng tôi bắt đầu 1194 01:02:05,150 --> 01:02:08,930 và đi 0, 1, 2, 3, 4, 5, 1195 01:02:08,930 --> 01:02:12,600 không gian, 6, 7, 8, không gian, 1196 01:02:12,600 --> 01:02:16,440 9, và sau đó 10, 11, 12, và như vậy. 1197 01:02:19,300 --> 01:02:22,910 >> Cool, vì vậy chúng tôi chắc chắn sẽ muốn sử dụng một số loại vòng 1198 01:02:22,910 --> 01:02:27,760 đi qua mỗi nhân vật lần lượt. 1199 01:02:31,330 --> 01:02:34,580 Vì vậy, tại thời điểm này, 1200 01:02:36,490 --> 01:02:38,360 chúng tôi sẽ trở lại với giả cũ của chúng tôi ở đây. 1201 01:02:40,970 --> 01:02:42,650 Là một phần xác định của những người thân mà 1202 01:02:42,650 --> 01:02:45,350 hoa và những người thân mà là chữ thường, 1203 01:02:45,350 --> 01:02:48,340 chúng tôi sẽ muốn làm điều này trong một số loại vòng lặp. 1204 01:02:51,080 --> 01:02:53,390 Loop, ruột kết. 1205 01:02:55,070 --> 01:03:01,220 Những loại vòng lặp, trong các loại của các vòng mà chúng ta có, 1206 01:03:01,220 --> 01:03:03,670 có vẻ là một tốt để sử dụng trong trường hợp này? 1207 01:03:03,670 --> 01:03:05,610 >> Tôi đã suy nghĩ cho vòng lặp. 1208 01:03:05,610 --> 01:03:07,500 Và tại sao bạn nghĩ đến việc cho vòng lặp? 1209 01:03:07,500 --> 01:03:10,000 >> Bởi vì nó bắt đầu từ số không, và sau đó 1210 01:03:10,000 --> 01:03:13,000 khi chúng ta đạt đến chiều dài của chuỗi, 1211 01:03:13,000 --> 01:03:16,170 và sau đó mỗi lần lặp bạn có thể không nghe được, không? 1212 01:03:16,170 --> 01:03:18,260 Yeah, chính xác. 1213 01:03:18,260 --> 01:03:21,490 Vì vậy, trong số các lựa chọn khác nhau của các vòng, 1214 01:03:21,490 --> 01:03:25,350 chúng tôi có cho các vòng, trong khi các vòng, và làm trong khi các vòng. 1215 01:03:25,350 --> 01:03:28,550 Trường hợp cho vòng lặp là đặc biệt hữu ích 1216 01:03:28,550 --> 01:03:32,120 là khi bạn muốn biết 1217 01:03:32,120 --> 01:03:34,940 loại nơi bạn đang ở trong vòng lặp, 1218 01:03:34,940 --> 01:03:38,520 bao nhiêu lần vòng lặp đã được thực hiện cho đến nay. 1219 01:03:38,520 --> 01:03:42,490 Đó là chính xác những gì chúng tôi muốn biết trong tình huống này, 1220 01:03:42,490 --> 01:03:44,640 như Kelly cho biết, 1221 01:03:44,640 --> 01:03:47,400 dựa trên bình luận trước đó của Charlotte mà chúng ta muốn biết vị trí 1222 01:03:47,400 --> 01:03:49,900 của các ký tự trong chuỗi, 1223 01:03:49,900 --> 01:03:51,750 và cho vòng lặp sẽ cho chúng ta điều đó, 1224 01:03:51,750 --> 01:03:54,680 bởi vì nếu chúng ta bắt đầu nhìn lại chuỗi ký tự của chúng tôi, 1225 01:03:54,680 --> 01:03:57,140 nếu chúng ta bắt đầu vòng lặp cho chúng tôi tại 0, 1226 01:03:57,140 --> 01:04:00,350 và chúng tôi đi qua chiều dài của toàn bộ chuỗi, 1227 01:04:00,350 --> 01:04:04,740 sau đó chúng ta có thể kết hợp chữ T 1228 01:04:04,740 --> 01:04:08,110 với 0 trong của chúng tôi cho vòng lặp, 1229 01:04:09,950 --> 01:04:13,080 chữ H với 1 trong vòng lặp của chúng tôi, và như vậy, 1230 01:04:13,080 --> 01:04:16,600 đi tất cả các cách thức thông qua vào cuối của chuỗi. 1231 01:04:18,810 --> 01:04:21,890 >> Vì vậy, chúng ta hãy bắt đầu mã hóa này chỉ là một chút 1232 01:04:21,890 --> 01:04:24,930 chỉ để bạn có được một cảm giác về này trông giống như. 1233 01:04:24,930 --> 01:04:27,980 Tôi sẽ tiết kiệm này, 1234 01:04:27,980 --> 01:04:31,230 vì vậy chúng tôi đã có mã giả của chúng tôi ở đây, 1235 01:04:33,490 --> 01:04:38,120 và tôi sẽ để xóa tất cả mọi thứ. 1236 01:04:38,120 --> 01:04:42,210 Vì vậy, tôi có một phiến đá trắng. 1237 01:04:42,210 --> 01:04:45,910 Tôi sẽ bắt đầu bằng cách viết int main (void) 1238 01:04:45,910 --> 01:04:48,440 { 1239 01:04:48,440 --> 01:04:51,380 Tôi sẽ đặt số 0 trở lại trong 1240 01:04:51,380 --> 01:04:53,320 và sau đó. 1241 01:04:53,320 --> 01:04:56,130 Vì vậy, thường là khi tôi bắt đầu chương trình, đây là những gì tôi bắt đầu với. 1242 01:04:56,130 --> 01:04:59,370 Tôi sẽ lưu nó để bạn có nó. 1243 01:05:06,290 --> 01:05:08,440 Vì vậy, một trong những điều đầu tiên chúng tôi nói chuyện về 1244 01:05:08,440 --> 01:05:10,920 đầu vào từ người sử dụng 1245 01:05:10,920 --> 01:05:13,740 và lưu trữ nó trong một chuỗi. 1246 01:05:13,740 --> 01:05:16,420 Làm thế nào để chúng ta có được đầu vào từ người sử dụng? 1247 01:05:16,420 --> 01:05:19,640 >> GetString. 1248 01:05:19,640 --> 01:05:21,870 GetString, tất cả các quyền. 1249 01:05:23,150 --> 01:05:26,820 Vì vậy, nếu tôi gõ getString () 1250 01:05:26,820 --> 01:05:32,150 và một dấu chấm phẩy. 1251 01:05:32,150 --> 01:05:36,630 Hãy thử chạy này này sẽ chạy, trước hết? 1252 01:05:36,630 --> 01:05:38,430 Và tại sao không chạy? 1253 01:05:38,430 --> 01:05:40,090 >> Bạn phải khai báo biến. 1254 01:05:40,090 --> 01:05:43,040 Tôi phải khai báo một biến. Okay. 1255 01:05:43,040 --> 01:05:45,700 >> Vì vậy, làm thế nào để làm điều đó? 1256 01:05:45,700 --> 01:05:48,400 Bạn có viết một cái gì đó, chia sẻ nó? 1257 01:05:48,400 --> 01:05:51,270 Và sau đó chúng ta có thể kéo nó lên. 1258 01:05:51,270 --> 01:05:54,630 Hãy xem, Dan, phải, okay. 1259 01:05:54,630 --> 01:05:59,100 Hoặc Daniel. Sao chép rằng, chuỗi đầu vào = GetString (). 1260 01:05:59,100 --> 01:06:01,340 Awesome. 1261 01:06:01,340 --> 01:06:02,890 Điều này sẽ chạy? 1262 01:06:02,890 --> 01:06:05,210 Hãy thử lại nó. 1263 01:06:05,210 --> 01:06:08,890 Lượt tải lên chạy, mã nguồn, xây dựng, đã có lỗi. 1264 01:06:08,890 --> 01:06:11,040 Okay. 1265 01:06:11,040 --> 01:06:14,950 Vì vậy, whats xảy ra ở đây? 1266 01:06:14,950 --> 01:06:18,700 Sử dụng không khai báo định danh 'string'. 1267 01:06:18,700 --> 01:06:22,840 >> Chúng tôi phải bao gồm các thư viện? 1268 01:06:22,840 --> 01:06:25,130 Yeah, Dan nói rằng chúng ta phải bao gồm các thư viện. 1269 01:06:25,130 --> 01:06:28,270 Có phải đó là những gì bạn đang nói, Stella? Awesome. 1270 01:06:29,450 --> 01:06:31,430 Đó là tuyệt vời, do đó, Stella, bạn có thể 1271 01:06:31,430 --> 01:06:34,800 sao chép mã này trong Space Daniel? 1272 01:06:34,800 --> 01:06:37,580 Nếu bạn bấm vào Daniel Roland Ki, sao chép, 1273 01:06:37,580 --> 01:06:41,360 và sau đó bạn sẽ đặt bao gồm dòng, và sau đó lưu nó ra? 1274 01:06:46,580 --> 01:06:49,360 Hãy cho tôi biết khi bạn đã sẵn sàng. 1275 01:06:57,160 --> 01:06:59,490 Vì vậy, bao gồm cú pháp này cũng là loại của funky; 1276 01:06:59,490 --> 01:07:02,210 có như thế tag băm, 1277 01:07:02,210 --> 01:07:05,760 và có bao gồm, và sau đó, có các dấu ngoặc nhọn. 1278 01:07:12,490 --> 01:07:15,360 Bạn có nhớ cách làm việc này, hay tôi nên đặt nó lên trên mã này ngay tại đây? 1279 01:07:15,360 --> 01:07:17,850 >> Tôi là tốt. 1280 01:07:17,850 --> 01:07:19,810 Okay. 1281 01:07:19,810 --> 01:07:23,260 >> Tôi in nó - Tôi đã không chắc chắn mà thư viện, mặc dù. 1282 01:07:23,260 --> 01:07:25,570 Oh, okay - yeah, do đó, nó là thư viện CS50. 1283 01:07:25,570 --> 01:07:27,660 >> Oh, tôi đặt thư viện stdio. 1284 01:07:27,660 --> 01:07:30,950 >> Oh, đã nhận nó - yeah, không, Đó - 1285 01:07:30,950 --> 01:07:34,380 do đó, nó chỉ ra rằng chuỗi thực sự là một cái gì đó đặc biệt để CS50. 1286 01:07:36,590 --> 01:07:41,240 Có thực sự không phải là một loại dây thực sự 1287 01:07:41,240 --> 01:07:45,000 bởi vì ngay tại đây, chuỗi ở vị trí kiểu, 1288 01:07:45,000 --> 01:07:49,140 chúng ta đang tuyên bố một đầu vào được gọi là biến kiểu string - 1289 01:07:49,140 --> 01:07:53,320 và chúng tôi đang đặt bên trong của đầu vào 1290 01:07:53,320 --> 01:07:58,440 giá trị được trả lại cho chúng tôi: sản lượng của cuộc gọi chức năng này GetString. 1291 01:07:58,440 --> 01:08:02,910 Bạn có thể nói đây là một cuộc gọi chức năng vì nó có các dấu ngoặc đơn, giống như printf không, 1292 01:08:02,910 --> 01:08:05,920 cũng giống như strlen. 1293 01:08:05,920 --> 01:08:09,860 Nhưng chuỗi thực sự là không phải là một loại thực 1294 01:08:09,860 --> 01:08:11,760 trong ngôn ngữ C. 1295 01:08:11,760 --> 01:08:15,710 Chúng tôi đã thực hiện nó vào một loại, và chúng tôi sẽ giới thiệu cho những gì nó thực sự là 1296 01:08:15,710 --> 01:08:19,000 trong C, bởi vì đó là một cách để làm việc với chuỗi; 1297 01:08:19,000 --> 01:08:22,479 chúng tôi đã chỉ làm một cái gì đó để làm cho nó trông một chút đẹp hơn. 1298 01:08:22,479 --> 01:08:25,240 >> Vì vậy, ở đây chúng tôi đi. 1299 01:08:25,240 --> 01:08:28,439 Dưới đây là mã của Stella. 1300 01:08:28,439 --> 01:08:32,470 Nó có bao gồm # . 1301 01:08:32,470 --> 01:08:36,390 Những người khác sẽ gọi đây là giống như băm một, hoặc một sắc nét bao gồm. 1302 01:08:36,390 --> 01:08:39,580 Bây giờ chúng ta có thể bắt đầu nó, chạy nó, 1303 01:08:39,580 --> 01:08:43,649 và chúng tôi vẫn nhận được một lỗi. 1304 01:08:43,649 --> 01:08:46,290 Hãy xem những gì đang xảy ra. 1305 01:08:48,069 --> 01:08:50,569 "Không được sử dụng biến 'đầu vào'." 1306 01:08:50,569 --> 01:08:53,350 Được rồi, vì vậy đó là mát mẻ, đó là mát mẻ. 1307 01:08:53,350 --> 01:08:55,859 Ý tôi là, nó không phải là thực sự mát mẻ, 1308 01:08:55,859 --> 01:08:57,930 bởi vì chúng tôi nhận được một lỗi và nó không chạy, 1309 01:08:57,930 --> 01:09:00,410 nhưng những gì nói là 1310 01:09:00,410 --> 01:09:03,130 chúng tôi đã không sử dụng biến của chúng tôi, có ý nghĩa. 1311 01:09:03,130 --> 01:09:06,090 Chúng tôi đã không cố gắng làm bất cứ điều gì với nó. 1312 01:09:07,819 --> 01:09:10,490 Đây là một cách mà 1313 01:09:10,490 --> 01:09:14,170 Clang đang cố gắng để giúp chúng tôi đảm bảo rằng chúng tôi không chỉ sử dụng các biến 1314 01:09:14,170 --> 01:09:18,819 và sau đó vô tình gọi điện cho họ một cái gì đó khác sau này trong mã của chúng tôi, 1315 01:09:18,819 --> 01:09:21,649 giúp chúng tôi tránh những sai sót như vậy. 1316 01:09:23,130 --> 01:09:28,810 >> Được rồi, vì vậy chúng tôi đã có đầu vào từ người sử dụng, 1317 01:09:28,810 --> 01:09:31,910 chúng tôi lưu trữ nó trong một biến. 1318 01:09:31,910 --> 01:09:34,569 Bước tiếp theo là để sau đó 1319 01:09:34,569 --> 01:09:37,609 bắt đầu tìm kiếm ở tất cả các ký tự trong chuỗi 1320 01:09:37,609 --> 01:09:41,830 và xác định mà những người được viết hoa 1321 01:09:41,830 --> 01:09:44,600 và những người thân mà là chữ thường. 1322 01:09:44,600 --> 01:09:49,439 Và cũng giống như Kelly và Charlotte đưa lên, 1323 01:09:49,439 --> 01:09:52,340 chúng tôi điều này bằng cách sử dụng một vòng lặp for. 1324 01:09:52,340 --> 01:09:55,520 Vì vậy, không ai nhớ cú pháp của một vòng lặp for 1325 01:09:55,520 --> 01:09:58,670 và muốn để mất một đâm lúc chỉ cần viết 1326 01:09:58,670 --> 01:10:03,170 dòng đầu tiên cho vòng lặp, chỉ cần cho một chút? 1327 01:10:05,740 --> 01:10:07,330 Kelly, bạn muốn cung cấp cho nó một thử? 1328 01:10:07,330 --> 01:10:10,300 >> Yeah, vì vậy bạn phải khởi tạo đầu tiên, 1329 01:10:10,300 --> 01:10:13,170 vì vậy tôi đặt i = 0, 1330 01:10:13,170 --> 01:10:15,390 và sau đó tôi đã làm i 01:10:18,570 Là nó trong không gian của bạn - tôi có thể kéo nó lên? 1332 01:10:18,570 --> 01:10:21,330 >> Vâng, tôi hơi say lên một chút, nhưng yeah. 1333 01:10:21,330 --> 01:10:24,180 >> Được rồi, chúng ta hãy kéo nó lên. 1334 01:10:24,180 --> 01:10:26,490 Awesome. 1335 01:10:26,490 --> 01:10:29,510 >> Nhưng sau đó, tôi không biết nếu có - 1336 01:10:29,510 --> 01:10:32,180 Yeah, okay. 1337 01:10:33,020 --> 01:10:36,030 Vì vậy, đây là những gì của Kelly: chúng ta hãy nhìn vào nó một cách nhanh chóng. 1338 01:10:36,030 --> 01:10:40,290 Vì vậy, cô ấy bao gồm thư viện CS50 ở đầu trang. 1339 01:10:40,290 --> 01:10:44,790 Cô ấy bao gồm các thư viện IO tiêu chuẩn ở đầu trang, 1340 01:10:45,550 --> 01:10:48,990 và IO tiêu chuẩn có chức năng giống như printf, 1341 01:10:48,990 --> 01:10:51,690 vì vậy nếu bạn đã bao giờ muốn sử dụng printf, bạn cần dòng đó. 1342 01:10:53,060 --> 01:10:56,140 Và sau đó cô bao gồm thư viện string, 1343 01:10:56,140 --> 01:10:58,200 mà chúng tôi sẽ cần, 1344 01:10:58,200 --> 01:11:01,010 bởi vì thư viện string có strlen chức năng, 1345 01:11:01,010 --> 01:11:04,320 mà chúng tôi sẽ nhận được chỉ là một chút. 1346 01:11:04,320 --> 01:11:07,560 Vì vậy, nếu chúng ta nhìn vào những gì Kelly được thực hiện ở đây, 1347 01:11:07,560 --> 01:11:10,260 bạn có thể hướng dẫn chúng tôi qua những gì bạn đã làm? 1348 01:11:10,260 --> 01:11:13,600 >> Yeah, vì vậy - Ý tôi là, tôi đã nhận lỗi, vì vậy - 1349 01:11:13,600 --> 01:11:15,380 Yeah, không, it's - 1350 01:11:15,380 --> 01:11:18,580 >> Vì vậy, tôi muốn gọi cho chuỗi mà tôi có chỉ là "chuỗi". 1351 01:11:18,580 --> 01:11:22,230 Tôi muốn in ra các chuỗi 1352 01:11:22,230 --> 01:11:25,640 và sau đó tôi - 1353 01:11:27,450 --> 01:11:30,930 Tôi muốn thiết lập các chuỗi như một mảng của mỗi nhân vật 1354 01:11:30,930 --> 01:11:33,170 sự khác biệt [không nghe được, phải không? 1355 01:11:33,170 --> 01:11:38,080 Và sau đó tôi muốn bắt đầu ở vị trí 0 1356 01:11:38,080 --> 01:11:40,630 và sau đó mỗi 2 không gian, 1357 01:11:40,630 --> 01:11:42,580 Tôi sẽ tận dụng, 1358 01:11:42,580 --> 01:11:45,680 vì vậy tôi chỉ mô tả nó là 23, bởi vì tôi đã nhìn vào bảng mã ASCII. 1359 01:11:45,680 --> 01:11:48,730 Vì vậy, đó là những gì tôi đã suy nghĩ - Tôi biết nó không đúng. 1360 01:11:48,730 --> 01:11:50,920 >> Đã nhận nó, vì vậy đây là một khởi đầu tuyệt vời. 1361 01:11:50,920 --> 01:11:54,120 Tôi nghĩ rằng rất nhiều khuôn khổ diễn ra ở đây. 1362 01:11:54,120 --> 01:11:57,500 Hãy cho đi qua loại từng dòng và xem những gì đang xảy ra. 1363 01:11:57,500 --> 01:12:01,040 Vì vậy, cách tôi muốn làm điều này chỉ cần bắt đầu bằng cách biên dịch mã 1364 01:12:01,040 --> 01:12:04,300 và cho phép trình biên dịch cho tôi biết như thế có gì sai với mã của tôi, 1365 01:12:04,300 --> 01:12:07,450 bởi vì trình biên dịch là thực sự tốt tại nói cho bạn những gì là sai với mã của bạn. 1366 01:12:09,790 --> 01:12:12,780 Vì vậy, nếu chúng tôi chơi nó, xây dựng, và nó không xây dựng. 1367 01:12:12,780 --> 01:12:14,860 Nó nói có một lỗi, 1368 01:12:14,860 --> 01:12:17,320 vì vậy nếu chúng ta di chuyển xuống và nhìn vào các lỗi đầu tiên, 1369 01:12:17,320 --> 01:12:20,960 nó nói - 1370 01:12:20,960 --> 01:12:22,040 chúng tôi di chuyển trở lại lên đến đỉnh, 1371 01:12:22,040 --> 01:12:26,070 chúng ta có thể thấy có 5 lỗi phát sinh ở đây ở phía dưới. 1372 01:12:26,070 --> 01:12:30,180 Rất tiếc, đó là thực sự cắt đứt. 1373 01:12:31,810 --> 01:12:35,790 Tôi đoán đó là chỉ cần sẽ không nhận được bất kỳ. 1374 01:12:36,970 --> 01:12:38,500 >> Ở đây chúng tôi đi. 1375 01:12:39,790 --> 01:12:42,530 Vì vậy, có 5 lỗi tổng số. 1376 01:12:42,530 --> 01:12:45,140 Ở đây tôi chỉ có thể nhìn thấy đầu tiên 2, 1377 01:12:45,140 --> 01:12:49,100 vì vậy tôi có thể di chuyển lên một chút và sau đó lên di chuyển. 1378 01:12:49,100 --> 01:12:53,220 Đây là các lệnh được chạy để biên dịch mã, 1379 01:12:53,220 --> 01:12:59,030 và sau đó các lỗi đầu tiên là trong file.c ngay tại đây: 1380 01:12:59,030 --> 01:13:03,300 "Dự kiến ​​sẽ xác định hoặc '('", và nó đã được trên đường dây này 1381 01:13:03,300 --> 01:13:06,680 nơi mà chúng tôi đã nói string = GetString (). 1382 01:13:07,660 --> 01:13:12,920 Bạn có thể thấy ở đây là nó đã được trên dòng 8 của file.c, 1383 01:13:12,920 --> 01:13:17,230 và sau đó tôi tin rằng đây là 12 nhân vật - đó là lỗi. 1384 01:13:17,230 --> 01:13:20,390 Vì vậy, những gì đang xảy ra sai trên dòng 8 - Kelly? 1385 01:13:20,390 --> 01:13:22,810 >> Bạn chỉ cần để gọi nó, như một lá thư hoặc một cái gì đó, 1386 01:13:22,810 --> 01:13:24,400 giống như một chuỗi hoặc một cái gì đó? 1387 01:13:24,400 --> 01:13:28,250 Yeah, vì vậy nó chỉ ra rằng các loại tên đặc biệt, 1388 01:13:28,250 --> 01:13:31,770 để string, int, char, ngắn, 1389 01:13:31,770 --> 01:13:35,740 họ tất cả từ khoá đặc biệt, 1390 01:13:35,740 --> 01:13:38,940 và bạn có thể không thực sự sử dụng chúng như là tên các biến của bạn, 1391 01:13:38,940 --> 01:13:41,430 bởi vì trình biên dịch nhìn vào đó và nói, 1392 01:13:41,430 --> 01:13:43,680 "Ồ, tôi biết đó là một loại" 1393 01:13:43,680 --> 01:13:46,530 vì vậy bạn có thể không thực sự có một biến xâu chuỗi, 1394 01:13:46,530 --> 01:13:50,800 như tôi đang cố gắng để làm ở đây, điều này sẽ không làm việc. 1395 01:13:52,610 --> 01:13:58,250 Nhưng thay vào đó, chúng ta có thể gọi nó là một cái gì đó giống như hoặc st hoặc str. 1396 01:13:58,250 --> 01:14:01,540 Chúng tôi cũng không thể gọi nó int. 1397 01:14:01,540 --> 01:14:03,740 Chúng ta không thể có một chuỗi được gọi là int. 1398 01:14:03,740 --> 01:14:06,740 Chúng ta không thể có một chuỗi được gọi là char, không ai trong số những người sẽ làm việc. 1399 01:14:06,740 --> 01:14:09,420 >> Vì vậy, chúng tôi sẽ gọi nó là cho thời gian được. 1400 01:14:10,630 --> 01:14:13,170 Awesome. 1401 01:14:13,170 --> 01:14:17,500 Vì vậy, những gì tiếp theo đang diễn ra trong dòng này? 1402 01:14:21,390 --> 01:14:24,350 String - dòng này có vẻ khá tốt? 1403 01:14:24,350 --> 01:14:27,830 Hãy cung cấp cho nó một thử, chúng ta hãy chạy nó. 1404 01:14:27,830 --> 01:14:30,360 Được rồi, do đó, chúng tôi vẫn nhận được lỗi. 1405 01:14:30,360 --> 01:14:32,080 Lần này, chúng tôi đang xuống đến 4 lỗi. 1406 01:14:32,080 --> 01:14:34,350 Vì vậy, chúng tôi đã nhận một trong số họ. 1407 01:14:34,350 --> 01:14:36,130 Hãy di chuyển lên. 1408 01:14:36,130 --> 01:14:38,890 "Loại không mong muốn tên chuỗi ': dự kiến ​​biểu hiện" có? 1409 01:14:38,890 --> 01:14:41,780 >> Yeah, đó là vì tôi đã cố gắng để đặt tên cho chuỗi. 1410 01:14:41,780 --> 01:14:44,270 Yeah, vì vậy nó trông giống như chúng tôi bây giờ cũng phải đi sửa chữa 1411 01:14:44,270 --> 01:14:46,560 tất cả các tài liệu tham khảo cho chuỗi. 1412 01:14:46,560 --> 01:14:50,070 Bạn có thể thấy có một tham chiếu đến chuỗi ở đây, ở đây, ở đây, 1413 01:14:50,070 --> 01:14:53,440 vì vậy chúng ta có thể di chuyển tất cả các s. 1414 01:14:56,040 --> 01:15:00,930 Lớn. Được rồi, chạy lại nó. 1415 01:15:00,930 --> 01:15:03,260 Building - một lỗi khác xảy ra. 1416 01:15:03,260 --> 01:15:06,900 >> Được rồi, bây giờ chúng giảm xuống còn một lỗi, 1417 01:15:06,900 --> 01:15:11,090 để int i = s và sau đó các dấu ngoặc vuông. 1418 01:15:11,090 --> 01:15:14,880 Vì vậy, bạn có thể cho chúng tôi biết một chút về những gì bạn đang làm gì ở đây, Kelly? 1419 01:15:14,880 --> 01:15:17,120 >>. 1420 01:15:17,120 --> 01:15:19,410 Nó đã được trên dòng 10. 1421 01:15:19,410 --> 01:15:22,760 >> Tôi không biết nếu chúng tôi cần tất cả, 1422 01:15:22,760 --> 01:15:25,560 nhưng tôi nghĩ rằng tôi đã cố gắng - 1423 01:15:25,560 --> 01:15:27,580 Tôi sẽ lưu nó để bạn có thể làm theo cùng. 1424 01:15:27,580 --> 01:15:30,470 >> Tôi nghĩ rằng tôi đã 1425 01:15:30,470 --> 01:15:33,150 cố gắng để cho nó bắt đầu ở vị trí 0 1426 01:15:33,150 --> 01:15:35,030 vào lúc bắt đầu cho vòng lặp, 1427 01:15:35,030 --> 01:15:38,370 vì vậy tôi nghĩ rằng có lẽ đó nói là không cần thiết. 1428 01:15:39,690 --> 01:15:41,350 Vì vậy, chỉ cần để recap, 1429 01:15:41,350 --> 01:15:44,850 bạn đang nói rằng điều này - bạn đã cố gắng để bắt đầu ở vị trí 0 1430 01:15:44,850 --> 01:15:47,030 và có được điều này - yeah, 1431 01:15:47,030 --> 01:15:50,460 vì vậy tôi nghĩ rằng trước đó, cũng vậy, khi bạn đang đi bộ qua mã, 1432 01:15:50,460 --> 01:15:54,070 bạn đang nói về việc làm thế nào bạn muốn để điều trị các chuỗi như là một mảng 1433 01:15:54,070 --> 01:15:57,440 vì vậy chúng ta có thể truy cập vào từng nhân vật riêng lẻ. 1434 01:15:57,440 --> 01:16:00,660 Tôi nghĩ rằng Dan mảng đề cập, cũng cố gắng để chuyển đổi các chuỗi vào mảng. 1435 01:16:01,400 --> 01:16:03,300 >> Nó quay ra rằng loại dưới mui xe, 1436 01:16:03,300 --> 01:16:06,060 một chuỗi thực sự được lưu trữ như là một mảng đã có, 1437 01:16:06,060 --> 01:16:08,060 và bạn có thể truy cập vào nó như một mảng; 1438 01:16:08,060 --> 01:16:12,390 không có chuyển đổi mà bạn phải làm. 1439 01:16:12,390 --> 01:16:15,770 Một isn't chuỗi - vì vậy - 1440 01:16:15,770 --> 01:16:18,200 một chuỗi không phải là thực sự là một mảng, 1441 01:16:18,200 --> 01:16:21,940 nhưng bạn có thể truy cập vào nó như vậy, bởi vì tất cả các nhân vật được lưu trữ 1442 01:16:21,940 --> 01:16:25,160 ngay bên cạnh nhau trong bộ nhớ, 1443 01:16:25,160 --> 01:16:28,310 vì vậy nếu bạn muốn để có được những ký tự đầu tiên của chuỗi, 1444 01:16:28,310 --> 01:16:31,910 nó giống như nhận được số nguyên đầu tiên trong một mảng số nguyên. 1445 01:16:31,910 --> 01:16:35,010 Vì vậy, chúng tôi thường xuyên - we'll 1446 01:16:35,010 --> 01:16:36,360 tham khảo với 2 giống như 1447 01:16:36,360 --> 01:16:38,590 oh, là một chuỗi, là một mảng, 1448 01:16:38,590 --> 01:16:40,830 mặc dù nó thực sự - họ việc rất khác nhau, 1449 01:16:40,830 --> 01:16:43,410 nhưng bạn có thể đối xử với họ rất nhiều giống. 1450 01:16:44,700 --> 01:16:47,400 Vì vậy, nó chỉ ra rằng dòng này thực sự - 1451 01:16:47,400 --> 01:16:51,270 chúng tôi không cần phải làm bất kỳ chuyển đổi, 1452 01:16:51,270 --> 01:16:53,500 và trong thực tế, 1453 01:16:53,500 --> 01:16:56,790 điều này thực sự không phải là một biểu thức hợp lệ, 1454 01:16:56,790 --> 01:16:59,040 đó là những gì trình biên dịch của chúng tôi nói với chúng tôi. 1455 01:16:59,040 --> 01:17:01,290 Nó nói rằng, "Hey, dự kiến ​​một biểu thức, 1456 01:17:01,290 --> 01:17:04,610 và những gì tôi đã có ở đây là một cái gì đó không phải là một biểu thức. " 1457 01:17:04,610 --> 01:17:07,310 Để khai báo một mảng, 1458 01:17:07,310 --> 01:17:11,780 tất cả những gì bạn cần làm là một cái gì đó như thế này với một dấu chấm phẩy, 1459 01:17:11,780 --> 01:17:15,080 và sau đó bạn nói với các mảng bao lâu bạn muốn nó được, 1460 01:17:15,080 --> 01:17:18,370 chẳng hạn như 5, do đó, dòng 10 này 1461 01:17:18,370 --> 01:17:23,880 sẽ khai báo một mảng gọi là i với 5 số nguyên trong đó. 1462 01:17:23,880 --> 01:17:26,540 >> Đây là một sang một bên, điều này là không cần thiết cho các mã, 1463 01:17:26,540 --> 01:17:30,970 nhưng điều này - đây là loại khai báo như thế nào. 1464 01:17:30,970 --> 01:17:35,310 >> Làm thế nào bạn sẽ không sử dụng char [strlen (s)]? 1465 01:17:35,310 --> 01:17:38,500 Char [strlen (s)]? 1466 01:17:38,500 --> 01:17:41,500 >> Char i, và sau đó bên trong dấu ngoặc, strlen (s). 1467 01:17:43,900 --> 01:17:47,710 Yeah, vì vậy chúng tôi có thể - 1468 01:17:47,710 --> 01:17:49,460 chúng ta có thể làm điều này, 1469 01:17:49,460 --> 01:17:52,160 và điều này sẽ tuyên bố này sẽ làm gì? 1470 01:17:52,160 --> 01:17:55,900 >> Tôi nghĩ rằng nó sẽ khai báo một mảng 1471 01:17:55,900 --> 01:18:01,780 , giống như - of - 1472 01:18:01,780 --> 01:18:04,540 oh, bạn không cần i-oh, 1473 01:18:04,540 --> 01:18:06,420 yeah, bạn chắc chắn không cần tôi. 1474 01:18:06,420 --> 01:18:10,250 Bạn khai báo một mảng kí tự 1475 01:18:10,250 --> 01:18:13,150 chiều dài s. 1476 01:18:14,680 --> 01:18:16,770 Và vì vậy những gì Sam nói là 1477 01:18:16,770 --> 01:18:20,660 10 dòng này - cho phép tôi đặt một số không gian giữa nó và phần còn lại để chúng ta có thể cô lập nó - 1478 01:18:20,660 --> 01:18:23,440 dòng 10 này sẽ khai báo một mảng 1479 01:18:23,440 --> 01:18:28,520 ký tự, strlen (s) giá trị của họ, 1480 01:18:28,520 --> 01:18:32,270 nhưng chúng tôi thực sự cần tôi, 1481 01:18:32,270 --> 01:18:35,710 và lý do chúng tôi cần là bởi vì chúng ta cần phải cung cấp cho các mảng một tên; 1482 01:18:35,710 --> 01:18:38,900 nếu không, chúng ta sẽ không có một cách để đề cập đến mảng sau này trong mã. 1483 01:18:38,900 --> 01:18:41,180 >> Vì vậy, điều này đúng ở đây là tên mảng 1484 01:18:41,180 --> 01:18:43,420 và bên trong là độ dài. 1485 01:18:43,420 --> 01:18:45,010 Điều này sẽ cho chúng ta một mảng, 1486 01:18:45,010 --> 01:18:47,430 nhưng điều này - một lần nữa, đây là một tuyên bố. 1487 01:18:47,430 --> 01:18:50,380 Nó không phải là một nhiệm vụ, đó không phải là khởi tạo. 1488 01:18:50,380 --> 01:18:52,330 Nếu chúng ta khai báo mảng này như thế này, 1489 01:18:52,330 --> 01:18:54,490 có thực sự là không có gì trong các nội dung của mảng. 1490 01:18:54,490 --> 01:18:57,490 Nó chỉ là rác - bất cứ điều gì là ở đó. 1491 01:18:57,490 --> 01:18:59,780 Và cũng giống như chúng tôi đã nói, 1492 01:18:59,780 --> 01:19:01,340 chúng tôi thực sự thậm chí không cần phải làm điều này chuyển đổi, 1493 01:19:01,340 --> 01:19:04,810 bởi vì chúng tôi đã có thể điều trị string s như một mảng. 1494 01:19:06,750 --> 01:19:09,170 Tôi biết chúng tôi đang chạy một chút dài về thời gian, 1495 01:19:09,170 --> 01:19:12,330 nhưng tôi muốn chỉ thực sự nhanh chóng có được điều này cho vòng lặp 1496 01:19:12,330 --> 01:19:14,850 và cho bạn thấy làm thế nào để truy cập vào các đặc điểm cá nhân trong mảng, 1497 01:19:14,850 --> 01:19:17,170 bởi vì đó là chìa khóa để chuyển nhượng của chúng tôi. 1498 01:19:17,170 --> 01:19:20,790 Và sau đó chúng tôi sẽ cho bạn đi từ đó. 1499 01:19:20,790 --> 01:19:24,610 >> Vì vậy, ở đây, chúng tôi đã có một vòng lặp for 1500 01:19:24,610 --> 01:19:28,310 trông gần như tốt. 1501 01:19:28,310 --> 01:19:30,960 Có gì không phải là khá gần như ở đó? 1502 01:19:30,960 --> 01:19:33,240 What's - điều gì là không hoàn toàn đúng về điều này cho vòng lặp? 1503 01:19:33,240 --> 01:19:36,010 >> Không có dấu ngoặc nhọn? 1504 01:19:36,010 --> 01:19:38,420 Không có dấu ngoặc nhọn, đối với một. 1505 01:19:38,420 --> 01:19:42,580 Bạn muốn làm cho chắc chắn rằng chúng tôi có cơ thể của vòng lặp với dấu ngoặc nhọn. 1506 01:19:42,580 --> 01:19:45,240 Rất tiếc, không phải cú đúp vuông! 1507 01:19:45,240 --> 01:19:48,660 Và điều tiếp theo mà chúng ta cần phải làm gì với vòng lặp này là gì? 1508 01:19:48,660 --> 01:19:52,640 Nếu tôi cố gắng và chạy nó, 1509 01:19:52,640 --> 01:19:56,740 Hãy lỗi này mà tôi nhận được? 1510 01:19:56,740 --> 01:20:00,990 Tôi nhận được tất cả các lỗi - tôi phải khởi tạo i. 1511 01:20:00,990 --> 01:20:03,610 Lớn. 1512 01:20:03,610 --> 01:20:05,770 Vì vậy, đây sẽ là một vòng lặp - điều này không phải là khá, 1513 01:20:05,770 --> 01:20:08,680 nhưng nó nhận được thực sự gần gũi. 1514 01:20:08,680 --> 01:20:11,260 Mã này bây giờ chúng ta có thể chạy, 1515 01:20:11,260 --> 01:20:14,620 xây dựng, lỗi vẫn xảy ra. 1516 01:20:17,960 --> 01:20:19,800 Tại sao nó vẫn còn phàn nàn, 1517 01:20:19,800 --> 01:20:22,030 nói rằng các biểu hiện là không sử dụng, 1518 01:20:22,030 --> 01:20:24,600 và đó là bởi vì dòng này không làm bất cứ điều gì. 1519 01:20:24,600 --> 01:20:27,620 Chúng tôi không lưu trữ bất cứ nơi nào, chúng tôi đã không lưu kết quả. 1520 01:20:27,620 --> 01:20:30,210 Chúng ta nên lưu kết quả này? 1521 01:20:30,210 --> 01:20:32,920 >> S hoặc i? 1522 01:20:32,920 --> 01:20:35,990 Chính xác, và cú pháp này funky, 1523 01:20:35,990 --> 01:20:38,550 s với các dấu ngoặc vuông 1524 01:20:38,550 --> 01:20:41,500 có nghĩa là truy cập vào các ký tự thứ i của s. 1525 01:20:41,500 --> 01:20:45,650 Đó sẽ là một cái gì đó là thực sự quan trọng trong việc chuyển nhượng. 1526 01:20:45,650 --> 01:20:48,070 Thật không may, chúng ta sẽ phải dừng lại ở đây, 1527 01:20:48,070 --> 01:20:50,550 để Sebastian phần có thể đến trong, 1528 01:20:50,550 --> 01:20:53,980 nhưng tôi hạnh phúc khi ở lại sau bên ngoài và sẽ có bất cứ câu hỏi nào. 1529 01:20:53,980 --> 01:20:56,680 Vì vậy, cảm ơn các bạn đã đến đây. 1530 01:20:56,680 --> 01:20:59,730 Điều này bây giờ nên tải, xây dựng, chạy. 1531 01:21:01,570 --> 01:21:04,320 Chúng ta có thể nhập vào một chuỗi như "hello" 1532 01:21:06,570 --> 01:21:08,730 và nó in "QOX". 1533 01:21:08,730 --> 01:21:11,030 [Cười] 1534 01:21:11,030 --> 01:21:14,640 >> Vì vậy, không khá có, nhưng di chuyển, nhận được đối với những vòng! 1535 01:21:14,640 --> 01:21:18,640 Cảm ơn vì đã đến, và tôi sẽ được ở bên ngoài.