1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] DAVID J. Malan: Në rregull, kjo është CS50, dhe ky është 2 00:00:11,630 --> 00:00:14,790 fillimin e javës së dytë. 3 00:00:14,790 --> 00:00:16,300 Falemnderit. 4 00:00:16,300 --> 00:00:19,000 Le të fillojmë këtu me një telefonatë. 5 00:00:19,000 --> 00:00:30,005 Unë jam gati për të thirrni 617-bug-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: Kjo është CS50. 7 00:00:31,230 --> 00:00:33,930 Për Transferim Boy, shtypni 1. 8 00:00:33,930 --> 00:00:36,660 Të fillojë gjatë, shtypni 9. 9 00:00:36,660 --> 00:00:38,180 DAVID J. Malan: Pra, ai tha për Boy anijes, shtyp 1. 10 00:00:38,180 --> 00:00:41,560 Pra, ne jemi duke shkuar për shtyp 1. 11 00:00:41,560 --> 00:00:43,230 CS50: Cila është origjina juaj? 12 00:00:43,230 --> 00:00:45,340 Për kuadrat, shtypni 1. 13 00:00:45,340 --> 00:00:47,080 Mather, shtypni 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, shtypni 3. 15 00:00:49,240 --> 00:00:51,280 Lamont, shtypni 4. 16 00:00:51,280 --> 00:00:53,210 Mem Hall, shtypni 5. 17 00:00:53,210 --> 00:00:55,660 Të fillojë gjatë, shtypni 0. 18 00:00:55,660 --> 00:00:59,590 DAVID J. Malan: Ne do të shtypni 1 për kuadrat. 19 00:00:59,590 --> 00:01:03,610 CS50: anijes Next lë këtë shumë minuta në PD 01:10 dhe 20 00:01:03,610 --> 00:01:09,820 pastaj në 1:20, 1:30, 1:40. 21 00:01:09,820 --> 00:01:12,030 Kjo është CS50. 22 00:01:12,030 --> 00:01:15,570 >> DAVID J. Malan: Pra, ky është zëri CS50 së. 23 00:01:15,570 --> 00:01:18,030 Dhe kjo është një shembull i llojet e projekteve përfundimtare, për 24 00:01:18,030 --> 00:01:19,500 shembull, ju mund të kafshoj drejt 25 00:01:19,500 --> 00:01:20,600 në fund të semestrit. 26 00:01:20,600 --> 00:01:23,840 Për shembull, që shuttleboy.cs50.net ekziston - 27 00:01:23,840 --> 00:01:28,200 në fakt një projekt që kam parë shkroi pas marrjes CS51 28 00:01:28,200 --> 00:01:29,740 mbrapa kur unë isha një universitare. 29 00:01:29,740 --> 00:01:32,250 Dhe këtu ishte frymëzim prapa atëherë, të gjithë ata kishin qenë 30 00:01:32,250 --> 00:01:34,320 të shtypura oraret e autobusëve anijes, dhe nuk kishte 31 00:01:34,320 --> 00:01:35,970 Nocioni i shikuar gjërat online. 32 00:01:35,970 --> 00:01:38,730 Dhe kështu që unë lloj i pëllumb në një fundjavë, derdhur përmes 33 00:01:38,730 --> 00:01:41,460 shtypura orarin, dhe ported atë në një program kompjuterik. 34 00:01:41,460 --> 00:01:43,790 Në atë kohë, programi kompjuterik ka ndodhur të jetë e shkruar 35 00:01:43,790 --> 00:01:47,110 në C. Dhe ju të vërtetë vrapoi atë nga Boy anijes shtypur në një 36 00:01:47,110 --> 00:01:48,600 keq shpejtë si ne kemi qenë bërë deri tani. 37 00:01:48,600 --> 00:01:50,450 Por me kalimin e viteve, ajo evoluar në një çast 38 00:01:50,450 --> 00:01:51,390 mesazheve bot. 39 00:01:51,390 --> 00:01:53,970 Është evoluar më shumë kohët e fundit në këtë faqe interneti, në një 40 00:01:53,970 --> 00:01:57,720 SMS-bazuar mjet, si dhe në këtë mjet zë-bazuar. 41 00:01:57,720 --> 00:02:00,170 Dhe kjo është për të lënë të kuptohet në llojet e gjërave që ju mund të 42 00:02:00,170 --> 00:02:02,380 bëni për veten tuaj deri në fund të semestrit së. 43 00:02:02,380 --> 00:02:05,490 >> Për shembull, atje, versioni i SMS Boy anijes ndodh 44 00:02:05,490 --> 00:02:06,510 për të vepruar si më poshtë. 45 00:02:06,510 --> 00:02:10,880 Nëse, në telefonin tuaj celular, ju dërgoni një mesazh me tekst në 41.411 dhe 46 00:02:10,880 --> 00:02:14,300 pastaj dërgoni sboy veçantë simbol, për Boy anijes, 47 00:02:14,300 --> 00:02:18,350 pasuar nga A dhe B, ku A është një origjine dhe B është një 48 00:02:18,350 --> 00:02:19,070 destinacion - 49 00:02:19,070 --> 00:02:21,030 për shembull, Boylston Space Quad - 50 00:02:21,030 --> 00:02:23,330 çfarë ju duhet të merrni përsëri brenda disa sekondave është një tekst 51 00:02:23,330 --> 00:02:25,820 mesazh nga Boy anijes thënë saktësisht se kur 52 00:02:25,820 --> 00:02:28,990 anijet e ardhshme janë, nga ajo pika A do të qe 53 00:02:28,990 --> 00:02:29,640 Pika B. 54 00:02:29,640 --> 00:02:32,510 Dhe ky është një shembull shumë të përgjithshme të asaj që është njohur si 55 00:02:32,510 --> 00:02:33,920 duke përdorur një API. 56 00:02:33,920 --> 00:02:36,930 >> Kështu për shembull, kjo këtu është vetëm shuttleboy.cs50.net, 57 00:02:36,930 --> 00:02:39,300 aktuale web-based mishërimi i kësaj. 58 00:02:39,300 --> 00:02:42,480 Por të dhënat që e nënvizon këtë dhe të tjera Apps që CS50 59 00:02:42,480 --> 00:02:45,560 ka zhvilluar të gjithë janë të ekspozuar për të gjithë këtu në formë 60 00:02:45,560 --> 00:02:49,340 të TV, interfaces programimit aplikimit. 61 00:02:49,340 --> 00:02:52,220 Dhe kjo është vetëm një mënyrë e sofistikuar për të thënë se njerëz si ne në 62 00:02:52,220 --> 00:02:56,010 Interneti dhe të tjerët kanë kaluar disa kohë duke krijuar 63 00:02:56,010 --> 00:02:59,970 softuer që ju mund të përdorni në mënyrë që të kap të dhënat nga ne dhe 64 00:02:59,970 --> 00:03:02,510 pastaj të ndërtuar aplikime tuaja në krye 65 00:03:02,510 --> 00:03:03,840 e asaj të dhënave. 66 00:03:03,840 --> 00:03:06,610 Kështu për shembull, ky djalë Shuttle API faqe këtu, i cili 67 00:03:06,610 --> 00:03:09,390 ndodh të jetë në manualin CS50, në thelb dokumentet 68 00:03:09,390 --> 00:03:13,080 si ju mund të shkoni në lidhje kërkuar CS50 servera për të dhëna. 69 00:03:13,080 --> 00:03:16,240 Për shembull, nëse ju jeni të njohur me CSV fotografi, presje 70 00:03:16,240 --> 00:03:18,940 ndarë vlerat, këto janë vetëm lloj të shpejtë dhe të pista 71 00:03:18,940 --> 00:03:20,310 Excel-si fotografi. 72 00:03:20,310 --> 00:03:23,110 Kështu që ju mund të kërkoni Boy anijes për të gjithë të dhënat mbi të gjitha të 73 00:03:23,110 --> 00:03:25,090 shtëpitë dhe koordinon GPS e tyre, dhe ju do të merrni 74 00:03:25,090 --> 00:03:27,300 prapa, në thelb, një spreadsheet si kjo që 75 00:03:27,300 --> 00:03:30,820 atëherë ju mund të lexoni në një program nga mesi juaj dhe pastaj 76 00:03:30,820 --> 00:03:33,250 gjenerojnë rezultate, si Boy anijes vetë 77 00:03:33,250 --> 00:03:34,160 ndodh të jetë bërë. 78 00:03:34,160 --> 00:03:37,030 Për ata më të njohur, përfaqësitë më moderne të dhënave 79 00:03:37,030 --> 00:03:39,420 përfshijnë JSON, simbol JavaScript Object. 80 00:03:39,420 --> 00:03:40,620 Diçka do të kthehet tek ju në drejtim të 81 00:03:40,620 --> 00:03:41,720 në fund të semestrit. 82 00:03:41,720 --> 00:03:45,440 >> Por përsëri, kjo është vetëm një nga disa prej tyre CS50 TV-së. 83 00:03:45,440 --> 00:03:48,320 Dhe gjëja më emocionuese është tani, këto ditë, Facebook dhe 84 00:03:48,320 --> 00:03:51,110 Twitter dhe Google dhe shumë e shumë çdo faqen e internetit të njohura nga 85 00:03:51,110 --> 00:03:54,130 ka ka disa lloj API, që do të thotë në qoftë se ju lexoni 86 00:03:54,130 --> 00:03:56,620 Dokumentacioni në faqen e internetit e tyre, ju regjistroheni për një 87 00:03:56,620 --> 00:03:59,980 llogari, atëherë ju mund të filloni të shkruani software në krye të 88 00:03:59,980 --> 00:04:03,680 çfarëdo mjete ose të dhëna që kompania ka ofron. 89 00:04:03,680 --> 00:04:06,210 Dhe kështu një nga miqtë tanë të mësimdhënies vet nja dy vjet mbrapa 90 00:04:06,210 --> 00:04:07,620 shkroi një version të Mac këtë. 91 00:04:07,620 --> 00:04:10,990 Pra, në linkun e titulluar Mac këtu në të majtë të lartë, ju mund të vërtetë 92 00:04:10,990 --> 00:04:13,940 shkarkoni një widget Mac OS që shkon në Mac tuaj për të bërë të 93 00:04:13,940 --> 00:04:15,040 njëjtat lloje të gjërave. 94 00:04:15,040 --> 00:04:17,970 Pra, kjo është e gjitha në lidhje me ndërtimin në krye të të dhënave përcakton si këto. 95 00:04:17,970 --> 00:04:21,839 Por më shumë se drejt përfundimit të semestrit. 96 00:04:21,839 --> 00:04:25,780 >> Pra, le të zhyten në të vërtetë të shpejtë me një bug, vetëm për të marrë lloj 97 00:04:25,780 --> 00:04:27,990 gjëra të ngrohur deri sot, dhe mendoj se përsëri në disa nga 98 00:04:27,990 --> 00:04:29,660 gjërat që ne shikuar në javën e fundit. 99 00:04:29,660 --> 00:04:32,840 Në veçanti, më lejoni të shkoj përpara dhe tërheq lart, të themi, 100 00:04:32,840 --> 00:04:34,080 ky shembull këtu. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, kjo është në dispozicion në faqen e internetit të kursit, nëse ju do të 102 00:04:37,500 --> 00:04:40,250 si për ta shkarkuar atë dhe thes rreth vetes. 103 00:04:40,250 --> 00:04:43,520 Por le të zoom në këtu në këtë program mjaft të shkurtër, dhe vetëm 104 00:04:43,520 --> 00:04:46,550 një super-fast radhitje e disa prej blloqeve të ndërtimit themelore që 105 00:04:46,550 --> 00:04:48,880 ne me të vërtetë janë vetëm do të fillojë të marrë për të dhënë. 106 00:04:48,880 --> 00:04:51,860 >> Pra stuff blu, në vija 1 deri 9, janë vetëm 107 00:04:51,860 --> 00:04:53,670 Pyetjet softball. 108 00:04:53,670 --> 00:04:54,590 Pra, këto janë vetëm komente. 109 00:04:54,590 --> 00:04:56,230 Ata nuk kanë asnjë kuptim funksional. 110 00:04:56,230 --> 00:04:58,460 Por ata janë komente në kuptimin që ata janë vëren se 111 00:04:58,460 --> 00:05:02,010 Unë, njerëzor, bërë për veten time kështu që në leksion dhe pas 112 00:05:02,010 --> 00:05:04,340 leksion, unë në fakt mund të mbani mend se çfarë ky program 113 00:05:04,340 --> 00:05:07,120 bën pa pasur nevojë për të lexuar nëpërmjet saj rresht pas rreshti dhe 114 00:05:07,120 --> 00:05:08,990 rikrijimin e historisë në mendjen time. 115 00:05:08,990 --> 00:05:11,000 Për më tepër, në qoftë se unë dorë këtë program për dikë tjetër si 116 00:05:11,000 --> 00:05:14,420 ju, kjo është shumë më e qartë për ju, për shkak të komenteve si kjo, 117 00:05:14,420 --> 00:05:16,680 çfarë programi është në të vërtetë duke bërë, ose të paktën se çfarë 118 00:05:16,680 --> 00:05:18,210 Programi është menduar të jetë bërë. 119 00:05:18,210 --> 00:05:20,760 Nëse është apo nuk është e saktë është një tjetër çështje krejtësisht. 120 00:05:20,760 --> 00:05:25,040 Tani, në C, me multi-line komente, kujtojmë se në linjë 121 00:05:25,040 --> 00:05:27,880 një këtu është simbol magjik, / *. 122 00:05:27,880 --> 00:05:30,380 Kjo do të thotë këtu vjen fillimin e një koment. 123 00:05:30,380 --> 00:05:34,560 Dhe asgjë tjetër çështje deri sa të arrijë në fund Terminator, 124 00:05:34,560 --> 00:05:36,700 cila është * /, kundërta. 125 00:05:36,700 --> 00:05:39,120 Pra, fakti që unë kam 80-disa yjeve të çuditshme këtu nga 126 00:05:39,120 --> 00:05:41,550 majta në të djathtë është me të vërtetë vetëm një detaj estetik. 127 00:05:41,550 --> 00:05:43,370 Ajo nuk ka kuptim funksional. 128 00:05:43,370 --> 00:05:44,490 >> Tani se si për linjë 11? 129 00:05:44,490 --> 00:05:46,940 Çfarë do të bëni këtë në kushtet e laik? 130 00:05:51,560 --> 00:05:52,540 Çfarë është ajo? 131 00:05:52,540 --> 00:05:54,280 Audienca: Përfshin standardin. 132 00:05:54,280 --> 00:05:54,740 DAVID J. Malan: OK, i mirë. 133 00:05:54,740 --> 00:05:57,500 Pra, ajo përfshin bibliotekën stdio.h. 134 00:05:57,500 --> 00:05:58,230 Pra, çfarë do të thotë kjo? 135 00:05:58,230 --> 00:06:01,570 E pra, brenda kësaj dosje, stdio.h, janë një bandë e tërë e 136 00:06:01,570 --> 00:06:03,320 Deklaratat funksion - 137 00:06:03,320 --> 00:06:05,290 që është, kodin që dikush tjetër ka shkruar. 138 00:06:05,290 --> 00:06:08,160 Dhe një shembull i përsosur i një funksion që është deklaruar në 139 00:06:08,160 --> 00:06:10,250 stdio.h është - 140 00:06:10,250 --> 00:06:11,980 që të pëzgjedhur nga tani? 141 00:06:11,980 --> 00:06:14,300 Pra printf, një nga ato më të zakonshme për të përdorur, sigurisht 142 00:06:14,300 --> 00:06:15,840 më herët, nga se biblioteka është atje. 143 00:06:15,840 --> 00:06:19,290 Nëse unë përjashtojë atë linjë të kodit, tingëllimë do të bërtas 144 00:06:19,290 --> 00:06:22,550 në mua diçka në lidhje me përdorimin e një simbol palajmëruar. 145 00:06:22,550 --> 00:06:24,930 Diçka padeklaruar është ndoshta fjalen, sepse 146 00:06:24,930 --> 00:06:27,770 ne nuk kemi informuar atë përpilues printf duket 147 00:06:27,770 --> 00:06:29,230 si nëse ne të përfshijë atë linjë. 148 00:06:29,230 --> 00:06:31,830 Dhe më poshtë në Tokë, me të vërtetë, ajo që është thënë është linjë 149 00:06:31,830 --> 00:06:34,890 hapur këtë dosje, stdio.h, kudo që ai është në server të 150 00:06:34,890 --> 00:06:38,200 hard drive, hard drive ose aplikim, dhe copy-paste se 151 00:06:38,200 --> 00:06:40,240 ka të drejtë në dosjen time, pa e mia 152 00:06:40,240 --> 00:06:41,730 pasur nevojë për të bërë këtë me dorë. 153 00:06:41,730 --> 00:06:44,420 >> Tani, pasi ne të merrni këtu poshtë në kryesor, para se të gjatë ne do të fillojnë 154 00:06:44,420 --> 00:06:46,900 ngacmim përveç asaj int dhe çfarë është e pavlefshme. 155 00:06:46,900 --> 00:06:48,430 Por tani për tani, le të shikojmë në tre linja 156 00:06:48,430 --> 00:06:50,350 brenda 15 nëpërmjet 17. 157 00:06:50,350 --> 00:06:52,250 Kjo këtu unë pretendojnë si buggy. 158 00:06:52,250 --> 00:06:54,900 Linja 7 në komentet e mia thotë: "Duhet të shtypura 10 159 00:06:54,900 --> 00:06:59,410 asterisks, por nuk ka. "Pse e bën këtë jo të shtypura, në fakt, 160 00:06:59,410 --> 00:07:01,097 10 yjet e tilla? 161 00:07:01,097 --> 00:07:02,347 Audienca: [padëgjueshme]. 162 00:07:05,210 --> 00:07:05,800 DAVID J. Malan: Pikërisht. 163 00:07:05,800 --> 00:07:08,720 Pra, vini re se ne jemi duke filluar për të numëruar nga 0. 164 00:07:08,720 --> 00:07:10,780 Dhe kjo është në fakt një konventë në programimin dhe 165 00:07:10,780 --> 00:07:13,230 shkenca kompjuterike në përgjithësi, duke filluar për të numëruar 166 00:07:13,230 --> 00:07:14,610 nga 0 në vend të 1. 167 00:07:14,610 --> 00:07:16,690 Dhe kjo me të vërtetë vetëm rrjedh nga fakti që, për 168 00:07:16,690 --> 00:07:18,940 shembull, kur ne kishim tetë njerëz deri në fazën, kur 169 00:07:18,940 --> 00:07:20,680 askush nuk ishte ngritur duart e tyre, ata ishin 170 00:07:20,680 --> 00:07:22,340 të gjitha zero në mënyrë efektive. 171 00:07:22,340 --> 00:07:24,260 Dhe kështu kjo është vetëm një lloj konvente kompjuter kështu, 172 00:07:24,260 --> 00:07:26,030 Prandaj, për të filluar numërimin nga 0. 173 00:07:26,030 --> 00:07:29,130 Nëse kjo është numri më i vogël që ju mund të përfaqësojnë në binar. 174 00:07:29,130 --> 00:07:32,270 >> Pra, këtu kemi filluar Initializing i të 0. 175 00:07:32,270 --> 00:07:34,230 Ne kemi vendosur i barabartë me 0. 176 00:07:34,230 --> 00:07:37,780 Por pastaj kam bërë këtë gabim këtu, duke thënë se i është më pak se ose e 177 00:07:37,780 --> 00:07:38,820 barabartë me 10. 178 00:07:38,820 --> 00:07:41,700 Por në qoftë se ju mendoni që përmes, në qoftë se unë të fillojë në 0 dhe pastaj do të shkoj 179 00:07:41,700 --> 00:07:46,410 deri në 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, unë jam në të vërtetë do të 180 00:07:46,410 --> 00:07:49,980 shtypura nga 11 yjet në ekran, sepse unë kam shkuar deri 181 00:07:49,980 --> 00:07:52,410 për të dhe të barabartë me 10. 182 00:07:52,410 --> 00:07:55,090 Pra, fix lehtë këtu, atëherë është ajo? 183 00:07:55,090 --> 00:07:56,070 Audienca: [padëgjueshme]. 184 00:07:56,070 --> 00:07:57,350 DAVID J. Malan: Vetëm të ndryshojë atë për më pak se. 185 00:07:57,350 --> 00:07:59,700 Nëse jeni të vërtetë dëshironi, ju mund të bëni këtë. 186 00:07:59,700 --> 00:08:01,370 Por në përgjithësi, që është frowned. 187 00:08:01,370 --> 00:08:04,020 Dhe kështu duke filluar për të numëruar nga 0 është vetëm diçka që ju duhet 188 00:08:04,020 --> 00:08:05,510 zakonisht mësohen për të. 189 00:08:05,510 --> 00:08:07,810 Tani, ajo në lidhje me këtë konstrukt të tërë në vetvete? 190 00:08:07,810 --> 00:08:10,640 Kjo linjë 15 demarks një për lak. 191 00:08:10,640 --> 00:08:12,510 Pra, për të nuk është një funksion. 192 00:08:12,510 --> 00:08:13,640 Kjo është vetëm një deklaratë. 193 00:08:13,640 --> 00:08:16,180 Kjo është një konstrukt looping, ashtu siç e pamë në Scratch. 194 00:08:16,180 --> 00:08:17,600 Dhe ajo ka tre pjesë. 195 00:08:17,600 --> 00:08:19,740 Vini re se nuk është pjesa e parë për të 196 00:08:19,740 --> 00:08:21,350 të majtë e pikëpresje. 197 00:08:21,350 --> 00:08:24,200 Nuk është pjesa e mesme në mes të dy pikpresje. 198 00:08:24,200 --> 00:08:26,250 Dhe pastaj nuk ka djathtë pjesë të drejtë 199 00:08:26,250 --> 00:08:27,640 e pikëpresje dytë. 200 00:08:27,640 --> 00:08:31,822 Tani, i pari nga këto, çfarë? 201 00:08:31,822 --> 00:08:33,679 Audienca: [padëgjueshme]. 202 00:08:33,679 --> 00:08:34,270 DAVID J. Malan: Back atje? 203 00:08:34,270 --> 00:08:34,816 Po? 204 00:08:34,816 --> 00:08:35,980 Audienca: initialization. 205 00:08:35,980 --> 00:08:36,850 >> DAVID J. Malan: initialization. 206 00:08:36,850 --> 00:08:37,840 Pra, çfarë do të thotë kjo? 207 00:08:37,840 --> 00:08:40,690 Ne kemi deklaruar një ndryshore të quajtur i. 208 00:08:40,690 --> 00:08:43,840 Ajo është e tipit int, sepse unë kam specifikuar int. 209 00:08:43,840 --> 00:08:46,470 Dhe unë jam i Initializing në vlerë prej 0. 210 00:08:46,470 --> 00:08:47,730 Pra, çfarë është kjo me të vërtetë duke thënë? 211 00:08:47,730 --> 00:08:50,680 Është thënë në mënyrë efektive në kompjuter hej, më jepni të mjaftueshme 212 00:08:50,680 --> 00:08:53,660 , RAM memorie të mjaftueshme për të përshtaten një numër, dhe pastaj të vënë 213 00:08:53,660 --> 00:08:56,130 Numri 0 në atë copë të RAM. 214 00:08:56,130 --> 00:08:59,100 Dhe si një mënjanë, sa i madh është një int zakonisht, të paktën brenda 215 00:08:59,100 --> 00:09:00,280 e pajisjes? 216 00:09:00,280 --> 00:09:01,000 Audienca: 32 bit. 217 00:09:01,000 --> 00:09:01,670 DAVID J. Malan: 32 bit. 218 00:09:01,670 --> 00:09:04,890 Kështu që do të thotë të më jepni 32 bit, i njohur ndryshe si 4 bytes, 219 00:09:04,890 --> 00:09:07,250 dhe të vënë në vlerën 0 në të, e cila është shumë e lehtë, sepse 220 00:09:07,250 --> 00:09:09,110 ai thjesht do të thotë të vendosur të gjitha bit në 0. 221 00:09:09,110 --> 00:09:11,690 >> Deri tani, pjesa e dytë këtu është kusht. 222 00:09:11,690 --> 00:09:14,590 Dhe kushti, siç sugjeron emri, është ajo që është e kontrolluar 223 00:09:14,590 --> 00:09:18,100 përsëri dhe përsëri dhe përsëri për të parë nëse është e vërtetë apo e rreme. 224 00:09:18,100 --> 00:09:21,410 Pra, kjo është vetëm duke thënë të bëjë linjat e mëposhtme të kodit - 225 00:09:21,410 --> 00:09:23,950 domethënë Shkarko 16, sepse kjo është e vetmja prerë 226 00:09:23,950 --> 00:09:24,820 nën - 227 00:09:24,820 --> 00:09:26,980 për aq kohë sa unë është më pak se 10. 228 00:09:26,980 --> 00:09:30,520 Dhe pas çdo ripërsëritje përmes këtij loop, të bëjë 229 00:09:30,520 --> 00:09:33,840 incrementation, e cila në këtë rast është i + +. 230 00:09:33,840 --> 00:09:35,580 Tani, kjo nuk duhet të jetë i + +. 231 00:09:35,580 --> 00:09:37,610 Kjo mund të jetë i -. 232 00:09:37,610 --> 00:09:39,860 Por, nëse unë e bëri këtë, çfarë po ndodh sjellja 233 00:09:39,860 --> 00:09:41,370 të jetë i këtij programi? 234 00:09:41,370 --> 00:09:42,290 Audienca: Ajo do të jetë një lak pafund. 235 00:09:42,290 --> 00:09:44,060 DAVID J. Malan: Ajo do të jetë një lloj lak të pafund, 236 00:09:44,060 --> 00:09:47,720 nëse ne të merrni me fat, pasi 2 miliardë negativ apo më shumë. 237 00:09:47,720 --> 00:09:51,320 Ndoshta gjërat do të përfundojë rreth, vetëm nga natyra e fundme 238 00:09:51,320 --> 00:09:53,930 Numri i bit që ne kemi alokuar për një int. 239 00:09:53,930 --> 00:09:56,270 Por kjo me siguri do të iterate më shumë se 10 dhe 240 00:09:56,270 --> 00:09:58,630 sigurisht më shumë se 11 herë këtu. 241 00:09:58,630 --> 00:10:02,240 >> Dhe tani, ashtu si një mënjanë, e kupton se i + + dhe unë - 242 00:10:02,240 --> 00:10:04,420 janë me të vërtetë vetëm sheqer sintaksore. 243 00:10:04,420 --> 00:10:07,210 Kjo është vetëm simbol stenografi për atë që është pak më shumë 244 00:10:07,210 --> 00:10:08,720 shkruar shprehimisht si vijon: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 Kjo është identike me i + +. 247 00:10:13,460 --> 00:10:15,860 Ajo vetëm lloj i duket prettier të them unë + +. 248 00:10:15,860 --> 00:10:17,490 Kjo është më e ngjeshur, më i lexueshëm. 249 00:10:17,490 --> 00:10:19,030 Dhe kështu shumica e njerëzve bëjnë këtë vend. 250 00:10:19,030 --> 00:10:21,840 Por kjo është identike funksionalisht të 251 00:10:21,840 --> 00:10:22,900 ajo që ne vetëm e pa. 252 00:10:22,900 --> 00:10:27,770 Pra me pak fjalë, doze këtu është vetëm për të thënë iterate i 253 00:10:27,770 --> 00:10:30,690 nga 0 të gjithë rrugën deri në më pak se 10. 254 00:10:30,690 --> 00:10:32,700 Dhe pastaj ne do të vërtetë të marrë 10 yje. 255 00:10:32,700 --> 00:10:33,430 >> Pra, le të provoni këtë. 256 00:10:33,430 --> 00:10:35,310 Më lejoni të hapur të terminalit në fund. 257 00:10:35,310 --> 00:10:37,420 Më lejoni të shkoj në directory se ky është in 258 00:10:37,420 --> 00:10:40,030 Dhe unë jam duke shkuar për të hartuar atë me dorë me tingëllimë për tani. 259 00:10:40,030 --> 00:10:44,880 Dhe unë jam duke shkuar për të hartuar këtë si buggy1.c, Enter. 260 00:10:44,880 --> 00:10:50,280 Dhe tani buggy1, pse nuk ka ndonjë fotografi të tilla apo directory 261 00:10:50,280 --> 00:10:52,026 quajtur buggy1? 262 00:10:52,026 --> 00:10:53,850 Audienca: [padëgjueshme]. 263 00:10:53,850 --> 00:10:54,240 DAVID J. Malan: Po. 264 00:10:54,240 --> 00:10:55,420 Pra, ajo që quhet në të vërtetë a.out. 265 00:10:55,420 --> 00:10:57,480 Pra, nëse ju kujtohet vetëm të drejtuar tingëllimë, ku është tingëllimë 266 00:10:57,480 --> 00:11:00,420 përpilues, dhe ju nuk e specifikoni emrin që ju dëshironi për të 267 00:11:00,420 --> 00:11:03,550 dhënë për programin tuaj, ajo do të parazgjedhur për a.out. 268 00:11:03,550 --> 00:11:05,030 Pra, me të vërtetë, nëse unë bëj ls - 269 00:11:05,030 --> 00:11:05,510 oops. 270 00:11:05,510 --> 00:11:07,680 Dhe unë didn't - çështjen e zi-dhe-bardhë disa prej 271 00:11:07,680 --> 00:11:08,840 ju ballafaquar ka qenë fikse. 272 00:11:08,840 --> 00:11:10,670 Por më lejoni të bëjë këtë. 273 00:11:10,670 --> 00:11:14,570 Nuk kemi a.out në anën e majtë atje. 274 00:11:14,570 --> 00:11:17,360 Pra, ne kemi për të kandiduar a.out vend të buggy1. 275 00:11:17,360 --> 00:11:19,140 >> Pra më lejoni të shkoj përpara dhe të bëjë këtë. 276 00:11:19,140 --> 00:11:22,840 . A.out /, Enter. 277 00:11:22,840 --> 00:11:26,160 Dhe unë me sa duket nuk e ka bërë çfarë? 278 00:11:26,160 --> 00:11:26,620 Audienca: Save. 279 00:11:26,620 --> 00:11:27,390 DAVID J. Malan: Ruaj skedarin tim. 280 00:11:27,390 --> 00:11:31,520 Kështu që është zgjidhur lehtë nga goditjet e kontrollit, ose do të 281 00:11:31,520 --> 00:11:33,450 File, Save, si në shumicën e programeve. 282 00:11:33,450 --> 00:11:36,360 Më lejoni të shkoj këtu poshtë, qartë në ekran, e drejtuar atë përsëri. 283 00:11:36,360 --> 00:11:37,960 Dhe nuk ka ende një bug. 284 00:11:37,960 --> 00:11:41,618 Pra, çfarë po ndodh - 285 00:11:41,618 --> 00:11:42,980 Audienca: Ju nuk përpilojnë. 286 00:11:42,980 --> 00:11:44,040 DAVID J. Malan: Ah, mirë. 287 00:11:44,040 --> 00:11:45,010 Unë nuk përpilojnë atë. 288 00:11:45,010 --> 00:11:47,250 Si një idiot, unë jam duke kërkuar në kodin për të parë se çfarë është e gabuar. 289 00:11:47,250 --> 00:11:51,275 Pra buggy1.c tingëllimë, tani a.out. 290 00:11:51,275 --> 00:11:52,640 Dhe uh, ruhen. 291 00:11:52,640 --> 00:11:55,090 >> Pra, kjo duket pak e shëmtuar, sepse nuk ka asnjë linjë të re 292 00:11:55,090 --> 00:11:55,970 kudo në program. 293 00:11:55,970 --> 00:11:57,390 Por përsëri, kjo është vetëm një detaj estetik. 294 00:11:57,390 --> 00:11:59,430 Dhe të paktën në qoftë se ne numërimin e atyre jashtë, ne duhet 295 00:11:59,430 --> 00:12:01,160 tani e shohin 10 yjet tilla. 296 00:12:01,160 --> 00:12:03,260 E pra, çka në lidhje me këtë shembull të dytë të ngrohtë-up? 297 00:12:03,260 --> 00:12:07,750 Pra, në buggy2, unë pretendojnë se ky version, gjithashtu, do të shtypura 298 00:12:07,750 --> 00:12:10,110 10 yjet, e për çdo rresht. 299 00:12:10,110 --> 00:12:12,340 Pra këtë kohë, unë kam një karakter newline, vetëm për të bërë 300 00:12:12,340 --> 00:12:13,520 gjërat pak prettier. 301 00:12:13,520 --> 00:12:15,410 Por në vend që ajo që unë të marrë është kjo. 302 00:12:15,410 --> 00:12:19,590 Pra më lejoni të bëjë buggy2.c tingëllimë, Enter. 303 00:12:19,590 --> 00:12:21,790 Tani ajo është quajtur përsëri a.out. 304 00:12:21,790 --> 00:12:23,130 Enter. 305 00:12:23,130 --> 00:12:26,900 Unë shoh vetëm një linjë të re, vetëm linjë e fundit e re që shumë 306 00:12:26,900 --> 00:12:29,370 lëviz shpejtë time të vijë e ardhshëm. 307 00:12:29,370 --> 00:12:32,660 Dhe ende e qartë unë kam qenë shtypjen *, pastaj një linjë të re, 308 00:12:32,660 --> 00:12:33,990 *, Pastaj një linjë e re. 309 00:12:33,990 --> 00:12:35,490 Por ajo që është bug këtu? 310 00:12:35,490 --> 00:12:35,974 Po? 311 00:12:35,974 --> 00:12:37,224 Audienca: [padëgjueshme]. 312 00:12:39,850 --> 00:12:40,470 >> DAVID J. Malan: Pikërisht. 313 00:12:40,470 --> 00:12:44,110 Pra, ndryshe nga disa gjuhë, si Python, ku Dhëmbëzim 314 00:12:44,110 --> 00:12:46,030 vërtetë ka kuptimin funksional, në një 315 00:12:46,030 --> 00:12:47,150 Gjuha si C - 316 00:12:47,150 --> 00:12:49,140 si ne do të shohim, PHP, JavaScript - 317 00:12:49,140 --> 00:12:51,940 Dhëmbëzim është me të vërtetë vetëm për të mirën e njerëzve. 318 00:12:51,940 --> 00:12:55,690 Pra, fakti që unë kam prerë linjë 16 dhe 17 duket e madhe, 319 00:12:55,690 --> 00:12:57,530 por kjo nuk ka kuptim funksionale këtu. 320 00:12:57,530 --> 00:13:00,700 Nëse unë dua të dy linjave të ekzekutuar si pjesë e për 321 00:13:00,700 --> 00:13:05,140 loop, atëherë unë duhet të mbyllni ato në formatimin e teksteve kaçurrel duke e bërë këtë. 322 00:13:05,140 --> 00:13:08,540 Ju vetëm mund të prerë atë qoshe dhe heq formatimin e teksteve kaçurrel nëse 323 00:13:08,540 --> 00:13:10,036 çfarë është rasti? 324 00:13:10,036 --> 00:13:10,410 Audienca: Vetëm një linjë. 325 00:13:10,410 --> 00:13:11,130 DAVID J. Malan: Vetëm një linjë. 326 00:13:11,130 --> 00:13:15,280 Pra, kjo është vetëm një lloj lloj sintakse e bukur detaje në mënyrë që 327 00:13:15,280 --> 00:13:17,900 ju nuk e humbni kohën shkruar tre rreshta, dy prej të cilave janë 328 00:13:17,900 --> 00:13:20,040 formatimin e teksteve kaçurrel, vetëm për të shkruar një linjë të vetme të kodit. 329 00:13:20,040 --> 00:13:21,650 Por në qoftë se ju keni dy ose më shumë linja, ne 330 00:13:21,650 --> 00:13:22,860 me të vërtetë nevojë për të bërë këtë. 331 00:13:22,860 --> 00:13:24,210 >> Kështu që tani më lejoni të shpëtuar këtë. 332 00:13:24,210 --> 00:13:27,140 Më lejoni të shkoj përpara dhe të ri-drejtuar tingëllimë. 333 00:13:27,140 --> 00:13:31,375 Atëherë më lejoni përsëritje a.out, dhe tani unë të marrë ato një për çdo rresht. 334 00:13:31,375 --> 00:13:33,670 Tani, a.out përsëri është lloj i një emri memec për një program. 335 00:13:33,670 --> 00:13:37,500 Si mund të them tingëllimë të vërtetë të më jepni një emër file 336 00:13:37,500 --> 00:13:39,820 kjo është shumë përdorues-miqësor, si buggy2 vetë? 337 00:13:43,200 --> 00:13:44,466 Pak më qartë? 338 00:13:44,466 --> 00:13:45,220 Audienca: [padëgjueshme]. 339 00:13:45,220 --> 00:13:47,810 DAVID J. Malan: OK, kështu që unë në fakt mund të marrë shumë 340 00:13:47,810 --> 00:13:51,000 user-friendly shkurtore dhe vetëm shkruani bëjë buggy2. 341 00:13:51,000 --> 00:13:53,840 Unë nuk e specifikon. C në këtë rast, dhe hit Enter. 342 00:13:53,840 --> 00:13:58,530 Dhe çfarë bëjnë nuk është ajo harton buggy2.c për mua nga 343 00:13:58,530 --> 00:14:00,260 tingëllimë kërkuar për të bërë atë. 344 00:14:00,260 --> 00:14:05,100 Në mënyrë të veçantë, ajo e quan tingëllimë, ajo shkon tingëllimë duke përdorur mënyra më 345 00:14:05,100 --> 00:14:08,540 command-line argumente apo çelsin se unë vërtetë nevojë. 346 00:14:08,540 --> 00:14:11,270 Me kalimin e kohës, ne do të kthehen në atë që të gjithë e këtyre të ndryshme 347 00:14:11,270 --> 00:14:13,810 Shprehjet fshehta shkruar me vizë të thotë. 348 00:14:13,810 --> 00:14:16,910 Por tani për tani, kjo është vetëm duke kursyer më probleme të 349 00:14:16,910 --> 00:14:19,600 që të mbani mend dhe të kesh të tipit nga të gjithë ata 350 00:14:19,600 --> 00:14:21,150 Shprehjet ndryshme shkruar me vizë. 351 00:14:21,150 --> 00:14:23,240 Dhe kokë e saj në fund të fundit është 352 00:14:23,240 --> 00:14:25,900 se tani kam buggy2. 353 00:14:25,900 --> 00:14:27,480 Në qoftë se unë dua të bëj këtë me dorë, edhe pse, unë 354 00:14:27,480 --> 00:14:28,775 mund ta bëjë këtë në vend - 355 00:14:28,775 --> 00:14:34,110 tingëllimë-o buggy2 dhe pastaj buggy2.c. 356 00:14:34,110 --> 00:14:37,980 Dhe që do ngjashme jepni një skedar të quajtur buggy2. 357 00:14:37,980 --> 00:14:39,710 >> Pra me pak fjalë, është tingëllimë përpiluesit. 358 00:14:39,710 --> 00:14:43,080 Të bëjë është vetëm një mjet përdorues-miqësor që ne do të jetë duke përdorur më shumë 359 00:14:43,080 --> 00:14:44,420 dhe më shumë, për shkak se ajo vetëm fillon të 360 00:14:44,420 --> 00:14:47,330 thjeshtojë gjërat për ne. 361 00:14:47,330 --> 00:14:49,430 Dhe ne kthim 0, fundi. 362 00:14:49,430 --> 00:14:51,890 Tani për tani, vetëm për shkak se, por ne do të fillojnë ngacmim atë pjesë 363 00:14:51,890 --> 00:14:52,930 sot dhe të mërkurën. 364 00:14:52,930 --> 00:14:55,560 Çdo pyetje për ndonjë të këtij? 365 00:14:55,560 --> 00:14:56,450 Po? 366 00:14:56,450 --> 00:14:58,234 Audienca: [padëgjueshme] 367 00:14:58,234 --> 00:15:00,020 ls në kuotat atje? 368 00:15:00,020 --> 00:15:01,710 DAVID J. Malan: OK. 369 00:15:01,710 --> 00:15:05,880 Kur unë ls typed në thonjëza, që ishte bërë më pak magji 370 00:15:05,880 --> 00:15:07,160 prapa skenave për të rregulluar një bug. 371 00:15:07,160 --> 00:15:09,370 Kam harruar, si ne kemi qenë të thënë shumë nga ju në 372 00:15:09,370 --> 00:15:11,600 bordet diskutim, për të bërë - 373 00:15:11,600 --> 00:15:17,220 ne do të bëjmë këtë tani - sudo yum-y përditësim appliance50. 374 00:15:17,220 --> 00:15:19,790 Uh, kjo që është shkruar drejtë. 375 00:15:19,790 --> 00:15:23,240 Pra aplikim është si një sistem operativ. 376 00:15:23,240 --> 00:15:25,650 Është drejtimin e këtij sistemi operativ të quajtur Fedora. 377 00:15:25,650 --> 00:15:27,450 Dhe tani për shkak të lidhjes sime të ngadaltë të internetit, unë kam 378 00:15:27,450 --> 00:15:28,260 hosed me të vërtetë atë. 379 00:15:28,260 --> 00:15:31,620 Pra drejtimin përditësim sudo yum, si ne të ju tregojnë për të bërë në 380 00:15:31,620 --> 00:15:34,080 caktuar problemi, është në thelb si drejtimin përditësimet automatike 381 00:15:34,080 --> 00:15:35,420 në Mac ose Windows OS. 382 00:15:35,420 --> 00:15:37,280 Dhe arsyeja për këtë drejtimin në fillim shumë e 383 00:15:37,280 --> 00:15:39,640 set Problemi është sepse kur kemi krijuar pajisjen, unë 384 00:15:39,640 --> 00:15:42,480 messed up, dhe unë rastësisht bërë të gjitha programet tuaja të duken 385 00:15:42,480 --> 00:15:45,210 zezë në një ekran të zi, e cila është arsyeja pse ju nuk jeni duke parë ato 386 00:15:45,210 --> 00:15:45,860 by default. 387 00:15:45,860 --> 00:15:48,020 Por versioni i fundit i pajisjes fixes këtë. 388 00:15:48,020 --> 00:15:50,500 Dhe unë do të rregullojmë se gjatë pushimit dikur kam internet 389 00:15:50,500 --> 00:15:51,280 lidhjes. 390 00:15:51,280 --> 00:15:54,630 >> Kështu citon vetëm fsheh gabim time, shumë diskrete, 391 00:15:54,630 --> 00:15:55,730 me sa duket. 392 00:15:55,730 --> 00:15:56,980 Pyetje të tjera? 393 00:15:59,750 --> 00:16:00,668 Po? 394 00:16:00,668 --> 00:16:02,012 Audienca: Ku e bën të vijë nga? 395 00:16:02,012 --> 00:16:03,810 [E padëgjueshme] 396 00:16:03,810 --> 00:16:04,280 DAVID J. Malan: Pyetje e mirë. 397 00:16:04,280 --> 00:16:05,460 Ku e bën të vijë nga? 398 00:16:05,460 --> 00:16:09,390 Kjo është një program Linux që ka ekzistuar për shumë vite, gjatë 399 00:16:09,390 --> 00:16:10,570 para CS50. 400 00:16:10,570 --> 00:16:12,930 Dhe ajo vjen me një sistem operativ si Fedora. 401 00:16:12,930 --> 00:16:14,830 Kjo nuk vjen nga biblioteka CS50. 402 00:16:14,830 --> 00:16:17,560 Në fakt, të vetmet gjëra që vijnë nga biblioteka CS50 403 00:16:17,560 --> 00:16:20,470 deri më tani, që ne kemi parë, janë getString, GetInt, të gjithë 404 00:16:20,470 --> 00:16:25,550 ato Get funksionet, dhe vargu fjalë, dhe tek disa 405 00:16:25,550 --> 00:16:26,575 mase, fjala bool. 406 00:16:26,575 --> 00:16:29,180 Por ne do të bezdis se përveç kur zhyten në CS50 407 00:16:29,180 --> 00:16:30,580 aplikim vetë. 408 00:16:30,580 --> 00:16:32,820 >> Pra, po, një pyetje më shumë këtu. 409 00:16:32,820 --> 00:16:36,636 Audienca: Kur ju ka thënë të bëni dhe pastaj buggy, si e bën 410 00:16:36,636 --> 00:16:39,980 kompjuteri e di [padëgjueshme]? 411 00:16:39,980 --> 00:16:40,520 DAVID J. Malan: Pyetje e mirë. 412 00:16:40,520 --> 00:16:43,830 Kështu që kur ju drejtuar vetëm bëni buggy1 ose të bëjë buggy2, si 413 00:16:43,830 --> 00:16:45,220 bën e di? 414 00:16:45,220 --> 00:16:49,900 Pra by default, në qoftë se ju shkruani bëni buggy1, të bëjë duket për një 415 00:16:49,900 --> 00:16:52,330 file i quajtur buggy1.c. 416 00:16:52,330 --> 00:16:55,570 Dhe pastaj ajo ekzekuton komandat e duhura tingëllimë, 417 00:16:55,570 --> 00:17:00,380 duke mbizotërues dosjen e prodhimit të parazgjedhur quajtur a.out. 418 00:17:00,380 --> 00:17:03,670 Në fakt, nëse ne shikojmë se çfarë bëjnë, çfarë - 419 00:17:03,670 --> 00:17:04,839 le të lë këtë. 420 00:17:04,839 --> 00:17:09,530 Nëse ne shikojmë se çfarë të bëjë në fakt është bërë, bëjnë buggy2, 421 00:17:09,530 --> 00:17:10,470 kjo është tashmë deri në datën. 422 00:17:10,470 --> 00:17:13,020 Pra më lejoni të heq komandën rm, të 423 00:17:13,020 --> 00:17:14,319 Programi kam shkruar më parë. 424 00:17:14,319 --> 00:17:17,319 Shtypni Y-E-S ta konfirmoj që unë dua për të hequr atë. 425 00:17:17,319 --> 00:17:20,480 Nëse unë tani nuk bëjnë, vërejmë se në këtë linjë shumë të gjatë, 426 00:17:20,480 --> 00:17:22,980 nuk është kjo gjëja e fundit këtu,-o buggy2. 427 00:17:22,980 --> 00:17:26,959 Të gjithë bëjnë është duke bërë është duke kaluar këtë argument, në mënyrë që të flasin, të 428 00:17:26,959 --> 00:17:29,665 Tingëllimë, kështu që unë nuk duhet të shkruani atë vetë. 429 00:17:29,665 --> 00:17:32,660 >> Të gjithë të drejtë, kështu që një çift i shpejtë administrative 430 00:17:32,660 --> 00:17:33,470 Shpalljet. 431 00:17:33,470 --> 00:17:36,940 Kështu që për seksionet, e cila zyrtarisht filloi kjo vjen 432 00:17:36,940 --> 00:17:38,970 E diel, ju gjithmonë do të duan për të sjellë, në qoftë se 433 00:17:38,970 --> 00:17:40,120 ju keni një, një laptop. 434 00:17:40,120 --> 00:17:42,570 Nëse ju nuk keni një kompjuter portativ, nuk arrijnë te mua nga 435 00:17:42,570 --> 00:17:43,580 rënë një email. 436 00:17:43,580 --> 00:17:44,810 Dhe ne do të gjej një workflow. 437 00:17:44,810 --> 00:17:47,100 Çfarë në përgjithësi ju do të gjeni në seksionin është se ata janë pjesë e 438 00:17:47,100 --> 00:17:48,770 konceptuale, pjesa duart-në. 439 00:17:48,770 --> 00:17:52,190 Ne do të përdorim në mënyrë specifike seksionin e pyetjeve, pjesë e 440 00:17:52,190 --> 00:17:54,110 Set jave problem, të ecin nëpër disa nga 441 00:17:54,110 --> 00:17:55,820 Materiali konceptual nga leksion. 442 00:17:55,820 --> 00:17:57,480 Dhe kjo është e gjitha në grup problemeve aktuale. 443 00:17:57,480 --> 00:18:00,010 Dhe ne gjithashtu do të zhyten në disa duart-në aktivitete, ndonjëherë 444 00:18:00,010 --> 00:18:02,190 nga të cilat do të kërkohet që të dorëzohet, ndonjëherë i 445 00:18:02,190 --> 00:18:02,830 e cila nuk do të. 446 00:18:02,830 --> 00:18:04,630 Për shembull, këtë javë të parë, ata janë menduar vetëm si një 447 00:18:04,630 --> 00:18:05,780 të ngrohtë-up stërvitje. 448 00:18:05,780 --> 00:18:07,800 Dhe ju do të gjeni se këto probleme janë me të vërtetë vetëm se. 449 00:18:07,800 --> 00:18:10,220 Ata janë menduar të jetë mjaft i vogël, por jo domosdoshmërisht 450 00:18:10,220 --> 00:18:13,100 Programet e parëndësishme për të shkruar, që nuk janë domosdoshmërisht 451 00:18:13,100 --> 00:18:16,230 mundësitë emocionuese në vetvete, por janë të mira për 452 00:18:16,230 --> 00:18:19,620 praktikoni me sintaksë, me funksionet reja, në komoditetin e një 453 00:18:19,620 --> 00:18:21,900 seksion ku ju keni disa nga shokët e klasës tuaj paraqesin si 454 00:18:21,900 --> 00:18:22,870 edhe TF tuaj. 455 00:18:22,870 --> 00:18:26,210 >> Dhe çfarë ne do të bëjmë me kalimin e kohës është të përdorni një mjet të quajtur CS50 Spaces, 456 00:18:26,210 --> 00:18:28,940 ku në vend të vetëm duke përdorur aplikim CS50, ju do të 457 00:18:28,940 --> 00:18:32,450 në vend të shkoni në një faqe interneti në një shfletues, ku ju do të jetë në gjendje 458 00:18:32,450 --> 00:18:35,610 të shkruani kodin në një dritare të shfletuesit gjatë seksion. 459 00:18:35,610 --> 00:18:38,240 Dhe pastaj nëse ju zgjedhin, shokët tuaj mësimi pastaj mund të tregojë 460 00:18:38,240 --> 00:18:40,980 çfarëdo qoftë ajo është që ju jeni shtypur në ekranin tuaj në shfletuesin tuaj 461 00:18:40,980 --> 00:18:43,930 dritare deri në pjesën e përparme të klasës, qoftë anonime ose 462 00:18:43,930 --> 00:18:47,250 publikisht, në mënyrë që ai ose ajo pastaj mund të ecin me me 463 00:18:47,250 --> 00:18:50,080 shokët e klasës tuaj atë që ju bëri mirë, çfarë ju nuk bëni mirë. 464 00:18:50,080 --> 00:18:52,750 Dhe përsëri, pjesa tjetër e siguroi të gjithë kjo mund të jetë anonime bukur. 465 00:18:52,750 --> 00:18:54,410 Por kjo do të jetë një mundësi e mirë për më shumë 466 00:18:54,410 --> 00:18:56,810 interaktive se diçka si leksion lejon. 467 00:18:56,810 --> 00:18:58,910 >> Në ndërkohë, ne do të kemi këto gjëra quhet super 468 00:18:58,910 --> 00:19:01,610 seksione, të cilat janë fakultative, por janë të hapura për të gjithë në 469 00:19:01,610 --> 00:19:04,030 klasa, në mënyrë që ju mund ta bëni këtë shumë kolektivisht për 470 00:19:04,030 --> 00:19:05,190 Problemi vendosur një. 471 00:19:05,190 --> 00:19:06,010 Këtu është orari. 472 00:19:06,010 --> 00:19:08,870 Kjo është postuar edhe në faqen në cs50.net. 473 00:19:08,870 --> 00:19:10,850 Vini re se nuk do të jetë një hacker-e të Caktuar 474 00:19:10,850 --> 00:19:12,430 një pasdite nesër. 475 00:19:12,430 --> 00:19:15,460 Dhe ne do të filmojnë një sot dhe nesër dhe pas një ato 476 00:19:15,460 --> 00:19:16,720 online brenda 24 orëve. 477 00:19:16,720 --> 00:19:19,370 Pra, në qoftë se ju nuk mund të bëjë asnjë nga këto kohë, për t'u shqetësuar. 478 00:19:19,370 --> 00:19:22,720 Dhe përsëri, orari është në linjë tani në cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> Në kushtet e sectioning veten, ju duhet të keni marrë një 480 00:19:25,350 --> 00:19:28,520 email udhëzuar ju të shkoni në faqen e kursit për të gjetur 481 00:19:28,520 --> 00:19:29,610 nga seksionin tuaj. 482 00:19:29,610 --> 00:19:32,890 Nëse jeta ka ndryshuar dhe keni nevojë për të ndryshuar seksionin tuaj, 483 00:19:32,890 --> 00:19:33,560 nuk është një problem. 484 00:19:33,560 --> 00:19:37,900 Kthehu mbrapa në atë URL njëjtë, cs50.net/section, njëjës, 485 00:19:37,900 --> 00:19:40,090 dhe ju do të plotësoni formularin e ngjashme në mënyrë që ju mund të 486 00:19:40,090 --> 00:19:41,260 pastaj na japin preferencat tuaja. 487 00:19:41,260 --> 00:19:43,360 Dhe ne do të ndjekë deri nga fundi i javës se çfarë ne mund 488 00:19:43,360 --> 00:19:44,240 akomoduar. 489 00:19:44,240 --> 00:19:49,530 Javën e kaluar, kujtojmë se kemi propozuar përdorimin CS50 diskutuar, 490 00:19:49,530 --> 00:19:51,370 mjet Kursi së diskutim, në leksion. 491 00:19:51,370 --> 00:19:53,680 Pra, kemi pasur 40 pyetje që janë kërkuar dhe 492 00:19:53,680 --> 00:19:54,720 përgjigjur gjatë ligjëratës. 493 00:19:54,720 --> 00:19:56,280 Pra, ajo dukej për të punuar mirë, kështu që ne do të vazhdojmë 494 00:19:56,280 --> 00:19:57,180 duke u përpjekur për të bërë këtë. 495 00:19:57,180 --> 00:19:59,600 Nëse, gjatë ligjëratës, ju nuk vetëm ndjehen të ngritjes rehatshëm 496 00:19:59,600 --> 00:20:00,780 dora jote, nuk është një problem. 497 00:20:00,780 --> 00:20:04,640 Shko tek cs50.net/discuss, postoni atje, dhe një e mësimit tonë 498 00:20:04,640 --> 00:20:07,270 miqtë ose do të përgjigjem atë elektronike apo të rritur e tyre 499 00:20:07,270 --> 00:20:10,620 dorë në emër tuaj anonime për të kërkuar, në varësi 500 00:20:10,620 --> 00:20:12,470 nga natyra e çështjes. 501 00:20:12,470 --> 00:20:15,000 Dhe në drejtim të reagime, në përgjithësi do të jetë psets 502 00:20:15,000 --> 00:20:16,760 u kthye brenda një jave. 503 00:20:16,760 --> 00:20:19,080 Për shkak se ajo merr pak kohë për të arritur seksione 504 00:20:19,080 --> 00:20:22,430 ekuilibrit, të pset parë, 0 dhe 1, do të jetë pak 505 00:20:22,430 --> 00:20:24,130 vonuar si gjërat zgjidhur poshtë. 506 00:20:24,130 --> 00:20:27,130 Por, stay tuned për këtë në javët që do të vijnë. 507 00:20:27,130 --> 00:20:29,750 >> Të gjithë të drejtë, kështu që më lejoni të vënë në serioze tim 508 00:20:29,750 --> 00:20:31,040 zëri për vetëm një moment. 509 00:20:31,040 --> 00:20:32,690 Pra, kjo është në fakt një klimë të jetë interesante 510 00:20:32,690 --> 00:20:35,210 pasur këtë diskutim, ajo me të gjitha gjërat e tjera 511 00:20:35,210 --> 00:20:37,310 ndodh në to kampus të lidhura. 512 00:20:37,310 --> 00:20:40,220 Por CS50 ka siguri kishte historinë e saj të veçantë të kësaj 513 00:20:40,220 --> 00:20:43,360 temë, në sa më shumë si çdo vit, ky kurs, për shumë 514 00:20:43,360 --> 00:20:46,910 vjet, Ad-Boards afërsisht 3% e klasës. 515 00:20:46,910 --> 00:20:51,620 Këtë vit më i fundit, 2011, CS50 Ad-hipi 35 studentëve. 516 00:20:51,620 --> 00:20:54,120 Kjo nuk është, mendoj unë, për shkak të mungesës së qartësisë. 517 00:20:54,120 --> 00:20:56,760 Kuptojnë se në planin mësimor të kursit, nuk është një faqe e 518 00:20:56,760 --> 00:20:59,020 Deklarata shpjeguar ku linjat janë. 519 00:20:59,020 --> 00:21:01,350 Kjo deklaratë njëjtë përsëritet në çdo një nga 520 00:21:01,350 --> 00:21:03,070 Problemi i vendos në një faqe. 521 00:21:03,070 --> 00:21:05,760 >> Kështu që unë përmend këtë sot me të vërtetë vetëm për të bërë 522 00:21:05,760 --> 00:21:07,030 folks të ndërgjegjshëm për këtë. 523 00:21:07,030 --> 00:21:08,080 Dhe ne kemi provuar gjëra të ndryshme. 524 00:21:08,080 --> 00:21:10,630 Dhe çfarë kam menduar ne do të bëjmë sot është të marrë vetëm një moment për të 525 00:21:10,630 --> 00:21:13,830 vërtetë të shikojmë disa nga rastet e fundit që kanë dalë. 526 00:21:13,830 --> 00:21:16,160 Në vend se të mbajë këto sekrete si pista pak, në të vërtetë 527 00:21:16,160 --> 00:21:19,170 nxjerr në pah atë që studentët kanë bërë dhe se si kemi zbuluar 528 00:21:19,170 --> 00:21:21,630 atë dhe me të vërtetë se çfarë motivimi kryesor është për 529 00:21:21,630 --> 00:21:23,950 edhe duke pasur këtë bisedë. 530 00:21:23,950 --> 00:21:27,060 Pra, me tha se, linja thelb është kjo - 531 00:21:27,060 --> 00:21:29,200 per planin mësimor, ju jeni i mirëpritur, ju jeni të inkurajuar, për të 532 00:21:29,200 --> 00:21:30,210 bisedojnë me shokët e klasës. 533 00:21:30,210 --> 00:21:31,910 Kjo është tërë qëllimi i pasur këto bashkëpunues 534 00:21:31,910 --> 00:21:34,470 orarit të punës në Annenberg dhe njerëz inkurajuese për 535 00:21:34,470 --> 00:21:35,755 Projekti final për të punuar së bashku. 536 00:21:35,755 --> 00:21:38,590 Por vijë është tërhequr kur vjen koha për të vërtetë të shkruar 537 00:21:38,590 --> 00:21:39,790 zgjidhja tuaj përfundimtar. 538 00:21:39,790 --> 00:21:42,590 Duke folur në anglisht, krejtësisht gjobë, duke folur në kodin pseudo, 539 00:21:42,590 --> 00:21:43,400 krejtësisht gjobë. 540 00:21:43,400 --> 00:21:46,340 Emailing një shok klase pset tuaj, i lënë ata të duken mbi 541 00:21:46,340 --> 00:21:48,610 ekran si duart vazhdojnë shtypur, 542 00:21:48,610 --> 00:21:50,110 mbi të linjës si edhe. 543 00:21:50,110 --> 00:21:52,250 Mos shikoni në planin mësimor për linjat e veçanta. 544 00:21:52,250 --> 00:21:55,850 >> Por vetëm për një tabllo se si kjo është për fat të keq një 545 00:21:55,850 --> 00:21:58,370 realitet, e kuptojnë se janë faqet e internetit atje që 546 00:21:58,370 --> 00:22:01,490 kemi zgjidhje nga kjo klasë klasa dhe shumë të tjera. 547 00:22:01,490 --> 00:22:04,940 Fakti që ju ose rreth 3% nga ju e dini se kjo ekziston 548 00:22:04,940 --> 00:22:07,240 do të thotë se ne e dimë se kjo ekziston. 549 00:22:07,240 --> 00:22:09,340 Fakti që janë faqet e internetit si kjo ku ju 550 00:22:09,340 --> 00:22:11,540 mund të paguajnë dikë që të bëjë në fakt përcakton tuaj problem - kjo ishte 551 00:22:11,540 --> 00:22:13,450 një rast aktual që doli vitin e kaluar. 552 00:22:13,450 --> 00:22:15,790 Kjo është një website të quajtur odesk.com. 553 00:22:15,790 --> 00:22:20,090 Dhe Tim ishte emri i personit i cili ishte këtu postimin në 554 00:22:20,090 --> 00:22:24,580 Kjo faqe e internetit dhe e pyeti dikë për të bërë pset tij 7 në 555 00:22:24,580 --> 00:22:25,570 Në këtë rast të veçantë. 556 00:22:25,570 --> 00:22:28,350 E pra, është shumë e odesk.com Google-gjendje, dhe ne jemi shumë të 557 00:22:28,350 --> 00:22:30,310 shumë të mirë në Googling. 558 00:22:30,310 --> 00:22:32,360 Këtu, gjithashtu, nuk janë vende - dhe kjo është një vend 559 00:22:32,360 --> 00:22:34,234 tmerrshme, sinqerisht. 560 00:22:34,234 --> 00:22:38,050 [Qeshura] 561 00:22:38,050 --> 00:22:39,610 DAVID J. Malan: Funny gjë në lidhje me këtë faqe është nëse 562 00:22:39,610 --> 00:22:41,970 ju lexoni faqen e Rreth, ata flasin për të korporatave të tyre 563 00:22:41,970 --> 00:22:44,390 Kultura dhe si shërbimi ndaj klientit është i tyre numër një 564 00:22:44,390 --> 00:22:46,190 prioritet, për të siguruar që detyrat tuaja të merrni 565 00:22:46,190 --> 00:22:47,890 u kthye në kohë. 566 00:22:47,890 --> 00:22:50,580 >> Por në të gjithë seriozitetin, përsëri, fakti që këto vende 567 00:22:50,580 --> 00:22:52,910 ekzistojnë, realizuar ne, gjithashtu, janë të vetëdijshëm për 568 00:22:52,910 --> 00:22:53,730 këto lloje të faqet. 569 00:22:53,730 --> 00:22:55,890 Dhe për të ju jap një kuptim të asaj që përbën kjo në përgjithësi 570 00:22:55,890 --> 00:22:58,570 merr, ne në përgjithësi nuk kanë skandale të mëdha, ku njerëzit 571 00:22:58,570 --> 00:23:01,080 po bashkëpunojnë në çdo lloj shkallë masive, por 572 00:23:01,080 --> 00:23:04,540 kjo është këto natën vonë momentet e dobësisë, ku ju keni kaq 573 00:23:04,540 --> 00:23:07,550 shumë për të bërë, kjo është 4:00, ju jeni të lodhur, dhe ju 574 00:23:07,550 --> 00:23:09,770 mendoj për veten, mirë, më lejoni vetëm të marrë një sy në tim 575 00:23:09,770 --> 00:23:11,770 shokun ose të mikut tim Kodi ose si. 576 00:23:11,770 --> 00:23:14,800 Dhe manifestimet e kësaj për fat të keq të përfshijë Student 577 00:23:14,800 --> 00:23:17,640 Një diçka e paraqitjes si kjo dhe B Student dorëzimit 578 00:23:17,640 --> 00:23:20,370 diçka si kjo, e cila sigurisht, në një kompjuter 579 00:23:20,370 --> 00:23:23,830 klasë shkenca, është shumë e lehtë për shkencëtarët kompjuterike 580 00:23:23,830 --> 00:23:25,690 për të zbuluar me software. 581 00:23:25,690 --> 00:23:28,410 Ky është një tjetër paradigmë të përbashkët, ku ju keni lloj 582 00:23:28,410 --> 00:23:31,010 qenë duke punuar së bashku e dikujt, ndoshta duke folur në 583 00:23:31,010 --> 00:23:32,360 Anglisht, vetëm gjobë, pseudokod. 584 00:23:32,360 --> 00:23:35,080 Por pastaj vjen koha që në fakt paraqesin, dhe psets 585 00:23:35,080 --> 00:23:37,910 vetëm merrni shkëmbyer përmes emailit ose Dropbox ose si. 586 00:23:37,910 --> 00:23:41,120 Por në një përpjekje për ta bërë atë më pak të dukshme se kjo është 587 00:23:41,120 --> 00:23:44,830 çfarë ka ndodhur, atëherë kjo është ajo që është dorëzuar. 588 00:23:44,830 --> 00:23:47,880 Kjo, gjithashtu, nuk udhëtim deri edhe-shkruar copë 589 00:23:47,880 --> 00:23:50,360 software si ne duhet të vërtetë të zbuluar 590 00:23:50,360 --> 00:23:51,280 këto llojet e gjërave. 591 00:23:51,280 --> 00:23:53,760 Dhe me të vërtetë atë që ne bëjmë është softuer drejtuar që krahason të gjitha 592 00:23:53,760 --> 00:23:55,540 parashtresat e këtij viti kundër të gjithë vitit të kaluar 593 00:23:55,540 --> 00:23:57,380 parashtresa, kundër çdo gjë që gjendet në 594 00:23:57,380 --> 00:24:00,060 Internet, kundër çdo faqen e internetit të punës atje. 595 00:24:00,060 --> 00:24:01,710 Kjo është e gjitha shumë e automatizuar. 596 00:24:01,710 --> 00:24:05,665 Dhe kështu që ne bëjmë këtë me të vërtetë në drejtësi të madhe për 97% që 597 00:24:05,665 --> 00:24:07,760 janë me të vërtetë duke punuar gomarët e tyre jashtë në këtë dhe në të tjera 598 00:24:07,760 --> 00:24:11,530 Klasat dhe vënien në të gjithë këtë përpjekje në mënyrë që puna e 599 00:24:11,530 --> 00:24:13,030 ata përfundimisht është dorëzojnë tyre. 600 00:24:13,030 --> 00:24:14,220 Dhe unë mund të shkojnë në për moshat. 601 00:24:14,220 --> 00:24:16,030 >> Këto janë vetëm një pjesë të vogël të rasteve të vitit të kaluar. 602 00:24:16,030 --> 00:24:19,350 A pak nxënës dorëzuar këto fotografi identike për 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 Në këtë rast, kjo ishte quiz 0 dhe në vitin e kaluar, ku dy 605 00:24:26,360 --> 00:24:29,570 Studentët dorëzuar identike këtë fjali në mesin e shumë 606 00:24:29,570 --> 00:24:32,210 të tjerët, "Kërkesa e tipit -" dot, dot, dot. 607 00:24:32,210 --> 00:24:34,530 Pra, edhe në një klasë prej 600 nuk e kemi zbuluar këtë 608 00:24:34,530 --> 00:24:36,310 on dorëzuar kuize. 609 00:24:36,310 --> 00:24:39,080 Pra me pak fjalë, kjo - sinqerisht, unë të urrej pasur këtë lloj të 610 00:24:39,080 --> 00:24:41,300 Biseda - por kjo është me të vërtetë një përpjekje të qëllimshme 611 00:24:41,300 --> 00:24:43,540 këtë vit në përpjekje për të përzënë poshtë atë numër. 612 00:24:43,540 --> 00:24:45,650 Sepse edhe pse ne themi që këto llojet e gjërave çdo 613 00:24:45,650 --> 00:24:48,100 vit, unë mendoj se realitetin e ka ndal në atë për disa 614 00:24:48,100 --> 00:24:50,800 sekonda më shumë se zakonisht dhe në fakt vetëm duke vënë në dukje 615 00:24:50,800 --> 00:24:53,600 se ajo që mund të duket si, eh, jo një marrëveshje të tillë e madhe, të paktën 616 00:24:53,600 --> 00:24:56,390 mendoj se prapa në këtë moment të veçantë, si në drejtësi për 617 00:24:56,390 --> 00:25:00,100 veten dhe për shokët e klasës tuaj këtu. 618 00:25:00,100 --> 00:25:02,480 Pra, nëse ju ndonjëherë keni ndonjë pyetje, si për të, ku vija 619 00:25:02,480 --> 00:25:04,290 është, ju lutem vetëm të arrijnë te mua personalisht. 620 00:25:04,290 --> 00:25:07,190 Por përgjigja është gjithmonë krejtësisht theksoi në të 621 00:25:07,190 --> 00:25:09,090 minutën e fundit, të holla në një ditë fund. 622 00:25:09,090 --> 00:25:11,080 Ose në qoftë se kjo është një çështje e nuk ka ndonjë ditë vonesë, 623 00:25:11,080 --> 00:25:12,900 sinqerisht, email mua personalisht. 624 00:25:12,900 --> 00:25:14,110 Ne do të kuptoj diçka. 625 00:25:14,110 --> 00:25:17,480 Ju lutem mos vënë kohën tuaj këtu në Harvard në rrezik. 626 00:25:17,480 --> 00:25:18,570 >> Tani, mendova se ne duhet të ndriçohet humor, kështu që unë 627 00:25:18,570 --> 00:25:20,264 përfshirë këtë si rrëshqitje tjetër. 628 00:25:20,264 --> 00:25:22,770 [Qeshura] 629 00:25:22,770 --> 00:25:23,630 DAVID J. Malan: Kjo faqe e internetit ishte e madhe. 630 00:25:23,630 --> 00:25:24,820 Unë në fakt mori një pak i hutuar. 631 00:25:24,820 --> 00:25:26,330 Nuk është kjo një. 632 00:25:26,330 --> 00:25:29,590 Dhe pastaj kjo ishte e mahnitshme. 633 00:25:29,590 --> 00:25:35,190 Mirë, kështu që mendoj se i atij kotele natën vonë, kur bën 634 00:25:35,190 --> 00:25:36,040 këto vendime. 635 00:25:36,040 --> 00:25:40,110 Të gjithë të drejtë, stuff kështu përsëri në më shumë argëtim dhe më pak serioze, si 636 00:25:40,110 --> 00:25:40,780 kushtet. 637 00:25:40,780 --> 00:25:43,900 >> Të gjithë të drejtë, kështu që ne biseduam shkurtimisht në lidhje me këto. 638 00:25:43,900 --> 00:25:46,080 Kjo është diçka që është ndoshta mjaft të njohur nga 639 00:25:46,080 --> 00:25:47,260 Bota e Scratch. 640 00:25:47,260 --> 00:25:49,860 Dhe në botën e Scratch, ne kemi këtë nevojë ndonjëherë të 641 00:25:49,860 --> 00:25:51,110 shkojnë të bëjnë forks në rrugë. 642 00:25:51,110 --> 00:25:54,840 Ose të bëjë këtë apo atë apo këtë gjë tjetër këtu. 643 00:25:54,840 --> 00:25:58,990 Dhe kur ne duam të bëjmë këtë, ne mund të përdorim, në C tani, kjo, nëse 644 00:25:58,990 --> 00:26:00,860 tjetër ndërtojnë. 645 00:26:00,860 --> 00:26:06,420 Dhe atëherë këtu kemi shprehje boolean. 646 00:26:06,420 --> 00:26:09,260 Për shembull, shprehjet Boolean këtu, ne mund OSE 647 00:26:09,260 --> 00:26:12,260 ata së bashku, në kuptimin që ne kemi këtë gjendje OSE 648 00:26:12,260 --> 00:26:13,200 se gjendja. 649 00:26:13,200 --> 00:26:15,100 Ne mund dhe ata së bashku, në kuptimin që ne duam të 650 00:26:15,100 --> 00:26:17,710 kontrolloni këtë kusht dhe se kusht. 651 00:26:17,710 --> 00:26:22,440 Dhe këtu kemi një deklaratë të kaloni tani, e cila nuk është aq 652 00:26:22,440 --> 00:26:26,040 syntactically ngjashme me ato llojet e kushteve, por ajo 653 00:26:26,040 --> 00:26:30,160 na lejon të bëjmë ekuivalentin e në qoftë se, në qoftë se, tjetër tjetër nëse, tjetër 654 00:26:30,160 --> 00:26:34,990 nëse, dhe si thjesht duke numëruar atyre rast pas rasti 655 00:26:34,990 --> 00:26:36,670 pas rasti nga rasti. 656 00:26:36,670 --> 00:26:38,370 Pra, ne pamë ato për herë të fundit. 657 00:26:38,370 --> 00:26:40,430 Dhe pastaj kemi filluar prekur gjëra të tilla si sythe. 658 00:26:40,430 --> 00:26:42,070 Ne pamë një nga këto vetëm një moment më parë. 659 00:26:42,070 --> 00:26:44,180 Por nuk janë këto punime të tjera looping. 660 00:26:44,180 --> 00:26:46,370 >> Për shembull, kjo këtu. 661 00:26:46,370 --> 00:26:50,140 Kështu, ndërsa (kusht), e bëjnë këtë gjë përsëri dhe përsëri. 662 00:26:50,140 --> 00:26:53,070 Pra në thelb, atë që duket të jenë të ndryshme në mes të kësaj 663 00:26:53,070 --> 00:26:55,760 për lak dhe në këtë lak ndërsa këtu? 664 00:27:00,810 --> 00:27:05,045 Kjo për lak dhe në këtë lak ndërsa. 665 00:27:05,045 --> 00:27:07,840 Po? 666 00:27:07,840 --> 00:27:08,800 Çfarë është ajo? 667 00:27:08,800 --> 00:27:10,050 Audienca: [padëgjueshme]. 668 00:27:14,632 --> 00:27:15,120 DAVID J. Malan: Mirë. 669 00:27:15,120 --> 00:27:17,130 Pra, ndërsa në gjendje për loop, nuk ka në mënyrë të qartë 670 00:27:17,130 --> 00:27:17,940 Sintaksa më shumë. 671 00:27:17,940 --> 00:27:20,560 Nuk është kjo initialization, ka këtë update. 672 00:27:20,560 --> 00:27:23,820 Në një lak, ndërsa, nuk është vetëm ky kusht. 673 00:27:23,820 --> 00:27:26,630 Pra, duket se kjo është pak krahasuar kundrejt poshtë për 674 00:27:26,630 --> 00:27:28,770 loop, që do të thotë në qoftë se ne duam të kemi variablave dhe ne duam 675 00:27:28,770 --> 00:27:30,800 të ketë incrementation, ne fakt duhet te 676 00:27:30,800 --> 00:27:32,500 bëni këtë gjë veten. 677 00:27:32,500 --> 00:27:34,420 >> Pra më lejoni të shkoj përpara dhe të hapur deri Gedit. 678 00:27:34,420 --> 00:27:36,320 Më lejoni të kaloni mbi të pajisjes. 679 00:27:36,320 --> 00:27:38,110 Dhe le të bëjë vetëm një shembull të shpejtë pak se 680 00:27:38,110 --> 00:27:40,550 dallon një nga këto nga të tjerë. 681 00:27:40,550 --> 00:27:42,490 Dhe në pjesën e prapme të mendjen time këtu, unë duhet të them një gjë. 682 00:27:42,490 --> 00:27:44,120 Unë veçanërisht përmendur emrin Tim. 683 00:27:44,120 --> 00:27:47,740 Tim ishte në të vërtetë dikush që një student u përpoq për të gjetur për të bërë 684 00:27:47,740 --> 00:27:48,680 detyrat e tyre për ta. 685 00:27:48,680 --> 00:27:51,280 Ne nuk kishte asnjë Tim në atë seksion të veçantë. 686 00:27:51,280 --> 00:27:53,690 Pra e kuptojnë, që të mos zbulohet një student, kjo nuk ishte një student. 687 00:27:53,690 --> 00:27:55,720 Ajo ishte një person të rastit në internet duke bërë gjëra të 688 00:27:55,720 --> 00:27:57,180 nga viti prokurë kaluar. 689 00:27:57,180 --> 00:27:58,670 Pra, ne kemi gjetur se, too. 690 00:27:58,670 --> 00:28:00,630 Pra, në këtë rast këtu, më lejoni të shkoj përpara dhe të 691 00:28:00,630 --> 00:28:02,810 të hapur një skedë të re. 692 00:28:02,810 --> 00:28:04,800 File, New. 693 00:28:04,800 --> 00:28:06,050 Kjo më jep një skedë këtu. 694 00:28:06,050 --> 00:28:09,940 Më lejoni të shkojnë përpara dhe për të shpëtuar atë si loop.c. 695 00:28:09,940 --> 00:28:11,810 Më lejoni të shkoni dhe klikoni Ruaj. 696 00:28:11,810 --> 00:28:15,340 Dhe pastaj poshtë këtu, le të shkojnë përpara dhe të filloni të shkruani 697 00:28:15,340 --> 00:28:16,605 # Include . 698 00:28:19,116 --> 00:28:20,520 Më lejoni të zoom in 699 00:28:20,520 --> 00:28:23,410 Tani ne do të bëjmë kryesore int (i pavlefshëm). 700 00:28:23,410 --> 00:28:30,020 Tani më lejoni të shkoj përpara dhe të bëjë për (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 Dhe tani unë jam duke shkuar për të shkuar përpara dhe e shtypura yllin që unë 703 00:28:36,620 --> 00:28:37,890 bëri më parë. 704 00:28:37,890 --> 00:28:39,390 Dhe pastaj në fund të këtij programi, ne jemi vetëm do të 705 00:28:39,390 --> 00:28:41,130 shkruar një linjë të re, vetëm në mënyrë që të shpejtë e mia 706 00:28:41,130 --> 00:28:42,470 nuk duket të gjitha helaq. 707 00:28:42,470 --> 00:28:45,170 0 kthehen. 708 00:28:45,170 --> 00:28:47,610 Duket syntactically saktë? 709 00:28:47,610 --> 00:28:48,040 Deri më tani. 710 00:28:48,040 --> 00:28:48,560 Pra, le të shohim. 711 00:28:48,560 --> 00:28:51,290 >> Pra më lejoni të zoom jashtë, shkoni në dritaren time terminal. 712 00:28:51,290 --> 00:28:54,570 Dhe më lejoni të shkoj përpara dhe të drejtuar lak, sepse unë e quajti këtë 713 00:28:54,570 --> 00:28:55,690 loop.c. gjë 714 00:28:55,690 --> 00:28:56,780 Kështu që bëni lak. 715 00:28:56,780 --> 00:28:57,840 Duket të përpilojë OK. 716 00:28:57,840 --> 00:29:00,210 Më lejoni të drejtuar lak, dhe tani Enter. 717 00:29:00,210 --> 00:29:01,820 Dhe kjo duket të ketë shtypur 10 yjet. 718 00:29:01,820 --> 00:29:03,780 Pra, le të vetëm të kthyer këtë në një lak kohë dhe shikoni se çfarë 719 00:29:03,780 --> 00:29:05,220 llojet e çështjeve që na ngatërron më shumë. 720 00:29:05,220 --> 00:29:11,290 Pra, në vend të kësaj, më lejoni të shkoj në këtu dhe të thonë, ndërsa i është 721 00:29:11,290 --> 00:29:12,760 më pak se 10 - 722 00:29:12,760 --> 00:29:14,910 më lejoni të shpëtoj për lak. 723 00:29:14,910 --> 00:29:17,170 OK, kështu që ne kemi një çift të problemeve tashmë. 724 00:29:17,170 --> 00:29:21,110 Pra, gjendja është e njëjtë, por unë jam padyshim humbur 725 00:29:21,110 --> 00:29:21,680 initialization. 726 00:29:21,680 --> 00:29:23,840 Unë jam i humbur incrementation. 727 00:29:23,840 --> 00:29:28,020 Pra, çfarë duhet të përpiluesit të ngjarë të më thoni, kur unë të përpiqet të 728 00:29:28,020 --> 00:29:29,170 hartojnë këtë program? 729 00:29:29,170 --> 00:29:29,666 Po? 730 00:29:29,666 --> 00:29:31,154 Audienca: [padëgjueshme]. 731 00:29:31,154 --> 00:29:31,650 >> DAVID J. Malan: Mirë. 732 00:29:31,650 --> 00:29:34,180 Pra, kjo do të thotë diçka si pashpallur - në këtë 733 00:29:34,180 --> 00:29:35,280 rasti, i ndryshueshme. 734 00:29:35,280 --> 00:29:37,980 Dhe me të vërtetë, përdorimi i padeklaruar identifikues i. 735 00:29:37,980 --> 00:29:40,960 Dhe kështu kjo është në kontrast me gjuhë si PHP dhe 736 00:29:40,960 --> 00:29:43,120 Python dhe Ruby, me të cilën disa prej jush mund të jetë e njohur, 737 00:29:43,120 --> 00:29:44,820 ku ju mund vetëm lloji i fillimit përdorur ndryshoret 738 00:29:44,820 --> 00:29:47,420 dashur padashur dhe nuk duhet të shqetësohen për shpalljen e tyre 739 00:29:47,420 --> 00:29:48,560 eksplicite gjithmonë. 740 00:29:48,560 --> 00:29:51,770 Në C dhe në gjuhë si Java dhe C + +, ju duhet të jenë të 741 00:29:51,770 --> 00:29:53,020 super eksplicite. 742 00:29:53,020 --> 00:29:55,760 Dhe në qoftë se ju doni një ndryshore të quajtur i, ju duhet të thoni 743 00:29:55,760 --> 00:29:57,360 çfarë është e ndryshueshme. 744 00:29:57,360 --> 00:29:59,360 Pra, ne do të kemi për të rregulluar këtë si më poshtë. 745 00:29:59,360 --> 00:30:05,510 Unë do të keni për të shkuar deri këtu dhe shkruani int i, prandaj, 746 00:30:05,510 --> 00:30:07,860 Unë kam deklaruar një ndryshore të quajtur i. 747 00:30:07,860 --> 00:30:09,180 Tani, unë kam anashkalua një hap. 748 00:30:09,180 --> 00:30:11,340 Unë e kam nisur nuk duket, por le të shohim nëse që në 749 00:30:11,340 --> 00:30:13,650 paktën e bën të ndaluar tingëllimë ankuar. 750 00:30:13,650 --> 00:30:15,770 Pra më lejoni të ribërë këtë program. 751 00:30:15,770 --> 00:30:16,770 >> Të gjithë të drejtë, tani ajo është vetëm ankohen 752 00:30:16,770 --> 00:30:17,870 për një arsye të ndryshme. 753 00:30:17,870 --> 00:30:21,130 "Ndryshueshme 'i' është uninitialized kur përdoret këtu." Të gjithë të drejtë, kështu që 754 00:30:21,130 --> 00:30:22,340 që është mjaft eksplicit. 755 00:30:22,340 --> 00:30:25,510 Initialized thjesht do të thotë se vendosjen e barabartë me një vlerë. 756 00:30:25,510 --> 00:30:30,820 Dhe ne nuk e kemi bërë këtë, kështu që më lejoni të provoni barabartë me 0. 757 00:30:30,820 --> 00:30:35,030 Tani le të provoni këtë përsëri dhe ri-drejtuar tingëllimë. 758 00:30:35,030 --> 00:30:36,140 Hartuar këtë kohë. 759 00:30:36,140 --> 00:30:37,210 Dhe unë jam gati për të drejtuar atë. 760 00:30:37,210 --> 00:30:43,120 Por madh loop pafund të vjetra, sepse unë e kam bërë 761 00:30:43,120 --> 00:30:45,530 initialization, unë kam bërë kusht, por unë kurrë nuk kam bërë 762 00:30:45,530 --> 00:30:47,030 çdo lloj incrementation. 763 00:30:47,030 --> 00:30:48,780 Pra, si mund ta bëjë incrementation? 764 00:30:48,780 --> 00:30:51,170 E pra, në një loop ndërsa, ai ndjehet si unë jam do të ketë 765 00:30:51,170 --> 00:30:54,180 për të bërë atë brenda lak, sepse ashtu si i pari 766 00:30:54,180 --> 00:30:56,570 shembuj jave e të bërit konstruktet looping, si me 767 00:30:56,570 --> 00:30:59,040 çorape dhe me vetë-numërimit, kemi pasur të bëjmë 768 00:30:59,040 --> 00:31:01,550 diçka në fund, si të kthehemi në linjë tjetër. 769 00:31:01,550 --> 00:31:05,040 Çfarë ndodh nëse unë shkoj përpara dhe të bëjë këtë i + + këtu? 770 00:31:05,040 --> 00:31:06,030 Le të mos e përpilojnë edhe këtë. 771 00:31:06,030 --> 00:31:06,890 Kapur mua tashmë. 772 00:31:06,890 --> 00:31:09,704 Çfarë është e gabuar këtu? 773 00:31:09,704 --> 00:31:10,690 Audienca: [padëgjueshme]. 774 00:31:10,690 --> 00:31:11,770 >> DAVID J. Malan: Pra, kjo definitivisht nuk int. 775 00:31:11,770 --> 00:31:13,080 Është i. 776 00:31:13,080 --> 00:31:15,110 Dhe formatimin e teksteve kaçurrel, si më parë, 777 00:31:15,110 --> 00:31:16,800 gjurmë nuk është e mjaftueshme. 778 00:31:16,800 --> 00:31:18,410 Deri tani unë kam këtë ndërtojnë. 779 00:31:18,410 --> 00:31:21,780 Kështu, ndërsa unë është më pak se 10, printoni një yll, 780 00:31:21,780 --> 00:31:23,220 pastaj rritje i. 781 00:31:23,220 --> 00:31:25,680 Dhe një mënyrë, ndërsa punon loop është se sa më shpejt që ju goditi 782 00:31:25,680 --> 00:31:29,630 fund të lak, e cila në këtë rast duket si linjës 10, 783 00:31:29,630 --> 00:31:32,880 ajo do të kthehemi në linjë 6, në të cilën pikë 784 00:31:32,880 --> 00:31:34,400 kusht do të kontrollohet përsëri. 785 00:31:34,400 --> 00:31:37,500 Dhe në qoftë se unë ende është më pak se 10, ne do të bëjmë linjat 8 dhe 786 00:31:37,500 --> 00:31:41,250 pastaj 9, atëherë ne do të goditur 10, dhe të kthehemi në 6, përsëri dhe 787 00:31:41,250 --> 00:31:45,580 përsëri dhe përsëri dhe përsëri, për aq kohë sa unë është më pak se 10. 788 00:31:45,580 --> 00:31:47,860 Pra, le të ri-drejtuar të bërë këtu. 789 00:31:47,860 --> 00:31:48,940 >> Mirë, ne kemi hartuar në rregull. 790 00:31:48,940 --> 00:31:50,300 Më lejoni të ri-drejtuar loop. 791 00:31:50,300 --> 00:31:52,620 Dhe tani ai në fakt duket për të punuar. 792 00:31:52,620 --> 00:31:55,100 Pra pluses dhe minuses këtu? 793 00:31:55,100 --> 00:31:58,910 E pra, deri më tani nuk ka të vërtetë nuk është një tërësi e PLO - 794 00:31:58,910 --> 00:31:59,420 so cute. 795 00:31:59,420 --> 00:32:01,870 Të gjithë të drejtë, se ishte një - ah, që ishte një aksident. 796 00:32:01,870 --> 00:32:05,200 Të gjithë të drejtë, kështu që le të kthehemi për lak. 797 00:32:05,200 --> 00:32:07,530 Pra, për sythe janë të këndshme, sepse ata janë super të qartë. 798 00:32:07,530 --> 00:32:09,720 Dhe, edhe pse ata janë pak clunky për të shkruar, është e 799 00:32:09,720 --> 00:32:11,500 shumë të fuqishme dhe kjo ju lejon të bëni 800 00:32:11,500 --> 00:32:12,980 gjëra të shumta në të njëjtën kohë. 801 00:32:12,980 --> 00:32:16,240 Ndërsa sythe nuk duket të ketë një sasi të madhe të vlerës së vetëm 802 00:32:16,240 --> 00:32:18,500 ende, sepse ajo ndjehet si ne vetëm duhet të bëjë më shumë punë. 803 00:32:18,500 --> 00:32:20,670 Ne kemi për të vënë inicializimit deri këtu, 804 00:32:20,670 --> 00:32:23,480 Përditëso këtu poshtë, dhe ne duhet të mbani mend që të bëjë të gjitha që. 805 00:32:23,480 --> 00:32:26,260 Pra, ne do të shohim në kohë që sythe ndërsa në fakt huazon 806 00:32:26,260 --> 00:32:29,380 vetë në kontekste të ndryshme, vetëm të dhëna të ndryshme 807 00:32:29,380 --> 00:32:33,900 Strukturat si listat dhe tavolina hash, gjërat që ne do të merrni për të 808 00:32:33,900 --> 00:32:34,970 në mes të semestër. 809 00:32:34,970 --> 00:32:37,900 Por tani për tani, e di se ka ky lloj i tretë i njohur si një njeri që 810 00:32:37,900 --> 00:32:38,480 ndërsa loop. 811 00:32:38,480 --> 00:32:39,540 Dhe ne kemi parë këtë shkurtimisht. 812 00:32:39,540 --> 00:32:41,830 Dhe kjo mund të jetë e dobishme super me pset 1. 813 00:32:41,830 --> 00:32:45,570 Çdo herë që ju doni të bëni diçka dhe pastaj kontrolloni nëse 814 00:32:45,570 --> 00:32:48,940 përdoruesit bashkëpunuar, dhe nëse ata nuk e bëri, të bëjë atë përsëri, një do- 815 00:32:48,940 --> 00:32:51,460 ndërsa loop jep veten për atë lloj të logjikës. 816 00:32:51,460 --> 00:32:55,640 Sepse si urdhëruar nga lart poshtë këtu sugjeron, 817 00:32:55,640 --> 00:32:57,750 do të thotë fjalë për fjalë ta bëjë këtë. 818 00:32:57,750 --> 00:32:59,830 Dhe të bëjë këtë përsëri dhe përsëri, ajo mund që të jetë? 819 00:32:59,830 --> 00:33:03,000 Ndoshta kjo do të thotë GetInt thirrje apo getString dhe pastaj 820 00:33:03,000 --> 00:33:05,830 kontrolluar vlerën e GetInt ose getString dhe pastaj yelling 821 00:33:05,830 --> 00:33:08,260 në përdoruesit, nëse ata nuk kanë bashkëpunuar duke i pyetur ata 822 00:33:08,260 --> 00:33:10,100 përsëri dhe përsëri dhe përsëri. 823 00:33:10,100 --> 00:33:11,730 Ku ju doni të bëni diçka një herë, 824 00:33:11,730 --> 00:33:13,210 pastaj shikoni disa kusht. 825 00:33:13,210 --> 00:33:14,110 >> Pra, le të provoni këtë. 826 00:33:14,110 --> 00:33:17,130 Më lejoni të vërtetë të ndryshojë këtë tani në një lak për ta bërë, ndërsa. 827 00:33:17,130 --> 00:33:18,830 Dhe unë jam duke shkuar për të shkuar përpara dhe të bëjë në vijim. 828 00:33:18,830 --> 00:33:21,830 Pra, nuk e mëposhtme. 829 00:33:21,830 --> 00:33:26,870 Le të bëjmë int i = GetInt (), por le të parë të treguar përdoruesit 830 00:33:26,870 --> 00:33:27,410 çfarë duhet të bëni. 831 00:33:27,410 --> 00:33:29,050 Pra, pak më ndryshe këtë herë. 832 00:33:29,050 --> 00:33:31,270 "Më jep një int". 833 00:33:31,270 --> 00:33:32,910 Kështu që unë do të përdorë printf për këtë. 834 00:33:32,910 --> 00:33:35,740 Dhe tani unë jam duke shkuar për të shkuar poshtë këtu, dhe unë jam duke shkuar për të bërë këtë 835 00:33:35,740 --> 00:33:41,520 ndërsa unë është, le të themi, më i madh se - 836 00:33:41,520 --> 00:33:47,540 le të shohim, unë është, le të themi, më pak se 0, ose i është 837 00:33:47,540 --> 00:33:48,730 më i madh se 10. 838 00:33:48,730 --> 00:33:51,810 Me fjalë të tjera, unë dua një numër 1-9, vetëm 839 00:33:51,810 --> 00:33:52,720 në mënyrë arbitrare. 840 00:33:52,720 --> 00:33:55,290 Kështu që unë jam duke përdorur një shprehje të kombinuar Boolean këtu për 841 00:33:55,290 --> 00:33:59,930 sigurohuni që I është më pak se 0 ose më e madhe se 10, në të cilën 842 00:33:59,930 --> 00:34:02,530 rast unë do të bëj këtë lak këtu përsëri. 843 00:34:02,530 --> 00:34:04,400 Pra, përsëri, e bëjnë këtë - 844 00:34:04,400 --> 00:34:08,480 ndërsa unë është më pak se 0 ose unë është më e madhe se 10. 845 00:34:08,480 --> 00:34:11,440 >> Pra, tani le të shkojnë përpara dhe të bëjë këtë herë ne kemi bërë atë. 846 00:34:11,440 --> 00:34:13,270 Le të vetëm të bëjë një kontroll të shpejtë mendje e shëndoshë. 847 00:34:13,270 --> 00:34:18,929 printf ("Faleminderit, I është% d", I). 848 00:34:18,929 --> 00:34:21,350 Pra, ky program i thjeshtë pyet përdoruesin për një int, 849 00:34:21,350 --> 00:34:24,000 e bën të sigurt se është në një varg, 1-9 gjithëpërfshirës, 850 00:34:24,000 --> 00:34:26,280 dhe pastaj falenderon përdorues duke i kujtuar atyre se çfarë ata vetëm 851 00:34:26,280 --> 00:34:27,940 shtypur në, vetëm si një kontroll sanitar pak. 852 00:34:27,940 --> 00:34:30,659 Por le të shohim nëse kjo punon si qëllim. 853 00:34:30,659 --> 00:34:34,533 Më lejoni të shkoj kokën këtu poshtë dhe ri-drejtuar bëjnë lak. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "Përdorimi i padeklaruar identifikues" i ". Kjo është e çuditshme. 856 00:34:38,600 --> 00:34:41,509 Mendova se ne zgjidhur atë. 857 00:34:45,489 --> 00:34:47,560 Simptomë e njëjta, por kodi ndryshme. 858 00:34:47,560 --> 00:34:47,899 Po? 859 00:34:47,899 --> 00:34:50,191 Audienca: [padëgjueshme] në brendësi të dy, ne duhet të 860 00:34:50,191 --> 00:34:52,639 [E padëgjueshme]. 861 00:34:52,639 --> 00:34:53,260 >> DAVID J. Malan: Pikërisht. 862 00:34:53,260 --> 00:34:55,989 Pra ky fakt na çon në një temë të njohur si qëllim. 863 00:34:55,989 --> 00:34:59,350 Ajo rezulton se C, përsëri, me të vërtetë ju merr fjalë për fjalë. 864 00:34:59,350 --> 00:35:02,970 Dhe në qoftë se ju bëni diçka si kjo ku ju shpallte një int 865 00:35:02,970 --> 00:35:06,120 dhe pastaj të caktojë atë disa vlera, por ju bëni atë brenda një 866 00:35:06,120 --> 00:35:09,840 formatimin e teksteve kaçurrel palë, çfarë C nuk është ajo supozon se ju 867 00:35:09,840 --> 00:35:14,800 vetëm duan ato pak 32 të njohura si unë të ekzistojë brenda 868 00:35:14,800 --> 00:35:18,200 Konteksti i këtyre formatimin e teksteve kaçurrel, brenda kontekstit të linjave 869 00:35:18,200 --> 00:35:22,420 6 deri 9. Kështu që i është shpallur, dhe është caktuar një 870 00:35:22,420 --> 00:35:26,530 Vlera në linjë 8, por sa më shpejt që ju të merrni jashtë 871 00:35:26,530 --> 00:35:30,270 Linja 9 nën mbajtëse kaçurrel, i nuk është më në 872 00:35:30,270 --> 00:35:31,910 Shtrirja, kështu që të flasin. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. Ajo nuk është më në kontekstin e duhur. 874 00:35:35,030 --> 00:35:37,940 Deri tani nuk ka asnjë unë, kështu që kjo është sikur ne nuk ka pasur edhe 875 00:35:37,940 --> 00:35:38,770 shpallur atë në të gjitha. 876 00:35:38,770 --> 00:35:41,520 >> Pra, çfarë është një fix pastaj për diçka si kjo, nëse 877 00:35:41,520 --> 00:35:44,300 Arsyeja është se i është shpallur në formatimin e teksteve kaçurrel, i cili 878 00:35:44,300 --> 00:35:45,120 është me sa duket e keqe? 879 00:35:45,120 --> 00:35:45,410 Ketu? 880 00:35:45,410 --> 00:35:46,820 Audienca: [padëgjueshme]. 881 00:35:46,820 --> 00:35:47,150 DAVID J. Malan: Po. 882 00:35:47,150 --> 00:35:48,710 Kështu që ne mund nisja atë jashtë. 883 00:35:48,710 --> 00:35:53,530 Pra më lejoni të shkoj përpara dhe fshini pjesë e deklarimit ku 884 00:35:53,530 --> 00:35:55,820 Unë të specifikojë llojin, dhe më lejoni të bëjë atë deri këtu. 885 00:35:55,820 --> 00:36:00,220 Pra, në përputhje 5, ajo tani thotë se "Më jepni një int." Telefononi jam unë. 886 00:36:00,220 --> 00:36:03,400 Vini re në përputhje 9, unë nuk dua të bëj këtë, sepse unë 887 00:36:03,400 --> 00:36:04,830 tashmë kanë bit 32. 888 00:36:04,830 --> 00:36:06,140 Unë nuk dua të kërkoni për një kompjuter 889 00:36:06,140 --> 00:36:07,630 bit të ndryshme 32. 890 00:36:07,630 --> 00:36:09,850 Unë dua të përdorin ato të njëjtat 32 bit. 891 00:36:09,850 --> 00:36:13,190 Dhe tani, sepse unë është shpallur në përputhje 5, kjo është ende legit 892 00:36:13,190 --> 00:36:16,550 të përdorin atë në përputhje dhe linjës 11 12. 893 00:36:16,550 --> 00:36:19,310 >> Pra më lejoni të përpiqen për të përpiluar këtë dhe të shohim 894 00:36:19,310 --> 00:36:20,490 nëse tingëllimë ndalet yelling. 895 00:36:20,490 --> 00:36:22,380 bëjnë lak. 896 00:36:22,380 --> 00:36:25,470 Kështu që tani ajo është "deklarata e nënkuptuar e funksionit 897 00:36:25,470 --> 00:36:29,880 'GetInt "është i pavlefshëm në C99." Çfarë është kjo? 898 00:36:29,880 --> 00:36:30,400 Po? 899 00:36:30,400 --> 00:36:32,330 Audienca: [padëgjueshme]. 900 00:36:32,330 --> 00:36:32,690 DAVID J. Malan: Po. 901 00:36:32,690 --> 00:36:35,520 Pra, tani që unë jam në të vërtetë duke përdorur GetInt, kjo nuk është diçka 902 00:36:35,520 --> 00:36:38,190 që vetëm vjen me C. Kjo vjen nga CS50. 903 00:36:38,190 --> 00:36:39,890 Pra, ne kemi nevojë për këtë këtu. 904 00:36:39,890 --> 00:36:41,450 Dhe më lejoni të kthehemi në të shpejtë poshtë 905 00:36:41,450 --> 00:36:43,500 këtu dhe ri-drejtuar bërë. 906 00:36:43,500 --> 00:36:44,160 Mirë, më në fund. 907 00:36:44,160 --> 00:36:46,270 Tani ne kemi zgjidhur atë dhe gabim tjetër. 908 00:36:46,270 --> 00:36:48,930 Më lejoni tani të drejtuar lak dhe shikoni se çfarë ndodh. 909 00:36:48,930 --> 00:36:51,740 "Më jep një int." Unë do të të jap 11. 910 00:36:51,740 --> 00:36:53,100 Unë do të të jap -1. 911 00:36:53,100 --> 00:36:54,470 Unë do të të jap foo. 912 00:36:54,470 --> 00:36:56,080 Unë do të të jap 5. 913 00:36:56,080 --> 00:36:57,450 Dhe tani ajo me të vërtetë punon. 914 00:36:57,450 --> 00:36:59,410 Por shpejtë ndryshuar për një arsye këtu. 915 00:36:59,410 --> 00:37:02,800 Pse thuhet rigjykuar një nga këto kohë, por më jepni një 916 00:37:02,800 --> 00:37:03,920 int e tjera tri herë? 917 00:37:03,920 --> 00:37:05,500 Pse është se sjellja ndryshe? 918 00:37:05,500 --> 00:37:06,980 Audienca: dha një varg. 919 00:37:06,980 --> 00:37:07,830 DAVID J. Malan: Na vjen keq? 920 00:37:07,830 --> 00:37:08,570 Audienca: Ju dha një varg. 921 00:37:08,570 --> 00:37:08,990 DAVID J. Malan: Po. 922 00:37:08,990 --> 00:37:11,450 Kështu që ne i dha asaj një varg në këtë përpjekjen e tretë, 923 00:37:11,450 --> 00:37:12,490 kur kam shtypur foo. 924 00:37:12,490 --> 00:37:13,200 Foo është një varg. 925 00:37:13,200 --> 00:37:14,340 Kjo nuk është padyshim një int. 926 00:37:14,340 --> 00:37:17,500 Dhe mënyra se CS50 ka zbatuar GetInt është se ne 927 00:37:17,500 --> 00:37:20,330 nuk kontrolloni nëse diçka më pak se 0 ose më e madhe se 10 928 00:37:20,330 --> 00:37:22,260 për ju, sepse si mund ta dimë paraprakisht se çfarë lloj 929 00:37:22,260 --> 00:37:23,130 int doni? 930 00:37:23,130 --> 00:37:25,880 Por ne mund minimalisht kontrolloni për ju, ae përdorues të paktën 931 00:37:25,880 --> 00:37:26,730 shkruani një numër të plotë? 932 00:37:26,730 --> 00:37:30,500 Dhe në qoftë se ata nuk e bëri, ne çirrem në përdorues duke shtypur "rigjykuar" në 933 00:37:30,500 --> 00:37:31,440 ekran. 934 00:37:31,440 --> 00:37:34,210 >> Deri tani ne kemi një program që është looping. Rregull. 935 00:37:34,210 --> 00:37:37,070 Tani, cila nga këto është lloj i konstrukti të mirë? 936 00:37:37,070 --> 00:37:39,060 Pra, kjo është ajo ku gjërat fillojnë të marrin një çrregullt pak, 937 00:37:39,060 --> 00:37:42,360 Fakti që ju duhet të mbani mend që të deklarojë një ndryshore deri këtu 938 00:37:42,360 --> 00:37:44,630 në qoftë se ju doni të përdorni atë brenda disa 939 00:37:44,630 --> 00:37:46,460 formatimin e teksteve kaçurrel dhe jashtë. 940 00:37:46,460 --> 00:37:48,490 Por edhe në qoftë se kjo duket pak e fshehtë në fillim 941 00:37:48,490 --> 00:37:50,750 shikim, vetëm një herë, kujtoj logjikën e thjeshtë. 942 00:37:50,750 --> 00:37:54,630 Në mënyrë që të përdorni asgjë në C, nëse kjo është një funksion ose 943 00:37:54,630 --> 00:37:57,680 kjo është një variabël, ju duhet të përfshijë atë në qoftë se ajo është një funksion 944 00:37:57,680 --> 00:37:59,770 në disa bibliotekë, ose keni nevojë për të deklaruar atë. 945 00:37:59,770 --> 00:38:02,405 Por tani ju duhet të jenë të ndërgjegjshëm ekstra për faktin se 946 00:38:02,405 --> 00:38:04,940 ju jeni deklaruar atë në fushën e duhur. 947 00:38:04,940 --> 00:38:08,150 Ju nuk jeni vënë atë shumë fort brenda kllapa. 948 00:38:08,150 --> 00:38:09,410 >> Pra më lejoni të vërtetë rrokulliset prapa. 949 00:38:09,410 --> 00:38:12,660 Nëse ne do të shkojmë përsëri në tonë për shembull nga më parë, dhe unë po shkoj 950 00:38:12,660 --> 00:38:19,245 përsëri në për int, int i = 0; i <10; i + +, dhe unë 951 00:38:19,245 --> 00:38:26,370 bëjnë yjet printf, si ky, dhe pastaj të prindërve të ngushtë, dhe tani 952 00:38:26,370 --> 00:38:30,410 printf i është tani - 953 00:38:30,410 --> 00:38:33,500 sipas të njëjtën logjikë, çfarë do të ndodhë kur unë të përpiqet të 954 00:38:33,500 --> 00:38:35,500 hartojnë këtë program? 955 00:38:35,500 --> 00:38:36,790 Audienca: Invalid identifikues. 956 00:38:36,790 --> 00:38:38,560 DAVID J. Malan: Pra, kjo është një tjetër identifikues i pavlefshëm, 957 00:38:38,560 --> 00:38:39,470 identifikues padeklaruar. 958 00:38:39,470 --> 00:38:41,810 Tani, arsyeja është pak më ndryshe. 959 00:38:41,810 --> 00:38:44,370 Nuk ka formatimin e teksteve kaçurrel padyshim këtu, por e njëjta 960 00:38:44,370 --> 00:38:46,790 Ideja, historia e njëjtë të fushës vlen. 961 00:38:46,790 --> 00:38:50,340 Nëse ju keni deklaruar një ndryshore si unë në brendësi të një 962 00:38:50,340 --> 00:38:53,960 për lak, edhe në qoftë se ju nuk e keni shkruar në mënyrë eksplicite kaçurrel 963 00:38:53,960 --> 00:38:56,980 përgatitet, mendoj e tyre mendërisht si ende qenit atje, në të cilën 964 00:38:56,980 --> 00:39:00,310 Rasti i është vetëm brenda vlefshme për lak. 965 00:39:00,310 --> 00:39:03,080 Kjo nuk është e vlefshme kur ju të merrni në linjë tjetër, e cila në 966 00:39:03,080 --> 00:39:05,090 ky rast është tani 10. 967 00:39:05,090 --> 00:39:09,060 Pra, vetëm disa çështje të fushës dhe si. 968 00:39:09,060 --> 00:39:12,620 Të gjithë të drejtë, ndonjë pyetje? 969 00:39:12,620 --> 00:39:15,310 >> Të gjithë të drejtë, kështu që kjo është lloj i një programi të parëndësishëm pak, 970 00:39:15,310 --> 00:39:17,450 shtypjen vetëm pak yjet. 971 00:39:17,450 --> 00:39:20,400 Por le të shohim nëse ju mbani mend këtë këngë këtu. 972 00:39:20,400 --> 00:39:22,530 Kjo është një këngë tepër i bezdisshëm fëmijët do të këndojë në 973 00:39:22,530 --> 00:39:23,550 autobusin e shkollës dhe si. 974 00:39:23,550 --> 00:39:25,990 Por ajo që është e bukur për këtë është se ajo ka këtë cikliciteti, 975 00:39:25,990 --> 00:39:27,910 ku është e "99 shishe birrë në mur, 976 00:39:27,910 --> 00:39:28,520 99 shishe birrë. 977 00:39:28,520 --> 00:39:31,030 Merrni një poshtë, të kalojë atë rreth, 98 shishe birrë në 978 00:39:31,030 --> 00:39:34,330 mur. "Dhe pastaj këngë përsërit 97, pastaj 96, pastaj 979 00:39:34,330 --> 00:39:38,040 95, pastaj 94, të gjithë rrugën poshtë për të 0 në qoftë se ju në të vërtetë mori se 980 00:39:38,040 --> 00:39:38,920 larg në autobus. 981 00:39:38,920 --> 00:39:41,960 Pra, kjo është një program i mirë për të zgjidhur të zbatuar, sepse mia 982 00:39:41,960 --> 00:39:43,650 Perëndia, në qoftë se ju vetëm mund të zbatojë këtë me disa 983 00:39:43,650 --> 00:39:46,660 rreshta të kodit, ju mund të nxjerr nga goja lyrics gjithë për këtë 984 00:39:46,660 --> 00:39:48,240 këngë mjaft shpejt. 985 00:39:48,240 --> 00:39:50,420 Por gjatë rrugës, ne mund të fillojnë të bezdis tani përveç disa 986 00:39:50,420 --> 00:39:52,460 e këtyre ndërton bazë looping dhe tani edhe 987 00:39:52,460 --> 00:39:55,830 futur funksionet që kemi shkruar veten, kthehen vlerat 988 00:39:55,830 --> 00:39:57,020 që ne të kalojë rreth. 989 00:39:57,020 --> 00:39:58,910 Por së pari, pse nuk shkojmë përpara dhe të marrë pesë minuta tonë 990 00:39:58,910 --> 00:39:59,320 thyer këtu? 991 00:39:59,320 --> 00:40:01,480 Dhe kur ne të kthehemi, ne do të këndojmë këtë këngë. 992 00:40:05,680 --> 00:40:08,760 >> Të gjithë të drejtë, kështu që ne jemi prapa. 993 00:40:08,760 --> 00:40:11,850 Dhe kur them që ne tani do të këndoj këtë këngë, unë do të thotë 994 00:40:11,850 --> 00:40:13,250 programuar, jo me gojë. 995 00:40:13,250 --> 00:40:19,370 Pra, këtu kemi beer1.c, e cila është një zbatimi i kësaj 996 00:40:19,370 --> 00:40:20,580 këngë të veçantë. 997 00:40:20,580 --> 00:40:23,110 Dhe vetëm të jetë i qartë, për ata të panjohur me atë 998 00:40:23,110 --> 00:40:24,460 kjo gjë si duket, më lër të shkoj përpara 999 00:40:24,460 --> 00:40:27,070 dhe të bëjë beer1, Enter. 1000 00:40:27,070 --> 00:40:30,400 Tani, më lejoni të drejtuar beer1, dhe atë që ne do të shohim - sa shishe 1001 00:40:30,400 --> 00:40:31,140 e birrës do të ketë? 1002 00:40:31,140 --> 00:40:33,240 Unë do të shkruani në 99, si këngë thotë. 1003 00:40:33,240 --> 00:40:34,040 Enter. 1004 00:40:34,040 --> 00:40:35,650 Dhe tani në qoftë se ne lëvizni nëpër - 1005 00:40:35,650 --> 00:40:38,280 oops - nëse lëvizni nëpër të gjithë këtë, ne do të shohim se 1006 00:40:38,280 --> 00:40:41,350 kjo bëri me të vërtetë të këndoj këngë të tërë. 1007 00:40:44,050 --> 00:40:44,540 Prisni një minutë. 1008 00:40:44,540 --> 00:40:46,240 Bar scroll im është pak messed up. 1009 00:40:46,240 --> 00:40:47,940 Le të përdorni dritare të mëdha. 1010 00:40:47,940 --> 00:40:53,500 Pra beer1, 99, nuk shkojmë. 1011 00:40:53,500 --> 00:40:56,420 Pra, këtu kemi këngë të tërë, këndohet shumë shpejt nga 1012 00:40:56,420 --> 00:40:58,450 kompjuter se ajo mund të ketë qenë nga ne. 1013 00:40:58,450 --> 00:41:00,340 Pra njoftim, edhe pse, natyrën ciklike këtu. 1014 00:41:00,340 --> 00:41:03,380 Ajo thotë se 99, atëherë 99, pastaj "të marrë një poshtë, të kalojë atë 1015 00:41:03,380 --> 00:41:04,740 rreth, "pastaj 98. 1016 00:41:04,740 --> 00:41:06,640 Dhe tani ai e përsërit përsëri dhe përsëri. 1017 00:41:06,640 --> 00:41:08,840 >> Pra, kjo është në fakt një mundësi e përkryer për disa lloj 1018 00:41:08,840 --> 00:41:10,400 looping ndërtojnë. 1019 00:41:10,400 --> 00:41:12,950 Vini re se unë jam natyrë e prerjes një qoshe këtu. 1020 00:41:12,950 --> 00:41:15,960 Vini re se unë jam duke thënë se "98 shishe birrë në mur, 1021 00:41:15,960 --> 00:41:19,010 97 shishe birrë në mur ", dhe se ishte vetëm aq 1022 00:41:19,010 --> 00:41:21,640 se kur ne të merrni për një shishe të birrës, nuk kam 1023 00:41:21,640 --> 00:41:23,300 për t'u shqetësuar në lidhje me gramatikën angleze. 1024 00:41:23,300 --> 00:41:25,790 Por ne gjithashtu mund të rregullojmë këtë me një pak e një, nëse 1025 00:41:25,790 --> 00:41:26,910 kusht, ndoshta. 1026 00:41:26,910 --> 00:41:30,110 Nëse ky numër është njëjës, të shkojnë përpara dhe të thonë "shishe", 1027 00:41:30,110 --> 00:41:31,840 përndryshe nëse është shumësi, thonë "shishe". 1028 00:41:31,840 --> 00:41:34,150 Por tani për tani, unë jam plotësisht i prerjes se qoshe. 1029 00:41:34,150 --> 00:41:35,520 Pra, le të shohim se çfarë ne kemi marrë këtu. 1030 00:41:35,520 --> 00:41:37,150 Pra, ne kemi marrë disa komente në krye. 1031 00:41:37,150 --> 00:41:39,450 Unë jam përfshirë këto dy biblioteka, si 1032 00:41:39,450 --> 00:41:41,140 ne kemi qenë zakonisht. 1033 00:41:41,140 --> 00:41:43,610 Dhe tani më lejoni të lëvizni poshtë për të parë 1034 00:41:43,610 --> 00:41:44,990 linjat aktuale të kodit. 1035 00:41:44,990 --> 00:41:47,020 Linja 17 nis kryesore. 1036 00:41:47,020 --> 00:41:50,610 Line 21 dhe 20 ka sa shishet e birrës do të ketë? 1037 00:41:50,610 --> 00:41:52,060 Dhe pastaj unë e quaj GetInt. 1038 00:41:52,060 --> 00:41:53,800 Dhe tani kam një grimë e një kontroll sanitar. 1039 00:41:53,800 --> 00:41:57,030 >> Pra, kjo është një konventë që ne tani do të fillojnë të miratuar të 1040 00:41:57,030 --> 00:41:59,620 më rigoroze kontrolloni input të përdoruesit. 1041 00:41:59,620 --> 00:42:01,710 Ndonjëherë ju thjesht nuk duan të nxisin ato përsëri 1042 00:42:01,710 --> 00:42:02,630 dhe përsëri dhe përsëri. 1043 00:42:02,630 --> 00:42:05,620 Nëse përdoruesi vida dhe nuk bashkëpunojnë, gjobë. 1044 00:42:05,620 --> 00:42:07,430 Quit dhe thjesht nuk merren me ta. 1045 00:42:07,430 --> 00:42:08,990 Dhe kështu kjo është ajo që unë jam duke bërë këtu. 1046 00:42:08,990 --> 00:42:12,520 Nëse n është më pak se 1, unë jam vetëm do të çirrem në të përdoruesit, 1047 00:42:12,520 --> 00:42:14,330 "Më vjen keq, që e bën nuk ka kuptim." Dhe atëherë unë jam duke shkuar për 1048 00:42:14,330 --> 00:42:16,650 arbitrare kthehen 1. 1049 00:42:16,650 --> 00:42:18,550 Pra, përsëri, kjo është vetëm një konventë të mësohen për të. 1050 00:42:18,550 --> 00:42:19,850 Tani për tani, të marrë atë në besim. 1051 00:42:19,850 --> 00:42:22,700 Por deri tani, ne kemi qenë gjithmonë të kthehej 0, sepse 1052 00:42:22,700 --> 00:42:25,204 kemi thënë kthehej 0 tregon se çfarë? 1053 00:42:25,204 --> 00:42:26,000 Audienca: Suksesi. 1054 00:42:26,000 --> 00:42:27,320 DAVID J. Malan: Suksesi, kjo është e gjitha. 1055 00:42:27,320 --> 00:42:29,740 Pra, tani që ne jemi në fund duke filluar për të menduar për 1056 00:42:29,740 --> 00:42:31,330 jo-Sukseset - 1057 00:42:31,330 --> 00:42:33,760 me fjalë të tjera, rastet qoshe, kushtet e gabimit - 1058 00:42:33,760 --> 00:42:37,520 tani unë kam një furnizim të pafund, ose të paktën katër miliard 1059 00:42:37,520 --> 00:42:39,790 gjërat e mundshme që mund të shkojnë keq në programet e mia. 1060 00:42:39,790 --> 00:42:42,300 Dhe unë mund të fillojnë të caktuar atyre numrat individuale. 1061 00:42:42,300 --> 00:42:44,340 Tani, në përgjithësi mjafton vetëm të kthehen 1062 00:42:44,340 --> 00:42:45,730 diçka tjetër se 0. 1063 00:42:45,730 --> 00:42:48,040 Pra, ne jemi duke shkuar për të thjesht kthehen 1 tani për tani. 1064 00:42:48,040 --> 00:42:51,440 Por arsyeja për kthimin e 1 është se sa më shpejt që ju të ktheheni 1065 00:42:51,440 --> 00:42:55,110 1, me mend se çfarë ndodh me pjesën tjetër të programit? 1066 00:42:55,110 --> 00:42:55,720 Ajo ndalet. 1067 00:42:55,720 --> 00:42:56,560 Kjo ishte. 1068 00:42:56,560 --> 00:42:59,150 Pra, fakti që unë jam kthyer 1 është në mënyrë efektive 1069 00:42:59,150 --> 00:43:02,950 Një qark i shkurtër ekzekutimin këtë program në mënyrë që 1070 00:43:02,950 --> 00:43:06,780 asgjë poshtë vijës 27 do të vazhdojë ekzekutimin. 1071 00:43:06,780 --> 00:43:09,210 Sa më shpejt që kthimet kryesore, që është ajo. 1072 00:43:09,210 --> 00:43:13,160 >> Të gjithë të drejtë, kështu që nëse përdoruesi ka bashkëpunuar dhe kemi arritur linjë 30 1073 00:43:13,160 --> 00:43:15,680 sepse ata shtypen në një numër të ligjshme, këtu është my 1074 00:43:15,680 --> 00:43:16,990 Zbatimi i kësaj kënge. 1075 00:43:16,990 --> 00:43:19,050 Kështu që unë së pari të shtypura nga një karakter newline, vetëm për 1076 00:43:19,050 --> 00:43:19,880 estetikë. 1077 00:43:19,880 --> 00:43:21,500 Unë tani kanë një për lak. 1078 00:43:21,500 --> 00:43:22,930 Dhe vini re unë jam duke bërë gjërat në një grimë 1079 00:43:22,930 --> 00:43:23,880 i një drejtim të ndryshme. 1080 00:43:23,880 --> 00:43:26,210 Unë nuk kam për të bërë më pak se, unë nuk kam për të bërë + +. 1081 00:43:26,210 --> 00:43:30,660 Unë mund të them në vend të nisja një variabël unë vendosur atë barabartë me 1082 00:43:30,660 --> 00:43:35,080 n, numri përdorues shtypen në, pastaj të bëjë në vijim, në mënyrë që 1083 00:43:35,080 --> 00:43:39,590 kohë sa unë është më e madhe se 0, atëhere unë - 1084 00:43:39,590 --> 00:43:42,070 një herë ju keni përfunduar një përsëritje të këtij lak. 1085 00:43:42,070 --> 00:43:44,310 Pra, ne mund të mbështeteni poshtë duke përdorur një për lak si. 1086 00:43:44,310 --> 00:43:47,520 Tani, kjo është një javë shumë e shumë gjëra tani, me printf. 1087 00:43:47,520 --> 00:43:51,770 Kështu print "% d shishe të birrës në mur." "Print% d 1088 00:43:51,770 --> 00:43:54,990 shishe birrë. "" Merrni një poshtë, të kalojë atë rreth. "Printo 1089 00:43:54,990 --> 00:43:58,880 "% D shishe të birrës në mur." Pra, kjo është ende% d, por 1090 00:43:58,880 --> 00:44:02,770 vini re se argumenti për printf po ndryshon. 1091 00:44:02,770 --> 00:44:05,840 Pas presje, unë kam, sepse unë dua të them 99. 1092 00:44:05,840 --> 00:44:08,590 Pas kësaj presje, unë kam, sepse unë dua të them 99. 1093 00:44:08,590 --> 00:44:14,030 Pas kësaj presje, unë kam - 1, sepse unë dua të them në 98 1094 00:44:14,030 --> 00:44:16,260 kjo përsëritje parë, dhe kështu me radhë. 1095 00:44:16,260 --> 00:44:18,520 Dhe tani këtu poshtë, unë vetëm kanë disa vërejtje budallaqe pak. 1096 00:44:18,520 --> 00:44:22,270 Dhe pastaj linjës 42, ta kthej 0 nga Konventa, duke nënkuptuar se 1097 00:44:22,270 --> 00:44:23,650 çdo gjë është në rregull. 1098 00:44:23,650 --> 00:44:24,490 >> Pra, çfarë nëse unë goofed? 1099 00:44:24,490 --> 00:44:26,350 Çfarë mund të një gabim i përbashkët këtu të jetë? 1100 00:44:26,350 --> 00:44:29,200 E pra, çfarë nëse unë rastësisht thënë mirë, unë nuk dua për të numëruar 1101 00:44:29,200 --> 00:44:31,640 poshtë për 0, unë dua 0 shishe të birrës në mur? 1102 00:44:31,640 --> 00:44:34,620 Kështu që unë them, unë është më e madhe se ose e barabartë me 0. 1103 00:44:34,620 --> 00:44:38,920 Çfarë do të jetë simptomë që unë tani të shohim nëse unë recompile 1104 00:44:38,920 --> 00:44:41,173 beer1 dhe drejtuar atë? 1105 00:44:41,173 --> 00:44:42,120 Audienca: Negativ. 1106 00:44:42,120 --> 00:44:43,590 DAVID J. Malan: Po, kjo është gonna të shkojnë negative. 1107 00:44:43,590 --> 00:44:45,950 Kjo është një off-nga-një gabim, një tepër 1108 00:44:45,950 --> 00:44:47,270 gabim i përbashkët për të bërë. 1109 00:44:47,270 --> 00:44:48,960 Le të vërtetë të shkojnë prapa në dritaren e terminalit dhe të bëjë atë 1110 00:44:48,960 --> 00:44:50,620 këtu, kështu që ne mund të shohim më shumë në një kohë. 1111 00:44:50,620 --> 00:44:53,280 Shkruani, 99 shishe birrë. 1112 00:44:53,280 --> 00:44:56,580 Ngushtë, por ne kemi shkuar ndonjëherë në mënyrë pak më shumë larg. 1113 00:44:56,580 --> 00:45:00,500 Ne këndoi këngën shumë larg poshtë, të tilla që ne tani goditur 1114 00:45:00,500 --> 00:45:01,510 Numri negative. 1115 00:45:01,510 --> 00:45:03,680 Kështu që nuk ka mjaft të punojnë. 1116 00:45:03,680 --> 00:45:06,450 >> Të gjithë të drejtë, kështu që ne lehtë mund të rregullojmë se duke shkuar prapa në 1117 00:45:06,450 --> 00:45:07,650 mënyrë ajo dikur ishte. 1118 00:45:07,650 --> 00:45:10,360 Por cilat janë disa mundësi tani për 1119 00:45:10,360 --> 00:45:11,190 përmirësim? 1120 00:45:11,190 --> 00:45:17,200 E pra, më lejoni të hapur beer2.c dhe lëvizni poshtë këtu dhe për të marrë një 1121 00:45:17,200 --> 00:45:19,310 shikoni në këtë version. 1122 00:45:19,310 --> 00:45:21,370 Cila është gjëja e parë që në hedhje nga ju si e ndryshme 1123 00:45:21,370 --> 00:45:23,715 në këtë version këtu? 1124 00:45:23,715 --> 00:45:24,190 Audienca: [padëgjueshme]. 1125 00:45:24,190 --> 00:45:26,510 DAVID J. Malan: Yeah, kështu që nuk jam më unë, sepse kjo ka ndodhur me 1126 00:45:26,510 --> 00:45:29,350 mua ju e dini se çfarë, unë jam duke kërkuar për përdorues n, dhe atëherë unë jam i 1127 00:45:29,350 --> 00:45:33,580 vendosjen i barabartë me n, dhe atëherë unë jam i ndryshuar, por unë kurrë nuk jam 1128 00:45:33,580 --> 00:45:34,590 prekur n përsëri. 1129 00:45:34,590 --> 00:45:37,390 Pra, çfarë dreq ishte pika e ndarjes jush një tjetër 32 1130 00:45:37,390 --> 00:45:45,210 BITS quajtur i vetëm kështu që unë mund të ketë një ndryshore tjetër? 1131 00:45:45,210 --> 00:45:47,960 Pra, në këtë rast, unë lloj i njohur se panevojshme 1132 00:45:47,960 --> 00:45:49,190 funksion të projektimit. 1133 00:45:49,190 --> 00:45:52,730 Dhe unë jam tani do të thonë, ndërsa n është më e madhe se 0, shkoni 1134 00:45:52,730 --> 00:45:56,180 përpara dhe të printoni të njëjtën këngë, duke kaluar një n për printf si 1135 00:45:56,180 --> 00:46:00,210 Argumenti i dytë, dhe n - 1 si argument të dytë këtu poshtë. 1136 00:46:00,210 --> 00:46:02,930 Dhe pastaj në çdo përsëritje të këtij lak, të shkojnë përpara dhe vetëm 1137 00:46:02,930 --> 00:46:05,080 pakësim n vetvete. 1138 00:46:05,080 --> 00:46:06,960 Tani, funksionalisht, ky program 1139 00:46:06,960 --> 00:46:08,010 do të jetë identike. 1140 00:46:08,010 --> 00:46:10,730 Nëse unë lloji në 99, n fillon në 99. 1141 00:46:10,730 --> 00:46:12,890 Unë pakësim, pakësim, pakësim, pakësim. 1142 00:46:12,890 --> 00:46:15,875 Unë jam duke shkuar për të marrë të gjithë rrugën poshtë për të "Një shishe birrë në 1143 00:46:15,875 --> 00:46:16,740 mur, një shishe birrë. 1144 00:46:16,740 --> 00:46:18,020 Merrni një poshtë, të kalojë atë rreth. 1145 00:46:18,020 --> 00:46:21,480 0 shishet e birrës në mur ". Fund, sepse kam bërë 1146 00:46:21,480 --> 00:46:23,200 merrni kusht saktë. 1147 00:46:23,200 --> 00:46:24,280 Kjo është më e madhe se 0. 1148 00:46:24,280 --> 00:46:26,220 Unë nuk e kam bërë këtë gabim. 1149 00:46:26,220 --> 00:46:28,470 >> Pra, cila është më e mirë, version një ose dy version? 1150 00:46:31,380 --> 00:46:33,480 Pra, dëgjova një bandë e murmuritjet për dy. 1151 00:46:33,480 --> 00:46:34,730 Pse dy? 1152 00:46:37,210 --> 00:46:38,225 Çfarë është ajo? 1153 00:46:38,225 --> 00:46:39,215 Audienca: [padëgjueshme]. 1154 00:46:39,215 --> 00:46:40,070 DAVID J. Malan: Oh, ne rregull. 1155 00:46:40,070 --> 00:46:42,870 Pra, ajo nuk do të shkojë më poshtë 0, por mos harroni, në versionin anë, 1156 00:46:42,870 --> 00:46:45,870 Versioni origjinal i saktë nuk ka shkuar më poshtë ose 0. 1157 00:46:45,870 --> 00:46:48,340 Pra, mbani mend se ky është versioni i saktë. 1158 00:46:48,340 --> 00:46:51,630 Pra, le të paktën krahasohen dy versionet e sakta. 1159 00:46:51,630 --> 00:46:53,300 Çfarë është një argument në favor të verzionit 1160 00:46:53,300 --> 00:46:55,146 dy qenie, mmm, mirë? 1161 00:46:55,146 --> 00:46:55,642 Po? 1162 00:46:55,642 --> 00:46:57,630 Audienca: Ajo përdor më pak hapësirë. 1163 00:46:57,630 --> 00:46:59,530 DAVID J. Malan: Mirë, kështu që ai përdor më pak hapësirë, e drejtë? 1164 00:46:59,530 --> 00:47:02,900 Ndërsa një version i përdorur 32 bit për n, dhe pastaj një tjetër 1165 00:47:02,900 --> 00:47:07,680 32 bit për i. 1166 00:47:07,680 --> 00:47:10,060 Versioni dy përdor vetëm 32 bit për n, në mënyrë që 1167 00:47:10,060 --> 00:47:11,700 duket të jetë një plus. 1168 00:47:11,700 --> 00:47:12,950 Mendime të tjera? 1169 00:47:18,070 --> 00:47:21,520 A ka dikush duan të argumentojnë në favor të një? 1170 00:47:21,520 --> 00:47:22,070 Po? 1171 00:47:22,070 --> 00:47:25,240 Audienca: Ju duhet të përdorni linjë shtesë e kodit për n -. 1172 00:47:25,240 --> 00:47:26,090 >> DAVID J. Malan: Mirë, sigurisht. 1173 00:47:26,090 --> 00:47:26,960 Pra, kjo është e drejtë. 1174 00:47:26,960 --> 00:47:29,040 Pra, kjo thjesht, të paktën për mua - 1175 00:47:29,040 --> 00:47:31,940 Unë do të thotë, kjo në fakt ndjen një Messier pak, fakti që 1176 00:47:31,940 --> 00:47:35,120 Unë nuk mund të lloj të encapsulate gjithë logjikën time në një 1177 00:47:35,120 --> 00:47:38,030 Shkarko bukur, për lak, si për lak mund. 1178 00:47:38,030 --> 00:47:40,240 Ja, unë lloj i duhet të litar në këtë n - 1179 00:47:40,240 --> 00:47:41,120 në fund të lak, sepse 1180 00:47:41,120 --> 00:47:42,550 kjo është logjikisht e domosdoshme. 1181 00:47:42,550 --> 00:47:45,190 Por kjo lloj i fërkon mua rrugën e gabuar, vetëm për shkak se ajo 1182 00:47:45,190 --> 00:47:48,260 Duket ndarë nga logjika e deri këtu, edhe pse, 1183 00:47:48,260 --> 00:47:49,430 përsëri, kjo është e nevojshme. 1184 00:47:49,430 --> 00:47:50,990 Mendime të tjera? 1185 00:47:50,990 --> 00:47:51,490 Po? 1186 00:47:51,490 --> 00:47:52,740 Audienca: [padëgjueshme]. 1187 00:47:57,990 --> 00:47:58,350 >> DAVID J. Malan: Po. 1188 00:47:58,350 --> 00:48:00,730 Pra, çfarë nëse ju në vend, në fund të këngës, të kërkuar për të 1189 00:48:00,730 --> 00:48:02,950 printoni përsëri emrin e kenges? 1190 00:48:02,950 --> 00:48:05,660 Si "Thanks për të luajtur 99 shishe birrë", apo diçka 1191 00:48:05,660 --> 00:48:06,690 silly si kjo? 1192 00:48:06,690 --> 00:48:09,750 Por pikë është, që ju të kërkuar qasje në vlerën origjinale. 1193 00:48:09,750 --> 00:48:13,180 Fakti që ju keni mutated ose të ndryshohet në çdo n 1194 00:48:13,180 --> 00:48:16,330 përsëritje dhe për këtë arsye e kanë shkatërruar vlerën e saj origjinale 1195 00:48:16,330 --> 00:48:18,650 do të thotë që ju thjesht nuk mund të bëjë që në fund. 1196 00:48:18,650 --> 00:48:20,660 Tani, ndoshta, ne në mënyrë të qartë nuk duan të bëjnë 1197 00:48:20,660 --> 00:48:21,450 se në këtë program. 1198 00:48:21,450 --> 00:48:22,350 Pra, kush kujdeset? 1199 00:48:22,350 --> 00:48:23,630 Por kjo është një pikë shumë të vlefshme. 1200 00:48:23,630 --> 00:48:25,520 Dhe të jetë i sinqertë, nuk ka të vërtetë nuk ka një 1201 00:48:25,520 --> 00:48:26,630 drejtë përgjigjen këtu. 1202 00:48:26,630 --> 00:48:28,740 Ata janë të dy në mënyrë të barabartë të sakta. 1203 00:48:28,740 --> 00:48:30,210 Unë mund të jetë i bindur ose mënyrë. 1204 00:48:30,210 --> 00:48:33,310 Unë do të them se, në përgjithësi, kjo është një parim i mirë në qoftë se ju 1205 00:48:33,310 --> 00:48:36,030 pyeti përdorues për disa vlera dhe ju të ruhet në një variabël 1206 00:48:36,030 --> 00:48:38,730 si n, vetëm lloj i në parim, kjo është ndoshta mirë 1207 00:48:38,730 --> 00:48:40,160 për të mbajtur atë rreth. 1208 00:48:40,160 --> 00:48:43,400 Dhe çdo të dhënave që ju doni të shndrrohet përsëri dhe përsëri, vetëm 1209 00:48:43,400 --> 00:48:46,030 t'i japë vetes një kopje të kësaj variable, vetëm kështu që ju 1210 00:48:46,030 --> 00:48:47,830 të kenë qasje në origjinal. 1211 00:48:47,830 --> 00:48:51,040 Ju jeni të shpenzimeve 32 bit me shume, por realiteti është ky 1212 00:48:51,040 --> 00:48:53,490 kompjuter ka, si, dy gigabajt të RAM këto ditë, 1213 00:48:53,490 --> 00:48:55,310 dhe ne jemi quibbling mbi 32 bit? 1214 00:48:55,310 --> 00:48:56,320 Të vërtetë nuk është e tillë një punë e madhe. 1215 00:48:56,320 --> 00:48:58,550 Dhe madje edhe në këtë pajisje këtu, me një gjysmë një koncert apo një 1216 00:48:58,550 --> 00:49:01,700 Gigabyte RAM, 32 bit 64 bit kundrejt, 1217 00:49:01,700 --> 00:49:02,920 nuk është e tillë një punë e madhe. 1218 00:49:02,920 --> 00:49:05,890 Sigurisht sot, ajo do të jetë mënyra e përshkuar nga madhësia 1219 00:49:05,890 --> 00:49:08,400 e programit të vetë, e cila do të jetë disa qindra 1220 00:49:08,400 --> 00:49:10,890 kilobytes, nëse nuk është një megabajt pak, këto ditë. 1221 00:49:10,890 --> 00:49:13,550 >> Shqetësimet në mënyrë të arsyeshme, ka një përgjigje të drejtë. 1222 00:49:13,550 --> 00:49:15,490 Por të paktën ata janë mendime që duhet të fillojë të 1223 00:49:15,490 --> 00:49:16,790 kalojnë nëpër mendjen tuaj? 1224 00:49:16,790 --> 00:49:19,600 Sepse në pset 0, edhe pse ne me të vërtetë pritet vetëm 1225 00:49:19,600 --> 00:49:22,340 korrektësisë, ose të paktën disclaiming mete të ndryshme që 1226 00:49:22,340 --> 00:49:25,440 ju mund të keni hasur, si ne shkojmë përpara, dizajni është 1227 00:49:25,440 --> 00:49:27,910 do të jetë një tjetër aspekt kyç, dy prej të shkruar kodin 1228 00:49:27,910 --> 00:49:29,770 dhe gjithashtu vlerësimin tonë kod. 1229 00:49:29,770 --> 00:49:32,310 Dhe kështu të paktën të japë menduar për gjëra të tilla si kjo. 1230 00:49:32,310 --> 00:49:35,590 Dhe vetëm sepse veprat diçka nuk do të thotë se është mirë, 1231 00:49:35,590 --> 00:49:37,130 nuk do të thotë se është mirë-projektuar. 1232 00:49:37,130 --> 00:49:38,820 Dhe kjo është një nga gjërat Fellows mësimore dhe 1233 00:49:38,820 --> 00:49:41,990 përcakton problemi do të na ndihmojë ngas pjesë me kalimin e kohës. 1234 00:49:41,990 --> 00:49:45,020 >> E pra, çfarë në lidhje me, le të themi, ky version ketu? 1235 00:49:45,020 --> 00:49:49,090 Më lejoni të bëj diçka pak sexy këtu në një moment. 1236 00:49:49,090 --> 00:49:50,740 Së pari më lejoni të hequr qafe këtë. 1237 00:49:50,740 --> 00:49:54,120 Dhe tani le të rregullojmë këtë çështje gramatikore. 1238 00:49:54,120 --> 00:49:58,780 Pra, në këtë version, unë dua të rregulluar gramatikë në mënyrë që, 1239 00:49:58,780 --> 00:50:02,460 në vend se të them vetëm cilësues s, si "shishe" 1240 00:50:02,460 --> 00:50:03,360 apo "shishe" - 1241 00:50:03,360 --> 00:50:04,900 Unë nuk dua të prerë atë qoshe - 1242 00:50:04,900 --> 00:50:08,350 Unë gjithashtu dua të dinamike të shtypura nga fjala "shishe" 1243 00:50:08,350 --> 00:50:12,820 apo "shishe", duke përdorur placeholders këtyre% s sot. 1244 00:50:12,820 --> 00:50:16,550 Kështu që kam nevojë për të kontrolluar atë që është kusht vlera e i. 1245 00:50:16,550 --> 00:50:19,590 Dhe në qoftë se kjo është 1, unë dua të them "shishe", dhe në qoftë se çdo gjë është e 1246 00:50:19,590 --> 00:50:23,115 tjetër, unë dua të them "shishe". Pra, le të përpiqemi për të bërë këtë. 1247 00:50:23,115 --> 00:50:31,340 Pra, nëse unë == 1, atëherë më lejoni të shkoj përpara dhe të deklarojë - 1248 00:50:31,340 --> 00:50:34,080 Unë kam nevojë për një varg, kështu që më lejoni të bëjë S1 string, sepse kjo është 1249 00:50:34,080 --> 00:50:36,070 string pari I intereson tani. 1250 00:50:36,070 --> 00:50:40,980 Unë jam duke shkuar për të thonë "shishe". Dhe pastaj, le të shohim, string 1251 00:50:40,980 --> 00:50:43,110 s2 - dhe unë do të shpjegojë se ku unë jam duke shkuar në një moment - 1252 00:50:43,110 --> 00:50:47,650 "Shishe". Pra kujtoj se, në këtë këngë, ne duhet të jetë në gjendje 1253 00:50:47,650 --> 00:50:50,580 gjëra të shtypura, dy fjalë të ndryshme potencialisht. 1254 00:50:50,580 --> 00:50:53,590 Pra, nëse ne shikojmë prapa këtu, vini re se kur ne të merrni për të 1255 00:50:53,590 --> 00:50:56,440 ky shembull këtu, "dy shishe të birrës në mur, 1256 00:50:56,440 --> 00:50:59,490 Dy shishet e birrës, të marrë një poshtë, të kalojë atë rreth ", unë dua 1257 00:50:59,490 --> 00:51:02,380 Kjo linjë e katërt për tani them "një shishe birrë në 1258 00:51:02,380 --> 00:51:04,900 mur ". Kështu që unë duhet të vendosë, nuk dua të them" shishe "ose 1259 00:51:04,900 --> 00:51:07,780 "Shishe"? Kështu që unë jam duke shkuar për të thonë në mënyrë arbitrare, të gjithë të drejtë, 1260 00:51:07,780 --> 00:51:10,530 Unë jam duke shkuar për tani deklarojë një ndryshore të quajtur S1 varg, 1261 00:51:10,530 --> 00:51:13,830 një, që do të marrë mbyllën në këtu dhe edhe këtu, 1262 00:51:13,830 --> 00:51:16,070 sepse këto fjalë janë gjithmonë të njëjta, vetëm për shkak të 1263 00:51:16,070 --> 00:51:17,290 Natyra e këngës. 1264 00:51:17,290 --> 00:51:20,100 Dhe unë jam duke shkuar për të thirrur s2 çfarëdo fjala që unë dua të 1265 00:51:20,100 --> 00:51:21,560 përfundimisht duket këtu poshtë. 1266 00:51:21,560 --> 00:51:25,530 Tani, fjalë për fjalë, 99 herë nga 100, ajo do të jetë 1267 00:51:25,530 --> 00:51:28,820 njëjtë në të dyja këto raste, sepse 3 është shumësi, 2 është 1268 00:51:28,820 --> 00:51:30,200 shumësi, 4 është shumësi. 1269 00:51:30,200 --> 00:51:34,640 Por në këtë rast këndi, ku ne të merrni për të 2 dhe pastaj 1, ose 1270 00:51:34,640 --> 00:51:37,250 edhe 1 0 dhe pastaj, Unë kam nevojë për këtë logjikë. 1271 00:51:37,250 --> 00:51:41,020 Kështu që unë duhet të kalojnë disa kohë në kodin tim duke marrë atë të drejtë. 1272 00:51:41,020 --> 00:51:47,530 Pra, nëse unë ta bëjë këtë, në qoftë se unë == 1, atëherë s1 vendosur të barabarta për "shishe" 1273 00:51:47,530 --> 00:51:52,010 dhe s2 të barabartë me "shishe", sepse kjo do të jetë për 1 1274 00:51:52,010 --> 00:51:56,340 shishe, dhe kjo do të jetë për 0 shisheve. 1275 00:51:56,340 --> 00:51:58,250 Dhe kjo këtu, çfarë përfaqëson kjo? 1276 00:51:58,250 --> 00:51:59,780 Vetëm të jetë i qartë. 1277 00:51:59,780 --> 00:52:00,620 Kjo është vetëm një koment. 1278 00:52:00,620 --> 00:52:03,730 Pra, fakti se ju mund të keni të vetme-line komente thotë ju 1279 00:52:03,730 --> 00:52:06,110 mund të komentojë kodin tuaj si kjo, por një tjetër të përbashkët 1280 00:52:06,110 --> 00:52:09,050 paradigmë, gjithashtu, është se në qoftë se ju keni një frazë super-shkurtër që 1281 00:52:09,050 --> 00:52:11,410 ju doni të vënë veten dhe kjo është vetëm më i lexueshëm për të vënë 1282 00:52:11,410 --> 00:52:13,270 atë të drejtë në fund të vijës së kodit, ju mund të 1283 00:52:13,270 --> 00:52:15,230 absolutisht të bëjë diçka si kjo. 1284 00:52:15,230 --> 00:52:20,150 >> Deri tani, çfarë nëse unë bëj këtë? Tjetër në qoftë se unë nuk është e barabartë me 1. 1285 00:52:20,150 --> 00:52:21,620 Pra Bang barabartë - 1286 00:52:21,620 --> 00:52:23,150 pikë thirrje është i njohur si "zhurmë". 1287 00:52:23,150 --> 00:52:25,080 Pra Bang = 1. 1288 00:52:25,080 --> 00:52:28,530 Pra, në qoftë se unë nuk është i barabartë me 1, çfarë unë dua të bëj në vend? 1289 00:52:28,530 --> 00:52:31,700 E pra, fjala e parë që unë dua të jetë ajo? 1290 00:52:34,620 --> 00:52:40,030 Pra string 1 duhet të jetë "shishe" për shishe shumës, 1291 00:52:40,030 --> 00:52:42,440 dhe pastaj kjo do të jetë shumësit "shishet", si dhe, tani për tani. 1292 00:52:42,440 --> 00:52:43,800 Dhe ne do të shohim nëse kjo vërtetë na merr në 1293 00:52:43,800 --> 00:52:44,870 ku duam të shkojmë. 1294 00:52:44,870 --> 00:52:47,680 Kështu që tani, nëse unë lëviz këtu poshtë, vëreni se unë jam në mbylljen e 1295 00:52:47,680 --> 00:52:50,170 jo vetëm unë, por s1. 1296 00:52:50,170 --> 00:52:51,860 Unë jam në mbylljen e I dhe S1. 1297 00:52:51,860 --> 00:52:54,440 Dhe pastaj këtu poshtë, unë jam minus 1, e cila është e njëjtë si 1298 00:52:54,440 --> 00:52:55,920 më parë, por s2. 1299 00:52:55,920 --> 00:52:58,730 Me fjalë të tjera, unë dua fjalën angleze për të ndryshuar bazuar 1300 00:52:58,730 --> 00:52:59,930 në këtë logjikë. 1301 00:52:59,930 --> 00:53:03,310 Tani, ka tashmë disa probleme në këtë Kod. 1302 00:53:03,310 --> 00:53:08,460 Çfarë është thyer tashmë nga porta këtu? 1303 00:53:08,460 --> 00:53:10,796 Po? 1304 00:53:10,796 --> 00:53:13,210 Audienca: [padëgjueshme]. 1305 00:53:13,210 --> 00:53:13,800 >> DAVID J. Malan: Pikërisht. 1306 00:53:13,800 --> 00:53:16,030 Kështu që unë tashmë e kam shkelur mësimin e fushës. 1307 00:53:16,030 --> 00:53:19,610 Kështu që unë kam deklaruar s1 s2 dhe, por unë kam bërë atë në brendësi të 1308 00:53:19,610 --> 00:53:22,980 formatimin e teksteve kaçurrel, që do të thotë, vërtet, ky kod do të punojë deri 1309 00:53:22,980 --> 00:53:27,430 deri linjës 42, por sa më shpejt që unë goditi linjë 43, guess what asnjë 1310 00:53:27,430 --> 00:53:28,900 ekziston më? 1311 00:53:28,900 --> 00:53:32,600 Well, guess what nuk është më në fushëveprimin - as s1 s2 ose. 1312 00:53:32,600 --> 00:53:33,780 Pra, ne kemi për të rregulluar këtë. 1313 00:53:33,780 --> 00:53:36,180 Pra më lejoni të fshini deklaratat. 1314 00:53:36,180 --> 00:53:39,320 Dhe unë do të largohet nga emrat e ndryshueshme dhe të fshini këtë këtu 1315 00:53:39,320 --> 00:53:40,120 dhe fshini këtë këtu. 1316 00:53:40,120 --> 00:53:43,557 Dhe në çfarë unë me të vërtetë duhet të linjave të shpallë këto gjëra? 1317 00:53:43,557 --> 00:53:44,960 Audienca: [padëgjueshme]. 1318 00:53:44,960 --> 00:53:45,410 DAVID J. Malan: Yeah, kështu që ndoshta 1319 00:53:45,410 --> 00:53:46,850 drejtë deri këtu, 33-ish. 1320 00:53:46,850 --> 00:53:50,670 Pra s1 vargut dhe pastaj string s2. 1321 00:53:50,670 --> 00:53:51,950 Dhe kjo rezulton, unë mund ta bëjë këtë. 1322 00:53:51,950 --> 00:53:54,260 Nëse ju jeni duke deklaruar dy variabla të të njëjtit lloj, 1323 00:53:54,260 --> 00:53:57,420 të vërtetë ju mund të përdorni vetëm një presje dhe të bëjë që në C. Të gjitha 1324 00:53:57,420 --> 00:53:58,970 drejtë, kështu që tani unë kam dy variablave - 1325 00:53:58,970 --> 00:53:59,860 s1 s2 dhe. 1326 00:53:59,860 --> 00:54:02,000 Unë jam caktimin e atyre vlerave në këto 1327 00:54:02,000 --> 00:54:04,210 Kushtet këtu, apo në këtu. 1328 00:54:04,210 --> 00:54:06,690 Dhe atëherë unë jam duke përdorur ato poshtë. 1329 00:54:06,690 --> 00:54:10,960 Sa mirë është kjo tani do të punojë? 1330 00:54:10,960 --> 00:54:12,740 >> E pra, kjo është ende një buggy pak, por le të shohim së paku 1331 00:54:12,740 --> 00:54:13,730 se sa larg kemi marrë. 1332 00:54:13,730 --> 00:54:16,500 Pra më lejoni të shkoj përpara dhe të bëjë beer3. 1333 00:54:16,500 --> 00:54:17,695 Është kjo beer3? 1334 00:54:17,695 --> 00:54:19,410 Yep, kjo është beer3. 1335 00:54:19,410 --> 00:54:21,510 Dhe tani më lejoni të shkoj përpara dhe të drejtuar beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Ne ndoshta mund të kaloni shumicën e tyre. 1338 00:54:25,840 --> 00:54:29,100 Dhe këtu poshtë, shikoni në atë. 1339 00:54:29,100 --> 00:54:31,110 "Një shishe birrë në mur, një shishe birrë, të marrë 1340 00:54:31,110 --> 00:54:34,306 një poshtë, të kalojë atë rreth, shishe të birrës 0 në mur ". 1341 00:54:34,306 --> 00:54:37,570 Por unë jam tërhequr vëmendjen tuaj për gjysmën e vetme e zgjidhjes. 1342 00:54:37,570 --> 00:54:39,620 Lloji i dehur deri këtu. 1343 00:54:39,620 --> 00:54:43,030 Pra, duket se rastet qoshe lindin kur i barabartë me atë që 1344 00:54:43,030 --> 00:54:44,030 dy vlera? 1345 00:54:44,030 --> 00:54:45,020 Audienca: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 DAVID J. Malan: 2 dhe 1. 1347 00:54:46,190 --> 00:54:48,180 Kjo nuk është 1 dhe jo 1. 1348 00:54:48,180 --> 00:54:51,890 Është me të vërtetë vetëm këto dy stanzas fundit të kësaj kënge. 1349 00:54:51,890 --> 00:54:53,890 Pra, çfarë mund të në vend të dëshironi të bëni? 1350 00:54:53,890 --> 00:54:58,890 Kështu që unë duket se kanë kapur rastin kur është në qoftë se unë == me 1, 1351 00:54:58,890 --> 00:55:02,240 pastaj fjala e parë është "shishe", por fjala e dytë 1352 00:55:02,240 --> 00:55:07,230 është "shishe". Por këtu, unë dua të ndryshojë këtë të jetë == 2. 1353 00:55:07,230 --> 00:55:08,570 Dhe në qoftë se ky është rasti, çfarë dua 1354 00:55:08,570 --> 00:55:09,620 fjala e parë që të jetë? 1355 00:55:09,620 --> 00:55:10,430 Audienca: "shishe". 1356 00:55:10,430 --> 00:55:12,890 DAVID J. Malan: "shishe", kështu që për dy shishe. 1357 00:55:12,890 --> 00:55:14,690 Dhe pastaj kjo fjalë këtu duhet të jetë - 1358 00:55:14,690 --> 00:55:15,340 Audienca: "shishe". 1359 00:55:15,340 --> 00:55:17,316 DAVID J. Malan: "shishe", njëjës. 1360 00:55:20,430 --> 00:55:25,160 >> Të gjithë të drejtë, le të zoom jashtë, të shkojnë prapa gjatë këtu, ri-drejtuar bërë, 1361 00:55:25,160 --> 00:55:28,590 ri-drejtuar beer3, lloji 99 përsëri. 1362 00:55:28,590 --> 00:55:30,710 Mirë, "faji segmentimit (core hedhur)." 1363 00:55:30,710 --> 00:55:32,780 Çfarë kam bërë gabim? 1364 00:55:36,050 --> 00:55:38,722 Audienca: Ju nuk kanë një vlerë [padëgjueshme]. 1365 00:55:38,722 --> 00:55:40,480 DAVID J. Malan: Ah, pikë e shkëlqyer. 1366 00:55:40,480 --> 00:55:43,310 Të gjithë të drejtë, kështu që çfarë është e gabuar këtu? 1367 00:55:43,310 --> 00:55:45,450 Pra faji segmentimit, dhe ne jemi në të vërtetë do të shohim 1368 00:55:45,450 --> 00:55:49,020 kjo mjaft disa herë në të ardhmen, me qëllim. 1369 00:55:49,020 --> 00:55:51,030 Por tani për tani, çfarë e bën këtë të vërtetë do të thotë? 1370 00:55:51,030 --> 00:55:53,620 Një faji segmentimit pothuajse gjithmonë do të thotë se ju keni 1371 00:55:53,620 --> 00:55:56,760 u përpoq për të hyrë disi, RAM memorie në kompjuterin tuaj, 1372 00:55:56,760 --> 00:56:00,600 se ju nuk bëni vet, se ju nuk keni të vërtetë kërkuar 1373 00:56:00,600 --> 00:56:02,050 sistemit operativ për të. 1374 00:56:02,050 --> 00:56:04,440 Pra, në këtë rast, njoftim se çfarë kam bërë, e cila është 1375 00:56:04,440 --> 00:56:05,870 meta në logjikën time. 1376 00:56:05,870 --> 00:56:09,500 Unë kam caktuar s1 s2 dhe një vlerë të barabartë nëse i 1. 1377 00:56:09,500 --> 00:56:11,590 Unë e kam bërë gjithashtu se në qoftë se i barabartë me 2. 1378 00:56:11,590 --> 00:56:13,710 Por unë nuk e kanë bërë atë në numër të pafund të tjera 1379 00:56:13,710 --> 00:56:14,690 Mundësitë - 1380 00:56:14,690 --> 00:56:17,940 në veçanti, 3 ose 4, ose dot, dot, dot, 99. 1381 00:56:17,940 --> 00:56:20,100 Pra, një fix për këtë mund të jetë vetëm le 1382 00:56:20,100 --> 00:56:22,190 kanë një kusht tjetër. 1383 00:56:22,190 --> 00:56:26,780 Dhe më lejoni të shkoj në këtu dhe thonë S1 barabartë - 1384 00:56:26,780 --> 00:56:28,180 çfarë duhet të jetë këtu? 1385 00:56:28,180 --> 00:56:28,750 Audienca: [padëgjueshme]. 1386 00:56:28,750 --> 00:56:30,460 >> DAVID J. Malan: "shishe", sepse në rastin e përbashkët, 1387 00:56:30,460 --> 00:56:32,020 kjo është vetëm e njëjta gjë. 1388 00:56:32,020 --> 00:56:35,580 Pra, është e barabartë me kuotën mbyll thonjëzat, "shishe". Kështu që për shumësit 1389 00:56:35,580 --> 00:56:41,010 shishe, dhe pastaj deri këtu, për shishet shumës. 1390 00:56:41,010 --> 00:56:44,580 Mirë, kështu që tani më lejoni të kthehem në dritaren time terminal, 1391 00:56:44,580 --> 00:56:47,200 recompile, ri-drejtuar atë. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Uf. 1394 00:56:49,150 --> 00:56:50,610 Dhe le të bëjë një kontroll të shpejtë mendje e shëndoshë. 1395 00:56:50,610 --> 00:56:52,400 Teknikisht, ne do të duan për të lexuar të gjitha këto për të siguruar 1396 00:56:52,400 --> 00:56:53,370 ata janë korrekt, por le të shohim në 1397 00:56:53,370 --> 00:56:54,640 pak fajtorët njohur. 1398 00:56:54,640 --> 00:56:57,370 3 shishe, shishe 2, 2, 1 shishe 1399 00:56:57,370 --> 00:57:00,380 shishe, 1 shishe, shishe 0. 1400 00:57:00,380 --> 00:57:03,080 Ne duket se kanë të paktën fixed it tani për tani. 1401 00:57:03,080 --> 00:57:06,010 Por kapur këtu është se çfarë një rrëmujë e tmerrshme kjo është perëndia 1402 00:57:06,010 --> 00:57:07,470 vetëm për të zgjidhur një budalla 1403 00:57:07,470 --> 00:57:09,540 një karakter gramatikor detaj. 1404 00:57:09,540 --> 00:57:11,150 Pra, ka një lloj arsye që unë prerë këtë cep 1405 00:57:11,150 --> 00:57:14,090 më herët, sepse ajo është vetëm krejtësisht i bezdisshëm që të ketë për të 1406 00:57:14,090 --> 00:57:15,020 shkruaj këtë kod shumë. 1407 00:57:15,020 --> 00:57:17,530 Por kjo rezulton se ka mënyra pak më elegante e 1408 00:57:17,530 --> 00:57:20,110 shprehur njëjtën gjë e saktë. 1409 00:57:20,110 --> 00:57:22,040 Dhe ne mund ta bëjmë këtë si më poshtë. 1410 00:57:22,040 --> 00:57:23,890 >> Më lejoni të lënë këtë në ekran për një moment dhe 1411 00:57:23,890 --> 00:57:27,320 prezantuar diçka të njohur si një operator tresh. 1412 00:57:27,320 --> 00:57:29,600 Kjo është lloj i një një astar-që është menduar vetëm për të bërë tonë 1413 00:57:29,600 --> 00:57:31,880 jeton një sexier pak, siç është premtuar. 1414 00:57:31,880 --> 00:57:33,130 Dhe unë jam duke shkuar për të bërë këtë si më poshtë. 1415 00:57:33,130 --> 00:57:35,810 Më jepni një varg quajtur s1, dhe le të më 1416 00:57:35,810 --> 00:57:37,200 caktojë atë si vijon. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Shishe", ndryshe "shishe". String s2 merr (i == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Shishe", ndryshe "shishe". 1420 00:57:52,670 --> 00:57:57,050 Pra, çfarë atëherë është dallimi këtu? 1421 00:57:57,050 --> 00:57:59,370 Këto dy rreshta të kodit, unë argumentojnë, mund të 1422 00:57:59,370 --> 00:58:02,200 zëvendësojë këtë rrëmujë tërë. 1423 00:58:02,200 --> 00:58:04,280 Kështu që unë e quaj atë një rrëmujë, vetëm për shkak se ajo lloj fërkon mua 1424 00:58:04,280 --> 00:58:05,940 mënyrë të gabuar se ajo është aq shumë linja të kodit. 1425 00:58:05,940 --> 00:58:06,650 Jo keq. 1426 00:58:06,650 --> 00:58:07,700 Kjo nuk është dizajn i keq. 1427 00:58:07,700 --> 00:58:10,140 Pëlqen, kjo është krejtësisht e saktë dhe të përkryer gjobë. 1428 00:58:10,140 --> 00:58:12,970 Por coding merr lodhshme qoftë se ju keni për të shprehur veten në mënyrë 1429 00:58:12,970 --> 00:58:15,530 mallkuar specifike përsëri dhe përsëri dhe përsëri me një të thjeshtë 1430 00:58:15,530 --> 00:58:16,620 skenar si kjo. 1431 00:58:16,620 --> 00:58:19,470 Pra C ka disa shkurtesat, si kjo. 1432 00:58:19,470 --> 00:58:24,270 Pra, kjo në thelb është e thënë të deklarojë një varg quajtur S1 dhe 1433 00:58:24,270 --> 00:58:32,610 caktojë atë ose këtë vlerë, ose nëse kjo vlerë është i == - 1434 00:58:32,610 --> 00:58:35,290 Na vjen keq, unë duhet të them këtë më qartë. 1435 00:58:35,290 --> 00:58:41,680 Shpallë një S1 ndryshueshme, të caktojë në këtë vlerë nëse kjo është e vërtetë. 1436 00:58:41,680 --> 00:58:44,280 Përndryshe, të caktojë në këtë vlerë. 1437 00:58:44,280 --> 00:58:47,220 Pra, me fjalë të tjera, kjo është lloj i një mënyrë të një-line të 1438 00:58:47,220 --> 00:58:51,490 duke thënë se në qoftë tjetër, por duke bërë një detyrë përgjatë rrugës. 1439 00:58:51,490 --> 00:58:55,540 Pra, nëse unë është 1, atëherë shkoni përpara dhe e quajnë këtë "shishe". Dhe 1440 00:58:55,540 --> 00:58:59,830 atëherë kjo tjetër, e quajti atë "shishe". Ndërkohë, s2, 1441 00:58:59,830 --> 00:59:04,060 Fjala e dytë që ne kemi nevojë për të përcaktuar, nëse i barabartë me 2, ne do 1442 00:59:04,060 --> 00:59:08,350 s2 vendosur në "shishe". Përndryshe, vendosur atë në "shishe". Dhe çfarë 1443 00:59:08,350 --> 00:59:11,460 kjo do të thotë tani është që unë mund të shkoni nëpër këtë dhe fshini të gjithë 1444 00:59:11,460 --> 00:59:12,860 këto rreshta të kodit. 1445 00:59:12,860 --> 00:59:17,220 Dhe kur them, disi qesharake, se kjo është tani 1446 00:59:17,220 --> 00:59:20,060 sexier, kjo është sexier në lloj kuptim stilistik. 1447 00:59:20,060 --> 00:59:22,660 Fakti që funksionalisht, ky kod është në të vërtetë do të 1448 00:59:22,660 --> 00:59:24,610 të bëjë të njëjtën gjë e saktë. 1449 00:59:24,610 --> 00:59:26,890 Dhe, edhe pse ai mund të duket pak e fshehtë në fillim 1450 00:59:26,890 --> 00:59:29,250 shikim, sepse ne nuk e kemi parë këtë ndërtimin e një të parë, unë do të 1451 00:59:29,250 --> 00:59:31,850 argumentojnë se ajo përfundimisht do të jetë shumë më shumë 1452 00:59:31,850 --> 00:59:34,820 lexueshëm dhe shumë e lehtë për ne njerëzit të lloj 1453 00:59:34,820 --> 00:59:36,830 kuptojnë, sepse tani ju mund të lexoni 1454 00:59:36,830 --> 00:59:38,830 Kodi gjitha në një rresht. 1455 00:59:38,830 --> 00:59:41,550 Është ende e ngjashme në frymë të një rast, ku kjo është 1456 00:59:41,550 --> 00:59:44,920 kusht dhe atëherë kjo është ajo që është brenda, nëse dhe kjo 1457 00:59:44,920 --> 00:59:46,480 është ajo që është brenda tjetër. 1458 00:59:46,480 --> 00:59:49,450 Por ne mund ta bëjmë këtë vetëm shumë më elegante. 1459 00:59:49,450 --> 00:59:52,650 >> Dhe në qoftë se unë tani të shkojnë prapa në terminalin e mia, duke fshirë të gjitha 1460 00:59:52,650 --> 00:59:55,530 e këtyre linjave dhe zëvendësuar ato me vetëm ata dy, 1461 00:59:55,530 --> 01:00:00,150 recompile, ri-drejtuara shishet e birrës me 99, njoftim se mia 1462 01:00:00,150 --> 01:00:03,350 gramatika është, në fakt, ende saktë. 1463 01:00:03,350 --> 01:00:06,160 Pra, përsëri, diçka për të filluar. 1464 01:00:06,160 --> 01:00:08,840 2 shishe të birrës, 1 shishe birrë. 1465 01:00:08,840 --> 01:00:09,370 Duket e drejtë. 1466 01:00:09,370 --> 01:00:10,100 Po. 1467 01:00:10,100 --> 01:00:13,900 Kështu që nuk kemi një zgjidhje shumë më i ngjeshur. 1468 01:00:13,900 --> 01:00:16,020 Pra, kjo, shumë, si ju merrni më të rehatshme me C nuk, 1469 01:00:16,020 --> 01:00:18,630 domosdoshmërisht me pset parë apo edhe të dytë, por 1470 01:00:18,630 --> 01:00:21,170 kuptojnë se këto punime mund të na lejojë të bëjmë gjëra kurrë 1471 01:00:21,170 --> 01:00:22,810 më shumë elegante. 1472 01:00:22,810 --> 01:00:25,200 Tani le të bëjmë një gjë tjetër këtu. 1473 01:00:25,200 --> 01:00:31,460 Më lejoni të shkoj përpara dhe të hapur deri return1.c. 1474 01:00:31,460 --> 01:00:34,340 Tani le të fillojë për të zgjidhur një problem tjetër në një mënyrë që 1475 01:00:34,340 --> 01:00:37,140 na lejon të shkruani kodin më të sofistikuar. 1476 01:00:37,140 --> 01:00:39,960 >> Kështu që këtu është një program i thjeshtë pak qëllimi i të cilit në jetë 1477 01:00:39,960 --> 01:00:41,870 është rritja e vlerave. 1478 01:00:41,870 --> 01:00:43,100 Dhe në fakt, le të marrin një hap prapa. 1479 01:00:43,100 --> 01:00:44,400 Më lejoni të bëjë këtë me dorë. 1480 01:00:44,400 --> 01:00:52,200 Më lejoni të bëj të përfshijë dhe int main (void). 1481 01:00:52,200 --> 01:00:53,450 Dhe më lejoni të thërrasë këtë increment.c. 1482 01:00:57,150 --> 01:00:58,570 Dhe çfarë unë dua të bëj? 1483 01:00:58,570 --> 01:01:02,240 Unë jam duke shkuar për të shkuar përpara dhe të thonë diçka si - 1484 01:01:02,240 --> 01:01:04,280 do që ne e quajmë numrat njëjtë - 1485 01:01:04,280 --> 01:01:04,980 x int. 1486 01:01:04,980 --> 01:01:13,670 Pra x int merr 2, x printf është% d, linjë e re, x. 1487 01:01:13,670 --> 01:01:16,780 Kështu që unë jam i shtypur shpejt, por një lloj të stuff njohur tani. 1488 01:01:16,780 --> 01:01:18,830 Atëherë unë jam duke shkuar për të bërë x + +. 1489 01:01:18,830 --> 01:01:21,710 Atëherë unë jam duke shkuar për të shkruar atë fjalinë e njëjtë përsëri. 1490 01:01:21,710 --> 01:01:24,550 Dhe atëherë unë jam duke shkuar për t'u kthyer vetëm për të lënë 0 programin. 1491 01:01:24,550 --> 01:01:25,960 Të gjithë të drejtë, kështu që ky është një program që 1492 01:01:25,960 --> 01:01:26,960 increments një numër. 1493 01:01:26,960 --> 01:01:29,830 Është parë do të nisja diçka për 2, dhe atëherë është 1494 01:01:29,830 --> 01:01:33,470 Rritja do të shtypura atë dhe atë përsëri. 1495 01:01:33,470 --> 01:01:36,930 >> Pra, le të drejtuar rritje të, program tepër të thjeshtë. 1496 01:01:36,930 --> 01:01:40,940 Por mendoj se tani unë dua të kubike vlerën, kështu që nuk 1497 01:01:40,940 --> 01:01:42,490 diçka disi arbitrare. 1498 01:01:42,490 --> 01:01:45,140 Dhe unë në fakt dua të bëj x merr kubike e saj. 1499 01:01:45,140 --> 01:01:47,570 Kështu që unë mund të përdorin atë që quhet funksioni pow, por unë nuk 1500 01:01:47,570 --> 01:01:48,650 të vërtetë e di se ku është ende. 1501 01:01:48,650 --> 01:01:50,580 Kështu që unë jam duke shkuar për të bërë këtë mënyrë modës së vjetër. 1502 01:01:50,580 --> 01:01:54,550 x herë kjo është e barabartë me x here x x herë. 1503 01:01:54,550 --> 01:01:56,880 Kështu që unë jam cubing vlerën, shumëzuar atë me vete përsëri 1504 01:01:56,880 --> 01:02:00,440 dhe përsëri dhe përsëri, në mënyrë që ne të merrni fuqi 1505 01:02:00,440 --> 01:02:02,050 e 3 në këtë rast. 1506 01:02:02,050 --> 01:02:06,000 Deri tani numrat unë duhet të shtypura duhet të jetë, siç do të shohim 1507 01:02:06,000 --> 01:02:08,450 këtu - të bëjë rritje të, kështu që në fakt nuk është e vërtetë ardhura 1508 01:02:08,450 --> 01:02:10,260 më, por ne do të lënë vetëm emrin - 1509 01:02:10,260 --> 01:02:11,590 2 dhe pastaj 8. 1510 01:02:11,590 --> 01:02:17,670 Tani, ne kemi fillimet e një mundësi për sqimë 1511 01:02:17,670 --> 01:02:21,570 këtu, ku kjo gjë cubing e shumëzuar një numër 1512 01:02:21,570 --> 01:02:24,680 vetë në vetvete në vetvete ndjehet si kjo mund të jetë vetëm 1513 01:02:24,680 --> 01:02:27,920 dobishme që të ketë si një funksion, ashtu si dikush vendosi 1514 01:02:27,920 --> 01:02:30,430 vjet më parë - ju e dini, lloj i dobishëm në qoftë se njëri prej nesh ulet 1515 01:02:30,430 --> 01:02:33,120 dhe shkruan printf në mënyrë që pjesa tjetër e botës mund të përdorin atë, 1516 01:02:33,120 --> 01:02:36,160 pse nuk kemi ulen dhe të shkruajnë një funksion të quajtur kubike 1517 01:02:36,160 --> 01:02:39,250 që e bën këtë cubing për ne kështu që ne nuk kemi në dorë 1518 01:02:39,250 --> 01:02:41,500 zbatojë nocionin e vlerave cubing këtu? 1519 01:02:41,500 --> 01:02:44,040 >> Pra një shembull të thjeshtë, por le të shkojnë përpara dhe të përdorni këtë si një 1520 01:02:44,040 --> 01:02:46,280 mundësi për të shkruar funksionin tonë. 1521 01:02:46,280 --> 01:02:49,110 Pra deri tani, ne kemi përdorur vetëm kryesor, dhe ne kemi përdorur tjera 1522 01:02:49,110 --> 01:02:51,780 Funksionet e njerëzve, por ne nuk kemi shkruar tonat. 1523 01:02:51,780 --> 01:02:52,650 Pra, këtu ne do të shkojmë. 1524 01:02:52,650 --> 01:02:56,330 Unë jam duke shkuar për të shkuar përpara dhe të shkruajnë një funksion të quajtur kubike. 1525 01:02:56,330 --> 01:02:58,490 Dhe unë jam duke shkuar për të marrë që të ketë një kontribut. 1526 01:02:58,490 --> 01:03:02,070 Pra, kontributi i saj do të jetë një numër të plotë. 1527 01:03:02,070 --> 01:03:03,570 Dhe çfarë është ajo do të bëni? 1528 01:03:03,570 --> 01:03:08,500 Ajo do të shpallë dalje int = input input herë 1529 01:03:08,500 --> 01:03:09,880 herë input. 1530 01:03:09,880 --> 01:03:12,190 Dhe pastaj ajo do të kthehet se prodhimit. 1531 01:03:12,190 --> 01:03:14,500 Dhe atëherë unë duhet të jenë specifike tani. 1532 01:03:14,500 --> 01:03:16,820 Ky funksion do të kthehet një int. 1533 01:03:16,820 --> 01:03:19,130 Kështu që këtu, atëherë është se si ju do të shkruani funksionet tuaja. 1534 01:03:19,130 --> 01:03:20,850 Ju së pari të vendosë se çfarë është emri i juaj 1535 01:03:20,850 --> 01:03:21,720 Funksioni do të jetë. 1536 01:03:21,720 --> 01:03:23,964 Dhe në përgjithësi, diçka shpjeguese është e mirë, kështu që unë do të 1537 01:03:23,964 --> 01:03:25,060 quajnë atë kubike. 1538 01:03:25,060 --> 01:03:27,180 Atëherë ju duhet të përcaktojë se çfarë ajo do të kthehet, çfarë është 1539 01:03:27,180 --> 01:03:28,240 prodhimin e saj do të jetë. 1540 01:03:28,240 --> 01:03:29,595 Dhe ne nuk kemi mundësi që shumë ende. 1541 01:03:29,595 --> 01:03:32,260 Int, char, noton, bool, string. 1542 01:03:32,260 --> 01:03:34,260 Tani për tani, unë jam duke shkuar për të rrinë me një int, sepse unë dua atë 1543 01:03:34,260 --> 01:03:35,880 për t'u kthyer një numër të plotë. 1544 01:03:35,880 --> 01:03:38,770 Atëherë ju duhet të përcaktojë se çfarë inputet e saj, nëse ka ndonjë, janë. 1545 01:03:38,770 --> 01:03:41,570 Dhe në qoftë se kubike merr një argument, merr diçka në mes 1546 01:03:41,570 --> 01:03:44,970 kllapat, ju duhet të jepni këtë argument një emër që 1547 01:03:44,970 --> 01:03:47,860 ju mund të telefononi atë si diçka që ju jeni zbatimin ose me shkrim 1548 01:03:47,860 --> 01:03:50,550 ky funksion, dhe ju keni për të dhënë atë një lloj, që në këtë 1549 01:03:50,550 --> 01:03:51,810 Rasti do të jetë int. 1550 01:03:51,810 --> 01:03:54,690 Pra me pak fjalë, kubike është një funksion që merr një numër të plotë 1551 01:03:54,690 --> 01:03:57,560 si input dhe kthehet si një numër të plotë prodhimit. 1552 01:03:57,560 --> 01:03:59,240 >> Pra, çfarë e bën atë të bëjë me atë input? 1553 01:03:59,240 --> 01:04:03,710 E pra, në përputhje 14, unë deklaroj një dalje ndryshueshme quajtur, dhe unë 1554 01:04:03,710 --> 01:04:07,410 caktojë atë vlerën, herë herë input input input. 1555 01:04:07,410 --> 01:04:11,490 Dhe atëherë unë kthehen prodhimit. 1556 01:04:11,490 --> 01:04:14,890 Pra, si mund ta përdorin këtë atëherë? 1557 01:04:14,890 --> 01:04:19,210 Çfarë mund të ndryshojë këto karaktere theksuara në linjë 1558 01:04:19,210 --> 01:04:21,006 7 të, mendoni ju? 1559 01:04:21,006 --> 01:04:21,800 Audienca: [padëgjueshme]. 1560 01:04:21,800 --> 01:04:25,570 DAVID J. Malan: Yeah, kështu kubike e x. 1561 01:04:25,570 --> 01:04:28,290 Pra, x është një variabël, që do të thotë se ka disa vlera. 1562 01:04:28,290 --> 01:04:30,190 Për fat të mirë, kjo është e tipit integer. 1563 01:04:30,190 --> 01:04:34,280 Dhe për shkak se x është një int, që do të thotë unë mund të kalojë atë në kubike. 1564 01:04:34,280 --> 01:04:39,500 Dhe edhe pse unë jam thelbësore vlerën e x me vlerë 1565 01:04:39,500 --> 01:04:42,780 nga x kubike, siç ka qenë rasti deri më tani, çdo herë që 1566 01:04:42,780 --> 01:04:46,150 kanë shenjë të barabartë dhe një linjë e kodit, sende të drejtë 1567 01:04:46,150 --> 01:04:49,090 merr ekzekutuar dhe pastaj merr caktuar për 1568 01:04:49,090 --> 01:04:50,150 vlera në të majtë. 1569 01:04:50,150 --> 01:04:52,950 Pra, rendi i operacioneve është si ne do të shpresojmë. 1570 01:04:52,950 --> 01:04:56,620 Pra, e bën këtë punë? 1571 01:04:56,620 --> 01:04:58,410 E pra, më lejoni të shkoj këtu poshtë. 1572 01:04:58,410 --> 01:04:59,970 Më lejoni të hapur dritaren time terminali. 1573 01:04:59,970 --> 01:05:03,610 Më lejoni të bëjnë rritje të, Enter. 1574 01:05:03,610 --> 01:05:07,140 "Deklarata e nënkuptuar 'kubike' funksion është i pavlefshëm në 1575 01:05:07,140 --> 01:05:13,700 C99. "Si një mënjanë, C99 C referohet gjuhës ashtu siç ishte 1576 01:05:13,700 --> 01:05:16,790 përcaktuar në vitin 1999, e cila ishte një përditësim mbi versionin nga 1577 01:05:16,790 --> 01:05:19,360 1989, e cila është një freskimin mbi origjinal. 1578 01:05:19,360 --> 01:05:21,740 Pra, kjo është e gjitha që do të thotë. 1579 01:05:21,740 --> 01:05:24,250 >> Pra, çfarë do të thotë se "deklarata e nënkuptuar 1580 01:05:24,250 --> 01:05:26,790 'kubike' funksion është i pavlefshëm? "Është e drejtë këtu. 1581 01:05:26,790 --> 01:05:28,430 Kjo është e drejtë atje në linjë 12. 1582 01:05:28,430 --> 01:05:30,460 Audienca: [padëgjueshme]. 1583 01:05:30,460 --> 01:05:30,730 DAVID J. Malan: Çfarë është ajo? 1584 01:05:30,730 --> 01:05:32,470 Audienca: Kjo nuk është parë. 1585 01:05:32,470 --> 01:05:33,540 DAVID J. Malan: Kjo nuk është e para. 1586 01:05:33,540 --> 01:05:34,740 Pra, kjo është gjë. 1587 01:05:34,740 --> 01:05:38,190 C është lloj i trashë, ose përpiluesit C janë lloj i trashë. 1588 01:05:38,190 --> 01:05:41,060 Ata me të vërtetë vetëm bëni atë që ju them që ata të bëjnë. 1589 01:05:41,060 --> 01:05:44,770 Dhe ata, në mënyrë të veçantë, vetëm lexoni kodin tuaj të lartë deri në fund, 1590 01:05:44,770 --> 01:05:45,620 majta në të djathtë. 1591 01:05:45,620 --> 01:05:49,140 Pra, nëse përpilues, tingëllimë, është lexuar kodin tuaj, alineja 1, ajo 1592 01:05:49,140 --> 01:05:50,120 shifra se si ta bëni këtë. 1593 01:05:50,120 --> 01:05:50,940 Oh, këtu vjen kryesore. 1594 01:05:50,940 --> 01:05:53,000 Mirë, më lejoni të shkoj përpara dhe të deklarojë një ndryshore x. 1595 01:05:53,000 --> 01:05:54,160 Më lejoni të shkruar diçka. 1596 01:05:54,160 --> 01:05:55,890 Linja 7, çfarë dreq është kubike? 1597 01:05:55,890 --> 01:05:58,230 Kjo nuk është deklaruar në stdio.h. 1598 01:05:58,230 --> 01:06:00,950 Ajo nuk ka ardhur me C. Unë nuk kam asnjë ide se çfarë të bëni. 1599 01:06:00,950 --> 01:06:03,960 Dhe kështu tingëllimë vetëm bails dhe shpërblej me atë mesazh gabimi. 1600 01:06:03,960 --> 01:06:05,850 Kështu që ne mund të rregullojmë këtë në disa mënyra. 1601 01:06:05,850 --> 01:06:10,530 Ne mund të mësojmë se çfarë tingëllimë kubike është duke lëvizur vetëm kur 1602 01:06:10,530 --> 01:06:11,820 Deklarata është. 1603 01:06:11,820 --> 01:06:14,640 Kështu që unë prerë dhe të ngjit atë në majë kryesore. 1604 01:06:14,640 --> 01:06:17,770 Tani e kuptojnë se vetëm për shkak kryesor nuk është më parë, kjo është 1605 01:06:17,770 --> 01:06:19,150 ekzekutuar ende nga default. 1606 01:06:19,150 --> 01:06:20,060 Kryesor është kryesore. 1607 01:06:20,060 --> 01:06:21,022 Kjo është funksioni i parazgjedhur emrin. 1608 01:06:21,022 --> 01:06:22,930 Kjo nuk ka rëndësi se ku ajo është në një skedar. 1609 01:06:22,930 --> 01:06:26,910 Por të paktën tani tingëllimë ka parë kubike para se unë e përdorin atë. 1610 01:06:26,910 --> 01:06:28,500 Pra, le të shohim nëse është tingëllimë lumtur tani. 1611 01:06:28,500 --> 01:06:31,410 Të bëjë rritje të, ajo ka hartuar këtë kohë. 1612 01:06:31,410 --> 01:06:33,060 >> Më lejoni të drejtuar rritje të. 1613 01:06:33,060 --> 01:06:34,810 Dhe me të vërtetë, ajo duket të jetë duke punuar. 1614 01:06:34,810 --> 01:06:36,810 Tani, ju mund të dalë me skenare ku përfundimisht 1615 01:06:36,810 --> 01:06:38,650 kjo nuk është e mundur për të vënë çdo funksion 1616 01:06:38,650 --> 01:06:39,740 përmbi çdo funksion tjetër. 1617 01:06:39,740 --> 01:06:42,140 Ju do të merrni mbërthyer në këtë lak të pafund në realitet, 1618 01:06:42,140 --> 01:06:43,480 ku ky djalë dëshiron të jetë këtu, por kjo 1619 01:06:43,480 --> 01:06:44,390 djalë duhet të jetë atje. 1620 01:06:44,390 --> 01:06:45,830 Kështu që nuk gjithmonë punë. 1621 01:06:45,830 --> 01:06:49,020 Pra fatmirësisht, C ka një zgjidhje më elegante. 1622 01:06:49,020 --> 01:06:50,790 Unë jam duke shkuar për të vënë këtë përsëri aty ku ishte, vetëm për shkak se unë 1623 01:06:50,790 --> 01:06:53,390 preferojnë, si një çështje e parimit, që gjithmonë të jetë kryesore 1624 01:06:53,390 --> 01:06:55,550 në krye, sepse kjo është vetëm mirë për të parë se çfarë ky program 1625 01:06:55,550 --> 01:06:56,920 bën by default. 1626 01:06:56,920 --> 01:06:58,950 Dhe ajo që unë jam duke shkuar për të bërë deri këtu është shpallë atë që quhet 1627 01:06:58,950 --> 01:07:00,250 një prototip. 1628 01:07:00,250 --> 01:07:05,730 Unë jam duke shkuar për të ri-deklaruar funksionin tim kubike nga fjalë për fjalë 1629 01:07:05,730 --> 01:07:07,180 kopjimi dhe pasting. 1630 01:07:07,180 --> 01:07:08,290 Në fakt, kjo nuk është fjalë për fjalë. 1631 01:07:08,290 --> 01:07:13,060 Pra, fjalë për fjalë kopjimi dhe pasting linjë 15 1632 01:07:13,060 --> 01:07:15,160 lart vijës 6. 1633 01:07:15,160 --> 01:07:17,010 Kjo nuk ka rëndësi se çfarë Shkarko këtë përfundon deri në. 1634 01:07:17,010 --> 01:07:18,380 Ajo ndodh të jetë në përputhje 4. 1635 01:07:18,380 --> 01:07:19,950 Por kjo nuk duhet të jetë para kryesore. 1636 01:07:19,950 --> 01:07:21,150 Por vini re ndryshimin. 1637 01:07:21,150 --> 01:07:24,100 Line 4 përfundon me pikëpresje, që do të thotë hey, 1638 01:07:24,100 --> 01:07:27,510 Tingëllimë, të marrë fjalën time për atë se ekziston një funksion 1639 01:07:27,510 --> 01:07:31,350 quajtur kubike që merr një int dhe kthen një int. 1640 01:07:31,350 --> 01:07:33,020 Por unë nuk jam gonna të ju tregojnë se çfarë është ajo ende. 1641 01:07:33,020 --> 01:07:35,180 Vetëm e di që unë premtimin për të ju them përfundimisht. 1642 01:07:35,180 --> 01:07:38,490 Dhe me të vërtetë, tani kjo është në rregull se kjo është poshtë. 1643 01:07:38,490 --> 01:07:41,275 >> Pra, kjo është në përgjithësi i mirë, sepse atëherë në krye të 1644 01:07:41,275 --> 01:07:44,240 dosjen tuaj, ju vetëm mund të nxjerr nga goja, të shpejtë-zjarr, një linjë 1645 01:07:44,240 --> 01:07:46,470 secila, çfarë emrat e funksioneve tuaja janë, çfarë tyre 1646 01:07:46,470 --> 01:07:49,120 inputet janë, çfarë rezultatet e tyre. 1647 01:07:49,120 --> 01:07:52,210 Dhe për të qenë më të qartë, të dhëna në përgjithësi do të thotë argumentin ose 1648 01:07:52,210 --> 01:07:54,110 parametër, sinonime. 1649 01:07:54,110 --> 01:07:56,890 Prodhimi do të thotë kthimi i vlerës, çfarë e bën atë 1650 01:07:56,890 --> 01:07:58,700 dora përsëri në mua. 1651 01:07:58,700 --> 01:08:03,420 Pra, në këtë rast këtu, kubike është deklaruar në krye, por 1652 01:08:03,420 --> 01:08:06,940 përcaktuar, i njohur ndryshe si zbatohet, në pjesën e poshtme. 1653 01:08:06,940 --> 01:08:09,620 Pra, tani le të kthehemi këtu dhe ri-drejtuar këtë. 1654 01:08:09,620 --> 01:08:13,430 Kështu që tani më lejoni të shkoj përpara dhe të ri-drejtuar bërë, ri-drejtuar rritje. 1655 01:08:13,430 --> 01:08:16,500 Dhe tani duket të jetë duke punuar vetëm gjobë. 1656 01:08:16,500 --> 01:08:19,450 Deri tani ne mund të shkoni përpara dhe faktorit nga diçka si 1657 01:08:19,450 --> 01:08:23,720 birrë shembull në këtë version të katërt. 1658 01:08:23,720 --> 01:08:25,590 Pra më lejoni të lëvizni poshtë këtu. 1659 01:08:25,590 --> 01:08:28,149 Dhe vëreni se unë lloj i mori këtë mësim në zemër vetëm tani. 1660 01:08:28,149 --> 01:08:31,140 Fakti që unë u kënduar Stanza e njëjtë përsëri dhe 1661 01:08:31,140 --> 01:08:34,130 përsëri dhe përsëri, të njëjtën linjë në kor këngën, ndjeu 1662 01:08:34,130 --> 01:08:36,439 like pse nuk kam faktor që jashtë në një funksion? 1663 01:08:36,439 --> 01:08:38,470 Dhe vërtet, kjo duhet të jetë një nga motivet. 1664 01:08:38,470 --> 01:08:40,960 Përveç faktit se dikush tjetër në botë mund të dëshironi 1665 01:08:40,960 --> 01:08:42,390 të përdorni një funksion kubike - 1666 01:08:42,390 --> 01:08:44,560 kjo është një arsye e mirë për të faktor diçka dhe shkruani tuaj 1667 01:08:44,560 --> 01:08:45,720 funksion vetë me porosi - 1668 01:08:45,720 --> 01:08:48,720 në qoftë se ka një copë të kodit në programin tuaj që vetëm bën 1669 01:08:48,720 --> 01:08:51,370 kuptim konceptual, se ju lloj i duan për të dhënë atë një 1670 01:08:51,370 --> 01:08:53,740 Emri - si në këtë rast, kor - 1671 01:08:53,740 --> 01:08:57,380 atëherë ju mund të shkruani në mënyrë të ngjashme se si një funksion të veçantë. 1672 01:08:57,380 --> 01:08:59,560 Ju nuk duhet të shkruani gjithçka në kryesore në qoftë se ajo vetëm 1673 01:08:59,560 --> 01:09:02,609 ndihet pastër për të ndarë atë dhe t'i jepte një emër. 1674 01:09:02,609 --> 01:09:05,529 >> Pra, në këtë rast këtu, vëreni se unë kam një koment majë 1675 01:09:05,529 --> 01:09:06,859 ky funksion që vetëm këndon në lidhje 1676 01:09:06,859 --> 01:09:08,630 Numrat e specifikuara e shisheve. 1677 01:09:08,630 --> 01:09:10,609 Vini re këtu se unë nuk kam nevojë për të thirrur këto 1678 01:09:10,609 --> 01:09:12,520 gjërat input dhe output. 1679 01:09:12,520 --> 01:09:16,090 Në fakt, këtë herë unë vetëm e quajti b time input për shishe. 1680 01:09:16,090 --> 01:09:19,960 Dhe vini re këtu, i pavlefshëm sugjeron çfarë? 1681 01:09:19,960 --> 01:09:21,309 Kjo kor - 1682 01:09:21,309 --> 01:09:22,660 Audienca: Nuk kthejë atë. 1683 01:09:22,660 --> 01:09:23,870 DAVID J. Malan: Nuk kthehen një vlerë. 1684 01:09:23,870 --> 01:09:26,800 Dhe me të vërtetë, funksionet nuk duhet të kthehen në vlera. 1685 01:09:26,800 --> 01:09:28,060 Ata vetëm mund të bëjnë diçka. 1686 01:09:28,060 --> 01:09:30,270 Ata mund të kenë atë që janë quajtur efekte anësore, të cilat në këtë 1687 01:09:30,270 --> 01:09:33,109 rast është vetëm një bandë e tërë e shtypjes në ekran. 1688 01:09:33,109 --> 01:09:36,580 Pra, vini re se ky kod këtu, unë fjalë për fjalë vetëm vodhi nga 1689 01:09:36,580 --> 01:09:37,680 Shembulli më parë. 1690 01:09:37,680 --> 01:09:39,930 Dallimi i vetëm është në vend të përdorimit si i tim 1691 01:09:39,930 --> 01:09:42,890 ndryshueshme, unë jam tani duke përdorur b si variabël tim. 1692 01:09:42,890 --> 01:09:45,880 Pra, unë kam b këtu poshtë, unë kam b këtu poshtë, unë kam b 1693 01:09:45,880 --> 01:09:47,109 minus 1 këtu poshtë. 1694 01:09:47,109 --> 01:09:49,279 Por kodi është saktësisht e njëjtë. 1695 01:09:49,279 --> 01:09:52,529 Por vetëm për të ju tregojnë se si ne tani mund të përdorni këtë, më lejoni të shkoj 1696 01:09:52,529 --> 01:09:56,780 përpara dhe në të vërtetë të ndryshojë kjo të jetë një lak për të. 1697 01:09:56,780 --> 01:10:03,850 për (i int = N; I> N; I -). 1698 01:10:03,850 --> 01:10:06,230 >> Kështu që unë kam vjedhur që nga shembullin tonë të mëparshëm. 1699 01:10:06,230 --> 01:10:08,970 Më parë, kjo është në përputhje 37 që unë do të kanë filluar 1700 01:10:08,970 --> 01:10:10,640 kënduar këtë këngë bezdisshëm. 1701 01:10:10,640 --> 01:10:15,810 Por në vend, unë jam vetëm duke shkuar për tani thirrje korin e i. 1702 01:10:15,810 --> 01:10:16,870 Bërë. 1703 01:10:16,870 --> 01:10:20,260 Deri tani në çdo përsëritje të këtij loop, unë e quaj këtë tjetrin 1704 01:10:20,260 --> 01:10:22,220 , funksioni kor, që unë ndodhi të shkruar. 1705 01:10:22,220 --> 01:10:24,110 Kjo nuk ishte shkruar nga dikush tjetër vjet më parë. 1706 01:10:24,110 --> 01:10:27,930 Por kor, ndërkohë, përdor printf për të shtypur 1707 01:10:27,930 --> 01:10:29,840 nga këto katër rreshta. 1708 01:10:29,840 --> 01:10:32,720 Por fakti që unë jam duke bërë thirrje kor përsëri dhe përsëri në një 1709 01:10:32,720 --> 01:10:35,900 lak thotë që unë jam duke shkuar për të marrë, në fund, 1710 01:10:35,900 --> 01:10:39,310 Kënga e saktë njëjtë si unë kam deri tani. 1711 01:10:39,310 --> 01:10:42,130 Pra me pak fjalë, tani në qoftë se unë shoh prapa në kodin tim, edhe pse 1712 01:10:42,130 --> 01:10:44,240 funksionalisht kjo është ekuivalente, vëreni se ajo është 1713 01:10:44,240 --> 01:10:46,020 filluar të marrë edhe më shumë i lexueshëm. 1714 01:10:46,020 --> 01:10:48,410 Unë nuk e di saktësisht se si GetInt 1715 01:10:48,410 --> 01:10:49,250 është zbatuar. 1716 01:10:49,250 --> 01:10:52,050 Sinqerisht, unë nuk e di se si kor është zbatuar. 1717 01:10:52,050 --> 01:10:52,970 Por kjo nuk ka rëndësi për mua. 1718 01:10:52,970 --> 01:10:55,620 Unë nuk bëj kujdes, sepse tani unë mund të lloj të, si një njeri, të lexuar 1719 01:10:55,620 --> 01:10:57,050 kjo nga maja e deri në fund. 1720 01:10:57,050 --> 01:10:59,950 Dhe për shkak se funksionet janë quajtur sipas asaj që ata 1721 01:10:59,950 --> 01:11:02,910 bërë, kodi im është gjithnjë e më i lexueshëm. 1722 01:11:02,910 --> 01:11:05,190 Dhe si programet tona të merrni shumë më kompleks - 1723 01:11:05,190 --> 01:11:07,220 deri në fund të semestrit, ju do të jetë me shkrim qindra e linjave të 1724 01:11:07,220 --> 01:11:10,970 e kodit në gjuhë të tilla si PHP dhe JavaScript dhe si - 1725 01:11:10,970 --> 01:11:13,550 ju do të gjeni se është shumë më e lehtë se sa për të mbajtur gjurmët e 1726 01:11:13,550 --> 01:11:14,080 atë që keni bërë. 1727 01:11:14,080 --> 01:11:15,810 Dhe kur ju filloni bashkëpunon me miqtë apo 1728 01:11:15,810 --> 01:11:19,010 partnerët apo kolegët, ju do të jetë në gjendje të shkruaj më shumë 1729 01:11:19,010 --> 01:11:22,910 programe masive duke filluar për të ushtruar këto themelore 1730 01:11:22,910 --> 01:11:23,990 blloqe ndërtimi. 1731 01:11:23,990 --> 01:11:25,550 >> Pra, me tha se, pse nuk e quajmë atë një ditë? 1732 01:11:25,550 --> 01:11:27,190 Dhe ne do të shihemi të mërkurën. 1733 01:11:27,190 --> 01:11:33,611 [Duartrokitje]