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