1 00:00:00,000 --> 00:00:12,510 2 00:00:12,510 --> 00:00:13,870 >> Rob: Lahat ng karapatan. 3 00:00:13,870 --> 00:00:16,770 Maligayang pagdating sa unang seksyon. 4 00:00:16,770 --> 00:00:17,480 Ako Rob. 5 00:00:17,480 --> 00:00:18,806 >> Joseph: Ako Joseph. 6 00:00:18,806 --> 00:00:21,540 >> Rob: Kaya makikita sumisid namin karapatan in 7 00:00:21,540 --> 00:00:23,420 Unang bagay na pag-uusapan ay ang Appliance. 8 00:00:23,420 --> 00:00:27,150 Kaya sana ay karamihan sa mga mayroon kang download nito. 9 00:00:27,150 --> 00:00:37,180 Ngunit maaari mong tingnan ang mga tagubilin sa cs50.net/appliance. 10 00:00:37,180 --> 00:00:38,430 Oh diyos, ngayon ako mahiyain. 11 00:00:38,430 --> 00:00:44,590 12 00:00:44,590 --> 00:00:45,430 Pa rin marinig ko ito. 13 00:00:45,430 --> 00:00:47,232 >> Joseph: Wow, ito tunog tulad ng ito ay disoriented. 14 00:00:47,232 --> 00:00:52,460 >> Rob: Kaya ang ilang mga tao ay na-pagkakaroon mga isyu sa ito, kaya huwag maghintay hanggang 15 00:00:52,460 --> 00:00:54,940 sa huling minuto ng problema nakatakda sa subukan at malutas ang Appliance at 16 00:00:54,940 --> 00:00:56,320 paghahanap ng mga out na ito ay hindi gumagana. 17 00:00:56,320 --> 00:00:59,010 >> Joseph: At kung ang isang bagay ay hindi gumagana at kailangan mo ng tulong, maaari kang pumunta sa 18 00:00:59,010 --> 00:01:03,390 cs50.net/discussion kung saan kami magkaroon ng isang forum kung saan mo 19 00:01:03,390 --> 00:01:04,110 maaaring mag-post ang iyong mga tanong. 20 00:01:04,110 --> 00:01:06,655 At susuriin namin ang mga ito sa kalaunan. 21 00:01:06,655 --> 00:01:07,490 >> Rob: Lahat ng karapatan. 22 00:01:07,490 --> 00:01:12,180 Kaya ito ay kung ano ang Appliance kamukha. 23 00:01:12,180 --> 00:01:15,480 Muli, ito lamang ay isang ganap na nakahiwalay tumakbo ang operating system sa loob 24 00:01:15,480 --> 00:01:19,440 kahit anong operating system mo ay tumatakbo sa iyong laptop. 25 00:01:19,440 --> 00:01:24,450 At ang mga pangunahing bagay na makakakuha ka gumagamit ay gedit. 26 00:01:24,450 --> 00:01:28,050 Kaya sana ito ay may mga naka- maging isang pamilyar na site. 27 00:01:28,050 --> 00:01:29,470 Ang terminal. 28 00:01:29,470 --> 00:01:31,890 >> At maaari ka ring magpatakbo ng Chrome sa loob ng Appliance. 29 00:01:31,890 --> 00:01:33,860 Nagkaroon ng isang pares ng mga tao sino na ang pag-internet 30 00:01:33,860 --> 00:01:35,390 hindi gumana sa Appliance. 31 00:01:35,390 --> 00:01:38,090 At ilan sa kanila ay ipinapalagay lamang na doon ay hindi dapat maging 32 00:01:38,090 --> 00:01:39,190 internet sa Appliance. 33 00:01:39,190 --> 00:01:40,750 Ngunit oo, doon ay dapat upang maging sa internet. 34 00:01:40,750 --> 00:01:44,000 35 00:01:44,000 --> 00:01:46,410 >> Kukunin ko ito sinasabi sa ngayon, ngunit hindi talaga ang ibig sabihin ng kahit ano. 36 00:01:46,410 --> 00:01:50,680 Kung ang internet ay hindi gumagana, ito ay kung ano ay may posibilidad mong kailangan 37 00:01:50,680 --> 00:01:52,180 upang tumakbo upang ayusin ito. 38 00:01:52,180 --> 00:01:55,602 Kung ikaw ay nakakaranas ng mga isyu sa internet, gawin ang hindi tandaan ito, mag-post lang ito sa 39 00:01:55,602 --> 00:01:57,560 Talakayin, at kami sabihin, patakbuhin iyon. 40 00:01:57,560 --> 00:02:00,420 Subalit ang internet ay dapat na gumagana. 41 00:02:00,420 --> 00:02:06,650 >> Kaya ang tanging iba pang mga bagay - oo, walang iba ay talagang may-katuturan. 42 00:02:06,650 --> 00:02:08,979 Pero gusto ko lang ituro na - 43 00:02:08,979 --> 00:02:13,290 makita sa ilalim na kanang sulok. 44 00:02:13,290 --> 00:02:16,530 Kaya bawat isa sa iyong Kasangkapan dapat magkaroon ng isang IP address. 45 00:02:16,530 --> 00:02:22,350 At sa paglaon ng semestre, ito IP address ay magiging mas may-katuturan kapag 46 00:02:22,350 --> 00:02:27,230 nagtatrabaho ka sa web p-set, dahil magagawa mong i-access ang 47 00:02:27,230 --> 00:02:32,310 website nagtatrabaho ka sa mula sa iyong lokal Chrome sa pamamagitan ng paggamit na ito IP address. 48 00:02:32,310 --> 00:02:35,400 >> Ngunit kung ano ang gusto kong gamitin ang IP address para sa - at hindi mo na kailangang gawin ito, ako 49 00:02:35,400 --> 00:02:37,460 nais lamang upang ituro ito out - 50 00:02:37,460 --> 00:02:39,540 ay dito. 51 00:02:39,540 --> 00:02:42,910 Kaya ito ay isang terminal na window sa aking Mac, ito ay wala sa 52 00:02:42,910 --> 00:02:44,580 Appliance sa lahat. 53 00:02:44,580 --> 00:02:47,190 At maaari kang tumingin up ano command na ito gumagana. 54 00:02:47,190 --> 00:02:51,855 Ngunit ako direktang pagpunta sa SSH sa aking Appliance. 55 00:02:51,855 --> 00:02:53,410 Hindi ko alam kung ano ang IP ay. 56 00:02:53,410 --> 00:02:54,300 >> Joseph: 168 - 57 00:02:54,300 --> 00:02:56,080 >> 168.224.1.0. 58 00:02:56,080 --> 00:02:59,950 >> Rob: Kaya minsan ako tapos na may ito, mag-log-in 59 00:02:59,950 --> 00:03:05,450 Ngayon, isa lamang, ito ay kapareho ng isang terminal na window sa loob ng aking Appliance. 60 00:03:05,450 --> 00:03:10,280 Kaya ako halos hindi kailanman aktwal na nagtrabaho mula sa loob ng Appliance mismo. 61 00:03:10,280 --> 00:03:12,550 Ako palaging lamang itong tumatakbo sa background nai-minimize 62 00:03:12,550 --> 00:03:15,890 at SSHed ito. 63 00:03:15,890 --> 00:03:24,270 >> Ang isyu sa ito ay hindi pupunta ka sa sa na madaling gamitin gedit 64 00:03:24,270 --> 00:03:25,600 direkta mula sa ito. 65 00:03:25,600 --> 00:03:31,500 Ngunit kung nais mong maging isang tunay na cool na Hacker, pagkatapos ay dapat kumuha ng gamit na sa isang 66 00:03:31,500 --> 00:03:34,220 command line text editor pa rin. 67 00:03:34,220 --> 00:03:39,620 Kaya Vim at Emacs at Nano, ang lahat ng mga naiiba ang mga kahalili. 68 00:03:39,620 --> 00:03:41,560 Nano may gawi na maging ang pinakamadaling. 69 00:03:41,560 --> 00:03:45,006 At sa tingin ko wala itong mga syntax-highlight. 70 00:03:45,006 --> 00:03:47,620 Oh, walang, ito lahat-lahat gumagana. 71 00:03:47,620 --> 00:03:49,870 Kaya maaari mong gamitin ang Nano, dahil na ang isa ay medyo madali. 72 00:03:49,870 --> 00:03:52,000 >> Ang makikita mo ang lahat ng mga utos sa ibaba. 73 00:03:52,000 --> 00:03:54,750 Ito maliit na simbolo karot. 74 00:03:54,750 --> 00:03:57,620 Kung hindi mo pa nakita ito bago, makakakuha ka marahil makita ito ng maraming ngayon. 75 00:03:57,620 --> 00:04:02,350 Ito karaniwan ay nangangahulugan na ang control karot, tulad ng ibabang kaliwa ng iyong keyboard 76 00:04:02,350 --> 00:04:04,130 kontrol ng character. 77 00:04:04,130 --> 00:04:07,260 Kaya dito ito ay nagsasabi sa akin pababa dito - 78 00:04:07,260 --> 00:04:08,710 oh, hindi ito maputol kung mag-zoom in ako 79 00:04:08,710 --> 00:04:11,040 Kaya Control, ang X ay paano Pupunta ako upang lumabas. 80 00:04:11,040 --> 00:04:14,710 At sinasabi nito ang maaari kong pindutin ang Y para sa Oo, para sa pag-save, N para sa Hindi. 81 00:04:14,710 --> 00:04:17,190 Kaya na Nano. 82 00:04:17,190 --> 00:04:22,860 >> Vim at Emacs ay may posibilidad na maging bahagyang higit pa kumplikado at napakalaki. 83 00:04:22,860 --> 00:04:28,840 Ngunit maaari kang makakuha ng gamit na dito, at pagkatapos ay magugustuhan mo ito. 84 00:04:28,840 --> 00:04:30,590 Kaya na lang iyon. 85 00:04:30,590 --> 00:04:31,720 >> Joseph: Hindi mo na kailangang gawin iyon. 86 00:04:31,720 --> 00:04:31,840 >> Rob: Oo. 87 00:04:31,840 --> 00:04:37,510 Ikaw ay malayang gamitin gedit para sa natitira sa semestre. 88 00:04:37,510 --> 00:04:40,630 Kaya ang anumang mga katanungan na kaugnay appliance-? 89 00:04:40,630 --> 00:04:42,820 O ang mayroon kang anumang saloobin sa ano pa Kailangang ma-pasalitang tungkol tungkol sa 90 00:04:42,820 --> 00:04:43,610 ang appliance? 91 00:04:43,610 --> 00:04:43,996 Oo. 92 00:04:43,996 --> 00:04:47,720 >> Tagapagsalita 1: Kapag SSHed ka sa iyong bagay, ay ang Crimson password? 93 00:04:47,720 --> 00:04:48,390 >> Rob: Oo. 94 00:04:48,390 --> 00:04:50,170 Ang password para sa halos lahat ng bagay sa Appliance ay pagpunta 95 00:04:50,170 --> 00:04:52,473 upang maging Crimson. 96 00:04:52,473 --> 00:04:56,517 >> Tagapagsalita 2: I-install tulad ng isang real IDE sa appliance, ito gumagana? 97 00:04:56,517 --> 00:04:59,200 98 00:04:59,200 --> 00:05:07,290 >> Rob: isipin ko mayroon Eclipse ang isang Fedora bersyon, kung saan, oo, 99 00:05:07,290 --> 00:05:08,420 maaari mong gawin iyon. 100 00:05:08,420 --> 00:05:10,875 Ito ay marahil hindi talaga sulit. 101 00:05:10,875 --> 00:05:11,742 >> Tagapagsalita 2: OK. 102 00:05:11,742 --> 00:05:15,924 Kaya marahil ito ay mas madali kung Nais kong gamitin Eclipse, gamitin lamang ang native na at 103 00:05:15,924 --> 00:05:17,646 pagkatapos ay i-upload sa - 104 00:05:17,646 --> 00:05:21,090 >> Rob: Oh, iyon ay marahil mas madali rin. 105 00:05:21,090 --> 00:05:24,046 Ngunit maaari kang makakuha ng ito gumagana sa loob ng Appliance. 106 00:05:24,046 --> 00:05:27,740 >> Joseph: At para sa mga camera, ang tanong ay, maaari mong i-install ng isa pang 107 00:05:27,740 --> 00:05:29,490 IDE sa loob ng Appliance? 108 00:05:29,490 --> 00:05:31,520 >> Rob: Eclipse sa pagiging isang Halimbawa ng isang IDE. 109 00:05:31,520 --> 00:05:34,800 110 00:05:34,800 --> 00:05:36,050 Anumang iba pang mga katanungan Appliance? 111 00:05:36,050 --> 00:05:38,250 112 00:05:38,250 --> 00:05:38,680 Ayos lang. 113 00:05:38,680 --> 00:05:44,920 >> Kaya ay lilipat kami ngayon sa sa command line mga bagay na may kaugnayan interface, kaya CLI. 114 00:05:44,920 --> 00:05:47,990 At muli, ako lamang ang pagpunta upang gumana sa dito, dahil ito ay kapareho ng 115 00:05:47,990 --> 00:05:52,780 nagtatrabaho sa loob ng isang terminal na window sa loob ng Appliance. 116 00:05:52,780 --> 00:05:54,160 Paano ay naghahanap ng font na? 117 00:05:54,160 --> 00:05:55,970 Sapat na malaki ba iyon? 118 00:05:55,970 --> 00:05:57,000 Ayos lang. 119 00:05:57,000 --> 00:06:02,480 >> Kaya may mga ng maraming mga command na makakapagsimula ka dapat medyo ginamit upang 120 00:06:02,480 --> 00:06:04,490 sa buong semestre. 121 00:06:04,490 --> 00:06:09,480 Ang dalawang malaki para sa pag-navigate ay ls, listahan ang mga file sa direktoryong ito; at 122 00:06:09,480 --> 00:06:11,380 cd, kaya palitan direktoryo. 123 00:06:11,380 --> 00:06:18,390 Kaya ang maaari kong baguhin sa desktop at pagkatapos ay isang napaka-karaniwang mga pattern ay cd sa isang 124 00:06:18,390 --> 00:06:22,550 direktoryo at agad ls ano sa direktoryo. 125 00:06:22,550 --> 00:06:25,540 >> Mga Tao din minsan ay hindi mapagtanto na pagkumpleto ng Tab ay isang bagay. 126 00:06:25,540 --> 00:06:28,370 Kaya tulad ng cd, vh, at pagkatapos ay pindutin ang Tab ko. 127 00:06:28,370 --> 00:06:30,790 Ako halos hindi kailanman type out ang buong bagay. 128 00:06:30,790 --> 00:06:32,920 At pagkatapos ay kung panatilihin ko ang pagpindot ng Tab muli, awtomatiko itong idedetalye 129 00:06:32,920 --> 00:06:33,670 magsimula ng listahan para sa akin. 130 00:06:33,670 --> 00:06:37,000 Kaya maaari kong cd vhosts, lokal host. 131 00:06:37,000 --> 00:06:39,880 At na lamang ang pagpunta sa - 132 00:06:39,880 --> 00:06:43,380 kung sakaling hindi mo pa naririnig ang term bago, na direktoryo ay isa lamang salita 133 00:06:43,380 --> 00:06:45,170 para sa folder. 134 00:06:45,170 --> 00:06:49,930 Kaya ngayon kung makita mo - 135 00:06:49,930 --> 00:06:51,810 ni dalhin na sa tuktok ipaalam. 136 00:06:51,810 --> 00:06:55,380 >> Kaya ngayon kung nakikita mo sa mga panaklong, mo tingnan ang maliit na bantas, slash, vhost, 137 00:06:55,380 --> 00:06:56,810 iwa, lokal host. 138 00:06:56,810 --> 00:07:00,040 Kaya ang bantas, na tumutukoy sa aking home directory. 139 00:07:00,040 --> 00:07:03,090 Ito ay isang direktoryo ikaw ay in kapag SSH mo in 140 00:07:03,090 --> 00:07:05,660 Ito ay ang direktoryo ikaw ay nasa kapag buksan up ka ng isang terminal. 141 00:07:05,660 --> 00:07:08,650 Ito ay kung saan nagsimula ka. 142 00:07:08,650 --> 00:07:13,110 At kaya ako sa loob ng aking home directory, at ako ay nasa loob ng vhost 143 00:07:13,110 --> 00:07:14,475 direktoryo sa loob ng aking home directory. 144 00:07:14,475 --> 00:07:19,670 At pagkatapos ay ako sa loob ng lokal na mag-host na direktoryo sa loob ng iyon. 145 00:07:19,670 --> 00:07:23,740 >> Kaya ilang iba pang mga kapaki-pakinabang na bagay sa cd - 146 00:07:23,740 --> 00:07:29,220 o well, sa pangkalahatan, kaya dot lagi ay tumutukoy sa kasalukuyang direktoryo. 147 00:07:29,220 --> 00:07:31,130 Cd, tuldok ay isang medyo walang kapararakan command. 148 00:07:31,130 --> 00:07:35,150 Ngunit na pagbabago sa kasalukuyang direktoryo. 149 00:07:35,150 --> 00:07:38,230 Ang isang mas kapaki-pakinabang ang isa sa mga tuntunin ng cd ay tuldok, tuldok, na 150 00:07:38,230 --> 00:07:40,220 pumunta up ng isa direktoryo lamang. 151 00:07:40,220 --> 00:07:43,360 >> At tandaan na ang mga - 152 00:07:43,360 --> 00:07:48,610 Gusto kong sabihin mga alias, ngunit ang mga mga simbolo, tuldok, at tuldok, tuldok, mga trabaho 153 00:07:48,610 --> 00:07:51,740 para sa halos anumang utos ikaw ay pagpunta sa maisip ng pagtakbo. 154 00:07:51,740 --> 00:07:55,370 Kaya tulad ng cd Marahil kung saan ay gamit ang pinaka, ngunit ang mga ito ay hindi 155 00:07:55,370 --> 00:07:56,780 bagay na naiintindihan ng cd lamang. 156 00:07:56,780 --> 00:07:59,980 Ito ay halos isang bagay ang iyong buong Naiintindihan ng linya ng command. 157 00:07:59,980 --> 00:08:01,932 Ang isang pulutong ng mga programa maunawaan tuldok at tuldok, dot. 158 00:08:01,932 --> 00:08:04,830 159 00:08:04,830 --> 00:08:09,090 >> Kaya ang iba pang mga kapaki-pakinabang na mga bago - cd, gitling. 160 00:08:09,090 --> 00:08:13,460 Kaya na ay pagpunta upang dalhin ako sa huling directory na iyon ako ay in 161 00:08:13,460 --> 00:08:15,980 Kaya minsan kukunin ko na gawin ang isang bagay tulad ng, oh, ako nagtatrabaho sa dito. 162 00:08:15,980 --> 00:08:21,110 At nakikita ko ang ilang mga error sa isang bagay, at Makikita pumunta ako siyasatin ito sa pamamagitan ng pagpunta sa 163 00:08:21,110 --> 00:08:24,020 ang ilang mga random na direktoryo sa isang lugar. 164 00:08:24,020 --> 00:08:25,260 At hindi ko alam kung idedetalye ito ipaalam sa akin sa doon. 165 00:08:25,260 --> 00:08:25,720 Nasain Ito. 166 00:08:25,720 --> 00:08:27,615 Kaya pagkatapos ay gagawin ko ang kahit anong gusto kong sa direktoryong ito. 167 00:08:27,615 --> 00:08:28,950 Blah, blah, blah, blah, blah. 168 00:08:28,950 --> 00:08:31,770 At ako ay tulad ng, ang lahat ng karapatan, gusto kong upang bumalik sa kung saan ako ay. 169 00:08:31,770 --> 00:08:34,490 cd, gitling, at pinagsasama-ito sa akin kanan pabalik. 170 00:08:34,490 --> 00:08:39,970 >> Kaya ako pupunta upang ihagis ng maraming ng mga sa iyo ngayon. 171 00:08:39,970 --> 00:08:43,730 Hindi ko inaasahan mong kabisaduhin lahat ng mga ito. 172 00:08:43,730 --> 00:08:46,170 Uri ng Ito ay kilala lamang na sila umiiral. 173 00:08:46,170 --> 00:08:48,690 At pagkatapos ay mamaya sa kapag ikaw ay tulad, Hmm, gusto kong bumalik sa 174 00:08:48,690 --> 00:08:51,870 ang directory na iyon ako ay isa lamang sa, oh, maghintay, ang isang bagay tulad na umiiral na. 175 00:08:51,870 --> 00:08:53,980 Hindi mo na kailangang i-type lamang sa muli ang buong direktoryo. 176 00:08:53,980 --> 00:08:56,090 >> Joseph: At sa huli habilin mo lamang gamitin nang paulit-ulit sa kanila, at 177 00:08:56,090 --> 00:08:57,830 Makikita itong maging kalamnan memorya. 178 00:08:57,830 --> 00:09:00,090 >> Rob: Oo. 179 00:09:00,090 --> 00:09:02,930 Kaya paano ko sinabi bago, na bantas ay ang iyong home directory. 180 00:09:02,930 --> 00:09:04,820 Kaya maaari kong cd, bantas. 181 00:09:04,820 --> 00:09:07,280 Ngunit hindi ko kahit na mayroon sa gawin na kung ko lang - 182 00:09:07,280 --> 00:09:09,760 Kukunin ko bumalik sa direktoryo upang hindi ito isang walang tinutungo halimbawa. 183 00:09:09,760 --> 00:09:14,560 Ngunit kung lang gagawin ko cd, na rin ang katulad ng, pumunta sa aking home directory. 184 00:09:14,560 --> 00:09:18,380 185 00:09:18,380 --> 00:09:19,880 Gagawin ko Command, K. 186 00:09:19,880 --> 00:09:24,015 >> Joseph: Maaari mo ring i-type ang malinaw, ang salita, at dapat itong i-clear ito. 187 00:09:24,015 --> 00:09:28,650 >> Rob: At sa tingin din ako Control, Gagawin nito sa din L. 188 00:09:28,650 --> 00:09:29,690 Kaya maraming iba't ibang paraan. 189 00:09:29,690 --> 00:09:34,070 Sa tingin ko mayroong ilang mga pagkakaiba sa kung saan malinaw at Control, L habilin lamang 190 00:09:34,070 --> 00:09:37,280 itulak talaga ito sa tuktok at Maaari pa rin ba akong mag-scroll pabalik. 191 00:09:37,280 --> 00:09:40,580 Command, literal destroys K ang lahat ng bagay, at ikaw 192 00:09:40,580 --> 00:09:42,960 Hindi maaaring mag-scroll back up. 193 00:09:42,960 --> 00:09:45,530 Sa pinakadulo hindi bababa sa, na kung paano ito gumagana sa iTerm2. 194 00:09:45,530 --> 00:09:48,690 Hindi ko alam kung paano iba pang mga bagay - 195 00:09:48,690 --> 00:09:49,360 oh. 196 00:09:49,360 --> 00:09:55,450 >> Sa SSHing, kaya kung ikaw ay sa Windows, ka pagpunta sa may upang i-download magmasilya 197 00:09:55,450 --> 00:10:02,360 upang SSH dahil Windows ay hindi mayroon tulad ng isang tool built-in SSH. 198 00:10:02,360 --> 00:10:06,150 Mula sa mga Mac, maaari mo lamang SSH direkta mula sa isang terminal na window. 199 00:10:06,150 --> 00:10:08,755 200 00:10:08,755 --> 00:10:09,690 OK. 201 00:10:09,690 --> 00:10:11,840 Mga Katanungan? 202 00:10:11,840 --> 00:10:19,260 >> Sa ls, kaya ng isang bagay upang masanay sa karamihan ng mga utos ay - 203 00:10:19,260 --> 00:10:20,060 mahusay, mangyari lamang na makikita kong gawin isa. 204 00:10:20,060 --> 00:10:21,310 Ls, gitling, l. 205 00:10:21,310 --> 00:10:26,330 Kaya gitling, l ay kung ano kami ay pagpunta upang tawagan ang isang flag sa ls. 206 00:10:26,330 --> 00:10:30,770 At marami sa mga ito ang mga utos ay may flags na maaari mong pumasa sa kanila. 207 00:10:30,770 --> 00:10:35,020 Kaya sa kasong ito, gitling, l ay isang flag na nagsasabi ito upang bigyan ako ng isang buong 208 00:10:35,020 --> 00:10:37,850 listahan ng lahat ng mga impormasyon ng mga file na ito. 209 00:10:37,850 --> 00:10:44,790 >> Kaya makikita natin dito na desktop ay baguhin sa Hulyo 30 sa 00:54. 210 00:10:44,790 --> 00:10:47,160 Downloads ay nabago sa Septiyembre 6. 211 00:10:47,160 --> 00:10:52,350 Ito ang mga kasalukuyang laki at byte ng mga direktoryo. 212 00:10:52,350 --> 00:10:54,412 Wala kang upang maunawaan lahat ng ito. 213 00:10:54,412 --> 00:11:00,380 >> Bagay-bagay na ito sa kaliwa, mga drwx ni, na ay magiging magkano ang mas may-katuturang 214 00:11:00,380 --> 00:11:02,290 mamaya kapag mayroon kang humarap sa - 215 00:11:02,290 --> 00:11:05,900 na may gagawin sa kung sino ang may mga pahintulot upang tumingin sa mga file na ito. 216 00:11:05,900 --> 00:11:09,880 At kaya kung ikaw ay hindi lamang ang gumagamit sa computer na ito, gusto mong ma- 217 00:11:09,880 --> 00:11:13,345 sabihin nating, OK, ang dapat kong maging ang isa lamang pinapayagan upang tumingin sa ang file na ito o ako ay 218 00:11:13,345 --> 00:11:14,870 pagpunta upang payagan ang lahat upang tumingin sa ang file na ito. 219 00:11:14,870 --> 00:11:17,710 Kaya ibang tao sa aking computer Maaari tumingin sa ang file na ito. 220 00:11:17,710 --> 00:11:22,190 221 00:11:22,190 --> 00:11:25,600 Hindi ko kahit na alam kung ano ito - ano ang ginagawa ito? 222 00:11:25,600 --> 00:11:26,840 >> Joseph: Hindi ako masyadong sigurado, talaga. 223 00:11:26,840 --> 00:11:27,705 >> Rob: Walang ideya. 224 00:11:27,705 --> 00:11:30,530 >> Joseph: Ngunit kung hindi mo alam, may isang kapaki-pakinabang na command na maaari mong gamitin 225 00:11:30,530 --> 00:11:31,680 upang sabihin sa iyo kung ano ang ibig sabihin ng output. 226 00:11:31,680 --> 00:11:33,780 At kung nagta-type ka sa tao bago ang command - 227 00:11:33,780 --> 00:11:35,000 kaya M-A-N. Rob: Man. 228 00:11:35,000 --> 00:11:37,690 Kaya ang tao ay isa pa ito ay isang kapaki-pakinabang. 229 00:11:37,690 --> 00:11:39,540 At ang tao, ls. 230 00:11:39,540 --> 00:11:47,320 Kaya ang mga pahina ng tao, mayroon silang parehong utos na kayo ay pagpunta sa gumagamit 231 00:11:47,320 --> 00:11:50,330 sa command line, at magkaroon din sila mga function na magiging may-katuturang 232 00:11:50,330 --> 00:11:52,530 may C. Kaya maaari mong tao - 233 00:11:52,530 --> 00:11:53,720 at binabalewala ko 3. 234 00:11:53,720 --> 00:11:57,410 Ngunit tao 3 printf ay pagpunta sa magdala up ang C bersyon ng printf. 235 00:11:57,410 --> 00:12:01,030 Ngunit kung lang gagawin ko tao printf, ito ay pagpunta upang ilabas ang command printf 236 00:12:01,030 --> 00:12:03,540 na nagaganap sa sa linya ng command. 237 00:12:03,540 --> 00:12:05,730 >> Kaya ang tao, ls. 238 00:12:05,730 --> 00:12:09,030 Ang mga pahina ng tao ay maaaring maging kaakit-akit napakalaki. 239 00:12:09,030 --> 00:12:12,770 Dito, bagaman, makikita mo ang listahan na ito ng lahat ng mga flag na ls 240 00:12:12,770 --> 00:12:14,300 naiintindihan. 241 00:12:14,300 --> 00:12:17,876 Kaya kung tayo pupunta Dash, l, at - 242 00:12:17,876 --> 00:12:19,300 Lamang ako ng pagpunta upang ihagis ito sa iyo. 243 00:12:19,300 --> 00:12:23,050 Ngunit upang maghanap, gusto mo sa unang pindutin ang pinag-uusapan 244 00:12:23,050 --> 00:12:24,780 mark o pindutan ng slash. 245 00:12:24,780 --> 00:12:26,040 Kaya iwa. 246 00:12:26,040 --> 00:12:29,000 >> At pagkatapos ay maaari kong maghanap para sa kahit anong gusto ko. 247 00:12:29,000 --> 00:12:33,780 Kaya Pupunta ako sa iwa para gitling, l. 248 00:12:33,780 --> 00:12:35,110 At doon iyon. 249 00:12:35,110 --> 00:12:37,450 Kaya gamitin ang isang mahaba format listahan. 250 00:12:37,450 --> 00:12:40,060 Hindi iyan makakatulong sa akin malaman kung anong na partikular na hanay nilalayong, ngunit ko 251 00:12:40,060 --> 00:12:44,480 ipinapalagay sa isang lugar sa dito Gusto ito ipaliwanag iyon. 252 00:12:44,480 --> 00:12:48,740 Kaya gamitin ang mga pahina tao para sa anumang utos na hindi mo agad maintindihan. 253 00:12:48,740 --> 00:12:51,080 >> Ako ay medyo sigurado maaari kang kahit na ang tao, ang tao. 254 00:12:51,080 --> 00:12:53,070 Ang isang interface sa online reference manual. 255 00:12:53,070 --> 00:12:57,700 256 00:12:57,700 --> 00:13:03,570 Oh, ang huling isa na siguro nang bahagya katuturan ay kung ls, gitling, isang. 257 00:13:03,570 --> 00:13:08,490 Kaya kung mapansin lang gagawin ko ls, Nakukuha ko mga limang mga file. 258 00:13:08,490 --> 00:13:11,480 Kung gagawin ko ls, gitling, isang, ako nakakakuha ng maraming higit pang mga file. 259 00:13:11,480 --> 00:13:15,350 Kaya ang bagay sa mga karaniwang sa pagitan ng lahat ng mga mga bagong file ay ang tuldok sa simula pa. 260 00:13:15,350 --> 00:13:21,220 >> Kaya ang convention ay na ang isang file na ay nagsisimula sa isang tuldok ay nakatago. 261 00:13:21,220 --> 00:13:25,300 Kaya hindi mo nais na makita ang file na iyon, mo ayaw na mayroon itong gulo may 262 00:13:25,300 --> 00:13:26,750 ang iyong listahan ng direktoryo. 263 00:13:26,750 --> 00:13:30,020 Ito ay lamang kapag tahasan mong itanong, lahat ng karapatan, ls, gitling, isang, ipakita ninyo sa akin. 264 00:13:30,020 --> 00:13:32,830 Ang isang stand para sa lahat ng mga file, kabilang ang mga nakatagong mga bago. 265 00:13:32,830 --> 00:13:37,260 266 00:13:37,260 --> 00:13:39,270 Kaya sa ilang ibang mga utos. 267 00:13:39,270 --> 00:13:41,323 Oh, mga tanong sa puntong iyon? 268 00:13:41,323 --> 00:13:41,746 Oo. 269 00:13:41,746 --> 00:13:45,914 >> Tagapagsalita 3: Kapag ginawa mo ls, a, kung ano ang mga tuldok, tuldok? 270 00:13:45,914 --> 00:13:46,870 >> Rob: Oh. 271 00:13:46,870 --> 00:13:48,780 Kaya ito ay kung ano ang pinag-uusapan ng ako tungkol sa. 272 00:13:48,780 --> 00:13:50,890 Ito ay ang parehong bagay kung saan Maaari ko ng cd, tuldok, tuldok. 273 00:13:50,890 --> 00:13:56,790 Kaya technically, tuldok at tuldok, tuldok ay mga file na mayroon sa bawat solong 274 00:13:56,790 --> 00:14:03,620 direktoryo kung saan ang tuldok na file ay tumutukoy sa kasalukuyang direktoryo. 275 00:14:03,620 --> 00:14:06,930 Kaya kung cd ko, tuldok, lang ako pupunta upang manatili sa direktoryo. 276 00:14:06,930 --> 00:14:10,870 At tuldok, tuldok palaging ay tumutukoy sa nakaraang direktoryo ng isang level up. 277 00:14:10,870 --> 00:14:18,200 Kaya kung pumunta ako sa logs at ls, gitling, al, Kukunin ko makita ang tuldok, tuldok. cd sa dot, dot 278 00:14:18,200 --> 00:14:20,390 Dinadala sa akin sa nakaraang direktoryo. 279 00:14:20,390 --> 00:14:24,530 280 00:14:24,530 --> 00:14:25,780 Oo. 281 00:14:25,780 --> 00:14:27,160 282 00:14:27,160 --> 00:14:28,110 OK. 283 00:14:28,110 --> 00:14:33,070 >> Kaya isa pang medyo mahalaga utos ay rm. 284 00:14:33,070 --> 00:14:35,650 Kaya ang ginagawa namin sa pagpunta gamitin upang alisin. 285 00:14:35,650 --> 00:14:38,100 At ipaalam sa akin aktwal na gawin ang isa pang utos muna. 286 00:14:38,100 --> 00:14:39,610 Kaya mkdir. 287 00:14:39,610 --> 00:14:42,770 Mkdir ay kung paano maaari mong lumikha ng mga direktoryo. 288 00:14:42,770 --> 00:14:47,530 At kukunin ko na lumikha ng pansamantalang direktoryo at pumunta sa na pansamantalang direktoryo. 289 00:14:47,530 --> 00:14:49,590 At tulad ng inaasahan, ito ay walang laman. 290 00:14:49,590 --> 00:14:53,680 Ngunit kung ako ls, gitling, isang, mayroon pa rin ba akong tuldok at tuldok, tuldok, dahil tuldok ay tumutukoy sa 291 00:14:53,680 --> 00:14:54,480 ang kasalukuyang direktoryo. 292 00:14:54,480 --> 00:14:56,170 At tuldok, tuldok ay tumutukoy sa nakaraang direktoryo. 293 00:14:56,170 --> 00:14:58,700 At iyon ay palaging umiiral ang hindi mahalaga sa direktoryo ikaw ay in 294 00:14:58,700 --> 00:15:01,910 295 00:15:01,910 --> 00:15:09,010 >> At ito ay isang ganap na hindi kinakailangang utos, ngunit ugnay. 296 00:15:09,010 --> 00:15:11,880 Lang ako sa paggamit nito, dahil ito ay isang madaling paraan upang lumikha ng mga file. 297 00:15:11,880 --> 00:15:16,180 Kaya pindutin a, b pindutin, pindutin c lamang pagpunta sa lumikha ng tatlong mga file na tinatawag na, 298 00:15:16,180 --> 00:15:17,845 b, at c na ganap na walang laman. 299 00:15:17,845 --> 00:15:20,450 300 00:15:20,450 --> 00:15:24,980 Kaya ang punto ng akin paglikha ng mga nasa unang lugar ay kaya lang na rm ay 301 00:15:24,980 --> 00:15:26,250 kung paano namin maaaring alisin ang mga ito. 302 00:15:26,250 --> 00:15:27,850 Kaya rm, isang. 303 00:15:27,850 --> 00:15:30,960 Ito ay pagpunta sa hilingin sa akin, alisin regular na walang laman ang isang file? 304 00:15:30,960 --> 00:15:33,170 At pagkatapos ay Sasabihin kong Oo. 305 00:15:33,170 --> 00:15:39,090 >> Kaya kung alam ko para sigurado na gusto kong burahin ang file na iyon nang hindi na kinakailangang maging 306 00:15:39,090 --> 00:15:44,500 sinenyasan, alisin regular na file na walang laman?, pagkatapos rm, gitling, f ay magiging ang 307 00:15:44,500 --> 00:15:48,230 bandila na nagsasabing, puwersahin ang pag-alis nang walang kahit pagdikta sa akin, oh, ikaw ay 308 00:15:48,230 --> 00:15:49,710 bang gusto mong tanggalin ang file? 309 00:15:49,710 --> 00:15:50,810 Oo, ako sigurado. 310 00:15:50,810 --> 00:15:56,050 Kaya rm, gitling, fb habilin lamang gawin ito nang walang pagtatanong. 311 00:15:56,050 --> 00:15:57,950 >> Kaya hayaan ang gumawa ng ilang higit pang mga directory. 312 00:15:57,950 --> 00:16:03,670 mkdir, tmp2, cd, tmp2, pindutin a, b-ugnay. 313 00:16:03,670 --> 00:16:04,300 OK. 314 00:16:04,300 --> 00:16:08,180 Kaya ngayon gusto kong alisin tmp2 bilang isang direktoryo. 315 00:16:08,180 --> 00:16:10,316 Kaya rm tmp2. 316 00:16:10,316 --> 00:16:12,920 Hindi mo maaalis tmp2, ito ay isang directory. 317 00:16:12,920 --> 00:16:21,370 Kaya ang isyu dito ay ang rm hindi agad gumana sa mga direktoryo. 318 00:16:21,370 --> 00:16:26,530 Ito ay nilalayong lamang para sa mga file tulad ng hindi-directory ng mga file. 319 00:16:26,530 --> 00:16:30,800 >> At kaya kung ano ang maaari naming gawin dito ay rm, gitling, r. 320 00:16:30,800 --> 00:16:35,160 Iyon ang ibig sabihin ay recursively, na maaari hindi nangangahulugan na ang anumang bagay sa iyo pa. 321 00:16:35,160 --> 00:16:38,280 Ngunit kapag nakarating ka na sa recursion, Makikita ito ibig sabihin ng higit pa. 322 00:16:38,280 --> 00:16:43,540 Kaya rm, gitling, r, tmp2 ay pagpunta sa recursively pumunta sa directory na iyon. 323 00:16:43,540 --> 00:16:45,540 Kaya bumaba sa direktoryo tmp2? 324 00:16:45,540 --> 00:16:47,330 Oo, ni pumunta sa na ipaalam. 325 00:16:47,330 --> 00:16:49,360 Gusto naming alisin ang tmp2 / a? 326 00:16:49,360 --> 00:16:49,745 Oo. 327 00:16:49,745 --> 00:16:51,830 Gusto naming alisin ang tmp2 / b? 328 00:16:51,830 --> 00:16:52,840 Oo. 329 00:16:52,840 --> 00:16:55,170 Ngayon nais naming alisin ang tmp2 direktoryo? 330 00:16:55,170 --> 00:16:56,040 Oo. 331 00:16:56,040 --> 00:16:58,410 At kaya ngayon sa direktoryo at lahat ng bagay sa loob 332 00:16:58,410 --> 00:16:59,660 ng ito ay inalis. 333 00:16:59,660 --> 00:17:02,850 334 00:17:02,850 --> 00:17:07,250 >> May technically isang command rmdir na maaari mong gamitin upang alisin 335 00:17:07,250 --> 00:17:11,670 mga direktoryo, ngunit gawa lamang ito sa gayon pa man laman ang directory. 336 00:17:11,670 --> 00:17:14,109 At upang makita na, sabihin lamang gawin muli mkdir, tmp2. 337 00:17:14,109 --> 00:17:15,940 Tmp2, pindutin ang isang. 338 00:17:15,940 --> 00:17:16,800 OK. 339 00:17:16,800 --> 00:17:22,770 Kaya't kung sinusubukan kong alisin dirtmp2, ipapakita ito sabihin, hindi walang laman na direktoryo. 340 00:17:22,770 --> 00:17:29,540 Kaya ako halos hindi kailanman gamitin ang pag-alis dir utos pa rin, dahil rm, gitling, 341 00:17:29,540 --> 00:17:35,140 r gagana sa walang laman na mga direktoryo at di-walang laman ang mga directory. 342 00:17:35,140 --> 00:17:37,760 >> At din, kung hindi ko nais na magkaroon sa pumunta sa pamamagitan ng na ang buong proseso ng 343 00:17:37,760 --> 00:17:40,720 pababang papunta sa direktoryo at pag-aalis ng bawat indibidwal na file, rm, 344 00:17:40,720 --> 00:17:44,190 gitling, rf, tmp2. 345 00:17:44,190 --> 00:17:45,670 At ngayon ito ay nawala. 346 00:17:45,670 --> 00:17:51,220 >> Isang bagay upang maging maingat tungkol ay rm, gitling, rf. 347 00:17:51,220 --> 00:17:53,660 At ito scares sa akin na kahit na i-type ito, dahil kung ako sinasadyang 348 00:17:53,660 --> 00:17:55,090 pindutin ang Enter o isang bagay. 349 00:17:55,090 --> 00:18:02,735 Kaya rm, gitling, rf, bantas gagawin, nang walang pagdikta sa akin, ang f ay hindi prompt ng 350 00:18:02,735 --> 00:18:05,670 sa akin, awtomatiko itong alisin sa lahat nang aking home directory at 351 00:18:05,670 --> 00:18:06,780 ang lahat ng bagay sa loob nito. 352 00:18:06,780 --> 00:18:11,460 Kaya maaari mong isipin na isang bobo na gawin. 353 00:18:11,460 --> 00:18:12,830 At na rin, ito ay. 354 00:18:12,830 --> 00:18:18,600 >> Ngunit maaari itong mangyari sa lalong madaling sa pamamagitan ng aksidente kung, sabihin nating, Nais kong alisin 355 00:18:18,600 --> 00:18:21,640 aking slash, direktoryo ng vhost. 356 00:18:21,640 --> 00:18:26,610 At lamang sa mabilis mag-type, Ko sinasadyang gawin ito. 357 00:18:26,610 --> 00:18:31,880 Iyon ay mag-aalis recursively parehong aking home directory at ang direktoryo vhost 358 00:18:31,880 --> 00:18:35,450 sa ganitong partikular na direktoryo na lang ang mangyayari sa mga hindi umiiral ngayon. 359 00:18:35,450 --> 00:18:39,520 Ngunit ito pa rin alisin sa lahat nang aking home directory. 360 00:18:39,520 --> 00:18:43,090 Hindi bababa sa pamamagitan ng hindi pagkakaroon ng isang f, Gusto ito unang-prompt sa akin. 361 00:18:43,090 --> 00:18:45,670 At gusto ko na tulad ng, oh, hindi, ako ayaw upang gawin iyon. 362 00:18:45,670 --> 00:18:50,570 Ngunit ang mga tao, iwa, kabilang ang sa akin ay may posibilidad na makakuha ng papunta sa 363 00:18:50,570 --> 00:18:53,090 ugali ng laging rf-ING. 364 00:18:53,090 --> 00:18:58,713 Kahit regular na file na maaari ko lang ang rm, c, may posibilidad na rm lamang, gitling, rf, c ko. 365 00:18:58,713 --> 00:19:01,330 Lamang mag-ingat kapag ikaw ay rf-ING. 366 00:19:01,330 --> 00:19:03,160 >> Tagapagsalita 4: Ano ang ibig C gawin? 367 00:19:03,160 --> 00:19:11,570 >> Rob: C ay ako ng pakikipag-usap tungkol sa na C file sa direktoryong ito, na rm, c. 368 00:19:11,570 --> 00:19:15,730 >> Joseph: At higit dangerously, kung gumagamit ka ng isang bituin, ito ay tumutukoy sa lahat ng bagay sa 369 00:19:15,730 --> 00:19:16,450 direktoryo. 370 00:19:16,450 --> 00:19:20,040 Kaya kung ano ang karaniwang ko ay may posibilidad na gawin ay habilin ko pumunta sa isang direktoryo at gusto kong 371 00:19:20,040 --> 00:19:21,510 alisin ang lahat ng mga file sa doon. 372 00:19:21,510 --> 00:19:23,640 Kaya rm, gitling, rf, bituin. 373 00:19:23,640 --> 00:19:25,700 >> Rob: Oo. 374 00:19:25,700 --> 00:19:26,780 Rm, gitling, rf, bituin. 375 00:19:26,780 --> 00:19:29,530 >> Joseph: At kung ikaw ay hindi maingat ano direktoryo ikaw ay nasa - 376 00:19:29,530 --> 00:19:33,340 Ako ay wala sa Temp, ngunit ako ay aksidenteng sa aking home directory, 377 00:19:33,340 --> 00:19:35,450 pagkatapos ay kukunin ko na alisin ang lahat ng bagay sa aking home directory. 378 00:19:35,450 --> 00:19:39,095 At talagang ako tapos na bago, at Sa tingin ko nagawa mo na ito bago o 379 00:19:39,095 --> 00:19:40,640 Jay ay tapos na bago. 380 00:19:40,640 --> 00:19:42,480 >> Rob: aksidenteng ko na inalis - 381 00:19:42,480 --> 00:19:44,480 kaya huwag pansinin utos na para sa isang bit. 382 00:19:44,480 --> 00:19:45,800 >> Joseph: Hindi masaya. 383 00:19:45,800 --> 00:19:52,650 >> Rob: Kaya sa slash bin direktoryo ay isang tungkos ng mga binary file kung saan may idedetalye 384 00:19:52,650 --> 00:19:54,840 maging pamilyar na mga bago tulad ng kumalatong. 385 00:19:54,840 --> 00:20:00,740 Well, kumalatong at talaga lahat ng mga bagay na ako nagpapatakbo sa utos 386 00:20:00,740 --> 00:20:02,060 linya ay nasa ito slash bin direktoryo. 387 00:20:02,060 --> 00:20:03,090 >> Joseph: Tulad ng ls ay nasa dito. 388 00:20:03,090 --> 00:20:06,285 >> Rob: Kaya dot, iwa, ls gusto ilista ang direktoryong ito. 389 00:20:06,285 --> 00:20:08,120 >> Joseph: Rm ay nasa direktoryong ito rin. 390 00:20:08,120 --> 00:20:12,770 >> Rob: aksidenteng ko rm, rf-ed bin, kung saan inalis ang anumang utos ng dati ko 391 00:20:12,770 --> 00:20:14,380 marahil kailanman nais na. 392 00:20:14,380 --> 00:20:18,085 Aling pagkatapos ay muling i-install ko lamang ng isang bagong Appliance sa puntong iyon. 393 00:20:18,085 --> 00:20:20,170 >> Joseph: Kaya maging maingat kapag mong gamitin ang command na ito. 394 00:20:20,170 --> 00:20:21,120 >> Madla: [hindi marinig]? 395 00:20:21,120 --> 00:20:22,640 >> Rob: Oo. 396 00:20:22,640 --> 00:20:24,135 Iyon ay din ng isang masamang ugali upang makakuha ng sa. 397 00:20:24,135 --> 00:20:27,920 398 00:20:27,920 --> 00:20:30,170 Kung napansin mo, ako ngayon - 399 00:20:30,170 --> 00:20:33,580 well, hindi ka maaaring mapansin, ngunit ang aking mga pag-zoom-in siguro maaari. 400 00:20:33,580 --> 00:20:35,360 Kaya ako ngayon na root @ appliance. 401 00:20:35,360 --> 00:20:39,790 Kaya jharvard ay ang user na gusto namin mong palaging ginagamit. 402 00:20:39,790 --> 00:20:43,820 Root ay ang user na may pahintulot gawin talagang kahit ano. 403 00:20:43,820 --> 00:20:50,260 >> Kaya't mapapansin kapag ako jharvard, kung sinusubukan kong cd - 404 00:20:50,260 --> 00:20:52,461 kung ano ang isang direktoryo na? 405 00:20:52,461 --> 00:20:53,980 Oh, ugat ay isang magandang halimbawa. 406 00:20:53,980 --> 00:20:54,950 Kaya cd, ugat. 407 00:20:54,950 --> 00:20:56,030 Pagpapahintulot ay hindi pinayagan. 408 00:20:56,030 --> 00:21:00,060 Dahil kung tinitingnan namin ang listahan na ito - 409 00:21:00,060 --> 00:21:02,410 at muli, hindi mo kailangang i- ganap na maunawaan ito. 410 00:21:02,410 --> 00:21:09,210 Ngunit ang tatlong gitling ang sinasabi ng na hindi hayaan ang anumang iba pang 411 00:21:09,210 --> 00:21:11,120 gumagamit sa direktoryong ito. 412 00:21:11,120 --> 00:21:14,540 At ang mga direktoryo ang mangyayari sa pag-aari ng ugat ng user. 413 00:21:14,540 --> 00:21:20,310 >> Kaya ang katunayan na ako jharvard at walang isa sino ay hindi ugat ang pinapayagan sa 414 00:21:20,310 --> 00:21:23,490 direktoryong ito, na nangangahulugan na ako pagpunta upang makakuha ng tinanggihan ng pahintulot kapag ako 415 00:21:23,490 --> 00:21:25,160 subukan upang cd ito. 416 00:21:25,160 --> 00:21:31,370 Kaya kapag ako ay ugat, mayroon akong pahintulot na i- gawin walang pasubali anumang bagay, kabilang ang 417 00:21:31,370 --> 00:21:34,660 tanggalin ang mahahalagang mga file sa Appliance at 418 00:21:34,660 --> 00:21:36,640 sirain ang buong bagay. 419 00:21:36,640 --> 00:21:41,240 >> Kaya ito ay isang masamang ugali upang makakuha ng sa lamang gala iyong 420 00:21:41,240 --> 00:21:43,650 operating system bilang root. 421 00:21:43,650 --> 00:21:46,520 Ito gagawin ko pa rin. 422 00:21:46,520 --> 00:21:48,710 Mga Katanungan? 423 00:21:48,710 --> 00:21:52,230 At kukunin ko na lumabas ugat, manatili bilang jharvard. 424 00:21:52,230 --> 00:21:54,510 OK. 425 00:21:54,510 --> 00:21:55,820 >> Higit pang may-katuturang mga utos. 426 00:21:55,820 --> 00:22:03,975 Kaya pagpunta pabalik sa aming Temp, ang mv command na ang ibig sabihin ay ilipat. 427 00:22:03,975 --> 00:22:05,450 Maaari mong ilipat ang isang. 428 00:22:05,450 --> 00:22:07,610 Ngayon gusto naming tumawag ito b, kaya ngayon ang tawag dito b. 429 00:22:07,610 --> 00:22:10,650 O siguro ay gusto naming ilipat b up ng isa direktoryo. 430 00:22:10,650 --> 00:22:12,730 Kaya ngayon walang laman na direktoryo na ito. 431 00:22:12,730 --> 00:22:15,410 Kukunin ko bumalik sa aking home directory, at nakita namin na b ay in dito, dahil ang 432 00:22:15,410 --> 00:22:19,230 home directory ay isa sa direktoryo up mula sa ang direktoryo na b naging in 433 00:22:19,230 --> 00:22:24,710 434 00:22:24,710 --> 00:22:26,580 >> Mayroon ding CP. 435 00:22:26,580 --> 00:22:33,210 Kaya CP ay kopyahin sobrang seksyon, tuldok, teksto. 436 00:22:33,210 --> 00:22:35,750 Maaari ko ba itong tumawag s, tuldok, teksto. 437 00:22:35,750 --> 00:22:39,780 Ngayon kami ay may parehong super seksyon, tuldok, teksto; at s, tuldok, teksto. 438 00:22:39,780 --> 00:22:41,340 Gumagana rin ito sa mga direktoryo. 439 00:22:41,340 --> 00:22:44,040 440 00:22:44,040 --> 00:22:46,560 Rf-ed ko isang solong file. 441 00:22:46,560 --> 00:22:48,200 Kaya CP - 442 00:22:48,200 --> 00:22:51,710 well, sabihin muna subukan ng CP, tmp, tmp2. 443 00:22:51,710 --> 00:22:53,220 Kaya omitting direktoryo tmp. 444 00:22:53,220 --> 00:22:57,440 Kaya katulad ng rm, ang default na pag-uugali ay upang hindi gumagana sa mga direktoryo. 445 00:22:57,440 --> 00:23:01,570 >> At muli, katulad ng rm, ang default pag-uugali - well, nakakakuha ito upang gumana 446 00:23:01,570 --> 00:23:04,230 may mga direktoryo ay isang, gitling-r ang layo. 447 00:23:04,230 --> 00:23:09,240 Kaya kopyahin recursively ang Temp direktoryo sa tmp2. 448 00:23:09,240 --> 00:23:13,700 At kaya ngayon ay mayroon kaming parehong tmp at tmp2, at iyon ay hindi na kapaki-pakinabang dahil tmp 449 00:23:13,700 --> 00:23:16,814 ay walang laman sa unang lugar. 450 00:23:16,814 --> 00:23:18,660 Tmp2. 451 00:23:18,660 --> 00:23:22,680 >> Ngayon ay kopyahin tmp sa tmp2 ipaalam. 452 00:23:22,680 --> 00:23:27,900 At nakita namin na tmp2 ay mayroon ding mga file a, dahil sa direktoryo at 453 00:23:27,900 --> 00:23:32,220 ang lahat ng bagay sa loob ng na direktoryo ay nakopya. 454 00:23:32,220 --> 00:23:36,000 At na maaaring maging kapaki-pakinabang na medyo kung, sabihin nating nagtatrabaho ka 455 00:23:36,000 --> 00:23:38,860 sa problema na magtakda ng isang - 456 00:23:38,860 --> 00:23:41,320 o talaga, mamaya sets problema ay mas mahalagang, dahil doon 457 00:23:41,320 --> 00:23:43,660 Magiging ang maramihang ng mga file at mga bagay. 458 00:23:43,660 --> 00:23:47,010 >> Pero gusto mong lang, para sa isang split pangalawa, ikaw ay tulad, lahat ng karapatan, ako 459 00:23:47,010 --> 00:23:50,210 pagpunta sa subukan ang isang bagay na naiiba. 460 00:23:50,210 --> 00:23:57,860 Hayaan kopyahin akin lamang aking buong pset1 direktoryo sa pset1 backup upang kung 461 00:23:57,860 --> 00:24:01,490 Tapusin ko up screwing bagay up, maaari ko bumalik sa aking mga backup na direktoryo. 462 00:24:01,490 --> 00:24:07,340 Mayroong higit naaangkop na mga paraan ng pag-bersyon ng pag-back up ang iyong code, ngunit 463 00:24:07,340 --> 00:24:10,610 ito ay palaging isang mabilis na paraan upang magsagawa lamang Tiyaking mayroon kang isang kopya ng isang bagay 464 00:24:10,610 --> 00:24:11,860 na ikaw ay tungkol sa upang baguhin. 465 00:24:11,860 --> 00:24:16,974 466 00:24:16,974 --> 00:24:27,090 >> Kaya echo ding command na isa-off na uri ng sillily ay lamang i-print sa 467 00:24:27,090 --> 00:24:31,540 command line kung ano mismo ang na gusto mo sa Echo. 468 00:24:31,540 --> 00:24:32,680 Kaya echo hi. 469 00:24:32,680 --> 00:24:35,420 Susubukan naming lamang i-print hi. 470 00:24:35,420 --> 00:24:38,030 Echo kumusta mundo. 471 00:24:38,030 --> 00:24:39,800 Susubukan naming i-print kumusta mundo. 472 00:24:39,800 --> 00:24:44,350 Iyon ay sa paggamit kapag nag- simulan ang pagsasama-sama ng mga utos. 473 00:24:44,350 --> 00:24:48,300 >> At muli, hindi inaasahan mong ganap maunawaan ito pa, subalit ito ay 474 00:24:48,300 --> 00:24:49,910 isang bagay upang makita. 475 00:24:49,910 --> 00:24:52,470 At pagkatapos ay kung ikaw ay Googling para sa mga halimbawa o natanto gusto mong gawin 476 00:24:52,470 --> 00:24:55,030 isang bagay, maaari itong maging kapaki-pakinabang. 477 00:24:55,030 --> 00:24:59,020 Kaya sabihin, bilang halimbawa, kaya ls, gitling, l. 478 00:24:59,020 --> 00:25:01,160 Kaya dito nakikita ko ang output ng ls, gitling, l. 479 00:25:01,160 --> 00:25:06,560 At sinasabi ko, OK, gusto kong mag-imbak na sa isang file. 480 00:25:06,560 --> 00:25:11,620 Ang lahat ng ito output dito, gusto ko upang ilagay sa isang hiwalay na file. 481 00:25:11,620 --> 00:25:16,080 >> Kaya ito maliit na mas malaki kaysa sa simbolo ay kung ano ang pagpunta namin tawagan. 482 00:25:16,080 --> 00:25:18,570 Kami ay nagre-redirect ang output sa isang file. 483 00:25:18,570 --> 00:25:21,680 Tawagan ng mga file blah Hayaan, dahil iyon ang kung ano ako ay may posibilidad na palaging tumawag ito. 484 00:25:21,680 --> 00:25:26,430 Kaya ngayon makita namin na mayroon kami ng isang maghain blah dito mismo. 485 00:25:26,430 --> 00:25:30,270 At kung buksan up ko ito, kukunin ko na makita ito eksakto ang output mula sa command na 486 00:25:30,270 --> 00:25:31,990 na ako lang ang bumangga. 487 00:25:31,990 --> 00:25:36,020 At katulad, maaari mong - 488 00:25:36,020 --> 00:25:41,260 kung ito ay output sa isang file, ito ay makakuha ng input mula sa isang file. 489 00:25:41,260 --> 00:25:45,790 490 00:25:45,790 --> 00:25:47,050 Ano ang isang command na ako - 491 00:25:47,050 --> 00:25:49,620 >> Joseph: tingin ko maaari mong gamitin ang mas mababa o higit pa, marahil. 492 00:25:49,620 --> 00:25:53,031 >> Rob: Ngunit paano tungkol lang mas blah? 493 00:25:53,031 --> 00:25:53,930 Hindi ko alam. 494 00:25:53,930 --> 00:25:57,870 Kung dumating ka sa sitwasyong ito, tulad ng mayroong psets na ito ay kapaki-pakinabang para sa. 495 00:25:57,870 --> 00:25:59,950 >> Joseph: maaari mong pipe ito sa echo. 496 00:25:59,950 --> 00:26:02,920 Pipe ang file papunta sa echo upang makita ito. 497 00:26:02,920 --> 00:26:04,060 >> Rob: Ito ay pipe. 498 00:26:04,060 --> 00:26:04,860 >> Joseph: Paumanhin. 499 00:26:04,860 --> 00:26:06,190 >> Rob: Lahat ng karapatan. 500 00:26:06,190 --> 00:26:12,720 Kaya ito ay ang output sa isang file. 501 00:26:12,720 --> 00:26:18,700 Ito ay makuha ang teksto mula sa file at ipasa ito sa ibabaw ng mga programa. 502 00:26:18,700 --> 00:26:20,560 At makikita mo rin ang tao na ito. 503 00:26:20,560 --> 00:26:24,410 Kaya ito ay uri ng paggawa ng parehong nang sabay-sabay. 504 00:26:24,410 --> 00:26:28,310 At talagang, makikita ba kitang ipakilala dalawang bagong command upang tiyakin lamang na paggamit nito. 505 00:26:28,310 --> 00:26:33,060 >> Kasaysayan ay isang madaling-gamiting utos na lamang pagpunta sa i-print ang isang listahan ng mga 506 00:26:33,060 --> 00:26:34,940 kahit ano kailanman ko na magpatakbo ng isang linya ng command. 507 00:26:34,940 --> 00:26:38,290 Kaya makikita natin dito ang lahat ng bagay na mayroon akong tumatakbo ang buong oras. 508 00:26:38,290 --> 00:26:39,540 Maraming ls ni. 509 00:26:39,540 --> 00:26:41,570 510 00:26:41,570 --> 00:26:48,470 >> At isa pang kapaki-pakinabang na command ay grep na layunin nito ay upang maghanap sa 511 00:26:48,470 --> 00:26:52,060 text naghahanap ng mga pattern, mahusay, naghahanap ng kahit ano sa iyo 512 00:26:52,060 --> 00:26:53,310 Gusto ito upang tumingin para sa. 513 00:26:53,310 --> 00:26:59,770 At kaya isang madaling gamitin na paggamit dito ay, sabihin nating gusto naming grab ang kasaysayan. 514 00:26:59,770 --> 00:27:03,860 At gusto kong hanapin ang mga utos kung saan ko - kung ano ang isang 515 00:27:03,860 --> 00:27:05,000 kapaki-pakinabang ng isa upang hanapin? 516 00:27:05,000 --> 00:27:06,898 >> Joseph: [hindi marinig]? 517 00:27:06,898 --> 00:27:09,710 >> Rob: tingnan lamang para sa lahat ng O ipaalam touch, para sa anumang kadahilanan. 518 00:27:09,710 --> 00:27:13,850 Kaya ito ay kung ano ito ay ganito ang hitsura. 519 00:27:13,850 --> 00:27:15,560 At wala kang ganap na maunawaan na. 520 00:27:15,560 --> 00:27:20,570 Ngunit ang ideya ay dito, kasaysayan ay nagbibigay sa ang parehong output ito ginawa dito 521 00:27:20,570 --> 00:27:25,030 kung saan ito sa pagpi-print out ang buong kasaysayan ng lahat ng bagay kailanman ko na tumakbo. 522 00:27:25,030 --> 00:27:27,030 Ay pagkatapos ng pagpasa namin na - 523 00:27:27,030 --> 00:27:30,230 kaya sa halip na pag-print nito sa screen, gusto naming pumasa na sa 524 00:27:30,230 --> 00:27:34,640 utos grep na kung saan ay naghahanap para sa lahat ng mga pagkakataon ng mga salita ugnay. 525 00:27:34,640 --> 00:27:40,280 >> At kaya gamit ang kumbinasyon ng mga kasaysayan ng mga tool at grep, ang maaari kong makita, OK, 526 00:27:40,280 --> 00:27:44,820 narito ang lahat ng mga utos na iyong kailanman ko patakbuhin, at narito ang isang medyo karaniwang isa. 527 00:27:44,820 --> 00:27:45,510 Kami ay sa ibaba. 528 00:27:45,510 --> 00:27:47,930 At ito ay nagbibigay sa din sa akin ang command Lamang ang bumangga ko na nagkaroon ng 529 00:27:47,930 --> 00:27:51,240 salita ugnay sa ito. 530 00:27:51,240 --> 00:27:58,500 Ngunit ang pipe ay isang medyo kapaki-pakinabang na bagay para sa pagsasama-sama ng maramihang mga programa. 531 00:27:58,500 --> 00:28:04,670 At talagang, ito ay isang shortcut para sa let sa akin kasaysayan output sa blah-file, at 532 00:28:04,670 --> 00:28:10,190 hayaan mo akong grep gamit ang file blah ng kung anong gusto kong tingnan. 533 00:28:10,190 --> 00:28:13,460 Kaya ang pipe ay isang shortcut lamang para sa mga dalawang utos. 534 00:28:13,460 --> 00:28:13,950 Oo. 535 00:28:13,950 --> 00:28:15,306 >> Tagapagsalita 4: [hindi marinig]? 536 00:28:15,306 --> 00:28:16,556 >> Rob: Oo. 537 00:28:16,556 --> 00:28:20,142 538 00:28:20,142 --> 00:28:21,110 Ano ang - 539 00:28:21,110 --> 00:28:21,858 Oh. 540 00:28:21,858 --> 00:28:24,820 Ni subukan Hayaan. 541 00:28:24,820 --> 00:28:29,170 Kaya pusa, aso, isda. 542 00:28:29,170 --> 00:28:33,770 Kaya gusto kong grep. 543 00:28:33,770 --> 00:28:37,680 Dash, r, muli, ay magiging recursively, kaya gusto kong bumaba pababa 544 00:28:37,680 --> 00:28:38,870 lahat ng mga direktoryo. 545 00:28:38,870 --> 00:28:43,210 Gusto kong recursively grep para sa lahat - at hayaan mo akong makakuha ng pansamantalang 546 00:28:43,210 --> 00:28:44,460 ito sa labas ng paraan. 547 00:28:44,460 --> 00:28:48,650 548 00:28:48,650 --> 00:28:50,740 Huwag pansinin ang akin. 549 00:28:50,740 --> 00:28:51,360 OK. 550 00:28:51,360 --> 00:28:56,740 >> Kaya gusto ko upang pansamantalang grep para sa lahat ng mga pagkakataon ng salitang isda. 551 00:28:56,740 --> 00:29:00,510 At gayon dito kung ano ako paggawa ay grepping recursively para sa mga salita isda. 552 00:29:00,510 --> 00:29:05,410 At bituin ay nangangahulugan na sa paglipas ng lahat ng mga mga file sa direktoryong ito. 553 00:29:05,410 --> 00:29:08,930 At kaya ito ay nagbigay sa akin ng Pahintulot Tinanggihan, dahil ito ay hindi pinapahintulutan upang basahin na 554 00:29:08,930 --> 00:29:10,060 partikular na file. 555 00:29:10,060 --> 00:29:14,040 Ngunit natagpuan ito isda sa file, pagsubok. 556 00:29:14,040 --> 00:29:18,450 >> Maaari ko rin sabihin, partikular, ako lamang nais na tingnan ang mga file blah, sa 557 00:29:18,450 --> 00:29:19,580 Kung saan hindi ito mahanap ang anumang bagay. 558 00:29:19,580 --> 00:29:20,990 Gusto ko lamang tumingin sa file, pagsubok. 559 00:29:20,990 --> 00:29:22,240 Ito ay makahanap ng isda. 560 00:29:22,240 --> 00:29:25,980 561 00:29:25,980 --> 00:29:29,260 Iyon ay isang magandang kapaki-pakinabang na command malaman sa pangkalahatan. 562 00:29:29,260 --> 00:29:31,640 Mayroong ilang mga alternatibo sa grep na dapat na maging mas 563 00:29:31,640 --> 00:29:36,780 programmer friendly, ngunit may posibilidad ko upang pa rin umasa sa grep. 564 00:29:36,780 --> 00:29:38,030 Mga Katanungan? 565 00:29:38,030 --> 00:29:39,965 566 00:29:39,965 --> 00:29:40,919 OK. 567 00:29:40,919 --> 00:29:42,520 >> Mayroon pa bang ibang mga utos? 568 00:29:42,520 --> 00:29:45,270 Oh. 569 00:29:45,270 --> 00:29:48,370 Lamang sa isang one-off isa na ako palagi mahanap upang maging masaya ay Cal. 570 00:29:48,370 --> 00:29:55,610 Kaya't mapapansin kapag ako ay sa ito kaibig-ibig full-screen mode, wala akong mga katulad tuktok 571 00:29:55,610 --> 00:29:56,720 toolbar o kahit ano. 572 00:29:56,720 --> 00:29:59,530 Kaya Cal ay nagbibigay lamang ako ng magandang kaunti kalendaryo na tama 573 00:29:59,530 --> 00:30:02,380 ngayon cut off, ipagpalagay ko. 574 00:30:02,380 --> 00:30:04,770 Ngunit maganda ang maliit na command. 575 00:30:04,770 --> 00:30:06,540 >> Joseph: Ito ay [hindi marinig]. 576 00:30:06,540 --> 00:30:09,170 Iba pang mga utos na maaaring mayroon ka Nakita isama kumalatong at gumawa. 577 00:30:09,170 --> 00:30:11,180 Susubukan naming pumunta sa ibabaw ng mga ito sa mas detalyado sa ibang pagkakataon. 578 00:30:11,180 --> 00:30:13,400 Ngunit kung ikaw ay nagtatrabaho sa ang PSET, dapat ay 579 00:30:13,400 --> 00:30:15,160 pamilyar sa mga. 580 00:30:15,160 --> 00:30:16,640 >> Rob: Lahat ng karapatan. 581 00:30:16,640 --> 00:30:18,520 Mga Tanong sa command line mga bagay? 582 00:30:18,520 --> 00:30:22,450 583 00:30:22,450 --> 00:30:23,260 Ayos lang. 584 00:30:23,260 --> 00:30:27,416 Kaya sabihin lumipat sa ilang mga C kaugnay na-bagay-bagay. 585 00:30:27,416 --> 00:30:28,666 Variable matematika. 586 00:30:28,666 --> 00:30:39,078 587 00:30:39,078 --> 00:30:40,060 OK. 588 00:30:40,060 --> 00:30:45,230 Tulad ng Kaya lamang nagkaroon kami matematika sa simula, Maaari mo ring gamitin ang matematika sa C. 589 00:30:45,230 --> 00:30:49,270 >> Bago kami makarating sa na ganap, kaya variable. 590 00:30:49,270 --> 00:30:53,920 Tandaan na sa tuwing pinahahayag isang variable na tulad ng int x o float y, mo 591 00:30:53,920 --> 00:30:56,710 mayroon upang bigyan ito type bago ang pangalan ng variable. 592 00:30:56,710 --> 00:31:03,020 Kaya mga uri ng nasaksihan namin sa ngayon ay int, float, i-double, mahaba ang haba, na ako 593 00:31:03,020 --> 00:31:06,150 hindi talaga alam kung hindi namin nakikita na sa ngayon. 594 00:31:06,150 --> 00:31:07,700 >> Mayroong ilang mga iba pang bago. 595 00:31:07,700 --> 00:31:09,990 Makita namin ang pansamantalang trabaho. 596 00:31:09,990 --> 00:31:13,920 Mayroong maikli, na kung saan ay tulad ng ito ay ang sa tapat ng mahabang mahaba kung saan ito ay 597 00:31:13,920 --> 00:31:16,650 mas maliit kaysa sa isang integer. 598 00:31:16,650 --> 00:31:18,580 Kami nakakita din string. 599 00:31:18,580 --> 00:31:23,070 Kaya kung ano ang mga espesyal na tungkol sa string? 600 00:31:23,070 --> 00:31:25,350 Bakit Gusto ko sabihin ito ay hindi masyadong tulad ng int? 601 00:31:25,350 --> 00:31:27,030 >> Tagapagsalita 4: Ito ay hindi talaga umiiral. 602 00:31:27,030 --> 00:31:27,990 >> Rob: Oo. 603 00:31:27,990 --> 00:31:31,820 Kaya ang tanging dahilan mayroon kaming string ay dahil kapag ginawa mo 604 00:31:31,820 --> 00:31:33,215 hash, isama cs50.h. 605 00:31:33,215 --> 00:31:36,530 606 00:31:36,530 --> 00:31:42,670 At ipapakita namin makita ang mga halimbawa ng mga ito sa ibang pagkakataon - oh, na hindi mahawakan na rin - 607 00:31:42,670 --> 00:31:46,160 kung saan cs50.h ay paggawa ng isang bagay kasama ang mga linya ng uri 608 00:31:46,160 --> 00:31:49,230 def, pansamantalang trabaho bituin, string. 609 00:31:49,230 --> 00:31:53,280 >> At kaya na nagsasabi na hindi namin kahit na malaman kung ano pa ang isang pansamantalang trabaho bituin ay. 610 00:31:53,280 --> 00:31:56,770 Ngunit ito ay sinasabi ng nais naming string. 611 00:31:56,770 --> 00:32:00,250 Anumang mga lugar na ginagamit mo string, mo sana gamit pansamantalang trabaho bituin, 612 00:32:00,250 --> 00:32:04,670 kung saan talagang ay isang uri na umiiral sa wika C. 613 00:32:04,670 --> 00:32:06,680 Ngunit susuriin namin iyon. 614 00:32:06,680 --> 00:32:07,860 Oh, at ito ay tumatakbo nang pakanan pabalik. 615 00:32:07,860 --> 00:32:10,170 Kapong baka. 616 00:32:10,170 --> 00:32:15,370 >> Kaya parehong bagay sa bool kung saan totoo at hindi totoo. 617 00:32:15,370 --> 00:32:22,510 Iyon ay hindi talaga isang built-in na uri sa C. Sa halip, ito ay, ay mayroon ito lamang 618 00:32:22,510 --> 00:32:23,740 ang halaga ng zero? 619 00:32:23,740 --> 00:32:26,200 Pagkatapos ay magpapadala kami lamang isaalang-alang ito upang maging hindi totoo. 620 00:32:26,200 --> 00:32:27,350 Mayroon ba nito ang halaga - 621 00:32:27,350 --> 00:32:30,530 na rin, ang mga ito ay mayroong anumang mga halaga na hindi zero? 622 00:32:30,530 --> 00:32:32,200 Pagkatapos ay magpapadala kami isaalang-alang ito upang maging totoo. 623 00:32:32,200 --> 00:32:35,940 Kaya isa ay totoo, dalawang ay totoo, kahit ano nonzero ay totoo. 624 00:32:35,940 --> 00:32:38,710 625 00:32:38,710 --> 00:32:42,790 Kaya mga ay ang mga. 626 00:32:42,790 --> 00:32:47,624 Mga Tanong sa deklarasyon variable at variable na uri at ang lahat ng iyon? 627 00:32:47,624 --> 00:32:48,100 Oo. 628 00:32:48,100 --> 00:32:52,384 >> Tagapagsalita 4: Para sa mga mahaba ang haba, sa aklat, Sinabi ito ito ay nagkaroon na maging mahaba mahaba int. 629 00:32:52,384 --> 00:32:54,288 Ngunit ay lamang mahaba mahaba gumagana? 630 00:32:54,288 --> 00:32:58,210 631 00:32:58,210 --> 00:33:01,470 >> Rob: Kaya mga modifier uri. 632 00:33:01,470 --> 00:33:04,170 Kaya int x. 633 00:33:04,170 --> 00:33:07,710 Kaya maaari rin naming sabihin unsigned int x. 634 00:33:07,710 --> 00:33:09,640 Maaari naming sabihin maikling int x. 635 00:33:09,640 --> 00:33:12,570 Maaari naming sabihin mahaba mahaba int x. 636 00:33:12,570 --> 00:33:17,250 Pero halos anuman sa mga bagay na ako Sinabi lang, unsigned int, maikling int, 637 00:33:17,250 --> 00:33:21,480 mahaba mahaba int, maaari mong mapupuksa ang ang int at ito ay ipinapalagay lamang 638 00:33:21,480 --> 00:33:22,510 na sinadya mo int. 639 00:33:22,510 --> 00:33:26,045 Kaya unsigned x, na kung saan ay nangangahulugan lamang - 640 00:33:26,045 --> 00:33:29,400 alam mo kung paano normal na may isang int, maaari mong sabihin x ay katumbas ng negatibong 3? 641 00:33:29,400 --> 00:33:31,636 Gamit ang isang wala pang kontratang int, hindi mo magagawa. 642 00:33:31,636 --> 00:33:34,480 >> Joseph: At muli, para sa mga camera, ang tanong ay, kung ano ang mga pagkakaiba sa 643 00:33:34,480 --> 00:33:37,796 sa pagitan ng mahabang mahaba int at lamang mahaba katagal? 644 00:33:37,796 --> 00:33:38,410 >> Rob: Oo. 645 00:33:38,410 --> 00:33:42,850 Kaya pamanahan ako halos hindi kailanman sumulat mahaba mahaba int. 646 00:33:42,850 --> 00:33:44,100 Gagawa ako sumulat mahaba ang haba. 647 00:33:44,100 --> 00:33:47,770 648 00:33:47,770 --> 00:33:50,636 >> Joseph: Anumang mga katanungan? 649 00:33:50,636 --> 00:33:51,886 >> Rob: OK. 650 00:33:51,886 --> 00:33:56,180 651 00:33:56,180 --> 00:34:02,390 Kaya ulok maliit na paalala ng na kung paano Ipinahahayag namin sa isang variable at initialize 652 00:34:02,390 --> 00:34:04,450 ang variable at ipinapahayag ng isa pang variable at initialize 653 00:34:04,450 --> 00:34:05,870 nito ang lahat sa isang hakbang. 654 00:34:05,870 --> 00:34:09,370 Kaya ang deklarasyon ng variable at Pinasimulan ang variable na walang 655 00:34:09,370 --> 00:34:11,120 upang ngunit maaaring maging sa parehong linya. 656 00:34:11,120 --> 00:34:15,409 657 00:34:15,409 --> 00:34:20,060 >> Kaya mayroon kaming ang standard na operator matematika na nakasanayan mo - 658 00:34:20,060 --> 00:34:22,199 plus, minus, paghati-hatiin, ulit. 659 00:34:22,199 --> 00:34:24,389 Mayroon ding modulo, na gagamitin namin makita. 660 00:34:24,389 --> 00:34:29,060 Mayroong hindi, hindi bababa sa C, ang isang built-in na kapangyarihan 661 00:34:29,060 --> 00:34:31,765 exponentiation kareta operator. 662 00:34:31,765 --> 00:34:33,770 Well, mayroong isang kareta operator, pero hindi kapangyarihan. 663 00:34:33,770 --> 00:34:34,239 >> Joseph: Ngunit ito ay hindi exponentiation, Oo. 664 00:34:34,239 --> 00:34:36,210 >> Rob: Huwag gamitin ang kareta upang ipalagay na ito ay nangangahulugan na 665 00:34:36,210 --> 00:34:39,980 tulad squared o kahit anong. 666 00:34:39,980 --> 00:34:42,289 Kaya ang ilang mga bagay na dapat bale tungkol sa division. 667 00:34:42,289 --> 00:34:46,282 668 00:34:46,282 --> 00:34:48,880 Magtatagal ako tumayo. 669 00:34:48,880 --> 00:34:51,315 Kaya ipinahayag initialize sagot. 670 00:34:51,315 --> 00:34:54,670 Kaya sinasabi na kami ng float sagot ay katumbas ng 1 hinati sa 10. 671 00:34:54,670 --> 00:34:57,500 I-print kasagutan sa dalawang decimal place. 672 00:34:57,500 --> 00:35:02,180 >> At ito ay ang uri ng mga bagay na ako Gusto tao printf upang malaman na 673 00:35:02,180 --> 00:35:05,110 kung ano ang ano ba ang ibig%, tuldok, ibig sabihin 2F? 674 00:35:05,110 --> 00:35:07,930 At na lamang ang ibig sabihin, mahusay, pagbalewala sa 0.2. 675 00:35:07,930 --> 00:35:10,420 At%, f ay kung ano ang ginagamit namin mag-print ng float. 676 00:35:10,420 --> 00:35:15,370 Ang 0.2 ay nagsasabi, naka-print na float sa dalawang decimal place. 677 00:35:15,370 --> 00:35:19,600 Kaya ang program na ito ay isang bug, at puwede mong nakita na ito bago sa ilang mga 678 00:35:19,600 --> 00:35:20,870 bago ang CS course. 679 00:35:20,870 --> 00:35:22,170 Ngunit ano ay ang bug? 680 00:35:22,170 --> 00:35:23,050 >> Tagapagsalita 5: Zero. 681 00:35:23,050 --> 00:35:24,130 >> Rob: Oo. 682 00:35:24,130 --> 00:35:29,630 Kaya kapag sinabi namin, ay katumbas ng sagot 1 hinati sa 10, gusto naming ang 683 00:35:29,630 --> 00:35:31,610 sagutin na maging 0.1. 684 00:35:31,610 --> 00:35:37,450 Ngunit 1 hinati sa 10, 1 ay isang integer, 10 ay isang integer. 685 00:35:37,450 --> 00:35:41,060 At kaya kapag ginagawa namin isang integer na hinati sa pamamagitan ng isang integer, kami ay pagpunta upang makabalik 686 00:35:41,060 --> 00:35:42,190 isang integer. 687 00:35:42,190 --> 00:35:43,660 Kaya 1 hinati sa 10 ay 0.1. 688 00:35:43,660 --> 00:35:46,760 >> Dahil kailangan nito upang bigyan kami ng isang integer, lamang ito ng pagpunta sa itapon na 689 00:35:46,760 --> 00:35:49,410 decimal na lugar at sabihin na ang sagot ay 0. 690 00:35:49,410 --> 00:35:55,314 At kaya kapag i-print namin sagutin dito, ito ay pagpunta sa i-print ang 0.00. 691 00:35:55,314 --> 00:35:58,430 >> Joseph: At bilang lamang ng isang tala, ito talaga throws ang layo kung ano ang pagkatapos ng 692 00:35:58,430 --> 00:35:59,390 decimal point. 693 00:35:59,390 --> 00:36:03,180 Kaya't kung ikaw sa halip ay may 6 na hinati sa 10, maaari mong isipin ang hitsura nito ay magbibigay sa iyo ng 694 00:36:03,180 --> 00:36:05,200 0.6 at pagkatapos ay nais mong isalin sa 1. 695 00:36:05,200 --> 00:36:10,520 Pero sa totoo, ano ang mangyayari kapag ito nagta-type mga gawain nito ay tumutulong ito ay bumaba ng kung ano ang 696 00:36:10,520 --> 00:36:11,470 pagkatapos ng decimal point. 697 00:36:11,470 --> 00:36:13,020 Kaya 0.6 ay maging 0. 698 00:36:13,020 --> 00:36:13,370 >> Rob: Oo. 699 00:36:13,370 --> 00:36:15,160 At muli naming sabihin pungusan para iyon. 700 00:36:15,160 --> 00:36:21,760 Kaya sa tuwing nag-cast sa isang int, ang decimal ay pinutol. 701 00:36:21,760 --> 00:36:23,980 Kaya ang fix para sa na - mayroong talagang dalawang. 702 00:36:23,980 --> 00:36:27,890 At ako pagpunta sa gawin iyon pangalawa, dahil ang isang ito ay isang lubhang mas madaling remedyo. 703 00:36:27,890 --> 00:36:32,670 >> Kaya isa-ayos ay gamitin sa kamay sa division. 704 00:36:32,670 --> 00:36:34,720 At talagang, mayroon na lamang sa gumawa ng isa sa kanila ng float. 705 00:36:34,720 --> 00:36:37,400 Ngunit ito ay medyo mas malinaw lamang upang gumawa ng parehong sa mga ito sa kamay. 706 00:36:37,400 --> 00:36:41,170 Kaya 1.0 na hinati sa pamamagitan ng 10.0 ay paghahati ng dalawang kamay. 707 00:36:41,170 --> 00:36:43,970 Kaya ang sagot ay nagtatapos up pagiging isang float, at sa gayon habilin mo 708 00:36:43,970 --> 00:36:48,050 tama i-print ang 0.10 dito. 709 00:36:48,050 --> 00:36:52,220 >> Isang bagay na hindi gumana nang mahusay tungkol iyon ay, well, sigurado, ito ay madaling 710 00:36:52,220 --> 00:36:56,240 sapat upang i-convert 1 sa isang float sa pamamagitan ng pagpapadali 1.0. 711 00:36:56,240 --> 00:37:02,180 Ngunit paano kung sa halip nagkaroon kami ng dalawang integer tulad ng int x ay katumbas ng 1 at int y 712 00:37:02,180 --> 00:37:05,660 ay katumbas ng 10, at pagkatapos ay gusto naming upang huwag x hinati sa y? 713 00:37:05,660 --> 00:37:10,420 Kaya ito ay hindi madaling upang lamang gawin x.0 o isang bagay. 714 00:37:10,420 --> 00:37:12,790 >> Kaya ang fix sa na paghahagis. 715 00:37:12,790 --> 00:37:19,780 Kaya paghahagis ay isang paraan sa C upang i-convert mula sa isang variable na uri sa isa pang. 716 00:37:19,780 --> 00:37:22,320 Kaya dito, ang 1 ay isang integer. 717 00:37:22,320 --> 00:37:27,050 At sa pamamagitan ng paglagay ng float sa harap ng ito, paghahagis namin ay 1 sa isang float. 718 00:37:27,050 --> 00:37:30,350 At kaya ito ay nagko-convert ang 1 sa isang 1.0. 719 00:37:30,350 --> 00:37:33,380 At ito ay nagko-convert ang 10 sa isang 10.0. 720 00:37:33,380 --> 00:37:36,790 >> At pagkatapos ng mga bagay kumilos nang katulad sa nakaraang bersyon namin ipinakita lamang 721 00:37:36,790 --> 00:37:42,190 kung saan, tulad ng inaasahan, makakakuha tayo ng 0.10 at makikita ito i-print na. 722 00:37:42,190 --> 00:37:44,120 At maaari naming gawin ito gamit ang variable, masyadong. 723 00:37:44,120 --> 00:37:47,376 Kaya maaari naming sabihin, float x hinati sa pamamagitan ng float y. 724 00:37:47,376 --> 00:37:48,626 >> Joseph: Anumang mga katanungan? 725 00:37:48,626 --> 00:37:54,182 726 00:37:54,182 --> 00:38:00,090 >> Rob: Kaya tulad ng sa regular na matematika, mayroon kaming operator mangunguna. 727 00:38:00,090 --> 00:38:06,960 Kaya sa matematika klase, ikaw ay mas malamang pangalanan ito pagkakasunud-sunod ng mga operasyon. 728 00:38:06,960 --> 00:38:09,890 Dito, ang opisyal na termino ay operator mangunguna. 729 00:38:09,890 --> 00:38:15,230 Ngunit sa operator mangingibabaw, o pinaka- operator, ay tulad ng iyong inaasahan. 730 00:38:15,230 --> 00:38:22,660 >> Kaya tulad ng sa matematika, 2 beses ang 10 pagpunta sa-grupo sa mas malapit kaysa 731 00:38:22,660 --> 00:38:25,410 ito 10 na hinati sa 2 at pagkatapos ay 2. 732 00:38:25,410 --> 00:38:29,745 Ang pagkakasunud-sunod ng mga operasyon, ito gawin 2 beses 10, 10 na hinati sa 2, at pagkatapos ay 733 00:38:29,745 --> 00:38:32,720 Makikita ito gawin 20 plus 5 plus 2. 734 00:38:32,720 --> 00:38:37,020 Kaya ito ay tulad ng inaasahan, at maaari mong gamitin ang panaklong sa pangkat na expression. 735 00:38:37,020 --> 00:38:41,063 Hindi mo maaaring gamitin ang mga square bracket sa pangkat na expression. 736 00:38:41,063 --> 00:38:41,544 Oo? 737 00:38:41,544 --> 00:38:43,468 >> Tagapagsalita 5: Maaari mo bang talaga pumunta lamang pabalik isang segundo? 738 00:38:43,468 --> 00:38:47,316 Maaari mo nagsumite ng isang int sa isang string? 739 00:38:47,316 --> 00:38:53,330 >> Rob: Kaya sa C, maaari mong nagsumite ng anumang bagay gusto mong anumang nais mo. 740 00:38:53,330 --> 00:38:55,600 Iyon ay hindi nangangahulugan na ito ay isang mabuting bagay na gawin. 741 00:38:55,600 --> 00:38:59,760 Kaya kapag nagsumite ka ng isang int sa isang string, ibig sabihin nito ay - 742 00:38:59,760 --> 00:39:03,240 at kami makakuha ng sa na ito mas mabuti - 743 00:39:03,240 --> 00:39:03,720 >> Joseph: Karamihan sa ibang pagkakataon. 744 00:39:03,720 --> 00:39:06,840 >> Rob: Hindi ko nais na sabihin magkano sa ibang pagkakataon, kaya sinubukan kong baguhin ang aking pangungusap. 745 00:39:06,840 --> 00:39:13,370 Susubukan naming makuha sa mas higit lubusan kung saan mamaya talaga kapag mayroon kang isang 746 00:39:13,370 --> 00:39:14,810 string variable - 747 00:39:14,810 --> 00:39:17,160 kaya isang string ay maaaring maging nagkataon ang haba, tama? 748 00:39:17,160 --> 00:39:21,850 At kami ay sinasabi na ang isang int ay apat na bytes at mahaba mahaba ay walong 749 00:39:21,850 --> 00:39:23,620 bytes at isang float ay apat na bytes. 750 00:39:23,620 --> 00:39:29,520 Kaya isang string, tulad ng isang int, tanging ang may isang tiyak na bilang ng mga byte dito. 751 00:39:29,520 --> 00:39:31,800 At iyon ay magiging apat na bytes. 752 00:39:31,800 --> 00:39:34,750 >> Ngunit isang string ay maaaring maging kaakit-akit nagkataon mahaba, tama? 753 00:39:34,750 --> 00:39:40,190 Kaya kumusta mundo na, kung na 10 character o kahit ano, na nang 754 00:39:40,190 --> 00:39:42,670 pagpunta sa maging sa ibabaw ng 4 bytes Maaari kong magkasya sa isang string. 755 00:39:42,670 --> 00:39:51,140 At kaya kung paano talaga gumagana ang mga string ay na ang mga ito ay kung saan sa memorya na string 756 00:39:51,140 --> 00:39:52,380 ay pinananatiling. 757 00:39:52,380 --> 00:39:57,290 >> At kaya sa paglipas dito, kapag sinabi ko string x ay katumbas ng halo mundo, sa loob ng x ay 758 00:39:57,290 --> 00:40:01,840 sinasabi lang, oh, kumusta mundo ay naka-imbak sa ang partikular na lugar sa memorya. 759 00:40:01,840 --> 00:40:07,060 Kaya't kung sinusubukan naming nagsumite ng isang integer sa isang string, pagkatapos sinusubukan naming bigyang-kahulugan 760 00:40:07,060 --> 00:40:10,500 ang ilang mga random na bahagi ng memorya bilang isang string. 761 00:40:10,500 --> 00:40:14,465 At na halos palaging Pinaghihiwa-bagay. 762 00:40:14,465 --> 00:40:17,040 >> Joseph: Ngunit kung na nalilito sa iyo, mag-i-sumasaklaw namin ito 763 00:40:17,040 --> 00:40:17,550 mas malalalim mamaya. 764 00:40:17,550 --> 00:40:17,850 >> Rob: Oo. 765 00:40:17,850 --> 00:40:20,540 Ito ay kung saan ka pupunta upang makapunta sa mga payo. 766 00:40:20,540 --> 00:40:25,485 At iyon ay isang makabuluhang tipak ng dalawang linggo ng kursong ito. 767 00:40:25,485 --> 00:40:28,275 >> Speaker 6: Gumagana ba ito tulad ng mga bagay sa ibang mga wika o hindi talaga? 768 00:40:28,275 --> 00:40:34,050 >> Rob: Kaya sa iba pang mga wika, mga bagay Gusto katawanin gamit na pointer. 769 00:40:34,050 --> 00:40:37,070 770 00:40:37,070 --> 00:40:38,793 Ito ay hindi ang parehong bagay, bagaman. 771 00:40:38,793 --> 00:40:42,110 772 00:40:42,110 --> 00:40:42,910 Anumang mga saloobin? 773 00:40:42,910 --> 00:40:43,760 >> Joseph: Hindi. 774 00:40:43,760 --> 00:40:44,185 Walang mga saloobin. 775 00:40:44,185 --> 00:40:44,980 >> Rob: OK. 776 00:40:44,980 --> 00:40:46,994 >> Joseph: Susunod. 777 00:40:46,994 --> 00:40:48,255 >> Rob: Pumunta lamang sa na. 778 00:40:48,255 --> 00:40:48,670 Ayos lang. 779 00:40:48,670 --> 00:40:51,120 Kaya modulo. 780 00:40:51,120 --> 00:40:53,900 Tulad lamang mayroon kaming plus, minus, hatiin, at multiply. 781 00:40:53,900 --> 00:40:56,720 Kaya modulo ay isa maaari mong hindi nakita bago. 782 00:40:56,720 --> 00:40:59,540 At ito lamang ang sinasabi, bigyan sa akin ang natitira sa. 783 00:40:59,540 --> 00:41:02,850 Kaya 55% 10. 784 00:41:02,850 --> 00:41:06,840 Ang natitira sa paggawa 55 na hinati sa pamamagitan ng 10 ay magiging 5. 785 00:41:06,840 --> 00:41:09,630 Kaya 55% 10 5. 786 00:41:09,630 --> 00:41:12,260 At 3% 5 ay magiging 3. 787 00:41:12,260 --> 00:41:14,180 8% 8 ay 0. 788 00:41:14,180 --> 00:41:15,903 16% ng 15 ay magiging 1. 789 00:41:15,903 --> 00:41:20,670 >> Joseph: Ang isang bagay na dapat tandaan na may mga ito, Masyadong, ito ay maaaring hindi gumana tulad ng inaasahan 790 00:41:20,670 --> 00:41:22,700 kung gumamit ka ng isang negatibong numero. 791 00:41:22,700 --> 00:41:26,215 Kaya negatibong 5% 4, ang ilang mga tao Maaaring sa tingin na ay - 792 00:41:26,215 --> 00:41:28,890 793 00:41:28,890 --> 00:41:33,808 kung ano ang sa tingin mo ang mga negatibong 5% 4 ay magiging? 794 00:41:33,808 --> 00:41:34,792 >> Tagapagsalita 5: One. 795 00:41:34,792 --> 00:41:37,920 >> Joseph: Kaya ang ilang mga tao sabihin isa, ang ilang mga tao sabihin negatibong isa. 796 00:41:37,920 --> 00:41:38,450 Ngunit ano - 797 00:41:38,450 --> 00:41:40,820 >> Rob: hindi ko gusto kahit na mayroon Sinabi ni isa sa mga iyon. 798 00:41:40,820 --> 00:41:42,370 >> Joseph: Dalawang, paumanhin. 799 00:41:42,370 --> 00:41:43,240 Ang ilang mga tao sabihin - 800 00:41:43,240 --> 00:41:43,450 >> Rob: Three. 801 00:41:43,450 --> 00:41:43,800 >> Joseph: Tatlong? 802 00:41:43,800 --> 00:41:44,890 >> Rob: Negatibong - 803 00:41:44,890 --> 00:41:45,950 kung ano ang naging - negatibong limang - 804 00:41:45,950 --> 00:41:47,100 >> Joseph: Tatlong, tatlo, tatlo. 805 00:41:47,100 --> 00:41:48,450 Sorry. 806 00:41:48,450 --> 00:41:51,910 Dahil modulo, sa pangkalahatan, kapag ikaw ay Nakita ito sa ibang lugar, ito ay kadalasang nangangahulugan 807 00:41:51,910 --> 00:41:54,000 bumalik isang positibong numero, tama? 808 00:41:54,000 --> 00:42:01,160 >> Rob: Kaya kapag sinabi namin sa matematika,% 10 na, sila ay may posibilidad na nais na magbigay sa iyo - 809 00:42:01,160 --> 00:42:05,980 kung kami mod sa pamamagitan ng 10, pagkatapos ay inaasahan naming makakuha ng isang numero sa pagitan ng 0 at 9. 810 00:42:05,980 --> 00:42:09,860 Sa dito, na hindi ito ang kaso na sa iyo Makakakuha ng negatibong numero ibinalik. 811 00:42:09,860 --> 00:42:15,898 >> Joseph: Kaya negatibong 5% 4 ay magiging negatibo 1. 812 00:42:15,898 --> 00:42:19,325 >> Rob: Ngunit ito ay bihirang na ikaw ay mod-ING negatibong numero upang magsimula sa. 813 00:42:19,325 --> 00:42:25,490 814 00:42:25,490 --> 00:42:25,970 Laktawan ito. 815 00:42:25,970 --> 00:42:27,314 >> Joseph: Oo. 816 00:42:27,314 --> 00:42:29,420 >> Rob: Meh. 817 00:42:29,420 --> 00:42:29,990 OK. 818 00:42:29,990 --> 00:42:36,400 Kaya isa huling bagay upang ituro ang tungkol sa sa kamay ay ito ay isang mapanganib na pag-uugali, 819 00:42:36,400 --> 00:42:39,850 ngunit sa kamay ay hindi isang eksaktong pagkatawan. 820 00:42:39,850 --> 00:42:46,190 Kaya pagpunta pabalik sa bytes muli, alalahanin na isang int ay laging apat na bytes at isang 821 00:42:46,190 --> 00:42:47,830 float ay laging apat na bytes. 822 00:42:47,830 --> 00:42:51,340 Kaya halimbawa Lucas ay medyo mabuti. 823 00:42:51,340 --> 00:42:55,730 >> Kaya sa tingin ng 1 hinati sa 3. 824 00:42:55,730 --> 00:42:57,800 Kaya 0.3333333. 825 00:42:57,800 --> 00:43:03,540 Kung mayroon lamang akong 32 bits, paano maaari Mag-imbak ako 0.33333 eksakto? 826 00:43:03,540 --> 00:43:07,250 At marahil, para sa anumang kadahilanan, sabihin mo, lahat ng karapatan, mahusay, sabihin nating lamang 827 00:43:07,250 --> 00:43:13,210 na ito partikular na 1011001, sabihin lamang sabihin na dapat maging 0.333333. 828 00:43:13,210 --> 00:43:16,960 Well, mayroon na lamang isang may hangganan bilang ng mga mga bits, kaya imposibleng 829 00:43:16,960 --> 00:43:22,550 kumakatawan sa bawat solong lumulutang point ibinigay na mga piraso 32 lang halaga. 830 00:43:22,550 --> 00:43:25,580 >> Well, imposibleng upang kumatawan sa anumang halaga lumulutang na tuldok ibinigay na walang hanggan - 831 00:43:25,580 --> 00:43:28,480 well, given anumang may hangganan bilang ng mga bits. 832 00:43:28,480 --> 00:43:38,265 Kaya ang isyu dito ay, na rin, kapag ginamit namin upang mag-print sa dalawang decimal place, 833 00:43:38,265 --> 00:43:42,000 tama kami nakakuha ang kasagutan 0.10. 834 00:43:42,000 --> 00:43:47,510 Ngunit sa ilalim ng hood, ito ay talagang ini na naka-imbak bilang malapit hangga't maaari sa 835 00:43:47,510 --> 00:43:51,790 0.10 bilang mga bits ay maaaring kumatawan. 836 00:43:51,790 --> 00:43:53,200 Ito ba ay sa susunod na slide? 837 00:43:53,200 --> 00:43:53,830 O kaya naman ay hindi ito? 838 00:43:53,830 --> 00:43:54,660 >> Joseph: Oo, ito ay na iyon. 839 00:43:54,660 --> 00:43:55,750 >> Rob: Blegh, blegh. 840 00:43:55,750 --> 00:43:57,760 >> Joseph: Oo, maaari mo lamang hilahin ang mga tala up ng isang bit. 841 00:43:57,760 --> 00:43:59,700 >> Rob: lamang Pupunta ako upang mag-zoom sa sa huling sa na. 842 00:43:59,700 --> 00:44:00,950 Oh aking sus, na [hindi marinig]. 843 00:44:00,950 --> 00:44:06,089 844 00:44:06,089 --> 00:44:08,300 Kaya ang numerong iyon. 845 00:44:08,300 --> 00:44:12,300 Iyon ay kung ano ang ipi-print kung patatakbuhin namin ang programang iyon. 846 00:44:12,300 --> 00:44:20,340 At mapansin na hindi talaga isang malaking deal kung kami ay lamang aalaga tungkol sa tulad ng 847 00:44:20,340 --> 00:44:21,920 2:58 decimal place. 848 00:44:21,920 --> 00:44:26,700 Tulad ng orihinal na lamang ang aming naka-print na 0.10, at iyon ang dahilan kung bakit nakita namin walang mali. 849 00:44:26,700 --> 00:44:31,380 Ngunit sa sandaling sinimulan namin ang pagkuha sa eksakto, eksaktong numero na ito 850 00:44:31,380 --> 00:44:35,660 na kumakatawan, nakita namin na hindi ito maaari eksakto kumakatawan sa 0.1. 851 00:44:35,660 --> 00:44:40,900 >> At bahagi ng problema dito ay tulad, lahat ng karapatan, na masarap, ngunit, mahusay, 852 00:44:40,900 --> 00:44:46,120 una, paano kung sinubukan naming gawin, ay katumbas ng sagot ay katumbas ng 0.1? 853 00:44:46,120 --> 00:44:49,200 Iyan ba ang pagpunta sa bumalik totoo o hindi? 854 00:44:49,200 --> 00:44:51,850 At kaya mahirap na sabihin. 855 00:44:51,850 --> 00:44:53,330 Sa tingin ko talaga ay maaaring ibalik totoo. 856 00:44:53,330 --> 00:44:55,265 Gagana ito muna - 857 00:44:55,265 --> 00:44:56,180 Hindi ko alam. 858 00:44:56,180 --> 00:45:00,090 Ang sagot ay sa sandaling sinimulan mo pakikitungo may halaga lumulutang na tuldok, maganda ka 859 00:45:00,090 --> 00:45:05,150 magkano hindi dapat gamit ang pagkakapantay-pantay dahil sa ito imprecision. 860 00:45:05,150 --> 00:45:09,470 >> At para sa lahat ng alam mo na, ito ang pang-isang daan lugar ng decimal na ang 861 00:45:09,470 --> 00:45:13,670 lumulutang na tuldok ay hindi magagawang upang tamang pangasiwaan. 862 00:45:13,670 --> 00:45:18,180 At kaya pagkakapantay-pantay ay mabibigo lamang kahit na bagaman ang numero na - kung ito ay hindi naging 863 00:45:18,180 --> 00:45:24,450 gamit ang eksaktong numero, ang mga numero ay dapat na naging eksaktong kapareho. 864 00:45:24,450 --> 00:45:27,790 Ito ay sa kabuuan ng tulad ng 50 mga pagkalkula gamit ang mga lumulutang 865 00:45:27,790 --> 00:45:30,270 mga halaga ng punto, maaari bumuo ng mga error up at up at up, at 866 00:45:30,270 --> 00:45:31,125 bagay lamang makakuha ng maling. 867 00:45:31,125 --> 00:45:33,870 >> Joseph: At nagkaroon talaga sikat na halimbawa ng ito nangyayari. 868 00:45:33,870 --> 00:45:37,190 Tulad ng NASA inhinyero na makakakuha ito mali, na nagiging sanhi Rockets upang sumabog sa 869 00:45:37,190 --> 00:45:38,665 ang mga naka matapos nilang ma-inilunsad. 870 00:45:38,665 --> 00:45:41,490 At maraming mga isyu tulad na. 871 00:45:41,490 --> 00:45:41,956 Kaya oo. 872 00:45:41,956 --> 00:45:45,218 >> Speaker 6: Kapag sinabi mong 0.3 f, ay ito pungusan ang natitira? 873 00:45:45,218 --> 00:45:46,468 O kaya ay ito paglilikom o pababa? 874 00:45:46,468 --> 00:45:48,800 875 00:45:48,800 --> 00:45:50,200 >> Rob: Ay printf-ikot ito? 876 00:45:50,200 --> 00:45:52,180 >> Joseph: tingin ko printf truncates. 877 00:45:52,180 --> 00:45:52,640 >> Rob: OK. 878 00:45:52,640 --> 00:45:59,890 Kaya maaari nang katulad namin pumunta sa tapat ng direksyon ng ito kung saan, sa kasong ito, 879 00:45:59,890 --> 00:46:03,320 ang pinakamalapit na maaaring kumatawan 0.1 ay may numerong ito. 880 00:46:03,320 --> 00:46:06,820 Ang pinakamalapit na maaaring maging ito magagawang kumakatawan sa 0.2 ay nasa tapat 881 00:46:06,820 --> 00:46:11,420 direksyon, .199999996356 o isang bagay. 882 00:46:11,420 --> 00:46:17,480 Kaya kung nagpunta kami sa na direksyon ng bagay, at pagkatapos ay printf 0.3 f ay magbabalik 883 00:46:17,480 --> 00:46:20,866 1.99 sa halip ng 2.00. 884 00:46:20,866 --> 00:46:22,960 >> Joseph: At ako ay hindi ganap na sigurado sa na. 885 00:46:22,960 --> 00:46:25,430 Baka gusto mong magsulat ng isang maliit, kaunti programa upang tingnan lamang iyon. 886 00:46:25,430 --> 00:46:29,370 >> Rob: Kahit na, kung ano kami ay bang ng ay na kung sinubukan mong mag-cast na sa isang 887 00:46:29,370 --> 00:46:33,660 int, at paghahagis sa isang int ay pagpunta sa maging sanhi ito upang pungusan ang decimal, kung 888 00:46:33,660 --> 00:46:38,140 mong subukan sa cast 1.9999999 papunta sa isang int, makakakuha ka ng 1. 889 00:46:38,140 --> 00:46:41,440 At gayon dapat mong gamitin sa pangkalahatan ang mga pag-ikot ng function sa matematika library. 890 00:46:41,440 --> 00:46:44,190 891 00:46:44,190 --> 00:46:45,440 Mga Katanungan? 892 00:46:45,440 --> 00:46:47,660 893 00:46:47,660 --> 00:46:48,982 OK. 894 00:46:48,982 --> 00:46:54,000 >> Joseph: Kaya gumagalaw sa upang kundisyon at Boolean expression. 895 00:46:54,000 --> 00:46:58,120 Kaya na nakita mo ang mga bago. 896 00:46:58,120 --> 00:47:07,420 At talagang, hayaan mo akong tiyakin ang aking computer na nasa kanan format dito. 897 00:47:07,420 --> 00:47:08,670 Space. 898 00:47:08,670 --> 00:47:10,630 899 00:47:10,630 --> 00:47:13,870 Paumanhin, kami ay pagpunta sa may haharapin ang isang Medyo may cutoff sa mga gilid. 900 00:47:13,870 --> 00:47:15,830 >> Ngunit oo, mo guys na nakita ito bago sa simula. 901 00:47:15,830 --> 00:47:19,930 Kaya ito karapatan dito ay isang expression na ginagamit sa 902 00:47:19,930 --> 00:47:21,250 isang kondisyon statement. 903 00:47:21,250 --> 00:47:23,930 Kaya sagutin mas mataas sa zero kalooban sabihin mo totoo o hindi. 904 00:47:23,930 --> 00:47:26,530 At ang mga ito ay talagang mahalaga, dahil pinapayagan nila sa amin upang ipakilala 905 00:47:26,530 --> 00:47:28,670 logic sa aming code. 906 00:47:28,670 --> 00:47:32,820 >> Kaya halimbawa, ito ay isang programa nakasulat sa scratch na nagtatanong sa gumagamit 907 00:47:32,820 --> 00:47:36,980 para sa isang integer at nagsasabi sa kanila kung ang integer na binigyan ka nila ng 908 00:47:36,980 --> 00:47:38,690 positibo o negatibong numero. 909 00:47:38,690 --> 00:47:42,980 At ang mga conversion sa paglipas dito upang makita ang mo munang i-print ang pahayag, 910 00:47:42,980 --> 00:47:43,870 bigyan ako ng integer. 911 00:47:43,870 --> 00:47:45,980 At pagkatapos ay hilingin mo ang mga ito para sa isang integer. 912 00:47:45,980 --> 00:47:49,870 >> At pagkatapos ay gamitin mo kondisyon logic sa ibabaw dito upang suriin kung ang numero na 913 00:47:49,870 --> 00:47:52,030 ay talagang mas mataas sa zero o hindi. 914 00:47:52,030 --> 00:47:58,960 Kaya dito mayroon kaming isang Boolean expression sa loob ng isang kondisyon Kung statement. 915 00:47:58,960 --> 00:48:00,660 Mayroon bang anumang mga katanungan? 916 00:48:00,660 --> 00:48:03,030 Mayroon bang anumang mga tanong tungkol sa na? 917 00:48:03,030 --> 00:48:03,950 OK. 918 00:48:03,950 --> 00:48:06,140 >> Kaya mayroong higit pa sa mas malaki kaysa sa, siyempre. 919 00:48:06,140 --> 00:48:10,385 Maaari kang bumuo ng Boolean expression gamit ang karamihan sa mga uri ng mga bagay sa iyo 920 00:48:10,385 --> 00:48:11,150 Gusto isipin sa matematika. 921 00:48:11,150 --> 00:48:12,370 Kaya mas malaki kaysa sa. 922 00:48:12,370 --> 00:48:13,740 Iyon ay dapat na isang mas mababa. 923 00:48:13,740 --> 00:48:14,990 Sorry. 924 00:48:14,990 --> 00:48:18,520 925 00:48:18,520 --> 00:48:19,760 At ang mga puwang. 926 00:48:19,760 --> 00:48:22,971 >> Rob: huwag sana iwan mo ito. 927 00:48:22,971 --> 00:48:23,620 >> Joseph: Lahat ng karapatan. 928 00:48:23,620 --> 00:48:25,950 Kaya mas malaki kaysa sa, mas mababa, mas malaki kaysa sa, o patas sa, mas mababa 929 00:48:25,950 --> 00:48:27,070 kaysa sa, o patas sa. 930 00:48:27,070 --> 00:48:31,980 Gumagamit kami ng double Kapantay upang tingnan ang mga pagkakapantay-pantay, dahil solong ay katumbas ng paraan 931 00:48:31,980 --> 00:48:32,810 pagtatalaga, tama? 932 00:48:32,810 --> 00:48:33,140 Oo. 933 00:48:33,140 --> 00:48:37,130 At pagkatapos namin ay maaari ring hindi katumbas ng gamit ang tandang pananong, katumbas. 934 00:48:37,130 --> 00:48:41,530 >> At ito simbolo tandang pananong maaari din patagalin upang kung nais mong 935 00:48:41,530 --> 00:48:44,050 upang Baliktarin ang anumang uri ng Boolean expression, maaari mong gawin iyon. 936 00:48:44,050 --> 00:48:48,530 Kaya ito ay magtatasa sa true lamang kung ang sagot ay mas mababa 937 00:48:48,530 --> 00:48:51,240 mababa sa o katumbas ng zero. 938 00:48:51,240 --> 00:48:53,950 Ang anumang mga katanungan sa iyon? 939 00:48:53,950 --> 00:48:55,180 OK. 940 00:48:55,180 --> 00:48:58,840 >> Kaya maaari mo ring pagsamahin ang mga expression gamit ang lohikal na At at 941 00:48:58,840 --> 00:48:59,790 lohikal O kaya. 942 00:48:59,790 --> 00:49:03,530 Kaya ito ay lamang ang simbolong At, na dapat ay Shift, 7. 943 00:49:03,530 --> 00:49:07,720 At ito ang simbolong pipe, na Hindi isang mas mababang kaso L. Ito ang isa 944 00:49:07,720 --> 00:49:09,440 na akma sa itaas ng iyong Enter key. 945 00:49:09,440 --> 00:49:12,870 Kaya gumamit ka ng dalawang sa mga ito upang sumagisag lohikal At ang mga lohikal O kaya. 946 00:49:12,870 --> 00:49:18,180 >> Kaya ito ay magbabalik lamang totoo kung sagot ay isa, dalawa, tatlo, o apat. 947 00:49:18,180 --> 00:49:23,030 At ito ay magbabalik lamang totoo kung sagot ay lampas na sa magkabilang panig. 948 00:49:23,030 --> 00:49:26,190 Kaya ito ay hindi isa, dalawa, tatlo, o apat. 949 00:49:26,190 --> 00:49:28,385 At ang paraan na gusto mong gamitin na sa isang expression - 950 00:49:28,385 --> 00:49:29,990 >> Rob: O isang zero o isang limang. 951 00:49:29,990 --> 00:49:32,200 >> Joseph: Zero o isang limang. 952 00:49:32,200 --> 00:49:32,380 Sorry. 953 00:49:32,380 --> 00:49:33,320 Oo, oo, oo. 954 00:49:33,320 --> 00:49:34,180 OK. 955 00:49:34,180 --> 00:49:38,980 At sa paglipas dito ngayon, sa parehong paraan sa iyo maaaring gamitin na expression, isang mas maliit 956 00:49:38,980 --> 00:49:42,000 expression bahagi ng isang Kung may pasubali statement, gusto mo din ito ang gamitin 957 00:49:42,000 --> 00:49:47,800 parehong paraan sa pamamagitan ng paglalagay lamang ito sa loob ng ang mga panaklong ng Kung statement. 958 00:49:47,800 --> 00:49:54,020 Kaya ay apoy na ito printf lamang kung sagot ay isa, dalawa, tatlo, o apat. 959 00:49:54,020 --> 00:49:56,002 Ang anumang mga katanungan sa pagsasama-sama expression? 960 00:49:56,002 --> 00:50:00,450 961 00:50:00,450 --> 00:50:04,240 >> Kaya mayroong isa pang kondisyon bumuo ng tinatawag naming Kung / Iba Pa. 962 00:50:04,240 --> 00:50:08,120 Kaya talaga, ito ay nangangahulugan na ngayon, OK, Kung isang bagay Nais kong suriin ay hindi 963 00:50:08,120 --> 00:50:11,600 totoo, pagkatapos ay pumunta sa Iba Pa at gumanap na pang aksyon. 964 00:50:11,600 --> 00:50:15,570 Kaya sa partikular na kasong ito, tinanong ko ang gumagamit para sa isang integer. 965 00:50:15,570 --> 00:50:17,790 Ay ang integer na higit sa zero? 966 00:50:17,790 --> 00:50:18,310 Oo? 967 00:50:18,310 --> 00:50:20,100 Well, pagkatapos sila kinuha isang positibong numero. 968 00:50:20,100 --> 00:50:22,320 Kung hindi, pagkatapos ay dapat na magkaroon ito naging negatibo o isang zero. 969 00:50:22,320 --> 00:50:27,530 Kaya pinili mo ang isang negatibong numero o isang zero na sa kasong ito. 970 00:50:27,530 --> 00:50:29,235 Oo. 971 00:50:29,235 --> 00:50:30,485 O isang zero. 972 00:50:30,485 --> 00:50:36,320 973 00:50:36,320 --> 00:50:39,300 >> At pagkatapos ay mayroon din namin Kung / Iba Pa, Kung at Iba Pa. 974 00:50:39,300 --> 00:50:45,640 Kaya ito ay nagbibigay-daan sa amin magsagawa ng isang pagkakasunod-sunod ng bagay lamang kung mabigo ang unang bago. 975 00:50:45,640 --> 00:50:49,540 Kaya sa kasong ito, ngayon ginagawa namin ang huli pumili ka ng zero. 976 00:50:49,540 --> 00:50:53,080 Kaya kung sila alinma'y hindi kinuha ng isang positibong ni isang negatibong numero, pagkatapos ay dapat sila 977 00:50:53,080 --> 00:50:53,640 pumili zero. 978 00:50:53,640 --> 00:50:56,720 Kaya mangyaring hindi lamang ito pababa ang chain na katulad nito. 979 00:50:56,720 --> 00:50:59,960 >> Kaya isang halimbawa kung paano ang isang Kung ay naiiba mula sa - 980 00:50:59,960 --> 00:51:02,590 Kung ang isang / Iba Pa ay naiiba mula sa isang pagkakasunod-sunod lamang ng Ifs. 981 00:51:02,590 --> 00:51:07,680 At ito ay isang pangkaraniwang tanong na hilingin sa mga tao ay, well, kung hindi ka tulad ng isang 982 00:51:07,680 --> 00:51:11,265 95 sa CS50, ano nasain ito programa sabihin sa iyo? 983 00:51:11,265 --> 00:51:12,600 >> Tagapagsalita 5: Nakakuha ka ng isang A. 984 00:51:12,600 --> 00:51:13,490 >> Joseph: Oo. 985 00:51:13,490 --> 00:51:14,960 Nakakuha ka bawat solong isa sa mga karapatan. 986 00:51:14,960 --> 00:51:17,130 Nakakuha ka ng A, na nakuha ng isang B, mo Naging isang C at isang D, tama? 987 00:51:17,130 --> 00:51:19,770 Kaya lahat ng mga ito makakuha ng nasuri sa pagkakasunud-sunod. 988 00:51:19,770 --> 00:51:23,570 Kaya habang 95 ay mas malaki sa 90, ito ay mas mataas din sa 80, ito ay din 989 00:51:23,570 --> 00:51:25,790 mas mataas sa 70, at ito ay din mas malaki sa 60. 990 00:51:25,790 --> 00:51:27,620 Kaya nakuha mo ang lahat ng mga grado. 991 00:51:27,620 --> 00:51:31,630 At ipagpalagay ko ng ginagawa mo nais lamang ang A. 992 00:51:31,630 --> 00:51:34,060 >> Ang paraan upang ayusin na ay upang palitan ang mga may Iba Pa / Kung 's. 993 00:51:34,060 --> 00:51:37,540 Kaya sa sitwasyong ito, makakakita nito na 95 ay mas mataas sa 90, at pagkatapos ay ginagawa nito 994 00:51:37,540 --> 00:51:38,885 hindi nag-evaluate ang natitira sa mga pahayag. 995 00:51:38,885 --> 00:51:41,900 996 00:51:41,900 --> 00:51:43,150 Ang anumang mga katanungan tungkol sa na? 997 00:51:43,150 --> 00:51:48,580 998 00:51:48,580 --> 00:51:52,470 >> Kaya mayroong isa pang kondisyon uri ng istraktura na mayroon kami dito na kami 999 00:51:52,470 --> 00:51:53,390 tumawag sa isang switch statement. 1000 00:51:53,390 --> 00:51:57,390 Kaya ito ay nagbibigay-daan isa lamang na tingnan mo kung ano ang halaga ng isang numero inilagay mo 1001 00:51:57,390 --> 00:51:59,000 papunta sa switch statement. 1002 00:51:59,000 --> 00:52:03,200 Kaya sa sitwasyong ito, kami ay lumilipat sa n, at sinasabi na namin, oh, kung n ay 1003 00:52:03,200 --> 00:52:04,710 isa, pagkatapos ay i-print ang pahayag na iyon. 1004 00:52:04,710 --> 00:52:07,910 At pagkatapos ay masira, na nangangahulugan na exit sa labas ng switch statement. 1005 00:52:07,910 --> 00:52:12,670 >> Kung ito ay isang hindi isa, pagkatapos, well, lamang Sa kalaunan suriin ang lahat ng mga kasong iyon. 1006 00:52:12,670 --> 00:52:16,280 At kaya sumusuri ito kung ito ay isa o dalawa o tatlo, at ito ng mga Kopya nang naaayon. 1007 00:52:16,280 --> 00:52:19,780 At kung ano down na dito ang default na keyword paraan ay kung sila ay hindi naglagay ng anumang 1008 00:52:19,780 --> 00:52:21,690 ng mga, pagkatapos ay sabihin Di-wastong. 1009 00:52:21,690 --> 00:52:25,910 Kaya sabihin nating magtanong ako para sa n at ay nagbibigay sa gumagamit ng akin apat. 1010 00:52:25,910 --> 00:52:29,470 Well, ito ay tumutugma wala sa mga kasong iyon, kaya ito ay i-print out kung ano ang sa 1011 00:52:29,470 --> 00:52:30,540 default na seksyon. 1012 00:52:30,540 --> 00:52:31,180 Oo, tanong? 1013 00:52:31,180 --> 00:52:32,614 >> Tagapagsalita 5: Maaari mong gamitin ang Boolean sa halip na expression 1014 00:52:32,614 --> 00:52:33,570 isa, dalawa, o tatlong? 1015 00:52:33,570 --> 00:52:36,940 >> Joseph: Kaya ang tanong ay maaari mong gamitin ang Boolean expression sa halip na ang isa, 1016 00:52:36,940 --> 00:52:37,940 dalawa, at tatlong? 1017 00:52:37,940 --> 00:52:40,520 At sa C, Naniniwala ako sa iyo Hindi maaaring gawin iyon. 1018 00:52:40,520 --> 00:52:44,320 Ngunit sa ibang mga wika, na kung saan maaari mong makaharap sa dulo ng 1019 00:52:44,320 --> 00:52:46,460 semestre tulad ng JavaScript, magagawa mo na. 1020 00:52:46,460 --> 00:52:50,050 Well, magkakaroon ka ng sa unang compute halaga na iyon at pagkatapos ay gamitin ito sa 1021 00:52:50,050 --> 00:52:50,650 lumipat statement. 1022 00:52:50,650 --> 00:52:50,930 Oo? 1023 00:52:50,930 --> 00:52:54,760 >> Rob: Kaya bahagi ng benepisyo ng paglipat pahayag ay mag-isip ng kung ginawa mo ito 1024 00:52:54,760 --> 00:52:58,680 bilang isang Kung / Iba Pa, kaya tulad ng kung n ay katumbas ng ay katumbas ng isa o kahit ano. 1025 00:52:58,680 --> 00:53:00,300 Iba Pa / Kung n katumbas ay katumbas ng dalawa, kahit anong. 1026 00:53:00,300 --> 00:53:01,960 Iba Pa / Kung n katumbas ay katumbas ng tatlo. 1027 00:53:01,960 --> 00:53:05,930 Kaya ang paraan ng programa ay tumakbo ito Gusto pumunta nang sunud-sunod down na listahan na 1028 00:53:05,930 --> 00:53:07,500 at suriin, ay n isa? 1029 00:53:07,500 --> 00:53:08,040 Nope. 1030 00:53:08,040 --> 00:53:09,070 Ay n dalawa? 1031 00:53:09,070 --> 00:53:09,490 Nope. 1032 00:53:09,490 --> 00:53:10,940 Ay n tatlong? 1033 00:53:10,940 --> 00:53:11,710 Oo. 1034 00:53:11,710 --> 00:53:12,610 Gawin ito. 1035 00:53:12,610 --> 00:53:15,270 >> Sapagkat may switch pahayag, ito ay talaga makakapag-compile ito upang maging 1036 00:53:15,270 --> 00:53:16,360 talagang mabilis. 1037 00:53:16,360 --> 00:53:19,550 At sa lalong madaling ang nakasulat sa paglipat, ito sabi, lahat ng karapatan, n ay dalawang, ako 1038 00:53:19,550 --> 00:53:23,060 agad ng pagpunta sa tumalon sa kung saan Ako dapat na magsimula e-execute. 1039 00:53:23,060 --> 00:53:26,080 Hindi ako pupunta sa unang suriin, ay n isa, ay N dalawa? 1040 00:53:26,080 --> 00:53:28,860 Maaaring agad na itong magsimula ng paggawa ano ang dapat gawin. 1041 00:53:28,860 --> 00:53:33,830 >> At dahil doon, hindi ito maaari tumagal ng Boolean kundisyon. 1042 00:53:33,830 --> 00:53:36,480 O kaya ito ay mayroon na gawin ang sequential, tulad ng, ang lahat ng karapatan, ay n 1043 00:53:36,480 --> 00:53:37,820 mas mataas sa zero? 1044 00:53:37,820 --> 00:53:41,140 Iba Pa ay n mas mataas sa 10 o kahit ano. 1045 00:53:41,140 --> 00:53:44,780 >> Joseph: Sa kasong ito, kung iyong ginamit Kung / Iba Pa, Kung, pagkatapos ng paglipat ng ginagawa 1046 00:53:44,780 --> 00:53:47,792 magpatakbo ng humigit-kumulang tatlong beses mas mabilis kaysa sa Kung / Iba Pa, Kung. 1047 00:53:47,792 --> 00:53:53,060 1048 00:53:53,060 --> 00:53:56,040 Maaari naming ayusin ang paglipat sa tulad isang paraan na hindi namin masira 1049 00:53:56,040 --> 00:53:57,520 pagkatapos ng bawat isa sa mga kaso. 1050 00:53:57,520 --> 00:54:00,960 Kaya sa kasong ito, ako partitioning ang mga numero na naming pumili sa isa at 1051 00:54:00,960 --> 00:54:04,250 dalawang pagiging hindi matataas na numero at tatlong pagiging isang mataas na bilang. 1052 00:54:04,250 --> 00:54:08,290 >> Kaya sa kasong ito, kung n ay isa o dalawa, ito ay pindutin ang kaso at pagkatapos ang ito 1053 00:54:08,290 --> 00:54:10,640 mabigo, dahil walang pahinga. 1054 00:54:10,640 --> 00:54:11,610 At ito ay nagtatapos up dito. 1055 00:54:11,610 --> 00:54:15,360 Kaya kung pumili kami ng isa, ito ay gawin ang printf at pagkatapos ay hatiin sa gayon ay wala sa 1056 00:54:15,360 --> 00:54:17,610 ito ay pinaandar. 1057 00:54:17,610 --> 00:54:21,870 At siyempre, kung ipasok sila sa tatlong o ibang bagay, pagkatapos ay laktawan ito 1058 00:54:21,870 --> 00:54:25,320 mga at hindi pumunta doon, at ito ay maisagawa sa halip ang 1059 00:54:25,320 --> 00:54:27,490 nakaayon linya. 1060 00:54:27,490 --> 00:54:29,390 Mayroon bang anumang mga tanong tungkol sa na? 1061 00:54:29,390 --> 00:54:29,780 Oo? 1062 00:54:29,780 --> 00:54:32,642 >> Tagapagsalita 4: Gusto kumuha ka ng isang error kung ikaw Nagkaroon ng pahinga pagkatapos kaso isa ngunit ito 1063 00:54:32,642 --> 00:54:34,550 ay hindi magkaroon ng isang bagay para ito gawin? 1064 00:54:34,550 --> 00:54:37,820 >> Joseph: Kaya ang tanong ay nais kumuha ka ng isang error kung mayroon kang magpahinga pagkatapos ng 1065 00:54:37,820 --> 00:54:39,730 case isa ngunit may walang kinalaman sa kung? 1066 00:54:39,730 --> 00:54:41,520 At ang sagot ay hindi. 1067 00:54:41,520 --> 00:54:43,172 Hindi mo talaga ay nakakakuha ng error. 1068 00:54:43,172 --> 00:54:44,590 Oo, mm Hmm. 1069 00:54:44,590 --> 00:54:54,540 >> Kaya bilang uri ng isang maliit na pagbabago dito, Pupunta ako upang ilagay ang isang printf dito. 1070 00:54:54,540 --> 00:54:55,790 Oops. 1071 00:54:55,790 --> 00:55:00,994 1072 00:55:00,994 --> 00:55:04,880 Kaya kung ano ang i-print ito kung Naglagay ako ng isa sa bilang ng pag-input? 1073 00:55:04,880 --> 00:55:07,530 1074 00:55:07,530 --> 00:55:07,770 Oo. 1075 00:55:07,770 --> 00:55:10,360 Ito sabihin mo hindi ito tumagal isang mataas na bilang dalawang beses, tama? 1076 00:55:10,360 --> 00:55:13,500 Dahil ito ay pindutin ang unang kaso, ito ay hindi masira, at nais ito mahulog 1077 00:55:13,500 --> 00:55:15,730 sa pamamagitan ng pangalawang kaso. 1078 00:55:15,730 --> 00:55:16,950 Ang anumang mga katanungan tungkol sa na? 1079 00:55:16,950 --> 00:55:18,280 >> Rob: Mayroon ka ba ng isa pang tanong? 1080 00:55:18,280 --> 00:55:20,840 >> Joseph: OK, palamig. 1081 00:55:20,840 --> 00:55:22,400 Ayos lang. 1082 00:55:22,400 --> 00:55:25,780 Kaya mayroong ibang bagay tinatawag naming isang tatluhan operator kung saan ay isa lamang ng isang 1083 00:55:25,780 --> 00:55:29,010 kahaliling syntax sa paggawa Kung at pagkatapos Iba Pa. 1084 00:55:29,010 --> 00:55:30,470 At ito ay nagbibigay-daan gawin mo ang lahat ng ito sa isang linya. 1085 00:55:30,470 --> 00:55:34,110 Kaya sa ang partikular na programa, Ako na nagtatanong sa gumagamit para n. 1086 00:55:34,110 --> 00:55:37,190 At kung n ay mas malaki kaysa sa 100, sabihin ko kinuha sila na nila ang isang mataas na bilang. 1087 00:55:37,190 --> 00:55:39,560 Iba Pa Sinasabi ko sa kanila sila kinuha ang isang mababang numero. 1088 00:55:39,560 --> 00:55:43,030 >> Kaya maaari naming gamitin ito talaga mahaba ang syntax, string, S, at pagkatapos ay tingnan kung n ay 1089 00:55:43,030 --> 00:55:45,260 mas malaki sa 100 at magtalaga ito nang naaayon. 1090 00:55:45,260 --> 00:55:49,450 Ngunit maaari naming gawin ang mas maigsi subalit malaman sa pamamagitan ng paggamit na ito tatluhan operator syntax 1091 00:55:49,450 --> 00:55:52,090 na kung saan ay nagsasangkot ng isang katanungan mark at ng tutuldok. 1092 00:55:52,090 --> 00:55:55,070 Kaya ng tandang pananong ay mahalagang nagtatanong ng tanong, tama? 1093 00:55:55,070 --> 00:55:56,625 >> Rob: Siguro mag-zoom in sa na. 1094 00:55:56,625 --> 00:55:57,372 >> Joseph: Oo. 1095 00:55:57,372 --> 00:56:00,210 Magandang punto. 1096 00:56:00,210 --> 00:56:02,550 Kaya ito ay ang tatlong bagay operator. 1097 00:56:02,550 --> 00:56:06,100 Ako muna tanungin ang tanong, ay n mas mataas sa 100? 1098 00:56:06,100 --> 00:56:09,770 Kung ito ay, pagkatapos ay i-execute ko ang unang bahagi bago ang tutuldok. 1099 00:56:09,770 --> 00:56:13,360 Kung ito ay hindi, pagkatapos ay i-execute ko ang ikalawang bahagi pagkatapos ng colon. 1100 00:56:13,360 --> 00:56:16,640 Kaya kung n ay mas malaki kaysa sa 100, pagkatapos ito Pick mataas at naglalagay 1101 00:56:16,640 --> 00:56:18,360 na sa string s. 1102 00:56:18,360 --> 00:56:22,170 Kung n Mababa sa 100, ito Pick mababa at pagkatapos ay naglalagay na sa string s. 1103 00:56:22,170 --> 00:56:30,186 Kaya na paikliin ito malaki tigkal down sa lamang na isang linya. 1104 00:56:30,186 --> 00:56:32,010 >> Tagapagsalita 5: sikat na ba iyon? 1105 00:56:32,010 --> 00:56:36,070 >> Joseph: Oo, ito ay masyadong sikat para sa mga bagay na kung saan lubos na gusto mong 1106 00:56:36,070 --> 00:56:38,700 huwag isang pagtatalaga batay sa isang uri ng kondisyon. 1107 00:56:38,700 --> 00:56:43,110 At sa kasong ito, ay namin sinusubukan upang magtalaga ng halaga sa mga string s. 1108 00:56:43,110 --> 00:56:44,840 Hindi kaya - 1109 00:56:44,840 --> 00:56:47,670 Hulaan ko hindi talaga Mas gusto ko ito sa ibang mga kaso. 1110 00:56:47,670 --> 00:56:49,390 Ngunit ito ay lalong kapaki-pakinabang para sa pagtatalaga. 1111 00:56:49,390 --> 00:56:54,490 >> Rob: Iyon ay isang magandang karaniwang mga pattern kung saan mayroon kang ilang mga variable na 1112 00:56:54,490 --> 00:56:58,200 ka pagpunta sa sabihin, kung ang isang bagay, itinakda ito variable sa isang halaga; iba, itakda 1113 00:56:58,200 --> 00:56:59,810 ito variable sa isa pang halaga. 1114 00:56:59,810 --> 00:57:03,360 At iyon ay ang sitwasyong kung saan gumamit ng tatlong bagay. 1115 00:57:03,360 --> 00:57:05,220 >> Joseph: At iyong sine-save maraming mga linya, tama? 1116 00:57:05,220 --> 00:57:08,090 At ito lamang ang gumagawa ng iyong code arguably Medyo mas nababasa. 1117 00:57:08,090 --> 00:57:08,635 Oo, tanong? 1118 00:57:08,635 --> 00:57:12,384 >> Speaker 6: Para sa isang tatlong bagay, maaari kang pumunta, Kapantay string s s, tandang pananong? 1119 00:57:12,384 --> 00:57:15,280 At pagkatapos ay maaari kang magkaroon ng, sabihin nating, limang iba't ibang mga pagpipilian. 1120 00:57:15,280 --> 00:57:18,310 At depende sa kung ano ang bilang ng mga n ay, ay pumili ka ng isa sa mga? 1121 00:57:18,310 --> 00:57:22,210 >> Joseph: Kaya ang tanong ay, ay mayroong isang uri ng syntax kung saan maaari mong gawin string 1122 00:57:22,210 --> 00:57:25,910 s ay katumbas n, at pagkatapos ay magkaroon ng higit sa dalawang mga pagpipilian matapos na tandang pananong? 1123 00:57:25,910 --> 00:57:29,740 At isang simpleng sagot ay hindi, wala talagang isang mahusay na paraan upang gawin iyon maliban kung 1124 00:57:29,740 --> 00:57:33,850 gusto mong ma-nest ang maramihang tatluhan operator sa loob ng bawat isa. 1125 00:57:33,850 --> 00:57:38,050 >> Maaari mong gawin tulad n mas malaki kaysa sa 100, tandang pananong, at pagkatapos ay isa pang 1126 00:57:38,050 --> 00:57:41,850 tatluhan operator, n mas mataas sa 50, tandang pananong, at pugad ito na paraan. 1127 00:57:41,850 --> 00:57:45,240 Ngunit sa sitwasyong iyon, ang iyong code ay pagkuha ng uri ng hindi nababasa at maraming kalat, 1128 00:57:45,240 --> 00:57:47,920 at maaaring maging mas mahusay na ito upang pumunta lamang sa Kung ang isang / Iba Pa pahayag sa puntong iyon. 1129 00:57:47,920 --> 00:57:54,530 >> Rob: At din, bilang isang bahagi tala, PHP mali ang ipinapatupad ang tatlong bagay 1130 00:57:54,530 --> 00:57:58,053 operator tulad na Nested ternaries huwag kahit na gumagana ayon sa nararapat. 1131 00:57:58,053 --> 00:57:58,840 >> Joseph: Oo. 1132 00:57:58,840 --> 00:58:01,170 Kaya ito ay nakakakuha Medyo nakakalito, lalo na kapag pumunta sa iyo 1133 00:58:01,170 --> 00:58:02,145 sa iba't ibang mga wika. 1134 00:58:02,145 --> 00:58:04,810 >> Rob: Ito ay nakalilito sapat na wika ay mali tungkol dito. 1135 00:58:04,810 --> 00:58:08,030 1136 00:58:08,030 --> 00:58:11,510 >> Joseph: Kaya talaga, lamang na linawin, ang lahat ng tao alam kung ano na 1137 00:58:11,510 --> 00:58:13,900 % S gumagana sa paglipas dito? 1138 00:58:13,900 --> 00:58:15,650 Ang anumang mga katanungan tungkol sa na? 1139 00:58:15,650 --> 00:58:19,760 Hulaan ko lang para sa mga camera, ang% s talaga ay nagbibigay-daan sa amin maglagay ng placeholder 1140 00:58:19,760 --> 00:58:20,790 para sa isang string. 1141 00:58:20,790 --> 00:58:23,920 At pagkatapos ay sa dulo, tukuyin namin na ang variable na gusto naming ilagay sa ito 1142 00:58:23,920 --> 00:58:25,500 may-ari ng lugar ay s. 1143 00:58:25,500 --> 00:58:27,730 Kaya na isa lamang tumatagal s at ito ay nilalagay ito sa dito. 1144 00:58:27,730 --> 00:58:32,130 At pagkatapos ay i-print ito, na iyong pinili ang isang mataas o mo kinuha ang isang mababang numero. 1145 00:58:32,130 --> 00:58:33,770 OK. 1146 00:58:33,770 --> 00:58:36,970 >> Kaya mga loop-daan sa iyo upang maisagawa ang mga bagay sa pabilog na galaw, tama? 1147 00:58:36,970 --> 00:58:40,300 Maaaring nakatagpo ka ito sa Scratch sa anyo ng mga loop sa Habang Panahon 1148 00:58:40,300 --> 00:58:45,650 o Ulitin Hanggang sa o Ulitin ang isang partikular na bilang ng beses. 1149 00:58:45,650 --> 00:58:47,540 Kaya bakit mabuti para sa amin na ito ay? 1150 00:58:47,540 --> 00:58:51,500 Well, sa C, sabihin nating mayroon kaming ito kanta na ipinapatupad sa scratch na 1151 00:58:51,500 --> 00:58:53,450 SINGS, ito ang kanta na hindi kailanman nagtatapos. 1152 00:58:53,450 --> 00:58:55,710 Ito napupunta lamang sa at sa at sa magpakailanman at magpakailanman. 1153 00:58:55,710 --> 00:58:59,395 Well, maaari mong hindi talaga makagawa ng isang programa na may isang walang-katapusang bilang ng mga printf 1154 00:58:59,395 --> 00:59:00,850 mga pahayag sa loob nito, tama? 1155 00:59:00,850 --> 00:59:04,900 >> Kaya sa partikular na sitwasyon, isang paraan na maaari kang magsagawa sa trabahong ito at 1156 00:59:04,900 --> 00:59:09,330 upang gawin itong i-print ang magpakailanman ay upang sa halip ay gamitin ang isang Habang loop. 1157 00:59:09,330 --> 00:59:13,640 Kaya isang Habang loop ay isakatuparan kung ano ang sa katawan ng dalawang tirante na 1158 00:59:13,640 --> 00:59:17,250 Nabibilang dito batay sa kung ano ang kundisyon ay. 1159 00:59:17,250 --> 00:59:21,170 Kaya sa partikular na halimbawa bago, kung gusto naming i-print ito magpakailanman, kung ano 1160 00:59:21,170 --> 00:59:23,590 maaari naming gawin? 1161 00:59:23,590 --> 00:59:25,190 Well, sigurado, tama? 1162 00:59:25,190 --> 00:59:32,290 >> Kaya uri ng pinagsasama ito sa ideya ng ilang mga Boolean expression 1163 00:59:32,290 --> 00:59:33,610 kasama ang isang loop. 1164 00:59:33,610 --> 00:59:35,780 At natutunan namin tungkol sa Boolean mas maaga expression. 1165 00:59:35,780 --> 00:59:39,650 Kaya sa tuwing ang kundisyon sa loob ng na Habang nananatiling totoo, ito loop 1166 00:59:39,650 --> 00:59:41,480 ay maisagawa sa at sa at sa. 1167 00:59:41,480 --> 00:59:44,640 At sa kasong ito, kung ibibigay namin ito lamang may totoo, ito nagiging sanhi ng isang walang-katapusang 1168 00:59:44,640 --> 00:59:49,310 loop na mga Kopya ng kanta sa at sa at sa bilang namin ninanais na bago nang walang 1169 00:59:49,310 --> 00:59:52,410 pagkakaroon ng isang program na may isang walang-katapusang bilang ng mga printf pahayag, na kung saan ay 1170 00:59:52,410 --> 00:59:55,220 hindi maaari. 1171 00:59:55,220 --> 00:59:57,810 >> Kaya nang higit pa compellingly, bagaman, Maaari mo itong gamitin ng may 1172 00:59:57,810 --> 00:59:59,710 variable at kundisyon. 1173 00:59:59,710 --> 01:00:04,420 Kaya sabihin nating nais naming ulitin ang parirala, lahat-lahat pasilo, 10 beses. 1174 01:00:04,420 --> 01:00:08,380 Kaya kung ano ang maaari mong gawin sa isang Habang loop ay Maaari mo muna initialize ng sagot 1175 01:00:08,380 --> 01:00:10,860 variable sa labas ng Habang loop sa 10. 1176 01:00:10,860 --> 01:00:14,360 At pagkatapos ay talaga, sa bawat oras na pumunta ka sa pamamagitan ng Habang loop, i-print out ka nito 1177 01:00:14,360 --> 01:00:19,090 ang pahayag at pagkatapos ay bawasan mo ang counter variable hanggang sa dulo, 1178 01:00:19,090 --> 01:00:23,020 sa isang punto, sa sandaling ibawas namin ako sapat beses, 1 mula ako ng sapat na beses - 1179 01:00:23,020 --> 01:00:27,290 at lamang na linawin, ako minus minus Ang ibig sabihin ay katumbas ng ko ko minus 1. 1180 01:00:27,290 --> 01:00:31,280 >> Iyon ay isa lamang dalhin ako pababa sa punto kung saan sa sandaling pindutin ko zero, ito 1181 01:00:31,280 --> 01:00:35,260 kondisyon ay hindi na totoo at kaya lumabas ito sa labas ng loop. 1182 01:00:35,260 --> 01:00:37,045 Kaya lubos pasilo ng mga Kopya lamang 10 beses. 1183 01:00:37,045 --> 01:00:39,550 1184 01:00:39,550 --> 01:00:41,080 Ang anumang mga katanungan tungkol sa isang Habang loop? 1185 01:00:41,080 --> 01:00:44,580 1186 01:00:44,580 --> 01:00:46,790 OK. 1187 01:00:46,790 --> 01:00:50,550 >> Kaya doon ay isang paraan na maaari naming gawin kung ano ang aming lamang ginawa sa isang mas madaling maintindihan sa paraang may 1188 01:00:50,550 --> 01:00:51,715 ang tinatawag naming isang Para sa loop. 1189 01:00:51,715 --> 01:00:55,750 Kaya isang Para sa loop ay binubuo ng isang Pinasimulan, kundisyon, at isang 1190 01:00:55,750 --> 01:00:58,950 pag-update, tulad lamang namin ay may bago sa ganitong Habang loop. 1191 01:00:58,950 --> 01:00:59,890 Kaya ipaalam sa tumagal ng isang hitsura. 1192 01:00:59,890 --> 01:01:02,900 Sa ganitong Habang loop, nagkaroon kami ng isang Pinasimulan, pagkatapos ay nagkaroon kami ng isang 1193 01:01:02,900 --> 01:01:04,260 kondisyon na kami naka-check. 1194 01:01:04,260 --> 01:01:06,450 At pagkatapos ay nagkaroon kami ng isang update hakbang sa itaas. 1195 01:01:06,450 --> 01:01:10,060 >> Sa pamamagitan ng isang Para sa loop, isa lamang tumatagal ito mga tatlong bagay at condenses ito 1196 01:01:10,060 --> 01:01:11,370 down sa isang linya. 1197 01:01:11,370 --> 01:01:15,130 Kaya ang unang bagay na ginagawa nito sa Para sa loop ay ang Pinasimulan. 1198 01:01:15,130 --> 01:01:19,090 At pagkatapos mong gawin ang isang tuldok-kuwit, at pagkatapos ay gawin mo ang kundisyon, na kung saan ay ako 1199 01:01:19,090 --> 01:01:22,200 mas mataas sa zero napupunta banda roon, at pagkatapos ay ang hakbang sa pag-update. 1200 01:01:22,200 --> 01:01:26,470 Kaya ito ay makakakuha ginanap sa pinakadulo ng katawan loop. 1201 01:01:26,470 --> 01:01:28,790 Kaya ang dalawang programa ang lubos na katumbas. 1202 01:01:28,790 --> 01:01:31,960 1203 01:01:31,960 --> 01:01:33,870 >> Ang anumang mga katanungan? 1204 01:01:33,870 --> 01:01:37,000 Kaya kung ano ay isa pagkakaiba sa pagitan ng dalawang? 1205 01:01:37,000 --> 01:01:38,000 Maaari ituro ito ng kahit sino sa labas? 1206 01:01:38,000 --> 01:01:40,480 Maaaring maging isang bit mapaglalang. 1207 01:01:40,480 --> 01:01:41,930 Ito ay lamang ng isang napakaliit na pagkakaiba. 1208 01:01:41,930 --> 01:01:42,330 Oo? 1209 01:01:42,330 --> 01:01:49,008 >> Tagapagsalita 5: mong hindi magagawang gamitin ang ako variable sa labas ng Para sa loop 1210 01:01:49,008 --> 01:01:49,962 [Hindi marinig]? 1211 01:01:49,962 --> 01:01:50,900 >> Joseph: Mismong. 1212 01:01:50,900 --> 01:01:53,550 Kaya ito ay isang bagay na susuriin namin mamaya na tinatawag na variable na saklaw. 1213 01:01:53,550 --> 01:01:56,610 Ngunit mahalagang, ito int kong buhay sa labas ng ito Habang loop. 1214 01:01:56,610 --> 01:01:59,800 Kaya sa sandaling ito Habang loop ay tapos na e-execute, magagawa ko magagawang gamitin ko mamaya 1215 01:01:59,800 --> 01:02:00,880 sa sa programa. 1216 01:02:00,880 --> 01:02:05,430 >> Sapagkat may ganitong Para sa loop, ito int ako ay scoped sa loob ng ito Para sa loop. 1217 01:02:05,430 --> 01:02:10,240 At dahil ito ay nasa loob ng ang bahaging ito ng Para sa loop, na magsisimula 1218 01:02:10,240 --> 01:02:13,200 sa mga panaklong at mga dulo na may ang kulot suhay banda roon. 1219 01:02:13,200 --> 01:02:16,120 Anumang bagay na ipinahayag sa loob ng dito ay hindi maaaring gamitin sa labas. 1220 01:02:16,120 --> 01:02:20,420 Kaya't kung sinusubukan kong gamitin ko sa labas, ipapakita ito sabihin sa akin, hindi nagbigay-alam simbolo. 1221 01:02:20,420 --> 01:02:22,420 At tunay, kong gagawin hindi magagawang gamitin ito. 1222 01:02:22,420 --> 01:02:28,460 >> Rob: At na rin, 10 taon na ang nakakaraan, sa Literal na lahat ng mga kaso, kulot tirante ay 1223 01:02:28,460 --> 01:02:31,140 kung ano ang iyong ginamit upang matukoy ang ang nasasakupan ng isang variable. 1224 01:02:31,140 --> 01:02:37,240 Kaya sa doon, int katumbas ko 10 ay ipinahayag sa loob ng ito 1225 01:02:37,240 --> 01:02:38,520 set ng kulot tirante. 1226 01:02:38,520 --> 01:02:42,530 At kaya pagkatapos hangga't subukan mong gumamit ako bago ito kulot suhay, ito ay pinong. 1227 01:02:42,530 --> 01:02:47,090 1228 01:02:47,090 --> 01:02:51,460 Maaari mong makita kapag nagta-type ka gumawa, mo tingnan gitling, gitling, std, katumbas, c99. 1229 01:02:51,460 --> 01:02:57,100 >> Kaya na ay isang mamaya bersyon ng C na GCC ay ipinatupad na nagbibigay din 1230 01:02:57,100 --> 01:02:58,740 ito shortcut. 1231 01:02:58,740 --> 01:03:03,505 Kaya ginamit ito upang hindi papayagan sa C. At maaari mong makita kung bakit, dahil ito int 1232 01:03:03,505 --> 01:03:07,600 Ay nasa labas ng ito kulot suhay ako pero ito ay itinuturing pa rin na nasa 1233 01:03:07,600 --> 01:03:09,750 saklaw ng mga kulot tirante. 1234 01:03:09,750 --> 01:03:14,120 Ngunit ito ay isang napaka-maginhawang bagay, at kaya ito ay isang mahusay na extension. 1235 01:03:14,120 --> 01:03:15,370 >> Joseph: Anumang mga katanungan? 1236 01:03:15,370 --> 01:03:17,550 1237 01:03:17,550 --> 01:03:19,260 OK. 1238 01:03:19,260 --> 01:03:22,820 Kaya kung ano ang mas kapaki-pakinabang ay na kung minsan gusto mo uri ng dynamism sa 1239 01:03:22,820 --> 01:03:23,410 ang iyong mga loop, tama? 1240 01:03:23,410 --> 01:03:26,350 Hindi mo nais na kinakailangang i-print lamang lahat-lahat pasilo sa lahat ng oras, mo 1241 01:03:26,350 --> 01:03:28,650 nais upang mabilang pababa mula sa 10 o isang bagay. 1242 01:03:28,650 --> 01:03:32,010 At gayon maaari mong gamitin ang counter variable sa loob ng loop na rin. 1243 01:03:32,010 --> 01:03:35,530 At sa kasong ito, ang program na ito lamang Binibilang pababa mula sa 10 sa lahat ng mga paraan pababa. 1244 01:03:35,530 --> 01:03:39,260 At kung ano ang hindi ito i-print? 1245 01:03:39,260 --> 01:03:42,790 Hindi ito i-print zero, karapatan, dahil kapag - 1246 01:03:42,790 --> 01:03:45,460 Oo, ito rin ay hindi-print 11. 1247 01:03:45,460 --> 01:03:49,200 >> Kaya ito ay hindi mag-print ng zero, dahil kapag Ako ay zero, tandaan, ito sinusuri 1248 01:03:49,200 --> 01:03:52,170 ang kondisyon bago ito napupunta sa upang isakatuparan ang katawan loop. 1249 01:03:52,170 --> 01:03:56,820 At kapag ako ay zero, ito ay hindi totoo, kaya hindi ito i-print ang pagbibilang pababa 1250 01:03:56,820 --> 01:04:00,200 zero, prints lang ito out nadaragdagan pa down na 10 ang lahat ng mga paraan pababa sa 1. 1251 01:04:00,200 --> 01:04:03,420 Kung namin Nais talaga ito upang i-print zero, pagkatapos ay nais naming ilagay ng patas na pag-sign 1252 01:04:03,420 --> 01:04:04,750 matapos ito na mas malaki kaysa sa pag-sign. 1253 01:04:04,750 --> 01:04:09,400 1254 01:04:09,400 --> 01:04:10,130 OK. 1255 01:04:10,130 --> 01:04:16,410 >> Kaya isang paraan upang gawin ang pagpapatotoo ng input, na ay kapag tanungin mo ang user na gawin 1256 01:04:16,410 --> 01:04:18,620 isang bagay, nais mong tiyakin na sila sundin ang iyong mga tagubilin, ay ang gamitin 1257 01:04:18,620 --> 01:04:19,400 ang Habang loop, tama? 1258 01:04:19,400 --> 01:04:22,990 Kaya sa partikular na kasong ito, ako nagtatanong para sa isang positibong numero at pagkatapos ay ako 1259 01:04:22,990 --> 01:04:23,810 naghihintay ng pag-input. 1260 01:04:23,810 --> 01:04:28,210 >> At pagkatapos ay naka-check ko Habang ang input ay mas mababa sa zero, panatilihin ang pagtatanong sa kanila. 1261 01:04:28,210 --> 01:04:32,100 Kaya't hangga't mabigyan nila ako ng isang numero na hindi positibo, panatilihin ang pagtatanong, 1262 01:04:32,100 --> 01:04:33,600 panatilihin pagtatanong, panatilihin ang pagtatanong. 1263 01:04:33,600 --> 01:04:35,860 Ngunit kung ano ang uri ng kakaiba tungkol dito? 1264 01:04:35,860 --> 01:04:38,570 O kung ano tila hindi optimal tungkol sa ito istraktura dito mismo? 1265 01:04:38,570 --> 01:04:44,282 1266 01:04:44,282 --> 01:04:44,758 Sinuman? 1267 01:04:44,758 --> 01:04:45,234 Oo? 1268 01:04:45,234 --> 01:04:47,614 >> Speaker 6: ka paulit-ulit na ang pagtuturo nang dalawang beses. 1269 01:04:47,614 --> 01:04:48,100 >> Joseph: Mag-right. 1270 01:04:48,100 --> 01:04:50,090 Kaya mayroon kaming dalawang printf pahayag dito, tama? 1271 01:04:50,090 --> 01:04:53,440 Kaya doon ay isang paraan na maaari kaming makakuha ng mga ito lamang pababa sa isa na gagawing ang aming 1272 01:04:53,440 --> 01:04:57,170 code mas madaling basahin at isang Medyo nang higit pa malinis. 1273 01:04:57,170 --> 01:05:00,180 At pagkatapos ay hindi namin ay magkakaroon upang Na Kumuha sa dalawang beses pati na rin. 1274 01:05:00,180 --> 01:05:03,740 At isang paraan na maaari mong gawin ito ay sa pamamagitan ng paggamit ng isang Do-Habang loop. 1275 01:05:03,740 --> 01:05:07,670 >> At isang Do-Habang loop ay isa lamang ibang paraan ng isang Habang loop kung saan 1276 01:05:07,670 --> 01:05:11,460 ano naman ay nasa loob ng kulot tirante ay makakakuha ng pinaandar ng hindi bababa sa isang beses. 1277 01:05:11,460 --> 01:05:14,840 Kaya sa dito, Ipinahahayag ko, int input, sa labas muna. 1278 01:05:14,840 --> 01:05:18,100 At pagkatapos ko lang sabihin, gawin ito pagtuturo habang input 1279 01:05:18,100 --> 01:05:19,140 Mas mababa sa zero. 1280 01:05:19,140 --> 01:05:20,530 Kaya ito ay pinindot niya muna ang Do. 1281 01:05:20,530 --> 01:05:24,190 Ito ay palaging isakatuparan ito ng hindi bababa sa isang beses, sa gayon ito ay palaging tanungin ang user 1282 01:05:24,190 --> 01:05:25,960 para magpasok ng hindi bababa sa isang beses. 1283 01:05:25,960 --> 01:05:29,390 At pagkatapos ay sinusuri ito ng pag-input na, at ito napupunta sa sa isang lupon. 1284 01:05:29,390 --> 01:05:30,135 Oo, tanong? 1285 01:05:30,135 --> 01:05:32,602 >> Speaker 6: Mayroon bang paraan upang gawin ito [Hindi marinig] uri, tulad ng kung sinasabi mo, 1286 01:05:32,602 --> 01:05:34,268 GetString, at isang tao [hindi marinig] 1287 01:05:34,268 --> 01:05:35,220 ay Mayroon bang paraan upang [hindi marinig] 1288 01:05:35,220 --> 01:05:40,060 >> Joseph: Kaya ang tanong ay, ay mayroong isang paraan upang gawin ang pagpapatotoo ng input kung ang gumagamit 1289 01:05:40,060 --> 01:05:41,850 Hindi ilalagay sa kanan uri ng variable? 1290 01:05:41,850 --> 01:05:44,460 Kaya kung hinihiling namin para sa isang int at sila bigyan kami ng isang string sa halip. 1291 01:05:44,460 --> 01:05:49,110 At sa mga pag-andar na ipapatupad namin para sa iyo, GetInt, GetString sa lahat ng 1292 01:05:49,110 --> 01:05:52,680 mga pag-andar, na aktwal na gawin na uri ng mga pangunahing input uri 1293 01:05:52,680 --> 01:05:54,120 pagpapatunay sa ilalim ng hood. 1294 01:05:54,120 --> 01:05:57,390 Kaya kung gumagamit ka ng mga pag-andar na namin Binigyan mo, wala ka talagang kailangang. 1295 01:05:57,390 --> 01:06:01,380 >> Ngunit kung gusto mong upang tumingin nang higit pa sa kung paano maaari mong talagang gawin iyon, maaari kang tumingin 1296 01:06:01,380 --> 01:06:03,360 sa ilalim ng hood sa file I/O-- 1297 01:06:03,360 --> 01:06:07,990 hindi mag-file, ang karaniwang pag-andar ng I / O tulad ng isang pagbabasa mula sa standard input at 1298 01:06:07,990 --> 01:06:08,580 standard na output. 1299 01:06:08,580 --> 01:06:10,630 At maaari kang makakuha ng isang mas mahusay na pakiramdam ng kung paano maaari mong gawin na. 1300 01:06:10,630 --> 01:06:13,670 >> Rob: Isa isyu, bagaman, ay partikular na may mga halimbawa mo 1301 01:06:13,670 --> 01:06:17,070 sinabi, asahan mo ang isang string at ipasok ako sa isang int. 1302 01:06:17,070 --> 01:06:20,110 Paano mo sabihin ang pagkakaiba sa sa pagitan ng sadyang kinakapos ang 1303 01:06:20,110 --> 01:06:23,130 string 123 kumpara kinakapos ang int 123? 1304 01:06:23,130 --> 01:06:29,230 Kaya string, ito ay halos walang pagpapatunay, ito ay kahit anong lang nila 1305 01:06:29,230 --> 01:06:31,600 ipinasok ay kang bigyang-kahulugan bilang isang string. 1306 01:06:31,600 --> 01:06:35,790 >> Int ay mas madali, dahil hindi mahalaga ang input magdadala sa iyo mula sa gumagamit, ikaw ay 1307 01:06:35,790 --> 01:06:37,470 laging kumukuha ng string. 1308 01:06:37,470 --> 01:06:40,650 At kaya pagkatapos na string maaari kang suriin, ang lahat ng mga 1309 01:06:40,650 --> 01:06:44,218 talaga numeric digit? 1310 01:06:44,218 --> 01:06:45,170 >> Joseph: OK. 1311 01:06:45,170 --> 01:06:46,420 Ang anumang mga katanungan tungkol sa isang Do-Habang loop? 1312 01:06:46,420 --> 01:06:49,170 >> Rob: Oh, at ito ay din - 1313 01:06:49,170 --> 01:06:55,130 pagpunta pabalik sa saklaw, isang medyo mga karaniwang pagkakamali ay sinusubukan upang gamitin ang ilang mga lokal na 1314 01:06:55,130 --> 01:06:59,540 variable mula sa loob ng Do-Habang loop sa loob ng kondisyon na ito. 1315 01:06:59,540 --> 01:07:02,850 At talagang, kung namin Naging mapupuksa ang ito at sinabi, int input ay katumbas ng 1316 01:07:02,850 --> 01:07:06,990 GetInt, pagkatapos ay ang tagatala ay sumigaw sa amin, dahil input ay hindi umiiral 1317 01:07:06,990 --> 01:07:08,900 sa labas ng saklaw ng mga kulot tirante. 1318 01:07:08,900 --> 01:07:10,792 >> Joseph: At na ang dahilan kung bakit namin kailangan ito lineup dito. 1319 01:07:10,792 --> 01:07:13,620 1320 01:07:13,620 --> 01:07:14,630 OK. 1321 01:07:14,630 --> 01:07:17,530 Kaya maaari ka ring magsimula ng isang loop maaga kung nais mong. 1322 01:07:17,530 --> 01:07:21,240 Kaya ito ay isang iba't ibang mga paraan ng pagpapatupad ng kung ano ipinatupad namin lamang. 1323 01:07:21,240 --> 01:07:24,340 At sa halip na gamitin ang kundisyon sa loob ng panaklong, na aming ginagamit ng 1324 01:07:24,340 --> 01:07:26,920 Kung statement sa loob ng katawan ng Do-Habang loop. 1325 01:07:26,920 --> 01:07:30,000 >> At isa lamang, kapag ang input ay sa wakas mas mataas sa zero, kami ay 1326 01:07:30,000 --> 01:07:31,000 masira labas ng loop. 1327 01:07:31,000 --> 01:07:33,420 At kaya tayo pupunta lahat ang daan pababa dito. 1328 01:07:33,420 --> 01:07:37,920 At maaari mong makita na gagawin ito marahil ay ginustong sa ito 1329 01:07:37,920 --> 01:07:39,870 Ang sitwasyong, dahil ito ay isang maliit na bit mas malinis at isang maliit na 1330 01:07:39,870 --> 01:07:41,380 bit mas madaling basahin. 1331 01:07:41,380 --> 01:07:45,210 Sapagkat ito, uri ka ng may karagdagang mga linya sa loob nito. 1332 01:07:45,210 --> 01:07:47,890 Ito ay lamang ng isang maliit na bit na hindi maganda, Ako hulaan, sa isang kahulugan. 1333 01:07:47,890 --> 01:07:48,530 Oo, tanong? 1334 01:07:48,530 --> 01:07:52,178 >> Tagapagsalita 4: Makakaapekto ba masira lamang makakuha ng ka na ng isang hanay ng mga tirante? 1335 01:07:52,178 --> 01:07:53,080 >> Joseph: Mag-right. 1336 01:07:53,080 --> 01:07:58,100 Kaya ang tanong ay ay masira lamang mawalan ng isang loop sa iyo? 1337 01:07:58,100 --> 01:07:59,280 At ang sagot ay oo. 1338 01:07:59,280 --> 01:08:04,290 Kaya kung nag-nested Para sa mga loop, para sa Halimbawa, kung mayroon akong Para sa int ko ay katumbas ng 0 1339 01:08:04,290 --> 01:08:09,040 hanggang 10 at pagkatapos ay Para sa int J ay katumbas ng 0 hanggang sa 10, kung masira ko out ng panloob na 1340 01:08:09,040 --> 01:08:12,310 loop, ay pupunta pa rin ako upang ang mga panlabas na loop. 1341 01:08:12,310 --> 01:08:15,760 Kaya magkakaroon ito panatilihin gumaganap ang mga pagpapatakbo sa labas. 1342 01:08:15,760 --> 01:08:17,640 Ang anumang mga katanungan tungkol sa na? 1343 01:08:17,640 --> 01:08:18,000 Oo? 1344 01:08:18,000 --> 01:08:21,760 >> Tagapagsalita 5: Ngunit masira mga pag-andar lamang para sa kulot tirante, hindi para sa iba pang 1345 01:08:21,760 --> 01:08:22,230 pahayag? 1346 01:08:22,230 --> 01:08:22,700 [Hindi marinig] 1347 01:08:22,700 --> 01:08:27,620 >> Joseph: Kaya ang tanong ay ay masira lamang-andar para sa mga loop na taliwas sa 1348 01:08:27,620 --> 01:08:29,014 iba pang mga pahayag tulad Kung? 1349 01:08:29,014 --> 01:08:32,950 At oo, iyon ang kaso, dahil naka-breaking out sa isang loop, kanan, 1350 01:08:32,950 --> 01:08:33,630 sa isang katuturan. 1351 01:08:33,630 --> 01:08:37,215 >> Rob: Sa karamihan ng mga kaso, ito ay ito ay ang uri ng mga Kung may isang bagay, 1352 01:08:37,215 --> 01:08:37,660 pagkatapos masira. 1353 01:08:37,660 --> 01:08:41,580 Kaya hindi mo na kailangang masira upang ilapat sa Kung ang na pambalot sa paligid nito. 1354 01:08:41,580 --> 01:08:45,250 At din, ito ay hindi magkano ng isang loop, ngunit tandaan na switch din 1355 01:08:45,250 --> 01:08:46,340 inisa-isa ng sa pamamagitan ng break. 1356 01:08:46,340 --> 01:08:48,390 Nakita namin break ginagamit may switch bago. 1357 01:08:48,390 --> 01:08:52,189 >> Joseph: At maaari ka ring gamitin ang mga ito Habang sa loop at Para sa mga loop. 1358 01:08:52,189 --> 01:08:54,560 Ang anumang mga katanungan? 1359 01:08:54,560 --> 01:08:55,830 OK. 1360 01:08:55,830 --> 01:08:57,779 Kaya susunod na up ay function. 1361 01:08:57,779 --> 01:09:01,500 Kaya maaaring na ginamit mo ang isa sa mga BYOB bloke sa iyong proyekto sa simula. 1362 01:09:01,500 --> 01:09:04,569 At nagbibigay-daan ito talaga sa iyo upang tukuyin ang isang hanay ng mga 1363 01:09:04,569 --> 01:09:05,680 na sinundan mga tagubilin. 1364 01:09:05,680 --> 01:09:09,569 >> At ano ang ibig sabihin ko sa pamamagitan ng na ay ni tingin ipaalam pabalik sa matematika, kanan, algebra. 1365 01:09:09,569 --> 01:09:13,370 Mayroon kang ang tinatawag naming isang function ng x, ilang mga variable, at sabihin nating ito 1366 01:09:13,370 --> 01:09:16,080 function ay f ng x ay katumbas ng x plus 5. 1367 01:09:16,080 --> 01:09:20,410 Kaya maaari mong isipin f ng x bilang na ito itim kahon na 15 tumatagal sa at pagkatapos ay 1368 01:09:20,410 --> 01:09:22,590 naglalabas 20. 1369 01:09:22,590 --> 01:09:26,630 >> Kaya mas pangkalahatang paraan, ang isang function ay isang bagay na tumatagal ng ilang mga input at 1370 01:09:26,630 --> 01:09:27,880 pagkatapos ay gumagawa ng ilang mga output. 1371 01:09:27,880 --> 01:09:31,920 1372 01:09:31,920 --> 01:09:32,960 At bakit mahusay ang mga pag-andar? 1373 01:09:32,960 --> 01:09:35,189 Ang mga ito ay mabuti para sa isang ilang mga kadahilanan. 1374 01:09:35,189 --> 01:09:40,470 Kaya ang isang tao na nais na kumuha ng isang pag-iwa sa anong organisasyon ay nangangahulugan? 1375 01:09:40,470 --> 01:09:42,630 Sa mga tuntunin ng kung bakit function ay kapaki-pakinabang? 1376 01:09:42,630 --> 01:09:43,090 Oo? 1377 01:09:43,090 --> 01:09:44,735 >> Tagapagsalita 4: Ito ay gumagawa ng iyong code mas nababasa. 1378 01:09:44,735 --> 01:09:45,399 >> Joseph: Mag-right. 1379 01:09:45,399 --> 01:09:47,670 Kaya isa sa mga bagay na ito ay ginagawang mas nababasa ang iyong code, i-right? 1380 01:09:47,670 --> 01:09:53,710 Sa halip ng pagkakaroon ng tulad ng int x ay katumbas x beses x beses x, maaari akong magkaroon kubo ng x, 1381 01:09:53,710 --> 01:09:57,190 na kung saan ay mas nababasa at higit pa naiintindihan sa isang reader. 1382 01:09:57,190 --> 01:10:01,150 >> Samahan ding sa mga tuntunin ng paghahati up ang iyong code sa pamahalaang 1383 01:10:01,150 --> 01:10:05,610 mga bahagi, upang sa halip na sinusubukang i- ipatupad ang lahat sa isang mahaba seksyon 1384 01:10:05,610 --> 01:10:09,070 sa main, maaari mong uri ng maghiwalay ito sa gaya, OK, sumulat ng isang function hayaan 1385 01:10:09,070 --> 01:10:11,910 sa Cube ng isang bagay, ay sumulat hayaan ang isang gumana sa parisukat ng isang bagay. 1386 01:10:11,910 --> 01:10:15,950 Sa ganoong paraan maaari mo itong maghiwalay sa napakaliit, maliit na bahagi na maaari mong pagharap sa isang bagay 1387 01:10:15,950 --> 01:10:18,944 na taliwas sa sinusubukang i-pansing isang malaking problema ang lahat nang sabay-sabay. 1388 01:10:18,944 --> 01:10:21,806 >> Rob: O kaya kahit na maliit na maliit, maliit na bahagi na maaari mong at isang kasosyo sa pagharap sa isang bagay. 1389 01:10:21,806 --> 01:10:22,283 >> Joseph: Oo. 1390 01:10:22,283 --> 01:10:23,855 >> Rob: Kaya sa halip na ang parehong Sinusubukan mo upang itanim isa 1391 01:10:23,855 --> 01:10:27,170 gumana sa parehong oras. 1392 01:10:27,170 --> 01:10:28,800 >> Joseph: Pagpapasimple. 1393 01:10:28,800 --> 01:10:30,050 Sinuman na nais na kumuha ng isang hula? 1394 01:10:30,050 --> 01:10:33,080 1395 01:10:33,080 --> 01:10:33,410 Oo? 1396 01:10:33,410 --> 01:10:34,675 >> Tagapagsalita 5: Higit pang mga pag-uulit. 1397 01:10:34,675 --> 01:10:35,260 >> Joseph: Mag-right. 1398 01:10:35,260 --> 01:10:39,210 Kaya ang isang bagay na maaari mong gawin sa pagpapagaan ay na ito ay isang uri ng sa 1399 01:10:39,210 --> 01:10:42,520 ang parehong linya bilang re-usability ay na isang beses sumulat ako ng isang kubo function, maaari ko 1400 01:10:42,520 --> 01:10:45,410 gamitin na lamang na paulit-ulit muli sa aking mga programa sa halip na i-type 1401 01:10:45,410 --> 01:10:49,610 x beses x beses x sa ibabaw at nang paulit-ulit. 1402 01:10:49,610 --> 01:10:52,980 At pagpapagaan dito rin lang ang ibig sabihin nito ay gumagawa ang iyong code uri ng 1403 01:10:52,980 --> 01:10:55,900 mas madali upang i-debug sa sandaling hatiin mo ito hanggang sa pag-andar. 1404 01:10:55,900 --> 01:10:58,250 Dahil pagkatapos ay maaari mong i-localize kung saan ang iyong mga problema uri ng mga. 1405 01:10:58,250 --> 01:11:00,910 1406 01:11:00,910 --> 01:11:02,160 Ang anumang mga katanungan? 1407 01:11:02,160 --> 01:11:04,200 1408 01:11:04,200 --> 01:11:06,540 >> Kaya isa pang ideya ay abstraction, tama? 1409 01:11:06,540 --> 01:11:07,390 Ito itim na kahon. 1410 01:11:07,390 --> 01:11:11,360 Tulad ng alam mo kung ano ang ginagawa GetInt upang makatanggap ng input mula sa user? 1411 01:11:11,360 --> 01:11:12,510 Hindi pa kami talaga sinabi mo, tama? 1412 01:11:12,510 --> 01:11:15,670 Ang lahat ng mga na-Sinabi namin sa iyo ay GetInt gumagana eksakto kung ano ang sinasabi nito ginagawa nito. 1413 01:11:15,670 --> 01:11:18,440 Kaya kahit na hindi namin sabihin sa iyo kung paano ito gumagana, alam mo pa rin. 1414 01:11:18,440 --> 01:11:21,670 >> Kaya sa partikular na kasong ito, ito ay isang may apat na bahagi ng function na gagawin 1415 01:11:21,670 --> 01:11:24,520 iba't ibang bagay na isang input upang makabuo ng isang output. 1416 01:11:24,520 --> 01:11:28,050 At maaari ka nang apat na beses ang isang numero sa pamamagitan ng pag-multiply ito sa pamamagitan ng apat. 1417 01:11:28,050 --> 01:11:30,790 O maaari kang ang tinatawag naming shift ito bit sa pamamagitan ng dalawang. 1418 01:11:30,790 --> 01:11:32,960 At tatalakayin namin ito Medyo mamaya. 1419 01:11:32,960 --> 01:11:36,570 At hindi na kailangang malaman kung paano ito function na talagang gumagana hangga't ito 1420 01:11:36,570 --> 01:11:37,640 Gumagana tulad ng ipinahayag. 1421 01:11:37,640 --> 01:11:40,740 >> Kaya sa ilalim ng hood, kaya kong maging parang, bumalik ulit input 1422 01:11:40,740 --> 01:11:41,690 walong hinati sa dalawa. 1423 01:11:41,690 --> 01:11:42,510 At hindi mo alam, i-right? 1424 01:11:42,510 --> 01:11:44,970 Lahat ng kailangan mong malaman ay ginagawa nito kung ano ang sinasabi nito. 1425 01:11:44,970 --> 01:11:48,070 Kaya iyon ang kapaki-pakinabang na bagay tungkol sa abstraction. 1426 01:11:48,070 --> 01:11:52,910 >> At isa pang bagay ay ang uri ng mga ideyang ito ng localizing ang iyong code sa isa 1427 01:11:52,910 --> 01:11:54,280 partikular na seksyon. 1428 01:11:54,280 --> 01:11:57,450 Kaya kung mayroon kang problema, hindi mo gusto Mayroon upang pumunta sa lahat ng dako ang iyong code sinusubukan 1429 01:11:57,450 --> 01:11:58,730 upang maayos kung saan ang problema ay. 1430 01:11:58,730 --> 01:12:00,990 Kaya sa kasong ito, naipatupad ko Cube mali. 1431 01:12:00,990 --> 01:12:02,820 Naisip kong kubo ay multiply sa pamamagitan ng tatlo. 1432 01:12:02,820 --> 01:12:05,760 >> Kaya sa kasong ito, ito ay isa sa programa na lamang ay multiply sa pamamagitan ng tatlong 1433 01:12:05,760 --> 01:12:06,750 sa lahat ng dako. 1434 01:12:06,750 --> 01:12:10,910 At doon ay isa pang programa na may isinasali kubo out sa isang function. 1435 01:12:10,910 --> 01:12:14,040 At kaya ngayon kung gusto ko upang ayusin ang aking mga pagkakamali dito, mayroon akong upang ayusin ang bawat solong linya 1436 01:12:14,040 --> 01:12:15,620 ng code sa programang ito. 1437 01:12:15,620 --> 01:12:19,190 Sapagkat sa kabilang banda, kung gagamitin ko ang function, kailangan ko lang upang baguhin 1438 01:12:19,190 --> 01:12:20,650 kung ano ang mali sa isang lugar. 1439 01:12:20,650 --> 01:12:25,330 1440 01:12:25,330 --> 01:12:28,730 >> Kaya sa computer science, namin tumawag input at output. 1441 01:12:28,730 --> 01:12:31,640 Input ay tinatawag na mga parameter o argumento, at output ay tinatawag na 1442 01:12:31,640 --> 01:12:32,950 bumalik halaga. 1443 01:12:32,950 --> 01:12:39,000 At kami ay makita kung paano ito ay tumutulong sa amin uri ng tukuyin ang isang function sa isang segundo. 1444 01:12:39,000 --> 01:12:41,430 Kaya ito ay isang kahulugan ng function para sa cubing. 1445 01:12:41,430 --> 01:12:45,110 Kaya ito ay tumatagal ng isang input, at pagkatapos ay ito ay nagbabalik na beses numero 1446 01:12:45,110 --> 01:12:47,020 mismo ng tatlong beses. 1447 01:12:47,020 --> 01:12:48,020 Kaya hayaan masira ni ito pababa. 1448 01:12:48,020 --> 01:12:53,090 >> Kaya mayroon kaming isang header ng function, na talaga ay binubuo ng tatlong bagay. 1449 01:12:53,090 --> 01:12:56,050 Kaya mayroon kaming ang mga parameter, na ay, tulad ng sinabi ko dati, ang 1450 01:12:56,050 --> 01:12:57,680 input sa function na ito. 1451 01:12:57,680 --> 01:12:59,300 At pagkatapos ay bigyan kami ang pag-andar ng isang pangalan. 1452 01:12:59,300 --> 01:13:00,740 Sa kasong ito, ito ay tinatawag na kubo. 1453 01:13:00,740 --> 01:13:03,860 At pagkatapos ay tukuyin natin kung ano ang uri ng halaga return ay. 1454 01:13:03,860 --> 01:13:06,760 >> Kaya sa kasong ito, ang aking kubo ng function tumatagal sa isang integer at ito rin 1455 01:13:06,760 --> 01:13:07,890 nagbalik isang integer. 1456 01:13:07,890 --> 01:13:11,510 Kaya kung pumasa ako sa dalawang, dalawang ay isang integer, nagbalik ito walong sa akin, na 1457 01:13:11,510 --> 01:13:13,250 ay isang integer. 1458 01:13:13,250 --> 01:13:15,420 Kaya bumalik pangalan ng uri ng parameter. 1459 01:13:15,420 --> 01:13:16,670 Mga tanong tungkol sa na? 1460 01:13:16,670 --> 01:13:19,440 1461 01:13:19,440 --> 01:13:24,230 >> At pagkatapos ay ang halaga ng pagbabalik ay ang tunay tinukoy sa dulo ng sinasabi ng pagbalik 1462 01:13:24,230 --> 01:13:27,540 at pagkatapos ay bumabalik kahit anong Naglalaman ang halaga return. 1463 01:13:27,540 --> 01:13:30,940 Kaya sa kasong ito, kung ilalagay namin ang lahat ng ito magkasama, isang function tumatagal sa 1464 01:13:30,940 --> 01:13:35,100 mga parameter, ito ay tinatawag na isang bagay, at nagbalik ito ng isang bagay na ay ang uri 1465 01:13:35,100 --> 01:13:36,350 na sabihin namin ito ay pagpunta sa maging. 1466 01:13:36,350 --> 01:13:39,830 1467 01:13:39,830 --> 01:13:41,080 Ang anumang mga katanungan? 1468 01:13:41,080 --> 01:13:43,710 1469 01:13:43,710 --> 01:13:45,080 >> Kaya paano ko gagamitin namin ang isang function? 1470 01:13:45,080 --> 01:13:49,230 Well, sumulat kami ng isang function at pagkatapos ay ginagamit namin ito sa aming programa, tama? 1471 01:13:49,230 --> 01:13:51,565 Kaya tinatawag ko itong kubo, at Pagkatapos ay maaari ko bang gamitin ang kubo. 1472 01:13:51,565 --> 01:13:54,200 >> Ngunit kung ano ang mahalaga na tandaan ay ang mga bagay na order. 1473 01:13:54,200 --> 01:13:58,100 Kung mayroon akong kubo sa ibaba pangunahing, ito ay pagpunta upang tumakbo sa kubo. 1474 01:13:58,100 --> 01:14:00,360 At sa puntong ito, walang ay tinatawag na kubo sa programa, at ito ay 1475 01:14:00,360 --> 01:14:02,550 lamang ng pagpunta sa maging tulad ng, mayroon akong walang ideya kung ano kubo ay. 1476 01:14:02,550 --> 01:14:05,060 >> Kaya ito ay magsasabi sa iyo, implicit deklarasyon ng function. 1477 01:14:05,060 --> 01:14:06,690 Iyan ang error na nagpapakita up. 1478 01:14:06,690 --> 01:14:10,230 At kaya sa kasong ito, kubo ay sa ibaba pangunahing, kaya hindi pagpunta 1479 01:14:10,230 --> 01:14:12,006 upang malaman ang tungkol dito. 1480 01:14:12,006 --> 01:14:14,724 >> Tagapagsalita 5: Kaya pangunahing ay karaniwang tinukoy sa huling pag-andar? 1481 01:14:14,724 --> 01:14:17,290 >> Joseph: Kaya ang tanong ay, ay pangunahing karaniwang ang huling 1482 01:14:17,290 --> 01:14:18,170 bagay na nais mong tukuyin? 1483 01:14:18,170 --> 01:14:19,730 At hindi. 1484 01:14:19,730 --> 01:14:22,280 Ito ay dahil karaniwan naming i pangunahing upang maging sa tuktok, i-right? 1485 01:14:22,280 --> 01:14:24,640 Dahil iyon ang unang bagay na sa iyo gusto pagbubukas ng programmer ang 1486 01:14:24,640 --> 01:14:25,640 programa upang makita. 1487 01:14:25,640 --> 01:14:29,950 At kaya paano ko malutas namin ang isyung ito ng namin Gusto pangunahing upang maging sa tuktok, ngunit ang 1488 01:14:29,950 --> 01:14:33,750 mga function na gusto namin, gusto namin sa kanila upang maging pangunahing ibaba pa magagawang magamit 1489 01:14:33,750 --> 01:14:34,930 ang mga ito sa loob ng main? 1490 01:14:34,930 --> 01:14:36,870 >> Well, ginagamit namin ang tinatawag naming isang function prototype. 1491 01:14:36,870 --> 01:14:40,830 Kaya kung ano ang isang function ng prototype mahalagang ay ay unang ito ay tumatagal ng kung ano 1492 01:14:40,830 --> 01:14:45,060 ang lagda o header ng function ng kung ano ang gusto naming ipatupad pababa 1493 01:14:45,060 --> 01:14:47,420 dito, at ilalagay namin ito sa ang tuktok ng isang programa. 1494 01:14:47,420 --> 01:14:51,400 >> Kaya sa kasong ito, sinasabi namin na, mahusay, mamaya sa sa aming programa, kami ay pagpunta 1495 01:14:51,400 --> 01:14:55,010 upang gumawa ng pangako na ipapatupad ito function na tinatawag na int kubo, na tumatagal 1496 01:14:55,010 --> 01:14:56,260 isang integer input. 1497 01:14:56,260 --> 01:15:00,870 Kaya ngayon, dahil iyon ay sa itaas main, pangunahing, ito ay pagpunta sa sabihin, oh, mahusay, 1498 01:15:00,870 --> 01:15:03,910 mamaya sa programa, na magiging may kaya ang maaari kong sumangguni sa ito, kaya idedetalye ko 1499 01:15:03,910 --> 01:15:05,230 ipaalam lamang ito pumunta sa pamamagitan ng para sa ngayon. 1500 01:15:05,230 --> 01:15:07,660 >> At pagkatapos ay sa ibaba, ipatupad naming kubo. 1501 01:15:07,660 --> 01:15:11,180 At pagkatapos ay pangunahing ay lamang sabihin, well, ito uri-uriin ng link 1502 01:15:11,180 --> 01:15:12,250 ang dalawang mga simbolo magkasama. 1503 01:15:12,250 --> 01:15:14,320 At tatalakayin namin kung ano na Ibig sabihin sa susunod. 1504 01:15:14,320 --> 01:15:17,090 At kaya magkakaroon ito ng malaman na ito ay ang kubo ng function na dapat ito gamitin. 1505 01:15:17,090 --> 01:15:19,630 1506 01:15:19,630 --> 01:15:23,383 >> Rob: Ang [hindi marinig] tungkol sa kinakapos pangunahing sa ibaba o 1507 01:15:23,383 --> 01:15:24,880 tuktok, nakita ko na pareho. 1508 01:15:24,880 --> 01:15:28,630 May mga bagay na gusto lamang upang ilagay ang pangunahing sa ibaba. 1509 01:15:28,630 --> 01:15:32,520 Ngunit minsan ay makakakuha ng isang proyekto lalo malaki, kadalasan pangunahing ay nasa isang 1510 01:15:32,520 --> 01:15:34,290 maghain lahat ng sarili nitong. 1511 01:15:34,290 --> 01:15:38,170 At sa puntong iyon, tulad ng int kubo linya ng ginagawa - 1512 01:15:38,170 --> 01:15:42,460 sa loob ng stdio.h ay isang bungkos ng mga linya tulad lamang na int 1513 01:15:42,460 --> 01:15:44,010 kubo int linya ng pag-input. 1514 01:15:44,010 --> 01:15:50,170 >> At gayon mga modelo ikaw ay bagay ay may posibilidad na ilagay sa header ng file, sa 1515 01:15:50,170 --> 01:15:52,140 na punto, hindi mahalaga. 1516 01:15:52,140 --> 01:15:54,700 Well, hindi mahalaga. 1517 01:15:54,700 --> 01:15:56,070 Yaong laging pumunta sa tuktok. 1518 01:15:56,070 --> 01:15:59,490 At kung ang pangunahing ay hindi isang file sa lahat ng sarili nitong, hindi mo kailangang mag-alala tungkol sa paglalagay 1519 01:15:59,490 --> 01:16:02,360 indibidwal na function ng modelo sa file. 1520 01:16:02,360 --> 01:16:05,370 >> Joseph: At susuriin namin na ang isang maliit na bit mamaya kapag Rob ay nagsisimula pakikipag-usap 1521 01:16:05,370 --> 01:16:06,380 tungkol sa kino-compile. 1522 01:16:06,380 --> 01:16:09,480 At kaya mayroon ding isang pagkakaiba sa pagitan ng mga parameter at argumento. 1523 01:16:09,480 --> 01:16:12,500 At parameter ay lamang kung ano tinatawag naming mga input kapag 1524 01:16:12,500 --> 01:16:13,820 tinutukoy namin ang function. 1525 01:16:13,820 --> 01:16:16,950 At tinatawag namin itong isang argumento kung kailan namin talaga pumasa ito sa function. 1526 01:16:16,950 --> 01:16:19,600 >> Kaya sa kasong ito, ito ay isang parameter, tulad ng sinabi namin bago. 1527 01:16:19,600 --> 01:16:24,130 At kapag talaga naming gamitin ito banda roon, kubo ng x, pagkatapos ay x mismo ay 1528 01:16:24,130 --> 01:16:25,910 kung ano ang tinatawag naming argumento sa pagpapaandar na kubo. 1529 01:16:25,910 --> 01:16:28,150 >> Rob: Kaya argumento parameter ay - 1530 01:16:28,150 --> 01:16:33,270 may pagtatangi ito, napaka lito ng salitan. 1531 01:16:33,270 --> 01:16:37,090 Sa puntong ito, sa akin, ito ay tulad ng isa sa mga mga salitang iyon na kapag nakikita ko ito sa 1532 01:16:37,090 --> 01:16:41,190 ang ligaw, hindi ko maaaring makatulong ngunit agad tanong kung ginagamit nila ito sa 1533 01:16:41,190 --> 01:16:44,120 ang tamang konteksto, dahil ang pagkakaiba ay sapat na banayad na lamang 1534 01:16:44,120 --> 01:16:45,500 lahat ng tao ay may gawi - 1535 01:16:45,500 --> 01:16:48,530 Halos palagi kong sabihin argumento walang kinalaman sa kung ano ang ibig sabihin ko. 1536 01:16:48,530 --> 01:16:51,230 1537 01:16:51,230 --> 01:16:54,630 >> Joseph: At function ay kapaki-pakinabang din para sa kung ano ang tinatawag naming side effect. 1538 01:16:54,630 --> 01:16:59,230 Kaya maaaring tumagal ng isang function walang input, at ito rin ay makagawa ng walang output. 1539 01:16:59,230 --> 01:17:03,280 Kaya sa partikular na kasong ito, Ako pagtukoy sa isang subroutine na ay walang 1540 01:17:03,280 --> 01:17:03,970 bumalik halaga. 1541 01:17:03,970 --> 01:17:07,730 At upang tukuyin na, ginagamit namin ang tinatawag naming isang walang bisa sa paglipas dito. 1542 01:17:07,730 --> 01:17:10,890 At kaya ang epekto ng pag-andar na ito ay na prints lang ito bagay-bagay 1543 01:17:10,890 --> 01:17:11,920 out sa pahina. 1544 01:17:11,920 --> 01:17:13,840 Ito ay hindi tunay na gumawa ng anumang input, at hindi 1545 01:17:13,840 --> 01:17:15,360 talaga makagawa ng anumang output. 1546 01:17:15,360 --> 01:17:18,230 >> Ngunit maaaring ito ay kapaki-pakinabang sa kamalayan kung gusto mong, halimbawa, mag-debug 1547 01:17:18,230 --> 01:17:21,530 isang bagay sa iyong programa, kung nais mong magsulat ng isang maliit na subroutine na 1548 01:17:21,530 --> 01:17:25,160 Pini-print out, sabihin nating, ang mga nilalaman ng memory o ng isang bagay. 1549 01:17:25,160 --> 01:17:29,800 At kaya ang mga side effect ay minsan kapaki-pakinabang sa labas ng konteksto 1550 01:17:29,800 --> 01:17:33,010 ng gusto lamang input at output. 1551 01:17:33,010 --> 01:17:34,260 Ang anumang mga katanungan? 1552 01:17:34,260 --> 01:17:37,270 1553 01:17:37,270 --> 01:17:44,240 >> At upang wakasan ang partikular na segment, kung ano ang ginagawa ng programang ito? 1554 01:17:44,240 --> 01:17:47,420 Bibigyan kita ng guys ng dalawang segundo upang basahin sa pamamagitan nito. 1555 01:17:47,420 --> 01:17:52,720 1556 01:17:52,720 --> 01:17:56,880 Sa isang napaka-basic na antas, kung ano ang gusto naming sabihin ay tumutulong ito sa swaps x at y, tama? 1557 01:17:56,880 --> 01:18:00,090 >> Kaya kung gaano karaming ng iyong aktwal na sa tingin ito ay magpalit x at y? 1558 01:18:00,090 --> 01:18:02,160 Itaas ang iyong kamay. 1559 01:18:02,160 --> 01:18:02,760 Walang isa. 1560 01:18:02,760 --> 01:18:03,070 OK. 1561 01:18:03,070 --> 01:18:06,720 Sino sa palagay na habilin ito hindi magpalit x at y? 1562 01:18:06,720 --> 01:18:09,120 At ang kabuuan ng na noon ay hindi ang buong kuwarto. 1563 01:18:09,120 --> 01:18:10,440 Kaya ang ilang mga tao ay hindi sigurado. 1564 01:18:10,440 --> 01:18:10,920 OK. 1565 01:18:10,920 --> 01:18:11,630 Iyon ay makatwirang. 1566 01:18:11,630 --> 01:18:16,450 >> Kaya sabihin pumunta sa pamamagitan ng kung ano ang mangyayari kapag talaga kang tumawag muna function sa 1567 01:18:16,450 --> 01:18:18,320 Upang sagutin ang tanong. 1568 01:18:18,320 --> 01:18:21,430 Kaya ito ay kung ano ang memorya uri ng kamukha. 1569 01:18:21,430 --> 01:18:23,860 Ito ay uri ng tulad ng isang pinasimple na modelo ng kung ano ang hitsura ng memorya tulad ng kapag 1570 01:18:23,860 --> 01:18:24,800 patakbuhin mo ang isang programa. 1571 01:18:24,800 --> 01:18:27,270 Kaya mayroong isang bagay na tinatawag na ang stack down na dito at 1572 01:18:27,270 --> 01:18:28,330 isang bagay na tinatawag na ang magbunton. 1573 01:18:28,330 --> 01:18:30,950 At ang mga lumaki patungo sa sa gitna ng memorya. 1574 01:18:30,950 --> 01:18:33,860 >> Kaya sa partikular na kasong ito, kapag mong tawagan ang isang function, ito 1575 01:18:33,860 --> 01:18:35,680 ay makakakuha ng ilagay sa stack. 1576 01:18:35,680 --> 01:18:38,900 At pagkatapos ay ang anumang nakapaloob sa na function na ay mananatili sa kung ano ang tinatawag naming na 1577 01:18:38,900 --> 01:18:40,550 stack frame function na ni. 1578 01:18:40,550 --> 01:18:44,500 At kaya upang makakuha ng isang maganda ang visualization ng ito, let's - halimbawa, nagkaroon kami ng 1579 01:18:44,500 --> 01:18:45,960 pangunahing programa ng mas maaga. 1580 01:18:45,960 --> 01:18:47,820 At sa loob ng main, na tinatawag naming kubo. 1581 01:18:47,820 --> 01:18:50,650 Kaya pangunahing nais pumunta muna sa stack i-frame, dahil ito ay ang unang pagpapaandar 1582 01:18:50,650 --> 01:18:51,640 na tinatawag. 1583 01:18:51,640 --> 01:18:55,740 >> At pagkatapos ay kapag kubo ay tinatawag na sa loob ng pangunahing, maipo ilagay sa tuktok ng pangunahing 1584 01:18:55,740 --> 01:18:57,790 sa loob ng memorya. 1585 01:18:57,790 --> 01:19:02,090 Kaya kung ano ang mapapansin mo dito ay na kubo May sariling mga parameter at nito 1586 01:19:02,090 --> 01:19:02,950 sariling lokal. 1587 01:19:02,950 --> 01:19:06,720 Kaya kapag aktwal mong pumasa sa isang bagay sa isang function, ang mga parameter na ito 1588 01:19:06,720 --> 01:19:09,910 ay makakakuha ng mga kopya ng kung ano ang pumasa sa mga in mula sa pangunahing. 1589 01:19:09,910 --> 01:19:14,140 >> At sa uri ng ipaliwanag ito, sabihin maglakad sa pamamagitan ng isang programa. 1590 01:19:14,140 --> 01:19:16,960 Kaya mayroon kami ng stack; ito ay lamang ang bahaging stack. 1591 01:19:16,960 --> 01:19:21,240 At ano ang ginagawa namin ay muna namin ang pagsisimula ng pag- x at y sa isa at dalawa. 1592 01:19:21,240 --> 01:19:22,400 Kaya mayroon kaming mga maliit na mga kahon. 1593 01:19:22,400 --> 01:19:25,310 Sila ay naka-upo sa stack pangunahing ni i-frame sa stack. 1594 01:19:25,310 --> 01:19:26,580 Naglalaman ang mga ito ng isa at dalawa. 1595 01:19:26,580 --> 01:19:28,820 >> Ngayon tinatawag naming magpalitan. 1596 01:19:28,820 --> 01:19:33,940 Ano ang mangyayari ay pumasa namin x at y sa magpalitan, at magpalitan lumilikha ng sarili nitong mga kopya 1597 01:19:33,940 --> 01:19:36,520 ng mga variable na gamitin ang loob ng stack na frame nito. 1598 01:19:36,520 --> 01:19:39,920 Kaya ngayon banda roon, mayroon kaming, na Naglalaman ang halaga na x nagkaroon; at b, 1599 01:19:39,920 --> 01:19:41,620 na naglalaman ng halaga na y nagkaroon. 1600 01:19:41,620 --> 01:19:42,670 Kaya isa, dalawa. 1601 01:19:42,670 --> 01:19:47,130 >> At mapapansin mo na ito ay hiwalay mula sa x at y sa loob ng main. 1602 01:19:47,130 --> 01:19:51,390 Kaya't lumikha kami ngayon ng pansamantalang variable upang maglaman ng isang. 1603 01:19:51,390 --> 01:19:56,100 Itinakda namin ang isang katumbas ng b, kaya ito pagbabago 1-2. 1604 01:19:56,100 --> 01:19:59,340 At pagkatapos ay itakda kami b kapantay sa Temp, na kung saan ay isa. 1605 01:19:59,340 --> 01:20:01,640 >> At pagkatapos ngayon lumabas out namin ng ito function. 1606 01:20:01,640 --> 01:20:04,310 1607 01:20:04,310 --> 01:20:07,410 Kapag lumabas ka na ng mga pag-andar, ang stack frame ay makakakuha ng pop-off ang stack. 1608 01:20:07,410 --> 01:20:08,270 Tinatawag namin itong itulak. 1609 01:20:08,270 --> 01:20:12,750 Itulak ka ng isang stack frame papunta sa stack at mga pop mo kung off ang stack. 1610 01:20:12,750 --> 01:20:16,080 At kaya kung ano ang mangyayari ay lahat ng bagay na ay nasa stack na frame uri ng lamang 1611 01:20:16,080 --> 01:20:17,280 napupunta up sa apoy. 1612 01:20:17,280 --> 01:20:19,180 At nang sa gayon ay hindi na umiiral. 1613 01:20:19,180 --> 01:20:20,470 >> Ngunit ano ang napansin namin? 1614 01:20:20,470 --> 01:20:23,690 Hindi namin talaga nagbago ang mga halaga ng x at y, tama? 1615 01:20:23,690 --> 01:20:26,530 Kaya mga nagtutulog lokal sa main. 1616 01:20:26,530 --> 01:20:29,900 At sa pamamagitan ng pagpasa ng mga bagay sa swap, namin talagang hindi kailanman nagbago mga halaga iyon. 1617 01:20:29,900 --> 01:20:31,260 At ano ang tinatawag naming ito? 1618 01:20:31,260 --> 01:20:33,040 Tinatawag namin itong nagdaraan sa pamamagitan ng halaga. 1619 01:20:33,040 --> 01:20:36,860 >> Kaya sa C, kapag kayo na ipasa ang mga bagay sa mga function, ito ay ipinapasa sa kanila sa pamamagitan ng halaga at 1620 01:20:36,860 --> 01:20:40,160 gumagawa ng isang kopya ng mga ito para sa ang pag-andar gamitin. 1621 01:20:40,160 --> 01:20:43,980 At ipapakita namin malaman ang tungkol sa isang bagay na tinatawag na ang pagpasa sa pamamagitan ng reference sa ibang pagkakataon, ngunit iyan ay 1622 01:20:43,980 --> 01:20:45,390 isang paraan na maaari mong malutas ang problemang ito. 1623 01:20:45,390 --> 01:20:47,080 Ngunit hindi namin mag-alala tungkol sa na hanggang mamaya. 1624 01:20:47,080 --> 01:20:52,200 >> Rob: At talagang, ang term na iyon, nagdaraan sa pamamagitan ng reference, kaya C hindi kahit na mayroon ang 1625 01:20:52,200 --> 01:20:54,270 ang pagpasa sa pamamagitan ng na tumutukoy sa. 1626 01:20:54,270 --> 01:20:56,760 C eksklusibo ay ang pagpasa sa pamamagitan ng halaga. 1627 01:20:56,760 --> 01:20:59,630 Anuman ang gagawin mo, ikaw ay palaging pagpasa ng isang kopya ng isang bagay. 1628 01:20:59,630 --> 01:21:03,395 Ito ay lamang na, tulad ko maisasa-ayos ng nabanggit na bago na may mga payo 1629 01:21:03,395 --> 01:21:07,690 at na ang isang string ay talagang lamang apat Bytes na tumuturo sa isang lugar na naa sa memorya. 1630 01:21:07,690 --> 01:21:11,890 >> Well, kung mayroon akong ang string na ito at ito ay na nagsasabi sa akin na kung saan ang string - 1631 01:21:11,890 --> 01:21:15,470 well, kung mayroon akong ito pointer upang ito ilagay sa memory, pagkatapos ay maaari ba akong magpasa ng isang 1632 01:21:15,470 --> 01:21:19,160 kopya ng na pointer sa isang function, at alam pa rin na function na kung saan sa 1633 01:21:19,160 --> 01:21:19,780 memory ito ay. 1634 01:21:19,780 --> 01:21:22,950 Kaya pareho sa mga payo ay tumuturo sa parehong lugar sa memorya, at 1635 01:21:22,950 --> 01:21:26,460 na kung paano kami ay pagpunta sa magagawang na baguhin ang mga bagay na higit sa 1636 01:21:26,460 --> 01:21:29,852 kasalukuyang stack frame. 1637 01:21:29,852 --> 01:21:31,040 >> Joseph: Huwag gusto mong gawin kino-compile? 1638 01:21:31,040 --> 01:21:31,820 >> Rob: Hindi, ito ay 05:30. 1639 01:21:31,820 --> 01:21:32,910 >> Joseph: OK. 1640 01:21:32,910 --> 01:21:35,040 Ito ay 05:30. 1641 01:21:35,040 --> 01:21:35,360 OK. 1642 01:21:35,360 --> 01:21:39,280 Kaya magkakaroon kami masakop ang kino-compile ang hulaan ako sa ang susunod na seksyon, o ang iyong seksyon 1643 01:21:39,280 --> 01:21:42,795 lider habilin sa puntong iyon. 1644 01:21:42,795 --> 01:21:43,272 At - 1645 01:21:43,272 --> 01:21:44,630 >> Rob: Anumang mga katanungan? 1646 01:21:44,630 --> 01:21:46,760 >> Joseph: Anumang mga katanungan? 1647 01:21:46,760 --> 01:21:47,150 Oo? 1648 01:21:47,150 --> 01:21:52,469 >> Tagapagsalita 5: Ang paggamit ng mga string mula sa CS50, anumang mga pag-andar na gusto naming gamitin para sa 1649 01:21:52,469 --> 01:21:53,880 mga, na makikita na tulad ng C function. 1650 01:21:53,880 --> 01:21:59,050 CS50 ay hindi nawala sa at gumawa ng anumang karagdagang. 1651 01:21:59,050 --> 01:22:01,850 >> Rob: Tamang. 1652 01:22:01,850 --> 01:22:08,155 Anuman sa mga C tulad ng [hindi marinig], mo ang maaaring gamitin ng mga nasa aming mga string. 1653 01:22:08,155 --> 01:22:12,400 >> Joseph: At isa huling bagay na gusto kong pagbanggit ay mayroon kaming isang gabay sa istilo 1654 01:22:12,400 --> 01:22:13,130 para sa class na ito. 1655 01:22:13,130 --> 01:22:13,360 >> Rob: Oh, oo. 1656 01:22:13,360 --> 01:22:15,270 >> Joseph: Kaya kung nag-ay nagmula sa isang mga programa ng background bago, mo 1657 01:22:15,270 --> 01:22:17,750 maaaring mayroon ilang mga convention kapag sumusulat ka ng code tulad ng paglalagay ng 1658 01:22:17,750 --> 01:22:20,950 tirante sa parehong linya o partikular na paraan ng pag-indent 1659 01:22:20,950 --> 01:22:22,240 o pagbibigay ng pangalan sa iyong mga variable. 1660 01:22:22,240 --> 01:22:26,870 Sa klase na ito, gusto naming sundin ang isang tiyak na gabay sa estilo dahil lamang, 1661 01:22:26,870 --> 01:22:31,100 well, kung pumunta out at magtrabaho sa industriya, ikaw ay pagpunta sa inaasahang 1662 01:22:31,100 --> 01:22:34,780 upang sundin ang mga estilo gabay ng kumpanya kung saan pumunta ka sa. 1663 01:22:34,780 --> 01:22:38,040 >> Tulad halimbawa, Facebook palagay ko May isang partikular na uri ng pagbibigay ng pangalan 1664 01:22:38,040 --> 01:22:38,760 convention. 1665 01:22:38,760 --> 01:22:42,570 At mayroong mga pagkakaiba sa pagitan ng kamelyo mga variable ng casing at tulad lamang 1666 01:22:42,570 --> 01:22:44,610 naghihiwalay sa kanila na may mga underscore. 1667 01:22:44,610 --> 01:22:52,170 At din, sa tingin ko pinaka-mahalaga, tulad ng halimbawa, indentation, tama? 1668 01:22:52,170 --> 01:22:56,440 >> Namin simulan ang kulot tirante kung saan ang kundisyon ay, at sila 1669 01:22:56,440 --> 01:22:57,730 ay sa susunod na linya. 1670 01:22:57,730 --> 01:23:01,230 At naming ilagay din kulot tirante sa kahit na ito ay lamang ng isang linya. 1671 01:23:01,230 --> 01:23:06,100 At ng maraming beses, may mga paraan upang magawa nito kung saan maaari mong iwanan ang mga tirante 1672 01:23:06,100 --> 01:23:08,380 off kung ito ay lamang ng isang linya sa ilalim ng Kung statement. 1673 01:23:08,380 --> 01:23:12,070 Ngunit sa class na ito, gusto naming sundin ang isang tiyak na gabay sa estilo lamang kaya makakakuha ka ng 1674 01:23:12,070 --> 01:23:13,550 ginagamit upang na uri ng bagay. 1675 01:23:13,550 --> 01:23:16,410 >> Rob: Oo, at Estilo 50 ay pagpunta sa ipatupad ang gabay na ito ng estilo, at kami ay 1676 01:23:16,410 --> 01:23:18,080 pagpunta sa gumamit ng Estilo 50 sa grado ang iyong code. 1677 01:23:18,080 --> 01:23:25,150 Kaya ginagawang mas madali ang mga bagay para sa atin at sana ay hindi dapat gumawa ng mga bagay na 1678 01:23:25,150 --> 01:23:30,120 magkano ang mas masahol pa para sa iyo na nabigyan ng style Standardized hindi dapat na 1679 01:23:30,120 --> 01:23:31,460 hindi makatotohanang. 1680 01:23:31,460 --> 01:23:36,000 >> Joseph: At sa wakas, upang mahanap ang estilo Gabay, pumunta sa manual.cs50.net/style. 1681 01:23:36,000 --> 01:23:37,725 At oo. 1682 01:23:37,725 --> 01:23:40,575 >> Tagapagsalita 4: Sigurado ka ng pagpunta sa ipatupad anumang mga character sa bawat linya? 1683 01:23:40,575 --> 01:23:42,480 >> Rob: Oo. 1684 01:23:42,480 --> 01:23:45,405 >> Joseph: Paumanhin, guys. 1685 01:23:45,405 --> 01:23:47,680 >> Rob: Iyan ay tulad ng isa sa mga lamang bago. 1686 01:23:47,680 --> 01:23:50,420 Sa puntong ito, ako ay OK na may 120. 1687 01:23:50,420 --> 01:23:52,460 Ako OK may sinasabi 120 mga character sa bawat linya. 1688 01:23:52,460 --> 01:23:53,830 Nauunawaan ko doon sa pagiging ilang mga limitasyon. 1689 01:23:53,830 --> 01:23:57,130 Sa tingin ko 80 ay kaya maliit, ngunit kami ay pagpapatupad nito. 1690 01:23:57,130 --> 01:24:00,260 >> Joseph: na personal, sa tingin ko ang C, 80 character ay mas OK. 1691 01:24:00,260 --> 01:24:04,160 Sa sandaling simulan mo ang pagkuha sa iba pang mga mga wika tulad ng JavaScript at PHP, hindi 1692 01:24:04,160 --> 01:24:08,860 kaya makatwirang upang limitahan lamang ito sa 80 character. 1693 01:24:08,860 --> 01:24:09,260 OK. 1694 01:24:09,260 --> 01:24:12,780 Well, na noon ay ang sukdulang seksyon. 1695 01:24:12,780 --> 01:24:14,750 Gusto kendi ba? 1696 01:24:14,750 --> 01:24:16,000 >> Tagapagsalita 4: Oo. 1697 01:24:16,000 --> 01:24:18,667