1 00:00:00,000 --> 00:00:00,980 2 00:00:00,980 --> 00:00:04,410 >> [Mūzikas atskaņošanai] 3 00:00:04,410 --> 00:00:11,147 4 00:00:11,147 --> 00:00:12,230 DAVID J. Malan: Nu labi. 5 00:00:12,230 --> 00:00:16,440 Tas ir CS50, un šis gals ir 2 nedēļas. 6 00:00:16,440 --> 00:00:18,480 Tātad šodien, mēs ejam turpināt mūsu izskatu 7 00:00:18,480 --> 00:00:21,150 pie kā mēs pārstāvam lietas zem hood-- attālinās 8 00:00:21,150 --> 00:00:23,520 No skaitļiem, piemēram, veselus skaitļus un peldošā punkta vērtības 9 00:00:23,520 --> 00:00:26,810 un koncentrējoties uz stīgām un galu galā vairāk interesantas programmas. 10 00:00:26,810 --> 00:00:30,140 Bet mēs arī to apskatīt Pāris domēna specifisku problems-- 11 00:00:30,140 --> 00:00:33,620 pirmais no kuriem būs būt iesaistot kriptogrāfija, 12 00:00:33,620 --> 00:00:36,570 māksla šifrēšanas informāciju , kurā jūs redzat iepriekš šeit 13 00:00:36,570 --> 00:00:41,480 ir priekšstats par Radio Orphan Annie s noslēpums dekodera gredzenu no vakardienas. 14 00:00:41,480 --> 00:00:46,490 >> Tas ir tiešām ļoti primitīva forma un bērniem draudzīgu forma cryptopgraphy 15 00:00:46,490 --> 00:00:50,590 saskaņā ar kuru šis gredzens ir divas disks-- viens iekšpusē un viens ārpusē. 16 00:00:50,590 --> 00:00:54,740 Un, pagriežot vienu no tiem, jūs varat būtībā rindā vēstules, piemēram, A 17 00:00:54,740 --> 00:00:59,520 līdz Z ar citiem burtiem piemēram, B caur A. citiem vārdiem sakot, 18 00:00:59,520 --> 00:01:03,730 Jūs varat burtiski pagriezt alfabētu, tādējādi nāk klajā ar kartēšanu no 19 00:01:03,730 --> 00:01:07,820 vēstules vēstulēm tā, ka, ja jūs gribēju nosūtīt slepenu ziņu 20 00:01:07,820 --> 00:01:11,820 lai kāds, piemēram, Annie, jūs varētu uzrakstīt nosaka jūsu ziņojumu un pēc tam rotēt 21 00:01:11,820 --> 00:01:15,370 burti, kur, ja tu domā teikt "A", jūs tā vietā saka "B" 22 00:01:15,370 --> 00:01:17,280 tu teikt, "B" tu nevis teikt "C" - 23 00:01:17,280 --> 00:01:20,240 vai kaut kas nedaudz vairāk gudrs nekā that-- un tad, galu galā, 24 00:01:20,240 --> 00:01:24,630 tik ilgi, kamēr Annie ir šo dekoderu gredzenu, viņa var atšifrēt ziņu. 25 00:01:24,630 --> 00:01:28,540 Tagad, jūs varat atgādināt, jo fakts, ka šis tika izmantots ļoti slavens filmu, kas 26 00:01:28,540 --> 00:01:31,140 spēlē reklāmas nauseum laikā Ziemassvētku sezonā. 27 00:01:31,140 --> 00:01:32,650 Pieņemsim apskatīt šeit. 28 00:01:32,650 --> 00:01:35,294 29 00:01:35,294 --> 00:01:37,210 Ralphie PARKER: "Be to zināms visiem kopsavilkumā 30 00:01:37,210 --> 00:01:41,000 ka Ralph Parker tiek iecelts biedrs Little Orphan Annie Secret 31 00:01:41,000 --> 00:01:44,860 Aplis, un ir tiesības uz visiem godina un ieguvumi notiek to. " 32 00:01:44,860 --> 00:01:47,410 >> Ralphie PARKER (stāstīja): Parakstīja Little Orphan Annie. 33 00:01:47,410 --> 00:01:50,070 Parakstījis, Pierre Andre! 34 00:01:50,070 --> 00:01:51,490 Ar tinti. 35 00:01:51,490 --> 00:01:55,494 Godina un ieguvumi, jau deviņu gadu vecumā. 36 00:01:55,494 --> 00:01:57,402 >> [Mūzikas atskaņošanai] 37 00:01:57,402 --> 00:02:00,470 >> [RADIO čivināšana] 38 00:02:00,470 --> 00:02:01,470 Ralphie PARKER: Come on. 39 00:02:01,470 --> 00:02:02,344 Iesim ar to. 40 00:02:02,344 --> 00:02:06,029 Man nav nepieciešams visu šo džeza par kontrabandistu un pirāti. 41 00:02:06,029 --> 00:02:08,820 Radio diktors: Klausies rīt nakts noslēguma piedzīvojumu 42 00:02:08,820 --> 00:02:11,060 The Black Pirate Ship. 43 00:02:11,060 --> 00:02:14,740 Tagad ir pienācis laiks, lai Annie s Secret Vēstījums jums biedriem 44 00:02:14,740 --> 00:02:17,110 no Secret Circle. 45 00:02:17,110 --> 00:02:20,700 Atcerieties, bērni, tikai dalībnieki Annijas Secret Circle 46 00:02:20,700 --> 00:02:23,270 var atšifrēt Annie slepeno ziņojumu. 47 00:02:23,270 --> 00:02:27,270 >> Atcerieties, Annie ir atkarīgs no jums. 48 00:02:27,270 --> 00:02:30,060 Iestatīt savu tapas B-2. 49 00:02:30,060 --> 00:02:34,004 Šeit ir message-- 12, 11, 2-- 50 00:02:34,004 --> 00:02:36,503 Ralphie PARKER (stāstīja): I esmu savā pirmajā slepenā sanāksmē. 51 00:02:36,503 --> 00:02:40,041 Radio diktors: --25, 14, 11, 18, 16-- 52 00:02:40,041 --> 00:02:42,790 Ralphie PARKER (stāstīja): Ak, Pierre bija ļoti balss šovakar. 53 00:02:42,790 --> 00:02:46,110 Es varētu pateikt, ka šovakar vēstījums bija ļoti svarīgi. 54 00:02:46,110 --> 00:02:47,930 >> Radio diktors: --3, 25. 55 00:02:47,930 --> 00:02:49,940 Tas ir vēstījums no Annie pati. 56 00:02:49,940 --> 00:02:52,182 Atcerieties, nesaki nevienam. 57 00:02:52,182 --> 00:02:55,077 >> [Panting] 58 00:02:55,077 --> 00:02:57,285 Ralphie PARKER (stāstīja): Deviņdesmit sekundes vēlāk, es esmu 59 00:02:57,285 --> 00:03:00,090 vienīgajā istabā māju, kur zēns no deviņiem 60 00:03:00,090 --> 00:03:04,380 varētu sēdēt privātumu un atšifrēt. 61 00:03:04,380 --> 00:03:04,990 Ah. 62 00:03:04,990 --> 00:03:05,680 "B." 63 00:03:05,680 --> 00:03:06,524 >> [Chuckles] 64 00:03:06,524 --> 00:03:08,684 >> Ralphie PARKER (stāstīja): Es devos uz nākamo. 65 00:03:08,684 --> 00:03:09,610 "E." 66 00:03:09,610 --> 00:03:11,641 Pirmais vārds ir "būt." 67 00:03:11,641 --> 00:03:12,140 Jā! 68 00:03:12,140 --> 00:03:14,293 Tas nāk vieglāk. 69 00:03:14,293 --> 00:03:15,259 "U." 70 00:03:15,259 --> 00:03:16,225 >> [Chuckles] 71 00:03:16,225 --> 00:03:18,157 >> RANDY PARKER: Au, come on, Ralphie. 72 00:03:18,157 --> 00:03:19,606 I gotta go! 73 00:03:19,606 --> 00:03:21,538 >> Ralphie PARKER: Es būšu tiesības uz leju, Ma. 74 00:03:21,538 --> 00:03:22,504 Gee sīkšana. 75 00:03:22,504 --> 00:03:25,402 76 00:03:25,402 --> 00:03:31,220 "T." "O." "Noteikti to. "" Noteikti "ko? 77 00:03:31,220 --> 00:03:33,981 Kas bija Little Orphan Annie cenšas pateikt? "Noteikti" ko? 78 00:03:33,981 --> 00:03:35,522 Māte: Ralphie, Randy ir ieguvuši iet. 79 00:03:35,522 --> 00:03:36,735 Vai jūs, lūdzu, nākt ārā? 80 00:03:36,735 --> 00:03:38,190 >> Ralphie PARKER: Nu labi, mamma! 81 00:03:38,190 --> 00:03:39,787 Es būšu out! 82 00:03:39,787 --> 00:03:41,995 Ralphie PARKER (stāstīja): Es biju kļūst tuvāk tagad. 83 00:03:41,995 --> 00:03:43,370 Spriedze bija briesmīga. 84 00:03:43,370 --> 00:03:44,794 Kas tas bija? 85 00:03:44,794 --> 00:03:47,656 Planētas liktenis var pakārt līdzsvarā. 86 00:03:47,656 --> 00:03:50,518 >> Māte: Ralphie, Randy got iet! 87 00:03:50,518 --> 00:03:53,635 >> Ralphie PARKER: Es būšu ārā, lai kliedz skaļi! 88 00:03:53,635 --> 00:03:55,343 Ralphie PARKER (Stāstīja): Gandrīz tur! 89 00:03:55,343 --> 00:03:56,520 Mani pirksti lidoja! 90 00:03:56,520 --> 00:03:58,500 Mans prāts bija tērauda lamatas. 91 00:03:58,500 --> 00:03:59,850 Katru poru vibrāciju. 92 00:03:59,850 --> 00:04:01,806 Tas bija gandrīz skaidrs! 93 00:04:01,806 --> 00:04:02,773 Jā! 94 00:04:02,773 --> 00:04:03,273 Jā! 95 00:04:03,273 --> 00:04:03,773 Jā! 96 00:04:03,773 --> 00:04:04,740 Jā! 97 00:04:04,740 --> 00:04:10,250 >> Ralphie PARKER: "Noteikti dzert savu Ovaltine. " 98 00:04:10,250 --> 00:04:10,750 Ovaltine? 99 00:04:10,750 --> 00:04:14,864 100 00:04:14,864 --> 00:04:17,539 Apaļīgs komerciāls? 101 00:04:17,539 --> 00:04:19,439 >> [Mūzikas atskaņošanai] 102 00:04:19,439 --> 00:04:21,724 >> Ralphie PARKER: Dēls kuce. 103 00:04:21,724 --> 00:04:23,460 >> [Smejas] 104 00:04:23,460 --> 00:04:27,070 >> DAVID J. Malan: Tātad, kas tad ir ieskatu par kādu kriptogrāfija 105 00:04:27,070 --> 00:04:29,880 var būt this-- a dzert no vakardienas. 106 00:04:29,880 --> 00:04:30,900 Tik ātri paziņojums. 107 00:04:30,900 --> 00:04:33,410 Ja jūs esat brīvi tas Piektdien plkst 13:15, un būtu 108 00:04:33,410 --> 00:04:36,610 vēlētos pievienoties mums CS50 pusdienas, dodies uz šo URL šeit. 109 00:04:36,610 --> 00:04:38,080 Pirmais brauc, pirmais kalpot kā parasti. 110 00:04:38,080 --> 00:04:41,840 Taču laika gaitā, mēs pārliecinieties, ka lielākā daļa ikviens, kurš vēlētos piedalīties 111 00:04:41,840 --> 00:04:43,640 var ieplānot gudrs. 112 00:04:43,640 --> 00:04:45,170 >> Tātad stīgas. 113 00:04:45,170 --> 00:04:47,940 Mums ir Zamyla-- kuriem jūs esat tagad met visticamāk 114 00:04:47,940 --> 00:04:50,750 problemātiskajās Set 1-- kuru vārds ir uzrakstīti tādējādi. 115 00:04:50,750 --> 00:04:53,570 Un domāju, ka jūs ierakstījāt savu vārdu datorprogrammā, kas ir 116 00:04:53,570 --> 00:04:55,710 izmantojot kaut ko līdzīgu getString. 117 00:04:55,710 --> 00:04:57,890 Lai iegūtu šie keystrokes, cik 118 00:04:57,890 --> 00:05:01,620 mēs iet par pārstāvot string, vārds, punkts 119 00:05:01,620 --> 00:05:03,960 vai vairākas vēstules, piemēram, tie šeit? 120 00:05:03,960 --> 00:05:06,790 >> Mēs runājām pēdējo reizi par veseli skaitļi un problēmas 121 00:05:06,790 --> 00:05:09,960 kas rodas ar skaitlim pārplūdi un peldošā punkta vērtības 122 00:05:09,960 --> 00:05:12,190 un problēmas, kas Pagaidu precizitāti. 123 00:05:12,190 --> 00:05:16,080 Ar stīgām, mēs vismaz ir mazliet lielāku elastību 124 00:05:16,080 --> 00:05:17,970 jo strings-- tikko reālajā world-- 125 00:05:17,970 --> 00:05:19,790 var būt diezgan patvaļīgs garumu. 126 00:05:19,790 --> 00:05:21,055 Diezgan īss, diezgan garš. 127 00:05:21,055 --> 00:05:23,680 Bet pat tad, mēs ejam, lai uzskata, ka datori var dažreiz 128 00:05:23,680 --> 00:05:27,200 izsīkšanai atmiņas un pat ne uzglabāt pietiekami lielas virkni. 129 00:05:27,200 --> 00:05:30,840 >> Bet tagad, sāksim vizualizēt string kā kaut kas šajās kastēs 130 00:05:30,840 --> 00:05:31,340 šeit. 131 00:05:31,340 --> 00:05:36,410 Tātad sešas šādas kastes, katrs no kuriem attēlo rakstzīmi vai "char." 132 00:05:36,410 --> 00:05:40,646 Tik atgādināt, ka "char" - c-h--r-- ir viens no iebūvētajiem datu tipiem C. 133 00:05:40,646 --> 00:05:43,520 Un, kas ir jauki, ir tas, ka jūs varat izmantot ka veida kā struktūras elements, 134 00:05:43,520 --> 00:05:47,880 puzzle gabals, ja vēlaties, lai veidotu lielāks datu veids, ka mēs turpināsim 135 00:05:47,880 --> 00:05:49,410 izsaukt "virkni." 136 00:05:49,410 --> 00:05:53,650 >> Tagad, kas ir noderīgi par domāšanu par lietām, piemēram stīgas šādā veidā? 137 00:05:53,650 --> 00:05:57,720 Nu, izrādās, ka mēs varam faktiski sviras šo struktūru 138 00:05:57,720 --> 00:06:01,420 faktiski piekļūt atsevišķas rakstzīmes tādā diezgan vienkāršā veidā. 139 00:06:01,420 --> 00:06:04,099 Es esmu gatavojas iet uz priekšu un izveidot failu ar nosaukumu "stringzero.c," 140 00:06:04,099 --> 00:06:05,765 bet jūs varat zvanīt to ko jūs vēlaties. 141 00:06:05,765 --> 00:06:08,500 Un kurss tīmekļa vietnē ir jau šajā piemērā iepriekš, 142 00:06:08,500 --> 00:06:10,430 tāpēc jums nav nepieciešams tipa viss out. 143 00:06:10,430 --> 00:06:13,820 >> Un es iešu uz priekšu un pirmo reizi darīt int galvenais tukšumu. 144 00:06:13,820 --> 00:06:15,980 Un dažu dienu laikā, mēs sāksim kaitināt intervālu 145 00:06:15,980 --> 00:06:19,070 ko par spēkā neesošu ir šeit, kāpēc tas ir int blakus galvenais, un tā tālāk. 146 00:06:19,070 --> 00:06:21,180 Bet tagad, pieņemsim arī turpmāk kopēt paste to. 147 00:06:21,180 --> 00:06:23,455 >> Es esmu gatavojas pasludināt virkni sauc s. 148 00:06:23,455 --> 00:06:26,920 Un es esmu gatavojas atgriezties no GetString neatkarīgi lietotājs veidiem. 149 00:06:26,920 --> 00:06:29,170 Tas būs vienkāršs programma, nekādi norādījumi, 150 00:06:29,170 --> 00:06:31,336 Es esmu tikai gatavojas akli sagaida, ka lietotājs zina 151 00:06:31,336 --> 00:06:32,600 ko darīt, lai saglabātu to vienkārši. 152 00:06:32,600 --> 00:06:34,220 >> Un tagad es esmu nāksies cilpa. 153 00:06:34,220 --> 00:06:37,450 Un iekšpusē manu par cilpa es esmu nāksies int i izpaužas nulle. 154 00:06:37,450 --> 00:06:40,660 Un man ir, atkal, tikai konvencija, indekss mainīgais skaitīšanai, 155 00:06:40,660 --> 00:06:42,350 bet es varētu nosaukt šo ko es gribu. 156 00:06:42,350 --> 00:06:46,275 Es esmu gatavojas darīt, man ir mazāks than-- labi Zamyla vārds ir seši burti garš. 157 00:06:46,275 --> 00:06:48,150 Tāpēc es esmu gatavojas grūti kods, kas tur tagad. 158 00:06:48,150 --> 00:06:49,730 >> Un tad es ++. 159 00:06:49,730 --> 00:06:53,190 Un tagad iekšpusē tiem cirtaini bikšturi es esmu gatavojas darīt printf, 160 00:06:53,190 --> 00:06:55,460 un es gribu, lai izdrukātu vienu rakstzīmju laikā. 161 00:06:55,460 --> 00:06:58,227 Tāpēc es esmu gatavojas izmantot% c par varbūt pirmo reizi. 162 00:06:58,227 --> 00:07:00,560 Un tad es gribu, lai drukātu katru raksturs savā rindā. 163 00:07:00,560 --> 00:07:02,550 Tāpēc es esmu gatavojas nodot maz slīpsvītru n tur. 164 00:07:02,550 --> 00:07:03,640 Aizvērt quote. 165 00:07:03,640 --> 00:07:06,250 >> Un tagad es gribu kaut ko darīt šeit. 166 00:07:06,250 --> 00:07:10,610 Es gribu izdrukāt īpaša vēstule virknē, 167 00:07:10,610 --> 00:07:13,670 s, kā es esmu, atkārtojot no nulles līdz sešiem. 168 00:07:13,670 --> 00:07:17,150 Citiem vārdiem sakot, es gribu izdrukāt i'th raksturu s. 169 00:07:17,150 --> 00:07:18,420 Tagad, kā es varu darīt? 170 00:07:18,420 --> 00:07:21,550 >> Nu līdzīgi kā kastēm pārstāvība šeit 171 00:07:21,550 --> 00:07:25,560 veida, uzburt jēdzienu boksa burti, jūs varat tāpat darīt 172 00:07:25,560 --> 00:07:32,630 sintaktiski C, vienkārši norādot, Es gribu, lai izdrukātu S i'th raksturs. 173 00:07:32,630 --> 00:07:35,640 Izmantojot kvadrātiekavas uz datora klaviatūras 174 00:07:35,640 --> 00:07:38,910 ka ASV klaviatūras parasti virs jūsu atgriešanās atslēgu. 175 00:07:38,910 --> 00:07:42,630 >> Tātad tas nav gluži pareizi vēl, kā jums var būt ievērojuši. 176 00:07:42,630 --> 00:07:44,780 Bet es esmu gatavojas veida akli veidot uz priekšu šeit. 177 00:07:44,780 --> 00:07:47,020 Un es esmu gatavojas darīt veikt virkni 0. 178 00:07:47,020 --> 00:07:50,860 Bet pirms es to izdarītu, pieņemsim redzēt, ja mēs nevar paredzēt dažas kopīgas kļūdas. 179 00:07:50,860 --> 00:07:52,844 Vai tas notiek, lai apkopotu? 180 00:07:52,844 --> 00:07:54,510 Nē, es esmu trūkst visu ķekars lietas. 181 00:07:54,510 --> 00:07:55,280 Bibliotēkas es dzirdēju. 182 00:07:55,280 --> 00:07:58,480 >> Tātad kas header failus Es varētu vēlēties pievienot šeit? 183 00:07:58,480 --> 00:07:59,205 Jā. 184 00:07:59,205 --> 00:08:01,580 >> AUDITORIJA: Jums ir nepieciešams standarta I / O [nedzirdama] 185 00:08:01,580 --> 00:08:02,663 >> DAVID J. Malan: Excellent. 186 00:08:02,663 --> 00:08:06,060 Tāpēc man ir nepieciešams standarta I / O. Par to, ko mērķis es gribu standarta I / O? 187 00:08:06,060 --> 00:08:06,670 Par printf. 188 00:08:06,670 --> 00:08:09,220 Tā ietver stdio.h. 189 00:08:09,220 --> 00:08:13,490 Un jūs arī ierosināt, ka es arī CS50 bibliotēka kāda iemesla dēļ? 190 00:08:13,490 --> 00:08:14,650 Ir virknes. 191 00:08:14,650 --> 00:08:17,780 Tātad mēs redzēsim, ko CS50 bibliotēka dara 192 00:08:17,780 --> 00:08:19,260 lai radītu šo jēdzienu virknes. 193 00:08:19,260 --> 00:08:21,930 Bet tagad, jūs varat vienkārši domāt par to kā faktisko datu tipu. 194 00:08:21,930 --> 00:08:23,596 >> Tāpēc, ka, šķiet, ir nedaudz sakopta. 195 00:08:23,596 --> 00:08:27,060 Un tagad es esmu gatavojas iet uz priekšu un tiešām darīsim virkni 0. 196 00:08:27,060 --> 00:08:27,700 Sast. 197 00:08:27,700 --> 00:08:28,370 Tā ka ir labs. 198 00:08:28,370 --> 00:08:32,799 So ./string0 ļaujiet man tuvinātu lai mēs varam redzētu ciešāk, kas notiek. 199 00:08:32,799 --> 00:08:33,850 Enter. 200 00:08:33,850 --> 00:08:37,789 Z-A-M-Y-L-ievadītu. 201 00:08:37,789 --> 00:08:39,440 Un mēs esam jāizdrukā uz Zamyla nosaukumu. 202 00:08:39,440 --> 00:08:40,409 >> Tā ka ir diezgan laba. 203 00:08:40,409 --> 00:08:43,220 Tāpēc tagad iesim uz priekšu un palaist šo programmu no jauna, 204 00:08:43,220 --> 00:08:45,659 un ierakstiet out Daven vārdu un uzvārdu. 205 00:08:45,659 --> 00:08:46,450 Pārsteigums, pārsteigums. 206 00:08:46,450 --> 00:08:48,021 Enter. 207 00:08:48,021 --> 00:08:48,520 Hmm. 208 00:08:48,520 --> 00:08:51,750 Mēs neesam iespiests Daven s pilns vārds pareizi. 209 00:08:51,750 --> 00:08:54,250 Tagad tas būtu acīmredzama Atskats dēļ, ko, 210 00:08:54,250 --> 00:08:57,010 veida, stulba dizaina lēmums? 211 00:08:57,010 --> 00:08:59,590 >> Jā, es cītīgi kodē seši iekšpusē mana cilpa. 212 00:08:59,590 --> 00:09:01,610 Tagad es darīju, ka tikai tāpēc, ka Es zināju Zamyla vārdu 213 00:09:01,610 --> 00:09:02,776 bija būs seši burti. 214 00:09:02,776 --> 00:09:04,720 , Bet noteikti tas nav vispārējs risinājums. 215 00:09:04,720 --> 00:09:07,720 Tātad izrādās, mēs varam dinamiski izdomāt garumu virknes 216 00:09:07,720 --> 00:09:10,440 zvanot funkciju sauc strlen. 217 00:09:10,440 --> 00:09:12,840 >> Atkal, apzināti kodolīgi nosaukts vienkārši 218 00:09:12,840 --> 00:09:14,450 lai būtu ērtāk rakstīt. 219 00:09:14,450 --> 00:09:17,170 Bet tas ir sinonīms iegūt garumu virknes. 220 00:09:17,170 --> 00:09:23,190 Es iešu atpakaļ manā termināli logu un atkārtoti palaist kompilatoru. 221 00:09:23,190 --> 00:09:24,170 Bet tas kliedza uz mani. 222 00:09:24,170 --> 00:09:29,130 Netieši atzīstot bibliotēkas funkciju strlen ar tipu neparakstīts int const-- 223 00:09:29,130 --> 00:09:29,780 Es esmu zaudējis. 224 00:09:29,780 --> 00:09:30,590 Pilnībā. 225 00:09:30,590 --> 00:09:32,940 >> Tātad, jo īpaši savu acis sāk glazūra vairāk 226 00:09:32,940 --> 00:09:36,000 ar kļūdu ziņojumi, piemēram, tas, koncentrējoties godīgi par pirmajiem dažiem vārdiem. 227 00:09:36,000 --> 00:09:38,590 Mēs zinām, problēma ir līnija 8, kā norādīts šeit. 228 00:09:38,590 --> 00:09:40,500 Un tas ir auklas 0.c. 229 00:09:40,500 --> 00:09:43,580 Netieši atzīstot bibliotēkas funkciju strlen. 230 00:09:43,580 --> 00:09:47,000 Tāpēc, ka parasti gatavojas būt modelis kļūdu ziņojumus. 231 00:09:47,000 --> 00:09:49,190 Netieši atzīstot kaut ko. 232 00:09:49,190 --> 00:09:53,250 >> Tātad īsumā, kādi ir man likās ir darīts attiecībā uz līnija 8, šeit. 233 00:09:53,250 --> 00:09:56,880 Kāds varētu būt risinājums vēl Ja jūs nekad neesmu lietojis strlen sevi? 234 00:09:56,880 --> 00:09:58,907 >> AUDITORIJA: Daļa no citu bibliotēku? 235 00:09:58,907 --> 00:10:00,740 DAVID J. Malan: Part ar atšķirīgu bibliotēkā. 236 00:10:00,740 --> 00:10:02,400 Tātad tas ir deklarēts, lai runāt. 237 00:10:02,400 --> 00:10:07,510 Tas ir minēts kādā failā izņemot stdio.h un CS50.h. 238 00:10:07,510 --> 00:10:09,179 Tagad, kad tas ir noteikts? 239 00:10:09,179 --> 00:10:12,220 Lai būtu godīgi, jums ir vai nu tikai zinu, tas off virs jūsu galvas, 240 00:10:12,220 --> 00:10:13,640 vai jūs Google šo un uzzināt. 241 00:10:13,640 --> 00:10:18,150 Vai zināt, es esmu atvēra ar CS50 Appliance termināla programmu, kas 242 00:10:18,150 --> 00:10:22,200 ir tikai liels, pilnekrāna versiju to, kas ir apakšā gedit loga. 243 00:10:22,200 --> 00:10:24,970 >> Un izrādās, ka tur ir līdzīgi īss komanda, ko sauc par 244 00:10:24,970 --> 00:10:29,280 cilvēks rokasgrāmatā, kur, ja jūs tipa par funkciju vārdu un hit Enter, 245 00:10:29,280 --> 00:10:32,240 jūs saņemsiet atpakaļ diezgan mistisks dokumentācija. 246 00:10:32,240 --> 00:10:35,299 Tas ir tikai teksts, kas parasti izskatās nedaudz kaut kas līdzīgs šim. 247 00:10:35,299 --> 00:10:37,090 Tas ir nedaudz milzīgs pēc pirmā acu uzmetiena. 248 00:10:37,090 --> 00:10:39,048 Bet atklāti sakot, es esmu gatavojas let manas acis glazūra vairāk 249 00:10:39,048 --> 00:10:41,930 un tikai koncentrēties uz daļu Man rūp, lai brīdi. 250 00:10:41,930 --> 00:10:42,780 >> Kas tas ir. 251 00:10:42,780 --> 00:10:45,470 Kas izskatās strukturāli līdzīgi kaut kas es esmu iepazinies ar. 252 00:10:45,470 --> 00:10:48,080 Tiešām cilvēks lapas, tāpēc runāt, jums pateiks 253 00:10:48,080 --> 00:10:51,590 kādā header failu funkciju tāpat strlen ir definēts. 254 00:10:51,590 --> 00:10:54,170 Tāpēc es iešu atpakaļ tagad uz gedit. 255 00:10:54,170 --> 00:10:59,070 Un es iešu uz priekšu un pievienot šeit #include 256 00:10:59,070 --> 00:11:00,480 un saglabājiet failu. 257 00:11:00,480 --> 00:11:04,300 >> Es esmu gatavojas, lai notīrītu ekrānu ar Control L Ja jums ir jautājums. 258 00:11:04,300 --> 00:11:08,210 Un es esmu gatavojas atkārtoti palaist marku string.0, apkopo šoreiz. 259 00:11:08,210 --> 00:11:11,790 ./string.0 Zamyla. 260 00:11:11,790 --> 00:11:15,020 Tas šķita strādāt Ļaujiet man iet priekšu un atkārto to ar Davenport. 261 00:11:15,020 --> 00:11:15,860 Enter. 262 00:11:15,860 --> 00:11:17,730 Un tas arī šķita, lai strādātu. 263 00:11:17,730 --> 00:11:21,220 >> Tātad, mēs varam darīt, mazliet labāk, nekā tas, tomēr, mēs varam sākt jāsakopj lietām 264 00:11:21,220 --> 00:11:23,257 up tikai mazliet. 265 00:11:23,257 --> 00:11:25,590 Un es esmu gatavojas, lai faktiski ieviest viena cita lieta tagad. 266 00:11:25,590 --> 00:11:28,930 Es iešu uz priekšu un saglabāt to citā failā. 267 00:11:28,930 --> 00:11:31,770 Un es esmu gatavojas, lai izsauktu šo failu string1.c tikko 268 00:11:31,770 --> 00:11:34,620 jāsaskan ar kodu jūs varēsiet atrast internetā. 269 00:11:34,620 --> 00:11:37,050 >> Un pieņemsim koncentrēsies uz tieši tas pats kods. 270 00:11:37,050 --> 00:11:39,000 Izrādās, ka es esmu ir sava veida ņemšanas 271 00:11:39,000 --> 00:11:42,600 par pašsaprotamu to, ka manā klēpjdators, un, savukārt, CS50 ierīces 272 00:11:42,600 --> 00:11:47,450 ir daudz atmiņu, daudz RAM, daudz telpas baitu 273 00:11:47,450 --> 00:11:48,920 kurā es varētu saglabāt stīgas. 274 00:11:48,920 --> 00:11:53,560 >> Bet realitāte, ja es drukāti ilgi pietiekami, un pietiekami keystrokes, 275 00:11:53,560 --> 00:11:56,170 Es varētu teorētiski veidam vairāk burtiem 276 00:11:56,170 --> 00:11:58,830 par manu datoru fiziski ir atmiņas. 277 00:11:58,830 --> 00:11:59,830 Un tas ir problemātiski. 278 00:11:59,830 --> 00:12:03,050 Daudz, piemēram, int var tikai skaits tik augstu, teorētiski, 279 00:12:03,050 --> 00:12:06,600 Jūs varat piepildīt tikai tik daudz rakstzīmes datora RAM vai Random 280 00:12:06,600 --> 00:12:07,920 Access Memory. 281 00:12:07,920 --> 00:12:11,140 >> Tāpēc man bija labāk prognozēt šo problēmu, pat 282 00:12:11,140 --> 00:12:13,660 lai gan tas varētu būt reta stūra lieta, lai runāt. 283 00:12:13,660 --> 00:12:15,670 Nenotiek, ka bieži, varētu notikt. 284 00:12:15,670 --> 00:12:18,815 Un, ja tas notiek, un man nav prognozēt un programma to, 285 00:12:18,815 --> 00:12:20,300 mana programma varētu darīt, kas zina, ko. 286 00:12:20,300 --> 00:12:22,220 Freeze, pakārt, reboot, neatkarīgi. 287 00:12:22,220 --> 00:12:24,490 Kaut gaidīts varētu notikt. 288 00:12:24,490 --> 00:12:27,120 >> Tātad, ko es esmu gatavojas darīt Tagad, turpmāk tiešām, 289 00:12:27,120 --> 00:12:31,630 ir pirms I kādreiz akli izmantot mainīgo, piemēram, s ka 290 00:12:31,630 --> 00:12:36,790 ir piešķirts atgriešanās vērtību dažas citas funkcijas, piemēram, getstring, 291 00:12:36,790 --> 00:12:40,200 Es esmu gatavojas, lai pārliecinātos ka tā vērtība ir derīga. 292 00:12:40,200 --> 00:12:44,280 Tāpēc es zinu, tikai izlasot CS50 dokumentācija par getstring, 293 00:12:44,280 --> 00:12:49,020 kas galu galā mēs norādīt jums, ka getstring atgriež īpašu simbolu 294 00:12:49,020 --> 00:12:53,610 sauc NULL, N-U-L-L visās caps, ja kaut kas noiet greizi. 295 00:12:53,610 --> 00:12:55,650 >> Tātad normāli, tā atgriež virkni. 296 00:12:55,650 --> 00:12:59,700 , Bet pretējā gadījumā, ja tas atgriež N-U-L-L-- mēs beidzot redzēt, kas tas īsti 297 00:12:59,700 --> 00:13:01,790 means-- ka tikai līdzekļus kaut kas slikts noticis. 298 00:13:01,790 --> 00:13:05,560 Tagad tas nozīmē, līdzīgi kā nulles, Es varu pārbaudīt stāvokli šeit C, 299 00:13:05,560 --> 00:13:08,830 ja s nav vienāda NULL. 300 00:13:08,830 --> 00:13:11,930 Tātad, ja jūs esat nav redzējis šo pirms, tas vienkārši nozīmē, nav vienāds. 301 00:13:11,930 --> 00:13:15,290 >> Tātad, tas ir pretējs vienlīdzīgu vienādības, kas, atgādināt, 302 00:13:15,290 --> 00:13:18,940 atšķiras no single vienāds, kas ir uzdevums. 303 00:13:18,940 --> 00:13:23,030 Tātad, ja s nav vienāds NULL, tikai tad darīt 304 00:13:23,030 --> 00:13:25,980 Es gribu izpildīt šos koda rindiņas. 305 00:13:25,980 --> 00:13:28,080 Tātad citiem vārdiem sakot, pirms es nirt akli 306 00:13:28,080 --> 00:13:30,919 un sākt atkārtojot vairāk s, un uzskatot to 307 00:13:30,919 --> 00:13:33,710 kā arī tā ir secība rakstzīmes, es esmu gatavojas vispirms pārbaudīt, 308 00:13:33,710 --> 00:13:37,900 pagaidiet minūti, ir s noteikti nav vienādam ar īpašu vērtību, NULL? 309 00:13:37,900 --> 00:13:40,030 >> Jo, ja tā ir, sliktas lietas var notikt. 310 00:13:40,030 --> 00:13:43,080 Un tagad, pieņemsim, ka sliktas lietas notiek nozīmē jūsu programma avarē, 311 00:13:43,080 --> 00:13:45,070 un jūs nevarat vienmēr atgūt. 312 00:13:45,070 --> 00:13:46,800 Tātad godīgi sakot, tas izskatās neglītāks. 313 00:13:46,800 --> 00:13:48,660 tas ir sava veida mulsinoši tagad skatienu. 314 00:13:48,660 --> 00:13:50,780 Bet tas kļūs iepazinušies pirms ilgi. 315 00:13:50,780 --> 00:13:52,920 >> Bet es esmu gatavojas ierosināt tagad vienu citu uzlabojumu. 316 00:13:52,920 --> 00:13:54,660 Tas ir uzlabojums pareizību. 317 00:13:54,660 --> 00:13:58,800 Tagad mana programma ir pareizs, jo retos gadījumos, kas nav pietiekami daudz atmiņas 318 00:13:58,800 --> 00:14:01,180 pastāv, es ar to rīkoties, un es ņemšu tikai darīt neko. 319 00:14:01,180 --> 00:14:02,680 Man vismaz nav crash. 320 00:14:02,680 --> 00:14:05,000 >> Bet pieņemsim do galīgo versiju šeit. 321 00:14:05,000 --> 00:14:07,690 Un failu sauc string2.c. 322 00:14:07,690 --> 00:14:10,190 Es esmu gatavojas, lai ielīmētu ka pats kods tikai brīdi, 323 00:14:10,190 --> 00:14:14,210 un es esmu gatavojas, lai izceltu šo līnija, 11, šeit, tikai brīdi. 324 00:14:14,210 --> 00:14:18,179 Tagad realitāte ir tāda, ka smart kompilatoru tāpat šķindēt varētu salabot mums 325 00:14:18,179 --> 00:14:19,970 aizkulises bez mūsu nekad nezinot. 326 00:14:19,970 --> 00:14:24,670 Bet pieņemsim domāt par to fundamentāli kā problemātisku dizainu. 327 00:14:24,670 --> 00:14:29,010 >> Šī līnija kods ir, protams, sakot, sāktu kādu mainīgo i ar 0. 328 00:14:29,010 --> 00:14:30,260 Tas ir diezgan vienkārši. 329 00:14:30,260 --> 00:14:34,691 Un to, kas atkal ir šis apgalvojums, šeit, es ++, dara? 330 00:14:34,691 --> 00:14:37,066 Mēs esam redzējuši to pirms, bet mēs nav īsti par to runāt. 331 00:14:37,066 --> 00:14:37,900 >> AUDITORIJA: palielināšanai i. 332 00:14:37,900 --> 00:14:39,191 >> DAVID J. Malan: palielināšanai i. 333 00:14:39,191 --> 00:14:41,890 Tātad par katru atkārtojuma caur šis cilpa, katru ciklu, 334 00:14:41,890 --> 00:14:43,570 jūs palielināšanai i pa vienam. 335 00:14:43,570 --> 00:14:45,740 Tātad, tas kļūst lielāks, un lielāks, un lielāks kamēr cilpa izbeidzas. 336 00:14:45,740 --> 00:14:46,810 Kā tas beidzas? 337 00:14:46,810 --> 00:14:49,430 Nu tur ir šis vidus nosacījums, kas mēs esam izmanto iepriekš. 338 00:14:49,430 --> 00:14:52,500 Jūs esat redzējuši, un walkthroughs in P komplektā. 339 00:14:52,500 --> 00:14:53,880 >> Bet kas tas ir teiciens? 340 00:14:53,880 --> 00:14:58,352 Vai šādu cilpu, lai Kamēr man ir mazāks par ko? 341 00:14:58,352 --> 00:14:59,810 AUDITORIJA: virknes garumu. 342 00:14:59,810 --> 00:15:01,518 DAVID J. Malan: virknes garums. 343 00:15:01,518 --> 00:15:04,300 Tātad tas nozīmē diezgan tīri angļu šajā ziņā. 344 00:15:04,300 --> 00:15:08,810 Tagad problēma ir tā, ka katru reizi, kad I atkārtot, izmantojot šīs cilpas teorētiski, 345 00:15:08,810 --> 00:15:10,000 Es uzdodu šo jautājumu. 346 00:15:10,000 --> 00:15:12,250 Ir i mazāks par virknes garumu s? 347 00:15:12,250 --> 00:15:14,500 Ir i mazāks par virknes garumu s? 348 00:15:14,500 --> 00:15:18,380 >> Tagad i mainās katrā atkārtojuma? 349 00:15:18,380 --> 00:15:18,880 Tas ir. 350 00:15:18,880 --> 00:15:19,629 Sakarā ar ++. 351 00:15:19,629 --> 00:15:21,700 Tāpēc katru atkārtojuma i kļūst lielāka. 352 00:15:21,700 --> 00:15:25,411 Bet ir s kļūst lielāks, vai mazāks, vai mainot vispār? 353 00:15:25,411 --> 00:15:25,910 Nē 354 00:15:25,910 --> 00:15:30,240 Tātad konstrukcijas ziņā, viena no asīm gar kuru mēs cenšamies izvērtēt kodu 355 00:15:30,240 --> 00:15:32,610 klasē, tas jūtas veida stulba. 356 00:15:32,610 --> 00:15:34,690 >> Tāpat kā jūs burtiski, par katru atkārtojuma 357 00:15:34,690 --> 00:15:37,110 Šīs cilpas lūdzot pats damn jautājums atkal, 358 00:15:37,110 --> 00:15:40,770 un atkal, un atkal, un burtiski tas nekad nemainīsies. 359 00:15:40,770 --> 00:15:44,220 Vismaz, ja es neesmu aizkustinošs s un mēģina mainīt saturu s. 360 00:15:44,220 --> 00:15:46,610 Lai es varētu darīt mazliet labāk nekā šis. 361 00:15:46,610 --> 00:15:49,530 >> Un tas, ko es esmu gatavojas darīt, ir ne deklarēt tikai vienu mainīgo i, 362 00:15:49,530 --> 00:15:53,330 bet otrs mainīgais es ņemšu patvaļīgi, bet konvencionāli, sauc to n. 363 00:15:53,330 --> 00:15:55,940 Piešķirt n ir vienāds ar virknes garums s. 364 00:15:55,940 --> 00:15:59,090 Un tad vairāk nekā šeit, es esmu gatavojas darīt gudrs nedaudz optimizāciju, tāpēc 365 00:15:59,090 --> 00:16:03,460 teikt, ka beigās, dienā vairs nav pareizs vai ne mazāk pareizi 366 00:16:03,460 --> 00:16:04,260 nekā agrāk. 367 00:16:04,260 --> 00:16:05,500 Bet tas ir labāks dizains. 368 00:16:05,500 --> 00:16:09,480 Ar to, ka es esmu, izmantojot mazāk laika, mazāk CPU cikli, tāpēc 369 00:16:09,480 --> 00:16:14,040 runāt, atbildēt pats jautājums, bet tikai vienu reizi. 370 00:16:14,040 --> 00:16:17,870 >> Visus jautājumus par šo vispār uzlabošanas princips, 371 00:16:17,870 --> 00:16:21,294 saka, kādas programmas efektivitāte? 372 00:16:21,294 --> 00:16:21,991 Yeah? 373 00:16:21,991 --> 00:16:23,699 AUDITORIJA: Kāpēc jums izmantot [nedzirdama]? 374 00:16:23,699 --> 00:16:25,760 375 00:16:25,760 --> 00:16:27,010 DAVID J. Malan: Labs jautājums. 376 00:16:27,010 --> 00:16:30,690 Tad kāpēc mēs nodot ++ uz beigām i nevis sākums i? 377 00:16:30,690 --> 00:16:33,070 Šajā gadījumā, tā ir nav funkcionālas ietekmes. 378 00:16:33,070 --> 00:16:36,670 Un vispār, man ir tendence izmantot Postfix operatoru 379 00:16:36,670 --> 00:16:41,750 tāpēc, ka tas ir nedaudz vairāk skaidrs, kā , kad darbība notiek. 380 00:16:41,750 --> 00:16:46,670 >> Tiem svešs, ir vēl viens paziņojumi, kurā jūs varētu darīt ++ i. 381 00:16:46,670 --> 00:16:48,747 Tie ir funkcionāli ekvivalents šajā gadījumā 382 00:16:48,747 --> 00:16:51,080 jo tur nekas cits ap šo incrementation. 383 00:16:51,080 --> 00:16:54,435 Bet jūs varat nākt klajā ar gadījumi un rindas koda 384 00:16:54,435 --> 00:16:55,810 kurā kas padara starpību. 385 00:16:55,810 --> 00:16:57,810 Tātad kopumā, mums nav pat runāt par šo vienu. 386 00:16:57,810 --> 00:17:00,690 Jo atklāti sakot, tas padara jūsu kods sexier, un veida lietusmētelis, 387 00:17:00,690 --> 00:17:01,776 un rakstzīmju. 388 00:17:01,776 --> 00:17:04,859 Bet realitāte ir tā daudz grūtāk, Es domāju, ka pat man wrap manu prātu 389 00:17:04,859 --> 00:17:07,319 ap to dažreiz, rīkojumu darbību. 390 00:17:07,319 --> 00:17:09,750 Tā kā malā, ja jūs tiešām nepatīk tas, 391 00:17:09,750 --> 00:17:14,650 pat ja tas ir sava veida sexy looking, jūs varat arī darīt i + = 1, 392 00:17:14,650 --> 00:17:18,880 kas ir uglier versiju pati ideja par Postfix incrementation. 393 00:17:18,880 --> 00:17:22,250 >> Es saku, un jums vajadzētu jokot par to, 394 00:17:22,250 --> 00:17:25,140 bet jums būs redzēt kodu, kaut kas skaists pirms ilgi. 395 00:17:25,140 --> 00:17:27,160 >> [Smiekli] 396 00:17:27,160 --> 00:17:28,410 >> DAVID J. Malan: Right? 397 00:17:28,410 --> 00:17:29,360 Jā. 398 00:17:29,360 --> 00:17:30,480 Jautājums vidū. 399 00:17:30,480 --> 00:17:32,146 >> AUDITORIJA: Vai jums ir nepieciešams teikt int n? 400 00:17:32,146 --> 00:17:34,020 DAVID J. Malan: You do nevajag teikt int n. 401 00:17:34,020 --> 00:17:37,670 Tāpēc, ka mēs jau teica int, Jums nav nepieciešams, lai saku vēlreiz. 402 00:17:37,670 --> 00:17:41,820 Nozvejas ir tas, ka n ir tāds pats datu tips kā i. 403 00:17:41,820 --> 00:17:43,310 Tātad tas ir tikai ērtības šeit. 404 00:17:43,310 --> 00:17:44,058 Jā. 405 00:17:44,058 --> 00:17:47,806 >> AUDITORIJA: Vai jums iet pāri drukas varoņa s kronšteins i atkal? 406 00:17:47,806 --> 00:17:48,930 DAVID J. Malan: Protams. 407 00:17:48,930 --> 00:17:52,110 Tātad% c, atceros no pagājušā laiks, ir tikai viettura. 408 00:17:52,110 --> 00:17:53,930 Tas nozīmē nodot char šeit. 409 00:17:53,930 --> 00:17:56,780 slīpsvītru n, protams, vienkārši līdzekļi, kas līnijas pārtraukumu šeit. 410 00:17:56,780 --> 00:17:59,540 Tāpēc, ka tikai atstāj, tagad, šis gabals jaunu sintaksi. 411 00:17:59,540 --> 00:18:03,730 Un tas ir burtiski sakot, grab stīgu sauc s un iet saņemt tās 412 00:18:03,730 --> 00:18:06,050 i'th raksturs, lai runāt. 413 00:18:06,050 --> 00:18:10,590 >> Un es glabāt sakot i'th raksturs jo par katru atkārtojuma šīs cilpas 414 00:18:10,590 --> 00:18:14,540 tas ir tā, it kā mēs drukāšanu , pirmkārt s kronšteins 0, 415 00:18:14,540 --> 00:18:15,780 kā programmētājs varētu teikt. 416 00:18:15,780 --> 00:18:18,680 Tad s kronšteins 1, pēc tam s bracket 2, tad 3, pēc tam 4. 417 00:18:18,680 --> 00:18:21,610 Bet, protams, tas ir mainīgs, tāpēc es vienkārši izteikt to ar i. 418 00:18:21,610 --> 00:18:23,900 >> Galvenais, lai gan, ir saprast, it īpaši, ja jūs esat nav 419 00:18:23,900 --> 00:18:26,358 tika acclimating šajā pasaulē plānošanas, kur mums visiem 420 00:18:26,358 --> 00:18:28,950 šķiet skaitīt no nulles, gotta sāk skaitīt no nulles tagad. 421 00:18:28,950 --> 00:18:35,130 Jo stīgas, pirmā zīme, z in Zamyla ir labāk vai sliktāk 422 00:18:35,130 --> 00:18:40,490 dzīvosim pēc atrašanās nulli. 423 00:18:40,490 --> 00:18:48,210 >> Labi, tāpēc ļaujiet man sniegt mums atpakaļ šeit Zamyla 424 00:18:48,210 --> 00:18:50,746 un redzēt to, kas īsti notiek gada zem motora pārsega. 425 00:18:50,746 --> 00:18:52,370 Tātad tur ir šis jēdziens tipa liešana. 426 00:18:52,370 --> 00:18:53,800 Jums varētu būt tiešām spēlēja ar šo jau, 427 00:18:53,800 --> 00:18:55,970 varbūt hacker izdevums P iestatīt vienu. 428 00:18:55,970 --> 00:19:00,320 Bet veids liešana tikai atsaucas uz Spēja C un dažas citas valodas 429 00:19:00,320 --> 00:19:03,170 pārvērst vienu datu tipu uz citu. 430 00:19:03,170 --> 00:19:05,450 >> Tagad, kā varētu mēs redzam diezgan vienkāršākā? 431 00:19:05,450 --> 00:19:08,530 Tātad tas, atgādināt, ir sākums no angļu alfabēta. 432 00:19:08,530 --> 00:19:11,265 Un konteksts, atgādināt, no kā pirms nedēļas ir ASCII. 433 00:19:11,265 --> 00:19:13,790 American Standard Code Informācijas apmaiņai. 434 00:19:13,790 --> 00:19:17,080 Kas ir tikai ļoti tālu , sakot kartēšanu no vēstulēm 435 00:19:17,080 --> 00:19:19,370 uz numuriem, un no numuriem uz vēstulēm. 436 00:19:19,370 --> 00:19:22,940 >> Tātad, izmantojot M šeit, dot dot dot, līnijas ar, atgādināt, 437 00:19:22,940 --> 00:19:25,582 decimāls skaitlis 65 uz augšu. 438 00:19:25,582 --> 00:19:27,290 Un mēs nerunājām par to skaidri, 439 00:19:27,290 --> 00:19:29,850 bet, protams, tur ir līdzīgi numuri mazajiem burtiem. 440 00:19:29,850 --> 00:19:30,820 Un tiešām, tur ir. 441 00:19:30,820 --> 00:19:33,730 Pasaules nolēma dažus gadus atpakaļ, ka maz, mazie burti, 442 00:19:33,730 --> 00:19:35,020 būs 97. 443 00:19:35,020 --> 00:19:38,010 Un maz b notiek būt 98, un tā tālāk. 444 00:19:38,010 --> 00:19:40,200 >> Un jebkuru citu atslēgas klaviatūras, tur ir 445 00:19:40,200 --> 00:19:42,190 būs Līdzīga bitu. 446 00:19:42,190 --> 00:19:44,540 Vai līdzvērtīgi, decimāls skaitlis. 447 00:19:44,540 --> 00:19:47,110 Tātad jautājums pie rokas, tad ir, kā mēs varam 448 00:19:47,110 --> 00:19:49,400 faktiski redzēt to zem pārsega? 449 00:19:49,400 --> 00:19:51,539 Tāpēc es iešu pār gedit vēlreiz. 450 00:19:51,539 --> 00:19:53,330 Un nevis veidam tas viens no nulles, 451 00:19:53,330 --> 00:19:55,330 Es iešu uz priekšu un vienkārši atvērt kaut ko 452 00:19:55,330 --> 00:19:58,350 No šodienas kodu sauc ASCII nulles. 453 00:19:58,350 --> 00:20:01,210 >> Un ASCII nulle izskatās šādi. 454 00:20:01,210 --> 00:20:02,710 Tāpēc pieņemsim wrap mūsu prātus ap šo. 455 00:20:02,710 --> 00:20:04,969 Tātad, pirmkārt, es esmu komentēja kods, kas ir jauki. 456 00:20:04,969 --> 00:20:07,010 Jo tas ir burtiski man saki, ko gaidīt, 457 00:20:07,010 --> 00:20:08,950 parādīt kartēšanu lielajiem burtiem. 458 00:20:08,950 --> 00:20:13,690 Tagad man nav gluži zināt, ko es domāju ar, ka, tāpēc pieņemsim izsecināt. 459 00:20:13,690 --> 00:20:16,870 >> Angļu valodā, varbūt nedaudz techie angļu, 460 00:20:16,870 --> 00:20:20,660 Kāda line 18 parādīties , dara mūsu labā? 461 00:20:20,660 --> 00:20:21,500 Vienkārši līniju 18. 462 00:20:21,500 --> 00:20:22,430 Ko tas liekot? 463 00:20:22,430 --> 00:20:25,192 Ko tas notiek, lai uzsāktu šeit? 464 00:20:25,192 --> 00:20:26,100 >> AUDITORIJA: cilpa. 465 00:20:26,100 --> 00:20:26,630 >> DAVID J. Malan: cilpa. 466 00:20:26,630 --> 00:20:28,463 Un cik reizes ir kas dodas uz atkārtot? 467 00:20:28,463 --> 00:20:31,562 468 00:20:31,562 --> 00:20:33,270 AUDITORIJA: [interposing Voices] sešas reizes. 469 00:20:33,270 --> 00:20:34,830 DAVID J. Malan: Nav sešas reizes. 470 00:20:34,830 --> 00:20:35,840 AUDITORIJA: 26 reizes. 471 00:20:35,840 --> 00:20:36,560 DAVID J. Malan: 26 reizes. 472 00:20:36,560 --> 00:20:37,060 Jā, žēl. 473 00:20:37,060 --> 00:20:37,960 26 reizes. 474 00:20:37,960 --> 00:20:38,460 Kāpēc? 475 00:20:38,460 --> 00:20:41,590 Nu, tas ir mazliet dīvaini, bet Esmu sācis skaitot no 65. 476 00:20:41,590 --> 00:20:43,300 Kas ir dīvaini, bet nav nepareizi. 477 00:20:43,300 --> 00:20:44,610 Tas nav slikti vienu pateikt. 478 00:20:44,610 --> 00:20:46,980 Un es daru, ka tikai jo, šajā piemērā 479 00:20:46,980 --> 00:20:50,455 Es esmu veida paredzēšana ka kapitāls bija 65. 480 00:20:50,455 --> 00:20:53,330 Tagad tas nav visvairāk elegants veids, kā to izdarīt, lai veida cietā koda 481 00:20:53,330 --> 00:20:56,130 nesaprotams vērtības, ka neviens ir kādreiz sagaidīt atcerēties. 482 00:20:56,130 --> 00:21:00,155 >> Bet tagad, ievēroju, ka es esmu darot augšup pa 65 plus 26. 483 00:21:00,155 --> 00:21:03,030 Jo acīmredzot es pat nevēlos darīt aritmētisko manā galvā. 484 00:21:03,030 --> 00:21:04,440 Tāpēc es let kompilatoru darīt. 485 00:21:04,440 --> 00:21:08,600 Bet tad par katru cilpu, katra atkārtojuma cilpas, es esmu palielināšanai i. 486 00:21:08,600 --> 00:21:10,196 >> Tāpēc tagad tas izskatās mazliet noslēpumains. 487 00:21:10,196 --> 00:21:13,320 Bet mums ir jābūt pamata ēka bloki ar kuru saprast. 488 00:21:13,320 --> 00:21:15,510 % C ir tikai vietturis par char. 489 00:21:15,510 --> 00:21:19,010 % I ir vietturis int. 490 00:21:19,010 --> 00:21:23,310 Un izrādās, ka, izmantojot šo Jaunais sintakse, tas iekavās iekļaujams, tāpēc 491 00:21:23,310 --> 00:21:26,100 runāt, tāpēc datu tipu iekšpusē iekavās, 492 00:21:26,100 --> 00:21:32,270 Es varu piespiest kompilators, lai ārstētu i ne ir vesels skaitlis, bet kā char. 493 00:21:32,270 --> 00:21:35,520 >> Tādējādi parādot man raksturs ekvivalents šo numuru. 494 00:21:35,520 --> 00:21:37,986 Tagad šeit lejā, šis kods ir diezgan daudz identiski. 495 00:21:37,986 --> 00:21:39,860 Es tikai gribēju, lai super skaidri fakts 496 00:21:39,860 --> 00:21:42,095 , ka es esmu sākot no 97, kas ir burti. 497 00:21:42,095 --> 00:21:44,080 Uz augšu pa 26 vairāk burti. 498 00:21:44,080 --> 00:21:46,970 Un es esmu doing-- atkal, liešana i, lai runāt. 499 00:21:46,970 --> 00:21:49,160 Vai tipa liešana i, lai runāt. 500 00:21:49,160 --> 00:21:51,420 >> No int uz char. 501 00:21:51,420 --> 00:21:55,760 Tātad gala rezultāts būs, atklāti sakot, informācija, ko mēs jau zinām. 502 00:21:55,760 --> 00:21:59,411 Es esmu gatavojas darīt ascii-0 dot-- nevar dot c. 503 00:21:59,411 --> 00:22:02,160 Paziņojums, jūs, iespējams, ka iespēju kļūda, jo es vienkārši darīju nejauši. 504 00:22:02,160 --> 00:22:03,820 Veikt ASCII-0. 505 00:22:03,820 --> 00:22:06,090 Tagad es esmu gatavojas darīt ./ascii-0. 506 00:22:06,090 --> 00:22:09,050 Es tuvinātu, un diemžēl tas notiek, lai ritinātu pie ekrāna. 507 00:22:09,050 --> 00:22:15,060 Bet mēs redzam visu diagrammu kur kartes 97, b kartes līdz 98, 508 00:22:15,060 --> 00:22:18,931 un, ja mēs ritinātu uz augšu tālāk , Protams, kartes, lai 65. 509 00:22:18,931 --> 00:22:21,180 Tātad tas ir tikai teikt, ka Ko mēs esam sludināja, 510 00:22:21,180 --> 00:22:25,310 ir šī līdzvērtība ir patiesībā notiek realitātē. 511 00:22:25,310 --> 00:22:28,000 Tik ātri modifikācija to. 512 00:22:28,000 --> 00:22:31,220 Ļaujiet man atvērt ASCII-1.C. 513 00:22:31,220 --> 00:22:38,070 Un paziņojums šo gudrs, kārtot gada, skaidrojums par to. 514 00:22:38,070 --> 00:22:41,770 Tas ir ascii-1.c, un ievērosiet šo crazy lieta. 515 00:22:41,770 --> 00:22:45,120 >> Un tas tiešām nonāk pie sirds par to, ko datori dara. 516 00:22:45,120 --> 00:22:48,150 Pat ja mēs cilvēkiem būtu neskaitās ziņā letters-- 517 00:22:48,150 --> 00:22:50,380 Man nav jāsāk domāt, viss labi, tad b, 518 00:22:50,380 --> 00:22:52,590 un izmantot tos, lai saskaitītu fiziskus objektus. 519 00:22:52,590 --> 00:22:58,680 Jūs, protams, varat teikt, ka es gribu sāktu kādu mainīgo sauc C- 520 00:22:58,680 --> 00:23:03,220 bet es varētu būt sauc šo anything-- tāpēc c ir inicializēts kapitāla A. 521 00:23:03,220 --> 00:23:07,560 >> Jo beigās, dienā, datoru nav vienalga, ko jūs uzglabātu, 522 00:23:07,560 --> 00:23:10,170 tas tikai rūpējas, kā jūs vēlaties sniegt šo informāciju. 523 00:23:10,170 --> 00:23:13,560 Kā jūs vēlaties datora uz interpretēt šo modeli bitu? 524 00:23:13,560 --> 00:23:16,320 Tātad tas nav kaut kas es vispār ieteiktu darīt. 525 00:23:16,320 --> 00:23:19,500 Tas patiešām ir tikai piemērs nodot, ka jūs varat absolūti 526 00:23:19,500 --> 00:23:22,049 inicializēt vesels skaitlis uz char. 527 00:23:22,049 --> 00:23:24,090 Jo zem kapuci no char, protams, 528 00:23:24,090 --> 00:23:26,170 ir tikai vairāki 0-255. 529 00:23:26,170 --> 00:23:28,540 >> Tātad, jūs noteikti var ielieciet to iekšpusē int. 530 00:23:28,540 --> 00:23:30,890 Un ko tas arī parāda, ir tas, ka mēs 531 00:23:30,890 --> 00:23:34,040 var konvertēt no viena tipa uz citu, šeit, 532 00:23:34,040 --> 00:23:36,780 galu galā drukāšanas pašu. 533 00:23:36,780 --> 00:23:44,760 Un patiesībā, tas man būs noteikt online-- tika domāts, lai teikt, atkal šeit. 534 00:23:44,760 --> 00:23:48,610 Ļaujiet man sakopt šo tiešsaistē, un mēs redzēt tiešsaistes walkthrough, cik nepieciešams, 535 00:23:48,610 --> 00:23:50,280 kas bija paredzēti tur. 536 00:23:50,280 --> 00:23:50,960 >> OK. 537 00:23:50,960 --> 00:23:53,892 Tātad pēdējais piemērs tagad iesaistot a s un b s un tad mēs 538 00:23:53,892 --> 00:23:54,850 veikt lietas augšu iecirtums. 539 00:23:54,850 --> 00:23:58,330 Tātad ar a gados un b gados un c ir šajā kapitalizācijas 540 00:23:58,330 --> 00:24:01,560 un līdzvērtība to, pieņemsim ieskatieties šajā piemērā, šeit. 541 00:24:01,560 --> 00:24:02,752 Vēl viens kods piemērs. 542 00:24:02,752 --> 00:24:04,460 Mēs atvērt vienu, kas ir jau ir, tāpēc mēs 543 00:24:04,460 --> 00:24:06,440 nav tā tipa visu ārā no nulles. 544 00:24:06,440 --> 00:24:09,420 >> Un paziņojuma gaidot mēs izmantojot vairākas galveni 545 00:24:09,420 --> 00:24:13,240 attēli, kuru vidū ir mūsu jaunais draugs, string.h. 546 00:24:13,240 --> 00:24:15,597 Tagad tas izskatās, sākumā skatienu, mazliet noslēpumains. 547 00:24:15,597 --> 00:24:18,180 Bet pieņemsim redzēt, ja mēs nevaram spriest caur to, kas notiek šeit. 548 00:24:18,180 --> 00:24:21,150 Pirmkārt man virkni no lietotāja, un man, ka virknes mainīgo 549 00:24:21,150 --> 00:24:22,286 sauc s. 550 00:24:22,286 --> 00:24:24,090 Kopēt paste no iepriekš. 551 00:24:24,090 --> 00:24:27,250 Saskaņā 22, es esmu acīmredzot dara tieši to, ko 552 00:24:27,250 --> 00:24:30,760 Es darīju pirms brīža, es esmu atkārtojot pār rakstzīmes s. 553 00:24:30,760 --> 00:24:34,780 >> Un jaunie triku šeit izmantojat stīgu garums, nepilngadīgais optimizācija 554 00:24:34,780 --> 00:24:37,930 uzglabāšanas virknes garumu n, nevis zvanot strlen atkal, 555 00:24:37,930 --> 00:24:38,850 un atkal, un atkal. 556 00:24:38,850 --> 00:24:41,120 , Un tikai pārbaudi, ka i ir mazāks par n. 557 00:24:41,120 --> 00:24:43,330 Tagad šeit, lietas iegūt nedaudz interesanti. 558 00:24:43,330 --> 00:24:45,980 Bet tas ir tikai pieteikums Šā paša jaunu ideju. 559 00:24:45,980 --> 00:24:48,470 Kas in English dara s kronšteins i pārstāv? 560 00:24:48,470 --> 00:24:51,772 561 00:24:51,772 --> 00:24:54,260 >> AUDITORIJA: Counting katrs raksturs [nedzirdama]. 562 00:24:54,260 --> 00:24:55,926 >> DAVID J. Malan: Counting katru rakstzīmi. 563 00:24:55,926 --> 00:24:58,680 Un pat vairāk kodolīgi, s kronšteins i atspoguļo to, ko? 564 00:24:58,680 --> 00:25:00,950 Vai jūs sakāt. 565 00:25:00,950 --> 00:25:04,084 Nedrīkst likt jums uz vietas šeit. 566 00:25:04,084 --> 00:25:06,375 >> AUDITORIJA: Well-- 567 00:25:06,375 --> 00:25:09,500 DAVID J. Malan: Tātad, ja vārds is-- ja virkne ir Zamyla, kas starts-- 568 00:25:09,500 --> 00:25:12,380 AUDITORIJA: --you nodarbojas ar rakstzīmes separately-- 569 00:25:12,380 --> 00:25:13,690 DAVID J. Malan: Labi. 570 00:25:13,690 --> 00:25:14,190 Tieši tā. 571 00:25:14,190 --> 00:25:17,940 Kvadrātiekava notācija ļauj piekļūt katru rakstzīmi atsevišķi, 572 00:25:17,940 --> 00:25:21,120 tik s kronšteins 0 būs pirmais simbols virknē. 573 00:25:21,120 --> 00:25:24,110 s kronšteins 1 būs otrais, un tā tālāk. 574 00:25:24,110 --> 00:25:28,050 Tātad jautājums, es esmu jautā, šeit, šajā stāvoklī ir tas, ko? 575 00:25:28,050 --> 00:25:33,984 Vai i'th raksturs s, kas ir lielāka par vai vienāds burti? 576 00:25:33,984 --> 00:25:36,400 Un ko tas nozīmē, šeit, ar dubultu ampersands? 577 00:25:36,400 --> 00:25:36,800 AUDITORIJA (KOPĀ): Un. 578 00:25:36,800 --> 00:25:37,210 DAVID J. Malan: Un. 579 00:25:37,210 --> 00:25:38,418 Tas ir tikai līdzvērtīgi to. 580 00:25:38,418 --> 00:25:42,310 Un nav atslēgvārds C, jums ir lietošanu, kaitinoši, Ampersand Ampersand. 581 00:25:42,310 --> 00:25:47,520 Un tas, savukārt, ir jautā, ir s s i'th rakstura mazāks vai vienāds 582 00:25:47,520 --> 00:25:49,030 burti z? 583 00:25:49,030 --> 00:25:52,440 Un atkal, šeit ir, ja izpratne pamatā 584 00:25:52,440 --> 00:25:54,550 īstenošana dators ir jēga. 585 00:25:54,550 --> 00:25:57,330 Ievērojiet, ka, lai gan man ir dot dot dot tur, 586 00:25:57,330 --> 00:26:04,410 izskatās caur z ar mazajiem tiek visi kaimiņu vērtības, līdz no 97 uz augšu. 587 00:26:04,410 --> 00:26:07,820 >> Un pats par lielajiem burtiem, sākot no 65. 588 00:26:07,820 --> 00:26:10,410 Tātad takeaway, tad, ir tas, ka angļu valodā, 589 00:26:10,410 --> 00:26:12,760 kā jūs raksturotu kāda līnija 24 dara? 590 00:26:12,760 --> 00:26:15,736 591 00:26:15,736 --> 00:26:16,728 Yeah? 592 00:26:16,728 --> 00:26:21,575 >> AUDITORIJA: 24. tā pārbaudi, lai redzētu vai katrs raksturs ir mazie burti. 593 00:26:21,575 --> 00:26:24,700 DAVID J. Malan: Tas ir pārbaudīt, vai katrs raksturs ir mazo burtu. 594 00:26:24,700 --> 00:26:28,590 Tātad vēl kodolīgi, ir i'th raksturs s mazie burti? 595 00:26:28,590 --> 00:26:30,690 Tas ir viss, ko mēs esam paužot šeit loģiski, 596 00:26:30,690 --> 00:26:33,750 mazliet cryptically, bet galu galā diezgan vienkāršākā. 597 00:26:33,750 --> 00:26:36,480 Ir s s i'th rakstzīmju mazie burti? 598 00:26:36,480 --> 00:26:40,130 >> Ja tā, un šeit ir, ja lietas get nedaudz prāta saliekuma 599 00:26:40,130 --> 00:26:44,760 tikai brīdi, ja tas tā ir, aiziet priekšu un izdrukāt raksturs. 600 00:26:44,760 --> 00:26:47,360 Tātad tas ir tikai vietturis bet ko raksturs? 601 00:26:47,360 --> 00:26:53,710 Kāpēc es daru s kronšteinu i mīnus šis izteiciens šeit? 602 00:26:53,710 --> 00:26:55,110 >> Nu ievērosiet modeli šeit. 603 00:26:55,110 --> 00:26:57,380 Faktiskais skaits nav jautājums tik daudz. 604 00:26:57,380 --> 00:27:02,700 Bet paziņo, ka 97 ir cik tālu prom no 65? 605 00:27:02,700 --> 00:27:03,560 >> AUDITORIJA: 32. 606 00:27:03,560 --> 00:27:04,480 >> DAVID J. Malan: 32. 607 00:27:04,480 --> 00:27:06,890 Cik tālu ir 98 no 66? 608 00:27:06,890 --> 00:27:07,740 >> AUDITORIJA: 32. 609 00:27:07,740 --> 00:27:09,890 >> DAVID J. Malan: Little c no lieliem C? 610 00:27:09,890 --> 00:27:10,420 32. 611 00:27:10,420 --> 00:27:14,550 Tātad tur ir 32 apiņi no viens burts uz citu. 612 00:27:14,550 --> 00:27:17,790 Tik atklāti sakot, es, varētu vienkāršot to, ka. 613 00:27:17,790 --> 00:27:20,400 Bet tad es esmu sava veida grūti kodēšanas šis līmenis izpratne 614 00:27:20,400 --> 00:27:21,740 ka lasītājs ir jebkad sapratīšu. 615 00:27:21,740 --> 00:27:25,080 Tāpēc es esmu gatavojas vispārināt to kā, es zinu, ka mazie burti ir lielāki. 616 00:27:25,080 --> 00:27:28,400 Es zinu, ka lielie burti ir mazākas vērtības, ironiski. 617 00:27:28,400 --> 00:27:33,216 >> Bet tas ir vienlīdz efektīvs sakot atņemt 32 no u grupā i. 618 00:27:33,216 --> 00:27:35,430 Tātad saistībā ar šiem burti, ja burts 619 00:27:35,430 --> 00:27:38,950 notiek, ir, mazie burti , un es atņem 32, 620 00:27:38,950 --> 00:27:43,442 kāda ietekme tas, kas ir, matemātiski, par mazajiem burtiem? 621 00:27:43,442 --> 00:27:44,400 AUDITORIJA: Capitalizes-- 622 00:27:44,400 --> 00:27:45,691 DAVID J. Malan: kapitalizē to. 623 00:27:45,691 --> 00:27:48,440 Un tiešām, tas ir iemesls, kāpēc mūsu Programma sauc kapitalizēt nulli. 624 00:27:48,440 --> 00:27:51,590 Šī programma vai nu kapitalizē vēstuli, 625 00:27:51,590 --> 00:27:54,580 pēc pārbaudes, ja tas ir tiešām mazo burtu. 626 00:27:54,580 --> 00:27:59,810 Pretējā gadījumā, 30 līnija, ko man darīt, ja tas nav mazo burtu, kas es esmu 627 00:27:59,810 --> 00:28:02,852 meklē pie īpaši atkārtojuma cilpa. 628 00:28:02,852 --> 00:28:03,890 Vienkārši izdrukāt to ārā. 629 00:28:03,890 --> 00:28:07,010 >> Tāpēc nemainās sīkumi tas nav pat mazie burti. 630 00:28:07,010 --> 00:28:10,790 Ierobežot sevi maz pa maz z. 631 00:28:10,790 --> 00:28:12,730 Tagad tas ir diezgan mistisks. 632 00:28:12,730 --> 00:28:15,230 Bet beigās, dienā, tas ir tas, kā mēs reiz, 633 00:28:15,230 --> 00:28:16,460 nācās īstenot lietas. 634 00:28:16,460 --> 00:28:19,780 Ja es tā vietā atvērt kapitalizēt viens, oh paldies dievam. 635 00:28:19,780 --> 00:28:22,320 Tur ir funkcija aicināja augšējo, kas var 636 00:28:22,320 --> 00:28:25,410 darīt visu, mēs vienkārši darīja pie diezgan zemā līmenī. 637 00:28:25,410 --> 00:28:28,752 >> Tagad, lai augšējā ir interesanti jo tas ir deklarēta failā, 638 00:28:28,752 --> 00:28:31,210 un jūs tikai zināt, tas , pārbaudot dokumentāciju, 639 00:28:31,210 --> 00:28:35,730 vai tiek teica, teiksim, klasē, kur tā pastāv, jo failu sauc ctype.h. 640 00:28:35,730 --> 00:28:37,630 Tātad šis ir vēl viens jauns draugs mūsējie. 641 00:28:37,630 --> 00:28:40,750 Un, lai augšējā dara tieši ko tās nosaukums liecina. 642 00:28:40,750 --> 00:28:44,860 >> Jūs varat pāriet, kā argumentu, starp šie iekavas, daži raksturs. 643 00:28:44,860 --> 00:28:48,390 Es esmu gatavojas iet uz i'th raksturs no s, izmantojot mūsu iedomātā jauno notācija 644 00:28:48,390 --> 00:28:49,870 iesaistot kvadrātiekavas. 645 00:28:49,870 --> 00:28:53,391 Un veikt uzminēt, kāda ir atdeve vērtība uz augšējā acīmredzot notiek 646 00:28:53,391 --> 00:28:53,890 būt? 647 00:28:53,890 --> 00:28:56,460 648 00:28:56,460 --> 00:28:57,770 Lielais burts. 649 00:28:57,770 --> 00:28:58,620 Lielais burts. 650 00:28:58,620 --> 00:29:02,330 >> Tātad, ja es iet ar mazajiem burtiem a, cerams, pēc definīcijas, lai augšējā, 651 00:29:02,330 --> 00:29:05,600 tas notiek, lai atgrieztos lielajiem A. Pretējā gadījumā 652 00:29:05,600 --> 00:29:08,590 ja tas nav mazo burtu, kas pirmā vieta, es tikai to izdrukāt. 653 00:29:08,590 --> 00:29:10,800 Un tiešām, paziņojums Otrs draugs šeit. 654 00:29:10,800 --> 00:29:13,840 Ne tikai augšējo pastāv, bet ir mazāks, kas 655 00:29:13,840 --> 00:29:16,200 faktiski atbild, ka jautājums par mani. 656 00:29:16,200 --> 00:29:19,730 >> Tagad tas, kurš rakstīja šīs lietas, 10s of Pirms gadiem, jūs zināt, ko? 657 00:29:19,730 --> 00:29:23,840 Īstenoti, lai augšējā un ir pazemināt izmantojot kodu, kā šis. 658 00:29:23,840 --> 00:29:27,270 Bet atkal, kas atbilst šī ideja abstrahējoties prom, 659 00:29:27,270 --> 00:29:29,190 veida, zemāka līmeņa īstenošanas detaļas. 660 00:29:29,190 --> 00:29:32,600 Un stāv uz pleciem cilvēku kas nāca pirms mums, izmantojot funkciju 661 00:29:32,600 --> 00:29:36,300 patīk augšējā un apakšējā, kas lieliski pietiekami ir labi 662 00:29:36,300 --> 00:29:40,190 nosaukts pateikt, ko viņi dara, ir brīnišķīgi paradigma pieņemt. 663 00:29:40,190 --> 00:29:44,040 >> Tagad, izrādās, ka, ja es izlasīju cilvēks lapa, teiksim, uz augšējā, 664 00:29:44,040 --> 00:29:45,010 Es iemācīties kaut ko citu. 665 00:29:45,010 --> 00:29:46,890 Tātad man toupper. 666 00:29:46,890 --> 00:29:48,050 Tas ir nedaudz milzīgs. 667 00:29:48,050 --> 00:29:51,110 Bet paziņojums, šeit ir, ka pieminēšana header fails, ka man vajadzētu izmantot. 668 00:29:51,110 --> 00:29:54,460 Kā malā, jo tas ir maldinošs, funkcija 669 00:29:54,460 --> 00:29:59,070 izmanto ints nevis chars dēļ kļūdu labošanas. 670 00:29:59,070 --> 00:30:01,260 Bet mēs, iespējams, nāk atpakaļ, ka nākotnē. 671 00:30:01,260 --> 00:30:05,910 >> Bet paziņojums, šeit, uz augšējiem pievērsto burtu c uz lielajiem burtiem, ja iespējams. 672 00:30:05,910 --> 00:30:07,674 Tā ka ir diezgan vienkārši. 673 00:30:07,674 --> 00:30:09,340 Un tagad būsim nedaudz konkrētāku. 674 00:30:09,340 --> 00:30:12,750 Apskatīsim daļu man lapa zem atgriešanās vērtību. 675 00:30:12,750 --> 00:30:15,420 Vērtība atgriezās ir tas, ka no konvertē vēstules. 676 00:30:15,420 --> 00:30:18,690 Vai c, ja konversijas nebija iespējams, 677 00:30:18,690 --> 00:30:20,250 kur c ir oriģināls ieejas. 678 00:30:20,250 --> 00:30:24,140 Ko es zinu no šejienes, no arguments uz augšējo. 679 00:30:24,140 --> 00:30:25,780 >> Tātad, kas ir takeaway par šo? 680 00:30:25,780 --> 00:30:28,060 Vērtība atgriezās ir tas, ka no konvertē vēstules, 681 00:30:28,060 --> 00:30:32,110 vai c, oriģināls vēstule, ja konversijas nav iespējams. 682 00:30:32,110 --> 00:30:36,460 Kādi uzlabojumi Tāpēc es iespējams dot manu kodu dizains? 683 00:30:36,460 --> 00:30:37,146 Yeah? 684 00:30:37,146 --> 00:30:38,810 >> AUDITORIJA: Jūs varat izņemt cits. 685 00:30:38,810 --> 00:30:40,810 DAVID J. Malan: es varu noņemt cits paziņojumu, 686 00:30:40,810 --> 00:30:42,510 un ne tikai cits paziņojums. 687 00:30:42,510 --> 00:30:44,150 >> AUDITORIJA: Jūs varat noņemt [nedzirdama]. 688 00:30:44,150 --> 00:30:46,310 >> DAVID J. Malan: es varu noņemt visu dakšu 689 00:30:46,310 --> 00:30:48,209 uz ceļa, ja cits pavisam. 690 00:30:48,209 --> 00:30:50,250 Tik tiešām, ļaujiet man atvērt galīgā versija par šo, 691 00:30:50,250 --> 00:30:55,540 kapitalizēt-2, un paziņojums, cik, ja jūs, sexy, kods ir tagad kļūst, 692 00:30:55,540 --> 00:31:00,040 jo es esmu samazināts no dažām septiņas vai tā līnijas uz tikai četri, 693 00:31:00,040 --> 00:31:03,850 funkcionalitāte, kas man paredzēts , vienkārši zvanot uz augšējo, 694 00:31:03,850 --> 00:31:09,410 garāmejot s kronšteinu i, un drukāšanas veic ar viettura% c, 695 00:31:09,410 --> 00:31:11,090 ka īpaši raksturs. 696 00:31:11,090 --> 00:31:14,560 >> Tagad varbūt ir kļūda, vai vismaz risks bug, 697 00:31:14,560 --> 00:31:15,350 šajā programmā. 698 00:31:15,350 --> 00:31:18,200 Tik vienkārši atgriezties uz agrāku takeaway, 699 00:31:18,200 --> 00:31:21,820 Ko man, iespējams, arī darīt šī programma, lai padarītu to stabilāku, 700 00:31:21,820 --> 00:31:24,974 tāpēc, ka tur nav veids, kā tas var crash, pat retos gadījumos? 701 00:31:24,974 --> 00:31:26,390 AUDITORIJA: Pārliecinieties, ka tas nav NULL. 702 00:31:26,390 --> 00:31:28,056 DAVID J. Malan: Pārliecinieties, ka tas nav NULL. 703 00:31:28,056 --> 00:31:31,030 Tik tiešām, lai padarītu šo super pareizi, man vajadzētu kaut ko darīt, piemēram, 704 00:31:31,030 --> 00:31:35,300 ja s nav NULL, tad iet uz priekšu un izpildīt 705 00:31:35,300 --> 00:31:38,470 šīs rindas kods, kas Es tad var ievilkumu, piemēram, ka, 706 00:31:38,470 --> 00:31:39,870 un pēc tam nodot manā ciešā lencēm. 707 00:31:39,870 --> 00:31:41,550 Tik labs sasaistīšana kopā no diviem idejām. 708 00:31:41,550 --> 00:31:42,429 Yeah? 709 00:31:42,429 --> 00:31:44,470 AUDITORIJA: Vai jūs izmantojat darīt, kamēr cilpa, vietā? 710 00:31:44,470 --> 00:31:47,270 DAVID J. Malan: Could Es to darīt, kamēr cilpa? 711 00:31:47,270 --> 00:31:50,020 AUDITORIJA: --you vēlaties pārliecināties ka jūs faktiski [nedzirdama]. 712 00:31:50,020 --> 00:31:51,728 DAVID J. Malan: Could jūs izmantojat darīt, kamēr? 713 00:31:51,728 --> 00:31:52,450 Īsā atbilde, nē. 714 00:31:52,450 --> 00:31:54,700 Jo jūs gatavojaties ieviest citu stūra lietu. 715 00:31:54,700 --> 00:31:56,660 Ja virkne ir nulles garuma. 716 00:31:56,660 --> 00:31:59,600 Ja, piemēram, es tikai hit Enter, nekad ierakstot Zamyla. 717 00:31:59,600 --> 00:32:02,490 Es esmu gatavojas nodot jums atpakaļ faktiskais string, jo mēs beidzot redzēt, 718 00:32:02,490 --> 00:32:03,780 ka ir nulle rakstzīmes. 719 00:32:03,780 --> 00:32:05,630 Tas ir vēl virkne, tas ir vienkārši super īss. 720 00:32:05,630 --> 00:32:07,960 Bet, ja jūs izmantojat darīt, kamēr, jūs gatavojas akli 721 00:32:07,960 --> 00:32:10,050 mēģināt kaut ko darīt ar cienīt šai virkni, 722 00:32:10,050 --> 00:32:12,537 un nekas, ka būs tur. 723 00:32:12,537 --> 00:32:18,607 >> AUDITORIJA: Nu, ja jūs do [dzirdams] kamēr S-- LV- 724 00:32:18,607 --> 00:32:21,190 DAVID J. Malan: Ak es redzu, glabāt iegūt virkni no lietotāja. 725 00:32:21,190 --> 00:32:23,525 Tik īsa atbilde, tu varēja, un saglabāt pestering 726 00:32:23,525 --> 00:32:26,150 tos, lai dotu jums virkni, kas ir pietiekami īss, lai ietilptu atmiņā. 727 00:32:26,150 --> 00:32:26,700 Absolūti. 728 00:32:26,700 --> 00:32:27,630 Es vienkārši izvēlējās to nedarīt. 729 00:32:27,630 --> 00:32:30,505 Ja viņi nedod man stīgu I gribu, es esmu atmest, es esmu atmest. 730 00:32:30,505 --> 00:32:33,260 Bet absolūti, šim nolūkam, jūs varētu absolūti darīt. 731 00:32:33,260 --> 00:32:37,500 >> Tātad Bibliotēkas header failus, kas Tagad mēs esam pazīstami ar ir šie, šeit. 732 00:32:37,500 --> 00:32:41,550 Standarta I / O, CS50.h, string.h, ctype.h, un ir, protams, citi. 733 00:32:41,550 --> 00:32:44,460 Daži no jums ir atklājuši math bibliotēka math.h. 734 00:32:44,460 --> 00:32:48,200 Bet ļaujiet man iepazīstināt jūs tagad, lai šis resurss ka CS50 darbinieki, Davin, 735 00:32:48,200 --> 00:32:50,630 un Rob, un Gabe īpaši ir salikti kopā. 736 00:32:50,630 --> 00:32:52,630 , Kas drīzumā saiti Kurss Mājas. 737 00:32:52,630 --> 00:32:54,870 To sauc CS50 atsauces. 738 00:32:54,870 --> 00:32:58,230 >> Kas tikai, lai dotu jums ātri garša no tā, darbojas šādi. 739 00:32:58,230 --> 00:33:00,740 Ļaujiet man iet uz reference.cs50.net. 740 00:33:00,740 --> 00:33:02,990 Jūs redzēsiet uz kreisās rokas sānu milzīgs saraksts 741 00:33:02,990 --> 00:33:04,595 funkciju, kas nāk ar c. 742 00:33:04,595 --> 00:33:07,790 Bet, ja es aprūpi, uz šo brīdi, par kaut ko līdzīgu strlen, 743 00:33:07,790 --> 00:33:08,746 Es varu ierakstīt to tur. 744 00:33:08,746 --> 00:33:10,870 Tā filtri leju sarakstu tikai to, ko man rūp. 745 00:33:10,870 --> 00:33:11,940 Es esmu gatavojas noklikšķiniet uz tā. 746 00:33:11,940 --> 00:33:14,740 Un tagad pa kreisi, jūs redzēsiet, ko mēs ceram, 747 00:33:14,740 --> 00:33:18,290 ir vienkāršāka, cilvēku draudzīgs paskaidrojums, kā 748 00:33:18,290 --> 00:33:19,170 šī funkcija darbojas. 749 00:33:19,170 --> 00:33:20,600 >> Atgriež garumu virknes. 750 00:33:20,600 --> 00:33:24,060 Lūk konspekts, Lūk, kā jūs to izmantot attiecībā uz header failu, 751 00:33:24,060 --> 00:33:27,430 un izteiksmē kādā funkcijas Izskatās, ka attiecībā uz tās argumentiem. 752 00:33:27,430 --> 00:33:30,250 Un tad šeit, atgriežas garums string. 753 00:33:30,250 --> 00:33:34,280 Bet tiem no jums ērtāk, jūs tiešām varat noklikšķināt vairāk comfy, 754 00:33:34,280 --> 00:33:37,070 un saturs, šis lapas, tagad, mainīsies 755 00:33:37,070 --> 00:33:41,660 būt noklusējuma vērtības ko jums, izmantojot man lapu. 756 00:33:41,660 --> 00:33:44,100 >> Citiem vārdiem sakot, CS50 atsauce ir vienkāršošana 757 00:33:44,100 --> 00:33:46,220 ķīmiskām lapām ar personālu, studentiem. 758 00:33:46,220 --> 00:33:49,320 Īpaši tie, mazāk apmierināti un no tā, ka tu 759 00:33:49,320 --> 00:33:51,660 nav mēģināt wrap jūsu prāts apkārt, atklāti sakot, 760 00:33:51,660 --> 00:33:55,030 daži diezgan mistisks sintakse un dokumentācija dažkārt. 761 00:33:55,030 --> 00:33:57,650 >> Lai saglabātu, ka prātā dienās nāk. 762 00:33:57,650 --> 00:33:59,560 Tātad šeit, atkal, ir Zamyla. 763 00:33:59,560 --> 00:34:03,255 Pieņemsim tagad uzdot jautājumu, kas ir nedaudz vairāk cilvēku pieejamāku. 764 00:34:03,255 --> 00:34:05,380 Pateicoties Chang, kurš ir bijis drukājot vairāk ziloņi 765 00:34:05,380 --> 00:34:07,090 nonstop par pēdējo dienu. 766 00:34:07,090 --> 00:34:09,730 Mums ir iespēja dot vismaz viens no tiem prom. 767 00:34:09,730 --> 00:34:13,239 Ja mēs varētu saņemt tikai viens brīvprātīgais nākt uz augšu, lai pievērstu uz ekrāna. 768 00:34:13,239 --> 00:34:14,530 Kā par šeit? 769 00:34:14,530 --> 00:34:15,340 >> Nāciet uz augšu. 770 00:34:15,340 --> 00:34:16,720 Kāds ir tavs vārds? 771 00:34:16,720 --> 00:34:17,219 ALEX: Alex. 772 00:34:17,219 --> 00:34:17,760 DAVID J. Malan: Alex. 773 00:34:17,760 --> 00:34:18,259 Viss labi. 774 00:34:18,259 --> 00:34:19,388 Alex, nākt uz augšu. 775 00:34:19,388 --> 00:34:21,679 Mēs esam par to, lai redzētu savu rokraksta uz ekrāna šeit. 776 00:34:21,679 --> 00:34:24,325 777 00:34:24,325 --> 00:34:25,570 Visas tiesības, nice to meet you. 778 00:34:25,570 --> 00:34:26,429 >> ALEX: Nice tu tevi tikties. 779 00:34:26,429 --> 00:34:27,512 >> DAVID J. Malan: Nu labi. 780 00:34:27,512 --> 00:34:28,969 Tātad, super vienkāršs vingrinājums. 781 00:34:28,969 --> 00:34:31,440 Bar nav augsta, lai nokļūt ziloni šodien. 782 00:34:31,440 --> 00:34:33,439 Jūs spēlējat lomu getstring. 783 00:34:33,439 --> 00:34:35,980 Un es esmu gatavojas tikai pateiks virkne, kas tu būsi. 784 00:34:35,980 --> 00:34:38,080 Un pieņemsim, ka jums, getstring, ir saukta. 785 00:34:38,080 --> 00:34:42,480 Un cilvēks, piemēram, man, ir ievadījis Zamyla, Z-A-M-Y-L-A. 786 00:34:42,480 --> 00:34:45,650 Vienkārši iet uz priekšu un rakstīt Zamyla uz ekrāns, it kā jums ir gotten to 787 00:34:45,650 --> 00:34:47,250 un uzglabā to kaut kur atmiņā. 788 00:34:47,250 --> 00:34:52,370 789 00:34:52,370 --> 00:34:55,570 >> Atstājot telpa, kas būs vairāki citi words-- ka ir OK, turpiniet. 790 00:34:55,570 --> 00:34:59,620 >> [Smiekli] 791 00:34:59,620 --> 00:35:00,800 >> Tātad Zamyla, Excellent. 792 00:35:00,800 --> 00:35:04,880 Tāpēc tagad, pieņemsim, ka jums, getstring, sauc atkal. 793 00:35:04,880 --> 00:35:09,350 Un tāpēc, es sniegt jums, pie tastatūra, ar citu nosaukumu, Belinda. 794 00:35:09,350 --> 00:35:17,560 795 00:35:17,560 --> 00:35:18,060 Viss labi. 796 00:35:18,060 --> 00:35:22,380 Un tagad nākamais laiks getstring ir sauc, es tipa kaut ko līdzīgu Gabe, 797 00:35:22,380 --> 00:35:27,560 G-A-B-E. Jūs tiešām lietojat sirds brīvpiekļuves atmiņā. 798 00:35:27,560 --> 00:35:29,631 Kas tuvojas visu pilnīgi nejauši. 799 00:35:29,631 --> 00:35:30,130 OK. 800 00:35:30,130 --> 00:35:31,104 >> [Smiekli] 801 00:35:31,104 --> 00:35:32,520 ALEX: Sorry mans rokraksts ir slikti. 802 00:35:32,520 --> 00:35:33,770 DAVID J. Malan: Nē, tas ir OK. 803 00:35:33,770 --> 00:35:40,480 Un kā par Rob, R-O-B. OK. 804 00:35:40,480 --> 00:35:41,020 Labs. 805 00:35:41,020 --> 00:35:43,853 Tāpēc man nebija prognozēt jums būtu veida gulēja lietas šādā veidā. 806 00:35:43,853 --> 00:35:45,020 Bet mēs varam darīt šo darbu. 807 00:35:45,020 --> 00:35:48,810 Tātad, kā jūs iet par ko no šiem simboliem atmiņā? 808 00:35:48,810 --> 00:35:51,310 Citiem vārdiem sakot, ja mēs domājam par šī taisnstūra melns ekrāns 809 00:35:51,310 --> 00:35:53,550 kā pārstāv datora RAM, vai atmiņas. 810 00:35:53,550 --> 00:35:55,850 >> Un atcerēties, ka RAM ir tikai viss ķekars baitu, 811 00:35:55,850 --> 00:35:57,480 un baiti ir viss ķekars bitiem. 812 00:35:57,480 --> 00:35:59,350 Un biti ir kaut īstenoti, parasti 813 00:35:59,350 --> 00:36:01,119 ar kāda veida elektrības aparatūru. 814 00:36:01,119 --> 00:36:03,160 Tātad tas ir sava veida layering mēs esam runājuši par 815 00:36:03,160 --> 00:36:04,510 un tagad var pieņemt par pašsaprotamu. 816 00:36:04,510 --> 00:36:07,020 Kā jūs iet par izlemjot, kur rakstīt 817 00:36:07,020 --> 00:36:11,634 Aplaupīt pret Gabe versus Belinda pret Zamyla? 818 00:36:11,634 --> 00:36:14,020 >> ALEX: Es vienkārši darīju to noteikt, ka tu man teica. 819 00:36:14,020 --> 00:36:15,650 >> DAVID J. Malan: Un kas ir taisnība. 820 00:36:15,650 --> 00:36:20,100 Bet ko regulē kur jūs varat ievietot Belinda vārds un Gabe vārds? 821 00:36:20,100 --> 00:36:20,764 >> ALEX: Nekas? 822 00:36:20,764 --> 00:36:22,930 DAVID J. Malan: [smejas] Tātad, kas darbojas, tas ir jauki. 823 00:36:22,930 --> 00:36:25,290 Tāpēc datori ir maz sakārtotāku nekā. 824 00:36:25,290 --> 00:36:29,000 Un tad, kad mēs implement-- tur uzturēties lai tikai moment-- kad mēs faktiski 825 00:36:29,000 --> 00:36:31,470 ieviest kaut ko līdzīgu getstring datorā, 826 00:36:31,470 --> 00:36:34,480 Zamyla varētu izklāstīts diezgan daudz tāpat kā jūs uz ekrāna, tur. 827 00:36:34,480 --> 00:36:36,660 >> Un to, kas ir galvenais, lai paziņojuma šeit, ko Alex darīja, 828 00:36:36,660 --> 00:36:40,260 ir tur ir sava veida norobežošanas starp katru no šiem vārdiem, labi? 829 00:36:40,260 --> 00:36:46,580 Jums nav rakstīt Z-A-M-Y-L-A-B-E-L-I-N-D-A-G-A-B-- 830 00:36:46,580 --> 00:36:49,740 citiem vārdiem sakot, tur ir sava veida demarkācijas, kas, šķiet, ir, 831 00:36:49,740 --> 00:36:52,370 veida, izlases atstarpes starp šiem dažādajiem vārdiem. 832 00:36:52,370 --> 00:36:54,120 Bet tas ir labi, jo mēs, cilvēki tagad var 833 00:36:54,120 --> 00:36:56,470 iztēloties, ka tie ir četras dažādas stīgas. 834 00:36:56,470 --> 00:36:59,540 Tas ir ne tikai viena secība Partiju rakstzīmju. 835 00:36:59,540 --> 00:37:04,190 Tātad dators, tad tikmēr, varētu veikt virkni līdzīgu Zamyla, 836 00:37:04,190 --> 00:37:07,220 likts katra no šīm vēstulēm iekšpusē baitu atmiņas. 837 00:37:07,220 --> 00:37:10,400 Bet šis skaits ir daudz lielāks, Protams, nekā sešas zīmes. 838 00:37:10,400 --> 00:37:11,690 >> Tur ir viss ķekars RAM. 839 00:37:11,690 --> 00:37:15,330 Un tā turpmāk, šis režģis kastes notiek 840 00:37:15,330 --> 00:37:17,560 pārstāvēt ko Alex tikko darīja šeit uz ekrāna. 841 00:37:17,560 --> 00:37:20,937 Un tagad, Alex, mēs varam piedāvāt Jums ar zila vai oranža zilonis no Chang. 842 00:37:20,937 --> 00:37:22,270 ALEX: Es ņemšu zilo ziloni. 843 00:37:22,270 --> 00:37:23,120 DAVID J. Malan: zils zilonis. 844 00:37:23,120 --> 00:37:25,580 Tik liels kārta aplausi, ja mēs varētu, Alex šeit. 845 00:37:25,580 --> 00:37:26,100 >> [Aplausi] 846 00:37:26,100 --> 00:37:26,766 >> ALEX: Paldies. 847 00:37:26,766 --> 00:37:28,820 DAVID J. Malan: Paldies. 848 00:37:28,820 --> 00:37:36,230 Tātad takeaway ir tas, ka, lai gan modelis veida mainījusies laika gaitā, šeit 849 00:37:36,230 --> 00:37:40,430 uz kuģa, tur bija šī demarkācija starp dažādām stīgām 850 00:37:40,430 --> 00:37:42,610 ka Alex ieguva mums. 851 00:37:42,610 --> 00:37:45,230 Tagad datori, atklāti sakot, varētu darīt to pašu. 852 00:37:45,230 --> 00:37:48,210 Viņi varēja veida plunkšķis virknes jebkur RAM. 853 00:37:48,210 --> 00:37:50,710 Šeit, nekā šeit, šeit lejā, uz leju šeit. 854 00:37:50,710 --> 00:37:52,020 >> Viņi varētu darīt tieši to. 855 00:37:52,020 --> 00:37:54,280 Bet, protams, tas ir iespējams, nav labākais plānošana. 856 00:37:54,280 --> 00:37:54,780 Tiesības? 857 00:37:54,780 --> 00:37:57,340 Ja es tur jautā Alex līdz get vārdus, droši vien viņš gribētu 858 00:37:57,340 --> 00:38:01,370 izvirzīti daži vairāk uz leju šeit, varbūt līdz šeit, nekā šeit, nekā šeit, galu galā 859 00:38:01,370 --> 00:38:02,211 nekā šeit. 860 00:38:02,211 --> 00:38:05,460 Bet ar mazliet vairāk plānošanu, protams, mēs varētu noteikt lietas vairāk tīri. 861 00:38:05,460 --> 00:38:07,350 Un tiešām, tas, ko dators dara. 862 00:38:07,350 --> 00:38:10,720 >> Bet nozveju, ka ja nākamais virkne man 863 00:38:10,720 --> 00:38:14,050 pēc Zamyla ir kaut kas piemēram, Belinda, 864 00:38:14,050 --> 00:38:17,929 ierosināt kur mēs varētu rakstīt b attiecībā uz šo tīkla vēstule? 865 00:38:17,929 --> 00:38:18,720 Kur jūs iet? 866 00:38:18,720 --> 00:38:21,480 Pa labi no a, zem z, zem a? 867 00:38:21,480 --> 00:38:23,204 Kādi būtu jūsu pirmie instinkti būt? 868 00:38:23,204 --> 00:38:24,120 AUDITORIJA: Zem z. 869 00:38:24,120 --> 00:38:25,100 DAVID J. Malan: Tātad zem z. 870 00:38:25,100 --> 00:38:26,530 Un tas ir diezgan vienkārši, vai ne? 871 00:38:26,530 --> 00:38:29,321 Tas ir sava veida veikls, tas ir tas, ko mēs darām uz klaviatūras, kad mēs hit Enter, 872 00:38:29,321 --> 00:38:31,770 vai e-pastu, veicot aizzīmēm saraksts ar lietām. 873 00:38:31,770 --> 00:38:34,310 Bet realitāte ir tāda, ka datori cenšas būt efektīvāki, 874 00:38:34,310 --> 00:38:37,170 un piestūķēt protams tik daudz datus RAM, cik iespējams, 875 00:38:37,170 --> 00:38:38,890 tā, ka jums nav atkritumi jebkurā baiti. 876 00:38:38,890 --> 00:38:41,545 Tā, ka jūs netērētu jebkurš ekrāns nekustamo īpašumu. 877 00:38:41,545 --> 00:38:44,170 Un problēma, lai gan, ir tas, ka ja mēs burtiski nodot vēstuli 878 00:38:44,170 --> 00:38:49,940 b pēc tam, kā mēs gatavojamies zināt, kur Zamyla vārds beidzas 879 00:38:49,940 --> 00:38:51,840 Un Belinda vārds sākas? 880 00:38:51,840 --> 00:38:55,270 Tātad, jūs cilvēkus vienkārši ierosināja, labi, hit Enter taustiņu, būtībā. 881 00:38:55,270 --> 00:38:56,410 Put to lejā. 882 00:38:56,410 --> 00:38:59,750 Vai pat kā Alex darīja, vienkārši sāciet rakstīt nākamais vārds zem iepriekšējā, 883 00:38:59,750 --> 00:39:01,583 un zemāk par šo vienu, un Tad turpmāk šo vienu. 884 00:39:01,583 --> 00:39:02,510 Tas ir vizuāls norādījums. 885 00:39:02,510 --> 00:39:05,960 >> Datori ir cits vizuāls norādījums, bet tas ir nedaudz vairāk īss. 886 00:39:05,960 --> 00:39:07,840 Tas ir tas bailīgs raksturs. 887 00:39:07,840 --> 00:39:11,890 Slīpsvītru 0, kas, iespējams, ir atgādina slīpsvītru n, 888 00:39:11,890 --> 00:39:12,640 un tā tālāk, tagad. 889 00:39:12,640 --> 00:39:14,120 Īpašie evakuācijas sekvences. 890 00:39:14,120 --> 00:39:19,120 Slīpsvītru 0, ir veids, kā pārstāv astoņi nulle bitu pēc kārtas. 891 00:39:19,120 --> 00:39:22,000 0000 0000. 892 00:39:22,000 --> 00:39:26,130 >> Kā jūs paust, ka nav hit numuru nulles uz tastatūras, 893 00:39:26,130 --> 00:39:28,140 jo fakts, ka ir ASCII char. 894 00:39:28,140 --> 00:39:30,990 Tas izskatās kā numuru, bet faktiski decimāls skaitlis 895 00:39:30,990 --> 00:39:35,910 kas pārstāv apkārtrakstu glifu, apļveida burtveidolu. 896 00:39:35,910 --> 00:39:38,410 Tikmēr, reversā slīpsvītra nulle nozīmē, burtiski 897 00:39:38,410 --> 00:39:40,700 likts astoņas nulles baiti šeit par mani. 898 00:39:40,700 --> 00:39:42,136 >> Tātad tas ir nedaudz patvaļīgs. 899 00:39:42,136 --> 00:39:44,260 Mēs varētu esam izmanto jebkuru modeli bitu, bet pasaules 900 00:39:44,260 --> 00:39:46,610 nolēma dažus gadus Pirms, ka pārstāvēt 901 00:39:46,610 --> 00:39:49,710 gals string atmiņā, vienkārši ielieciet visu ķekars nullēm. 902 00:39:49,710 --> 00:39:51,000 Tāpēc, ka mēs varam atklāt, ka. 903 00:39:51,000 --> 00:39:54,790 Tagad, tas nozīmē, ka neviens vēstule alfabēts var pārstāvēt ar nullēm. 904 00:39:54,790 --> 00:39:58,480 >> Bet tas ir OK, mēs jau esam redzējuši ka mēs esam izmantojot 65 uz augšu, kas 97 uz augšu. 905 00:39:58,480 --> 00:40:00,290 Mēs neesam nokļūt jebkur gandrīz visām nullēm. 906 00:40:00,290 --> 00:40:03,040 907 00:40:03,040 --> 00:40:06,540 Tātad Belinda jo datora atmiņā ir faktiski gatavojas iet šeit. 908 00:40:06,540 --> 00:40:09,764 Esmu sastādīts to dzeltenā tikko pievērst mūsu uzmanību uz to. 909 00:40:09,764 --> 00:40:11,680 Un paziņojums, arī šis ir pilnīgi patvaļīgi. 910 00:40:11,680 --> 00:40:12,680 Esmu sagatavots kā režģi. 911 00:40:12,680 --> 00:40:14,460 Tāpat, RAM ir tikai daži fizisks objekts. 912 00:40:14,460 --> 00:40:17,300 Tam nav obligāti jābūt rindas un kolonnas, per se. 913 00:40:17,300 --> 00:40:20,490 Tas ir tikai ieguva visai ķekars baitu īstenoti aparatūru kaut kā. 914 00:40:20,490 --> 00:40:22,817 Bet, ja pēc Belinda I drukāti Gabe vārda, 915 00:40:22,817 --> 00:40:25,650 viņš gatavojas galu galā šeit atmiņā, un, ja es drukāti Daven vārda, 916 00:40:25,650 --> 00:40:27,316 Piemēram, viņš dodas, lai galu galā šeit. 917 00:40:27,316 --> 00:40:29,310 Un es varu turpināt rakstīt vēl vairāk vārdu. 918 00:40:29,310 --> 00:40:32,100 >> Diemžēl, ja es mēģinātu uzrakstīt super garu vārdu, 919 00:40:32,100 --> 00:40:33,730 Es varētu beidzot palaist no atmiņas. 920 00:40:33,730 --> 00:40:37,810 Tādā gadījumā, getstring ir gatavojas atgriezties NULL, kā mēs teicām. 921 00:40:37,810 --> 00:40:41,720 Bet par laimi, vismaz šajā vizuālā šeit, mēs nesaņēma gluži tik tālu. 922 00:40:41,720 --> 00:40:45,860 >> Tagad to, kas ir jauki, ir tas, ka šis Vispārējā ideja ārstē lietas 923 00:40:45,860 --> 00:40:49,720 kā kastēs ir pārstāvis iezīme C 924 00:40:49,720 --> 00:40:52,690 un daudz valodu, pazīstams kā masīvu. 925 00:40:52,690 --> 00:40:55,490 Masīvs ir cita veida datus. 926 00:40:55,490 --> 00:40:57,380 Tā ir datu struktūra, ja Jums gribas. 927 00:40:57,380 --> 00:41:01,160 Struktūra nozīmē tā tiešām, veids, skatoties kā kaste, vismaz 928 00:41:01,160 --> 00:41:02,320 savā prātā pret acīm. 929 00:41:02,320 --> 00:41:09,680 Masīvs ir pieguļošā secība identisku datu tipu, 930 00:41:09,680 --> 00:41:11,330 atpakaļ atpakaļ atpakaļ atpakaļ. 931 00:41:11,330 --> 00:41:14,720 >> Tātad string, citiem vārdiem, ir masīvs chars. 932 00:41:14,720 --> 00:41:16,120 Masīvs rakstzīmes. 933 00:41:16,120 --> 00:41:19,070 Bet izrādās, jūs varat būt bloki ķekarus lietas. 934 00:41:19,070 --> 00:41:21,870 Patiesībā, mēs varam nodot pat numuri masīvu. 935 00:41:21,870 --> 00:41:23,920 Tātad tā, kādā formā mēs ejam, lai sāktu 936 00:41:23,920 --> 00:41:26,590 deklarējot šos datus struktūru sauc par masīvu 937 00:41:26,590 --> 00:41:28,250 ir arī gatavojas izmantot kvadrātiekavas. 938 00:41:28,250 --> 00:41:31,500 Bet šie kvadrātiekavas gatavojas ir cita nozīme šajā kontekstā. 939 00:41:31,500 --> 00:41:33,450 >> Un redzēsim to šādi. 940 00:41:33,450 --> 00:41:36,780 Pieņemsim, ka es atvēru up jaunu failu šeit. 941 00:41:36,780 --> 00:41:38,535 Un es varu saglabāt to kā ages.c. 942 00:41:38,535 --> 00:41:41,280 943 00:41:41,280 --> 00:41:43,470 Un es ņemšu saglabātu šo manā mapē šeit. 944 00:41:43,470 --> 00:41:46,130 Un tagad es esmu gatavojas iet uz priekšu un sākt rakstīt kaut ko 945 00:41:46,130 --> 00:41:53,940 tāpat ietver CS50.h, ietver stdio.h, int galvenais tukšumu. 946 00:41:53,940 --> 00:41:57,370 Un tad iekšā šeit, es gribu vispirms ir int sauc vecumu. 947 00:41:57,370 --> 00:42:01,371 >> Un es esmu gatavojas izmantot, ka, lai iegūtu int no lietotāja par viņa vai viņas vecumu. 948 00:42:01,371 --> 00:42:04,620 Bet šī programma ir paredzēts izmantot vairāki cilvēki, lai jebkādā kontekstā. 949 00:42:04,620 --> 00:42:05,490 Man līniju cilvēku. 950 00:42:05,490 --> 00:42:08,281 Visi no tiem ir rakstīt to vecums varbūt daži, es nezinu, 951 00:42:08,281 --> 00:42:10,530 konkurence, vai notikumu ka viņi ieradās. 952 00:42:10,530 --> 00:42:13,030 Tātad nākamais cilvēks, es nepieciešama citu mainīgo. 953 00:42:13,030 --> 00:42:15,790 >> Jo, ja es tikai darīt vecums kļūst getInt, ka ir 954 00:42:15,790 --> 00:42:18,500 dodas uz clobber, vai pārrakstīt iepriekšējā personas vecums. 955 00:42:18,500 --> 00:42:19,760 Tāpēc, ka tas nav labi. 956 00:42:19,760 --> 00:42:21,790 Tātad mans pirmais instinkts varētu būt, ak, labi, 957 00:42:21,790 --> 00:42:26,260 ja es vēlos saņemt vairākus Tautas ages-- sauksim šo age1, 958 00:42:26,260 --> 00:42:31,280 int age2 izpaužas int, int age3 izpaužas getInt. 959 00:42:31,280 --> 00:42:35,340 Un tagad es esmu gatavojas izmantot daži pseudocode kods šeit. 960 00:42:35,340 --> 00:42:37,679 >> Kaut ko darīt ar šiem numuriem. 961 00:42:37,679 --> 00:42:40,470 Mēs atstāt uz citu dienu, ko mēs darām tur, jo mēs tikai 962 00:42:40,470 --> 00:42:44,200 rūpēties par brīdi par age1, age2, age3. 963 00:42:44,200 --> 00:42:46,450 Diemžēl, kad I apkopot šo programmu 964 00:42:46,450 --> 00:42:51,140 un nodot to priekšā faktisko lietotāju, kas ir fundamentāli slikts dizains 965 00:42:51,140 --> 00:42:53,890 lēmums man šķiet, ir veikti? 966 00:42:53,890 --> 00:42:54,624 Yeah? 967 00:42:54,624 --> 00:42:55,499 Mērķauditorija: [dzirdams] 968 00:42:55,499 --> 00:42:58,071 969 00:42:58,071 --> 00:42:59,820 DAVID J. Malan: Jā, Man pat nav mēģinājis 970 00:42:59,820 --> 00:43:02,028 lai noskaidrotu, cik daudz vecumu man tiešām rūp? 971 00:43:02,028 --> 00:43:05,380 Ja man ir mazāk nekā trīs cilvēki šeit, un tāpēc mazāk nekā trīs vecumu, 972 00:43:05,380 --> 00:43:07,260 Es joprojām akli gaida trīs. 973 00:43:07,260 --> 00:43:08,720 Dievs pasarg četri cilvēki parādās. 974 00:43:08,720 --> 00:43:10,990 Mana programma vienkārši nebūs pat tās atbalstīt. 975 00:43:10,990 --> 00:43:13,280 >> Un tā tas, garš stāsts Īsi sakot, nav labs ieradums. 976 00:43:13,280 --> 00:43:13,780 Tiesības? 977 00:43:13,780 --> 00:43:16,530 Man bija būtībā kopēšana un līmēšana kodu un vienkārši tweaking 978 00:43:16,530 --> 00:43:17,430 mainīgās nosaukumi. 979 00:43:17,430 --> 00:43:22,410 Un, mans Dievs, ja tu būtu, nevis trīs vecumu, bet 10, vai 100, vai pat 6500 980 00:43:22,410 --> 00:43:23,820 undergraduates, piemēram. 981 00:43:23,820 --> 00:43:26,950 Tas nebūs īpaši elegants kods, vai ilgtspējīga. 982 00:43:26,950 --> 00:43:29,200 Jūs esat nāksies pārrakstīt šai programmai katru reizi 983 00:43:29,200 --> 00:43:30,760 Jūsu skaits cilvēku izmaiņām. 984 00:43:30,760 --> 00:43:35,090 >> Tātad par laimi, jo mūsu faktiskais ages.c failu šodien, 985 00:43:35,090 --> 00:43:36,970 mums ir daudz gudru risinājumu. 986 00:43:36,970 --> 00:43:39,800 Pirmkārt, es esmu gatavojas aizņemties būvēt mēs esam izmanto dažas reizes, 987 00:43:39,800 --> 00:43:43,744 šis darīt, kamēr cilpa, lai iegūtu cilvēku skaits telpā. 988 00:43:43,744 --> 00:43:46,910 Es esmu tikai gatavojas apgrūtināt lietotāju, atkal un atkal, līdz brīdim, kad viņš vai viņa dod man 989 00:43:46,910 --> 00:43:49,260 n vērtība, kas ir pozitīvs skaitlis. 990 00:43:49,260 --> 00:43:51,590 >> Es varētu būt izmantoti, pagājušajā laiks nokļūt pozitīvu int. 991 00:43:51,590 --> 00:43:53,720 Bet mums nav, ka pa īstam, tāpēc es devos uz priekšu 992 00:43:53,720 --> 00:43:55,660 un atkal īsteno šo ideju. 993 00:43:55,660 --> 00:43:58,410 Tagad šeit lejā, tas ir jauns triks. 994 00:43:58,410 --> 00:44:02,260 Saskaņā 27, kā komentāri in line 26 liecina, 995 00:44:02,260 --> 00:44:05,180 deklarēt masīvu, kurā uzglabāt ikviena vecumu. 996 00:44:05,180 --> 00:44:09,320 >> Tātad, ja jūs vēlaties iegūt, ne vienu int, ne divi ints, bet viss ķekars ints. 997 00:44:09,320 --> 00:44:13,800 Konkrēti n veseli skaitļi, bija n varētu būt trīs, varētu būt 100, varētu būt 1000. 998 00:44:13,800 --> 00:44:17,570 Sintakse, gluži vienkārši, ir teiksim, kādi dati veida jūs vēlaties? 999 00:44:17,570 --> 00:44:19,620 Ko jūs vēlaties, lai izsauktu ka rieciens atmiņas? 1000 00:44:19,620 --> 00:44:23,530 Ko jūs vēlaties, lai izsauktu režģi ka izskatās šis gleznieciski? 1001 00:44:23,530 --> 00:44:27,700 >> Un iekavās šeit, jūs sakāt cik liels vēlaties masīvs būt. 1002 00:44:27,700 --> 00:44:30,450 Un tā agrāk, kad es teicu sintakse ir nedaudz atšķirīgs šeit, 1003 00:44:30,450 --> 00:44:33,614 mēs joprojām izmanto kvadrātiekavas, bet, kad es esmu deklarējot masīvs, 1004 00:44:33,614 --> 00:44:35,530 skaits iekšpusē kvadrātiekavās līdzekļi 1005 00:44:35,530 --> 00:44:37,610 cik liels jūs vēlaties masīvs būt. 1006 00:44:37,610 --> 00:44:42,490 >> Turpretī, ja mēs, izmantojot s kronšteins i pirms brīža, s, auklas, 1007 00:44:42,490 --> 00:44:46,820 patiešām masīvs simboliem, bet ja jūs neesat deklarējot mainīgo, 1008 00:44:46,820 --> 00:44:49,760 kā ar šo atslēgvārdu šeit, jūs vienkārši saņemat 1009 00:44:49,760 --> 00:44:54,280 īpašs rādītājs, īpaša elements no šī masīva. 1010 00:44:54,280 --> 00:44:57,090 Kad mēs zinām, ka, atpūtas Tas ir vienkārši. 1011 00:44:57,090 --> 00:45:00,765 Ja jauna es esmu pirmo reizi gatavojas izdrukāt kas ir vecums personas numuru i. 1012 00:45:00,765 --> 00:45:03,890 Kur es tikai saku persona numur viens, cilvēks numur divi, cilvēks numur trīs. 1013 00:45:03,890 --> 00:45:06,306 >> Un es esmu tikai darot aritmētika, tā, ka, piemēram, normāli cilvēki, 1014 00:45:06,306 --> 00:45:09,030 mēs paļaujamies no viena uz tā programmu, un nevis no nulles. 1015 00:45:09,030 --> 00:45:13,620 Tad es aicinu getint, bet es glabāt in vecumu atbilde stiprinājuma i. 1016 00:45:13,620 --> 00:45:16,610 Kura ir i'th vecums masīvā. 1017 00:45:16,610 --> 00:45:21,640 Tādējādi, kaut arī pēdējo reizi bijām ārstē šīs kastes kā chars par Zamyla vārda, 1018 00:45:21,640 --> 00:45:22,490 un citi. 1019 00:45:22,490 --> 00:45:26,530 Tagad, šīs kastes pārstāvēt 32 biti, vai četri baiti 1020 00:45:26,530 --> 00:45:29,510 , kurā mēs varam glabāt int, int, int. 1021 00:45:29,510 --> 00:45:31,890 Visi, kas, atkal, ir vienādi datu tips. 1022 00:45:31,890 --> 00:45:33,890 >> Tagad es daru kaut ko muļķīgi, tāpat kā laiks iet, vienkārši 1023 00:45:33,890 --> 00:45:35,510 pamatot rakstot šo programmu. 1024 00:45:35,510 --> 00:45:40,050 Un tad uz leju šeit, es vēlreiz atkārtot virs masīva sakot gadu no tagad, 1025 00:45:40,050 --> 00:45:43,090 cilvēks numur viens griba būt kaut gadus vecs. 1026 00:45:43,090 --> 00:45:45,010 Un izdomāt, ka math-- Es domāju, šis 1027 00:45:45,010 --> 00:45:49,260 nav ļoti sarežģīta arithmetic-- Es vienkārši pievienot vienu savam vecumam. 1028 00:45:49,260 --> 00:45:51,240 Tikai, lai pierādītu, atkal, tas. 1029 00:45:51,240 --> 00:45:57,910 >> Tāpat kā es varu indeksu uz virkni, s, tāpēc es varu indekss stājas masīvs vecumu, 1030 00:45:57,910 --> 00:45:59,950 piemēram, ka tur. 1031 00:45:59,950 --> 00:46:03,340 Tātad, ja tas notiek, ir ņemot mums? 1032 00:46:03,340 --> 00:46:07,070 Tātad mēs redzēsim, galu galā, dažas lietas, kas ir dienas, lai nāk. 1033 00:46:07,070 --> 00:46:09,510 Viens, visu šo laiku, kad rakstot savas programmas, 1034 00:46:09,510 --> 00:46:11,239 piemēram, Mario, mantkārīgs, kredīts. 1035 00:46:11,239 --> 00:46:13,780 Jūs esat ierakstot vārdu programma un hitting Enter. 1036 00:46:13,780 --> 00:46:15,610 Un tad kļūst lietotāja ievadi. 1037 00:46:15,610 --> 00:46:18,137 >> Ar getString, getInt, getLongLong vai tamlīdzīgi. 1038 00:46:18,137 --> 00:46:20,720 Bet izrādās, ka C balstus kaut kas ko sauc komandrindas 1039 00:46:20,720 --> 00:46:25,740 argumenti, kas gatavojas mūs faktiski saņemt pie vārdiem, ka jūs rakstāt, 1040 00:46:25,740 --> 00:46:28,570 pie mirgojošu ātru, Pēc jūsu programmas nosaukumu. 1041 00:46:28,570 --> 00:46:31,430 >> Tātad dienu nāk, jums kaut kā Cēzars varētu rakstīt, 1042 00:46:31,430 --> 00:46:34,950 vai ./caesar numuru 13, pēc tam. 1043 00:46:34,950 --> 00:46:36,070 Redzēsim, kā tas darbojas. 1044 00:46:36,070 --> 00:46:37,550 Jo tiešām, jo problēma noteikti divi, mēs esam 1045 00:46:37,550 --> 00:46:39,383 gatavojas jūs iepazīstināt lai mazliet kaut ko 1046 00:46:39,383 --> 00:46:42,360 atgādina Ralphie s apstrīdēt agrāk kartogrāfija. 1047 00:46:42,360 --> 00:46:43,970 Par kodēšanas informācijas māksla. 1048 00:46:43,970 --> 00:46:46,660 Tas, patiesībā, ir ļoti atgādina par to, kas Ralphie darīja. 1049 00:46:46,660 --> 00:46:51,380 >> Šis ir piemērs šifrēšanas algoritms sauc ROT13, R-O-T 13. 1050 00:46:51,380 --> 00:46:54,910 Kas vienkārši nozīmē pagriezt burti alfabētā 13 vietās. 1051 00:46:54,910 --> 00:46:58,309 Un, ja jūs to izdarītu, jūs redzēsiet tagad to, kas ir, iespējams, iepazinušies frāze. 1052 00:46:58,309 --> 00:47:01,100 Bet kā mēs ejam, lai izmantotu Tas, galu galā, ir plašāk. 1053 00:47:01,100 --> 00:47:04,390 >> P noteikti divi, standarta izdevumā, jūs ieviest pāris cipariem, 1054 00:47:04,390 --> 00:47:06,720 viens sauc Caesar, viens sauc Vigenere. 1055 00:47:06,720 --> 00:47:10,090 Abas no tām ir rotācijas šifrēšana, jo, ka kaut kā jums 1056 00:47:10,090 --> 00:47:11,826 savukārt viens burts uz citu burtu. 1057 00:47:11,826 --> 00:47:12,950 Un Cēzars ir super vienkārši. 1058 00:47:12,950 --> 00:47:16,220 Jūs pievienot vienu, jūs pievienot 13, vai kādu numuru līdz 26. 1059 00:47:16,220 --> 00:47:19,570 Vigenere tas, ka katru burtu pamats. 1060 00:47:19,570 --> 00:47:22,140 Tātad Vigenere, kā jūs redzēsiet spec, ir drošāka. 1061 00:47:22,140 --> 00:47:24,973 >> Bet beigās, dienā, kas jums tiks īstenošanai un P noteikt divus, 1062 00:47:24,973 --> 00:47:29,050 ir tas, ka galvenais, ka jūs izmantojat abi šifrēšanai un atšifrēšanai. 1063 00:47:29,050 --> 00:47:32,160 Atsaucoties uz procesu, kurā teksta, daži sākotnējais ziņojums, 1064 00:47:32,160 --> 00:47:34,490 uz Cypher tekstu, kas ir kaut kas šifrēta. 1065 00:47:34,490 --> 00:47:36,220 Un tad atšifrējot to vēlreiz. 1066 00:47:36,220 --> 00:47:38,119 >> Hakeru izdevumā, tikmēr, jūs būsiet 1067 00:47:38,119 --> 00:47:40,660 uzdevums ar kaut ko līdzīgu garā, kur mēs jums 1068 00:47:40,660 --> 00:47:44,610 failu, no tipiskas Linux, vai Mac, vai Unix datoru sauc etsy 1069 00:47:44,610 --> 00:47:47,800 paroli, kas satur veselu ķekars lietotājvārdus un paroles. 1070 00:47:47,800 --> 00:47:50,932 Un šīs paroles ir visas šifrēta, vai sajaukts, 1071 00:47:50,932 --> 00:47:53,140 tā teikt, vairāk pareizi kā jūs redzēsiet spec. 1072 00:47:53,140 --> 00:47:57,090 >> Un hakeris izdevums būs izaicinājums Jūs ar veikt savu ieguldījumu, piemēram, tas, 1073 00:47:57,090 --> 00:47:58,800 un plaisāšanu paroli. 1074 00:47:58,800 --> 00:48:02,590 Tas ir, norādītas, ko Cilvēka parole patiesībā bija. 1075 00:48:02,590 --> 00:48:05,570 Jo, patiešām, paroles parasti nav saglabāti skaidrs, 1076 00:48:05,570 --> 00:48:08,260 un vispār paroles būtu grūti uzminēt. 1077 00:48:08,260 --> 00:48:09,610 Tas nav bieži notiek. 1078 00:48:09,610 --> 00:48:12,110 >> Un tas, ko es domāju, mēs gribētu darīt, ir noslēgt ar pāris minūtēm 1079 00:48:12,110 --> 00:48:15,160 skatiens uz īpaši slikta izvēle paroles 1080 00:48:15,160 --> 00:48:17,260 no filmas jūs varētu atgādināt lētticīgi. 1081 00:48:17,260 --> 00:48:18,915 Un, ja ne, jums vajadzētu īrēt. 1082 00:48:18,915 --> 00:48:20,070 >> [Video atskaņošana] 1083 00:48:20,070 --> 00:48:22,320 >> -Helmet, Tu velns, kas notiek? 1084 00:48:22,320 --> 00:48:24,240 Ko jūs darāt, lai mana meita? 1085 00:48:24,240 --> 00:48:28,010 >> -Permit Man iepazīstināt izcili jaunieši plastikas ķirurgs, 1086 00:48:28,010 --> 00:48:30,010 Ārsts Phillip Schlotkin. 1087 00:48:30,010 --> 00:48:35,020 Lielākais deguns darbs cilvēks viss visums un Beverly Hills. 1088 00:48:35,020 --> 00:48:36,140 >> -Jūsu Augstība. 1089 00:48:36,140 --> 00:48:36,820 >> -Nose Darbs? 1090 00:48:36,820 --> 00:48:37,700 Es nesaprotu. 1091 00:48:37,700 --> 00:48:39,070 Viņa jau bija deguns darbu. 1092 00:48:39,070 --> 00:48:40,800 Tas bija viņas salds 16 klāt. 1093 00:48:40,800 --> 00:48:42,590 >> -Nē, Tas nav tas, ko jūs domājat. 1094 00:48:42,590 --> 00:48:44,490 Tas ir daudz, daudz sliktāk. 1095 00:48:44,490 --> 00:48:48,160 Ja tu nedod man kombinācija, lai gaisa vairogs, 1096 00:48:48,160 --> 00:48:52,748 Ārsts Schlotkin dos savu meita atpakaļ savu veco degunu. 1097 00:48:52,748 --> 00:48:53,748 - [Gasps] Nooooooooooooo. 1098 00:48:53,748 --> 00:48:57,684 1099 00:48:57,684 --> 00:48:59,652 Kur Jūs ieguvāt šo? 1100 00:48:59,652 --> 00:49:00,640 >> -Visa Labi. 1101 00:49:00,640 --> 00:49:02,506 Es jums saku, es jums saku. 1102 00:49:02,506 --> 00:49:03,498 >> -Nē, Tētis, nē. 1103 00:49:03,498 --> 00:49:04,490 Jūs nedrīkstat. 1104 00:49:04,490 --> 00:49:06,090 >> -Tu Labi mana mīļā. 1105 00:49:06,090 --> 00:49:07,390 Es garām savu jauno degunu. 1106 00:49:07,390 --> 00:49:10,990 Bet es ne pateikt viņiem par kombinācija vienalga ko. 1107 00:49:10,990 --> 00:49:12,450 >> -Ļoti Labi. 1108 00:49:12,450 --> 00:49:14,830 Ārsts Schlotkin, darīt savu sliktāko. 1109 00:49:14,830 --> 00:49:15,744 >> -Mana Prieks. 1110 00:49:15,744 --> 00:49:19,860 1111 00:49:19,860 --> 00:49:20,800 >> -No! 1112 00:49:20,800 --> 00:49:22,780 Pagaidiet, pagaidiet. 1113 00:49:22,780 --> 00:49:24,000 Es jums saku. 1114 00:49:24,000 --> 00:49:25,830 Es jums saku. 1115 00:49:25,830 --> 00:49:28,270 >> -Es Zināja, ka tā varētu strādāt. 1116 00:49:28,270 --> 00:49:31,390 Nu labi, dod to man. 1117 00:49:31,390 --> 00:49:36,220 >> -The Kombinācija ir viens. 1118 00:49:36,220 --> 00:49:36,740 >> -ona. 1119 00:49:36,740 --> 00:49:37,473 >> -ona. 1120 00:49:37,473 --> 00:49:37,972 -Two. 1121 00:49:37,972 --> 00:49:38,471 -Two. 1122 00:49:38,471 --> 00:49:39,800 -Two. 1123 00:49:39,800 --> 00:49:40,300 -Trīs. 1124 00:49:40,300 --> 00:49:40,800 -Trīs. 1125 00:49:40,800 --> 00:49:41,800 -Trīs. 1126 00:49:41,800 --> 00:49:42,300 -Four. 1127 00:49:42,300 --> 00:49:42,800 -Four. 1128 00:49:42,800 --> 00:49:44,707 -Four. 1129 00:49:44,707 --> 00:49:45,521 -Five. 1130 00:49:45,521 --> 00:49:46,430 -Five. 1131 00:49:46,430 --> 00:49:47,930 -Five. 1132 00:49:47,930 --> 00:49:53,480 -Tātad Kombinācija ir viens, divi, trīs, četrus, piecus. 1133 00:49:53,480 --> 00:49:56,140 Tas ir stulbākais kombinācija Es kādreiz dzirdēt manā dzīvē. 1134 00:49:56,140 --> 00:49:58,640 Tas ir sava veida lieta AN idiots būtu viņa bagāžu. 1135 00:49:58,640 --> 00:50:00,000 >> -Thank Jums, Jūsu Augstība. 1136 00:50:00,000 --> 00:50:01,340 >> [REMOTE klikšķiem] 1137 00:50:01,340 --> 00:50:02,450 >> -Ko Jūs darījāt? 1138 00:50:02,450 --> 00:50:03,800 >> -Es Izslēgts sienas. 1139 00:50:03,800 --> 00:50:05,010 >> -Nē, Jums nav, jūs izslēgts visu filmu. 1140 00:50:05,010 --> 00:50:06,220 >> -Es Must've nospiests nepareizs pogas. 1141 00:50:06,220 --> 00:50:07,064 >> -Labi, Ielieciet to atpakaļ! 1142 00:50:07,064 --> 00:50:07,910 Ielieciet filmu atpakaļ! 1143 00:50:07,910 --> 00:50:08,300 >> -Jā, Sir! 1144 00:50:08,300 --> 00:50:08,799 Jā, ser. 1145 00:50:08,799 --> 00:50:09,660 -Ļaujiet S go, Arnold. 1146 00:50:09,660 --> 00:50:10,450 Nāc, Gretchen. 1147 00:50:10,450 --> 00:50:12,533 Protams, jūs zināt, es ņemšu ir rēķinu par to. 1148 00:50:12,533 --> 00:50:16,720 1149 00:50:16,720 --> 00:50:17,220 -Labi? 1150 00:50:17,220 --> 00:50:17,802 Vai tas darbojas? 1151 00:50:17,802 --> 00:50:18,510 Kur ir karalis? 1152 00:50:18,510 --> 00:50:20,218 >> -Tas Strādāja, kungs, mēs ir kombinācija. 1153 00:50:20,218 --> 00:50:20,740 , Lieliski. 1154 00:50:20,740 --> 00:50:24,810 Tagad mēs varam izmantot katru pēdējo elpu svaiga gaisa no planētas Druidia. 1155 00:50:24,810 --> 00:50:25,890 Kas ir kombinācija? 1156 00:50:25,890 --> 00:50:28,155 >> Ons, diviem, trim, četriem, pieciem. 1157 00:50:28,155 --> 00:50:29,890 >> Ons, diviem, trim, četriem, pieciem? 1158 00:50:29,890 --> 00:50:30,390 -Jā. 1159 00:50:30,390 --> 00:50:31,110 -Tas Ir pārsteidzošs. 1160 00:50:31,110 --> 00:50:34,550 Man tas pats kombinācija uz manu bagāžu. 1161 00:50:34,550 --> 00:50:37,160 Sagatavot Spaceball 1! tūlītēja izlidošana. 1162 00:50:37,160 --> 00:50:38,160 >> -Jā, Sir. 1163 00:50:38,160 --> 00:50:40,745 >> -Un Mainās kombinācija uz manu bagāžu. 1164 00:50:40,745 --> 00:50:41,578 [DOOR NOSLĒGUMA SOUND] 1165 00:50:41,578 --> 00:50:42,064 [Saskandināt durvju trāpot HELMET] 1166 00:50:42,064 --> 00:50:42,550 -Ahh. 1167 00:50:42,550 --> 00:50:43,383 [END VIDEO PLAYBACK] 1168 00:50:43,383 --> 00:50:46,700 DAVID J. Malan: Tas ir tas CS50, mēs redzēsim tevi nākamnedēļ. 1169 00:50:46,700 --> 00:50:49,883 Teicējs: Un tagad, Deep Domas, ko Daven Farnham. 1170 00:50:49,883 --> 00:50:53,160 1171 00:50:53,160 --> 00:50:55,860 >> DAVEN Farnham: kodēšanas C ir tik daudz grūtāk, nekā nulles. 1172 00:50:55,860 --> 00:50:57,320 printf, Scratch bija meli. 1173 00:50:57,320 --> 00:50:59,930 1174 00:50:59,930 --> 00:51:01,430 >> [Smiekli Soundbite] 1175 00:51:01,430 --> 00:51:02,486