1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] David J. MALAN: Ang lahat ng mga karapatan, ito ay CS50, at ito ang 2 00:00:11,630 --> 00:00:14,790 magsimula ng linggo dalawang. 3 00:00:14,790 --> 00:00:16,300 Salamat sa inyo. 4 00:00:16,300 --> 00:00:19,000 Ipaalam sa amin magsimula dito sa isang tawag sa telepono. 5 00:00:19,000 --> 00:00:30,005 Ako upang i-dial ang 617-bug-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: Ito ay CS50. 7 00:00:31,230 --> 00:00:33,930 Para sa Shuttle Boy, pindutin ang 1. 8 00:00:33,930 --> 00:00:36,660 Upang magsimulang muli, pindutin ang 9. 9 00:00:36,660 --> 00:00:38,180 David J. MALAN: Kaya't sinabi niya para sa Shuttle Boy, pindutin ang 1. 10 00:00:38,180 --> 00:00:41,560 Kaya kami ay pagpunta sa pindutin ang 1. 11 00:00:41,560 --> 00:00:43,230 CS50: Ano ang iyong pinagmulan? 12 00:00:43,230 --> 00:00:45,340 Para sa patyo sa loob, pindutin ang 1. 13 00:00:45,340 --> 00:00:47,080 Mather, pindutin ang 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, pindutin ang 3. 15 00:00:49,240 --> 00:00:51,280 Lamont, pindutin ang 4. 16 00:00:51,280 --> 00:00:53,210 Mem Hall, pindutin ang 5. 17 00:00:53,210 --> 00:00:55,660 Upang magsimulang muli, pindutin ang 0. 18 00:00:55,660 --> 00:00:59,590 David J. MALAN: Susubukan naming pindutin ang 1 para sa patyo sa loob. 19 00:00:59,590 --> 00:01:03,610 CS50: Susunod shuttle umalis ito napaka minutong sa 13:10, at 20 00:01:03,610 --> 00:01:09,820 sa 1:20 PM, 1:30 PM, 1:40. 21 00:01:09,820 --> 00:01:12,030 Ito ay CS50. 22 00:01:12,030 --> 00:01:15,570 >> David J. MALAN: Kaya ito ay CS50 ng boses. 23 00:01:15,570 --> 00:01:18,030 At ito ay isang halimbawa ng uri ng panghuling proyekto, 24 00:01:18,030 --> 00:01:19,500 Halimbawa, maaari mong kumagat off patungo sa 25 00:01:19,500 --> 00:01:20,600 katapusan ng semestre. 26 00:01:20,600 --> 00:01:23,840 Halimbawa, ang shuttleboy.cs50.net na umiiral - 27 00:01:23,840 --> 00:01:28,200 talagang isang proyekto na ako unang sinulat ni pagkatapos pagkuha CS51 28 00:01:28,200 --> 00:01:29,740 bumalik kapag ako ay isang undergraduate. 29 00:01:29,740 --> 00:01:32,250 At ang inspirasyon dito ay bumalik pagkatapos ay, lahat sila ay may 30 00:01:32,250 --> 00:01:34,320 naka-print na shuttle bus iskedyul, at walang 31 00:01:34,320 --> 00:01:35,970 paniwala sa pagtingin ng mga bagay-bagay sa online. 32 00:01:35,970 --> 00:01:38,730 At kaya ko uri ng kalapati sa isang weekend, poured sa pamamagitan ng 33 00:01:38,730 --> 00:01:41,460 naka-print na iskedyul, at port ito sa isang computer program. 34 00:01:41,460 --> 00:01:43,790 Sa oras, ang computer program nangyari na nakasulat 35 00:01:43,790 --> 00:01:47,110 sa C. At iyong aktwal na tumakbo ito sa pamamagitan ng pag-type ng Shuttle Boy sa isang 36 00:01:47,110 --> 00:01:48,600 kumikislap prompt tulad namin ang paggawa sa gayon ay malayo. 37 00:01:48,600 --> 00:01:50,450 Ngunit sa mga nakaraang taon, ito ay lumaki sa isang instant 38 00:01:50,450 --> 00:01:51,390 messaging bot. 39 00:01:51,390 --> 00:01:53,970 Ito ay lumaki mas kamakailan sa website na ito, sa isang 40 00:01:53,970 --> 00:01:57,720 SMS-based tool, pati na rin sa boses-based na tool na. 41 00:01:57,720 --> 00:02:00,170 At ito ay upang iparamdam sa mga uri ng mga bagay na maaari mong 42 00:02:00,170 --> 00:02:02,380 gawin para sa iyong sarili sa pamamagitan ng pagtatapos ng semestre. 43 00:02:02,380 --> 00:02:05,490 >> Halimbawa, doon, ang SMS na bersyon ng Shuttle Boy mangyayari 44 00:02:05,490 --> 00:02:06,510 upang gumana tulad ng sumusunod. 45 00:02:06,510 --> 00:02:10,880 Kung, sa iyong cell phone, magpadala sa iyo ng isang text message sa 41,411 at 46 00:02:10,880 --> 00:02:14,300 pagkatapos ay ipadala ang mga espesyal na simbolo sboy, para sa Shuttle Boy, 47 00:02:14,300 --> 00:02:18,350 sinundan ng A at B, kung saan ay isang pinagmulan at B ay isang 48 00:02:18,350 --> 00:02:19,070 destination - 49 00:02:19,070 --> 00:02:21,030 Halimbawa, Boylston Space Quad - 50 00:02:21,030 --> 00:02:23,330 kung ano dapat kang bumalik sa loob ng ilang segundo ay isang tekstong 51 00:02:23,330 --> 00:02:25,820 mensahe mula sa Shuttle Boy na nagsasabi sa iyo nang eksakto kapag ang 52 00:02:25,820 --> 00:02:28,990 susunod na ilang shuttle, mula sa puntong iyon Isang pagpunta sa na 53 00:02:28,990 --> 00:02:29,640 point B. 54 00:02:29,640 --> 00:02:32,510 At ito ay isang mas pangkalahatang halimbawa ng kung ano ang kilala bilang 55 00:02:32,510 --> 00:02:33,920 gamit ang isang API. 56 00:02:33,920 --> 00:02:36,930 >> Kaya halimbawa, ito dito lamang shuttleboy.cs50.net, ang 57 00:02:36,930 --> 00:02:39,300 aktwal na web-based na pagkakatawang-tao ng mga ito. 58 00:02:39,300 --> 00:02:42,480 Ngunit ang data na underlines ng mga apps na ito at iba pang mga na CS50 59 00:02:42,480 --> 00:02:45,560 Bumuo ang lahat ng nakalantad sa lahat dito sa form 60 00:02:45,560 --> 00:02:49,340 ng API, application programming interface. 61 00:02:49,340 --> 00:02:52,220 At ito lamang ay isang magarbong paraan ng pagsabi na mga tao na gusto namin sa 62 00:02:52,220 --> 00:02:56,010 sa Internet at iba pa na ginugol ng ilang panahon paglikha 63 00:02:56,010 --> 00:02:59,970 software na maaari mong gamitin upang grab ang mga data mula sa amin at 64 00:02:59,970 --> 00:03:02,510 pagkatapos ay bumuo ng iyong sariling mga application sa tuktok 65 00:03:02,510 --> 00:03:03,840 ng na hanay ng data. 66 00:03:03,840 --> 00:03:06,610 Kaya halimbawa, ito Shuttle Boy API pahina dito, na 67 00:03:06,610 --> 00:03:09,390 mangyayari sa CS50 manu-manong, mahalagang mga dokumento 68 00:03:09,390 --> 00:03:13,080 kung paano maaari kang pumunta tungkol sa humihiling sa CS50 server para sa data. 69 00:03:13,080 --> 00:03:16,240 Halimbawa, kung hindi ka pamilyar sa CSV na mga file, kuwit 70 00:03:16,240 --> 00:03:18,940 separated values, ito lamang ang uri ng mabilis at marumi 71 00:03:18,940 --> 00:03:20,310 Excel-tulad ng mga file. 72 00:03:20,310 --> 00:03:23,110 Gayon ay maaari mong hilingin sa ng Shuttle Boy para sa lahat ng data sa lahat ng mga 73 00:03:23,110 --> 00:03:25,090 bahay at ang kanilang mga coordinate sa GPS, at makakakuha ka ng 74 00:03:25,090 --> 00:03:27,300 bumalik, mahalagang, ang isang spreadsheet na tulad nang na 75 00:03:27,300 --> 00:03:30,820 maaari mong basahin sa isang programa ng iyong sariling at pagkatapos ay 76 00:03:30,820 --> 00:03:33,250 makabuo ng mga resulta, tulad ng Shuttle Boy mismo 77 00:03:33,250 --> 00:03:34,160 mangyayari sa paggawa. 78 00:03:34,160 --> 00:03:37,030 Para sa mga mas pamilyar na, mas modernong representasyon ng data 79 00:03:37,030 --> 00:03:39,420 isama JSON, JavaScript Bagay pagtatanda. 80 00:03:39,420 --> 00:03:40,620 May isang bagay na bumalik sa iyo patungo sa 81 00:03:40,620 --> 00:03:41,720 katapusan ng semestre. 82 00:03:41,720 --> 00:03:45,440 >> Ngunit muli, ito ay isa lamang ng ilang ng sariling mga API ng CS50. 83 00:03:45,440 --> 00:03:48,320 At kapana-panabik na bagay ngayon, mga araw na ito, Facebook at 84 00:03:48,320 --> 00:03:51,110 Twitter at Google at medyo magkano ang bawat popular na website out 85 00:03:51,110 --> 00:03:54,130 ay may ilang uri ng API, na nangangahulugan na kung basahin mo ang 86 00:03:54,130 --> 00:03:56,620 babasahin sa kanilang website, mag-sign up para sa isang 87 00:03:56,620 --> 00:03:59,980 account, maaari mong simulan ang pagsusulat ng software sa tuktok ng 88 00:03:59,980 --> 00:04:03,680 anumang mga tool o data na kumpanya ay nagbibigay ng. 89 00:04:03,680 --> 00:04:06,210 At kaya isa sa aming sariling mga Fellows ng pagtuturo ng ilang taon na ang likod 90 00:04:06,210 --> 00:04:07,620 nagsulat ng Mac bersyon ng. 91 00:04:07,620 --> 00:04:10,990 Kaya ang link na may pamagat na Mac dito sa kaliwang tuktok, maaari mong aktwal 92 00:04:10,990 --> 00:04:13,940 i-download ang isang widget sa Mac OS na tumatakbo sa iyong sariling Mac upang gawin ang 93 00:04:13,940 --> 00:04:15,040 parehong uri ng mga bagay. 94 00:04:15,040 --> 00:04:17,970 Kaya lahat ng ito ay tungkol sa pagbuo sa tuktok ng data set tulad ng mga ito. 95 00:04:17,970 --> 00:04:21,839 Ngunit higit pa sa na patungo sa katapusan ng semestre. 96 00:04:21,839 --> 00:04:25,780 >> Kaya natin sumisid sa tunay mabilis sa isang bug, uri ng makakuha ng 97 00:04:25,780 --> 00:04:27,990 bagay warmed up ngayon, at sa tingin muli sa ilan sa mga 98 00:04:27,990 --> 00:04:29,660 mga bagay na namin ay tumingin sa nakaraang linggo. 99 00:04:29,660 --> 00:04:32,840 Sa partikular, hayaan mo akong magpatuloy at hilahin, sabihin nating, 100 00:04:32,840 --> 00:04:34,080 halimbawang ito dito. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, ito ay makukuha sa website ng kurso kung ikaw ay 102 00:04:37,500 --> 00:04:40,250 i-download ito at sundutin sa paligid ng iyong sarili. 103 00:04:40,250 --> 00:04:43,520 Ngunit natin mag-zoom in dito sa sa ito medyo maikling programa, at 104 00:04:43,520 --> 00:04:46,550 napakabilis na pagbabalik-tanaw ng ilan sa ang pangunahing mga bloke ng gusali na 105 00:04:46,550 --> 00:04:48,880 talaga namin ay pagpunta sa makatarungan simulan ang pagkuha para sa ipinagkaloob. 106 00:04:48,880 --> 00:04:51,860 >> Kaya ang asul na mga bagay-bagay, sa linya 1 hanggang 9, lamang 107 00:04:51,860 --> 00:04:53,670 softball katanungan. 108 00:04:53,670 --> 00:04:54,590 Kaya ito lamang ang mga komento. 109 00:04:54,590 --> 00:04:56,230 Ang mga ito ay may hindi nagagamit kahulugan. 110 00:04:56,230 --> 00:04:58,460 Ngunit sila ng mga komento sa kamalayan na hindi sila ng mga tala na 111 00:04:58,460 --> 00:05:02,010 Ko, ang tao, ginawa sa aking sarili upang sa lecture at pagkatapos 112 00:05:02,010 --> 00:05:04,340 panayam, maaari ko aktwal na tandaan kung ano ang program na ito 113 00:05:04,340 --> 00:05:07,120 ginagawa nang hindi na kinakailangang upang basahin sa pamamagitan ng ito linya sa pamamagitan ng linya at 114 00:05:07,120 --> 00:05:08,990 muli ng kasaysayan sa aking isip. 115 00:05:08,990 --> 00:05:11,000 Dagdag pa rito, kung ako ipasa sa programang ito sa ibang tao tulad ng 116 00:05:11,000 --> 00:05:14,420 mo, mas malinaw sa iyo, dahil sa mga komento tulad nito, 117 00:05:14,420 --> 00:05:16,680 kung ano ang programa ng aktwal na ginagawa, o hindi bababa sa kung ano ang 118 00:05:16,680 --> 00:05:18,210 programa dapat na ginagawa. 119 00:05:18,210 --> 00:05:20,760 Man o hindi ito ay tama ay isa pang bagay na sama-sama. 120 00:05:20,760 --> 00:05:25,040 Ngayon, sa C, na may multi-line komento, isipin ang na sa linya 121 00:05:25,040 --> 00:05:27,880 isa dito ang magic simbolo / *. 122 00:05:27,880 --> 00:05:30,380 Ito ay nangangahulugan na dito ay ang simula ng isang komento. 123 00:05:30,380 --> 00:05:34,560 At wala pang tao mahalaga hanggang sa maabot mo ang katapusan Terminator, 124 00:05:34,560 --> 00:05:36,700 na * /, ang tapat. 125 00:05:36,700 --> 00:05:39,120 Kaya ang katunayan na mayroon akong 80-ilang mga kakaibang bituin dito mula sa 126 00:05:39,120 --> 00:05:41,550 kaliwa papuntang kanan ay talagang lamang ng isang Aesthetic detalye. 127 00:05:41,550 --> 00:05:43,370 Ay walang functional na kahulugan. 128 00:05:43,370 --> 00:05:44,490 >> Ngayon kung paano tungkol sa linya 11? 129 00:05:44,490 --> 00:05:46,940 Ano ang gawin sa mga tuntunin lego? 130 00:05:51,560 --> 00:05:52,540 Ano iyon? 131 00:05:52,540 --> 00:05:54,280 Madla: Kasama ang pamantayan. 132 00:05:54,280 --> 00:05:54,740 David J. MALAN: OK, mabuti. 133 00:05:54,740 --> 00:05:57,500 Kaya kasama ang stdio.h library. 134 00:05:57,500 --> 00:05:58,230 Kaya kung ano ang na ibig sabihin nito? 135 00:05:58,230 --> 00:06:01,570 Well, sa loob ng file na iyon, stdio.h, ang maramihang mga 136 00:06:01,570 --> 00:06:03,320 function na pagdeklara - 137 00:06:03,320 --> 00:06:05,290 na, ang code na ibang tao sinulat ni. 138 00:06:05,290 --> 00:06:08,160 At isang perpektong halimbawa ng isang function na ipinahayag sa 139 00:06:08,160 --> 00:06:10,250 stdio.h ay - 140 00:06:10,250 --> 00:06:11,980 kung aling mga paboritong sa ngayon? 141 00:06:11,980 --> 00:06:14,300 Sa printf, isa ng ang pinaka-karaniwang mga gamitin, tiyak 142 00:06:14,300 --> 00:06:15,840 sa maagang bahagi, mula sa library ay doon. 143 00:06:15,840 --> 00:06:19,290 Kung ibubukod ko na linya ng code, ang kumalatong ay pagpunta sa sumigaw 144 00:06:19,290 --> 00:06:22,550 sa akin ng isang bagay tungkol sa paggamit ng hindi nagbigay-alam simbolo. 145 00:06:22,550 --> 00:06:24,930 Isang bagay na hindi nagbigay-alam ay marahil ang keyword, dahil 146 00:06:24,930 --> 00:06:27,770 hindi pa namin alam ang tagatala kung ano printf mukhang 147 00:06:27,770 --> 00:06:29,230 bang maliban kung isama namin na linya. 148 00:06:29,230 --> 00:06:31,830 At higit pa pababa sa Earth, talaga, kung ano ang linya na sinasabi ay 149 00:06:31,830 --> 00:06:34,890 buksan ang file na iyon, stdio.h, saanman ito ay sa server 150 00:06:34,890 --> 00:06:38,200 hard drive, o hard drive ng appliance, at kopya-paste ito 151 00:06:38,200 --> 00:06:40,240 doon sa aking file, nang walang aking 152 00:06:40,240 --> 00:06:41,730 hindi upang gawin iyon nang manu-mano. 153 00:06:41,730 --> 00:06:44,420 >> Ngayon, sa sandaling makuha namin ang dito sa main, bago katagal sisimulan namin 154 00:06:44,420 --> 00:06:46,900 panunukso bukod kung ano ang int at kung ano ang walang silbi ay. 155 00:06:46,900 --> 00:06:48,430 Ngunit sa ngayon, tingnan natin sa tatlong linya 156 00:06:48,430 --> 00:06:50,350 sa loob ng 15 sa pamamagitan ng 17. 157 00:06:50,350 --> 00:06:52,250 Ito dito inaangkin ko bilang maraming surot. 158 00:06:52,250 --> 00:06:54,900 Linya 7 sa aking mga komento ay nagsasabing "Kung i-print ang 10 159 00:06:54,900 --> 00:06:59,410 asterisk ngunit hindi. "Bakit ang ito ay hindi print, sa katunayan, 160 00:06:59,410 --> 00:07:01,097 10 tulad bituin? 161 00:07:01,097 --> 00:07:02,347 Madla: [hindi marinig]. 162 00:07:05,210 --> 00:07:05,800 David J. MALAN: Eksaktong. 163 00:07:05,800 --> 00:07:08,720 Kaya mapapansin na kami ay nagsisimula sa mabibilang mula 0. 164 00:07:08,720 --> 00:07:10,780 At ito ay talagang isang convention sa programming at 165 00:07:10,780 --> 00:07:13,230 computer science sa mas pangkalahatang paraan, simula upang mabilang 166 00:07:13,230 --> 00:07:14,610 mula 0 sa halip ng 1. 167 00:07:14,610 --> 00:07:16,690 At ito ay talagang lamang derives mula sa ang katunayan na ang, para sa 168 00:07:16,690 --> 00:07:18,940 Halimbawa, kapag nagkaroon kami ng walong tao sa entablado, kapag 169 00:07:18,940 --> 00:07:20,680 walang isa ay pagtataas ng kanilang mga kamay, sila ay 170 00:07:20,680 --> 00:07:22,340 lahat ng mga epektibong zero. 171 00:07:22,340 --> 00:07:24,260 At iba pa lang uri ng isang computer convention ito, 172 00:07:24,260 --> 00:07:26,030 samakatuwid, upang simulan ang pagbibilang mula 0. 173 00:07:26,030 --> 00:07:29,130 Kung na ang pinakamababang bilang maaari mong kumatawan sa binary. 174 00:07:29,130 --> 00:07:32,270 >> Kaya dito namin nagsimula ng Sinisimulan i sa 0. 175 00:07:32,270 --> 00:07:34,230 Iyong itinakda namin i katumbas ng 0. 176 00:07:34,230 --> 00:07:37,780 Ngunit pagkatapos ko ginawa ang pagkakamaling ito dito, na sinasabi i ay mas mababa sa o 177 00:07:37,780 --> 00:07:38,820 katumbas sa 10. 178 00:07:38,820 --> 00:07:41,700 Ngunit kung sa tingin mo na sa pamamagitan, kung sisimulan ko sa 0 at pagkatapos ay pumunta ako 179 00:07:41,700 --> 00:07:46,410 hanggang sa 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, aktwal na ako pagpunta sa 180 00:07:46,410 --> 00:07:49,980 i-print ang 11 bituin sa screen, dahil ko na nawala hanggang 181 00:07:49,980 --> 00:07:52,410 sa at pantay-pantay sa 10. 182 00:07:52,410 --> 00:07:55,090 Kaya madaling aayos dito pagkatapos ay kung ano? 183 00:07:55,090 --> 00:07:56,070 Madla: [hindi marinig]. 184 00:07:56,070 --> 00:07:57,350 David J. MALAN: lamang baguhin ito sa mas mababa. 185 00:07:57,350 --> 00:07:59,700 Kung gusto mo talagang, maaari mong gawin ito. 186 00:07:59,700 --> 00:08:01,370 Ngunit sa pangkalahatan, na frowned kapag. 187 00:08:01,370 --> 00:08:04,020 At kaya simula mabibilang mula 0 ay isang bagay na dapat mong 188 00:08:04,020 --> 00:08:05,510 karaniwang masanay sa. 189 00:08:05,510 --> 00:08:07,810 Ngayon, kung ano ang tungkol sa buong bumuo sa at ng mismo? 190 00:08:07,810 --> 00:08:10,640 Ito linya 15 demarks isang para sa loop. 191 00:08:10,640 --> 00:08:12,510 Kaya para sa ay hindi function na. 192 00:08:12,510 --> 00:08:13,640 Ito ay isang pahayag. 193 00:08:13,640 --> 00:08:16,180 Ito ay isang looping bumuo, tulad ng nakita natin sa simula. 194 00:08:16,180 --> 00:08:17,600 At ito ay may tatlong bahagi. 195 00:08:17,600 --> 00:08:19,740 Pansinin na ang unang bahagi sa 196 00:08:19,740 --> 00:08:21,350 sa kaliwa ng semicolon. 197 00:08:21,350 --> 00:08:24,200 May gitnang bahagi sa pagitan ng dalawang semicolons. 198 00:08:24,200 --> 00:08:26,250 At pagkatapos ay ang kanang bahagi sa kanan 199 00:08:26,250 --> 00:08:27,640 ng pangalawang semicolon. 200 00:08:27,640 --> 00:08:31,822 Ngayon, ang unang sa mga ito ang kung ano? 201 00:08:31,822 --> 00:08:33,679 Madla: [hindi marinig]. 202 00:08:33,679 --> 00:08:34,270 David J. MALAN: Bumalik doon? 203 00:08:34,270 --> 00:08:34,816 Oo? 204 00:08:34,816 --> 00:08:35,980 Madla: Pinasimulan. 205 00:08:35,980 --> 00:08:36,850 >> David J. MALAN: Pinasimulan. 206 00:08:36,850 --> 00:08:37,840 Kaya kung ano ang ibig sabihin nito? 207 00:08:37,840 --> 00:08:40,690 Inihayag namin ang isang variable na tinatawag na i. 208 00:08:40,690 --> 00:08:43,840 Ng uri int, dahil ko na tinukoy int i. 209 00:08:43,840 --> 00:08:46,470 At ako Sinisimulan ko ang halaga ng 0. 210 00:08:46,470 --> 00:08:47,730 Kaya kung ano ang ito talagang sinasabi? 211 00:08:47,730 --> 00:08:50,680 Epektibo ito sinasabi sa computer hey, ninyo ako sapat 212 00:08:50,680 --> 00:08:53,660 memorya, RAM sapat, upang umangkop sa isang numero, at pagkatapos ay ilagay ang 213 00:08:53,660 --> 00:08:56,130 numero ng 0 sa na tipak ng RAM. 214 00:08:56,130 --> 00:08:59,100 At bilang isang bukod, kung gaano kalaki ang isang int karaniwang, ng hindi bababa sa loob 215 00:08:59,100 --> 00:09:00,280 ng appliance? 216 00:09:00,280 --> 00:09:01,000 Madla: 32 bit. 217 00:09:01,000 --> 00:09:01,670 David J. MALAN: 32 bits. 218 00:09:01,670 --> 00:09:04,890 Kaya na nangangahulugan na bigyan ako ng 32 bit, na kilala bilang 4 bytes, 219 00:09:04,890 --> 00:09:07,250 at ilagay ang halaga 0 sa ito, na kung saan ay medyo madali dahil 220 00:09:07,250 --> 00:09:09,110 nangangahulugan lamang ito nakatakda ang lahat ng mga bit sa 0. 221 00:09:09,110 --> 00:09:11,690 >> Sa ngayon, ang ikalawang bahagi dito ay ang kundisyon. 222 00:09:11,690 --> 00:09:14,590 At kundisyon, ng pangalan nagmumungkahi, ay kung ano ay naka-check 223 00:09:14,590 --> 00:09:18,100 muli at muli at muli bilang sa kung ito ay totoo o hindi. 224 00:09:18,100 --> 00:09:21,410 Kaya ito ay sinasabi na gawin ang mga sumusunod na linya ng code - 225 00:09:21,410 --> 00:09:23,950 lalo linya 16, dahil na ang isa lamang indent 226 00:09:23,950 --> 00:09:24,820 sa ilalim nito - 227 00:09:24,820 --> 00:09:26,980 hangga't i ay mas mababa sa 10. 228 00:09:26,980 --> 00:09:30,520 At pagkatapos ng bawat pag-ulit sa pamamagitan ng loop, gawin ang 229 00:09:30,520 --> 00:09:33,840 incrementation, na sa kasong ito ay i + +. 230 00:09:33,840 --> 00:09:35,580 Ngayon, ito ay hindi na i + +. 231 00:09:35,580 --> 00:09:37,610 Ito ay maaaring maging i -. 232 00:09:37,610 --> 00:09:39,860 Ngunit kung ginawa ko ito, kung ano ang pag-uugali ng pagpunta 233 00:09:39,860 --> 00:09:41,370 ng programang ito? 234 00:09:41,370 --> 00:09:42,290 Madla: Ito ay pagpunta sa isang walang-katapusang loop. 235 00:09:42,290 --> 00:09:44,060 David J. MALAN: Ito ay pagpunta sa ilang mga uri ng walang-katapusang loop, 236 00:09:44,060 --> 00:09:47,720 maliban kung makuha namin ang masuwerteng pagkatapos negatibong 2 bilyong o kaya. 237 00:09:47,720 --> 00:09:51,320 Siguro bagay ay pambalot ng paligid, sa pamamagitan ng likas na katangian ng ang tiyak na 238 00:09:51,320 --> 00:09:53,930 bilang ng mga bit na aming inilaan para sa isang int. 239 00:09:53,930 --> 00:09:56,270 Ngunit tiyak na ito upang umulit malayo higit sa 10 at 240 00:09:56,270 --> 00:09:58,630 tiyak na higit sa 11 beses dito. 241 00:09:58,630 --> 00:10:02,240 >> At ngayon, tulad ng bukod, Napagtanto na i + + at i - 242 00:10:02,240 --> 00:10:04,420 talaga lang sintaktik asukal. 243 00:10:04,420 --> 00:10:07,210 Lang shorthand notation para sa kung ano ang ng kaunti pa 244 00:10:07,210 --> 00:10:08,720 tahasang nakasulat na tulad ng sumusunod: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 Na kapareho sa i + +. 247 00:10:13,460 --> 00:10:15,860 Ito ang uri ng hitsura prettier sasabihin i + +. 248 00:10:15,860 --> 00:10:17,490 Mas maikli at malinaw, mas nababasa. 249 00:10:17,490 --> 00:10:19,030 At kaya karamihan sa mga tao ay gawin iyon sa halip. 250 00:10:19,030 --> 00:10:21,840 Ngunit ito ay kapareho pagtakbo sa 251 00:10:21,840 --> 00:10:22,900 kung ano lamang namin nakita. 252 00:10:22,900 --> 00:10:27,770 Kaya sa maikling salita, ang mabilis na pag-aayos dito ay lamang sabihin umulit i 253 00:10:27,770 --> 00:10:30,690 mula 0 ang lahat ng mga paraan up sa mas mababa sa 10. 254 00:10:30,690 --> 00:10:32,700 At pagkatapos ay makikita namin sa katunayan makakuha ng 10 bituin. 255 00:10:32,700 --> 00:10:33,430 >> Kaya sabihin subukan ito. 256 00:10:33,430 --> 00:10:35,310 Hayaan akong buksan ang terminal sa ibaba. 257 00:10:35,310 --> 00:10:37,420 Hayaan akong pumunta sa direktoryo na ito. 258 00:10:37,420 --> 00:10:40,030 At ako pagpunta upang ipunin ito nang manu-mano sa may kalatong sa ngayon. 259 00:10:40,030 --> 00:10:44,880 At ako pagpunta upang ipunin ang bilang buggy1.c, Ipasok. 260 00:10:44,880 --> 00:10:50,280 At ngayon buggy1, bakit walang ganitong file o direktoryo 261 00:10:50,280 --> 00:10:52,026 tinatawag buggy1? 262 00:10:52,026 --> 00:10:53,850 Madla: [hindi marinig]. 263 00:10:53,850 --> 00:10:54,240 David J. MALAN: Oo. 264 00:10:54,240 --> 00:10:55,420 Kaya ito aktwal na tinatawag a.out. 265 00:10:55,420 --> 00:10:57,480 Kaya isipin ang kung mo lamang magpatakbo kumalatong, kung saan kumalatong ay 266 00:10:57,480 --> 00:11:00,420 tagatala, at hindi mo tukuyin ang pangalan na nais mong i- 267 00:11:00,420 --> 00:11:03,550 ibigay sa iyong programa, ito ay pagpunta sa default sa a.out. 268 00:11:03,550 --> 00:11:05,030 Kaya sa katunayan kung gawin ko ls - 269 00:11:05,030 --> 00:11:05,510 oops. 270 00:11:05,510 --> 00:11:07,680 At didn't ko - ang itim-at-puting isyu ilan sa 271 00:11:07,680 --> 00:11:08,840 mo nahaharap ay naayos. 272 00:11:08,840 --> 00:11:10,670 Ngunit ipaalam sa akin gawin ito. 273 00:11:10,670 --> 00:11:14,570 Doon ay may namin a.out sa kaliwang bahagi doon. 274 00:11:14,570 --> 00:11:17,360 Kaya mayroon kaming upang patakbuhin ang a.out sa halip na buggy1. 275 00:11:17,360 --> 00:11:19,140 >> Kaya hayaan mo akong magpatuloy at gawin ito. 276 00:11:19,140 --> 00:11:22,840 . / A.out, ang Enter. 277 00:11:22,840 --> 00:11:26,160 At tila ako ay hindi gawin kung ano? 278 00:11:26,160 --> 00:11:26,620 Madla: I-save. 279 00:11:26,620 --> 00:11:27,390 David J. MALAN: I-save ang aking file. 280 00:11:27,390 --> 00:11:31,520 Kaya na ay madaling malutas sa pamamagitan ng naaabot ang Control S, o pagpunta sa 281 00:11:31,520 --> 00:11:33,450 File, I-save, tulad ng sa karamihan ng mga programa. 282 00:11:33,450 --> 00:11:36,360 Ipaalam sa akin pumunta down dito, i-clear ang screen, patakbuhin itong muli. 283 00:11:36,360 --> 00:11:37,960 At may pa rin bug. 284 00:11:37,960 --> 00:11:41,618 Kaya kung ano ang nangyayari - 285 00:11:41,618 --> 00:11:42,980 Madla: Hindi mo makatipon. 286 00:11:42,980 --> 00:11:44,040 David J. MALAN: Ah, mabuti. 287 00:11:44,040 --> 00:11:45,010 Hindi ko makatipon ito. 288 00:11:45,010 --> 00:11:47,250 Tulad ng isang gagong tao, Naghahanap ako sa code upang makita kung ano ang mali. 289 00:11:47,250 --> 00:11:51,275 Kaya kumalatong buggy1.c, ngayon a.out. 290 00:11:51,275 --> 00:11:52,640 At phew, nai-save. 291 00:11:52,640 --> 00:11:55,090 >> Kaya mukhang ng kaunti pangit dahil walang bagong linya 292 00:11:55,090 --> 00:11:55,970 saanman sa programa. 293 00:11:55,970 --> 00:11:57,390 Ngunit muli, ito lamang ay isang Aesthetic detalye. 294 00:11:57,390 --> 00:11:59,430 At hindi bababa sa kung namin ang bilang ng mga out, dapat namin 295 00:11:59,430 --> 00:12:01,160 na ngayong makita ang mga 10 tulad bituin. 296 00:12:01,160 --> 00:12:03,260 Well, kung ano ang tungkol sa ikalawang warm-up halimbawa? 297 00:12:03,260 --> 00:12:07,750 Kaya noong buggy2, inaangkin ko na ang bersyon na ito, masyadong, ay i-print 298 00:12:07,750 --> 00:12:10,110 10 bituin, isa sa bawat linya. 299 00:12:10,110 --> 00:12:12,340 Kaya oras na ito, mayroon akong isang newline character, upang gumawa ng 300 00:12:12,340 --> 00:12:13,520 bagay ng kaunti prettier. 301 00:12:13,520 --> 00:12:15,410 Ngunit sa halip kung ano ang nakukuha ko ito. 302 00:12:15,410 --> 00:12:19,590 Kaya ipaalam sa akin kumalatong buggy2.c, ang Enter. 303 00:12:19,590 --> 00:12:21,790 Ngayon muli ito tinatawag a.out. 304 00:12:21,790 --> 00:12:23,130 Enter. 305 00:12:23,130 --> 00:12:26,900 Ko lamang makita ang isang bagong linya, tanging ang huling bagong linya na 306 00:12:26,900 --> 00:12:29,370 gumagalaw ang aking prompt sa susunod na linya. 307 00:12:29,370 --> 00:12:32,660 At pa malinaw ko na pag-print *, pagkatapos ng isang bagong linya, 308 00:12:32,660 --> 00:12:33,990 *, Pagkatapos ng isang bagong linya. 309 00:12:33,990 --> 00:12:35,490 Ngunit kung ano ang bug dito? 310 00:12:35,490 --> 00:12:35,974 Oo? 311 00:12:35,974 --> 00:12:37,224 Madla: [hindi marinig]. 312 00:12:39,850 --> 00:12:40,470 >> David J. MALAN: Eksaktong. 313 00:12:40,470 --> 00:12:44,110 Kaya hindi katulad sa ilang mga wika, tulad ng Python, kung saan indentation 314 00:12:44,110 --> 00:12:46,030 aktwal ay may functional na kahulugan, sa isang 315 00:12:46,030 --> 00:12:47,150 wika tulad ng C - 316 00:12:47,150 --> 00:12:49,140 dahil kakailanganin namin nakikita, PHP, JavaScript - 317 00:12:49,140 --> 00:12:51,940 indentation ay talagang lamang para sa mga tao 'benepisyo. 318 00:12:51,940 --> 00:12:55,690 Kaya ang katotohanan na ko na naka-indent linya 16 at 17 ay mukhang mahusay, 319 00:12:55,690 --> 00:12:57,530 ngunit ito ay walang functional kahulugan dito. 320 00:12:57,530 --> 00:13:00,700 Kung gusto kong parehong mga linya upang isakatuparan bilang bahagi ng para sa 321 00:13:00,700 --> 00:13:05,140 loop, pagkatapos ay dapat kong ilakip ito sa kulot tirante sa pamamagitan ng paggawa nito. 322 00:13:05,140 --> 00:13:08,540 Maaari mo lamang i-cut na sulok at alisin ang kulot tirante kung 323 00:13:08,540 --> 00:13:10,036 kung ano ang kaso? 324 00:13:10,036 --> 00:13:10,410 Madla: lamang isang linya. 325 00:13:10,410 --> 00:13:11,130 David J. MALAN: lamang isang linya. 326 00:13:11,130 --> 00:13:15,280 Kaya na lamang ang uri ng isang magaling na uri ng syntax detalye upang ang 327 00:13:15,280 --> 00:13:17,900 hindi mo aaksaya ng oras sa pagsusulat ng mga tatlong linya, dalawang na 328 00:13:17,900 --> 00:13:20,040 kulot tirante, lamang upang magsulat ng isang solong linya ng code. 329 00:13:20,040 --> 00:13:21,650 Ngunit kung mayroon kang dalawa o higit pang mga linya, namin 330 00:13:21,650 --> 00:13:22,860 katunayan na kailangang gawin ito. 331 00:13:22,860 --> 00:13:24,210 >> Kaya ngayon hayaan mo akong i-save ang. 332 00:13:24,210 --> 00:13:27,140 Hayaan akong magpatuloy at muling patakbuhin kumalatong. 333 00:13:27,140 --> 00:13:31,375 Pagkatapos ay hayaan mo akong muling palabas ng pelikula ng a.out, at ngayon ako makakakuha ng mga ito ng isa sa bawat linya. 334 00:13:31,375 --> 00:13:33,670 Ngayon, a.out muli ay uri ng isang pipi na pangalan para sa isang programa. 335 00:13:33,670 --> 00:13:37,500 Paano ko masasabi kumalatong sa aktwal na ninyo akong bigyan ng pangalan ng file 336 00:13:37,500 --> 00:13:39,820 na mas user-friendly, tulad buggy2 mismo? 337 00:13:43,200 --> 00:13:44,466 Ang isang maliit na mas malinaw? 338 00:13:44,466 --> 00:13:45,220 Madla: [hindi marinig]. 339 00:13:45,220 --> 00:13:47,810 David J. MALAN: OK, kaya ko aktwal na gawin ang napaka 340 00:13:47,810 --> 00:13:51,000 user-friendly na shortcut at magsulat lamang buggy2. 341 00:13:51,000 --> 00:13:53,840 Hindi ko tinukoy. C sa kasong ito, at pindutin ang Enter. 342 00:13:53,840 --> 00:13:58,530 At kung ano ang gumawa ng ginagawa ito compiles buggy2.c para sa akin sa pamamagitan ng 343 00:13:58,530 --> 00:14:00,260 na humihiling kumalatong gawin ito. 344 00:14:00,260 --> 00:14:05,100 Sa partikular, tawag kumalatong, tumatakbo kumalatong gamit ang paraan higit pa 345 00:14:05,100 --> 00:14:08,540 command-line argumento o switch kaysa sa aktwal na ako kailangan. 346 00:14:08,540 --> 00:14:11,270 Sa oras, namin bumalik sa kung ano ang lahat ng mga iba't-ibang 347 00:14:11,270 --> 00:14:13,810 misteriyoso nagigitlingan expression ay nangangahulugan. 348 00:14:13,810 --> 00:14:16,910 Ngunit sa ngayon, na lang sine-save sa akin ng problema ng 349 00:14:16,910 --> 00:14:19,600 pagkakaroon matandaan at kinakailangang i-type ang lahat ng mga 350 00:14:19,600 --> 00:14:21,150 iba't ibang nagigitlingan expression. 351 00:14:21,150 --> 00:14:23,240 At ang bentahe ng ito sa huli ay 352 00:14:23,240 --> 00:14:25,900 na ngayon ay mayroon akong buggy2. 353 00:14:25,900 --> 00:14:27,480 Kung gusto kong gawin ito nang manu-mano, bagaman, ako 354 00:14:27,480 --> 00:14:28,775 maaaring sa halip gawin ito - 355 00:14:28,775 --> 00:14:34,110 kumalatong-o buggy2 at pagkatapos buggy2.c. 356 00:14:34,110 --> 00:14:37,980 At iyon ay katulad ninyo ako ng isang file na tinatawag na buggy2. 357 00:14:37,980 --> 00:14:39,710 >> Kaya sa maikling, kumalatong tagatala ang. 358 00:14:39,710 --> 00:14:43,080 Gawing ay lamang ng isang user-friendly na tool na namin ang paggamit ng mas 359 00:14:43,080 --> 00:14:44,420 at higit pa, dahil ito ay nagsimulang 360 00:14:44,420 --> 00:14:47,330 gawing simple ang mga bagay para sa amin. 361 00:14:47,330 --> 00:14:49,430 At ibalik namin 0, bilang wakas. 362 00:14:49,430 --> 00:14:51,890 Sa ngayon, dahil, ngunit sisimulan namin ang panunukso ng bahaging iyon 363 00:14:51,890 --> 00:14:52,930 ngayon at sa Miyerkules. 364 00:14:52,930 --> 00:14:55,560 Anumang mga katanungan sa anumang ng mga ito? 365 00:14:55,560 --> 00:14:56,450 Oo? 366 00:14:56,450 --> 00:14:58,234 Madla: [hindi marinig] 367 00:14:58,234 --> 00:15:00,020 ls sa quote doon? 368 00:15:00,020 --> 00:15:01,710 David J. MALAN: OK. 369 00:15:01,710 --> 00:15:05,880 Kapag ako ay nag-type ls sa mga panipi, na sa akin ang paggawa ng ilang magic 370 00:15:05,880 --> 00:15:07,160 likod ng mga eksena upang ayusin ang isang bug. 371 00:15:07,160 --> 00:15:09,370 Nakalimutan ko, tulad namin ang nagsasabi sa marami sa inyo sa 372 00:15:09,370 --> 00:15:11,600 board ng talakayan, gawin - 373 00:15:11,600 --> 00:15:17,220 naming gawin ito ngayon - sudo yum-y-update appliance50. 374 00:15:17,220 --> 00:15:19,790 Whoops, na na-spell karapatan. 375 00:15:19,790 --> 00:15:23,240 Kaya appliance ay tulad ng isang operating system. 376 00:15:23,240 --> 00:15:25,650 Ito ay nagpapatakbo sa operating system na ito na tinatawag na Fedora. 377 00:15:25,650 --> 00:15:27,450 At ngayon dahil sa aking mabagal na koneksyon sa Internet, nag ko 378 00:15:27,450 --> 00:15:28,260 talagang hosed ito. 379 00:15:28,260 --> 00:15:31,620 Kaya't ang pagpapatakbo sudo yum update, bilang sabihin namin sa iyo na gawin sa 380 00:15:31,620 --> 00:15:34,080 problema hanay, ay mahalagang bang patakbuhin ang mga awtomatikong pag-update 381 00:15:34,080 --> 00:15:35,420 sa Mac OS o Windows. 382 00:15:35,420 --> 00:15:37,280 At ang mga dahilan para sa pagpapatakbo ng ito sa pinakadulo simula ng 383 00:15:37,280 --> 00:15:39,640 problema sa set ay dahil kapag nilikha namin ang appliance, ako 384 00:15:39,640 --> 00:15:42,480 messed up, at ginawa ko sinasadyang lahat ng iyong mga programa tumingin 385 00:15:42,480 --> 00:15:45,210 itim sa isang itim na screen, na ang dahilan kung bakit hindi mo nakikita ang mga ito 386 00:15:45,210 --> 00:15:45,860 sa pamamagitan ng default. 387 00:15:45,860 --> 00:15:48,020 Ngunit ang pinakabagong bersyon ng appliance Inaayos ito. 388 00:15:48,020 --> 00:15:50,500 At ko aayusin na panahon ng pahinga sandaling mayroon akong Internet 389 00:15:50,500 --> 00:15:51,280 pagkakakonekta. 390 00:15:51,280 --> 00:15:54,630 >> Kaya lamang ang mga quote Itinatago ang aking pagkakamali, napaka discreetly, 391 00:15:54,630 --> 00:15:55,730 tila. 392 00:15:55,730 --> 00:15:56,980 Iba pang mga tanong? 393 00:15:59,750 --> 00:16:00,668 Oo? 394 00:16:00,668 --> 00:16:02,012 Madla: Saan ang gumawa ay mula sa? 395 00:16:02,012 --> 00:16:03,810 [Hindi marinig] 396 00:16:03,810 --> 00:16:04,280 David J. MALAN: Magandang katanungan. 397 00:16:04,280 --> 00:16:05,460 Kung saan ay gumawa nanggaling? 398 00:16:05,460 --> 00:16:09,390 Ito ay isang Linux na programa na umiiral para sa maraming taon, mahaba 399 00:16:09,390 --> 00:16:10,570 bago CS50. 400 00:16:10,570 --> 00:16:12,930 At ito ay may isang operating system tulad ng Fedora. 401 00:16:12,930 --> 00:16:14,830 Hindi ito ay mula sa CS50 library. 402 00:16:14,830 --> 00:16:17,560 Sa katunayan, ang tanging bagay na dumating mula sa CS50 library 403 00:16:17,560 --> 00:16:20,470 sa gayon ngayon, na nasaksihan namin, GetString, GetInt, lahat ng 404 00:16:20,470 --> 00:16:25,550 mga Kumuha ng pag-andar, at ang salita ng string, at sa ilang mga 405 00:16:25,550 --> 00:16:26,575 lawak, ang salita bool. 406 00:16:26,575 --> 00:16:29,180 Ngunit makikita namin manunudyo na bukod kapag namin sumisid sa CS50 407 00:16:29,180 --> 00:16:30,580 appliance mismo. 408 00:16:30,580 --> 00:16:32,820 >> Kaya oo, isa pang tanong dito. 409 00:16:32,820 --> 00:16:36,636 Madla: Kapag sinabi mo gumawa at pagkatapos maraming surot, kung paano gumagana ang ang 410 00:16:36,636 --> 00:16:39,980 alam sa computer na [hindi marinig]? 411 00:16:39,980 --> 00:16:40,520 David J. MALAN: Magandang katanungan. 412 00:16:40,520 --> 00:16:43,830 Kaya kapag mo lamang magpatakbo gumawa buggy1 o gumawa buggy2, paano 413 00:16:43,830 --> 00:16:45,220 ang gumawa alam? 414 00:16:45,220 --> 00:16:49,900 Kaya sa pamamagitan ng default, kung nag-type ka gumawa buggy1, hitsura para sa isang 415 00:16:49,900 --> 00:16:52,330 file na tinatawag na buggy1.c. 416 00:16:52,330 --> 00:16:55,570 At pagkatapos executes ang mga naaangkop na mga utos ng kumalatong, 417 00:16:55,570 --> 00:17:00,380 sa gayong paraan override ang default na output ng file na tinatawag na a.out. 418 00:17:00,380 --> 00:17:03,670 Sa katunayan, kung tiningnan namin sa kung ano ang gumawa, ano - 419 00:17:03,670 --> 00:17:04,839 sabihin quit ito. 420 00:17:04,839 --> 00:17:09,530 Kung titingnan namin sa kung ano ang gumawa ay aktwal na ginagawa, gawin buggy2, 421 00:17:09,530 --> 00:17:10,470 nang hanggang sa petsa. 422 00:17:10,470 --> 00:17:13,020 Kaya hayaan mo akong alisin ang rm utos, ang 423 00:17:13,020 --> 00:17:14,319 programa sinulat ni ako bago. 424 00:17:14,319 --> 00:17:17,319 Pag-type ng Y-E-S upang kumpirmahin na gusto kong alisin ito. 425 00:17:17,319 --> 00:17:20,480 Kung gagawin ko ngayon gumawa, mapapansin na sa mahabang linya, 426 00:17:20,480 --> 00:17:22,980 may huling bagay na ito dito,-o buggy2. 427 00:17:22,980 --> 00:17:26,959 Gawin ang lahat ng ginagawa pagpasa na argumento, kaya na magsalita, upang 428 00:17:26,959 --> 00:17:29,665 Kumalatong, kaya hindi ko i-type ito sa aking sarili. 429 00:17:29,665 --> 00:17:32,660 >> Lahat ng karapatan, sa gayon ang isang mabilis na dalawang-administratibo 430 00:17:32,660 --> 00:17:33,470 anunsyo. 431 00:17:33,470 --> 00:17:36,940 Kaya para sa mga seksyon, na opisyal na nagsimula ito darating 432 00:17:36,940 --> 00:17:38,970 Linggo, makikita mo laging nais upang dalhin, kung 433 00:17:38,970 --> 00:17:40,120 mayroon kang isa, isang laptop. 434 00:17:40,120 --> 00:17:42,570 Kung hindi ka magkaroon ng laptop, huwag makipag-ugnay sa akin sa pamamagitan ng 435 00:17:42,570 --> 00:17:43,580 drop sa akin ng isang email. 436 00:17:43,580 --> 00:17:44,810 At kami na malaman ng workflow. 437 00:17:44,810 --> 00:17:47,100 Ano ang pangkalahatan na makikita mo sa seksyon na bahagi sila 438 00:17:47,100 --> 00:17:48,770 pangkonseptong, bahagi hands-on. 439 00:17:48,770 --> 00:17:52,190 Susubukan naming gamitin ang mga seksyon ng mga katanungan, ang bahagi ng 440 00:17:52,190 --> 00:17:54,110 problema set ang linggo, maglakad sa pamamagitan ng ilan sa mga 441 00:17:54,110 --> 00:17:55,820 pangkonseptong materyal mula sa panayam. 442 00:17:55,820 --> 00:17:57,480 At na ang lahat sa kasalukuyang hanay ng problema. 443 00:17:57,480 --> 00:18:00,010 At makikita din namin sumisid sa ilang mga hands-on na mga gawain, minsan 444 00:18:00,010 --> 00:18:02,190 na kung saan ay kinakailangan upang isumite, minsan 445 00:18:02,190 --> 00:18:02,830 kung saan ay hindi. 446 00:18:02,830 --> 00:18:04,630 Halimbawa, ang unang linggo na ito, sila ay nilalayong lamang bilang isang 447 00:18:04,630 --> 00:18:05,780 warm-up exercise. 448 00:18:05,780 --> 00:18:07,800 At makikita mo ang mga problema ay talagang lamang na. 449 00:18:07,800 --> 00:18:10,220 Sila ay nilalayong medyo maliit, ngunit hindi kinakailangan 450 00:18:10,220 --> 00:18:13,100 trivia programa sa sumulat, na hindi kinakailangang 451 00:18:13,100 --> 00:18:16,230 kapana-panabik na sa at ng kanilang mga sarili ngunit ang mga mahusay na pagkakataon upang 452 00:18:16,230 --> 00:18:19,620 magsanay na may syntax, may mga bagong function, sa ginhawa ng isang 453 00:18:19,620 --> 00:18:21,900 seksyon na kung saan mayroon ka ng ilang ng iyong mga kaklase nagpapakita bilang 454 00:18:21,900 --> 00:18:22,870 na rin ang iyong tf. 455 00:18:22,870 --> 00:18:26,210 >> At kung ano ang gagawin namin paglipas ng panahon ay gumamit ng tool na tinatawag CS50 puwang, 456 00:18:26,210 --> 00:18:28,940 kung saan sa halip na lamang gamit ang CS50 Appliance, bibigyan ka 457 00:18:28,940 --> 00:18:32,450 sa halip pumunta sa isang pahina ng web sa isang browser, kung saan magagawa mong 458 00:18:32,450 --> 00:18:35,610 sumulat ng code sa isang window ng browser sa panahon ng seksyon. 459 00:18:35,610 --> 00:18:38,240 At pagkatapos ay kung nagpasya kang sumali sa, ang iyong kapwa sa pagtuturo maaaring ipakita 460 00:18:38,240 --> 00:18:40,980 anumang ito ay nagta-type ka sa iyong screen sa iyong browser 461 00:18:40,980 --> 00:18:43,930 window sa harap ng klase, kung hindi nagpapakilala o 462 00:18:43,930 --> 00:18:47,250 publiko, kaya na siya maaaring maglakad sa pamamagitan ng may 463 00:18:47,250 --> 00:18:50,080 sa iyong mga kaklase kung ano ang ginawa mo na rin, ano hindi mo ginawa na rin. 464 00:18:50,080 --> 00:18:52,750 At muli, makatitiyak ang lahat ng mga ito ay maaaring mabuti hindi kilala. 465 00:18:52,750 --> 00:18:54,410 Ngunit ito ay isang magaling na pagkakataon para sa higit pa 466 00:18:54,410 --> 00:18:56,810 interactivity kaysa sa isang bagay tulad ng panayam ay nagbibigay-daan sa. 467 00:18:56,810 --> 00:18:58,910 >> Sa ngayon, makikita namin ang mga bagay na ito na tinatawag na super 468 00:18:58,910 --> 00:19:01,610 seksyon, na kung saan ay opsyonal ngunit ay bukas para sa lahat sa 469 00:19:01,610 --> 00:19:04,030 sa klase, kaya na maaari mong gawin ito mas sama-sama para sa 470 00:19:04,030 --> 00:19:05,190 problema magtakda ng isang. 471 00:19:05,190 --> 00:19:06,010 Narito ang iskedyul. 472 00:19:06,010 --> 00:19:08,870 Na ito ay nai-post sa homepage sa cs50.net. 473 00:19:08,870 --> 00:19:10,850 Pansinin na may makikita isang Hacker-tukoy na 474 00:19:10,850 --> 00:19:12,430 isang bukas hapon. 475 00:19:12,430 --> 00:19:15,460 At kami ay film ang isa ngayon at isang bukas at mag-post ng mga 476 00:19:15,460 --> 00:19:16,720 online sa loob ng 24 na oras. 477 00:19:16,720 --> 00:19:19,370 Kaya kung hindi ka maaaring gumawa ng alinman sa mga oras na ito, hindi mag-alala. 478 00:19:19,370 --> 00:19:22,720 At muli, iskedyul ay online ngayon sa cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> Sa mga tuntunin ng sectioning mismo, dapat nakuha mo ang isang 480 00:19:25,350 --> 00:19:28,520 email nagtuturo mong pumunta sa homepage ng kurso upang makahanap ng 481 00:19:28,520 --> 00:19:29,610 ang iyong seksyon. 482 00:19:29,610 --> 00:19:32,890 Kung ang buhay ay nagbago at kailangan mong baguhin ang iyong mga seksyon, 483 00:19:32,890 --> 00:19:33,560 hindi isang problema. 484 00:19:33,560 --> 00:19:37,900 Bumalik sa parehong URL na iyon, cs50.net/section, isahan, 485 00:19:37,900 --> 00:19:40,090 at makikita mo punan ang katulad na form upang maaari mong 486 00:19:40,090 --> 00:19:41,260 pagkatapos ay bigyan kami ng iyong mga kagustuhan. 487 00:19:41,260 --> 00:19:43,360 At kami ay follow up sa pamamagitan ng pagtatapos ng linggo sa kung ano ang aming makakaya 488 00:19:43,360 --> 00:19:44,240 tumanggap. 489 00:19:44,240 --> 00:19:49,530 Noong nakaraang linggo, isipin ang na aming iminungkahi gamit ang CS50 talakayin, 490 00:19:49,530 --> 00:19:51,370 talakayan tool ang kurso, sa panayam. 491 00:19:51,370 --> 00:19:53,680 Kaya nagkaroon kami ng 40 katanungan na tinanong at 492 00:19:53,680 --> 00:19:54,720 nasagot sa panahon ng panayam. 493 00:19:54,720 --> 00:19:56,280 Kaya ito tila gagana nang maayos, kaya patuloy naming 494 00:19:56,280 --> 00:19:57,180 subukang gawin ito. 495 00:19:57,180 --> 00:19:59,600 Kung, sa panahon ng panayam, hindi mo lamang kumportable pagtaas 496 00:19:59,600 --> 00:20:00,780 iyong kamay, hindi isang problema. 497 00:20:00,780 --> 00:20:04,640 Pumunta sa cs50.net/discuss, mag-post doon, at isa sa aming pagtuturo 498 00:20:04,640 --> 00:20:07,270 ay alinman sagutin ang mga Fellows ito elektroniko o taasan ang kanilang mga 499 00:20:07,270 --> 00:20:10,620 kamay sa iyong ngalan nang hindi nagpapakilala sa magtanong, depende 500 00:20:10,620 --> 00:20:12,470 sa likas na katangian ng tanong. 501 00:20:12,470 --> 00:20:15,000 At sa mga tuntunin ng feedback, ang mga pangkalahatang psets 502 00:20:15,000 --> 00:20:16,760 ibinalik sa loob ng isang linggo. 503 00:20:16,760 --> 00:20:19,080 Dahil ito ay tumatagal ng ilang sandali upang makamit ng seksyon 504 00:20:19,080 --> 00:20:22,430 punto ng balanse, ang unang pset, 0 at 1, ay kaunti 505 00:20:22,430 --> 00:20:24,130 maantala bilang mga bagay tumira. 506 00:20:24,130 --> 00:20:27,130 Ngunit manatiling nakatutok para sa sa linggo darating. 507 00:20:27,130 --> 00:20:29,750 >> Lahat ng karapatan, kaya hayaan mo akong ilagay sa aking malubhang 508 00:20:29,750 --> 00:20:31,040 boses para sa sandali lamang. 509 00:20:31,040 --> 00:20:32,690 Kaya ito ay talagang isang kawili-wiling klima upang maging 510 00:20:32,690 --> 00:20:35,210 nagkakaroon ng talakayang ito, kung ano ang sa lahat ng iba pang mga bagay 511 00:20:35,210 --> 00:20:37,310 nangyayari sa campus kaugnay doon. 512 00:20:37,310 --> 00:20:40,220 Ngunit CS50 ay tiyak na may kasaysayan nito ang partikular na 513 00:20:40,220 --> 00:20:43,360 paksa, hangga't bawat taon, ang kursong ito, para sa maraming 514 00:20:43,360 --> 00:20:46,910 taon, Ad Board halos 3% ng klase. 515 00:20:46,910 --> 00:20:51,620 Ang pinaka-kamakailang taon, 2011, CS50 Ad-Boarded 35 mga mag-aaral. 516 00:20:51,620 --> 00:20:54,120 Na ito ay hindi, sa tingin ko, dahil sa kakulangan ng kalinawan. 517 00:20:54,120 --> 00:20:56,760 Napag-alaman na sa syllabus ang kurso, mayroong isang pahina ng 518 00:20:56,760 --> 00:20:59,020 pahayag na nagpapaliwanag kung saan ang mga linya. 519 00:20:59,020 --> 00:21:01,350 Na parehong pahayag ay paulit-ulit sa bawat isa sa mga 520 00:21:01,350 --> 00:21:03,070 problema nagtatakda sa pahina isa. 521 00:21:03,070 --> 00:21:05,760 >> Kaya ko banggitin ito ngayon talagang lamang upang gumawa ng 522 00:21:05,760 --> 00:21:07,030 mga tao maingat na ito. 523 00:21:07,030 --> 00:21:08,080 At na sinubukan namin ang iba't-ibang mga bagay. 524 00:21:08,080 --> 00:21:10,630 At kung ano ang naisip ko na gusto namin gawin ngayon ay lamang maglaan ng sandali upang 525 00:21:10,630 --> 00:21:13,830 tunay na tingnan ang ilan sa mga nakaraang kaso na makabuo. 526 00:21:13,830 --> 00:21:16,160 Sa halip na panatilihin ang mga ito bilang mga marumi maliit na lihim, aktwal 527 00:21:16,160 --> 00:21:19,170 ituro kung ano ang mga mag-aaral na gawin at kung paano Natukoy namin 528 00:21:19,170 --> 00:21:21,630 ito at talagang kung ano ang overarching pagganyak ay para sa 529 00:21:21,630 --> 00:21:23,950 kahit na nagkakaroon ng ang pag-uusap na ito. 530 00:21:23,950 --> 00:21:27,060 Kaya may na sinabi, linya mahalagang ay ito - 531 00:21:27,060 --> 00:21:29,200 bawat syllabus, ka welcome, ikaw ay hinihikayat, upang 532 00:21:29,200 --> 00:21:30,210 makipag-usap sa mga kaklase. 533 00:21:30,210 --> 00:21:31,910 Na ang buong layunin ng pagkakaroon ng mga collaborative 534 00:21:31,910 --> 00:21:34,470 oras ng opisina sa Annenberg at paghihikayat sa mga tao para sa 535 00:21:34,470 --> 00:21:35,755 panghuling proyekto sa gumagana nang magkasama. 536 00:21:35,755 --> 00:21:38,590 Ngunit linya ay iginuhit pagdating oras upang aktwal na magsulat 537 00:21:38,590 --> 00:21:39,790 ang iyong panghuling solusyon. 538 00:21:39,790 --> 00:21:42,590 Nagsasalita sa Ingles, lubos fine, nagsasalita sa palsipikado code, 539 00:21:42,590 --> 00:21:43,400 lubos fine. 540 00:21:43,400 --> 00:21:46,340 Pag-email ng isang kaklase iyong pset, pagpapaalam tumingin sa kanila sa paglipas ng 541 00:21:46,340 --> 00:21:48,610 ang screen ng mga kamay patuloy na mag-type, 542 00:21:48,610 --> 00:21:50,110 sa ibabaw ng linya pati na rin. 543 00:21:50,110 --> 00:21:52,250 Huwag hanapin sa syllabus para sa partikular na linya. 544 00:21:52,250 --> 00:21:55,850 >> Ngunit lamang upang ipinta ang isang larawan ng kung paano ito ay sa kasamaang-palad ng 545 00:21:55,850 --> 00:21:58,370 katotohanan, Napagtanto na may website out doon na 546 00:21:58,370 --> 00:22:01,490 magkaroon ng mga solusyon mula sa klase at marami pang ibang mga klase. 547 00:22:01,490 --> 00:22:04,940 Ang katotohanan na sa iyo o sa ilang 3% mo alam na ito umiiral 548 00:22:04,940 --> 00:22:07,240 nangangahulugan na alam namin na ito umiiral. 549 00:22:07,240 --> 00:22:09,340 Ang katotohanan na may mga website tulad nito kung saan mo 550 00:22:09,340 --> 00:22:11,540 maaaring magbayad ng isang tao sa aktwal na gawin ang iyong mga hanay ng problema - ito ay 551 00:22:11,540 --> 00:22:13,450 isang aktwal na kaso na dumating nakaraang taon. 552 00:22:13,450 --> 00:22:15,790 Ito ay isang website na tinatawag na odesk.com. 553 00:22:15,790 --> 00:22:20,090 At Tim ang pangalan ng tao dito na nagpo-post sa 554 00:22:20,090 --> 00:22:24,580 website na ito at tinanong ng isang tao upang gawin ang kanyang pset 7 sa 555 00:22:24,580 --> 00:22:25,570 partikular na kasong ito. 556 00:22:25,570 --> 00:22:28,350 Well, odesk.com napaka Google-magagawang, at masyadong namin ay 557 00:22:28,350 --> 00:22:30,310 napakabuti sa Googling. 558 00:22:30,310 --> 00:22:32,360 Dito, masyadong, may mga site - at ito ang sa halip 559 00:22:32,360 --> 00:22:34,234 napakasama, lantaran. 560 00:22:34,234 --> 00:22:38,050 [Tawa] 561 00:22:38,050 --> 00:22:39,610 David J. MALAN: Ang nakakatawa bagay tungkol sa site na ito ay kung 562 00:22:39,610 --> 00:22:41,970 basahin mo ang Tungkol sa pahina, makipag-usap sila tungkol sa kanilang corporate 563 00:22:41,970 --> 00:22:44,390 service kultura at kung paano customer ay ang kanilang bilang-isang 564 00:22:44,390 --> 00:22:46,190 priority, upang matiyak na makakuha ng ang iyong mga takdang- 565 00:22:46,190 --> 00:22:47,890 naka-in sa oras. 566 00:22:47,890 --> 00:22:50,580 >> Ngunit sa lahat ng kabigatan, muli, ang katunayan na ang mga site na ito 567 00:22:50,580 --> 00:22:52,910 umiiral, Napagtanto namin, masyadong, ay nababatid ng 568 00:22:52,910 --> 00:22:53,730 mga ganitong uri ng mga site. 569 00:22:53,730 --> 00:22:55,890 At upang mabigyan ka ng ideya ng kung ano ang bumubuo ito sa pangkalahatan 570 00:22:55,890 --> 00:22:58,570 tumatagal, hindi namin pangkalahatan ay hindi magkaroon ng mahusay na Iskandalo kung saan ang mga tao ay 571 00:22:58,570 --> 00:23:01,080 ay nakikipagtulungan sa anumang uri ng napakalaking scale, ngunit sa halip 572 00:23:01,080 --> 00:23:04,540 ito ay mga late-night sandali ng kahinaan, kung saan mayroon kang ito 573 00:23:04,540 --> 00:23:07,550 magkano ang gawin, 04:00, ka naubos, at 574 00:23:07,550 --> 00:23:09,770 tingin sa iyong sarili, mahusay, ipaalam sa akin lamang na tingnan sa aking 575 00:23:09,770 --> 00:23:11,770 kasama o ang code ng aking kaibigan o tulad ng. 576 00:23:11,770 --> 00:23:14,800 At ang mga manifestations ng ito sa kasamaang-palad sangkot sa Estudyante 577 00:23:14,800 --> 00:23:17,640 Isang pagsusumite ng isang bagay tulad nito at Estudyante B pagsusumite ng 578 00:23:17,640 --> 00:23:20,370 isang bagay tulad nito, na tiyak, sa isang computer 579 00:23:20,370 --> 00:23:23,830 agham klase, lubha madali para sa mga siyentipiko computer na 580 00:23:23,830 --> 00:23:25,690 upang makita ng software. 581 00:23:25,690 --> 00:23:28,410 Ito ay isa pang karaniwang paradaym, kung saan ikaw ay isang uri ng 582 00:23:28,410 --> 00:23:31,010 ay nagtatrabaho sa tabi ng isang tao, maaaring pakikipag-usap sa 583 00:23:31,010 --> 00:23:32,360 Ingles, lamang fine, pseudocode. 584 00:23:32,360 --> 00:23:35,080 Ngunit ito ay oras upang aktwal na isumite, at ang mga psets 585 00:23:35,080 --> 00:23:37,910 lamang makapag-palitan sa pamamagitan ng email o Dropbox o tulad ng. 586 00:23:37,910 --> 00:23:41,120 Ngunit sa isang pagtatangka upang gawin itong mas mababa maliwanag na ito ay 587 00:23:41,120 --> 00:23:44,830 kung ano ang nangyari, pagkatapos ito ay kung ano ang isinumite. 588 00:23:44,830 --> 00:23:47,880 Ito, masyadong, hindi trip mahusay na nakasulat na piraso ng 589 00:23:47,880 --> 00:23:50,360 software tulad ng mayroon kaming upang aktwal na detect 590 00:23:50,360 --> 00:23:51,280 mga ganitong uri ng mga bagay. 591 00:23:51,280 --> 00:23:53,760 At sa katunayan kung ano ang ginagawa namin ang software sa run na naghahambing sa lahat ng 592 00:23:53,760 --> 00:23:55,540 pagsusumite sa taong ito laban sa lahat ng nakaraang taon 593 00:23:55,540 --> 00:23:57,380 pagsusumite, laban sa lahat na nakita namin sa 594 00:23:57,380 --> 00:24:00,060 Internet, laban sa bawat trabaho website out doon. 595 00:24:00,060 --> 00:24:01,710 Lahat ng ito ay napaka awtomatikong. 596 00:24:01,710 --> 00:24:05,665 At kaya ginagawa namin ito talaga sa mahusay pagkamakatarungan sa 97% na 597 00:24:05,665 --> 00:24:07,760 ang talagang gumagana ang kanilang mga masuri ito at sa iba pang mga 598 00:24:07,760 --> 00:24:11,530 klase at paglalagay ng sa lahat ng na pagsisikap upang na ang gawain 599 00:24:11,530 --> 00:24:13,030 sila sa huli isumite kanilang sariling. 600 00:24:13,030 --> 00:24:14,220 At maaari ba akong pumunta sa para sa mga edad. 601 00:24:14,220 --> 00:24:16,030 >> Mga ito ay lamang ng isang maliit na bilang ng mga kaso ng nakaraang taon. 602 00:24:16,030 --> 00:24:19,350 Ang ilang mga mag-aaral isinumite ng mga file na ito identically para sa pset 2, 603 00:24:19,350 --> 00:24:22,460 pset 3, pset 4, pset 5, pset 6, pset 9. 604 00:24:22,460 --> 00:24:26,360 Sa kasong ito, ito pagsusulit 0 at sa nakaraang taon, kung saan dalawang 605 00:24:26,360 --> 00:24:29,570 mga mag-aaral isinumite identically pangungusap na ito sa maraming 606 00:24:29,570 --> 00:24:32,210 iba, "Ang kahilingan ng uri -" tuldok, tuldok, tuldok. 607 00:24:32,210 --> 00:24:34,530 Kaya kahit na sa isang klase ng 600 ay detect namin ito 608 00:24:34,530 --> 00:24:36,310 sa isinumite pagsusulit. 609 00:24:36,310 --> 00:24:39,080 Kaya sa maikling salita, ito - lantaran, ako mapoot na nagkakaroon ng ganitong uri ng 610 00:24:39,080 --> 00:24:41,300 pakikipag-usap - ngunit talaga ito isang sinadya pagsisikap 611 00:24:41,300 --> 00:24:43,540 taong ito upang subukan upang himukin pababa ang numerong iyon. 612 00:24:43,540 --> 00:24:45,650 Dahil kahit sabihin namin ang mga ganitong uri ng mga bagay sa bawat 613 00:24:45,650 --> 00:24:48,100 taon, sa tingin ko ang katotohanan ng pag-dwelled ito para sa ilang 614 00:24:48,100 --> 00:24:50,800 higit pang mga segundo kaysa sa karaniwan at aktwal na lamang ng pagturo out 615 00:24:50,800 --> 00:24:53,600 na kung ano ang maaaring tila mas, eh, hindi isang malaking pakikitungo, hindi bababa sa 616 00:24:53,600 --> 00:24:56,390 tingin sa partikular na sandali na ito, parehong sa pagkamakatarungan sa 617 00:24:56,390 --> 00:25:00,100 sa iyong sarili at sa iyong mga kaklase dito. 618 00:25:00,100 --> 00:25:02,480 Kaya kung sakaling may anumang mga katanungan bilang sa kung saan ang line 619 00:25:02,480 --> 00:25:04,290 ay, mangyaring lamang makipag-ugnay sa akin personal. 620 00:25:04,290 --> 00:25:07,190 Ngunit ang sagot ay laging, ganap na stressed sa 621 00:25:07,190 --> 00:25:09,090 huling minuto, cash sa araw ng late. 622 00:25:09,090 --> 00:25:11,080 O kung ito ay isang bagay ng hindi pagkakaroon ng anumang late araw, 623 00:25:11,080 --> 00:25:12,900 matapat, email sa akin personal. 624 00:25:12,900 --> 00:25:14,110 Susubukan naming malaman ng isang bagay. 625 00:25:14,110 --> 00:25:17,480 Mangyaring huwag ilagay ang iyong oras dito sa Harvard sa panganib. 626 00:25:17,480 --> 00:25:18,570 >> Ngayon, naisip ko na dapat naming gumaan ang mood, kaya ko 627 00:25:18,570 --> 00:25:20,264 kasama ito bilang susunod na slide. 628 00:25:20,264 --> 00:25:22,770 [Tawa] 629 00:25:22,770 --> 00:25:23,630 David J. MALAN: Ang website na ito ay mahusay. 630 00:25:23,630 --> 00:25:24,820 Aktwal na nakuha ko ng kaunti ginulo. 631 00:25:24,820 --> 00:25:26,330 May isang ito. 632 00:25:26,330 --> 00:25:29,590 At pagkatapos ay ang isang ito ay kamangha-manghang. 633 00:25:29,590 --> 00:25:35,190 Okay, kaya isipin ang na kuting huli sa gabi kapag gumagawa 634 00:25:35,190 --> 00:25:36,040 mga desisyon. 635 00:25:36,040 --> 00:25:40,110 Lahat ng karapatan, kaya bumalik sa mas masaya at mas mababa malubhang bagay-bagay, tulad ng 636 00:25:40,110 --> 00:25:40,780 kundisyon. 637 00:25:40,780 --> 00:25:43,900 >> Karapatan lahat, kaya usapan natin ang maikling tungkol sa mga. 638 00:25:43,900 --> 00:25:46,080 Ito ay isang bagay na malamang na medyo pamilyar mula sa 639 00:25:46,080 --> 00:25:47,260 ang mundo ng scratch. 640 00:25:47,260 --> 00:25:49,860 At sa mundo ng scratch, mayroon kaming minsan ang pangangailangan na ito sa 641 00:25:49,860 --> 00:25:51,110 pumunta gumawa ng mga tinidor sa kalsada. 642 00:25:51,110 --> 00:25:54,840 Alinman sa gawin ito o na o ang iba pang mga bagay na ito dito. 643 00:25:54,840 --> 00:25:58,990 At kapag gusto naming gawin ito, maaari naming gamitin, sa C ngayon, ito kung 644 00:25:58,990 --> 00:26:00,860 tao bumuo. 645 00:26:00,860 --> 00:26:06,420 At pagkatapos dito mayroon kami ng mga Boolean expression. 646 00:26:06,420 --> 00:26:09,260 Halimbawa, Boolean expression dito, maaari naming O 647 00:26:09,260 --> 00:26:12,260 iyon nang magkakasama, sa kamalayan na kami ay may kondisyon na ito O 648 00:26:12,260 --> 00:26:13,200 na kondisyon. 649 00:26:13,200 --> 00:26:15,100 Aming makakaya AT iyon nang magkakasama, sa kamalayan na gusto naming 650 00:26:15,100 --> 00:26:17,710 suriin ito kundisyon AT na kundisyon. 651 00:26:17,710 --> 00:26:22,440 At dito mayroon kaming isang lumipat statement ngayon, na kung saan ay hindi kaya 652 00:26:22,440 --> 00:26:26,040 katulad syntactically sa mga uri ng mga kondisyon, ngunit 653 00:26:26,040 --> 00:26:30,160 ay nagbibigay-daan sa amin upang gawin katumbas ng kung tao kung, tao kung, tao 654 00:26:30,160 --> 00:26:34,990 kung, at ang tulad sa pamamagitan ng simpleng enumerating sa kanila kaso sa pamamagitan ng kaso 655 00:26:34,990 --> 00:26:36,670 sa pamamagitan ng kaso sa pamamagitan ng kaso. 656 00:26:36,670 --> 00:26:38,370 Kaya nakita namin ang mga huling oras. 657 00:26:38,370 --> 00:26:40,430 At pagkatapos namin na sinimulan ng pagpindot kapag mga bagay tulad ng mga loop. 658 00:26:40,430 --> 00:26:42,070 Nakakita kami ng isa sa mga sandali lamang ang nakalipas. 659 00:26:42,070 --> 00:26:44,180 Ngunit may mga iba pang looping constructs. 660 00:26:44,180 --> 00:26:46,370 >> Halimbawa, ang isang ito dito. 661 00:26:46,370 --> 00:26:50,140 Kaya habang (kondisyon), gawin muli ang bagay na ito at muli. 662 00:26:50,140 --> 00:26:53,070 Kaya sa panimula, kung ano ang mukhang iba sa pagitan ng 663 00:26:53,070 --> 00:26:55,760 para sa loop at ito habang loop dito? 664 00:27:00,810 --> 00:27:05,045 Ito para sa loop at habang loop na ito. 665 00:27:05,045 --> 00:27:07,840 Oo? 666 00:27:07,840 --> 00:27:08,800 Ano iyon? 667 00:27:08,800 --> 00:27:10,050 Madla: [hindi marinig]. 668 00:27:14,632 --> 00:27:15,120 David J. MALAN: Mahusay. 669 00:27:15,120 --> 00:27:17,130 Kaya kung saan ang sa para sa loop kundisyon, may malinaw 670 00:27:17,130 --> 00:27:17,940 higit pa syntax. 671 00:27:17,940 --> 00:27:20,560 May Pinasimulan ito, ang update na ito. 672 00:27:20,560 --> 00:27:23,820 Sa isang habang loop, may kondisyon na ito. 673 00:27:23,820 --> 00:27:26,630 Kaya ito tila na ito ay isang maliit na akba kumpara sa para sa 674 00:27:26,630 --> 00:27:28,770 loop, na nangangahulugan na kung nais namin na magkaroon ng mga variable at gusto naming 675 00:27:28,770 --> 00:27:30,800 na magkaroon ng incrementation, aming aktwal na 676 00:27:30,800 --> 00:27:32,500 gawin ito bagay ating sarili. 677 00:27:32,500 --> 00:27:34,420 >> Kaya ipaalam sa akin sige at buksan gedit. 678 00:27:34,420 --> 00:27:36,320 Hayaan akong lumipat sa appliance. 679 00:27:36,320 --> 00:27:38,110 At sabihin lamang gawin ng isang mabilis na maliit na halimbawa na 680 00:27:38,110 --> 00:27:40,550 Tinutukoy ang isa sa mga ito mula sa iba pang mga. 681 00:27:40,550 --> 00:27:42,490 At sa likod ng aking isip dito, dapat kong sabihin na ang isang bagay. 682 00:27:42,490 --> 00:27:44,120 Partikular na nabanggit ko ang pangalan Tim. 683 00:27:44,120 --> 00:27:47,740 Tim ay aktwal na isang tao na mag-aaral sinubukan upang mahanap gawin 684 00:27:47,740 --> 00:27:48,680 kanilang mga araling-bahay para sa kanila. 685 00:27:48,680 --> 00:27:51,280 Nagkaroon kami ng hindi Tim sa partikular na seksyon. 686 00:27:51,280 --> 00:27:53,690 Kaya Napagtanto, baka isiwalat ko ang isang mag-aaral, ito ay hindi isang mag-aaral. 687 00:27:53,690 --> 00:27:55,720 Ito ay isang random na tao sa Internet paggawa ng mga bagay-bagay 688 00:27:55,720 --> 00:27:57,180 sa pamamagitan ng proxy huling taon. 689 00:27:57,180 --> 00:27:58,670 Kaya naming makita na, masyadong. 690 00:27:58,670 --> 00:28:00,630 Kaya sa kasong ito dito, hayaan mo akong magpatuloy at 691 00:28:00,630 --> 00:28:02,810 buksan up ng isang bagong file. 692 00:28:02,810 --> 00:28:04,800 File, New. 693 00:28:04,800 --> 00:28:06,050 Ito ay nagbibigay sa akin ng tab dito. 694 00:28:06,050 --> 00:28:09,940 Hayaan akong sige at i-save ito bilang loop.c. 695 00:28:09,940 --> 00:28:11,810 Hayaan akong pumunta at i-click ang I-save. 696 00:28:11,810 --> 00:28:15,340 At pagkatapos ay down na dito, sabihin sige at simulan ang pagsusulat 697 00:28:15,340 --> 00:28:16,605 # Include . 698 00:28:19,116 --> 00:28:20,520 Hayaan akong mag-zoom in. 699 00:28:20,520 --> 00:28:23,410 Ngayon namin gawin int pangunahing (walang bisa). 700 00:28:23,410 --> 00:28:30,020 Ngayon ipaalam sa akin sige at gawin para sa (int i = 0; i < 701 00:28:30,020 --> 00:28:33,480 oh, 10; i + +). 702 00:28:33,480 --> 00:28:36,620 At ngayon ako pagpunta upang magpatuloy at i-print ang star na ko 703 00:28:36,620 --> 00:28:37,890 ginawang mas maaga. 704 00:28:37,890 --> 00:28:39,390 At pagkatapos ay sa dulo ng programang ito, lamang namin ang pagpunta sa 705 00:28:39,390 --> 00:28:41,130 -print ng isang bagong linya, upang ang aking prompt 706 00:28:41,130 --> 00:28:42,470 mukhang hindi lahat ng magulo. 707 00:28:42,470 --> 00:28:45,170 bumalik 0. 708 00:28:45,170 --> 00:28:47,610 Mukhang syntactically tama? 709 00:28:47,610 --> 00:28:48,040 Sa ngayon. 710 00:28:48,040 --> 00:28:48,560 Kaya sabihin makita. 711 00:28:48,560 --> 00:28:51,290 >> Kaya hayaan mo akong mag-zoom out, pumunta sa aking terminal na window. 712 00:28:51,290 --> 00:28:54,570 At hayaan mo akong magpatuloy at patakbuhin ang loop, dahil tinatawag ko ito 713 00:28:54,570 --> 00:28:55,690 bagay loop.c. 714 00:28:55,690 --> 00:28:56,780 Kaya gumawa ng loop. 715 00:28:56,780 --> 00:28:57,840 Tila upang ipunin ang OK. 716 00:28:57,840 --> 00:29:00,210 Hayaan akong magpatakbo ng loop, at ngayon Ipasok. 717 00:29:00,210 --> 00:29:01,820 At tila naka-print na 10 bituin. 718 00:29:01,820 --> 00:29:03,780 Kaya sabihin convert lang ito sa isang habang loop at makita kung ano ang 719 00:29:03,780 --> 00:29:05,220 mga uri ng mga isyu namin trip sa paglipas ng. 720 00:29:05,220 --> 00:29:11,290 Kaya sa halip na ito, hayaan mo akong pumunta sa dito at sabihin habang i ay 721 00:29:11,290 --> 00:29:12,760 mas mababa sa 10 - 722 00:29:12,760 --> 00:29:14,910 hayaan mo akong makakuha ng mapupuksa ng para sa loop. 723 00:29:14,910 --> 00:29:17,170 OK, kaya kami ng ilang mga problema na. 724 00:29:17,170 --> 00:29:21,110 Kaya ang kondisyon ay ang parehong, ngunit malinaw naman ako nawawala ang 725 00:29:21,110 --> 00:29:21,680 Pinasimulan. 726 00:29:21,680 --> 00:29:23,840 Nawawala ako ang incrementation. 727 00:29:23,840 --> 00:29:28,020 Kaya ano ang dapat tagatala ang malamang sabihin sa akin kapag sinusubukan kong 728 00:29:28,020 --> 00:29:29,170 ipunin ang programang ito? 729 00:29:29,170 --> 00:29:29,666 Oo? 730 00:29:29,666 --> 00:29:31,154 Madla: [hindi marinig]. 731 00:29:31,154 --> 00:29:31,650 >> David J. MALAN: Mahusay. 732 00:29:31,650 --> 00:29:34,180 Kaya pagpunta upang sabihin ang isang bagay tulad ng hindi nagbigay-alam - sa 733 00:29:34,180 --> 00:29:35,280 kaso, variable i. 734 00:29:35,280 --> 00:29:37,980 At sa katunayan, gamitin ng hindi nagbigay-alam identifier i. 735 00:29:37,980 --> 00:29:40,960 At kaya ito ay sa kabilang banda na may mga wika tulad ng PHP at 736 00:29:40,960 --> 00:29:43,120 Python at Ruby, na kung saan ang ilan sa inyo ay maaaring maging pamilyar, 737 00:29:43,120 --> 00:29:44,820 kung saan maaari mong lamang uri ng pagsisimula gamit variable 738 00:29:44,820 --> 00:29:47,420 sa ayaw at sa gusto at hindi na kailangang mag-alala tungkol sa deklarasyon kanila 739 00:29:47,420 --> 00:29:48,560 tahasang lagi. 740 00:29:48,560 --> 00:29:51,770 Sa C at sa mga wika tulad ng Java at C + +, mayroon kang upang maging 741 00:29:51,770 --> 00:29:53,020 sobrang tahasang. 742 00:29:53,020 --> 00:29:55,760 At kung nais mo ang isang variable na tinatawag na i, mayroon kang sabihin sa akin 743 00:29:55,760 --> 00:29:57,360 kung anong uri ng variable. 744 00:29:57,360 --> 00:29:59,360 Kaya kami ay pagpunta upang ayusin ito tulad ng sumusunod. 745 00:29:59,360 --> 00:30:05,510 Ako pumunta dito at i-type int i, samakatuwid, 746 00:30:05,510 --> 00:30:07,860 Ipinahayag ko sa isang variable na tinatawag na i. 747 00:30:07,860 --> 00:30:09,180 Ngayon, ko na nilaktawan ng isang hakbang. 748 00:30:09,180 --> 00:30:11,340 Malinaw naman hindi ko na nasimulan ito, ngunit sabihin makita kung na sa 749 00:30:11,340 --> 00:30:13,650 kahit ginagawang kumalatong stop na nagrereklamo. 750 00:30:13,650 --> 00:30:15,770 Kaya sabihin gumawang muli ako sa programang ito. 751 00:30:15,770 --> 00:30:16,770 >> Lahat ng karapatan, ngayon lang ito nagrereklamong 752 00:30:16,770 --> 00:30:17,870 para sa isang iba't ibang mga kadahilanan. 753 00:30:17,870 --> 00:30:21,130 "Variable 'i' uninitialized kapag ginamit dito." Lahat ng karapatan, sa gayon 754 00:30:21,130 --> 00:30:22,340 na medyo tahasang. 755 00:30:22,340 --> 00:30:25,510 Nasimulan lamang ay nangangahulugan na ang pagtatakda ng katumbas ng isang halaga. 756 00:30:25,510 --> 00:30:30,820 At hindi kami tapos na, kaya hayaan mo akong subukan katumbas ng 0. 757 00:30:30,820 --> 00:30:35,030 Ngayon sabihin subukan ito muli at muling patakbuhin kumalatong. 758 00:30:35,030 --> 00:30:36,140 Inipon oras na ito. 759 00:30:36,140 --> 00:30:37,210 At ako ay tungkol sa upang patakbuhin ito. 760 00:30:37,210 --> 00:30:43,120 Ngunit malaking lumang walang-katapusang loop, dahil ko na gawin ang 761 00:30:43,120 --> 00:30:45,530 Pinasimulan, na ko tapos kondisyon, ngunit hindi ko nagawa 762 00:30:45,530 --> 00:30:47,030 anumang uri ng incrementation. 763 00:30:47,030 --> 00:30:48,780 Kaya kung paano ang maaari kong gawin ang incrementation? 764 00:30:48,780 --> 00:30:51,170 Well, sa isang habang loop, ito nararamdaman tulad ako pagpunta sa may 765 00:30:51,170 --> 00:30:54,180 upang gawin ito sa loob ng loop, dahil tulad ng sa unang 766 00:30:54,180 --> 00:30:56,570 halimbawa linggo ng paggawa ng looping constructs, tulad ng may 767 00:30:56,570 --> 00:30:59,040 ang mga medyas at sa mga self-nadaragdagan, nagkaroon kami gawin 768 00:30:59,040 --> 00:31:01,550 isang bagay sa pinakadulo, bang bumalik sa susunod na linya. 769 00:31:01,550 --> 00:31:05,040 Paano kung pumunta ako magpatuloy at gawin ito i + + dito? 770 00:31:05,040 --> 00:31:06,030 Natin hindi kahit makatipon ito. 771 00:31:06,030 --> 00:31:06,890 Makibalita sa akin na. 772 00:31:06,890 --> 00:31:09,704 Ano ang mali dito? 773 00:31:09,704 --> 00:31:10,690 Madla: [hindi marinig]. 774 00:31:10,690 --> 00:31:11,770 >> David J. MALAN: Kaya ito ay talagang hindi int. 775 00:31:11,770 --> 00:31:13,080 Ito ay i. 776 00:31:13,080 --> 00:31:15,110 At ang kulot tirante, tulad ng bago, 777 00:31:15,110 --> 00:31:16,800 indentation ay hindi sapat. 778 00:31:16,800 --> 00:31:18,410 Kaya ngayon ko ito bumuo. 779 00:31:18,410 --> 00:31:21,780 Kaya habang i ay mas mababa sa 10, i-print ang isang bituin, 780 00:31:21,780 --> 00:31:23,220 pagkatapos ay i dagdagan. 781 00:31:23,220 --> 00:31:25,680 At paraan habang loop gawa na sa lalong madaling pindutin ang 782 00:31:25,680 --> 00:31:29,630 ilalim ng loop, na sa kasong ito Mukhang sa linya 10, 783 00:31:29,630 --> 00:31:32,880 ito upang bumalik sa linya 6, kung saan punto ang 784 00:31:32,880 --> 00:31:34,400 kondisyon ay naka-check muli. 785 00:31:34,400 --> 00:31:37,500 At kung i pa rin ang mas mababa sa 10, gagamitin namin gawin linya 8 at 786 00:31:37,500 --> 00:31:41,250 pagkatapos 9, pagkatapos makikita namin pindutin ang 10, at bumalik sa 6, muli at 787 00:31:41,250 --> 00:31:45,580 muli at muli at muli, hangga't i ay mas mababa sa 10. 788 00:31:45,580 --> 00:31:47,860 Kaya natin patakbuhin muli gumawa dito. 789 00:31:47,860 --> 00:31:48,940 >> Okay, inipon namin ang okay. 790 00:31:48,940 --> 00:31:50,300 Hayaan akong re-run loop. 791 00:31:50,300 --> 00:31:52,620 At ngayon ito aktwal na tila upang gumana. 792 00:31:52,620 --> 00:31:55,100 Kaya plus at minuses dito? 793 00:31:55,100 --> 00:31:58,910 Well, sa ngayon may aktwal hindi isang kabuuan ng plo - 794 00:31:58,910 --> 00:31:59,420 kaya maganda. 795 00:31:59,420 --> 00:32:01,870 Karapatan lahat, na isang - ah, na aksidente. 796 00:32:01,870 --> 00:32:05,200 Lahat ng karapatan, kaya sabihin bumalik sa para sa loop. 797 00:32:05,200 --> 00:32:07,530 Kaya para sa loop ay magaling dahil hindi nila sobrang tahasang. 798 00:32:07,530 --> 00:32:09,720 At kahit na nasa isang kaunti clunky na magsulat, 799 00:32:09,720 --> 00:32:11,500 napakalakas at ito ay nagbibigay-daan sa mong gawin 800 00:32:11,500 --> 00:32:12,980 maraming mga bagay nang sabay-sabay. 801 00:32:12,980 --> 00:32:16,240 Habang loop ay hindi mukhang upang magkaroon ng isang malaking halaga ng halaga lamang 802 00:32:16,240 --> 00:32:18,500 pa, dahil ito nararamdaman tulad lang namin gawin pang trabaho. 803 00:32:18,500 --> 00:32:20,670 Mayroon kaming upang ilagay ang Pinasimulan dito, ang 804 00:32:20,670 --> 00:32:23,480 i-update ang dito, at mayroon kaming tandaan na gawin ang lahat ng na. 805 00:32:23,480 --> 00:32:26,260 Kaya makikita namin makita sa oras na loop habang aktwal na bang ipahiram sa 806 00:32:26,260 --> 00:32:29,380 ang kanilang mga sarili lamang iba't ibang konteksto, ibang data 807 00:32:29,380 --> 00:32:33,900 kaayusan tulad ng mga listahan at hash na mga talahanayan, ang mga bagay namin 808 00:32:33,900 --> 00:32:34,970 kalagitnaan ng semestre. 809 00:32:34,970 --> 00:32:37,900 Ngunit sa ngayon, alam na may ito ikatlong uri na kilala bilang isang do- 810 00:32:37,900 --> 00:32:38,480 habang loop. 811 00:32:38,480 --> 00:32:39,540 At nakakita kami ng panandaliang na ito. 812 00:32:39,540 --> 00:32:41,830 At maaaring ito ay sobrang nakakatulong sa pset 1. 813 00:32:41,830 --> 00:32:45,570 Anumang oras na gusto mong gawin ang isang bagay at pagkatapos ay tingnan kung 814 00:32:45,570 --> 00:32:48,940 ang user cooperated, at kung sila ay hindi, gawin itong muli, gawin- 815 00:32:48,940 --> 00:32:51,460 habang loop lends mismo na uri ng logic. 816 00:32:51,460 --> 00:32:55,640 Dahil tulad ng pag-order mula sa itaas hanggang sa ibaba dito ay nagmumungkahi, 817 00:32:55,640 --> 00:32:57,750 ang Literal na nangangahulugan na gawin ito. 818 00:32:57,750 --> 00:32:59,830 At gawin ito muli at muli, kung ano ang maaaring na maging? 819 00:32:59,830 --> 00:33:03,000 Siguro ito ay nangangahulugan na ang pagtawag ng GetInt o GetString at pagkatapos 820 00:33:03,000 --> 00:33:05,830 check ang halaga ng GetInt o GetString at pagkatapos ay sumisigaw 821 00:33:05,830 --> 00:33:08,260 sa user kung hindi nila cooperated sa pamamagitan ng pagtatanong sa kanila 822 00:33:08,260 --> 00:33:10,100 muli at muli at muli. 823 00:33:10,100 --> 00:33:11,730 Kung saan nais mong gawin ang isang bagay nang sabay-sabay, 824 00:33:11,730 --> 00:33:13,210 pagkatapos ay suriin ang ilang mga kundisyon. 825 00:33:13,210 --> 00:33:14,110 >> Kaya sabihin subukan ito. 826 00:33:14,110 --> 00:33:17,130 Hayaan akong aktwal na baguhin ito ngayon upang do-habang loop. 827 00:33:17,130 --> 00:33:18,830 At ako pagpunta sa magpatuloy at gawin ang mga sumusunod. 828 00:33:18,830 --> 00:33:21,830 Kaya gawin ang mga sumusunod. 829 00:33:21,830 --> 00:33:26,870 Natin gawin int i = GetInt (); ngunit sabihin munang sabihin sa user 830 00:33:26,870 --> 00:33:27,410 kung ano ang gagawin. 831 00:33:27,410 --> 00:33:29,050 Kaya isang maliit na iba't ibang oras na ito. 832 00:33:29,050 --> 00:33:31,270 "Bigyan mo ako ng isang int." 833 00:33:31,270 --> 00:33:32,910 Kaya ko bang gamitin ang printf para sa. 834 00:33:32,910 --> 00:33:35,740 At ngayon ako pagpunta sa pumunta down na dito, at ako pagpunta sa gawin ito 835 00:33:35,740 --> 00:33:41,520 habang i, sabihin nating, mas malaki kaysa sa - 836 00:33:41,520 --> 00:33:47,540 sabihin makita, i, sabihin nating, mas mababa sa 0, o i ay 837 00:33:47,540 --> 00:33:48,730 mas malaki sa 10. 838 00:33:48,730 --> 00:33:51,810 Sa ibang salita, gusto ko ang isang numero mula 1 hanggang 9, lamang 839 00:33:51,810 --> 00:33:52,720 mang. 840 00:33:52,720 --> 00:33:55,290 Kaya gumagamit ako ng isang pinagsamang Boolean expression dito upang 841 00:33:55,290 --> 00:33:59,930 tiyakin na i ay mas mababa sa 0 o mas mataas sa 10, kung saan 842 00:33:59,930 --> 00:34:02,530 kaso kong gawin dito ang loop na ito muli. 843 00:34:02,530 --> 00:34:04,400 Kaya muli, gawin ito - 844 00:34:04,400 --> 00:34:08,480 habang ay i mas mababa sa 0 o i ay mas malaki kaysa sa 10. 845 00:34:08,480 --> 00:34:11,440 >> Kaya ngayon sabihin magpatuloy at gawin ito sa sandaling kami tapos na. 846 00:34:11,440 --> 00:34:13,270 Sabihin lamang ang isang mabilis na check ng katinuan. 847 00:34:13,270 --> 00:34:18,929 printf ("Salamat, i% d", i). 848 00:34:18,929 --> 00:34:21,350 Kaya ito simpleng programa nagtatanong sa gumagamit para sa isang int, 849 00:34:21,350 --> 00:34:24,000 tinitiyak ito sa loob ng ilang mga hanay, 1 hanggang 9 inclusive, 850 00:34:24,000 --> 00:34:26,280 at pagkatapos Salamat sa gumagamit sa pamamagitan ng nagpapaalala sa kanila kung ano ang kanilang lamang 851 00:34:26,280 --> 00:34:27,940 na nai-type sa, tulad ng isang maliit na katinuan check. 852 00:34:27,940 --> 00:34:30,659 Ngunit sabihin makita kung ito gumagana gaya ng nilalayon. 853 00:34:30,659 --> 00:34:34,533 Hayaan akong pumunta ulo pababa dito at muling patakbuhin ang gumawa ng loop. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "Gumamit ng hindi nagbigay-alam identifier 'i'". Iyon ay kakaiba. 856 00:34:38,600 --> 00:34:41,509 Akala ko namin nalutas na. 857 00:34:45,489 --> 00:34:47,560 Parehong sintomas ngunit ibang code. 858 00:34:47,560 --> 00:34:47,899 Oo? 859 00:34:47,899 --> 00:34:50,191 Madla: [hindi marinig] sa loob ng dalawang, mayroon kaming 860 00:34:50,191 --> 00:34:52,639 [Hindi marinig]. 861 00:34:52,639 --> 00:34:53,260 >> David J. MALAN: Eksaktong. 862 00:34:53,260 --> 00:34:55,989 Kaya ito aktwal na humahantong sa amin sa isang paksa na kilala bilang saklaw. 863 00:34:55,989 --> 00:34:59,350 Ito lumiliko out na ang C, muli, talagang magdadala sa iyo literal. 864 00:34:59,350 --> 00:35:02,970 At kung gagawin mo ang isang bagay tulad nito kung saan ipinapahayag mo ang isang int 865 00:35:02,970 --> 00:35:06,120 at pagkatapos ay italaga ito ilang halaga, ngunit gawin mo na sa loob ng isang 866 00:35:06,120 --> 00:35:09,840 pares ng mga kulot tirante, ano C ginagawa ito Ipinagpapalagay na iyong 867 00:35:09,840 --> 00:35:14,800 gusto lamang ang mga 32 bit na kilala bilang i sa umiiral sa loob ng 868 00:35:14,800 --> 00:35:18,200 konteksto ng mga kulot tirante, sa loob ng konteksto ng mga linya 869 00:35:18,200 --> 00:35:22,420 6 hanggang 9. Kaya i ipinahayag, at ito ay itinalaga ng 870 00:35:22,420 --> 00:35:26,530 halaga sa linya 8, ngunit sa lalong madaling makakuha ng sa labas ng 871 00:35:26,530 --> 00:35:30,270 linya 9 sa ibaba ang kulot suhay, i ay wala na sa 872 00:35:30,270 --> 00:35:31,910 saklaw, kaya na magsalita. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. Ito ay hindi na sa tamang konteksto. 874 00:35:35,030 --> 00:35:37,940 Kaya ngayon may walang i, kaya ito na parang hindi nagkaroon kami kahit 875 00:35:37,940 --> 00:35:38,770 ipinahayag ito sa lahat. 876 00:35:38,770 --> 00:35:41,520 >> Kaya kung ano ang isang remedyo para sa isang bagay tulad nito, kung ang 877 00:35:41,520 --> 00:35:44,300 dahilan na i ay ipinahayag sa loob ng kulot tirante, na 878 00:35:44,300 --> 00:35:45,120 tila masamang? 879 00:35:45,120 --> 00:35:45,410 Dito? 880 00:35:45,410 --> 00:35:46,820 Madla: [hindi marinig]. 881 00:35:46,820 --> 00:35:47,150 David J. MALAN: Oo. 882 00:35:47,150 --> 00:35:48,710 Upang maaari naming initialize ang mga ito sa labas. 883 00:35:48,710 --> 00:35:53,530 Kaya hayaan mo akong magpatuloy at tanggalin ang bahagi ng deklarasyon kung saan 884 00:35:53,530 --> 00:35:55,820 Ako tukuyin ang uri, at hayaan mo akong gawin ito dito. 885 00:35:55,820 --> 00:36:00,220 Kaya sa ika-5 linya, ito ngayon nagsasabing "Bigyan mo ako ng isang int." Tumawag ito i. 886 00:36:00,220 --> 00:36:03,400 Mapansin sa linya 9, hindi ko gusto mong gawin ito, dahil ko 887 00:36:03,400 --> 00:36:04,830 na may 32 bit. 888 00:36:04,830 --> 00:36:06,140 Hindi ko nais upang hilingin sa computer para sa isang 889 00:36:06,140 --> 00:36:07,630 iba't ibang mga 32 bit. 890 00:36:07,630 --> 00:36:09,850 Gusto kong gamitin ang mga parehong 32 bit. 891 00:36:09,850 --> 00:36:13,190 At ngayon dahil i ay ipinahayag sa ika-5 linya, ito ay pa rin legit 892 00:36:13,190 --> 00:36:16,550 gamitin ito sa linya 11 at linya 12. 893 00:36:16,550 --> 00:36:19,310 >> Kaya hayaan mo akong subukan na mag-recompile ito at makita 894 00:36:19,310 --> 00:36:20,490 kung kumalatong hinto sumisigaw. 895 00:36:20,490 --> 00:36:22,380 gumawa ng loop. 896 00:36:22,380 --> 00:36:25,470 Kaya ngayon ito ay "implicit deklarasyon ng function na 897 00:36:25,470 --> 00:36:29,880 Ang 'GetInt' ay hindi wasto sa C99. "Ano ang na? 898 00:36:29,880 --> 00:36:30,400 Oo? 899 00:36:30,400 --> 00:36:32,330 Madla: [hindi marinig]. 900 00:36:32,330 --> 00:36:32,690 David J. MALAN: Oo. 901 00:36:32,690 --> 00:36:35,520 Kaya ngayon na aktwal na gumagamit ako ng GetInt, ito ay hindi isang bagay 902 00:36:35,520 --> 00:36:38,190 na lamang ay may C. na ito ay mula sa CS50. 903 00:36:38,190 --> 00:36:39,890 Kaya kailangan namin ito dito. 904 00:36:39,890 --> 00:36:41,450 At ipaalam sa akin bumalik sa prompt pababa 905 00:36:41,450 --> 00:36:43,500 dito at muling patakbuhin ang gumawa. 906 00:36:43,500 --> 00:36:44,160 Okay, sa wakas. 907 00:36:44,160 --> 00:36:46,270 Na namin ngayon ang nalutas na at ang iba pang mga error. 908 00:36:46,270 --> 00:36:48,930 Hayaan akong ngayon patakbuhin ang loop at makita kung ano ang mangyayari. 909 00:36:48,930 --> 00:36:51,740 "Bigyan mo ako ng isang int." Bibigyan kita ng ito 11. 910 00:36:51,740 --> 00:36:53,100 Kukunin ko na bigyan ito ng -1. 911 00:36:53,100 --> 00:36:54,470 Kukunin ko na bigyan ito ng foo. 912 00:36:54,470 --> 00:36:56,080 Kukunin ko na bigyan ito ng 5. 913 00:36:56,080 --> 00:36:57,450 At ngayon, sa katunayan ito gumagana. 914 00:36:57,450 --> 00:36:59,410 Ngunit ang prompt nagbago para sa isang dahilan dito. 915 00:36:59,410 --> 00:37:02,800 Bakit ito sinasabi subukang muli ang isa sa mga oras na ito ngunit bigyan ako ng 916 00:37:02,800 --> 00:37:03,920 int ang iba pang mga tatlong beses? 917 00:37:03,920 --> 00:37:05,500 Bakit ang pag-uugali na naiiba? 918 00:37:05,500 --> 00:37:06,980 Madla: nagbigay ito ng isang string. 919 00:37:06,980 --> 00:37:07,830 David J. MALAN: Paumanhin? 920 00:37:07,830 --> 00:37:08,570 Madla: ibinigay mo ito sa isang string. 921 00:37:08,570 --> 00:37:08,990 David J. MALAN: Oo. 922 00:37:08,990 --> 00:37:11,450 Kaya namin ibinigay ito ng isang string sa ikatlong pagtatangka, 923 00:37:11,450 --> 00:37:12,490 kapag ako ay nag-type foo. 924 00:37:12,490 --> 00:37:13,200 Foo ay isang string. 925 00:37:13,200 --> 00:37:14,340 Ito ay malinaw naman hindi isang int. 926 00:37:14,340 --> 00:37:17,500 At ang paraan na CS50 ay ipinatupad GetInt namin 927 00:37:17,500 --> 00:37:20,330 hindi suriin kung ang isang bagay ay mas mababa sa 0 o mas mataas sa 10 928 00:37:20,330 --> 00:37:22,260 para sa iyo, dahil kung paano namin malaman nang maaga kung anong uri ng 929 00:37:22,260 --> 00:37:23,130 int gusto mo? 930 00:37:23,130 --> 00:37:25,880 Ngunit maaari naming Nagnais ng pinakamababang check para sa iyo, ay ang gumagamit ng hindi bababa sa 931 00:37:25,880 --> 00:37:26,730 -type ng isang integer? 932 00:37:26,730 --> 00:37:30,500 At kung sila ay hindi, hindi namin sumigaw sa user sa pamamagitan ng pag-type sa "subukang muli" sa 933 00:37:30,500 --> 00:37:31,440 screen. 934 00:37:31,440 --> 00:37:34,210 >> Kaya ngayon mayroon kaming programa na looping. Okay. 935 00:37:34,210 --> 00:37:37,070 Ngayon, kung alin sa mga ito ang uri ng mas mahusay na bumuo? 936 00:37:37,070 --> 00:37:39,060 Kaya ito ay kung saan ang mga bagay simulan upang makakuha ng isang maliit na magulo, 937 00:37:39,060 --> 00:37:42,360 katotohanan na mayroon kang tandaan na idedeklara ang isang variable dito 938 00:37:42,360 --> 00:37:44,630 kung nais mong gamitin ang mga ito sa loob ng ilang 939 00:37:44,630 --> 00:37:46,460 kulot tirante at sa labas. 940 00:37:46,460 --> 00:37:48,490 Ngunit kahit na ang hitsura ng kaunti misteriyoso sa unang 941 00:37:48,490 --> 00:37:50,750 sulyap, muli, tandaan ang simpleng logic. 942 00:37:50,750 --> 00:37:54,630 Upang gamitin ang anuman sa C, kung ito ay isang function o 943 00:37:54,630 --> 00:37:57,680 ito ay isang variable, mayroon kang upang maisama ito kung ito ay isang function 944 00:37:57,680 --> 00:37:59,770 sa ilang mga aklatan, o kailangan mo na idedeklara ito. 945 00:37:59,770 --> 00:38:02,405 Ngunit ngayon kailangan mo ng dagdag na maingat ang katotohanan na 946 00:38:02,405 --> 00:38:04,940 ka deklarasyon ito sa tamang saklaw. 947 00:38:04,940 --> 00:38:08,150 Hindi naglalagay ka ng ito masyadong mahigpit sa loob ng panaklong. 948 00:38:08,150 --> 00:38:09,410 >> Kaya ipaalam sa akin aktwal ibalik. 949 00:38:09,410 --> 00:38:12,660 Kung pumunta kami pabalik sa aming mga halimbawa mula sa mas maaga, at pumunta ako 950 00:38:12,660 --> 00:38:19,245 bumalik sa para sa int, int i = 0; i <10; i + +, at ako 951 00:38:19,245 --> 00:38:26,370 gawin printf bituin, tulad ng ito, at pagkatapos ay malapit paren, at ngayon 952 00:38:26,370 --> 00:38:30,410 printf i ay ngayon - 953 00:38:30,410 --> 00:38:33,500 ayon sa parehong logic, kung ano ang mangyayari kapag sinusubukan kong 954 00:38:33,500 --> 00:38:35,500 ipunin ang programang ito? 955 00:38:35,500 --> 00:38:36,790 Madla: Hindi wastong identifier. 956 00:38:36,790 --> 00:38:38,560 David J. MALAN: Kaya ito ay isa pang di-wastong identifier, 957 00:38:38,560 --> 00:38:39,470 hindi nagbigay-alam identifier. 958 00:38:39,470 --> 00:38:41,810 Ngayon, ang dahilan ng kaunti ibang. 959 00:38:41,810 --> 00:38:44,370 Mayroong malinaw naman hindi kulot tirante dito, ngunit ang parehong 960 00:38:44,370 --> 00:38:46,790 ideya, ang parehong kuwento ng saklaw nalalapat. 961 00:38:46,790 --> 00:38:50,340 Kung ikaw ay ipinahayag ang isang variable tulad ng i sa loob ng isang 962 00:38:50,340 --> 00:38:53,960 para sa loop, kahit na hindi mo tahasang nakasulat ang kulot 963 00:38:53,960 --> 00:38:56,980 tirante, mag-isip ng mga ito sa itak bilang pa rin ang pagiging doon, kung saan 964 00:38:56,980 --> 00:39:00,310 kaso i bisa lamang sa loob ng para sa loop. 965 00:39:00,310 --> 00:39:03,080 Ay hindi wasto sa sandaling nakarating ka na sa susunod na linya, na 966 00:39:03,080 --> 00:39:05,090 kaso na ito ay ngayon 10. 967 00:39:05,090 --> 00:39:09,060 Kaya ng ilang mga isyu ng saklaw at ang mga tulad. 968 00:39:09,060 --> 00:39:12,620 Lahat ng karapatan, anumang mga katanungan? 969 00:39:12,620 --> 00:39:15,310 >> Karapatan lahat, kaya ito ay uri ng trivia maliit na programa, 970 00:39:15,310 --> 00:39:17,450 pag-print lamang ang maliit na bituin. 971 00:39:17,450 --> 00:39:20,400 Ngunit sabihin makita kung tandaan mo ang kantang ito dito. 972 00:39:20,400 --> 00:39:22,530 Ito ay isang hindi kapani-paniwalang nakakainis na kanta ang mga bata ay kumanta sa 973 00:39:22,530 --> 00:39:23,550 ang mga bus ng paaralan at tulad. 974 00:39:23,550 --> 00:39:25,990 Ngunit kung ano ang magaling tungkol dito na ito cyclicity, 975 00:39:25,990 --> 00:39:27,910 kung saan ito ang "99 bote ng beer sa pader, 976 00:39:27,910 --> 00:39:28,520 99 bote ng beer. 977 00:39:28,520 --> 00:39:31,030 Gawin ang isa, ipasa ang mga ito sa paligid, 98 bote ng beer sa 978 00:39:31,030 --> 00:39:34,330 wall. "At pagkatapos kanta uulit ang 97, pagkatapos 96, pagkatapos 979 00:39:34,330 --> 00:39:38,040 95, pagkatapos 94, ang lahat ng mga paraan pababa sa 0 kung Nakakuha iyong aktwal na 980 00:39:38,040 --> 00:39:38,920 sa malayo ang bus. 981 00:39:38,920 --> 00:39:41,960 Kaya ito ay isang magandang programa upang ayusin ng ipatupad, dahil ang aking 982 00:39:41,960 --> 00:39:43,650 Diyos, kung maaari mong lamang ipatupad ito sa ilang 983 00:39:43,650 --> 00:39:46,660 linya ng code, maaari mong sabihin ang lahat ang buong lyrics na ito 984 00:39:46,660 --> 00:39:48,240 kanta medyo mabilis. 985 00:39:48,240 --> 00:39:50,420 Ngunit sa kahabaan ng paraan, maaari naming simulan ngayon manunudyo bukod ilang 986 00:39:50,420 --> 00:39:52,460 ng mga pangunahing looping constructs at ngayon din 987 00:39:52,460 --> 00:39:55,830 ipakilala ang mga function na isulat namin ating sarili, bumalik ang halaga 988 00:39:55,830 --> 00:39:57,020 na pumasa kami sa paligid. 989 00:39:57,020 --> 00:39:58,910 Ngunit una, bakit hindi namin magpatuloy at tumagal ang aming limang minutong 990 00:39:58,910 --> 00:39:59,320 masira dito? 991 00:39:59,320 --> 00:40:01,480 At kapag makuha namin pabalik, ay namin kantahin ang kantang ito. 992 00:40:05,680 --> 00:40:08,760 >> Karapatan lahat, kaya hindi namin pabalik. 993 00:40:08,760 --> 00:40:11,850 At kapag sinabi ko namin ngayon kumanta ang kantang ito, ibig sabihin ko 994 00:40:11,850 --> 00:40:13,250 programa, hindi pasalita. 995 00:40:13,250 --> 00:40:19,370 Kaya dito mayroon kaming beer1.c, kung saan ay isang pagpapatupad ng mga ito 996 00:40:19,370 --> 00:40:20,580 partikular na kanta. 997 00:40:20,580 --> 00:40:23,110 At lamang maging malinaw, para sa mga pamilyar sa kung ano ang 998 00:40:23,110 --> 00:40:24,460 Ang bagay na ito ay kamukha, hayaan mo akong magpatuloy 999 00:40:24,460 --> 00:40:27,070 at gumawa ng beer1, ang Enter. 1000 00:40:27,070 --> 00:40:30,400 Ngayon ipaalam sa akin na patakbuhin beer1, at kung ano ang makikita namin makita - kung gaano karaming mga bote 1001 00:40:30,400 --> 00:40:31,140 ng beer ay doon? 1002 00:40:31,140 --> 00:40:33,240 Type ko sa 99, tulad ng sabi sa kanta. 1003 00:40:33,240 --> 00:40:34,040 Enter. 1004 00:40:34,040 --> 00:40:35,650 At ngayon kung mag-scroll namin sa pamamagitan ng - 1005 00:40:35,650 --> 00:40:38,280 oops - kung mag-scroll namin sa pamamagitan ng lahat ng ito, makikita namin makita na 1006 00:40:38,280 --> 00:40:41,350 ito ay sa katunayan kantahin ang buong kanta. 1007 00:40:44,050 --> 00:40:44,540 Maghintay ng isang minuto. 1008 00:40:44,540 --> 00:40:46,240 Aking scroll bar ang isang maliit na messed up. 1009 00:40:46,240 --> 00:40:47,940 Natin gamitin ang mas malaking window. 1010 00:40:47,940 --> 00:40:53,500 Kaya beer1, 99, doon pumunta kami. 1011 00:40:53,500 --> 00:40:56,420 Kaya dito namin ang buong kanta, Sung mas mabilis sa pamamagitan ng 1012 00:40:56,420 --> 00:40:58,450 computer na kaysa ito ay sa pamamagitan ng sa amin. 1013 00:40:58,450 --> 00:41:00,340 Kaya mapansin, bagaman, ang cyclical kalikasan dito. 1014 00:41:00,340 --> 00:41:03,380 Nagsasabing 99, pagkatapos 99, pagkatapos "tumagal ng isa pababa, ipasa ito 1015 00:41:03,380 --> 00:41:04,740 sa paligid, "pagkatapos ay 98. 1016 00:41:04,740 --> 00:41:06,640 At ngayon uulit muli at muli. 1017 00:41:06,640 --> 00:41:08,840 >> Kaya ito ay tunay na isang perpektong pagkakataon para sa ilang mga uri ng 1018 00:41:08,840 --> 00:41:10,400 looping bumuo. 1019 00:41:10,400 --> 00:41:12,950 Pansinin na ako uri ng paggupit isang sulok dito. 1020 00:41:12,950 --> 00:41:15,960 Pansinin na ako nagsasabing "98 bote ng beer sa pader, 1021 00:41:15,960 --> 00:41:19,010 97 bote ng beer sa pader, "at na lamang kaya 1022 00:41:19,010 --> 00:41:21,640 na kapag makuha namin sa isang bote ng beer, hindi ko 1023 00:41:21,640 --> 00:41:23,300 mag-alala tungkol sa Ingles na balarila. 1024 00:41:23,300 --> 00:41:25,790 Ngunit maaari rin naming ayusin ang mga ito na may kaunti ng kung 1025 00:41:25,790 --> 00:41:26,910 kalagayan, marahil. 1026 00:41:26,910 --> 00:41:30,110 Kung ang bilang na ito ay pang-isahan, sige at sabihin ang "bote", 1027 00:41:30,110 --> 00:41:31,840 kung hindi man kung plural, sabihin nating "bote". 1028 00:41:31,840 --> 00:41:34,150 Ngunit sa ngayon, ganap na ako paggupit sulok na iyon. 1029 00:41:34,150 --> 00:41:35,520 Kaya sabihin makita kung ano ang namin ang nakuha dito. 1030 00:41:35,520 --> 00:41:37,150 Kaya Mayroon namin ang ilang mga komento sa tuktok. 1031 00:41:37,150 --> 00:41:39,450 Ako kasama ang dalawang mga aklatan, bilang 1032 00:41:39,450 --> 00:41:41,140 karaniwang kami. 1033 00:41:41,140 --> 00:41:43,610 At ngayon ipaalam sa akin na mag-scroll down sa unang 1034 00:41:43,610 --> 00:41:44,990 aktwal na linya ng code. 1035 00:41:44,990 --> 00:41:47,020 Linya 17 kicks off ang pangunahing. 1036 00:41:47,020 --> 00:41:50,610 Linya 21 at 20 ay kung gaano karaming mga bote ng beer ay doon? 1037 00:41:50,610 --> 00:41:52,060 At pagkatapos ay tumawag ako GetInt. 1038 00:41:52,060 --> 00:41:53,800 At ngayon ay mayroon akong isang bit ng isang katinuan check. 1039 00:41:53,800 --> 00:41:57,030 >> Kaya ito ay isang convention na namin ngayon simulan ang paghango sa 1040 00:41:57,030 --> 00:41:59,620 mas rigorously suriin ang input ng user. 1041 00:41:59,620 --> 00:42:01,710 Minsan mo lamang ay hindi gusto upang i-prompt ang mga ito muli 1042 00:42:01,710 --> 00:42:02,630 at muli at muli. 1043 00:42:02,630 --> 00:42:05,620 Kung ang gumagamit, Turnilyo at hindi makikipagtulungan, fine. 1044 00:42:05,620 --> 00:42:07,430 Quit at lamang huwag makitungo sa kanila. 1045 00:42:07,430 --> 00:42:08,990 At kaya na kung ano ang ako ginagawa dito. 1046 00:42:08,990 --> 00:42:12,520 Kung ang n ay mas mababa sa 1, ako sumigaw sa user, 1047 00:42:12,520 --> 00:42:14,330 "Paumanhin, na ginagawang walang kahulugan." At pagkatapos ay ako pagpunta sa 1048 00:42:14,330 --> 00:42:16,650 mang bumalik ang 1. 1049 00:42:16,650 --> 00:42:18,550 Kaya muli, ito ay isang convention sa masanay sa. 1050 00:42:18,550 --> 00:42:19,850 Sa ngayon, ang mga ito sa pananampalataya. 1051 00:42:19,850 --> 00:42:22,700 Ngunit hanggang ngayon, palagi kaming na bumabalik 0, dahil 1052 00:42:22,700 --> 00:42:25,204 sinabi namin na bumabalik 0 Nagpapahiwatig ng kung ano? 1053 00:42:25,204 --> 00:42:26,000 Madla: Tagumpay. 1054 00:42:26,000 --> 00:42:27,320 David J. MALAN: Tagumpay, na ang lahat. 1055 00:42:27,320 --> 00:42:29,740 Kaya ngayon na sa wakas kami ay nagsisimula mag-isip tungkol sa 1056 00:42:29,740 --> 00:42:31,330 di-tagumpay - 1057 00:42:31,330 --> 00:42:33,760 sa ibang salita, sulok kaso, mga kondisyon ng error - 1058 00:42:33,760 --> 00:42:37,520 ngayon mayroon akong isang walang-katapusang supply ng, o hindi bababa sa apat na bilyong 1059 00:42:37,520 --> 00:42:39,790 posibleng bagay na maaaring magkamali sa aking programa. 1060 00:42:39,790 --> 00:42:42,300 At ang maaari kong simulan ang magtatalaga sa kanila ng mga indibidwal na mga numero. 1061 00:42:42,300 --> 00:42:44,340 Ngayon, sa pangkalahatan ito suffices lang bumalik 1062 00:42:44,340 --> 00:42:45,730 isang bagay na iba kaysa sa 0. 1063 00:42:45,730 --> 00:42:48,040 Kaya kami ay pagpunta upang bumalik lamang 1 sa ngayon. 1064 00:42:48,040 --> 00:42:51,440 Ngunit ang dahilan para sa bumabalik 1 na sa lalong madaling bumalik ka 1065 00:42:51,440 --> 00:42:55,110 1, hulaan kung ano ang mangyayari sa ibang bahagi ng programa? 1066 00:42:55,110 --> 00:42:55,720 Ito hinto. 1067 00:42:55,720 --> 00:42:56,560 Iyan na ang lahat. 1068 00:42:56,560 --> 00:42:59,150 Kaya ang katunayan na ako bumabalik 1 ay mabisa 1069 00:42:59,150 --> 00:43:02,950 maikling-circuiting pagpapatupad ng programang ito upang ang 1070 00:43:02,950 --> 00:43:06,780 walang ibaba linya 27 ay patuloy execute. 1071 00:43:06,780 --> 00:43:09,210 Sa lalong madaling pangunahing babalik na ito. 1072 00:43:09,210 --> 00:43:13,160 >> Lahat ng karapatan, kaya kung ang ginagawa ng user makikipagtulungan at maabot namin ang linya 30 1073 00:43:13,160 --> 00:43:15,680 dahil-type sila sa isang lehitimong numero, narito ang aking 1074 00:43:15,680 --> 00:43:16,990 pagpapatupad ng ang kantang ito. 1075 00:43:16,990 --> 00:43:19,050 Kaya unang ko i-print ang isang newline character na, para lamang sa 1076 00:43:19,050 --> 00:43:19,880 aesthetics. 1077 00:43:19,880 --> 00:43:21,500 Ako ngayon ay may para sa loop. 1078 00:43:21,500 --> 00:43:22,930 At mapansin ako ginagawa ang mga bagay ng kaunti 1079 00:43:22,930 --> 00:43:23,880 ng isang iba't ibang direksyon. 1080 00:43:23,880 --> 00:43:26,210 Hindi ko upang gawin mas mababa sa, hindi ko na gawin + +. 1081 00:43:26,210 --> 00:43:30,660 Ko sa halip sabihin initialize ng variable i, itakda ito katumbas ng 1082 00:43:30,660 --> 00:43:35,080 n, ang bilang ng gumagamit ang nai-type sa, pagkatapos ay gawin ang mga sumusunod, kaya 1083 00:43:35,080 --> 00:43:39,590 hangga't i ay mas malaki kaysa sa 0, pagkatapos ay i - 1084 00:43:39,590 --> 00:43:42,070 kapag natapos mo na ang isang pag-ulit na ito loop. 1085 00:43:42,070 --> 00:43:44,310 Upang maaari naming bilangin ang paggamit ng isang para sa loop pati na rin. 1086 00:43:44,310 --> 00:43:47,520 Ngayon, ito ay medyo magkano linggo isang bagay na ngayon, na may printf. 1087 00:43:47,520 --> 00:43:51,770 Kaya print "% d bote ng beer sa pader." I-print "% d 1088 00:43:51,770 --> 00:43:54,990 bote ng beer. "" Dalhin ang isa, ipasa ang mga ito sa paligid. "I-print 1089 00:43:54,990 --> 00:43:58,880 "% D mga bote ng beer sa pader." Kaya pa rin% d, ngunit 1090 00:43:58,880 --> 00:44:02,770 mapansin na ang argument ang printf ay nagbabago. 1091 00:44:02,770 --> 00:44:05,840 Pagkatapos ng kuwit, mayroon akong i, dahil gusto kong sabihin 99. 1092 00:44:05,840 --> 00:44:08,590 Pagkatapos ng kuwit na ito, mayroon akong i, dahil gusto kong sabihin 99. 1093 00:44:08,590 --> 00:44:14,030 Pagkatapos ng kuwit na ito, mayroon akong i - 1, dahil gusto kong sabihin 98 sa 1094 00:44:14,030 --> 00:44:16,260 ito unang-ulit, at iba pa. 1095 00:44:16,260 --> 00:44:18,520 At ngayon down na dito, ko lang ilang bobo maliit na pangungusap. 1096 00:44:18,520 --> 00:44:22,270 At pagkatapos linya 42, bumalik ako 0 sa pamamagitan ng convention, signifying na 1097 00:44:22,270 --> 00:44:23,650 ay okay ang lahat. 1098 00:44:23,650 --> 00:44:24,490 >> Kaya kung ano kung goofed ko? 1099 00:44:24,490 --> 00:44:26,350 Ano ang maaaring isang karaniwang pagkakamali sa dito? 1100 00:44:26,350 --> 00:44:29,200 Well, kung ano kung sinabi ko sinasadyang na rin, ko nais upang mabilang 1101 00:44:29,200 --> 00:44:31,640 down sa 0, Gusto kong 0 bote ng beer sa pader? 1102 00:44:31,640 --> 00:44:34,620 Kaya sinasabi ko, i ay mas malaki kaysa sa o katumbas ng 0. 1103 00:44:34,620 --> 00:44:38,920 Kung ano ang nangyayari ang sintomas na ngayon ko makita kung mag-recompile ko 1104 00:44:38,920 --> 00:44:41,173 beer1 at patakbuhin ito? 1105 00:44:41,173 --> 00:44:42,120 Madla: Negatibong. 1106 00:44:42,120 --> 00:44:43,590 David J. MALAN: Oo, ito ay gonna pumunta negatibong. 1107 00:44:43,590 --> 00:44:45,950 Ito ay isang off-by-one error, isang hindi kapani-paniwalang 1108 00:44:45,950 --> 00:44:47,270 karaniwang pagkakamali sa gumawa. 1109 00:44:47,270 --> 00:44:48,960 Sabihin aktwal na bumalik sa window ng terminal at gawin ito 1110 00:44:48,960 --> 00:44:50,620 dito, sa gayon ay maaari naming makita higit pa sa isang pagkakataon. 1111 00:44:50,620 --> 00:44:53,280 Ipasok, 99 bote ng beer. 1112 00:44:53,280 --> 00:44:56,580 Isara, ngunit hindi namin nagpunta napaka bahagyang Masyadong malayo. 1113 00:44:56,580 --> 00:45:00,500 Kumanta namin ang kanta masyadong malayo down, tulad na namin ngayon pindutin ang 1114 00:45:00,500 --> 00:45:01,510 negatibong numero. 1115 00:45:01,510 --> 00:45:03,680 Kaya't hindi ito ay medyo gumana. 1116 00:45:03,680 --> 00:45:06,450 >> Lahat ng karapatan, upang maaari naming madaling ayusin na sa pamamagitan ng pagpunta pabalik sa 1117 00:45:06,450 --> 00:45:07,650 paraan sa sandaling ito ay. 1118 00:45:07,650 --> 00:45:10,360 Ngunit ano ang ilang mga pagkakataon na ngayon para sa 1119 00:45:10,360 --> 00:45:11,190 pagpapabuti? 1120 00:45:11,190 --> 00:45:17,200 Well, hayaan mo akong buksan ang beer2.c at mag-scroll pababa dito at kumuha ng isang 1121 00:45:17,200 --> 00:45:19,310 tingnan ang bersyon na ito. 1122 00:45:19,310 --> 00:45:21,370 Ano ang unang bagay na jumps out sa iyo bilang ibang 1123 00:45:21,370 --> 00:45:23,715 sa ang bersyon na ito dito? 1124 00:45:23,715 --> 00:45:24,190 Madla: [hindi marinig]. 1125 00:45:24,190 --> 00:45:26,510 David J. MALAN: Oo, kaya wala nang i, dahil ito naganap sa 1126 00:45:26,510 --> 00:45:29,350 sa akin kung ano, ako na humihiling ng gumagamit para sa n, at pagkatapos ay ako 1127 00:45:29,350 --> 00:45:33,580 pagtatakda ng i katumbas ng n, at pagkatapos ay ako binabago i, ngunit ako ay hindi kailanman 1128 00:45:33,580 --> 00:45:34,590 pagpindot n muli. 1129 00:45:34,590 --> 00:45:37,390 Kaya kung ano ang ano ba ang punto ng paglaan ng isa pang 32 1130 00:45:37,390 --> 00:45:45,210 bit na tinatawag na i lamang sa gayon ay maaari ba akong magkaroon ng isang iba't ibang mga variable? 1131 00:45:45,210 --> 00:45:47,960 Kaya sa kasong ito, ako uri ng kinikilala na hindi kinakailangang 1132 00:45:47,960 --> 00:45:49,190 disenyo tampok. 1133 00:45:49,190 --> 00:45:52,730 At ngayon ako pagpunta sa sabihin habang n ay mas malaki kaysa sa 0, pumunta 1134 00:45:52,730 --> 00:45:56,180 magpatuloy at i-print sa parehong kanta, pagpasa ng isang n printf bilang ang 1135 00:45:56,180 --> 00:46:00,210 ikalawang argument, at n - 1 bilang ang pangalawang argumento dito. 1136 00:46:00,210 --> 00:46:02,930 At pagkatapos ay sa bawat pag-ulit ng loop na ito, sige at 1137 00:46:02,930 --> 00:46:05,080 pagbawas n mismo. 1138 00:46:05,080 --> 00:46:06,960 Ngayon, pagtakbo, ang program na ito 1139 00:46:06,960 --> 00:46:08,010 pagpunta sa magkakahawig. 1140 00:46:08,010 --> 00:46:10,730 Kung type ko sa 99, n pagsisimula sa 99. 1141 00:46:10,730 --> 00:46:12,890 Ako pagbabawas, pagbabawas, pagbabawas, pagbabawas. 1142 00:46:12,890 --> 00:46:15,875 Pupunta ako upang makakuha ng ang lahat ng mga paraan pababa sa "Isang bote ng beer sa 1143 00:46:15,875 --> 00:46:16,740 sa pader, isang bote ng serbesa. 1144 00:46:16,740 --> 00:46:18,020 Gawin ang isa, ipasa ang mga ito sa paligid. 1145 00:46:18,020 --> 00:46:21,480 0 bote ng beer sa pader. "Ang katapusan, dahil ginawa ko 1146 00:46:21,480 --> 00:46:23,200 makakuha ng kondisyon ang tamang. 1147 00:46:23,200 --> 00:46:24,280 Ito ay mas malaki kaysa sa 0. 1148 00:46:24,280 --> 00:46:26,220 Hindi ako ang pagkakamaling ito. 1149 00:46:26,220 --> 00:46:28,470 >> Kaya kung saan ay mas mahusay, ang bersyon ng isa o bersyon ng dalawang? 1150 00:46:31,380 --> 00:46:33,480 Kaya Narinig ko ang isang bungkos ng mga murmurings para sa dalawa. 1151 00:46:33,480 --> 00:46:34,730 Bakit dalawang? 1152 00:46:37,210 --> 00:46:38,225 Ano iyon? 1153 00:46:38,225 --> 00:46:39,215 Madla: [hindi marinig]. 1154 00:46:39,215 --> 00:46:40,070 David J. MALAN: Oh, okay. 1155 00:46:40,070 --> 00:46:42,870 Kaya hindi ito pumunta sa ibaba 0, ngunit tandaan, sa bersyon isa, ang 1156 00:46:42,870 --> 00:46:45,870 orihinal tamang bersyon ay hindi pumunta sa ibaba 0 alinman. 1157 00:46:45,870 --> 00:46:48,340 Kaya tandaan na ito ay ang tamang bersyon. 1158 00:46:48,340 --> 00:46:51,630 Kaya hayaan kung hindi bababa sa ihambing ang dalawang tamang bersyon. 1159 00:46:51,630 --> 00:46:53,300 Ano ang isang argument sa pabor ng bersyon 1160 00:46:53,300 --> 00:46:55,146 dalawang pagiging, mmm, mas mahusay? 1161 00:46:55,146 --> 00:46:55,642 Oo? 1162 00:46:55,642 --> 00:46:57,630 Madla: gumagamit ng mas espasyo. 1163 00:46:57,630 --> 00:46:59,530 David J. MALAN: Okay, sa gayon ito ay gumagamit ng mas espasyo, i-right? 1164 00:46:59,530 --> 00:47:02,900 Sapagkat bersyon isa ay ginamit ng 32 mga bit para sa n, at pagkatapos ay isa pang 1165 00:47:02,900 --> 00:47:07,680 32 bit para i. 1166 00:47:07,680 --> 00:47:10,060 Bersyon dalawang Ginagamit lamang ng 32 bit para n, upang 1167 00:47:10,060 --> 00:47:11,700 Mukhang ng plus. 1168 00:47:11,700 --> 00:47:12,950 Iba pang mga saloobin? 1169 00:47:18,070 --> 00:47:21,520 Ba ang sinuman gusto sa magtaltalan sa pabor ng isa? 1170 00:47:21,520 --> 00:47:22,070 Oo? 1171 00:47:22,070 --> 00:47:25,240 Madla: Mayroon kang gamitin ang dagdag na linya ng code para sa n -. 1172 00:47:25,240 --> 00:47:26,090 >> David J. MALAN: Okay, sigurado. 1173 00:47:26,090 --> 00:47:26,960 Kaya na patas. 1174 00:47:26,960 --> 00:47:29,040 Kaya ito lang, hindi bababa sa sa akin - 1175 00:47:29,040 --> 00:47:31,940 Ibig kong sabihin, ito ay aktwal na pakiramdam ng isang maliit na Messier, ang katunayan na ang 1176 00:47:31,940 --> 00:47:35,120 Hindi ko maaaring ayusin encapsulate ang lahat ng aking logic sa isa 1177 00:47:35,120 --> 00:47:38,030 magandang linya, para sa loop, ang para sa loop maaari. 1178 00:47:38,030 --> 00:47:40,240 Dito, ako uri ng mag-tak sa ito n - 1179 00:47:40,240 --> 00:47:41,120 sa dulo ng loop, dahil 1180 00:47:41,120 --> 00:47:42,550 lohikal na kinakailangan. 1181 00:47:42,550 --> 00:47:45,190 Ngunit ito uri ng rubs sa akin sa maling paraan, dahil lang sa ito 1182 00:47:45,190 --> 00:47:48,260 tila hiwalay mula sa logic na hanggang dito, kahit, 1183 00:47:48,260 --> 00:47:49,430 muli, ito ay kinakailangan. 1184 00:47:49,430 --> 00:47:50,990 Iba pang mga saloobin? 1185 00:47:50,990 --> 00:47:51,490 Oo? 1186 00:47:51,490 --> 00:47:52,740 Madla: [hindi marinig]. 1187 00:47:57,990 --> 00:47:58,350 >> David J. MALAN: Oo. 1188 00:47:58,350 --> 00:48:00,730 Kaya kung ano kung ikaw sa halip, sa dulo ng kanta, gusto 1189 00:48:00,730 --> 00:48:02,950 i-print muli ang pangalan ng kanta? 1190 00:48:02,950 --> 00:48:05,660 Tulad ng "Salamat para sa paglalaro ng 99 bote ng beer", o isang bagay na 1191 00:48:05,660 --> 00:48:06,690 ulok tulad na? 1192 00:48:06,690 --> 00:48:09,750 Ngunit ang punto ay, gusto mo ng access sa orihinal na halaga. 1193 00:48:09,750 --> 00:48:13,180 Ang katotohanan na mutated o binago n sa bawat 1194 00:48:13,180 --> 00:48:16,330 ulit at samakatuwid ay sirain ang orihinal nitong halaga 1195 00:48:16,330 --> 00:48:18,650 nangangahulugan mo lamang ay hindi maaaring gawin iyon sa dulo. 1196 00:48:18,650 --> 00:48:20,660 Ngayon, arguably, namin malinaw hindi nais gawin 1197 00:48:20,660 --> 00:48:21,450 na sa programang ito. 1198 00:48:21,450 --> 00:48:22,350 Kaya na nagmamalasakit? 1199 00:48:22,350 --> 00:48:23,630 Ngunit iyon lamang ang isang wastong point. 1200 00:48:23,630 --> 00:48:25,520 At upang maging matapat, kung talagang hindi isang 1201 00:48:25,520 --> 00:48:26,630 karapatan sagutin dito. 1202 00:48:26,630 --> 00:48:28,740 Ang mga ito ay parehong pantay tama. 1203 00:48:28,740 --> 00:48:30,210 Ako kumbinsido paraan alinman. 1204 00:48:30,210 --> 00:48:33,310 Sabihin ko na, sa pangkalahatan, ito ay isang mahusay na prinsipyo kung ikaw 1205 00:48:33,310 --> 00:48:36,030 nagtanong ang gumagamit para sa ilang mga halaga at naka-imbak sa isang variable 1206 00:48:36,030 --> 00:48:38,730 tulad n uri ng sa prinsipyo, ito ay marahil magandang 1207 00:48:38,730 --> 00:48:40,160 upang panatilihing na sa paligid. 1208 00:48:40,160 --> 00:48:43,400 At ang anumang data na nais mong mutate muli at muli, 1209 00:48:43,400 --> 00:48:46,030 bigyan ang iyong sarili ng isang kopya ng na variable, kaya na ikaw 1210 00:48:46,030 --> 00:48:47,830 magkaroon ng access sa orihinal. 1211 00:48:47,830 --> 00:48:51,040 Ikaw ay gumagastos ng 32 higit pang mga bit, ngunit ang katotohanang ito 1212 00:48:51,040 --> 00:48:53,490 computer, i, dalawang gigabytes ng RAM mga araw na ito, 1213 00:48:53,490 --> 00:48:55,310 at kami ay quibbling higit sa 32 bit? 1214 00:48:55,310 --> 00:48:56,320 Talagang hindi isang malaking deal. 1215 00:48:56,320 --> 00:48:58,550 At kahit na sa device na ito dito, na may kalahati ng kalesa o 1216 00:48:58,550 --> 00:49:01,700 gigabyte ng RAM, 32 bit kumpara sa 64 bit, 1217 00:49:01,700 --> 00:49:02,920 hindi isang malaking deal. 1218 00:49:02,920 --> 00:49:05,890 Tiyak na ngayon, ito ay pagpunta sa paraan na magapi ng laki 1219 00:49:05,890 --> 00:49:08,400 ng programa mismo, na kung saan ay pagpunta sa ilang daang 1220 00:49:08,400 --> 00:49:10,890 kilobytes, kung hindi ng ilang mga megabytes, ang mga araw na ito. 1221 00:49:10,890 --> 00:49:13,550 >> Kaya mga makatwirang mga alalahanin, walang tamang sagot. 1222 00:49:13,550 --> 00:49:15,490 Ngunit hindi bababa sa mga ay ang mga saloobin na dapat magsimula sa 1223 00:49:15,490 --> 00:49:16,790 pumunta sa pamamagitan ng iyong isip? 1224 00:49:16,790 --> 00:49:19,600 Dahil sa pset 0, kahit kami talaga lamang inaasahan 1225 00:49:19,600 --> 00:49:22,340 kawastuhan, o hindi bababa sa disclaiming ng iba't-ibang mga bug na 1226 00:49:22,340 --> 00:49:25,440 maaari mong Nakaranas, bilang ilipat namin inaabangan ang panahon, ang disenyo ay 1227 00:49:25,440 --> 00:49:27,910 pagpunta sa isa pang key aspeto, parehong ng pagsusulat ng code 1228 00:49:27,910 --> 00:49:29,770 at din ang aming pagsusuri ng code. 1229 00:49:29,770 --> 00:49:32,310 At kaya hindi bababa sa bigyan naisip sa mga bagay tulad nito. 1230 00:49:32,310 --> 00:49:35,590 At dahil lang sa isang bagay na gawa ay hindi nangangahulugan na ito ay mabuti, 1231 00:49:35,590 --> 00:49:37,130 ay hindi nangangahulugan na ito ay mahusay na dinisenyo. 1232 00:49:37,130 --> 00:49:38,820 At na ang isa ng mga bagay na ang pagtuturo Fellows at 1233 00:49:38,820 --> 00:49:41,990 set problema ay makakatulong manunudyo sa amin bahagi sa paglipas ng panahon. 1234 00:49:41,990 --> 00:49:45,020 >> Well, kung ano ang tungkol sa, sabihin nating, ang bersyon na ito dito? 1235 00:49:45,020 --> 00:49:49,090 Hayaan ang gawin sa akin ng isang bagay na ng kaunti sexy dito sa ilang sandali. 1236 00:49:49,090 --> 00:49:50,740 Unang hayaan mo akong makakuha ng mapupuksa ng ito. 1237 00:49:50,740 --> 00:49:54,120 At ngayon sabihin ayusin ito pambalarila isyu. 1238 00:49:54,120 --> 00:49:58,780 Kaya sa ang bersyon na ito, gusto kong ayusin ang grammar upang ang, 1239 00:49:58,780 --> 00:50:02,460 sa halip na lamang nating parenthetical s, tulad ng "bote" 1240 00:50:02,460 --> 00:50:03,360 o "bote" - 1241 00:50:03,360 --> 00:50:04,900 Hindi ko nais upang i-cut na sulok - 1242 00:50:04,900 --> 00:50:08,350 Gusto ko rin sa dynamic na i-print ang salitang "bote" 1243 00:50:08,350 --> 00:50:12,820 o "bote", at dahil doon gamit ang mga placeholder mga% s ngayon. 1244 00:50:12,820 --> 00:50:16,550 Kaya kailangan kong i-check nang may pasubali kung ano ang halaga ng i. 1245 00:50:16,550 --> 00:50:19,590 At kung ito ay 1, gusto kong sabihin ang "bote", at kung ito ay anumang 1246 00:50:19,590 --> 00:50:23,115 tao, gusto kong sabihin ng "bote". Kaya natin subukang gawin ito. 1247 00:50:23,115 --> 00:50:31,340 Kaya kung i == 1, at pagkatapos ay hayaan mo akong magpatuloy at ipinapahayag - 1248 00:50:31,340 --> 00:50:34,080 Kailangan ko ng isang string, kaya hayaan gawin sa akin ng mga S1 string, dahil ito ay ang 1249 00:50:34,080 --> 00:50:36,070 unang string na mahalaga ako tungkol sa ngayon. 1250 00:50:36,070 --> 00:50:40,980 Ako pagpunta sa sabihin ang "bote". At pagkatapos, sabihin makita, string 1251 00:50:40,980 --> 00:50:43,110 S2 - at Ipapaliwanag ko kung saan ako pupunta sa isang sandali - 1252 00:50:43,110 --> 00:50:47,650 "Bote." Isipin ang Kaya, ang kantang ito, kailangan namin upang magawang 1253 00:50:47,650 --> 00:50:50,580 upang i-print ang mga bagay, dalawang magkaibang salita potensyal. 1254 00:50:50,580 --> 00:50:53,590 Kaya't kung tiningnan namin pabalik dito, mapapansin na kapag makuha namin 1255 00:50:53,590 --> 00:50:56,440 halimbawang ito dito, "dalawang bote ng beer sa pader, 1256 00:50:56,440 --> 00:50:59,490 dalawang bote ng beer, gawin ang isa, ipasa ito sa paligid ", gusto kong 1257 00:50:59,490 --> 00:51:02,380 ikaapat na linya na ito sa ngayon sabihin "ng isang bote ng serbesa sa 1258 00:51:02,380 --> 00:51:04,900 wall ". Kaya kailangan ko upang magpasya, ang gusto kong sabihin ng" bote "o 1259 00:51:04,900 --> 00:51:07,780 "Bote"? Kaya ako pagpunta sa mang sabihin, lahat ng karapatan, 1260 00:51:07,780 --> 00:51:10,530 Ako pagpunta sa ngayon ipinapahayag ng isang variable na tinatawag na S1, string 1261 00:51:10,530 --> 00:51:13,830 isa, na pagpunta upang makakuha ng mga naka-plug in dito at din dito, 1262 00:51:13,830 --> 00:51:16,070 dahil ang mga salitang iyon ay laging magkakahawig, lamang dahil sa ang 1263 00:51:16,070 --> 00:51:17,290 likas na katangian ng ang kanta. 1264 00:51:17,290 --> 00:51:20,100 At ako pagpunta sa tumawag S2 anumang salitang gusto kong 1265 00:51:20,100 --> 00:51:21,560 kalaunan lumitaw pababa dito. 1266 00:51:21,560 --> 00:51:25,530 Ngayon, literal, 99 beses sa 100, ito ay ang 1267 00:51:25,530 --> 00:51:28,820 parehong sa parehong mga kasong iyon, dahil 3 pangmaramihang, 2 1268 00:51:28,820 --> 00:51:30,200 plural, 4 ay pangmaramihang. 1269 00:51:30,200 --> 00:51:34,640 Ngunit sa kasong ito ng sulok, kung saan nakukuha namin sa 2 at pagkatapos 1, o 1270 00:51:34,640 --> 00:51:37,250 kahit 1 at pagkatapos ay 0, kailangan ko ang logic na ito. 1271 00:51:37,250 --> 00:51:41,020 Kaya kong gumastos ng ilang oras sa aking code sa pagkuha ng karapatang iyon. 1272 00:51:41,020 --> 00:51:47,530 Kaya kung gawin ko ito, kung i == 1, pagkatapos ay itakda ang S1 katumbas ng "bote" 1273 00:51:47,530 --> 00:51:52,010 at S2 katumbas sa "bote", dahil ito ay para sa 1 1274 00:51:52,010 --> 00:51:56,340 bote, at ito ay para sa mga 0 bote. 1275 00:51:56,340 --> 00:51:58,250 At ito dito, kung ano ang ibig kumatawan? 1276 00:51:58,250 --> 00:51:59,780 Lamang maging malinaw. 1277 00:51:59,780 --> 00:52:00,620 Ito ay isang komento. 1278 00:52:00,620 --> 00:52:03,730 Kaya ang ibig sabihin ng ang katunayan na maaari kang magkaroon ng solong-linya komento 1279 00:52:03,730 --> 00:52:06,110 maaaring magkomento sa iyong code tulad nito, ngunit isa pang karaniwang 1280 00:52:06,110 --> 00:52:09,050 paradaym, masyadong, ay na kung mayroon kang isang napaka-maikling parirala na 1281 00:52:09,050 --> 00:52:11,410 nais mong ilagay ang iyong sarili at lang mas nababasa upang ilagay 1282 00:52:11,410 --> 00:52:13,270 ito pakanan sa dulo ng linya ng code, maaari mong 1283 00:52:13,270 --> 00:52:15,230 talagang gawin ang isang bagay tulad nito. 1284 00:52:15,230 --> 00:52:20,150 >> Kaya ngayon kung ano kung gagawin ko ito? Iba Pa kung i ay hindi katumbas sa 1. 1285 00:52:20,150 --> 00:52:21,620 Kaya putok katumbas - 1286 00:52:21,620 --> 00:52:23,150 exclamation point ay kilala bilang "putok". 1287 00:52:23,150 --> 00:52:25,080 Kaya putok = 1. 1288 00:52:25,080 --> 00:52:28,530 Kaya kung i ay hindi katumbas sa 1, ano ang gagawin ko sa halip gusto mong gawin? 1289 00:52:28,530 --> 00:52:31,700 Well, ang unang salita na gusto ko na kung ano ang? 1290 00:52:34,620 --> 00:52:40,030 Kaya string 1 ay dapat na "bote" para sa mga bote ng pangmaramihang, 1291 00:52:40,030 --> 00:52:42,440 at pagkatapos na ito ay pangmaramihang "bote" pati na rin, sa ngayon. 1292 00:52:42,440 --> 00:52:43,800 At kami na makita kung ito aktwal na nakakakuha ng sa amin upang 1293 00:52:43,800 --> 00:52:44,870 kung saan gusto naming pumunta. 1294 00:52:44,870 --> 00:52:47,680 Kaya ngayon kung mag-scroll down na ko dito, mapansin na ako i-plug sa 1295 00:52:47,680 --> 00:52:50,170 hindi lamang i, ngunit S1. 1296 00:52:50,170 --> 00:52:51,860 I-plug ako sa i at S1. 1297 00:52:51,860 --> 00:52:54,440 At pagkatapos ay down na dito, ako minus 1, na kung saan ay katulad ng 1298 00:52:54,440 --> 00:52:55,920 bago, ngunit S2. 1299 00:52:55,920 --> 00:52:58,730 Sa ibang salita, gusto ko ang mga salitang Ingles upang baguhin batay 1300 00:52:58,730 --> 00:52:59,930 sa ang logic na ito. 1301 00:52:59,930 --> 00:53:03,310 Ngayon, may ilang mga problema sa ang code na ito. 1302 00:53:03,310 --> 00:53:08,460 Ano ay nasira na ng gate dito? 1303 00:53:08,460 --> 00:53:10,796 Oo? 1304 00:53:10,796 --> 00:53:13,210 Madla: [hindi marinig]. 1305 00:53:13,210 --> 00:53:13,800 >> David J. MALAN: Eksaktong. 1306 00:53:13,800 --> 00:53:16,030 Kaya ko na lumabag ang aralin ng saklaw. 1307 00:53:16,030 --> 00:53:19,610 Kaya ipinahayag ko na S1 at S2, ngunit nagawa ko na ito sa loob ng 1308 00:53:19,610 --> 00:53:22,980 kulot tirante, na nangangahulugang oo, ang code na ito gagana 1309 00:53:22,980 --> 00:53:27,430 hanggang sa ika-42 linya, ngunit sa lalong madaling pindutin ko ang linya 43, hulaan kung ano ang hindi 1310 00:53:27,430 --> 00:53:28,900 na umiiral? 1311 00:53:28,900 --> 00:53:32,600 Well, hulaan kung ano ang hindi na saklaw - wala S1 o S2. 1312 00:53:32,600 --> 00:53:33,780 Kaya mayroon kaming upang ayusin ito. 1313 00:53:33,780 --> 00:53:36,180 Kaya ipaalam sa akin tanggalin ang pagdeklara. 1314 00:53:36,180 --> 00:53:39,320 At kukunin ko na iwanan ang mga variable na pangalan at tanggalin ang dito 1315 00:53:39,320 --> 00:53:40,120 at tanggalin ang mga ito dito. 1316 00:53:40,120 --> 00:53:43,557 At sa kung ano ang linya ang dapat kong talagang ipinapahayag ang mga bagay na ito? 1317 00:53:43,557 --> 00:53:44,960 Madla: [hindi marinig]. 1318 00:53:44,960 --> 00:53:45,410 David J. MALAN: Oo, kaya marahil 1319 00:53:45,410 --> 00:53:46,850 kanan hanggang dito, 33-ish. 1320 00:53:46,850 --> 00:53:50,670 Kaya string S1 at pagkatapos string S2. 1321 00:53:50,670 --> 00:53:51,950 At ito ay lumiliko out, ang maaari kong gawin ito. 1322 00:53:51,950 --> 00:53:54,260 Kung ikaw ay deklarasyon ng dalawang variable ng parehong uri, 1323 00:53:54,260 --> 00:53:57,420 maaari mong aktwal na lamang gamitin kuwit at gawin iyon sa C. Lahat ng 1324 00:53:57,420 --> 00:53:58,970 karapatan, kaya ngayon mayroon akong dalawang variable - 1325 00:53:58,970 --> 00:53:59,860 S1 at S2. 1326 00:53:59,860 --> 00:54:02,000 Ako magtatalaga sa kanila ng halaga sa mga 1327 00:54:02,000 --> 00:54:04,210 kundisyon dito, o in dito. 1328 00:54:04,210 --> 00:54:06,690 At pagkatapos ay ako gamit iyon sa ibaba. 1329 00:54:06,690 --> 00:54:10,960 Kung gaano kahusay na ito ngayon sa trabaho? 1330 00:54:10,960 --> 00:54:12,740 >> Well, ito ay pa rin ng kaunti maraming surot, ngunit sabihin ng hindi bababa sa makita 1331 00:54:12,740 --> 00:54:13,730 gaano kalayo namin na nakuha. 1332 00:54:13,730 --> 00:54:16,500 Kaya hayaan mo akong magpatuloy at gumawa ng beer3. 1333 00:54:16,500 --> 00:54:17,695 Ay ang beer3 na ito? 1334 00:54:17,695 --> 00:54:19,410 Yep, ito ay beer3. 1335 00:54:19,410 --> 00:54:21,510 At ngayon hayaan mo akong magpatuloy at patakbuhin beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Maaari namin marahil laktawan karamihan sa kanila. 1338 00:54:25,840 --> 00:54:29,100 At pababa dito, tingnan na. 1339 00:54:29,100 --> 00:54:31,110 "Isang bote ng beer sa pader, isang bote ng beer, 1340 00:54:31,110 --> 00:54:34,306 isa pababa, ipasa ito sa paligid, 0 bote ng beer sa pader. " 1341 00:54:34,306 --> 00:54:37,570 Ngunit ako pagguhit ng iyong pansin sa lamang ng kalahati ng solusyon. 1342 00:54:37,570 --> 00:54:39,620 Uri ng screwed up dito. 1343 00:54:39,620 --> 00:54:43,030 Kaya ito ay tila na ang mga kaso ng sulok lumabas dahil kapag i katumbas ng kung ano ang 1344 00:54:43,030 --> 00:54:44,030 dalawang halaga? 1345 00:54:44,030 --> 00:54:45,020 Madla: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 David J. MALAN: 2 at 1. 1347 00:54:46,190 --> 00:54:48,180 Hindi ito 1 at hindi 1. 1348 00:54:48,180 --> 00:54:51,890 Ito ay talagang lamang ang mga huling dalawang stanza ang kantang ito. 1349 00:54:51,890 --> 00:54:53,890 Kaya ano ang gagawin ko sa halip gusto mong gawin? 1350 00:54:53,890 --> 00:54:58,890 Kaya mukhang ako na nahuli na kaso kung saan kung i ay == sa 1, 1351 00:54:58,890 --> 00:55:02,240 pagkatapos ay ang unang salita ay "bote", ngunit ang pangalawang salita 1352 00:55:02,240 --> 00:55:07,230 "bote". Ngunit dito, nais kong baguhin ito sa == 2. 1353 00:55:07,230 --> 00:55:08,570 At kung ito ang kaso, kung ano ang gusto ko ang 1354 00:55:08,570 --> 00:55:09,620 unang salita na? 1355 00:55:09,620 --> 00:55:10,430 Madla: "Bote". 1356 00:55:10,430 --> 00:55:12,890 David J. MALAN: "Bote", kaya para sa dalawang bote. 1357 00:55:12,890 --> 00:55:14,690 At pagkatapos ay ang salitang ito dito ay dapat - 1358 00:55:14,690 --> 00:55:15,340 Madla: "Bote". 1359 00:55:15,340 --> 00:55:17,316 David J. MALAN: "Bote", isahan. 1360 00:55:20,430 --> 00:55:25,160 >> Karapatan lahat, sabihin mag-zoom out, bumalik sa paglipas dito, muling patakbuhin ang gumawa, 1361 00:55:25,160 --> 00:55:28,590 re-run beer3, uri 99 muli. 1362 00:55:28,590 --> 00:55:30,710 Okay, "Segmentation fault (core dumped)." 1363 00:55:30,710 --> 00:55:32,780 Ano pa ko tapos mali? 1364 00:55:36,050 --> 00:55:38,722 Madla: Hindi mo kailangang magkaroon ng isang halaga [hindi marinig]. 1365 00:55:38,722 --> 00:55:40,480 David J. MALAN: Ah, mahusay na punto. 1366 00:55:40,480 --> 00:55:43,310 Lahat ng karapatan, kaya kung ano ang mali dito? 1367 00:55:43,310 --> 00:55:45,450 Kaya segmentation fault, at aktwal na kami ay upang makita 1368 00:55:45,450 --> 00:55:49,020 ito medyo ng ilang oras sa hinaharap, sadyang. 1369 00:55:49,020 --> 00:55:51,030 Ngunit sa ngayon, ano ito aktwal na ibig sabihin nito? 1370 00:55:51,030 --> 00:55:53,620 Ang segmentation fault halos palaging nangangahulugan na mayroon kang 1371 00:55:53,620 --> 00:55:56,760 sa paanuman sinubukan upang ma-access ang memory, RAM sa iyong computer, 1372 00:55:56,760 --> 00:56:00,600 na hindi mo pag-aari, na hindi mo aktwal na nagtanong ang 1373 00:56:00,600 --> 00:56:02,050 operating system para sa. 1374 00:56:02,050 --> 00:56:04,440 Kaya sa kasong ito, mapapansin kung ano ang nagawa ko na, na kung saan ay 1375 00:56:04,440 --> 00:56:05,870 flawed sa aking logic. 1376 00:56:05,870 --> 00:56:09,500 Ko bibigyan ng S1 at S2 halaga ng kung i katumbas 1. 1377 00:56:09,500 --> 00:56:11,590 Nagawa ko na rin na kung i katumbas ng 2. 1378 00:56:11,590 --> 00:56:13,710 Ngunit hindi ko nagawa ito sa walang katapusan na bilang ng iba pang mga 1379 00:56:13,710 --> 00:56:14,690 posibilidad - 1380 00:56:14,690 --> 00:56:17,940 partikular, 3 o 4 o tuldok, tuldok, tuldok, 99. 1381 00:56:17,940 --> 00:56:20,100 Kaya ang isang-aayos para sa lamang natin 1382 00:56:20,100 --> 00:56:22,190 magkaroon ng isang pang tao na kondisyon. 1383 00:56:22,190 --> 00:56:26,780 At ipaalam sa akin pumunta sa dito at sabihin S1 katumbas - 1384 00:56:26,780 --> 00:56:28,180 ano ang dapat ito dito? 1385 00:56:28,180 --> 00:56:28,750 Madla: [hindi marinig]. 1386 00:56:28,750 --> 00:56:30,460 >> David J. MALAN: "Bote", dahil sa karaniwang kaso, 1387 00:56:30,460 --> 00:56:32,020 ito ay ang parehong bagay. 1388 00:56:32,020 --> 00:56:35,580 Kaya ay katumbas ng mga quote, magpanipi, "bote." Kaya para sa pangmaramihang 1389 00:56:35,580 --> 00:56:41,010 bote, at pagkatapos ay hanggang dito, para sa pangmaramihang bote. 1390 00:56:41,010 --> 00:56:44,580 Okay, kaya ngayon hayaan mo akong bumalik sa aking terminal na window, 1391 00:56:44,580 --> 00:56:47,200 mag-recompile, muling patakbuhin ito. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Whew. 1394 00:56:49,150 --> 00:56:50,610 At sabihin ng isang mabilis na check ng katinuan. 1395 00:56:50,610 --> 00:56:52,400 Technically, nais namin nais na basahin ang lahat ng mga ito upang matiyak na 1396 00:56:52,400 --> 00:56:53,370 hindi tama ang mga ito, ngunit tingnan natin 1397 00:56:53,370 --> 00:56:54,640 kahit ang mga kilalang culprits. 1398 00:56:54,640 --> 00:56:57,370 3 bote, 2 bote, 2 bote, 1 1399 00:56:57,370 --> 00:57:00,380 bote, 1 bote, 0 bote. 1400 00:57:00,380 --> 00:57:03,080 Mukhang namin na hindi bababa sa maayos ito sa ngayon. 1401 00:57:03,080 --> 00:57:06,010 Ngunit ang catch dito ay na ang isang kakila-kilabot gulo ng diyos na ito ay 1402 00:57:06,010 --> 00:57:07,470 lamang upang malutas ang isang bobo 1403 00:57:07,470 --> 00:57:09,540 isang-character na pambalarila detalye. 1404 00:57:09,540 --> 00:57:11,150 Kaya may uri ng isang dahilan na pinutol ko ito sulok 1405 00:57:11,150 --> 00:57:14,090 mas maaga, dahil ito lamang ganap na nakakainis na magkaroon ng sa 1406 00:57:14,090 --> 00:57:15,020 isulat ang ganito karami code. 1407 00:57:15,020 --> 00:57:17,530 Ngunit ito lumiliko na may bahagyang mas eleganteng paraan ng 1408 00:57:17,530 --> 00:57:20,110 pagpapahayag ang eksaktong parehong bagay. 1409 00:57:20,110 --> 00:57:22,040 At maaari naming gawin ito tulad ng sumusunod. 1410 00:57:22,040 --> 00:57:23,890 >> Hayaan akong iwanan ito sa screen para sa isang sandali at 1411 00:57:23,890 --> 00:57:27,320 ipakilala ang isang bagay na kilala bilang isang tatluhan operator. 1412 00:57:27,320 --> 00:57:29,600 Ito ay uri ng isang-Liner na lamang nilalayong upang gumawa ng aming 1413 00:57:29,600 --> 00:57:31,880 nakatira sa isang maliit na sexier, tulad ng ipinangako. 1414 00:57:31,880 --> 00:57:33,130 At ako pagpunta sa gawin ito tulad ng sumusunod. 1415 00:57:33,130 --> 00:57:35,810 Bigyan mo ako ng S1 na tinatawag na isang string, at ipaalam sa akin 1416 00:57:35,810 --> 00:57:37,200 italaga ito bilang mga sumusunod. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Bote", kung hindi man "bote". String S2 ay nakakakuha (i == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Bote", kung hindi man "bote". 1420 00:57:52,670 --> 00:57:57,050 Kaya kung ano ang pagkatapos ay ang pagkakaiba dito? 1421 00:57:57,050 --> 00:57:59,370 Mga dalawang linya ng code, magtaltalan ko, maaari 1422 00:57:59,370 --> 00:58:02,200 palitan ang buong gulo. 1423 00:58:02,200 --> 00:58:04,280 Kaya ko ito tumawag ng gulo, dahil lang sa ito uri ng rubs sa akin ang 1424 00:58:04,280 --> 00:58:05,940 maling paraan na kaya maraming mga linya ng code. 1425 00:58:05,940 --> 00:58:06,650 Hindi mali. 1426 00:58:06,650 --> 00:58:07,700 Hindi masamang disenyo. 1427 00:58:07,700 --> 00:58:10,140 Gusto, ito ay perpektong tama at perpektong fine. 1428 00:58:10,140 --> 00:58:12,970 Ngunit coding nakakakuha ng nakakapagod kung mayroon kang upang ipahayag ang iyong sarili sa gayon 1429 00:58:12,970 --> 00:58:15,530 mapahamak partikular muli at muli at muli gamit ang isang simpleng 1430 00:58:15,530 --> 00:58:16,620 sitwasyong tulad nito. 1431 00:58:16,620 --> 00:58:19,470 Kaya C ay may ilang mga shortcut, tulad nito. 1432 00:58:19,470 --> 00:58:24,270 Kaya ito ay mahalagang sinasabi na ipinapahayag ng string na tinatawag S1 at 1433 00:58:24,270 --> 00:58:32,610 italaga ito alinman ang halagang ito o ang halagang ito kung i == - 1434 00:58:32,610 --> 00:58:35,290 Paumanhin, dapat ko bang sabihin ito mas malinaw. 1435 00:58:35,290 --> 00:58:41,680 Magpahayag ng isang variable S1, italaga ito ang halaga na ito kung ito ay totoo. 1436 00:58:41,680 --> 00:58:44,280 Kung hindi man, italaga ito ang halaga na ito. 1437 00:58:44,280 --> 00:58:47,220 Kaya sa ibang salita, ito ay uri ng isang-linya na paraan ng 1438 00:58:47,220 --> 00:58:51,490 sinasabi kung tao ngunit paggawa ng isang pagtatalaga sa kahabaan ng paraan. 1439 00:58:51,490 --> 00:58:55,540 Kaya kung i ay 1, pagkatapos sige at tawagan ito "bote". At 1440 00:58:55,540 --> 00:58:59,830 pagkatapos ito tao, tumawag ito "bote". Samantala, S2, ang 1441 00:58:59,830 --> 00:59:04,060 pangalawang salita na kailangan namin upang tukuyin, kung i katumbas 2, bibigyan namin 1442 00:59:04,060 --> 00:59:08,350 itakda ang S2 sa "bote". Kung hindi man, itakda ito sa "bote". At kung ano ang 1443 00:59:08,350 --> 00:59:11,460 ito ay nangangahulugan na ngayon ay maaari kong pumunta sa pamamagitan ng at tanggalin ang lahat ng 1444 00:59:11,460 --> 00:59:12,860 mga linya ng code. 1445 00:59:12,860 --> 00:59:17,220 At kapag sinabi ko, medyo ridiculously, na ito ay ngayon 1446 00:59:17,220 --> 00:59:20,060 sexier, sexier sa uri ng pangkakanyahan kahulugan. 1447 00:59:20,060 --> 00:59:22,660 Ang katotohanan na pagtakbo, ang code na ito ay aktwal na pagpunta sa 1448 00:59:22,660 --> 00:59:24,610 gawin ang eksaktong parehong bagay. 1449 00:59:24,610 --> 00:59:26,890 At kahit maaaring tumingin ng kaunti misteriyoso sa unang 1450 00:59:26,890 --> 00:59:29,250 sulyap, dahil hindi namin nakita bumuo ito bago, gusto ko 1451 00:59:29,250 --> 00:59:31,850 magtalo na ganap na ito kaya higit pa 1452 00:59:31,850 --> 00:59:34,820 nababasa at kaya mas madali para sa namin tao upang pag-uri-uriin ng 1453 00:59:34,820 --> 00:59:36,830 maunawaan, dahil ngayon maaari mo lamang basahin ang 1454 00:59:36,830 --> 00:59:38,830 code lahat sa isang linya. 1455 00:59:38,830 --> 00:59:41,550 Ito ay katulad pa rin sa espiritu sa isang kung, kung saan ito ay ang 1456 00:59:41,550 --> 00:59:44,920 kalagayan at pagkatapos ito ay kung ano ang sa loob ng kung at ito 1457 00:59:44,920 --> 00:59:46,480 ay kung ano ang sa loob ng pang tao. 1458 00:59:46,480 --> 00:59:49,450 Ngunit maaari naming gawin ito lamang mas elegante. 1459 00:59:49,450 --> 00:59:52,650 >> At kung ako ngayon bumalik sa aking terminal, pag-tinanggal ang lahat ng 1460 00:59:52,650 --> 00:59:55,530 ng mga linya at pinalitan ang mga ito na may lamang mga dalawang, 1461 00:59:55,530 --> 01:00:00,150 mag-recompile, re-run ang mga bote ng beer na may 99, notice na aking 1462 01:00:00,150 --> 01:00:03,350 grammar ay, sa katunayan, pa rin tama. 1463 01:00:03,350 --> 01:00:06,160 Kaya muli, isang bagay upang magsimula. 1464 01:00:06,160 --> 01:00:08,840 2 bote ng beer, 1 bote ng serbesa. 1465 01:00:08,840 --> 01:00:09,370 Mukhang tama. 1466 01:00:09,370 --> 01:00:10,100 Oo. 1467 01:00:10,100 --> 01:00:13,900 Kaya mayroon kami ng mas higit pa na solusyon maikli at malinaw. 1468 01:00:13,900 --> 01:00:16,020 Kaya ito, masyadong, makakakuha ka ng mas kumportable sa C, hindi 1469 01:00:16,020 --> 01:00:18,630 kinakailangan na ang unang pset o kahit ikalawang, ngunit 1470 01:00:18,630 --> 01:00:21,170 Napagtanto ang mga constructs-daan sa amin upang gawin ang mga bagay kailanman 1471 01:00:21,170 --> 01:00:22,810 mas elegante. 1472 01:00:22,810 --> 01:00:25,200 Ngayon sabihin gawin ang isa sa iba pang mga bagay dito. 1473 01:00:25,200 --> 01:00:31,460 Hayaan akong sige at buksan return1.c. 1474 01:00:31,460 --> 01:00:34,340 Ngayon sabihin simulan upang malutas ang isa pang problema sa isang paraan na 1475 01:00:34,340 --> 01:00:37,140 ay nagbibigay-daan sa amin upang magsulat ng mas sopistikadong code. 1476 01:00:37,140 --> 01:00:39,960 >> Kaya narito ang isang simpleng maliit na programa na layunin sa buhay 1477 01:00:39,960 --> 01:00:41,870 ay upang dagdagan ang halaga. 1478 01:00:41,870 --> 01:00:43,100 At aktwal na, sabihin tumagal ng isang hakbang pabalik. 1479 01:00:43,100 --> 01:00:44,400 Hayaan ang gawin sa akin ito nang manu-mano. 1480 01:00:44,400 --> 01:00:52,200 Hayaan ang gawin sa akin isama at int pangunahing (walang bisa). 1481 01:00:52,200 --> 01:00:53,450 At ipaalam sa akin na tumawag ito increment.c. 1482 01:00:57,150 --> 01:00:58,570 At kung ano ang gusto kong gawin? 1483 01:00:58,570 --> 01:01:02,240 Ako pagpunta sa magpatuloy at sabihin ang isang bagay tulad ng - 1484 01:01:02,240 --> 01:01:04,280 naming tawagan ang mga numero ng parehong - 1485 01:01:04,280 --> 01:01:04,980 int x. 1486 01:01:04,980 --> 01:01:13,670 Kaya int x nakakakuha ng 2; printf x% d, bagong linya, x. 1487 01:01:13,670 --> 01:01:16,780 Kaya nagta-type ako ng mabilis, ngunit ang uri ng pamilyar na mga bagay-bagay ngayon. 1488 01:01:16,780 --> 01:01:18,830 Pagkatapos ako pagpunta sa gawin x + +. 1489 01:01:18,830 --> 01:01:21,710 Pagkatapos ako pagpunta upang i-print muli na parehong pangungusap. 1490 01:01:21,710 --> 01:01:24,550 At pagkatapos ay ako pagpunta upang bumalik 0 lamang na umalis sa programa. 1491 01:01:24,550 --> 01:01:25,960 Karapatan lahat, kaya ito ay isang programa na 1492 01:01:25,960 --> 01:01:26,960 palugit ang isang numero. 1493 01:01:26,960 --> 01:01:29,830 Una itong ang pagsisimula ng isang bagay sa 2, at pagkatapos ito ay 1494 01:01:29,830 --> 01:01:33,470 pagpunta upang dagdagan ang mga ito at i-print ang mga ito muli. 1495 01:01:33,470 --> 01:01:36,930 >> Kaya natin patakbuhin ang pagdagdag, hindi kapani-paniwalang simpleng programa. 1496 01:01:36,930 --> 01:01:40,940 Ngunit ipagpalagay na ngayon na gusto kong kubo ang halaga, kaya gawin 1497 01:01:40,940 --> 01:01:42,490 isang bagay na medyo arbitrary. 1498 01:01:42,490 --> 01:01:45,140 At gusto ko aktwal na gawin x nakakakuha ng kubo nito. 1499 01:01:45,140 --> 01:01:47,570 Kaya ko maaaring gamitin kung ano ang tinatawag na yukod function na, ngunit hindi ko 1500 01:01:47,570 --> 01:01:48,650 talagang malaman kung saan na ay pa. 1501 01:01:48,650 --> 01:01:50,580 Kaya ako pagpunta sa gawin ito sa luma paraan. 1502 01:01:50,580 --> 01:01:54,550 x beses na ito ay katumbas ng x beses x beses x. 1503 01:01:54,550 --> 01:01:56,880 Kaya ako cubing ang halaga, multiply ito muli sa pamamagitan ng mismo 1504 01:01:56,880 --> 01:02:00,440 at muli at muli, sa gayon ay makuha namin ang lakas 1505 01:02:00,440 --> 01:02:02,050 ng 3 sa kasong ito. 1506 01:02:02,050 --> 01:02:06,000 Kaya ngayon ang mga numero ang dapat kong i-print ang dapat na, dahil kakailanganin namin nakikita 1507 01:02:06,000 --> 01:02:08,450 dito - gumawa ng pagdagdag, kaya ito ay aktwal na hindi talaga dagdagan 1508 01:02:08,450 --> 01:02:10,260 ito, ngunit gagamitin namin iwan ang pangalan nang nag-iisa - 1509 01:02:10,260 --> 01:02:11,590 2 at pagkatapos ay 8. 1510 01:02:11,590 --> 01:02:17,670 Ngayon, mayroon kaming ang mga Beginnings ng isang pagkakataon para sa pagpipino 1511 01:02:17,670 --> 01:02:21,570 dito, kung saan ito cubing bagay ng multiply ng bilang 1512 01:02:21,570 --> 01:02:24,680 mismo sa pamamagitan ng mismo sa pamamagitan ng mismong nararamdaman tulad nito ay maaaring lamang 1513 01:02:24,680 --> 01:02:27,920 kapaki-pakinabang bilang isang function, tulad ng isang tao nagpasya 1514 01:02:27,920 --> 01:02:30,430 taon na ang nakalipas - alam mo, ang uri ng mga kapaki-pakinabang kung isa sa atin ay makikita pababa 1515 01:02:30,430 --> 01:02:33,120 at nagsusulat printf sa gayon na ang natitirang bahagi ng mundo ay maaaring gamitin ito, 1516 01:02:33,120 --> 01:02:36,160 bakit hindi namin umupo at isulat ang isang function na tinatawag na kubo 1517 01:02:36,160 --> 01:02:39,250 na ito cubing para sa amin kaya hindi namin upang mano-manong 1518 01:02:39,250 --> 01:02:41,500 ipatupad ang paniwala ng cubing halaga dito? 1519 01:02:41,500 --> 01:02:44,040 >> Kaya isang simpleng halimbawa, ngunit sabihin sige at gamitin ito bilang isang 1520 01:02:44,040 --> 01:02:46,280 pagkakataon na isulat ang aming sariling function na. 1521 01:02:46,280 --> 01:02:49,110 Kaya sa gayon ay malayo, lamang namin ang ginagamit pangunahing, at ginamit namin ang iba pang mga 1522 01:02:49,110 --> 01:02:51,780 mga function, ngunit hindi namin nakasulat aming sariling. 1523 01:02:51,780 --> 01:02:52,650 Kaya dito namin pumunta. 1524 01:02:52,650 --> 01:02:56,330 Ako pagpunta upang magpatuloy at isulat ang isang function na tinatawag na kubo. 1525 01:02:56,330 --> 01:02:58,490 At ako itong tumagal ng isang input. 1526 01:02:58,490 --> 01:03:02,070 Kaya ang input nito ay pagpunta sa maging isang integer. 1527 01:03:02,070 --> 01:03:03,570 At kung ano ang pagpunta sa gawin? 1528 01:03:03,570 --> 01:03:08,500 Ito ay upang idedeklara int output = beses sa input ng input 1529 01:03:08,500 --> 01:03:09,880 beses input. 1530 01:03:09,880 --> 01:03:12,190 At pagkatapos ito upang bumalik na output. 1531 01:03:12,190 --> 01:03:14,500 At pagkatapos ko na ng tukoy na ngayon. 1532 01:03:14,500 --> 01:03:16,820 Ang function na ito ay pagpunta sa bumalik sa isang int. 1533 01:03:16,820 --> 01:03:19,130 Kaya dito pagkatapos ay kung paano nais mong isulat ang iyong sariling mga function. 1534 01:03:19,130 --> 01:03:20,850 Mo munang magpasya kung ano ang pangalan ng iyong 1535 01:03:20,850 --> 01:03:21,720 function na pagpunta upang maging. 1536 01:03:21,720 --> 01:03:23,964 At sa pangkalahatan, isang bagay na paliwanag ay mabuti, kaya idedetalye ko 1537 01:03:23,964 --> 01:03:25,060 tumawag ito kubo. 1538 01:03:25,060 --> 01:03:27,180 Pagkatapos ay mayroon kang upang tukuyin kung ano ang ito upang bumalik, kung ano ang 1539 01:03:27,180 --> 01:03:28,240 nito output na maging. 1540 01:03:28,240 --> 01:03:29,595 At hindi namin na maraming mga pagpipilian. 1541 01:03:29,595 --> 01:03:32,260 Int, pansamantalang trabaho, Float, bool, string. 1542 01:03:32,260 --> 01:03:34,260 Sa ngayon, ako pagpunta upang ilagay sa isang int, dahil gusto ko ito 1543 01:03:34,260 --> 01:03:35,880 upang ibalik ang isang integer. 1544 01:03:35,880 --> 01:03:38,770 Pagkatapos mayroon kang upang tukuyin kung ano nitong mga input, kung mayroon man, ay. 1545 01:03:38,770 --> 01:03:41,570 At kung ang kubo tumatagal ng isang argument, ay kumukuha ng isang bagay sa pagitan ng 1546 01:03:41,570 --> 01:03:44,970 panaklong, mayroon kang upang bigyan na argumento ng pangalan upang ang 1547 01:03:44,970 --> 01:03:47,860 maaari mong tawagin ang mga ito ng isang bagay bilang ka pagpapatupad o pagsulat 1548 01:03:47,860 --> 01:03:50,550 ito function, at mayroon kang upang bigyan ito ng isang uri, na sa ganitong 1549 01:03:50,550 --> 01:03:51,810 kaso ay pagpunta sa int. 1550 01:03:51,810 --> 01:03:54,690 Kaya sa maikling salita, ang kubo ay isang function na kumukuha ng isang integer 1551 01:03:54,690 --> 01:03:57,560 bilang input at babalik isang integer bilang output. 1552 01:03:57,560 --> 01:03:59,240 >> Kaya kung ano ang gagawin sa na input? 1553 01:03:59,240 --> 01:04:03,710 Well, sa linya 14, ako idedeklara isang variable na tinatawag na output, at ako 1554 01:04:03,710 --> 01:04:07,410 italaga ito ang halaga, input beses input input beses. 1555 01:04:07,410 --> 01:04:11,490 At pagkatapos ko bumalik ng output. 1556 01:04:11,490 --> 01:04:14,890 Kaya paano ko gagamitin ito pagkatapos? 1557 01:04:14,890 --> 01:04:19,210 Ano ang gagawin ko bang baguhin ang mga naka-highlight na character sa linya 1558 01:04:19,210 --> 01:04:21,006 7 na, sa tingin mo? 1559 01:04:21,006 --> 01:04:21,800 Madla: [hindi marinig]. 1560 01:04:21,800 --> 01:04:25,570 David J. MALAN: Oo, kaya kubo ng x. 1561 01:04:25,570 --> 01:04:28,290 Kaya x ay isang variable, na nangangahulugan na ito hold ilang halaga. 1562 01:04:28,290 --> 01:04:30,190 Kabutihang palad, ng uri ng integer. 1563 01:04:30,190 --> 01:04:34,280 At dahil ang x ay isang int, na nangangahulugan na maaari kong pumasa ito sa kubo. 1564 01:04:34,280 --> 01:04:39,500 At kahit ako override ang halaga ng x sa ang halaga 1565 01:04:39,500 --> 01:04:42,780 x kubo, ay ang kaso nang sa gayon ay malayo, anumang oras 1566 01:04:42,780 --> 01:04:46,150 pantay-pantay na mag-sign at isang linya ng code, ang mga bagay sa kanan 1567 01:04:46,150 --> 01:04:49,090 ay makakakuha pinaandar at pagkatapos ay makakakuha itinalaga sa 1568 01:04:49,090 --> 01:04:50,150 halaga sa kaliwa. 1569 01:04:50,150 --> 01:04:52,950 Kaya ang pagkakasunud-sunod ng mga pagpapatakbo tulad naming umaasa. 1570 01:04:52,950 --> 01:04:56,620 Kaya ito gumagana? 1571 01:04:56,620 --> 01:04:58,410 Well, hayaan mo akong pumunta pababa dito. 1572 01:04:58,410 --> 01:04:59,970 Hayaan akong buksan ang aking terminal na window. 1573 01:04:59,970 --> 01:05:03,610 Hayaan akong gumawa ng pagdagdag, Ipasok. 1574 01:05:03,610 --> 01:05:07,140 "Implicit deklarasyon ng function na ang 'kubo' ay hindi wasto sa 1575 01:05:07,140 --> 01:05:13,700 C99. "Bilang isang bukod, C99 ay tumutukoy sa C wika tulad ng ito ay 1576 01:05:13,700 --> 01:05:16,790 tinukoy noong 1999, kung saan ay isang update sa ibabaw ng bersyon mula 1577 01:05:16,790 --> 01:05:19,360 1989, kung saan ay isang update sa orihinal. 1578 01:05:19,360 --> 01:05:21,740 Kaya na ang lahat ng mga paraan. 1579 01:05:21,740 --> 01:05:24,250 >> Kaya kung ano ang ibig sabihin na "implicit deklarasyon ng 1580 01:05:24,250 --> 01:05:26,790 'kubo' na function na ay hindi wasto? "dito mismo. 1581 01:05:26,790 --> 01:05:28,430 Doon sa linya 12. 1582 01:05:28,430 --> 01:05:30,460 Madla: [hindi marinig]. 1583 01:05:30,460 --> 01:05:30,730 David J. MALAN: Ano iyon? 1584 01:05:30,730 --> 01:05:32,470 Madla: Ito ay hindi bago. 1585 01:05:32,470 --> 01:05:33,540 David J. MALAN: Ito ay hindi bago. 1586 01:05:33,540 --> 01:05:34,740 Kaya ito ay ang bagay. 1587 01:05:34,740 --> 01:05:38,190 C uri ng bobo, o C compiler uri ng bobo. 1588 01:05:38,190 --> 01:05:41,060 Sila talaga lamang gawin kung ano ang sabihin sa iyo ang mga ito na gawin. 1589 01:05:41,060 --> 01:05:44,770 At sila, sa partikular, tanging basahin ang iyong code itaas hanggang sa ibaba, 1590 01:05:44,770 --> 01:05:45,620 kaliwa papuntang kanan. 1591 01:05:45,620 --> 01:05:49,140 Kaya kung ang tagatala, kalatong, nagbabasa ng iyong code, line 1, 1592 01:05:49,140 --> 01:05:50,120 figure kung paano gawin ito. 1593 01:05:50,120 --> 01:05:50,940 Oh, dito ay pangunahing. 1594 01:05:50,940 --> 01:05:53,000 Okay, hayaan mo akong magpatuloy at ipinapahayag sa isang variable na x. 1595 01:05:53,000 --> 01:05:54,160 Hayaan akong i-print ang isang bagay. 1596 01:05:54,160 --> 01:05:55,890 Line 7, ano ano ba ang kubo? 1597 01:05:55,890 --> 01:05:58,230 Hindi ito ipinahayag sa stdio.h. 1598 01:05:58,230 --> 01:06:00,950 Hindi nito ay may C. Wala akong palagay kung ano ang gagawin. 1599 01:06:00,950 --> 01:06:03,960 At kaya kumalatong lamang bails at tabla na mensahe ng error. 1600 01:06:03,960 --> 01:06:05,850 Upang maayos namin ito sa ilang mga paraan. 1601 01:06:05,850 --> 01:06:10,530 Namin magturo ng kalatong kung ano ang kubo ay sa pamamagitan ng paglipat lamang kung saan ang 1602 01:06:10,530 --> 01:06:11,820 deklarasyon. 1603 01:06:11,820 --> 01:06:14,640 Kaya pinutol ko at ilagay ito paitaas sa pangunahing. 1604 01:06:14,640 --> 01:06:17,770 Ngayon ay nauunawaan na lamang dahil ang pangunahing ay hindi na unang, 1605 01:06:17,770 --> 01:06:19,150 pa ring isinasagawa sa pamamagitan ng default. 1606 01:06:19,150 --> 01:06:20,060 Main ay pangunahing. 1607 01:06:20,060 --> 01:06:21,022 Ito ay ang default na pangalan ng function na. 1608 01:06:21,022 --> 01:06:22,930 Hindi mahalaga kung saan ito ay sa isang file. 1609 01:06:22,930 --> 01:06:26,910 Ngunit hindi bababa sa ngayon kumalatong ay nakita kubo bago ko ito gamitin. 1610 01:06:26,910 --> 01:06:28,500 Kaya ipaalam sa makita kung kumalatong ay mas masaya ngayon. 1611 01:06:28,500 --> 01:06:31,410 Magsagawa ng pagdagdag, ipunin ang oras na ito. 1612 01:06:31,410 --> 01:06:33,060 >> Hayaan akong magpatakbo ng pagdagdag. 1613 01:06:33,060 --> 01:06:34,810 At sa katunayan, mukhang nagtatrabaho. 1614 01:06:34,810 --> 01:06:36,810 Ngayon, maaari kang makabuo na may mga sitwasyon kalaunan kung saan 1615 01:06:36,810 --> 01:06:38,650 hindi ito magagawa upang ilagay ang bawat function na 1616 01:06:38,650 --> 01:06:39,740 sa itaas sa bawat iba pang mga function na. 1617 01:06:39,740 --> 01:06:42,140 Ka makaalis sa walang-katapusang loop sa katotohanan, 1618 01:06:42,140 --> 01:06:43,480 kung saan ang tao na ito ay nais dito ngunit ito 1619 01:06:43,480 --> 01:06:44,390 tao kailangang doon. 1620 01:06:44,390 --> 01:06:45,830 Kaya na ay hindi laging gumagana. 1621 01:06:45,830 --> 01:06:49,020 Sa thankfully, C ay may mas eleganteng solusyon. 1622 01:06:49,020 --> 01:06:50,790 Ako pagpunta sa ilagay ito pabalik kung saan ito ay, dahil lang ako 1623 01:06:50,790 --> 01:06:53,390 ginusto, bilang isang bagay ng prinsipyo, na pangunahing palaging 1624 01:06:53,390 --> 01:06:55,550 sa tuktok, sapagkat ito lang magaling upang makita kung ano ang program na ito 1625 01:06:55,550 --> 01:06:56,920 ginagawa sa pamamagitan ng default. 1626 01:06:56,920 --> 01:06:58,950 At kung ano ako pagpunta sa gawin dito idedeklara kung ano ang tinatawag na 1627 01:06:58,950 --> 01:07:00,250 ng prototype. 1628 01:07:00,250 --> 01:07:05,730 Ako pagpunta sa muling ipinapahayag ang aking kubo function na sa pamamagitan ng literal 1629 01:07:05,730 --> 01:07:07,180 pagkopya at paglalagay. 1630 01:07:07,180 --> 01:07:08,290 Aktwal na, na hindi literal. 1631 01:07:08,290 --> 01:07:13,060 Kaya literal ng pagkopya at pag-paste sa linya 15 1632 01:07:13,060 --> 01:07:15,160 hanggang sa itaas linya 6. 1633 01:07:15,160 --> 01:07:17,010 Hindi mahalaga kung ano ang linya na ito ay nagtatapos sa. 1634 01:07:17,010 --> 01:07:18,380 Ang mangyayari sa linya 4. 1635 01:07:18,380 --> 01:07:19,950 Ngunit ito ay bago pangunahing. 1636 01:07:19,950 --> 01:07:21,150 Ngunit mapansin ang pagkakaiba. 1637 01:07:21,150 --> 01:07:24,100 Dulo ng linya 4 sa na may semicolon, na nangangahulugan hey, 1638 01:07:24,100 --> 01:07:27,510 Kumalatong, dalhin ang aking salita para dito na may umiiral function na 1639 01:07:27,510 --> 01:07:31,350 tinatawag na kubo na tumatagal ng isang int at nagbabalik ng isang int. 1640 01:07:31,350 --> 01:07:33,020 Ngunit Hindi ako gonna sabihin sa iyo kung ano ito ay pa. 1641 01:07:33,020 --> 01:07:35,180 Lang alam na nangangako kong sabihin sa iyo sa kalaunan. 1642 01:07:35,180 --> 01:07:38,490 At sa katunayan, ngayon ito ay okay na ito ay down sa ibaba. 1643 01:07:38,490 --> 01:07:41,275 >> Kaya ito ay mas mahusay, dahil pagkatapos ay sa tuktok ng 1644 01:07:41,275 --> 01:07:44,240 ang iyong file, maaari mo lamang mabilis magsalita, sunud-sunod, isang linya 1645 01:07:44,240 --> 01:07:46,470 bawat isa, kung ano ang mga pangalan ng iyong mga function, kung ano ang kanilang 1646 01:07:46,470 --> 01:07:49,120 input ay, kung ano ang kanilang mga output. 1647 01:07:49,120 --> 01:07:52,210 At upang maging mas malinaw, input karaniwan ay nangangahulugan argumento o 1648 01:07:52,210 --> 01:07:54,110 parameter, kasingkahulugan. 1649 01:07:54,110 --> 01:07:56,890 Output ay nangangahulugan na ang return halaga, kung ano ang ginagawa nito 1650 01:07:56,890 --> 01:07:58,700 kamay bumalik sa akin. 1651 01:07:58,700 --> 01:08:03,420 Kaya sa kasong ito dito, kubo ay ipinahayag sa itaas, ngunit 1652 01:08:03,420 --> 01:08:06,940 tinukoy, kung hindi man kilala bilang ipinatupad, sa ibaba. 1653 01:08:06,940 --> 01:08:09,620 Kaya ngayon sabihin bumalik dito at muling patakbuhin ang. 1654 01:08:09,620 --> 01:08:13,430 Kaya ngayon hayaan mo akong magpatuloy at muling patakbuhin gumawa, patakbuhin muli pagdagdag. 1655 01:08:13,430 --> 01:08:16,500 At ngayon tila gumagana lamang fine. 1656 01:08:16,500 --> 01:08:19,450 Kaya ngayon maaari naming magpatuloy at magfa-factor out ang isang bagay tulad ng 1657 01:08:19,450 --> 01:08:23,720 Halimbawa ng beer sa ikaapat na bersyon na ito. 1658 01:08:23,720 --> 01:08:25,590 Kaya hayaan mag-scroll pababa sa akin dito. 1659 01:08:25,590 --> 01:08:28,149 At mapansin na ko uri ng kinuha ang araling ito sa puso ngayon lang. 1660 01:08:28,149 --> 01:08:31,140 Ang katotohanan na ako ay awit sa parehong saknong muli at 1661 01:08:31,140 --> 01:08:34,130 muli at muli, ang parehong linya ng koro sa kanta, nadama 1662 01:08:34,130 --> 01:08:36,439 bang bakit hindi ko salik na out sa isang function? 1663 01:08:36,439 --> 01:08:38,470 At sa katunayan, ito ay dapat isa ng motivations. 1664 01:08:38,470 --> 01:08:40,960 Bukod sa katotohanan na ang ibang tao sa mundo ay maaaring gusto 1665 01:08:40,960 --> 01:08:42,390 gumamit ng kubo function na - 1666 01:08:42,390 --> 01:08:44,560 na ang isang magandang dahilan sa salik ng isang bagay at isulat ang iyong 1667 01:08:44,560 --> 01:08:45,720 sariling pasadyang function na - 1668 01:08:45,720 --> 01:08:48,720 kung may isang tipak ng code sa iyong programa na lamang ginagawang 1669 01:08:48,720 --> 01:08:51,370 pangkonseptong kahulugan, na uri ng nais na bigyan ito ng isang 1670 01:08:51,370 --> 01:08:53,740 pangalan - tulad ng sa kasong ito, koro - 1671 01:08:53,740 --> 01:08:57,380 maaari mong isulat ang katulad na bilang isang hiwalay na function na. 1672 01:08:57,380 --> 01:08:59,560 Hindi mo upang isulat ang lahat sa pangunahing kung ito lamang 1673 01:08:59,560 --> 01:09:02,609 nararamdaman cleaner upang paghiwalayin ang mga ito at bigyan ito ng isang pangalan. 1674 01:09:02,609 --> 01:09:05,529 >> Kaya sa kasong ito dito, mapansin na mayroon akong isang komento nasa ibabaw 1675 01:09:05,529 --> 01:09:06,859 ito function na na lang SINGS tungkol sa 1676 01:09:06,859 --> 01:09:08,630 tinukoy na bilang ng mga bote. 1677 01:09:08,630 --> 01:09:10,609 Mapansin dito na hindi ko kailangang tumawag mga 1678 01:09:10,609 --> 01:09:12,520 bagay sa input at output. 1679 01:09:12,520 --> 01:09:16,090 Sa katunayan, ang oras na ito ko lang na tinatawag na ang aking input b para sa bote. 1680 01:09:16,090 --> 01:09:19,960 At mapansin dito, walang bisa nagmumungkahi kung ano? 1681 01:09:19,960 --> 01:09:21,309 Na koro - 1682 01:09:21,309 --> 01:09:22,660 Madla: Hindi ibalik ito. 1683 01:09:22,660 --> 01:09:23,870 David J. MALAN: Hindi nagbabalik ng halaga. 1684 01:09:23,870 --> 01:09:26,800 At sa katunayan, function ay hindi upang bumalik halaga. 1685 01:09:26,800 --> 01:09:28,060 Lamang nila maaaring gawin ang isang bagay. 1686 01:09:28,060 --> 01:09:30,270 Maaari silang magkaroon ng kung ano ay tinatawag na epekto, na sa ganitong 1687 01:09:30,270 --> 01:09:33,109 kaso lamang ang isang buong grupo ng mga pag-print sa screen. 1688 01:09:33,109 --> 01:09:36,580 Kaya mapapansin na ang code na ito sa dito, ako literal lamang nakaagaw mula 1689 01:09:36,580 --> 01:09:37,680 ang nakaraang halimbawa. 1690 01:09:37,680 --> 01:09:39,930 Ang pagkakaiba lamang ay sa halip na gamitin i bilang aking 1691 01:09:39,930 --> 01:09:42,890 variable, ngayon ako gamit b bilang aking variable. 1692 01:09:42,890 --> 01:09:45,880 Kaya Mayroon akong b down na dito, mayroon akong b down na dito, mayroon akong b 1693 01:09:45,880 --> 01:09:47,109 minus 1 down na dito. 1694 01:09:47,109 --> 01:09:49,279 Ngunit code ay eksaktong kapareho. 1695 01:09:49,279 --> 01:09:52,529 Ngunit lamang upang ipakita sa iyo ngayon kung paano namin gamitin ito, hayaan mo akong umalis 1696 01:09:52,529 --> 01:09:56,780 magpatuloy at aktwal na baguhin ito sa isang para sa loop. 1697 01:09:56,780 --> 01:10:03,850 para sa (int i = n; i> n; i -). 1698 01:10:03,850 --> 01:10:06,230 >> Kaya ko ang ninakaw na mula sa aming nakaraang halimbawa. 1699 01:10:06,230 --> 01:10:08,970 Noong nakaraan, ito sa linya 37 Gusto ko Sinimulan na 1700 01:10:08,970 --> 01:10:10,640 awit na ito nakakainis na kanta. 1701 01:10:10,640 --> 01:10:15,810 Ngunit sa halip, lamang ako pagpunta sa ngayon tumawag ng koro ng i. 1702 01:10:15,810 --> 01:10:16,870 Tapos na. 1703 01:10:16,870 --> 01:10:20,260 Kaya ngayon sa bawat pag-ulit ng loop na ito, tawagan ko ito sa iba pang 1704 01:10:20,260 --> 01:10:22,220 function, koro, na nangyari ko na magsulat. 1705 01:10:22,220 --> 01:10:24,110 Hindi ito ay isinulat sa pamamagitan ng ibang tao taon na ang nakakaraan. 1706 01:10:24,110 --> 01:10:27,930 Ngunit koro, samantala, ay gumagamit ng printf i-print 1707 01:10:27,930 --> 01:10:29,840 ang mga apat na linya. 1708 01:10:29,840 --> 01:10:32,720 Ngunit ang katunayan na ako pagtawag koro muli at muli sa isang 1709 01:10:32,720 --> 01:10:35,900 loop ay nangangahulugan na ako pupunta upang makakuha ng, sa pinakadulo, ang 1710 01:10:35,900 --> 01:10:39,310 eksaktong parehong kanta bilang Mayroon akong sa gayon ay malayo. 1711 01:10:39,310 --> 01:10:42,130 Kaya sa maikling salita, ngayon kung tiningnan ko sa aking code, kahit na 1712 01:10:42,130 --> 01:10:44,240 pagtakbo ito ay katumbas, mapapansin na ito 1713 01:10:44,240 --> 01:10:46,020 simula upang makakuha ng mas nababasa. 1714 01:10:46,020 --> 01:10:48,410 Hindi ko eksaktong alam kung paano GetInt 1715 01:10:48,410 --> 01:10:49,250 ay ipinatupad. 1716 01:10:49,250 --> 01:10:52,050 Lantaran, hindi ko alam kung paano koro ay ipinatupad. 1717 01:10:52,050 --> 01:10:52,970 Ngunit hindi ito mahalaga sa akin. 1718 01:10:52,970 --> 01:10:55,620 Wala akong pakialam, dahil ngayon ang maaari kong pag-uri-uriin ng, bilang isang tao, basahin 1719 01:10:55,620 --> 01:10:57,050 ito mula tuktok hanggang ibaba. 1720 01:10:57,050 --> 01:10:59,950 At dahil ang mga function ay pinangalanan ayon sa kung ano ang kanilang 1721 01:10:59,950 --> 01:11:02,910 gawin, ang aking code ay nagiging nababasa. 1722 01:11:02,910 --> 01:11:05,190 At bilang aming mga programa na makakuha ng mas kumplikadong - 1723 01:11:05,190 --> 01:11:07,220 sa pamamagitan ng pagtatapos sa semestre, makikita mo ang pagsusulat ng mga daan-daang ng mga linya 1724 01:11:07,220 --> 01:11:10,970 ng code sa mga wika tulad ng PHP at JavaScript at ang mga tulad ng - 1725 01:11:10,970 --> 01:11:13,550 makikita mo na ito kaya mas madali kaysa upang subaybayan ang mga 1726 01:11:13,550 --> 01:11:14,080 kung ano ang nagawa mo na. 1727 01:11:14,080 --> 01:11:15,810 At kapag sinimulan mo ang pakikipagtulungan sa mga kaibigan o 1728 01:11:15,810 --> 01:11:19,010 mga kasosyo o mga kasamahan, magagawa mong upang isulat ang higit pa 1729 01:11:19,010 --> 01:11:22,910 napakalaking programa sa pamamagitan ng simula sa ehersisyo ang mga pangunahing 1730 01:11:22,910 --> 01:11:23,990 gusali bloke. 1731 01:11:23,990 --> 01:11:25,550 >> Kaya may na sinabi, bakit hindi kami tatawag sa isang araw? 1732 01:11:25,550 --> 01:11:27,190 At kami ay nakikita mo sa Miyerkules. 1733 01:11:27,190 --> 01:11:33,611 [Palakpakan]