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